@opengis/form 0.0.122 → 0.0.124
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-D_XxO-CG.js +8915 -0
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +21 -19
- package/dist/src/components/inputs/date/datepicker/Datepicker.vue.d.ts.map +1 -1
- package/dist/src/components/inputs/index.d.ts +2 -0
- package/dist/src/components/inputs/index.d.ts.map +1 -1
- package/dist/src/components/inputs/map/coordinate-import.d.ts +16 -0
- package/dist/src/components/inputs/map/coordinate-import.d.ts.map +1 -0
- package/dist/src/components/inputs/map/vs-input-map.vue.d.ts +2 -0
- package/dist/src/components/inputs/map/vs-input-map.vue.d.ts.map +1 -1
- package/dist/src/components/inputs/table/vs-input-datatable.vue.d.ts.map +1 -1
- package/dist/src/schema.d.ts.map +1 -1
- package/dist/src/types/form.d.ts +1 -1
- package/dist/src/types/form.d.ts.map +1 -1
- package/dist/{vs-richtext-DgknNuKW.js → vs-richtext-DbAdnEuL.js} +8 -8
- package/locales/en.json +34 -34
- package/locales/uk.json +34 -34
- package/package.json +79 -79
- package/dist/index-DSzdDC6o.js +0 -8575
package/dist/index.umd.cjs
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
(function(de,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):(de=typeof globalThis<"u"?globalThis:de||self,e(de.FormBuilder={},de.Vue,de.OpenGISCore,de.lucide))})(this,function(de,e,ge,R){"use strict";const zn=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(r){const t=r,n=e.ref(!1),l=e.ref({top:"0px",left:"0px"});function a(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();l.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},n.value=!0}function o(){n.value=!1}return(s,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:a,onMouseleave:o},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(R.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(l.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))}}),Zr={class:"w-full relative"},Xr={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},Jr={class:"opacity-100"},Qr={key:0,class:"text-red-500 text-[14px]"},el={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},tl=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(r){const t=r,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),l=e.computed(()=>!!n.value),a=e.computed(()=>!!t.item?.rules?.includes("required")),o=e.computed(()=>t.item?.info||"");return(s,c)=>(e.openBlock(),e.createElementBlock("div",Zr,[l.value?(e.openBlock(),e.createElementBlock("div",Xr,[e.createElementVNode("span",Jr,e.toDisplayString(n.value),1),a.value?(e.openBlock(),e.createElementBlock("span",Qr,"*")):e.createCommentVNode("",!0),o.value?(e.openBlock(),e.createBlock(zn,{key:1,text:o.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",el,e.toDisplayString(s.error),1)):e.createCommentVNode("",!0)]))}}),nl={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(r){const t=r,n=e.computed(()=>t.item?.label||t.label||t.ua),l=e.computed(()=>t.item?.info||""),a=e.computed(()=>t.columns??{container:12,label:3}),o=e.computed(()=>{const{container:d,label:u}=a.value;return!d||d<=0?0:Math.min(Math.max(u??0,0),d)/d}),s=e.computed(()=>t.item?.type==="html"||o.value<=0?!1:!!n.value),c=e.computed(()=>{if(!s.value)return{};const d=`${o.value*100}%`;return{flexBasis:d,maxWidth:d}}),i=e.computed(()=>{const{container:d,label:u}=a.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 g=`${p*100}%`;return{flexBasis:g,maxWidth:g}});return(d,u)=>(e.openBlock(),e.createElementBlock("div",nl,[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),d.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",rl,"*")):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(zn,{key:1,text:l.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),d.error?(e.openBlock(),e.createElementBlock("span",ll,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),ol={class:"w-full relative"},sl={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},il=e.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",ol,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",sl,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),cl={class:"flex-1 min-w-0"},dl={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ul={class:"truncate"},pl={key:0,class:"text-red-500 text-[14px]"},fl=["innerHTML"],ml={key:0,class:"mt-1 text-xs text-red-500"},hl={default:tl,horizontal:al,inline:il,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(r){const t=r,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const l=e.computed(()=>t.item?.description??""),a=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),o=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const c=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=c||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":c.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(c.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",cl,[c.ua||c.label?(e.openBlock(),e.createElementBlock("p",dl,[e.createElementVNode("span",ul,e.toDisplayString(c.item[n.value]||c.ua||c.label),1),a.value?(e.openBlock(),e.createElementBlock("span",pl,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:l.value},null,8,fl)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(c.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(c.$attrs)))],2)],2),o.value?(e.openBlock(),e.createElementBlock("p",ml,e.toDisplayString(o.value),1)):e.createCommentVNode("",!0)],2))}})};function Le(r){return{inputClass:e.computed(()=>{const n=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${r?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return r?.size==="sm"?`${n}h-[32px]`:`${n}h-[38px]`})}}const gl=["placeholder","disabled"],yl=e.defineComponent({__name:"vs-input-password",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Le(t.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>!!t.disabled),o=e.computed(()=>t.placeholder??"");return(s,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":c[0]||(c[0]=i=>l.value=i),placeholder:o.value,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":s.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,gl)),[[e.vModelText,l.value]])}}),bl=["placeholder","disabled","maxlength","minlength"],yt=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Le(t.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>!!t.disabled),o=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),c=e.computed(()=>t.minlength??void 0);function i(){typeof l.value=="string"&&(l.value=l.value.trim())}return(d,u)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":u[0]||(u[0]=p=>l.value=p),placeholder:o.value,disabled:a.value,maxlength:s.value,minlength:c.value,onBlur:i,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[d.customClass,e.unref(n),{"!border-red-600":d.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,bl)),[[e.vModelText,l.value]])}}),kl=["placeholder","disabled","min","max"],Rn=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({min:{},max:{},style:{default:()=>({})},customClass:{},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Le(t.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>!!t.disabled);return(o,s)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:"any","onUpdate:modelValue":s[0]||(s[0]=c=>l.value=c),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:o.min,max:o.max},null,10,kl)),[[e.vModelText,l.value]])}}),xl={class:"flex items-center gap-[4px]"},wl=["value","id","disabled"],_l=["for"],vl={class:"text-[14px] text-gray-700 flex items-center dark:text-neutral-400"},Cl=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=t,l=r,a=e.computed({get:()=>l.modelValue,set:s=>n("update:modelValue",s)}),o=e.computed(()=>!!l.disabled);return(s,c)=>(e.openBlock(),e.createElementBlock("div",xl,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:s.value,"onUpdate:modelValue":c[0]||(c[0]=i=>a.value=i),class:e.normalizeClass(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer",{"!cursor-not-allowed":o.value}]),id:s.id,disabled:o.value},null,10,wl),[[e.vModelCheckbox,a.value]]),e.createElementVNode("label",{for:s.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":o.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[a.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",s.error?"border-red-600":""]])},[e.createVNode(e.unref(R.Check),{class:"h-4 w-4"})],2),e.createElementVNode("span",vl,[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(s.label),1)])])],10,_l)]))}}),El=["name","value","disabled"],Bl={class:"flex items-center gap-[6px] text-[14px]"},Vl={key:0,class:"text-[16px]"},Sl=["src"],$l=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,l=t,a=e.computed({get:()=>n.modelValue,set:c=>{l("update:modelValue",c)}}),o=e.computed(()=>Array.isArray(a.value)?a.value.includes(n.value):a.value===!0||a.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs");return(c,i)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,o.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:c.id,value:c.value,"onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),disabled:c.disabled},null,8,El),[[e.vModelCheckbox,a.value]]),e.createElementVNode("span",Bl,[c.icon||c.imgUrl?(e.openBlock(),e.createElementBlock("span",Vl,[c.icon?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass(c.icon)},null,2)):e.createCommentVNode("",!0),c.imgUrl?(e.openBlock(),e.createElementBlock("img",{key:1,src:c.imgUrl,width:"16",height:"16",alt:"icon"},null,8,Sl)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(c.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(c.label),1)])])],2))}}),Al={class:"flex items-center"},sn=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,l=t,a=`radio-${Math.floor(Math.random()*1e4)}`,o=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),l("update:modelValue",i)}else l("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Al,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref($l):e.unref(Cl)),{value:c.value,label:c.label,info:c.option?.info,disabled:c.disabled,modelValue:o.value,"onUpdate:modelValue":i[0]||(i[0]=d=>o.value=d),id:a,icon:c.icon,imgUrl:c.imgUrl,style:e.normalizeStyle(c.style),error:c.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:1},8,["value","label","info","disabled","modelValue","icon","imgUrl","style","error"]))]))}}),Fl={key:0,class:"flex items-start gap-x-1"},Nl={key:0,class:"text-red-500 text-[14px]"},Dl=["title"],Ml=["disabled"],cn=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue");return(l,a)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Fl,[e.createVNode(sn,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=o=>n.value=o),label:l.text,error:l.error||""},null,8,["modelValue","label","error"]),l.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Nl,"*")):e.createCommentVNode("",!0),l.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:l.i,onClick:a[1]||(a[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(R.Info),{class:"h-4 w-4 text-gray-500"})],8,Dl)):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-${l.style?.primaryColor||"blue"}-500`:"bg-stone-200",l.customClass]]),disabled:l.disabled,onClick:a[2]||(a[2]=o=>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,Ml))}}),Tl=["id","innerHTML"],dn=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.name,class:e.normalizeClass(["text-gray-900",t.customClass]),innerHTML:t.html?t.html:t.text},null,10,Tl))}}),Ll=["placeholder","disabled","name"],un=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Le(t.style),l=e.useModel(r,"modelValue"),a=e.ref(null);let o=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 g=0;g<c.length;g+=1){const f=c[g];f==="{"?u=!0:f==="}"?u=!1:u&&d.add(f)}const p={};return Object.keys(i).forEach(g=>{d.has(g)||(p[g]=i[g])}),{mask:c,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(a.value){const{default:c}=await Promise.resolve().then(()=>Nn),i=s(t.mask||"");o=c(a.value,i),o.on("accept",()=>{l.value=t.unmask?o.unmaskedValue:o.value}),o.on("complete",()=>{l.value=t.unmask?o.unmaskedValue:o.value}),o.value=l.value!=null?String(l.value):""}}),e.onBeforeUnmount(()=>{o?.destroy()}),e.watch(()=>t.mask,c=>{if(o){const i=s(c||"");o.updateOptions(i)}}),e.watch(l,c=>{o&&o.unmaskedValue!==c&&(o.value=c!=null?String(c):"")}),(c,i)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:a,placeholder:c.placeholder,disabled:c.disabled,name:c.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,Ll))}}),Il={class:"relative w-full bg-white rounded-lg"},Ol={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},zl=["placeholder","disabled"],pn=e.defineComponent({__name:"vs-input-email",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Le(t.style),l=e.useModel(r,"modelValue");return(a,o)=>(e.openBlock(),e.createElementBlock("div",Il,[e.createElementVNode("div",Ol,[e.createVNode(e.unref(R.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":o[0]||(o[0]=s=>l.value=s),placeholder:a.placeholder,disabled:a.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":a.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,zl),[[e.vModelText,l.value]])]))}}),Rl={class:"relative w-full bg-white rounded-lg"},Pl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},jl=["value","placeholder","disabled"],fn=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Le(t.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>l.value?l.value.startsWith("+")?l.value.slice(1):l.value:""),o=c=>{let{value:i}=c.target;i=i.replace(/^\+/,""),l.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(()=>l.value,c=>{c&&!c.startsWith("+")?l.value=`+${c.replace(/^\+/,"")}`:c||(l.value="")},{immediate:!0}),(c,i)=>(e.openBlock(),e.createElementBlock("div",Rl,[e.createElementVNode("div",Pl,[e.createVNode(e.unref(R.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:a.value,onInput:o,onBeforeinput:s,pattern:"^\\+[1-9]\\d{1,14}$",maxlength:"15",placeholder:c.placeholder,disabled:c.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":c.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,jl)]))}}),Ul=["value","disabled"],Hl={class:"text-[13px] text-gray-700"},ql=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.computed(()=>!!t.disabled);return(a,o)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,l.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":o[0]||(o[0]=s=>n.value=s),type:"radio",value:t.value,disabled:l.value,class:"hidden"},null,8,Ul),[[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`,l.value?"opacity-50 cursor-not-allowed":""]])},[n.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),e.createElementVNode("span",Hl,e.toDisplayString(t.text),1)],2))}}),Kl=["value","disabled"],Gl={class:"text-[13px] text-gray-700"},Wl={"vs-input-radio-default":ql,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.computed(()=>!!t.disabled);return(a,o)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,l.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":o[0]||(o[0]=s=>n.value=s),type:"radio",value:t.value,disabled:l.value,class:"hidden"},null,8,Kl),[[e.vModelRadio,n.value]]),e.createElementVNode("span",Gl,e.toDisplayString(t.text),1)],2))}})},mn=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.computed(()=>Wl[`vs-input-radio-${t.view}`]);return(a,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([a.position==="horizontal"?"flex items-center flex-wrap gap-2":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.options,s=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),e.mergeProps({key:s?.id,text:s.text,value:s.id.toString(),checked:n.value===s.id,modelValue:n.value,"onUpdate:modelValue":o[0]||(o[0]=c=>n.value=c)},{ref_for:!0},a.$attrs),null,16,["text","value","checked","modelValue"]))),128))],2))}}),Yl={key:1,class:"w-full flex flex-col gap-4"},Zl={key:0,class:"text-sm font-medium text-muted-foreground my-2"},Xl="Без категорії",Jl=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},colSpan:{default:0},data:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,l=t,a=e.ref([]),o=e.reactive({}),s=f=>f?.value||f?.id||f?.text||f,c=f=>f.text||String(f),i=f=>`lg:col-span-${f||12}`,d=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),u=f=>f==null||f===""?null:typeof f=="string"||typeof f=="number"?f:String(f),p=e.computed(()=>{if(!n.group)return[];const f=new Map;a.value.forEach(w=>{const k=w[n.group],x=u(k);f.has(x)||f.set(x,[]),f.get(x)?.push(w)});const y=[];n.values?.length&&n.values.forEach(w=>{const k=u(w);y.push(k)});const h=new Set,b=w=>{const k=f.get(w)||[];if(!k.length)return null;const x=w===null?"group-null":`group-${String(w)}`,S=w===null?Xl:String(w);return h.add(w),{key:x,label:S,options:k}},C=[];return y.forEach(w=>{const k=b(w);k&&C.push(k)}),f.forEach((w,k)=>{if(h.has(k))return;const x=b(k);x&&C.push(x)}),C}),g=async()=>{try{const f=await fetch(`/api/suggest/${n.data}`).then(y=>y.json());a.value=f?.data||f}catch(f){console.error(f)}};return e.watch(()=>n.modelValue,f=>{if(typeof f=="boolean"&&a.value.length===1){const y=s(a.value[0]);o[y]=f}else if(Array.isArray(f)){const y=new Set(f);a.value.forEach(h=>{if(!h.disabled){const b=s(h);o[b]=y.has(b)}})}},{immediate:!0}),e.watch(o,()=>{if(!a.value.length){l("update:modelValue",null);return}const f=Object.entries(o).filter(([,y])=>y).map(([y])=>y);l("update:modelValue",f.length===0?[]:f)},{deep:!0}),e.onMounted(()=>{if(n.data)g().then(()=>{if(typeof n.modelValue=="boolean"&&a.value.length===1){const f=s(a.value[0]);o[f]=n.modelValue}else if(Array.isArray(n.modelValue)){const f=new Set(n.modelValue);a.value.forEach(y=>{if(!y.disabled){const h=s(y);o[h]=f.has(h)}})}});else if(a.value=n.options,typeof n.modelValue=="boolean"&&a.value.length===1){const f=s(a.value[0]);o[f]=n.modelValue}else if(Array.isArray(n.modelValue)){const f=new Set(n.modelValue);a.value.forEach(y=>{if(!y.disabled){const h=s(y);o[h]=f.has(h)}})}}),(f,y)=>n.group?(e.openBlock(),e.createElementBlock("div",Yl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h.key,class:"flex flex-col gap-2"},[h.label?(e.openBlock(),e.createElementBlock("span",Zl,e.toDisplayString(h.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",d.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.options,b=>(e.openBlock(),e.createBlock(sn,{modelValue:o[s(b)],"onUpdate:modelValue":C=>o[s(b)]=C,value:s(b),class:e.normalizeClass(i(f.colSpan)),disabled:n.disabled||b.disabled,label:c(b),key:`${h.key}-${s(b)}`,icon:b?.icon,imgUrl:b?.imgUrl,option:b,view:f.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",d.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,h=>(e.openBlock(),e.createBlock(sn,{modelValue:o[s(h)],"onUpdate:modelValue":b=>o[s(h)]=b,value:s(h),class:e.normalizeClass(i(f.colSpan)),disabled:n.disabled||h.disabled,label:c(h),key:s(h),icon:h?.icon,imgUrl:h?.imgUrl,option:h,view:f.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","icon","imgUrl","option","view"]))),128))],2))}}),pe=(r,t)=>{const n=r.__vccOpts||r;for(const[l,a]of t)n[l]=a;return n},Pn=pe(Jl,[["__scopeId","data-v-8e66207e"]]),Ql=["type","placeholder","disabled"],ea=e.defineComponent({__name:"vs-input-date1",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},mode:{default:"date"}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r;function l(u){return u?n.mode==="datetime"?(u.includes("T")?u:null)||u+(u.includes(" ")?"":"T00:00"):u?.split(" ")[0]:null}const{inputClass:a}=Le(n.style),o=t,s=e.computed({get:()=>l(n.modelValue),set:u=>o("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,p)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:c.value,"onUpdate:modelValue":p[0]||(p[0]=g=>s.value=g),placeholder:d.value,disabled:i.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(a)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Ql)),[[e.vModelDynamic,s.value]])}}),ta=(r,t)=>{if(!t||!Object.keys(t).length)return r;const[n,l=""]=r.split("?"),a=new URLSearchParams(l);Object.entries(t).forEach(([s,c])=>{c==null||c===""||a.set(s,String(c))});const o=a.toString();return o?`${n}?${o}`:n},jn=async(r,t={})=>{try{const n=new FormData;n.append("unique","true"),n.append("file",r);const{api:l,id:a="1",form:o="form",table:s="table",customParams:c}=t,i=l||`/file/upload/uploads?id=${a||""}&form=${o||""}&table=${s||""}`,d=ta(i,c);return(await fetch(d,{method:"POST",body:n}).then(p=>p.json()))?.result}catch(n){return ge.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},na=async r=>{try{return await fetch(`file/delete${r}`),!0}catch(t){return console.error(t),!1}},Un=async r=>{try{const t=await fetch(`/file/download/files/uploads${r}`),n=await t.arrayBuffer(),l=t.headers["content-type"],a=new TextDecoder("utf-8").decode(n),o=new Blob([a],{type:l}),s=document.createElement("a");s.setAttribute("download",r),s.href=window.URL.createObjectURL(o),s.click()}catch(t){console.error(t.message)}},ra=r=>{if(!r)return"";const t=r?.split(".");return t[t.length-1]},la=r=>{const t=ra(r),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?R.Table:n.textsFormat.includes(t)?R.FileCode:n.documentsFormat.includes(t)?R.FileText:n.archivesFormat.includes(t)?R.FileArchive:R.FileText},aa=["title"],oa={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},hn=pe(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:["update:value","update:item"],setup(r){const t=e.useModel(r,"value"),n=e.useModel(r,"item"),l=r;return(a,o)=>(e.openBlock(),e.createElementBlock("div",{title:n.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(la)(n.value)),{src:n.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:o[0]||(o[0]=s=>e.unref(Un)(n.value))},null,8,["src"])),e.createElementVNode("div",oa,[e.createElementVNode("button",{type:"button",onClick:o[1]||(o[1]=s=>{e.unref(na)(n.value),t.value=l.multiple?t.value?.filter(c=>c!==n.value):""}),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(R.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:o[2]||(o[2]=s=>e.unref(Un)(n.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(R.Download),{class:"w-4 h-4"})])])],8,aa))}}),[["__scopeId","data-v-dc557562"]]),sa={class:"flex items-center gap-x-2"},ia=["accept","multiple","disabled"],ca={key:1,class:"flex items-center flex-wrap gap-2"},da={key:1,class:"loader"},ua={key:1,class:"loader"},Hn=pe(e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(r,{emit:t}){const n=r,l=e.useModel(r,"modelValue"),a=t,o=e.ref(null),s=e.ref(!1),c=e.inject("values"),i=e.computed(()=>n.format?n.format.split(",").map(w=>w.trim().toLowerCase()).filter(Boolean):[]),d=w=>Array.isArray(l.value)&&l.value[w]||"",u=w=>{if(n.max_size&&w.size>n.max_size*1024*1024){const k=(w.size/1048576).toFixed(2);return ge.notify({type:"error",title:"Помилка!",message:`Файл "${w.name}" занадто великий. Максимальний розмір: ${n.max_size} МБ, розмір файлу: ${k} МБ`,position:"right-bottom"}),!1}return!0},p=w=>{if(!i.value.length)return!0;const k=`.${w.name.split(".").pop()?.toLowerCase()||""}`,x=i.value.includes(k);return x||ge.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${w.name}". Дозволені формати: ${i.value.join(", ")}`,position:"right-bottom"}),x},g=e.computed(()=>{const w={},k=[];if(!n.customParams?.length)return{params:w,missingSources:k};const x=c?.value??{};return n.customParams.forEach(S=>{if(!S)return;const[L,$]=S.split("="),v=L?.trim(),A=$?.trim();if(!v||!A)return;const E=x[A];if(E==null||E===""){k.push(A);return}w[v]=E}),{params:w,missingSources:k}}),f=()=>{const{params:w}=g.value;return{api:n.api,customParams:Object.keys(w).length?w:void 0}},y=()=>{const w=g.value.missingSources;if(!w.length)return!0;const k=w.join(", ");return ge.notify({type:"warning",title:"Заповніть поля",message:`Поля (${k}) необхідні для завантаження файлу`,position:"right-bottom"}),!1},h=w=>{ge.notify({type:"error",title:"Помилка завантаження",message:w||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},b=()=>{n.disabled||s.value||y()&&o.value?.click()},C=async w=>{const{files:k}=w.target;if(!k||k.length===0)return;if(!y()){o.value&&(o.value.value="");return}const x=Array.from(k);if(n.max_size&&x.filter($=>!u($)).length>0){o.value&&(o.value.value="");return}if(x.filter(L=>!p(L)).length>0){o.value&&(o.value.value="");return}s.value=!0;try{if(n.multiple){const L=Array.from(k).map(async E=>await jn(E,f())),$=await Promise.all(L),A=$.filter(E=>E!==null).map(E=>E?.file_path).filter(Boolean);if(A.length===0){h();return}A.length<$.length&&h("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову."),l.value=[...l.value||[],...A],a("change",l.value)}else{const L=k[0],$=await jn(L,f());if(!$?.file_path){h();return}l.value=$?.file_path,a("change",l.value||"")}}catch(L){const $=L?.message||void 0;h($)}finally{s.value=!1,o.value&&(o.value.value="")}};return(w,k)=>(e.openBlock(),e.createElementBlock("div",sa,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:o,type:"file",accept:n.format,multiple:w.multiple,onChange:C,disabled:s.value||w.disabled},null,40,ia),!w.multiple&&l.value?(e.openBlock(),e.createBlock(hn,{key:0,item:l.value,"onUpdate:item":k[0]||(k[0]=x=>l.value=x),value:l.value,"onUpdate:value":k[1]||(k[1]=x=>l.value=x)},null,8,["item","value"])):w.multiple?(e.openBlock(),e.createElementBlock("div",ca,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(x,S)=>(e.openBlock(),e.createBlock(hn,{multiple:w.multiple,key:S,value:l.value,"onUpdate:value":k[2]||(k[2]=L=>l.value=L),item:d(S)},null,8,["multiple","value","item"]))),128)),e.createElementVNode("div",{onClick:b,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",w.disabled||s.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500 hover:bg-blue-50"])},[s.value?(e.openBlock(),e.createElementBlock("div",da)):(e.openBlock(),e.createBlock(e.unref(R.Plus),{key:0,class:"h-4 w-4"}))],2)])):e.createCommentVNode("",!0),w.multiple?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:2,onClick:b,class:e.normalizeClass([w.disabled||s.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500","relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-gray-300 rounded-lg flex items-center justify-center cursor-pointer hover:border-blue-500 transition-all duration-300 hover:bg-blue-50"])},[s.value?(e.openBlock(),e.createElementBlock("div",ua)):(e.openBlock(),e.createBlock(e.unref(R.Plus),{key:0,class:"h-4 w-4"}))],2))]))}}),[["__scopeId","data-v-63366cf6"]]),pa={class:"vs-input-file2 flex flex-col gap-4"},fa={class:"flex items-center gap-x-2"},ma=["accept","disabled"],ha={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"},ga={key:0,class:"rounded-lg border border-[#CFD9E0] bg-white p-4 shadow-sm"},ya={class:"flex items-center justify-between text-sm"},ba={class:"truncate pr-4"},ka={class:"font-medium text-slate-800 truncate"},xa={class:"text-slate-500"},wa={class:"text-slate-500 whitespace-nowrap"},_a={class:"mt-3 h-2 rounded-full bg-slate-100 overflow-hidden"},va={class:"mt-3 flex flex-wrap gap-2 text-sm"},Ca={key:0,class:"mt-2 text-sm text-rose-600"},Ea=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.ref(null),a=e.ref(null),o=e.ref(""),s=e.ref(0),c=e.ref(!1),i=e.ref(""),d=e.ref(null),u=e.inject("values"),p=e.computed(()=>t.format?t.format.split(",").map(B=>B.trim().toLowerCase()).filter(Boolean):[]),g=e.computed(()=>!a.value||!a.value.size?0:Math.min(100,Math.round(s.value/a.value.size*100))),f=e.computed(()=>a.value?`${b(s.value)} / ${b(a.value.size)}`:""),y=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"),h=()=>{t.disabled||c.value||x()&&l.value?.click()},b=B=>{if(!Number.isFinite(B))return"0 B";const M=["B","KB","MB","GB"];let N=0,F=B;for(;F>=1024&&N<M.length-1;)F/=1024,N+=1;return`${F.toFixed(N===0?0:1)} ${M[N]}`},C=B=>{if(!t.max_size)return!0;const M=t.max_size*1024*1024;return B.size>M?(ge.notify({type:"error",title:"Файл занадто великий",message:`Максимальний розмір ${t.max_size} МБ`,position:"right-bottom"}),!1):!0},w=B=>{if(!p.value.length)return!0;const M=`.${B.name.split(".").pop()?.toLowerCase()||""}`;return p.value.includes(M)?!0:(ge.notify({type:"error",title:"Непідтримуваний формат",message:`Дозволені формати: ${p.value.join(", ")}`,position:"right-bottom"}),!1)},k=e.computed(()=>{const B={},M=[];if(!t.customParams?.length)return{params:B,missing:M};const N=u?.value??{};return t.customParams.forEach(F=>{if(!F)return;const[T,U]=F.split("="),j=T?.trim(),Y=U?.trim();if(!j||!Y)return;const ee=N[Y];ee==null||ee===""?M.push(Y):B[j]=ee}),{params:B,missing:M}}),x=()=>k.value.missing.length?(ge.notify({type:"warning",title:"Заповніть поля",message:`Потрібні значення: ${k.value.missing.join(", ")}`,position:"right-bottom"}),!1):!0,S=B=>{const M=B.target,N=M.files?.[0];if(N){if(!x()){M.value="";return}if(!C(N)||!w(N)){M.value="";return}a.value=N,s.value=0,o.value="",i.value=""}},L=async()=>{if(!a.value){h();return}try{i.value="";const B={id:o.value||"",fileName:a.value.name,subdir:t.subdir,size:a.value.size,...k.value.params},M=await fetch("/api/file/upload2/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(B)});if(!M.ok)throw new Error("Не вдалося ініціалізувати завантаження");const N=await M.json();o.value=N.id||o.value,s.value=N.uploaded||0,await $()}catch(B){i.value=B?.message||"Помилка при старті завантаження"}},$=async()=>{if(!(!a.value||!o.value)){c.value=!0;try{for(;s.value<a.value.size;){const B=s.value,M=Math.min(B+t.chunkSize,a.value.size),N=a.value.slice(B,M);d.value=new AbortController;const F=await fetch(`/api/file/upload2/${o.value}`,{method:"PATCH",headers:{"Content-Range":`bytes ${B}-${M-1}/${a.value.size}`},body:N,signal:d.value.signal});if(!F.ok)throw new Error("Помилка завантаження частини");const T=await F.json().catch(()=>({}));if(T.uploaded!=null?s.value=Number(T.uploaded):s.value=M,T.finished||s.value>=a.value.size){c.value=!1,n.value=T.file_path||T.url||o.value,ge.notify({type:"success",title:"Файл завантажено",message:a.value.name,position:"right-bottom"}),V();return}}}catch(B){if(B?.name==="AbortError")return;i.value=B?.message||"Помилка при завантаженні",c.value=!1}finally{d.value=null,c.value=!1}}},v=()=>{c.value&&(d.value?.abort(),d.value=null,c.value=!1)},A=async()=>{if(a.value){if(!o.value){await L();return}await $()}},E=()=>{d.value?.abort(),d.value=null,V()},V=()=>{const B=l.value;B&&(B.value=""),a.value=null,o.value="",s.value=0,i.value=""};return(B,M)=>(e.openBlock(),e.createElementBlock("div",pa,[e.createElementVNode("div",fa,[e.createElementVNode("input",{ref_key:"fileInput",ref:l,type:"file",class:"hidden",accept:t.format,disabled:c.value||t.disabled,onChange:S},null,40,ma),n.value?(e.openBlock(),e.createBlock(hn,{key:0,item:n.value,"onUpdate:item":M[0]||(M[0]=N=>n.value=N),value:n.value,"onUpdate:value":M[1]||(M[1]=N=>n.value=N)},null,8,["item","value"])):(e.openBlock(),e.createElementBlock("div",{key:1,onClick:h,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",y.value])},[c.value?(e.openBlock(),e.createElementBlock("div",ha,[M[2]||(M[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(g.value)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(R.Plus),{key:1,class:"h-4 w-4"}))],2))]),a.value&&!n.value?(e.openBlock(),e.createElementBlock("div",ga,[e.createElementVNode("div",ya,[e.createElementVNode("div",ba,[e.createElementVNode("div",ka,e.toDisplayString(a.value.name),1),e.createElementVNode("div",xa,e.toDisplayString(b(a.value.size)),1)]),e.createElementVNode("div",wa,e.toDisplayString(f.value),1)]),e.createElementVNode("div",_a,[e.createElementVNode("div",{class:"h-full rounded-full bg-blue-500 transition-all duration-300",style:e.normalizeStyle({width:`${g.value}%`})},null,4)]),e.createElementVNode("div",va,[!c.value&&s.value>0&&s.value<(a.value?.size||0)?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:A}," Resume ")):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:v}," Pause ")):e.createCommentVNode("",!0),!c.value&&s.value===0?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"rounded border border-slate-300 px-3 py-1",onClick:L}," Upload ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"rounded border border-rose-200 px-3 py-1 text-rose-600",onClick:E}," Cancel ")]),i.value?(e.openBlock(),e.createElementBlock("p",Ca,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),gn=pe(Ea,[["__scopeId","data-v-a2e59d0a"]]),Ba={class:"flex items-center justify-center h-[30px] w-[30px]"},Va={class:"max-w-[55vw]"},Sa={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},$a={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Aa={class:"px-[5px]"},Fa={class:""},Ot=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(r){const t=r,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function l(a){if(a<1024)return`${a} B`;const o=a/1024;return o<1024?`${o.toFixed(2)} KB`:`${(o/1024).toFixed(2)} MB`}return(a,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Ba,[e.createVNode(e.unref(R.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Va,[e.createElementVNode("p",Sa,e.toDisplayString(a.item?.uploaded_name),1),e.createElementVNode("p",$a,[e.createElementVNode("span",null,e.toDisplayString(a.item?.username),1),e.withDirectives(e.createElementVNode("span",Aa,"|",512),[[e.vShow,a.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),o[0]||(o[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",Fa,e.toDisplayString(l(a.item?.size)),1)])])],64))}}),Na={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Da={key:0,class:"flex w-full gap-x-3 items-center"},Ma={key:1,class:"flex gap-x-3 w-full items-center"},Ta={key:2,class:"flex gap-x-3 w-full items-center"},La=["href"],Ia={key:3,class:"flex gap-x-3 w-full items-center"},Oa={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},za={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"},Ra={class:"inline-block"},Pa={class:"inline-block"},ja=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(r,{emit:t}){const n=r,l=t;function a(u){return["pdf","json"].includes(u.ext)}function o(u){return["ppt","pptx","doc","docx","xls","xlsx"].includes(u.ext)}function s(u){const p=document.createElement("a");p.setAttribute("download",u?.uploaded_name),p.href=u?.file_path,p.click()}async function c(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),l("update")}catch(u){console.error(u)}}function i(){l("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function d(u){(n.item.ext==="jpg"||n.item.ext==="png")&&l("openLightbox",{item:n.item,index:u})}return(u,p)=>(e.openBlock(),e.createElementBlock("div",Na,[u.item.ext==="jpg"||u.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Da,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=g=>d(u.index))},[e.createVNode(Ot,{item:u.item},null,8,["item"])])])):a(u.item)?(e.openBlock(),e.createElementBlock("div",Ma,[e.createVNode(Ot,{item:u.item},null,8,["item"])])):o(u.item)?(e.openBlock(),e.createElementBlock("div",Ta,[e.createElementVNode("a",{href:`/api/file-preview?id=${u.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Ot,{item:u.item},null,8,["item"])],8,La)])):(e.openBlock(),e.createElementBlock("div",Ia,[e.createVNode(Ot,{item:u.item},null,8,["item"])])),e.createElementVNode("div",Oa,[e.createElementVNode("div",za,[e.createElementVNode("div",Ra,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:p[1]||(p[1]=g=>s(u.item))},[e.createVNode(e.unref(R.Download),{class:"h-4 w-4"})])]),p[3]||(p[3]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",Pa,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:p[2]||(p[2]=g=>i())},[e.createVNode(e.unref(R.Trash2),{class:"h-4 w-4"})])])])])]))}}),Ua={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},Ha={class:"flex w-full mb-[12px] items-center gap-x-2"},qa={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Ka={class1:"ml-auto"},Ga={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"},Wa={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},Ya={class:"relative"},Za={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},Xa={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"},Ja={key:0},qn=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(r,{emit:t}){const n=r,l=e.inject("form"),a=e.computed(()=>l.value.formId),o=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),u=e.ref([]),p=e.ref(""),g=e.computed(()=>Array.isArray(u.value)?u.value.filter(k=>k.ext==="jpg"||k.ext==="png").map(k=>k?.file_path):[]),f=e.computed(()=>p.value===""?u.value:u.value.filter(k=>k?.uploaded_name?.includes(p.value))),y=k=>{const x=g.value.findIndex(S=>S===k.item.file_path);x!==-1&&(o.value=!0,s.value=x)},h=async()=>{try{const k=await fetch(`${n.prefix}/widget/file/${a.value}`).then(x=>x.json());u.value=k?.rows}catch(k){console.error(k)}},b=async k=>{await Promise.all(Array.from(k.target.files).map(async x=>{const S=new FormData;S.append("file",x);try{const L=`${n.prefix}/widget/file/${a.value}`,$=await fetch(L,{method:"POST",body:S});return $.ok?(c("update","file-list"),x):(ge.notify({type:$.status>=400&&$.status<500?"warning":"error",title:"Error",message:`Error code: ${$.status}`}),null)}catch(L){return ge.notify({type:"error",title:"Error",message:L.message||"Unknown error"}),console.error(L),null}})),await h()},C=k=>{const x={...k};return k.cancel||(x.cancel=()=>{i.value=!1}),k.updateListOnConfirm&&(x.confirm=async()=>{await k.confirm(),i.value=!1,h()}),x},w=k=>{d.value=C(k),i.value=!0};return e.watch(a,k=>{k&&h()}),e.onMounted(()=>{a.value&&h()}),(k,x)=>{const S=e.resolveComponent("Lightbox"),L=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",Ua,[e.createElementVNode("div",Ha,[e.createElementVNode("h2",qa," Файлів: "+e.toDisplayString(u.value?.length),1),e.createElementVNode("div",Ka,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:x[0]||(x[0]=$=>b($))},null,32),e.createElementVNode("div",Ga,[e.createVNode(e.unref(R.Upload),{class:"h-4 w-4"})])])])]),u.value?.length>4?(e.openBlock(),e.createElementBlock("div",Wa,[e.createElementVNode("div",null,[e.createElementVNode("div",Ya,[e.createElementVNode("div",Za,[e.createVNode(e.unref(R.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":x[1]||(x[1]=$=>p.value=$),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",Xa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,($,v)=>(e.openBlock(),e.createBlock(ja,{key:v,prefix:k.prefix,item:$,index:v,onUpdate:x[2]||(x[2]=A=>k.$emit("update","file-list")),onOpenModal:x[3]||(x[3]=A=>w(A)),onOpenLightbox:x[4]||(x[4]=A=>y(A))},null,8,["prefix","item","index"]))),128)),f.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ja,x[8]||(x[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(S,{modelValue:o.value,"onUpdate:modelValue":x[5]||(x[5]=$=>o.value=$),startIndex:s.value,"onUpdate:index":x[6]||(x[6]=$=>s.value=$),images:g.value},null,8,["modelValue","startIndex","images"]),e.createVNode(L,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":x[7]||(x[7]=$=>i.value=$),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),Qa={class:"flex items-center justify-between"},eo={class:"text-[16px] text-gray-900 font-medium"},to={class:"grid gap-3"},no=pe(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(r){const t=r,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,l=>{n.value=l}),(l,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Qa,[e.createElementVNode("p",eo,e.toDisplayString(r.title),1),e.createVNode(cn,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=o=>n.value=o),style:e.normalizeStyle(r.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",to,[e.renderSlot(l.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),ro={class:"text-[16px] text-gray-900 font-medium"},lo={class:"grid gap-3"},ao=pe(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(r){const t=r,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,l=>{n.value=l}),(l,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:a[0]||(a[0]=o=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(R.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",ro,e.toDisplayString(r.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",lo,[e.renderSlot(l.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),oo={class:"flex items-center justify-between"},so={switcher:no,accordion:ao,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",oo,[e.createElementVNode("p",null,e.toDisplayString(r.title),1)]),e.renderSlot(t.$slots,"default")]))}})},Ye={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},io=(r,t)=>String(r)===String(t),co=(r,t)=>String(r)!==String(t),uo=(r,t)=>r>t,po=(r,t)=>r>=t,fo=(r,t)=>r<t,mo=(r,t)=>r<=t,ho=(r,t)=>Array.isArray(t)&&t.length===2?r>=t[0]&&r<=t[1]:!1,go=(r,t)=>String(r).startsWith(String(t)),yo=(r,t)=>String(r).endsWith(String(t)),bo=(r,t)=>String(r).includes(String(t)),ko=(r,t)=>Array.isArray(t)?t.includes(r):!1,xo=(r,t)=>Array.isArray(t)?!t.includes(r):!0,Kn=(r,t)=>{if(!t)return!0;switch(t?.[1]){case Ye.Equal:return io(r,t?.[2]);case Ye.Inequal:return co(r,t?.[2]);case Ye.Higer:return uo(r,t?.[2]);case Ye.HigerOrEqual:return po(r,t?.[2]);case Ye.Lower:return fo(r,t?.[2]);case Ye.LowerOrEqual:return mo(r,t?.[2]);case Ye.Between:return ho(r,t?.[2]);case Ye.StartWith:return go(r,t?.[2]);case Ye.EndWith:return yo(r,t?.[2]);case Ye.Contain:return bo(r,t?.[2]);case Ye.In:return ko(r,t?.[2]);case Ye.NotIn:return xo(r,t?.[2]);default:return!0}},Gn=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(r){const t=r,n=e.inject("values",e.ref({})),l=e.inject("form"),a=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 Kn(u,i)})),o=e.computed(()=>so[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const c=n.value[t.name];if(c)return c;const i={};return n.value={...n.value,[t.name]:i},i});return(c,i)=>r.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{key:0,title:r.title,style:e.normalizeStyle(r.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,d=>(e.openBlock(),e.createBlock(cr,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:r.style,error:e.unref(l)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),wo=["aria-expanded","data-focus"],_o={class:"relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},vo={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Co={class:"flex items-center gap-1 min-w-0"},Eo=["title"],Bo=["innerHTML"],Vo=["onClick"],So={class:"flex-1 min-w-[2px]"},$o=["placeholder"],Ao=["title"],Fo=["innerHTML"],No={key:3,class:"truncate flex-1 min-w-0"},Do={key:2,class:"flex-1 min-w-[2px]"},Mo=["placeholder"],To={class:"flex items-center shrink-0"},Lo=["disabled"],Io={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Oo=["disabled","title"],zo=["aria-disabled","onClick"],Ro=["innerHTML"],Po={key:1,class:"px-3 py-2 text-center text-gray-500"},jo=["disabled"],yn="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",bn=pe(e.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(r,{emit:t}){const n=r,l=t,a=e.computed(()=>n.multiple),o=e.computed(()=>n.disabled);Le(n.style);const s=e.computed({get:()=>n.modelValue,set:I=>l("update:modelValue",I)});!s.value&&n.defaultValue&&(s.value=n.defaultValue);const c=e.ref(null),i=e.ref(null),d=e.ref(null),u=e.ref(null),p=e.ref(!1),g=e.ref(!1),f=e.ref(null),y=e.ref([]),h=e.ref(-1),b=e.ref([]),C=e.ref(""),w=e.ref(null),k=e.ref("bottom"),x=e.ref({}),S=e.ref([]),L=e.computed(()=>{if(!S.value.length)return[];const I=y.value,q=new Map(I.map(H=>[H.id?.toString(),H]));return S.value.map(H=>q.get(H?.toString())).filter(H=>!!H)}),$=e.computed(()=>n.placeholder||"Select..."),v=e.computed(()=>j(f.value));e.computed(()=>a.value?!S.value.length&&C.value==="":!v.value&&C.value==="");const A=e.computed(()=>o.value?!1:a.value?S.value.length>0:!!s.value),E=I=>a.value?S.value.some(q=>q?.toString()===I?.toString()):s.value?.toString()===I?.toString(),V=e.computed(()=>{let I=y.value??[];if(!n.data&&C.value.trim()!==""){const q=C.value.toLowerCase();I=I.filter(H=>{const le=j(H).toLowerCase(),ke=H.text?.toLowerCase?.()||"";return le.includes(q)||ke.includes(q)})}if(a.value&&S.value.length){const q=new Set(S.value.map(H=>H?.toString()));I=I.filter(H=>!q.has(H.id?.toString()))}return I}),B=e.inject("values"),M=e.inject("field-props"),N=/\{\{\s*([^}]+?)\s*\}\}/g,F=I=>(I?String(I):"").replace(/<[^>]*>/g,"").trim(),T=e.computed(()=>n.slot??n?.optionTemplate??""),U=I=>{if(!I)return"";const q=T.value;return q?q.replace(N,(H,le)=>{const ke=le.trim(),we=I[ke];return we!=null?String(we):""}):I.text??""},j=I=>{if(!I)return"";if(!T.value)return I.text??"";const H=U(I);return F(H)||I.text||""},Y=I=>I?I.icon??null:null,ee=I=>!!(I?.color&&!Y(I)),ve=I=>I?.color?{color:I.color}:void 0,ye=I=>!!Y(I),W=(I,q,H)=>{if(!M)return!1;const le=M.value?.[I]??{},ke=(_e,Ae,Re)=>{if(!Ae.length)return _e;const[We,...st]=Ae,Ze={..._e};if(!st.length)return Ze[We]=Re,Ze;const Lt=typeof _e[We]=="object"&&_e[We]!==null?_e[We]:{};return Ze[We]=ke(Lt,st,Re),Ze},we=ke(le,q,H);return M.value={...M.value||{},[I]:we},!0},ae=I=>{if(!n.set)return;const q=B?.value;!q&&!M||Object.entries(n.set).forEach(([H,le])=>{if(!H)return;const ke=I?I[le]:null,we=H.split(".").map(Re=>Re.trim()).filter(Boolean);if(!we.length)return;const[_e,...Ae]=we;Ae.length&&W(_e,Ae,ke??null)||q&&(q[_e]=ke??null)})},ie=e.computed(()=>n.parent?B?.value?.[n.parent]?.toString()??null:null),be=async I=>{if(!n.data){let q=n.options??[];if(I?.trim()){const H=I.toLowerCase();q=q.filter(le=>{const ke=j(le).toLowerCase(),we=le.text?.toLowerCase?.()||"";return ke.includes(H)||we.includes(H)})}return q}try{const q=n.host??"",H=n.prefix??"api",le=n.api??`/${H}/suggest/${n.data}`,ke=`${q}${le}`,we=new URLSearchParams;return we.set("json","1"),I&&we.set("key",I),ie.value!==void 0&&ie.value!==null&&ie.value!==""&&we.set("parent",ie.value),n.start===1&&we.set("start","1"),(await fetch(`${ke}?${we.toString()}`).then(Ae=>Ae.json()))?.data??[]}catch{return[]}},xe=async()=>{n.data?y.value=await be(C.value):y.value=n.options?[...n.options]:[]},K=async I=>{if(I==null||I==="")return null;const q=y.value?.find(H=>H?.id?.toString()===String(I));if(q)return q;if(n.data)try{const H=n.host??"",le=n.prefix??"api",ke=n.api??`/${le}/suggest/${n.data}`,we=`${H}${ke}`,_e=new URLSearchParams;return _e.set("json","1"),_e.set("val",String(I)),ie.value!==void 0&&ie.value!==null&&ie.value!==""&&_e.set("parent",ie.value),n.start===1&&_e.set("start","1"),((await fetch(`${we}?${_e.toString()}`).then(We=>We.json()))?.data??[])?.[0]??null}catch{return null}return null},se=async I=>{const q=new Set(y.value.map(le=>le.id?.toString())),H=I.filter(le=>!q.has(le?.toString()));H.length&&await H.reduce(async(le,ke)=>{await le;const we=await K(ke);we&&y.value.push(we)},Promise.resolve())},Me=()=>{if(!V.value.length){h.value=-1;return}let I=0;if(!a.value&&f.value){const q=f.value.id?.toString(),H=V.value.findIndex(le=>le.id?.toString()===q);H>=0&&(I=H)}h.value=I,e.nextTick(()=>{qe(b.value[I],d.value)})},Ie=async()=>{o.value||(p.value=!0,await xe(),await e.nextTick(()=>{J(),w.value?.focus()}),Me())},z=()=>{p.value=!1,h.value=-1,e.nextTick(()=>{w.value?.blur()})},G=async I=>{if(o.value)return;!p.value?await Ie():z()},X=async()=>{if(!o.value){if(p.value){z();return}await Ie()}},oe=()=>{a.value?(S.value=[],s.value=[],l("change",[]),Ee(null,[])):(f.value=null,s.value=null,l("change",null),Ee(null,null)),ae(null),C.value="",e.nextTick(()=>w.value?.focus())},ce=I=>{a.value&&(S.value=S.value.filter(q=>q?.toString()!==I?.toString()),s.value=[...S.value],l("change",s.value),Ee(null),e.nextTick(()=>w.value?.focus()))},Ee=(I,q)=>{const H=q??(a.value?[...S.value]:I?.id??null);l("value-selected",{name:n.name,value:H,option:I})},Ve=I=>{a.value?(E(I.id)||(S.value=[...S.value,I.id],s.value=[...S.value],l("change",s.value),Ee(I)),C.value="",e.nextTick(()=>{w.value?.focus(),h.value=Math.min(h.value,V.value.length-1)}),ae(null)):(f.value=I,s.value=I.id,l("change",s.value),Ee(I),C.value="",z(),ae(I))},Ce=I=>{if(E(I.id)){a.value||z();return}Ve(I)},qe=(I,q)=>{if(!I||!q)return;const H=I.offsetTop,le=H+I.offsetHeight,ke=q.scrollTop,we=ke+q.clientHeight;let _e=q.scrollTop;H<ke?_e=H-80:le>we&&(_e=le-q.clientHeight+4);const Ae=q;Ae.scrollTop=_e},P=I=>{let q=I.parentElement;for(;q;){if(q.classList.contains("ui-dialog__content"))return q;const H=window.getComputedStyle(q),le=H.overflow+H.overflowY+H.overflowX;if(le.includes("auto")||le.includes("scroll")||q===document.body||q===document.documentElement)return q;q=q.parentElement}return document.body},J=()=>{if(!i.value)return;const I=i.value.getBoundingClientRect(),q=window.innerHeight||document.documentElement.clientHeight,H=window.innerWidth||document.documentElement.clientWidth,le=8,ke=8,we=n.maxHeight||300,_e=q-I.bottom-ke-le,Ae=I.top-ke-le,Re=_e>=Ae,We=Math.max(H-le*2,0);let{width:st}=I;We>0&&st>We&&(st=We);let{left:Ze}=I;Ze+st+le>H&&(Ze=H-st-le),Ze=Math.max(Ze,le);const Lt=Math.min(we,Math.max(Re?_e:Ae,50));k.value=Re?"bottom":"top",x.value={position:"fixed",left:`${Ze}px`,width:`${st}px`,maxHeight:`${Lt}px`,transform:Re?"none":"translateY(-100%)",top:Re?`${I.bottom+ke}px`:`${I.top-ke}px`}},Q=async I=>{o.value||!p.value&&(I.key==="ArrowDown"||I.key==="ArrowUp")&&(I.preventDefault(),await Ie())},he=I=>{if(!p.value)return;const{key:q}=I;if(q==="ArrowDown")I.preventDefault(),h.value+1<V.value.length&&(h.value+=1,qe(b.value[h.value],d.value));else if(q==="ArrowUp")I.preventDefault(),h.value>0&&(h.value-=1,qe(b.value[h.value],d.value));else if(q==="Enter"){I.preventDefault();const H=V.value[h.value];H&&Ve(H),w.value?.blur()}else q==="Escape"?(I.preventDefault(),z()):q==="Backspace"?a.value&&C.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),s.value=[...S.value],l("change",s.value)):q==="Home"?(h.value=0,qe(b.value[0],d.value)):q==="End"?(h.value=V.value.length-1,qe(b.value[h.value],d.value)):q==="Tab"&&z()},Be=()=>{o.value||(g.value=!0)},Qe=()=>{g.value=!1,C.value=""},at=I=>{I.key==="Escape"&&p.value&&z()},Ke=I=>{const q=I.target;c.value?.contains(q)||u.value?.contains(q)||z()},ft=I=>{p.value&&d.value&&!d.value.contains(I.target)&&J()},ot=()=>{p.value&&J()},et=()=>{p.value&&J()};e.watch(()=>n.options,I=>{I?.length&&(y.value=[...I],Ge())},{immediate:!0});async function Ge(){if(a.value)Array.isArray(s.value)?S.value=[...s.value]:(S.value=s.value==null?[]:[s.value],s.value=[...S.value]),n.data&&S.value.length&&(await se(S.value),await e.nextTick());else{if(Array.isArray(s.value)){const I=s.value[0]??null;s.value=I??null}s.value!=null&&(f.value=await K(s.value)),ae(f.value??null)}}e.watch(s,()=>{Ge()}),e.onMounted(async()=>{addEventListener("keydown",at),addEventListener("scroll",ft,!0),addEventListener("resize",ot),document.addEventListener("click",Ke,!0),i.value&&P(i.value).addEventListener("scroll",et,!0),n.options?.length&&!n.data?y.value=[...n.options]:n.data&&(y.value=await be("")),await Ge(),xt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",at),removeEventListener("scroll",ft,!0),removeEventListener("resize",ot),document.removeEventListener("click",Ke,!0),i.value&&P(i.value).removeEventListener("scroll",et,!0)});const it=e.ref(!1),Dt=e.ref({}),Mt=e.ref([]),rn=e.ref(null);async function Tt(){if(!(!n.add?.token||rn?.value.validate()))try{const q=n.add.api??`/api/table/${n.add.token}`,H=await fetch(q,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Dt.value)}),le=await H.json().catch(()=>({})),ke=le?.error||le?.message,we=Number(le?.code)>=400;if(!H.ok||we){ge.notify({title:"Помилка",type:"error",message:ke||`Код помилки: ${le?.code||H.status}`});return}const _e=le?.id;if(!_e){ge.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}if(!n.options?.length&&n.data){const Ae=await fetch(`${n.api??`/api/suggest/${n.data}`}?val=${_e}`).then(Re=>Re.json());f.value=Ae[0],y.value.push(Ae[0]),s.value=_e}it.value=!1,ge.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(q){ge.notify({title:"Помилка",type:"error",message:q?.message||"Не вдалося створити обʼєкт."})}}async function ln(){if(!n.add)return null;const I=await fetch(`/api/template/form/${n.add.form}`).then(q=>q.json());return Mt.value=I.schema,it.value=!0,null}function an(I,q=200){let H;return(...le)=>{H&&clearTimeout(H),H=window.setTimeout(()=>I(...le),q)}}const on=an(async I=>{y.value=await be(I)},200);e.watch(C,I=>{n.data&&on(I.trim())}),e.watch(()=>n.options,I=>{!n.data&&I?.length&&(y.value=[...I],Ge())},{immediate:!0}),e.watch(()=>n.parent??n.parentValue,()=>{n.data&&xe()});const xt=e.ref(!0);return e.watch(ie,async()=>{if(n.data&&(xt.value||(a.value?(S.value=[],s.value=[],l("change",[])):(f.value=null,s.value=null,l("change",null))),await xe(),n.auto===1&&ie.value&&y.value.length>0)){const I=y.value[0];I&&Ve(I)}}),(I,q)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:it.value,"onUpdate:visible":q[1]||(q[1]=H=>it.value=H),class:"z-[1000]",title:"Додати",buttonText:"Додати",onDone:Tt,teleport:I.teleport},{default:e.withCtx(()=>[e.createVNode(tt,{schema:Mt.value,modelValue:Dt.value,"onUpdate:modelValue":q[0]||(q[0]=H=>Dt.value=H),ref_key:"addForm",ref:rn},null,8,["schema","modelValue"])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:q[5]||(q[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[q[6]||(q[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),q[7]||(q[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createElementVNode("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",o.value?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":p.value,"aria-haspopup":"listbox",onKeydown:Q,onClick:X,"data-focus":p.value||g.value?"true":"false",ref_key:"triggerRef",ref:i},[e.createElementVNode("div",_o,[a.value?(e.openBlock(),e.createElementBlock("div",vo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(L.value,H=>(e.openBlock(),e.createElementBlock("div",{class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full",key:H.id},[e.createElementVNode("div",Co,[ee(H)?(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:H?.color})},null,4)):e.createCommentVNode("",!0),!T.value&&ye(H)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(yn),style:e.normalizeStyle(ve(H)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(Y(H)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:j(H)},[T.value?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:U(H)},null,8,Bo)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(H.text),1)],64))],8,Eo)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(le=>ce(H.id),["stop"])},[e.createVNode(e.unref(R.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Vo)]))),128)),e.createElementVNode("div",So,[!o.value&&I.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:w,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:S.value.length?" ":$.value,"onUpdate:modelValue":q[2]||(q[2]=H=>C.value=H),onFocus:Be,onBlur:Qe,onKeydown:he},null,40,$o)),[[e.vModelText,C.value]]):e.createCommentVNode("",!0)])])):!a.value&&v.value&&C.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate text-gray-900 absolute inset-x-0 pl-2 flex items-center gap-1 min-w-0"]),title:v.value},[ee(f.value)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:f.value?.color})},null,4)):e.createCommentVNode("",!0),!T.value&&ye(f.value)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(yn),style:e.normalizeStyle(ve(f.value)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(Y(f.value)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),T.value?(e.openBlock(),e.createElementBlock("span",{key:2,class:"truncate flex-1 min-w-0",innerHTML:U(f.value)},null,8,Fo)):(e.openBlock(),e.createElementBlock("span",No,e.toDisplayString(f.value?.text),1))],8,Ao)):e.createCommentVNode("",!0),a.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Do,[!o.value&&I.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:w,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:v.value?" ":$.value,"onUpdate:modelValue":q[3]||(q[3]=H=>C.value=H),onFocus:Be,onBlur:Qe,onKeydown:he},null,40,Mo)),[[e.vModelText,C.value]]):e.createCommentVNode("",!0)]))]),e.createElementVNode("div",To,[A.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:o.value,onClick:e.withModifiers(oe,["stop"])},[e.createVNode(e.unref(R.X),{class:"h-4 w-4"})],8,Lo)):e.createCommentVNode("",!0),A.value?(e.openBlock(),e.createElementBlock("div",Io)):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.value,onClick:q[4]||(q[4]=e.withModifiers(H=>G(),["stop"])),title:p.value?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(R.ChevronDown),{class:"h-4 w-4"})],8,Oo)])],42,wo),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[p.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:u,class:e.normalizeClass(["fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]"]),style:e.normalizeStyle(x.value),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:x.value.maxHeight||"300px"}),ref_key:"listRef",ref:d},[V.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(V.value,(H,le)=>(e.openBlock(),e.createElementBlock("div",{key:H.id,ref_for:!0,ref:ke=>b.value[le]=ke,class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",E(H.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",h.value===le&&!E(H.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":E(H.id)?"true":"false",role:"option",tabindex:"-1",onClick:ke=>Ce(H)},[ee(H)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:H?.color})},null,4)):e.createCommentVNode("",!0),!T.value&&ye(H)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(yn),style:e.normalizeStyle(ve(H)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(Y(H)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["leading-[19px]",h.value===H.id?"text-white":"",(h.value===le,"")])},[T.value?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:U(H)},null,8,Ro)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(H.text),1)],64))],2)],10,zo))),128)):(e.openBlock(),e.createElementBlock("div",Po," No options "))],4)],4)):e.createCommentVNode("",!0)]))],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:ln,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(R.Plus),{class:"h-4 w-4"}),q[8]||(q[8]=e.createElementVNode("span",null,"Додати",-1))],8,jo)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-4f31eacf"]]),Uo=["placeholder","disabled"],Wn=e.defineComponent({__name:"vs-input-textarea",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Le(t.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>!!t.disabled),o=e.computed(()=>t.placeholder??"");function s(){typeof l.value=="string"&&(l.value=l.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),placeholder:o.value,disabled:a.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,Uo)),[[e.vModelText,l.value]])}}),Yn=e.defineComponent({__name:"vs-input-richtext",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},format:{default:"html"},richtextProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>pm)),n=r,{inputClass:l}=Le(n.style),a=e.useModel(r,"modelValue"),o=e.computed(()=>!!n.disabled),s=e.computed(()=>n.placeholder??""),c=e.computed(()=>({height:"300px",format:n.format,...n.richtextProps}));return(i,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full",[i.customClass,e.unref(l)]]),style:e.normalizeStyle(o.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=u=>a.value=u),placeholder:s.value},c.value),null,16,["modelValue","placeholder"])],6))}}),Ho={},qo={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Ko(r,t){return e.openBlock(),e.createElementBlock("svg",qo,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 Go=pe(Ho,[["render",Ko]]),Wo={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},Yo={class:"flex flex-col gap-2 !p-4 border-b border-gray-200 sm:flex-row sm:items-center sm:justify-between bg-gray-50"},Zo={class:"relative w-full"},Xo={class:"flex flex-nowrap items-center justify-end gap-2 w-full overflow-x-auto"},Jo={class:"w-full overflow-x-auto"},Qo={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},es={class:"bg-gray-50"},ts={class:"border-b border-gray-200"},ns={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},rs=["onClick"],ls={key:0,class:"text-gray-400"},as={key:0,colspan:"100%",class:"text-center"},os={class:"w-full"},ss={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},is=["onDragstart","onDragover","onDrop"],cs={class:"px-4 py-3 text-center align-middle"},ds={class:"flex items-center justify-center"},us=["innerHTML"],ps={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},fs={key:0},ms=["src"],hs={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},gs={key:1,class:"flex items-center justify-center"},ys={key:2,class:"text-sm font-medium text-gray-900"},bs={class:"px-4 py-3 text-right whitespace-nowrap"},ks={class:"flex items-center justify-end gap-2"},xs=["onClick"],ws=["onClick"],_s={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},Zn=e.defineComponent({__name:"vs-input-datatable",props:e.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useSlots(),l=z=>t.actions===void 0?!0:t.actions.includes(z),a=e.useModel(r,"modelValue"),o=e.ref({}),s=e.ref(""),c=e.ref(null),i=e.ref("asc"),d=e.computed(()=>{const z=a.value??[],G=s.value?z.filter(ce=>u.value?.some(Ee=>{const Ve=Ee.key||Ee.name;if(!Ve)return!1;const Ce=ce[Ve];return Ce?Array.isArray(Ce)?Ce.join(", ").toLowerCase().includes(s.value.toLowerCase()):String(Ce).toLowerCase().includes(s.value.toLowerCase()):!1})):z;if(!c.value)return G;const X=c.value,oe=[...G].sort((ce,Ee)=>{const Ve=ye(ce?.[X]),Ce=ye(Ee?.[X]);return typeof Ve=="number"&&typeof Ce=="number"?Ve-Ce:String(Ve).localeCompare(String(Ce))});return i.value==="asc"?oe:oe.reverse()}),u=e.computed(()=>(t.colModel??[]).filter(z=>!z.tableHidden)),p=e.ref(null),g=e.ref(null),f=e.ref(null),y=z=>{p.value=z},h=z=>{g.value=z},b=z=>{if(p.value===null||p.value===z){p.value=null,g.value=null;return}const G=[...a.value],[X]=G.splice(p.value,1);G.splice(z,0,X),a.value=G,p.value=null,g.value=null},C=()=>{f.value&&f.value.click()},w=z=>{const G=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],X=z.toLowerCase();return G.some(oe=>X.endsWith(oe))},k=z=>{const X=z.target.files?.[0];if(!X)return;const oe=new FileReader;oe.onload=ce=>{try{const Ee=ce.target?.result;if(typeof Ee=="string"){const Ve=JSON.parse(Ee);Array.isArray(Ve)&&a.value.push(...Ve)}}catch(Ee){console.error("Error parsing file:",Ee)}},oe.readAsText(X)},x=()=>{const z=JSON.stringify(a.value,null,2),G=new Blob([z],{type:"application/json"}),X=URL.createObjectURL(G),oe=document.createElement("a");oe.href=X,oe.download="data.json",oe.click(),URL.revokeObjectURL(X)},S=new Set(["autocomplete","select","radio","checkbox","combobox"]),L=new Map,$=(z,G)=>{const X=`/api/suggest/${z}`,oe=X.includes("?")?"&":"?",ce=G?`&val=${G}`:"";return`${X}${oe}json=1${ce}`},v=z=>z==null||z===""?null:typeof z=="object"?z?.id!==void 0&&z.id!==null&&z.id!==""?z.id:null:z,A=z=>{const G=new Set;return Array.isArray(a.value)&&a.value.forEach(X=>{const oe=X?.[z];if(oe==null||oe==="")return;if(Array.isArray(oe)){oe.forEach(Ee=>{const Ve=v(Ee);Ve!==null&&G.add(Ve)});return}const ce=v(oe);ce!==null&&G.add(ce)}),G},E=async()=>{if(!t.colModel?.length)return;const z=t.colModel.filter(G=>G.data&&S.has(G.type?.toLowerCase()||""));z.length&&await Promise.all(z.map(async G=>{const X=G.key||G.name;if(!X)return;const oe=A(X),ce=Array.from(oe).map(Ce=>String(Ce)).sort(),Ee=ce.join(",");if(!ce.length||L.get(X)===Ee)return;L.set(X,Ee);const Ve=ce.map(encodeURIComponent).join(",");try{const qe=await(await fetch($(G.data,Ve))).json();o.value[X]=qe?.data??qe}catch(Ce){console.error("Failed to fetch column values",Ce)}}))};e.watch([()=>t.colModel,()=>a.value],()=>{E()},{immediate:!0,deep:!0});const V=e.ref(""),B=e.ref(!1);let M="edit",N=0;const F=z=>(z?.format||z?.type||"").toString().toLowerCase(),T=e.computed(()=>t.colModel?.filter(z=>F(z)!=="slot").map(z=>{const{slot:G,...X}=z;return X})??[]),U=e.ref({}),j=e.ref({}),Y=z=>typeof z!="string"?!1:!!n[z],ee=(z,G)=>G?G.split(".").reduce((X,oe)=>X==null?X:X[oe.trim()],z):z,ve=(z,G)=>typeof z!="string"?"":z.replace(/{{\s*([^}]+)\s*}}/g,(X,oe)=>{const ce=ee(G,oe.trim());return ce??""}),ye=z=>{if(z==null||z==="")return"";if(typeof z=="number")return z;if(typeof z=="boolean")return z?1:0;if(typeof z=="string")return z.toLowerCase();if(Array.isArray(z))return z.map(G=>ye(G)).join(", ");if(typeof z=="object"){if(z.text!==void 0)return String(z.text).toLowerCase();if(z.label!==void 0)return String(z.label).toLowerCase();if(z.id!==void 0)return String(z.id).toLowerCase()}return String(z).toLowerCase()},W=z=>{const G=z.key||z.name;if(G){if(c.value===G){i.value=i.value==="asc"?"desc":"asc";return}c.value=G,i.value="asc"}};async function ae(){V.value="Додати",B.value=!0,M="add",U.value={}}function ie(z,G){if(!z?.length)return null;const X=typeof G=="object"?G?.id:G;return X==null||X===""?null:z.find(oe=>oe?.id?.toString()===X.toString())?.text??null}function be(z){return z==null||z===""?"-":Array.isArray(z)?z.map(G=>typeof G=="object"?G?.text??G?.id??"-":G).join(", "):typeof z=="object"?z?.text??z?.id??"-":z}function xe(z,G){const X=G.key||G.name,oe=z?.[X],ce=o.value[X];if(!oe)return"-";if(Array.isArray(oe)){const Ve=oe.map(Ce=>ie(ce,Ce)).filter(Boolean);return Ve.length?Ve.join(", "):be(oe)}const Ee=ie(ce,oe);return Ee||be(oe)}async function K(z,G){V.value="Редагувати",B.value=!0,M="edit",N=G,U.value={...z}}function se(){const z=j.value.validate();if(z){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(z).map(([G,X])=>`${G}: ${X}`).join(`
|
|
2
|
-
`)});return}M==="add"?Array.isArray(a.value)?a.value=[...a.value,U.value]:a.value=[U.value]:a.value=a.value.map((G,X)=>X===N?U.value:G),B.value=!1}function Me(z){a.value=a.value.filter((G,X)=>X!==z)}function Ie(){B.value=!1}return(z,G)=>(e.openBlock(),e.createElementBlock("div",Wo,[e.createElementVNode("div",Yo,[e.createElementVNode("div",Zo,[e.createVNode(e.unref(R.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":G[0]||(G[0]=X=>s.value=X),placeholder:"Пошук",class:"w-full rounded-md border border-gray-200 bg-white pl-10 pr-3 py-2 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-100"},null,512),[[e.vModelText,s.value]])]),e.createElementVNode("div",Xo,[l("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:f,onChange:k,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),l("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:C,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(R.Upload),{class:"h-4 w-4 text-gray-700"}),G[4]||(G[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),l("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:x,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(R.Download),{class:"h-4 w-4 text-gray-700"}),G[5]||(G[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),l("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(R.Plus),{class:"h-4 w-4 text-white"}),G[6]||(G[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Jo,[e.createElementVNode("table",Qo,[e.createElementVNode("thead",es,[e.createElementVNode("tr",ts,[e.createElementVNode("th",ns,[e.createVNode(e.unref(R.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,X=>(e.openBlock(),e.createElementBlock("th",{key:X.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:oe=>W(X),class:"flex items-center gap-1 text-xs font-semibold text-gray-700 hover:text-gray-900 transition-colors"},[e.createElementVNode("span",null,e.toDisplayString(X.ua||X.label),1),c.value===(X.key||X.name)?(e.openBlock(),e.createElementBlock("span",ls,e.toDisplayString(i.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,rs)]))),128)),G[7]||(G[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":!g.value}])},[d.value.length===0?(e.openBlock(),e.createElementBlock("td",as,[e.createElementVNode("div",os,[e.createElementVNode("div",ss,[e.createVNode(Go,{class:"w-48 mx-auto"}),G[8]||(G[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(d.value,(X,oe)=>(e.openBlock(),e.createElementBlock("tr",{key:X.id,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":p.value===oe,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":g.value===oe}]),draggable:"true",onDragstart:ce=>y(oe),onDragover:e.withModifiers(ce=>h(oe),["prevent"]),onDrop:ce=>b(oe)},[e.createElementVNode("td",cs,[e.createElementVNode("div",ds,[e.createVNode(e.unref(R.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(u.value,ce=>(e.openBlock(),e.createElementBlock("td",{key:ce.key,class:"px-4 py-3 align-middle"},[F(ce)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[Y(ce.slot)?e.renderSlot(z.$slots,ce.slot,{key:0,row:X,value:X[ce.key],column:ce}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:ve(ce.slot,X)},null,8,us))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[F(ce)==="file"?(e.openBlock(),e.createElementBlock("div",ps,[w(xe(X,ce))?(e.openBlock(),e.createElementBlock("div",fs,[e.createElementVNode("img",{src:xe(X,ce),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,ms)])):(e.openBlock(),e.createElementBlock("div",hs,[e.createVNode(e.unref(R.FileText),{class:"h-4 w-4 min-w-4"})]))])):F(ce)==="color"?(e.openBlock(),e.createElementBlock("div",gs,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:xe(X,ce)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",ys,e.toDisplayString(xe(X,ce)),1))],64))]))),128)),e.createElementVNode("td",bs,[e.createElementVNode("div",ks,[e.createElementVNode("button",{onClick:ce=>K(X,oe),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(R.Pencil),{class:"h-4 w-4"})],8,xs),e.createElementVNode("button",{onClick:ce=>Me(oe),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(R.Trash2),{class:"h-4 w-4"})],8,ws)])])],42,is))),128))],2)])]),e.createVNode(e.unref(ge.VsModal),{visible:B.value,title:V.value,size:"lg",onClose:Ie,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(tt,{schema:T.value,values:U.value,"onUpdate:values":G[1]||(G[1]=X=>U.value=X),form:j.value,"onUpdate:form":G[2]||(G[2]=X=>j.value=X)},null,8,["schema","values","form"]),e.createElementVNode("div",_s,[e.createElementVNode("button",{type:"button",onClick:G[3]||(G[3]=X=>B.value=!1),class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:se,type:"button",class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"}," Зберегти ")])]),_:1},8,["visible","title"])]))}}),vs={},Cs={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 Es(r,t){return e.openBlock(),e.createElementBlock("svg",Cs,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 Bs=pe(vs,[["render",Es]]),Vs={},Ss={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 $s(r,t){return e.openBlock(),e.createElementBlock("svg",Ss,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 As=pe(Vs,[["render",$s]]),Fs={},Ns={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 Ds(r,t){return e.openBlock(),e.createElementBlock("svg",Ns,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 Ms=pe(Fs,[["render",Ds]]),Ts={class:"bg-white/30 p-1 rounded-md shadow w-fit"},Ls={class:"flex gap-2"},Is=["onClick","title"],Os=["src"],zs=e.defineComponent({__name:"map-layers",props:{basemaps:{}},emits:["onLayerChange"],setup(r,{emit:t}){const n=r,l=e.ref(Object.keys(n.basemaps)[0]),a=t;function o(i){a("onLayerChange",i),l.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(([p,g])=>{u=u.replace(new RegExp(p,"gi"),String(g))}),u}return(i,d)=>(e.openBlock(),e.createElementBlock("div",Ts,[e.createElementVNode("div",Ls,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.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":l.value===p}]),onClick:g=>o(p),title:u.name||p,role:"button",tabindex:"0"},[e.createElementVNode("img",{src:c(u),alt:"",class:"w-10 h-10 object-cover"},null,8,Os)],10,Is))),128))])]))}}),Rs={class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},Ps={key:0,class:"vs-select__options absolute z-50 mt-1 w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm"},js=["onClick"],Us={class:"relative flex-1 min-w-[140px]"},Hs=["placeholder"],qs={type:"submit",class:"absolute inset-y-0 right-2 flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},Ks="https://data.softpro.ua/api-user/gis-url-proxy",Gs="https://geo.rv.ua/api-user/dzk.api",Ws=pe(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(r,{emit:t}){const n=r,l=t,a=["here","xy","parcel"],o=e.computed(()=>{const x=n.config?.tools?.filter(S=>a.includes(S));return x&&x.length?x:a}),s=e.computed(()=>n.config?.placeholder?.trim()||"Пошук…"),c=e.ref(o.value[0]??a[0]);e.watch(o,x=>{x.includes(c.value)||(c.value=x[0])});const i=e.ref(""),d=e.ref(!1),u=e.ref(null);e.watch(c,()=>{i.value="",d.value=!1});function p(x){c.value=x}function g(x){if(!d.value)return;const S=u.value;S&&!S.contains(x.target)&&(d.value=!1)}e.onMounted(()=>{window.addEventListener("click",g,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",g,!0)});function f(x){return x==="xy"?"Координати":x==="parcel"?"Кадастр":"Адреси"}function y(x){const S=x.replace(/[,]+/g," ").trim();if(!S)return null;const L=S.split(/\s+/).filter(Boolean);if(L.length<2)return null;const $=L.slice(0,2).map(Number);if(!$.every(N=>Number.isFinite(N)))return null;const[v,A]=$;let E=v,V=A;const B=N=>Math.abs(N)<=90,M=N=>Math.abs(N)<=180;if(!B(E)||!M(V))if(B(V)&&M(E))E=A,V=v;else return null;return{lat:E,lng:V}}function h(x){return(x?.items||[]).map((L,$)=>({id:String(L?.id??$),title:L?.title||L?.address?.label||"Знайдений обʼєкт",lat:Number(L?.position?.lat),lng:Number(L?.position?.lng)})).filter(L=>Number.isFinite(L.lat)&&Number.isFinite(L.lng))}function b(x){const S=x?.result||x?.data||x;if(!S)return[];const L=S.geom_centroid;if(!L||!Array.isArray(L.coordinates))return[];const[$,v]=L.coordinates;return!Number.isFinite(v)||!Number.isFinite($)?[]:[{id:"parcel",title:S.cadnum||S.cad_num||"Земельна ділянка",lat:v,lng:$}]}function C(x){const L=x.replace(/\s+/g,"").split(":");if(L.length!==4)return!1;const $=[10,2,3,4];return L.every((v,A)=>v.length===$[A]&&/^\d+$/.test(v))}function w(x){l("goToCoordinates",[x.lat,x.lng])}async function k(){const x=i.value.trim();if(x){if(c.value==="xy"){const S=y(x);if(!S){ge.notify({type:"warning",title:"Пошук координат",message:"Не знайдено або невірний формат координат"});return}w(S),i.value="";return}try{const S=new URL(c.value==="here"?Ks:Gs);if(c.value==="here")S.searchParams.set("searchtext",x);else{if(!C(x)){ge.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}S.searchParams.set("cad_num",x)}const L=await fetch(S.toString());if(!L.ok)throw new Error(`HTTP ${L.status}`);const $=await L.json(),v=c.value==="here"?h($):b($);if(!v.length)ge.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const A=v[0];w(A),i.value=""}}catch(S){const L=S?.message||"Помилка пошуку";ge.notify({type:"error",title:"Пошук",message:L})}}}return(x,S)=>(e.openBlock(),e.createElementBlock("div",Rs,[e.createElementVNode("form",{class:"flex gap-2",onSubmit:e.withModifiers(k,["prevent"])},[o.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:u,class:"relative search-type w-[140px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:S[0]||(S[0]=L=>d.value=!d.value)},[e.createElementVNode("span",null,e.toDisplayString(f(c.value)),1),e.createVNode(e.unref(R.ChevronDown),{class:e.normalizeClass(["h-4 w-4 text-gray-500 transition-transform",{"rotate-180":d.value}])},null,8,["class"])]),d.value?(e.openBlock(),e.createElementBlock("div",Ps,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,L=>(e.openBlock(),e.createElementBlock("li",{key:L,class:"px-3 py-2 cursor-pointer hover:bg-gray-100",onClick:$=>p(L)},e.toDisplayString(f(L)),9,js))),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",Us,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":S[1]||(S[1]=L=>i.value=L),placeholder:s.value,type:"text",class:"vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid !pr-8 py-1.5 pl-3 text-sm"},null,8,Hs),[[e.vModelText,i.value,void 0,{trim:!0}]]),e.createElementVNode("button",qs,[e.createVNode(e.unref(R.Search),{class:"h-4 w-4"})])])],32)]))}}),[["__scopeId","data-v-2b66205f"]]),Ys={key:0,class:"absolute top-4 left-4 z-[1000] w-[calc(100%-20px)] sm:w-[350px]"},Zs={key:1,class:"form-geom__panel flex gap-1 items-start mt-2"},Xs={class:"flex items-center gap-1"},Js=["disabled"],Qs=["disabled"],ei=["disabled"],ti={class:"absolute top-4 right-4 z-[1000]"},ni={class:"flex flex-col gap-[2px]"},ri=["disabled"],li=["disabled"],ai=["disabled"],oi=["disabled"],si={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"},ii={class:"space-y-0.5"},ci={class:"text-gray-500"},di={class:"text-gray-900 text-right break-all"},ui={class:"absolute left-4 bottom-[36px] z-[1000]"},pi={class:"flex flex-col gap-2"},fi={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]"},mi={class:"flex flex-col gap-1"},hi=["checked","disabled","onChange"],gi={class:"text-gray-700 text-xs font-medium"},yi={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"},bi={key:0,class:"form-geom__feature flex items-center text-xs transition-all gap-2 w-full px-2 pb-1"},ki={class:"mr-auto flex items-center gap-2 min-w-0 relative"},xi={class:"shrink-0"},wi={class:"font-bold"},_i={class:"flex items-center"},vi={class:"text-xs mr-2"},Ci={key:0,class:"text-xs mr-2"},Ei={key:1,class:"text-xs mr-2"},Bi=["disabled"],Vi=["disabled"],zt="__vs_form_maplibre_loader__",kn="__vs_form_maplibre_scripts__",Rt="vs-global-bounds-src",Pt="vs-global-bounds-line",Xn=pe(e.defineComponent({__name:"vs-input-map",props:{tools:{},handleZoom:{type:Boolean,default:!0},ctrlZoom:{type:Boolean,default:!0},geomType:{default:()=>[]},prefix:{default:""},katottg:{default:""},layers:{default:()=>[]},bounds:{},api:{},center:{default:void 0},zoom:{default:void 0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,l=t,a=e.computed(()=>!!n.disabled),o=e.ref(!1),s=e.ref(null),c=e.ref(0),i=e.ref(""),d=e.ref(null),u=e.getCurrentInstance(),p=u?.appContext?.config?.globalProperties?.$settings??{},g=p?.map??{},f=u?.vnode?.props??{};function y(m){return Object.prototype.hasOwnProperty.call(f,m)||Object.prototype.hasOwnProperty.call(f,m.replace(/[A-Z]/g,_=>`-${_.toLowerCase()}`))}const h=Array.isArray(g.center)&&g.center.length===2?g.center:Array.isArray(p.center)&&p.center.length===2?p.center:[30,50];console.log(g);const b=typeof g.zoom=="number"?g.zoom:typeof p.zoom=="number"?p.zoom:typeof p.defaultZoom=="number"?p.defaultZoom:10,C=e.computed(()=>y("center")?n.center:g.center??n.center),w=e.computed(()=>y("zoom")?n.zoom:g.zoom??n.zoom),k=e.computed(()=>y("katottg")?String(n.katottg??""):String(g.katottg??n.katottg??"")),x=e.computed(()=>y("layers")?n.layers??[]:g.layers??n.layers??[]),S=e.computed(()=>y("bounds")?n.bounds:g.bounds??n.bounds),L=e.ref(Array.isArray(C.value)&&C.value.length===2?[...C.value]:h),$=e.ref(typeof w.value=="number"?w.value:b),v=e.ref(n.modelValue),A=e.ref(null),E=e.ref([]);let V=!1;const B=e.reactive({}),M=e.ref([]),N=e.computed(()=>M.value.map(m=>B[m]).filter(Boolean)),F=e.ref(null),T=e.computed(()=>F.value?.entries??[]),U=e.computed(()=>{if(F.value)return{left:`${F.value.point.x+12}px`,top:`${F.value.point.y+12}px`}}),j=e.computed(()=>{const m={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1};if(!n.tools?.length)return{...m,point:!0,line:!0,polygon:!0,rectangle:!0};const _=new Set(n.tools.map(D=>D.toLowerCase()));return{search:_.has("search"),import:_.has("import"),export:_.has("export"),point:_.has("point"),line:_.has("line"),polygon:_.has("polygon"),rectangle:_.has("rectangle")}});function Y(m){if(typeof m!="string"||!m.trim())return"";if(/^https?:\/\//i.test(m))return m;const _=window?.location?.origin??"",D=m.replace(/^\/+/,"");return D?_?`${_}/${D}`:`/${D}`:_}function ee(){const m=Array.isArray(g.basemaps)&&g.basemaps.length?g.basemaps:p.basemaps;if(Array.isArray(m)&&m.length){const D=m.map((O,Z)=>{const re=String(O?.key??O?.id??O?.name??`b${Z}`),te=Y(String(O?.url??""));if(!te)return null;const fe=typeof O?.preview=="string"&&O.preview?Y(O.preview):"";return[re,{...O,url:te,preview:fe}]}).filter(O=>Array.isArray(O)&&O.length===2).reduce((O,[Z,re])=>(O[Z]=re,O),{});if(Object.keys(D).length)return D}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 ve=ee(),ye=Object.keys(ve),W=e.ref(ye.length?ye[0]:"");async function ae(){if(typeof window>"u")return null;const m=window;if(m[zt])return m[zt];m[kn]=m[kn]||{};const _=m[kn],D=te=>{if(Array.from(document.styleSheets).some(Oe=>Oe?.href?.includes(te)))return;const Se=document.createElement("link");Se.rel="stylesheet",Se.href=te,document.head.appendChild(Se)},O=te=>(_[te]||(_[te]=new Promise((fe,Se)=>{const Oe=Array.from(document.scripts).find(Xe=>Xe.src===te);if(Oe){Oe.addEventListener("load",()=>fe(),{once:!0}),Oe.addEventListener("error",Se,{once:!0}),te.includes("maplibre")&&window.maplibregl&&fe(),te.includes("mapbox-gl-draw")&&window.MapboxDraw&&fe();return}const Te=document.createElement("script");Te.src=te,Te.async=!1,Te.onload=()=>fe(),Te.onerror=Se,document.head.appendChild(Te)})),_[te]),re=(async()=>{D("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),D("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),window.maplibregl||await O("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.js"),window.MapboxDraw||await O("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.js");const te=window.maplibregl,fe=window.MapboxDraw;if(!te)throw new Error("maplibregl not available after load");if(!fe)throw new Error("MapboxDraw not available after load");return{maplibregl:te,MapboxDraw:fe}})().catch(te=>{throw delete m[zt],te});return m[zt]=re,re}function ie(m){return{version:8,sources:{rasterSource:{type:"raster",tiles:[m],tileSize:256}},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let be=null,xe=null,K=null,se=null,Me=null,Ie=null,z=!1,G=!1;function X(){return{onSetup(){const m=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(m),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:m,startPoint:null,hasCoordinates:!1}},onMouseMove(m,_){if(!m.startPoint)return;const[D,O]=m.startPoint,Z=_.lngLat.lng,re=_.lngLat.lat;m.rectangle.setCoordinates([[[D,O],[Z,O],[Z,re],[D,re],[D,O]]])},onClick(m,_){if(!m.startPoint){m.startPoint=[_.lngLat.lng,_.lngLat.lat],m.hasCoordinates=!0,m.rectangle.setCoordinates([[[_.lngLat.lng,_.lngLat.lat],[_.lngLat.lng,_.lngLat.lat],[_.lngLat.lng,_.lngLat.lat],[_.lngLat.lng,_.lngLat.lat],[_.lngLat.lng,_.lngLat.lat]]]);return}const[D,O]=m.startPoint,Z=_.lngLat.lng,re=_.lngLat.lat;return Math.abs(D-Z)>0&&Math.abs(O-re)>0?(m.rectangle.setCoordinates([[[D,O],[Z,O],[Z,re],[D,re],[D,O]]]),this.map.fire("draw.create",{features:[m.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[m.rectangle.id]})):(this.deleteFeature([m.rectangle.id],{silent:!0}),m.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(m){this.deleteFeature([m.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(m,_,D){if(!m.hasCoordinates)return;const O=_.properties.id===m.rectangle.id;_.properties.active=O?"true":"false",D(_)}}}const oe=[{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 ce(){const m=W.value;return!m||!ve[m]?.url?"":ve[m].url}function Ee(m,_){return m?.id?String(m.id):m?.url?`${m.url}-${_}`:`layer-${_}`}function Ve(m){const _=String(m?.url??"").trim();if(!_)return"";if(/^https?:\/\//i.test(_))return _;const D=window.location?.origin??"",O=_.replace(/^\/+/,"");return`${D}/${O}`}function Ce(m){m&&F.value?.layerId!==m||(F.value=null)}function qe(m,_={}){return m.popup===!1?[]:Array.isArray(m.popup)?m.popup.length?m.popup.map(D=>{const O=D?.field||D?.name;if(!O)return null;const Z=_[O];return Z==null||Z===""?null:{key:D.label||O,value:String(Z)}}).filter(Boolean):[]:Object.entries(_).slice(0,5).map(([D,O])=>({key:D,value:O==null?"—":String(O)}))}function P(m){if(!Array.isArray(m))return[];const _=O=>Array.isArray(O)&&O.length>=2&&Number.isFinite(Number(O[0]))&&Number.isFinite(Number(O[1])),D=O=>{if(!O.length)return O;const Z=O[0],re=O[O.length-1];return!re||Z[0]!==re[0]||Z[1]!==re[1]?[...O,Z]:O};if(m.length&&_(m[0])){const O=m.map(Z=>[Number(Z[0]),Number(Z[1])]).filter(_);return O.length?[D(O)]:[]}return m.length&&Array.isArray(m[0])&&_(m[0][0])?m.map(Z=>Array.isArray(Z)?Z.map(re=>[Number(re[0]),Number(re[1])]):[]).filter(Z=>Z.length).map(D):m.length&&Array.isArray(m[0])&&Array.isArray(m[0][0])&&_(m[0][0][0])?m.flatMap(Z=>Array.isArray(Z)?Z:[]).map(Z=>Array.isArray(Z)?Z.map(re=>[Number(re[0]),Number(re[1])]):[]).filter(Z=>Z.length).map(D):[]}function J(m){const _=m.style??{},D=_.color??"#3b82f6";if(!_.colorAttr||!_.colorSet)return D;const O=Object.keys(_.colorSet);if(!O.length)return D;const Z=["match",["to-string",["get",_.colorAttr]]];return O.forEach(re=>{Z.push(String(re),_.colorSet?.[re]??D)}),Z.push(D),Z}function Q(m){if(!K)return;m.handlers.forEach(D=>{try{K.off(D.type,D.layerId,D.handler)}catch{}}),m.handlers=[],[...m.layerIds,...m.boundsIds].forEach(D=>{K.getLayer(D)&&K.removeLayer(D)}),K.getSource(m.sourceId)&&K.removeSource(m.sourceId);const _=`vs-ov-bounds-src-${m.id}`;K.getSource(_)&&K.removeSource(_),Ce(m.id)}function he(m,_){if(!K)return[];const D=`vs-ov-bounds-src-${_}`,O=`vs-ov-bounds-line-${_}`,Z=m.bounds??S.value??E.value,re=P(Z);if(!re.length)return[];const te={type:"FeatureCollection",features:re.map(fe=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:fe}}))};return K.getSource(D)&&K.removeSource(D),K.addSource(D,{type:"geojson",data:te}),K.addLayer({id:O,type:"line",source:D,paint:{"line-color":m.style?.stroke??m.style?.color??"#2563eb","line-width":m.style?.width??2,"line-opacity":m.style?.opacity??.8,"line-dasharray":[2,2]}}),[O]}function Be(m){if(!K)return;Q(m);const _=m.config,D=Ve(_);if(!D)return;const O=[],Z=[];if(/\.v(?:m)?t(?:\?|$)/i.test(D)||/\.pbf(?:\?|$)/i.test(D)){const fe=_.sourceLayer||_.layer||_.service_layer||_.dataset?.layer||_.id;K.addSource(m.sourceId,{type:"vector",tiles:[D]});const Se=String(_.style?.type??"polygon").toLowerCase(),Oe=J(_),Te=_.style?.opacity??.5;if(Se==="point"){const Xe=`vs-ov-point-${m.id}`;K.addLayer({id:Xe,type:"circle",source:m.sourceId,"source-layer":fe,paint:{"circle-color":Oe,"circle-radius":5,"circle-opacity":Te}}),O.push(Xe)}else if(Se==="polyline"||Se==="line"){const Xe=`vs-ov-line-${m.id}`;K.addLayer({id:Xe,type:"line",source:m.sourceId,"source-layer":fe,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":Oe,"line-width":_.style?.width??2,"line-opacity":Te}}),O.push(Xe)}else{const Xe=`vs-ov-fill-${m.id}`,It=`vs-ov-border-${m.id}`;K.addLayer({id:Xe,type:"fill",source:m.sourceId,"source-layer":fe,paint:{"fill-color":Oe,"fill-opacity":Te}}),K.addLayer({id:It,type:"line",source:m.sourceId,"source-layer":fe,paint:{"line-color":_.style?.stroke??_.style?.color??"#2563eb","line-width":_.style?.width??1,"line-opacity":Te}}),O.push(Xe,It)}}else{K.addSource(m.sourceId,{type:"raster",tiles:[D],tileSize:256});const fe=`vs-ov-raster-${m.id}`;K.addLayer({id:fe,type:"raster",source:m.sourceId,paint:{"raster-opacity":_.style?.opacity??1}}),O.push(fe)}O.forEach(fe=>{const Se=Te=>{if(!Te?.features?.length){Ce(m.id);return}const Xe=Te.features[0]?.properties??{},It=qe(m.config,Xe);if(!It.length){Ce(m.id);return}F.value={layerId:m.id,entries:It,point:{x:Te.point.x,y:Te.point.y}}},Oe=()=>Ce(m.id);K.on("mousemove",fe,Se),K.on("mouseleave",fe,Oe),Z.push({layerId:fe,type:"mousemove",handler:Se},{layerId:fe,type:"mouseleave",handler:Oe})}),m.layerIds=O,m.boundsIds=he(m.config,m.id),m.handlers=Z;const te=m.visible?"visible":"none";[...m.layerIds,...m.boundsIds].forEach(fe=>{K.getLayer(fe)&&K.setLayoutProperty(fe,"visibility",te)})}function Qe(){if(!K)return;const _={type:"FeatureCollection",features:P(S.value??E.value).map(D=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:D}}))};K.getSource(Rt)?K.getSource(Rt).setData(_):K.addSource(Rt,{type:"geojson",data:_}),K.getLayer(Pt)||K.addLayer({id:Pt,type:"line",source:Rt,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function at(m){if(!K||a.value)return;const _=B[m];if(!_)return;_.visible=!_.visible;const D=_.visible?"visible":"none";[..._.layerIds,..._.boundsIds].forEach(O=>{K.getLayer(O)&&K.setLayoutProperty(O,"visibility",D)}),Ke(),_.visible||Ce(m)}function Ke(){if(!K)return;const m=[],_=[],D=[],O=[];M.value.forEach(te=>{const fe=B[te];if(!fe)return;const Se=String(fe.config?.url??""),Oe=/\.v(?:m)?t(?:\?|$)/i.test(Se),Te=/\.png(?:\?|$)/i.test(Se);Oe?D.push(...fe.layerIds):Te?m.push(...fe.layerIds):_.push(...fe.layerIds),O.push(...fe.boundsIds)}),[...m,..._,...D,...O].forEach(te=>{K.getLayer(te)&&K.moveLayer(te)}),K.getLayer(Pt)&&K.moveLayer(Pt),(K.getStyle?.()?.layers??[]).map(te=>String(te?.id??"")).filter(te=>te.startsWith("gl-draw-")).forEach(te=>{K.getLayer(te)&&K.moveLayer(te)})}function ft(m){if(!ve[m]||(W.value=m,!K))return;const _=ce();if(!_)return;const D=K.getCenter?.(),O=K.getZoom?.(),Z=se?.getAll?.();K.setStyle(ie(_)),K.once("style.load",()=>{if(K&&(D&&Number.isFinite(O)&&K.jumpTo({center:[D.lng,D.lat],zoom:O}),Qe(),M.value.forEach(re=>{const te=B[re];te&&Be(te)}),Ke(),Z?.features?.length&&se))try{Z.features.forEach(re=>se.add(re)),c.value=Z.features.length}catch{c.value=0}})}function ot(m){return m?m.type==="FeatureCollection"?m.features?.[0]?.geometry??null:m.type==="Feature"?m.geometry??null:m.geom?.type&&Array.isArray(m.geom.coordinates)?{type:m.geom.type,coordinates:m.geom.coordinates}:typeof m.type=="string"&&Array.isArray(m.coordinates)?m:null:null}function et(m){return{type:"Feature",properties:{},geometry:m}}function Ge(m){if(!m)return null;try{return JSON.parse(JSON.stringify(m))}catch{return null}}function it(m){if(!m)return"__null__";try{return JSON.stringify(m)}catch{return"__invalid__"}}function Dt(m){const _=an(m);if(!_)return null;const[[D,O],[Z,re]]=_;return{lat:(O+re)/2,lng:(D+Z)/2}}function Mt(m){if(!Array.isArray(m)||m.length<3)return 0;const _=(O,Z)=>{const re=O*2003750834e-2/180,te=Math.log(Math.tan((90+Z)*Math.PI/360))/(Math.PI/180);return[re,te*2003750834e-2/180]};let D=0;for(let O=0;O<m.length-1;O+=1){const[Z,re]=_(Number(m[O][0]),Number(m[O][1])),[te,fe]=_(Number(m[O+1][0]),Number(m[O+1][1]));D+=Z*fe-te*re}return Math.abs(D/2)/1e6}function rn(m){if(!m?.type||!m?.coordinates)return null;if(m.type==="Polygon"){const _=m.coordinates?.[0];return Array.isArray(_)?Mt(_):null}return m.type==="MultiPolygon"?m.coordinates.reduce((_,D)=>{const O=D?.[0];return Array.isArray(O)?_+Mt(O):_},0):null}function Tt(m){if(!m){d.value=null;return}const _=Dt(m);if(!_){d.value=null;return}d.value={type:String(m.type??"Feature"),center:_,areaKm2:rn(m)}}function ln(m,_){if(!Array.isArray(m)||!Array.isArray(_)||m.length!==2||_.length!==2)return!1;const D=1e-9;return Math.abs(Number(m[0])-Number(_[0]))<D&&Math.abs(Number(m[1])-Number(_[1]))<D}function an(m){if(!m)return null;let _=1/0,D=1/0,O=-1/0,Z=-1/0;const re=te=>{if(Array.isArray(te)){if(te.length>=2&&Number.isFinite(te[0])&&Number.isFinite(te[1])){const fe=Number(te[0]),Se=Number(te[1]);_=Math.min(_,fe),D=Math.min(D,Se),O=Math.max(O,fe),Z=Math.max(Z,Se);return}te.forEach(re)}};return re(m.coordinates),!Number.isFinite(_)||!Number.isFinite(D)?null:[[_,D],[O,Z]]}function on(m){if(!K||!m)return;const _=an(m);if(!_)return;const[[D,O],[Z,re]]=_;if(D===Z&&O===re){K.easeTo({center:[D,O],zoom:Math.max($.value,14)});return}K.fitBounds(_,{padding:30,duration:250,maxZoom:18})}function xt(){if(!se){c.value=0;return}const m=se.getAll();c.value=m?.features?.length??0}function I(){if(!se)return;const m=se.getAll();if(c.value=m?.features?.length??0,!m?.features?.length){Me=null,d.value=null,V||(Ie="__null__",l("update:modelValue",null));return}const _=Ge(m.features[m.features.length-1]?.geometry??null);Me=_,Tt(_),V||(Ie=it(_),l("update:modelValue",_))}function q(){if(!se)return;(se.getAll()?.features||[]).forEach(_=>se.delete(_.id)),xt()}function H(m){if(!se)return;const _=ot(m);if(V=!0,q(),_)try{se.add(et(_))}catch{}V=!1,Me=Ge(_),xt(),Tt(_),_&&(on(_),a.value||_e())}function le(){if(se){if(V=!0,q(),Me)try{se.add(et(Me))}catch{}V=!1,xt(),Tt(Me)}}function ke(){if(se){try{se.changeMode("simple_select",{featureIds:[]})}catch{}i.value=""}}function we(m){if(a.value||!se)return;G=!0,ke(),i.value=m;const _=m==="marker"?"draw_point":m==="polyline"?"draw_line_string":m==="rectangle"?"draw_rectangle":"draw_polygon";V=!0,q(),V=!1;try{se.changeMode(_)}catch{i.value=""}finally{requestAnimationFrame(()=>{G=!1})}}function _e(){if(a.value||!se)return;const m=se.getAll();if(m?.features?.length)try{se.changeMode("direct_select",{featureId:m.features[0].id}),i.value="edit"}catch{i.value=""}}function Ae(){a.value||!se||(ke(),q(),Ie="__null__",d.value=null,l("update:modelValue",null))}function Re(){a.value||!Me||on(Me)}function We(m){K&&K.easeTo({center:[m[1],m[0]],zoom:13,duration:250})}function st(){a.value||A.value?.click()}function Ze(m){if(a.value||!se)return;const _=m.target,D=_.files?.[0];if(!D)return;const O=new FileReader;O.onload=()=>{try{const Z=JSON.parse(String(O.result)),re=ot(Z);if(!re)return;H(re)}finally{_.value=""}},O.readAsText(D)}function Lt(){if(a.value||!se)return;const m=se.getAll(),_=new Blob([JSON.stringify(m,null,2)],{type:"application/json"}),D=URL.createObjectURL(_),O=document.createElement("a");O.href=D,O.download="data.geojson",O.click(),URL.revokeObjectURL(D)}return e.onMounted(async()=>{if(!s.value)return;const m=await ae();be=m.maplibregl,xe=m.MapboxDraw;const _=ce();_&&(K=new be.Map({container:s.value,style:ie(_),center:[L.value[0],L.value[1]],zoom:$.value,attributionControl:!1}),K.addControl(new be.NavigationControl({showCompass:!0}),"bottom-right"),K.on("load",()=>{if(!(!xe||!K)){if(se=new xe({displayControlsDefault:!1,modes:{...xe.modes,draw_rectangle:X()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:oe}),K.addControl(se),K.on("draw.create",()=>{if(!se)return;const D=se.getAll();if(D.features.length>1){const O=D.features[D.features.length-1];V=!0,D.features.slice(0,-1).forEach(Z=>se.delete(Z.id)),V=!1,O&&(V=!0,se.add(O),V=!1)}I(),_e()}),K.on("draw.update",D=>{if(!z){if(D?.action==="move"){if(z=!0,le(),z=!1,i.value==="edit"){const O=se?.getAll?.()?.features?.[0];if(O?.id)try{se.changeMode("direct_select",{featureId:O.id})}catch{i.value=""}}return}I()}}),K.on("draw.delete",()=>{i.value==="marker"||i.value==="polyline"||i.value==="polygon"||i.value==="rectangle"||(I(),i.value="",ke())}),K.on("draw.selectionchange",()=>{if(!(!se||z)&&i.value!=="edit"&&!(i.value==="marker"||i.value==="polyline"||i.value==="polygon"||i.value==="rectangle")){if(!a.value&&c.value>0){_e();return}try{se.changeMode("simple_select",{featureIds:[]})}catch{}}}),v.value!==void 0){const D=v.value;v.value=void 0,requestAnimationFrame(()=>{se&&H(D)})}Qe(),M.value.forEach(D=>{const O=B[D];O&&Be(O)}),Ke()}}),K.on("zoomend",()=>{K&&($.value=K.getZoom())}))}),e.onUnmounted(()=>{Object.values(B).forEach(m=>{K&&Q(m)}),Ce(),K?.remove&&K.remove(),K=null,se=null}),e.watch(()=>n.modelValue,m=>{if(!se){v.value=m;return}const _=ot(m),D=it(_);if(Ie&&D===Ie){Ie=null;return}Ie=null,H(m)},{deep:!0}),e.watch(()=>x.value,m=>{const _=Array.isArray(m)?m:[],D=[],O=new Set;_.forEach((Z,re)=>{if(!Z)return;const te=Ee(Z,re);D.push(te),O.add(te);const fe={...Z,id:te},Se=B[te],Oe=Se?.visible??!!fe.visible;Se&&K&&Q(Se),B[te]={id:te,config:fe,visible:Oe,sourceId:`vs-ov-src-${te}`,layerIds:[],boundsIds:[],handlers:[]}}),Object.keys(B).forEach(Z=>{if(O.has(Z))return;const re=B[Z];re&&K&&Q(re),delete B[Z]}),M.value=D,K&&(M.value.forEach(Z=>{const re=B[Z];re&&Be(re)}),Ke())},{immediate:!0,deep:!0}),e.watch(()=>S.value,()=>{K&&(Qe(),M.value.forEach(m=>{const _=B[m];_&&Be(_)}),Ke())},{deep:!0}),e.watch(()=>k.value,async m=>{if(E.value=[],!m){K&&(Qe(),M.value.forEach(_=>{const D=B[_];D&&Be(D)}),Ke());return}try{const _=await fetch(`https://data.gki.com.ua/api-user/atu/${m}`);if(!_?.ok)return;const O=(await _.json())?.geometry?.coordinates;Array.isArray(O)&&O.length&&(E.value=O)}catch(_){console.error("Failed to fetch KATOTTG bounds",_)}finally{if(!K)return;Qe(),M.value.forEach(_=>{const D=B[_];D&&Be(D)}),Ke()}},{immediate:!0}),e.watch(()=>C.value,m=>{if(!Array.isArray(m)||m.length!==2)return;const _=[Number(m[0]),Number(m[1])];if(ln(L.value,_)||(L.value=[..._],!K))return;const D=K.getCenter?.();D&&ln([D.lng,D.lat],L.value)||K.easeTo({center:[L.value[0],L.value[1]]})},{deep:!0}),e.watch(()=>w.value,m=>{typeof m=="number"&&($.value=m,K&&K.setZoom(m))}),e.watch(a,m=>{m&&ke()}),e.watch(c,m=>{if(m>0){a.value||_e();return}G||ke()}),e.watch(o,()=>{setTimeout(()=>{K?.resize&&K.resize()},50)}),(m,_)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!o.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper relative w-full h-[400px]",{fullscreen:o.value}])},[e.createElementVNode("div",{ref_key:"mapContainer",ref:s,class:"w-full h-[calc(100%-28px)]"},null,512),j.value.search||j.value.import||j.value.export?(e.openBlock(),e.createElementBlock("div",Ys,[j.value.search?(e.openBlock(),e.createBlock(Ws,{key:0,onGoToCoordinates:We})):e.createCommentVNode("",!0),j.value.import||j.value.export?(e.openBlock(),e.createElementBlock("div",Zs,[e.createElementVNode("div",Xs,[j.value.import?(e.openBlock(),e.createElementBlock("button",{key:0,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:st,disabled:a.value}," Import ",8,Js)):e.createCommentVNode("",!0),j.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:Lt,disabled:a.value||c.value===0}," Export ",8,Qs)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:A,type:"file",onChange:Ze,accept:".json,.geojson",class:"hidden",disabled:a.value},null,40,ei)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",ti,[e.createElementVNode("div",ni,[j.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":i.value==="marker"}]),title:"Point",onClick:_[0]||(_[0]=D=>we("marker")),disabled:a.value},[e.createVNode(e.unref(R.MapPin),{class:"h-4 w-4"})],10,ri)):e.createCommentVNode("",!0),j.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":i.value==="polyline"}]),title:"Line",onClick:_[1]||(_[1]=D=>we("polyline")),disabled:a.value},[e.createVNode(Bs)],10,li)):e.createCommentVNode("",!0),j.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":i.value==="polygon"}]),title:"Polygon",onClick:_[2]||(_[2]=D=>we("polygon")),disabled:a.value},[e.createVNode(As)],10,ai)):e.createCommentVNode("",!0),j.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":i.value==="rectangle"}]),title:"Rectangle",onClick:_[3]||(_[3]=D=>we("rectangle")),disabled:a.value},[e.createVNode(Ms)],10,oi)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn mt-5",onClick:_[4]||(_[4]=D=>o.value=!o.value),title:"Full Screen"},[e.createVNode(e.unref(R.Maximize),{class:"h-4 w-4"})])])]),T.value.length?(e.openBlock(),e.createElementBlock("div",{key:1,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(U.value)},[e.createElementVNode("div",si,[e.createElementVNode("dl",ii,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(T.value,D=>(e.openBlock(),e.createElementBlock("div",{key:`${D.key}-${D.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",ci,e.toDisplayString(D.key),1),e.createElementVNode("dd",di,e.toDisplayString(D.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",ui,[e.createElementVNode("div",pi,[e.createVNode(zs,{basemaps:e.unref(ve),onOnLayerChange:ft},null,8,["basemaps"]),N.value.length?(e.openBlock(),e.createElementBlock("div",fi,[_[5]||(_[5]=e.createElementVNode("p",{class:"font-semibold text-[11px] uppercase tracking-wide text-gray-500 mb-2"},"Шари",-1)),e.createElementVNode("div",mi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,D=>(e.openBlock(),e.createElementBlock("label",{key:D.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:D.visible,disabled:a.value,onChange:O=>at(D.id)},null,40,hi),e.createElementVNode("span",gi,e.toDisplayString(D.config.title||D.config.name||D.id),1)]))),128))])])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",yi,[d.value?(e.openBlock(),e.createElementBlock("div",bi,[e.createElementVNode("div",ki,[e.createElementVNode("div",xi,[_[6]||(_[6]=e.createTextVNode(" Type: ",-1)),e.createElementVNode("span",wi,e.toDisplayString(d.value.type),1)])]),e.createElementVNode("div",_i,[e.createElementVNode("div",vi,[_[7]||(_[7]=e.createTextVNode(" Center: ",-1)),e.createElementVNode("b",null,e.toDisplayString(d.value.center.lat.toFixed(5))+", "+e.toDisplayString(d.value.center.lng.toFixed(5)),1)]),d.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("div",Ci,[_[8]||(_[8]=e.createTextVNode(" Area: ",-1)),e.createElementVNode("b",null,e.toDisplayString(d.value.areaKm2.toFixed(1))+" km²",1)])):(e.openBlock(),e.createElementBlock("div",Ei,_[9]||(_[9]=[e.createTextVNode("Area: ",-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:Re,disabled:a.value},[e.createVNode(e.unref(R.ZoomIn),{class:"h-3 w-3"})],8,Bi),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:Ae,disabled:a.value},[e.createVNode(e.unref(R.Trash2),{class:"h-4 w-4"})],8,Vi)])])):e.createCommentVNode("",!0)])],2)],8,["disabled"]))}}),[["__scopeId","data-v-67b0a2ef"]]),Si=["data-focus"],$i={class:"flex items-center"},Ai={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},Fi=["onClick","aria-label"],Ni={key:0,class:"absolute text-gray-500 truncate pl-2"},Di={class:"flex-1 min-w-[2px]"},Mi=["placeholder"],Ti={class:"flex items-center shrink-0"},Li=["disabled"],Jn=e.defineComponent({__name:"vs-input-tag",props:e.mergeModels({unique:{type:Boolean,default:!0},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:"Введіть тег"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(r,{emit:t}){const n=r,l=t;Le(n.style);const a=e.ref(null),o=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref(""),d=e.useModel(r,"modelValue"),u=e.computed(()=>n.placeholder||"Add tag…"),p=e.computed(()=>d.value?.length===0&&i.value===""),g=e.computed(()=>!n.disabled&&d.value?.length>0),f=e.computed(()=>n.disabled),y=async()=>{f.value||await e.nextTick(()=>s.value?.focus())},h=L=>{const $=L.trim();$!==""&&(!d.value||!Array.isArray(d.value)?d.value=[$]:n.unique?d.value.includes($)||(d.value=[...d.value,$]):d.value=[...d.value,$],i.value="")},b=()=>{const L=i.value;L.trim()!==""&&h(L),i.value=""},C=L=>{const $=d.value.slice();$.splice(L,1),l("update:modelValue",$)},w=()=>{l("update:modelValue",[])},k=()=>{f.value||(c.value=!0)},x=()=>{c.value=!1,!f.value&&b()},S=L=>{const{key:$}=L;$==="Enter"?(L.preventDefault(),b()):$==="Backspace"&&i.value===""&&d.value.length>0&&C(d.value.length-1)};return(L,$)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:a,onClick:$[1]||($[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":"",f.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.value?"true":"false",onClick:y},[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:o},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(v,A)=>(e.openBlock(),e.createElementBlock("div",{key:A,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",$i,[e.createElementVNode("div",Ai,e.toDisplayString(v),1)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:e.withModifiers(E=>C(A),["stop"]),"aria-label":`Remove ${v}`},[e.createVNode(e.unref(R.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Fi)]))),128)),p.value?(e.openBlock(),e.createElementBlock("div",Ni,e.toDisplayString(u.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Di,[f.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":$[0]||($[0]=v=>i.value=v),onFocus:k,onBlur:x,onKeydown:S,placeholder:d.value&&d.value.length?"":void 0},null,40,Mi)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",Ti,[g.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:f.value,onClick:e.withModifiers(w,["stop"])},[e.createVNode(e.unref(R.X),{class:"h-4 w-4"})],8,Li)):e.createCommentVNode("",!0)])],10,Si)],2)],512))}}),Ii={class:"relative flex gap-1 bg-white w-full"},Oi=["disabled","placeholder"],Qn=pe(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=e.inject("values"),n=r,l=e.useModel(r,"modelValue");function a(s){const c={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return s.toLowerCase().split("").map(i=>c[i]||i).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const o=()=>{const s=t?.value?.[n.parent||""]?.toString(),c=a(s);l.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",Ii,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:s.disabled,placeholder:s.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>l.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,Oi),[[e.vModelText,l.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:o}," Gen ")]))}}),[["__scopeId","data-v-b0eba370"]]),zi={class:"relative flex gap-1 bg-white w-full"},Ri=["disabled","placeholder"],Pi=["disabled"],ji={key:0},Ui={key:1},er=pe(e.defineComponent({__name:"vs-input-codegen",props:e.mergeModels({table:{},code:{},init:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.ref(!1),a=e.computed(()=>t.init!==!1),o=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!o.value)return"";const d=encodeURIComponent(String(t.table)),u=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${u}`},c=async()=>{if(!o.value||l.value)return;const d=s();if(d){l.value=!0;try{const p=await(await fetch(d)).text();n.value=p}finally{l.value=!1}}},i=()=>{a.value&&(n.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,u)=>(e.openBlock(),e.createElementBlock("div",zi,[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,Ri),[[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:l.value||d.disabled||!o.value,onClick:c},[l.value?(e.openBlock(),e.createElementBlock("span",Ui,"...")):(e.openBlock(),e.createElementBlock("span",ji,"Gen"))],8,Pi)]))}}),[["__scopeId","data-v-6ee5237d"]]),Hi={class:"w-full"},qi={ref:"sortableContainer",class:"flex flex-col gap-1"},Ki=["onDragstart","onDrop"],Gi={class:"cursor-move",type:"button"},Wi={class:"w-1/3"},Yi={class:"w-2/3"},Zi=["onClick"],Xi={key:0,class:"text-[14px] text-gray-700"},Ji={class:"mt-2 w-full flex items-center"},Qi=["disabled"],tr=pe(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,l=e.inject("values"),a=r,o=t,s=a.addButtonText??"Додати",c=a.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const b=a.parent&&l?.value?.[a.parent]||a.modelValue||{};i.value=Object.entries(b).filter(([C])=>!c.includes(C)).map(([C,w])=>({id:n("key-value-"),key:C,value:w}))})();function p(b){d.value=b}function g(b){if(d.value===null||d.value===b)return;const C=i.value.splice(d.value,1)[0];i.value.splice(b,0,C),d.value=null}const f=e.computed(()=>i.value.some(b=>b.key&&!b.value||!b.key&&b.value)),y=()=>{i.value.push({id:n("key-value-"),key:"",value:""})},h=b=>{i.value=i.value.filter(C=>C.id!==b)};return e.watch(i,b=>{const C={};b.forEach(k=>{k.key&&k.value!==void 0&&(C[k.key]=k.value)});const w={};c.length&&c.forEach(k=>{w[k]=a.parent?l?.value?.[a.parent]?.[k]:void 0}),l?.value&&a.parent&&(l.value[a.parent]={...w,...C}),o("update:modelValue",C)},{deep:!0}),(b,C)=>(e.openBlock(),e.createElementBlock("div",Hi,[e.createElementVNode("div",qi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(w,k)=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===k}]),draggable:"true",onDragstart:x=>p(k),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:x=>g(k)},[e.createElementVNode("button",Gi,[e.createVNode(e.unref(R.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",Wi,[e.createVNode(yt,{modelValue:w.key,"onUpdate:modelValue":x=>w.key=x,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Yi,[e.createVNode(yt,{modelValue:w.value,"onUpdate:modelValue":x=>w.value=x,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:x=>h(w.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(R.X),{class:"h-4 w-4"})],8,Zi)],42,Ki))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Xi," Дані для відображення відсутні ")),e.createElementVNode("div",Ji,[e.createElementVNode("button",{type:"button",onClick:y,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(R.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,Qi)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),ec={class:"w-full"},tc={ref:"sortableContainer",class:"flex flex-col gap-1"},nc=["onDragstart","onDrop"],rc=["disabled"],lc={class:"flex-1"},ac=["onClick","disabled"],oc={key:0,class:"text-[14px] text-gray-700"},sc={class:"mt-2 w-full flex items-center"},ic=["disabled"],nr=pe(e.defineComponent({__name:"vs-input-text-array",props:e.mergeModels({addButtonText:{default:"Додати"},inputType:{default:"text"},placeholder:{default:"Значення"},mask:{default:""},disabled:{type:Boolean,default:!1}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.ref([]),a=e.ref(null),o=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),c=e.computed(()=>t.addButtonText??"Додати");let i=!1;const d=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,u=b=>{const C=b??n.value??[];l.value=C.map((w,k)=>({id:l.value[k]?.id??d("text-array"),value:w??""}))};u(),e.watch(()=>n.value,b=>{if(i){i=!1;return}u(b||[])},{deep:!0}),e.watch(l,b=>{i=!0,n.value=b.map(C=>C.value).filter(C=>C!=null&&C!=="")},{deep:!0});const p=e.computed(()=>o.value||l.value.some(b=>!b.value));function g(){p.value||(l.value=[...l.value,{id:d("text-array"),value:""}])}function f(b){o.value||(l.value=l.value.filter(C=>C.id!==b))}function y(b){o.value||(a.value=b)}function h(b){if(o.value||a.value===null||a.value===b)return;const C=[...l.value],[w]=C.splice(a.value,1);C.splice(b,0,w),l.value=C,a.value=null}return(b,C)=>(e.openBlock(),e.createElementBlock("div",ec,[e.createElementVNode("div",tc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(w,k)=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":a.value===k}]),draggable:"true",onDragstart:x=>y(k),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:x=>h(k)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:o.value},[e.createVNode(e.unref(R.GripVertical),{class:"h-4 w-4"})],8,rc),e.createElementVNode("div",lc,[b.inputType==="text"?(e.openBlock(),e.createBlock(yt,{key:0,modelValue:w.value,"onUpdate:modelValue":x=>w.value=x,disabled:o.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="tel"?(e.openBlock(),e.createBlock(fn,{key:1,modelValue:w.value,"onUpdate:modelValue":x=>w.value=x,disabled:o.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="email"?(e.openBlock(),e.createBlock(pn,{key:2,modelValue:w.value,"onUpdate:modelValue":x=>w.value=x,disabled:o.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="mask"?(e.openBlock(),e.createBlock(un,{key:3,modelValue:w.value,"onUpdate:modelValue":x=>w.value=x,mask:b.mask,disabled:o.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:x=>f(w.id),disabled:o.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(R.X),{class:"h-4 w-4"})],8,ac)],42,nc))),128))],512),l.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",oc," Дані для відображення відсутні ")),e.createElementVNode("div",sc,[e.createElementVNode("button",{type:"button",onClick:g,disabled:p.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(R.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,ic)])]))}}),[["__scopeId","data-v-2c229b1f"]]),cc={class:"flex items-center gap-2 w-full"},dc=["disabled"],uc=["disabled"],rr=e.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,{inputClass:l}=Le(n.style),a=t,o=e.computed({get:()=>n.modelValue||"#000000",set:c=>a("update:modelValue",c)}),s=e.computed(()=>!!n.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",cc,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":i[0]||(i[0]=d=>o.value=d),disabled:s.value,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[c.modelValue?"":"text-opacity-50",e.unref(l)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,dc),[[e.vModelText,o.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=>o.value=d),disabled:s.value},null,8,uc),[[e.vModelText,o.value]])]))}}),pc={class:"flex items-center gap-2 w-full"},fc=["min","max","step","disabled"],mc=["disabled"],lr=e.defineComponent({__name:"vs-input-range",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},min:{default:0},max:{default:100},step:{default:1}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,{inputClass:l}=Le(n.style),a=t,o=e.computed({get:()=>Number(n.modelValue??n.min),set:c=>a("update:modelValue",Number(c))}),s=e.computed(()=>!!n.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",pc,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":i[0]||(i[0]=d=>o.value=d),min:c.min,max:c.max,step:c.step,disabled:s.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[c.modelValue?"":"text-opacity-50",e.unref(l)].join(" ")])},null,10,fc),[[e.vModelText,o.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number","onUpdate:modelValue":i[1]||(i[1]=d=>o.value=d),disabled:s.value},null,8,mc),[[e.vModelText,o.value]])]))}}),hc=["placeholder","disabled","name"],gc=["type","value","onInput","placeholder","disabled"],yc=["onClick"],ar=e.defineComponent({__name:"vs-input-array",props:e.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.ref(t.count),l=e.computed(()=>t.limit),{inputClass:a}=Le(t.style),o=e.useModel(r,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const h=o.value?.length??0;h<n.value&&(o.value=[...o.value??[],...Array(n.value-h)])});const i=e.ref({}),d=e.ref({});function u(h,b){h&&(i.value[b]=h)}async function p(h,b){if(!h||t.inputType!=="mask")return;const{default:C}=await Promise.resolve().then(()=>Nn);d.value[b]&&d.value[b].destroy(),d.value[b]=C(h,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[b].on("accept",()=>{const w=[...o.value||[]];w[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,o.value=w}),d.value[b].on("complete",()=>{const w=[...o.value||[]];w[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,o.value=w}),o.value?.[b]&&(d.value[b].value=o.value[b])}function g(h,b){if(s.value)return;const C=h.target.value??null,w=[...o.value];w[b]=t.inputType==="text"?C:Number(C),o.value=w}function f(){n.value+=1;const h=t.inputType==="text"||t.inputType==="mask"?null:0;o.value=[...o.value,h],t.inputType==="mask"&&setTimeout(()=>{const b=n.value-1;i.value[b]&&p(i.value[b],b)},0)}function y(h){if(n.value>1){d.value[h]&&(d.value[h].destroy(),delete d.value[h]),n.value-=1,o.value=o.value.filter((C,w)=>w!==h);const b={};Object.keys(d.value).forEach(C=>{const w=parseInt(C,10);w>h?b[w-1]=d.value[w]:w<h&&(b[w]=d.value[w])}),d.value=b}}return e.onMounted(()=>{if(t.inputType==="mask")for(let h=0;h<n.value;h+=1)i.value[h]&&p(i.value[h],h)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(h=>{h&&h.destroy()})}),e.watch(()=>t.mask,h=>{t.inputType==="mask"&&Object.values(d.value).forEach(b=>{b&&b.updateOptions({mask:h,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(o,h=>{t.inputType==="mask"&&h&&h.forEach((b,C)=>{d.value[C]&&d.value[C].value!==b&&(d.value[C].value=b||"")})},{deep:!0}),(h,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${l.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"},[h.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:w=>u(w,C-1),placeholder:h.placeholder,disabled:h.disabled,name:`${h.name}[${C-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":h.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,hc)):(e.openBlock(),e.createElementBlock("input",{key:1,type:h.inputType,value:o.value?.[C-1],onInput:w=>g(w,C-1),placeholder:c.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":h.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,gc)),!h.disabled&&C===n.value&&h.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(f,["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(R.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!h.disabled&&n.value>1&&h.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(w=>y(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(R.X),{class:"h-4 w-4"})],8,yc)):e.createCommentVNode("",!0)]))),128))],2))}}),bc=["aria-expanded","data-focus"],kc=["placeholder","disabled","readonly"],xc={class:"max-h-full"},wc=["onClick","disabled"],_c={key:0,class:"px-3 py-2 text-sm text-stone-500"},vc={class:"flex flex-col gap-1"},Cc=["onDragstart","onDrop"],Ec=["disabled"],Bc=["title"],Vc=["disabled","onClick","aria-label"],Sc={key:0,class:"text-xs text-stone-500"},jt=pe(e.defineComponent({__name:"vs-input-array-select",props:e.mergeModels({options:{default:()=>[]},data:{default:""},api:{default:""},prefix:{default:"api"},host:{default:""},parent:{},search:{type:Boolean,default:!0},maxHeight:{default:280},start:{default:0},slot:{},disabled:{type:Boolean,default:!1},style:{},customClass:{},modelValue:{},error:{},name:{},placeholder:{default:"Оберіть значення"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(r,{emit:t}){const n=r,l=t,a=e.useModel(r,"modelValue"),o=e.ref([]),s=e.ref(n.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),u=e.ref(""),p=e.ref(!1),g=e.ref(null),f=e.ref(null),y=e.ref(null),h=e.ref(null),b=e.ref(null),C=e.ref({});let w=!1,k=!1;const x=e.inject("values"),S=e.computed(()=>!!n.disabled),L=e.computed(()=>n.placeholder??"Оберіть значення"),$=e.computed(()=>n.search!==!1),v=e.computed(()=>{const P=n.parent??n.parentValue;return P?String(P):""}),A=e.computed(()=>v.value?x?.value?.[v.value]??null:null),E=P=>P==null?"__null__":String(P),V=P=>{if(!P)return"";const J=P.label??P.text??P.name??P.ua??P.en;return J?String(J):P.id!==void 0&&P.id!==null?String(P.id):""},B=P=>{const J=E(P);return i.value[J]||(i.value[J]=`array-select-${J}-${Math.random().toString(36).slice(2,8)}`),i.value[J]},M=e.computed(()=>new Set(o.value.map(P=>E(P.id)))),N=e.computed(()=>{const P=M.value;let J=[...s.value];if(!n.data&&u.value.trim()){const Q=u.value.toLowerCase();J=J.filter(he=>V(he).toLowerCase().includes(Q))}return J.filter(Q=>!P.has(E(Q.id)))}),F=()=>{if(!n.data)return"";const P=n.prefix??"api",J=n.api??`/${P}/suggest/${n.data}`;return`${n.host??""}${J}`},T=()=>{o.value.length&&(w=!0,o.value=o.value.map(P=>({...P,text:c.value[E(P.id)]??P.text})))},U=P=>{const J=E(P.id),Q=V(P);Q&&(c.value[J]=Q)},j=P=>{s.value=P?[...P]:[],P?.forEach(U),T()},Y=P=>{if(!P.length)return;const J=new Map(s.value.map(Q=>[E(Q.id),Q]));P.forEach(Q=>{const he=E(Q.id);J.set(he,Q),U(Q)}),s.value=Array.from(J.values()),T()},ee=async(P="")=>{if(!n.data)return[];const J=F();if(!J)return[];const Q=new URLSearchParams;Q.set("json","1"),P&&Q.set("key",P),n.start===1&&Q.set("start","1"),A.value!==null&&A.value!==void 0&&A.value!==""&&Q.set("parent",String(A.value));try{return(await(await fetch(`${J}?${Q.toString()}`)).json())?.data??[]}catch{return[]}},ve=async P=>{if(!n.data||!P.length)return[];const J=F();if(!J)return[];const Q=Array.from(new Set(P.map(Be=>E(Be)))),he=new URLSearchParams;he.set("json","1"),he.set("val",Q.join(",")),n.start===1&&he.set("start","1"),A.value!==null&&A.value!==void 0&&A.value!==""&&he.set("parent",String(A.value));try{const at=(await(await fetch(`${J}?${he.toString()}`)).json())?.data??[];return Y(at),at}catch{return[]}},ye=async(P="",{force:J=!1}={})=>{if(!n.data)return;const Q=A.value??null;if(!J&&d.value.keyword===P&&d.value.parent===Q&&s.value.length>0)return;d.value={keyword:P,parent:Q};const Be=await ee(P);j(Be)},ae=((P,J=200)=>{let Q;return(...he)=>{Q&&clearTimeout(Q),Q=setTimeout(()=>P(...he),J)}})(async P=>{n.data&&await ye(P,{force:!0})},250),ie=e.ref(null),be=()=>{if(!y.value)return;const P=y.value.getBoundingClientRect(),J=window.innerHeight??document.documentElement.clientHeight,Q=window.innerWidth??document.documentElement.clientWidth,he=8,Be=8,Qe=n.maxHeight??280,at=J-P.bottom-Be-he,Ke=P.top-Be-he,ft=at>=Ke,ot=Math.max(Q-he*2,0);let{width:et}=P;ot>0&&et>ot&&(et=ot);let{left:Ge}=P;Ge+et+he>Q&&(Ge=Q-et-he),Ge=Math.max(Ge,he);const it=Math.min(Qe,Math.max(ft?at:Ke,50));C.value={position:"fixed",left:`${Ge}px`,width:`${et}px`,maxHeight:`${it}px`,transform:ft?"none":"translateY(-100%)",top:ft?`${P.bottom+Be}px`:`${P.top-Be}px`}},xe=async(P="click")=>{S.value||p.value||(ie.value=P,await ye(u.value.trim()),p.value=!0,await e.nextTick(),be(),b.value?.focus())},K=()=>{p.value=!1,ie.value=null,e.nextTick(()=>{b.value?.blur()})},se=async P=>{if(P.stopPropagation(),!S.value){if(p.value){if(ie.value==="focus"){ie.value=null;return}K();return}await xe("click")}},Me=P=>{P.key==="Escape"&&K()},Ie=P=>{if(!p.value)return;const J=P.target;h.value?.contains(J)||K()},z=P=>{const J=P.target;f.value?.contains(J)||h.value?.contains(J)||K()},G=P=>{if(P.key==="Escape"){P.preventDefault(),K();return}if(P.key==="Enter"){P.preventDefault();const J=N.value[0];J&&X(J)}},X=P=>{if(!P)return;const J=E(P.id);if(M.value.has(J))return;U(P);const Q={id:P.id,text:V(P)||String(P.id??""),key:B(P.id)};o.value=[...o.value,Q],oe(P),u.value="",e.nextTick(()=>{b.value?.focus()})},oe=P=>{const J=o.value.map(Q=>Q.id);l("value-selected",{name:n.name,value:J,option:P})},ce=P=>{if(S.value)return;const J=o.value.filter(Q=>E(Q.id)!==E(P));o.value=J},Ee=P=>{S.value||(g.value=P)},Ve=P=>{if(S.value||g.value===null||g.value===P)return;const J=[...o.value],[Q]=J.splice(g.value,1);J.splice(P,0,Q),g.value=null,o.value=J},Ce=async()=>{const J=(Array.isArray(a.value)?[...a.value]:[]).filter(he=>he!=null);if(n.data&&J.length){const he=J.filter(Be=>!c.value[E(Be)]);he.length&&await ve(he)}const Q=J.map(he=>({id:he,text:c.value[E(he)]??String(he),key:B(he)}));w=!0,o.value=Q};e.watch(o,P=>{if(w){w=!1;return}const J=P.map(Q=>Q.id);k=!0,a.value=J,l("change",J)},{deep:!0}),e.watch(a,()=>{if(k){k=!1;return}Ce()},{deep:!0}),e.watch(u,P=>{!n.data||!p.value||ae(P.trim())}),e.watch(S,P=>{P&&K()}),e.watch(()=>n.options,async P=>{n.data||(j(P??[]),await Ce())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async P=>{P&&(await ye(u.value.trim()),await Ce())},{immediate:!0});const qe=e.ref(!1);return e.watch(A,async()=>{if(n.data){if(!qe.value){qe.value=!0;return}o.value=[],await ye(u.value.trim()),await Ce()}}),e.onMounted(async()=>{document.addEventListener("click",z,!0),window.addEventListener("keydown",Me),window.addEventListener("scroll",Ie,!0),await Ce()}),e.onUnmounted(()=>{document.removeEventListener("click",z,!0),window.removeEventListener("keydown",Me),window.removeEventListener("scroll",Ie,!0)}),(P,J)=>(e.openBlock(),e.createElementBlock("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:f},[e.createElementVNode("div",{class:"relative",onClick:J[2]||(J[2]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:y,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)]":"",S.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:se},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:b,"onUpdate:modelValue":J[0]||(J[0]=Q=>u.value=Q),placeholder:L.value,disabled:S.value,readonly:!$.value,onFocus:J[1]||(J[1]=()=>xe("focus")),onKeydown:G,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,kc),[[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(R.ChevronDown),{class:"h-4 w-4"})],2)],10,bc),(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:h,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(C.value)},[e.createElementVNode("div",xc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,Q=>(e.openBlock(),e.createElementBlock("button",{key:E(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(he=>X(Q),["stop"]),disabled:S.value},e.toDisplayString(V(Q)),9,wc))),128)),N.value.length===0?(e.openBlock(),e.createElementBlock("p",_c," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),e.createElementVNode("div",vc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(Q,he)=>(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":g.value===he}]),draggable:"true",onDragstart:Be=>Ee(he),onDragover:J[3]||(J[3]=e.withModifiers(()=>{},["prevent"])),onDrop:Be=>Ve(he),onDragend:J[4]||(J[4]=Be=>g.value=null)},[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-500 hover:text-stone-900",disabled:S.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(R.GripVertical),{class:"h-4 w-4"})],8,Ec),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:Q.text},e.toDisplayString(Q.text),9,Bc),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-400 hover:text-stone-900",disabled:S.value,onClick:e.withModifiers(Be=>ce(Q.id),["stop"]),"aria-label":`Видалити ${Q.text}`},[e.createVNode(e.unref(R.X),{class:"h-4 w-4"})],8,Vc)],42,Cc))),128)),o.value.length===0?(e.openBlock(),e.createElementBlock("p",Sc,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512))}}),[["__scopeId","data-v-56e6cd88"]]),$c={class:"flex items-center gap-2 w-full"},Ac={class:"relative flex-1"},Fc=["placeholder","disabled","onKeydown"],Nc=["disabled"],Dc={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},Mc={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Tc={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},Lc=["onClick"],Ic={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(r,{emit:t}){const n=/{{\s*([^}]+?)\s*}}/g,l=r,a=t,{inputClass:o}=Le(l.style),s=e.useModel(r,"modelValue"),c=e.computed({get:()=>s.value,set:$=>{s.value=$}}),i=e.ref(!1),d=e.ref([]),u=e.ref(!1),p=e.ref(null);e.watch(u,$=>{typeof document>"u"||($?(p.value=document.body.style.overflow,document.body.style.overflow="hidden"):p.value!=null?(document.body.style.overflow=p.value,p.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(p.value!=null?document.body.style.overflow=p.value:document.body.style.removeProperty("overflow"))});const g=e.computed(()=>l.placeholder??""),f=e.computed(()=>!!l.disabled),y=$=>{if(!$)return null;if(Array.isArray($))return $;if(typeof $=="string"){const v=$.split(",").map(A=>A.trim()).filter(Boolean);return v.length!==4?null:v.map(Number)}return null},h=e.computed(()=>{const $=y(l.bbox);if(!$||$.length!==4)return null;const v=$.map(Number);return v.some(A=>Number.isNaN(A))?null:v}),b=e.computed(()=>{const $=h.value;if(!$)return"";const[v,A,E,V]=$;return`${v},${Math.max(A,V)},${E},${Math.min(A,V)}`});e.computed(()=>b.value?"1":"0");const C=e.inject("values");function w(){!f.value&&c.value.trim()&&k()}async function k(){const $=(c.value||"").trim();if(!$)return;let v=$;if(l.includes?.length&&C?.value){const E=l.includes.map(V=>C.value?.[V]).filter(Boolean);E.length&&(v=`${E.join(", ")}, ${$}`)}const A=L(v);if(A){i.value=!0;try{const V=await(await fetch(A)).json();d.value=Array.isArray(V)?V:[],u.value=!0}catch(E){console.error("Address search error:",E)}finally{i.value=!1}}}function x(){u.value=!u.value}function S($){if(!$)return;u.value=!1;const v=parseFloat($.lat),E={type:"Point",coordinates:[parseFloat($.lon),v]};l.geom&&C?.value&&(C.value[l.geom]=E),a("update:geom",E)}function L($){if(!l.api)return"";const v={value:encodeURIComponent($),bbox:h.value?h.value.join(","):""};return l.api.replace(n,(A,E)=>v[E.trim()]??"")}return($,v)=>(e.openBlock(),e.createElementBlock("div",$c,[e.createElementVNode("div",Ac,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":v[0]||(v[0]=A=>c.value=A),placeholder:g.value,disabled:f.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(o),{"!border-red-600":l.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(w,["prevent"]),["enter"])},null,42,Fc),[[e.vModelText,c.value]]),d.value.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-blue-600",onClick:x,title:"Show search results"},[e.createVNode(e.unref(R.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:k,class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px]",disabled:i.value||!c.value?.trim()},[i.value?(e.openBlock(),e.createBlock(e.unref(R.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(R.Search),{key:0,class:"h-4 w-4"}))],8,Nc),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[u.value?(e.openBlock(),e.createElementBlock("div",Dc,[e.createElementVNode("div",Mc,[e.createElementVNode("div",Tc,[v[2]||(v[2]=e.createElementVNode("span",null,"Search results",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:v[1]||(v[1]=A=>u.value=!1),title:"Close"},[e.createVNode(e.unref(R.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(A,E)=>(e.openBlock(),e.createElementBlock("li",{key:E,onClick:V=>S(A),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(A.display_name),9,Lc))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ic," No results found "))])])):e.createCommentVNode("",!0)]))]))}}),sr=(r="")=>`${r}${Math.floor(Math.random()*1e4)}`,Oc={class:"vs-datalist space-y-3"},zc={class:"space-y-3"},Rc=["onClick","disabled"],Pc={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},jc=["disabled"],Uc=pe(e.defineComponent({__name:"vs-input-datalist",props:e.mergeModels({schema:{default:()=>[]},minItems:{default:0},maxItems:{default:void 0},addButtonText:{default:"Додати позицію"},emptyLabel:{default:"Немає рядків"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.computed(()=>Array.isArray(n.value)?n.value:[]),a=e.ref([]),o=e.computed(()=>t.schema?.map(h=>({...h,disabled:t.disabled||h.disabled}))??[]),s=e.computed(()=>o.value.map(h=>y(h))),c=e.computed(()=>t.disabled?!1:t.maxItems?l.value.length<t.maxItems:!0),i=e.computed(()=>t.disabled||l.value.length<=(t.minItems||0));e.watch(()=>l.value.length,()=>{d(),u()},{immediate:!0}),e.watch(()=>t.schema,u,{immediate:!0,deep:!0});function d(){const h=l.value.length;a.value.length<h?a.value=[...a.value,...Array.from({length:h-a.value.length},()=>sr())]:a.value.length>h&&a.value.splice(h)}function u(){if(!t.minItems||l.value.length>=t.minItems)return;const h=t.minItems-l.value.length,b=Array.from({length:h},p);n.value=[...l.value,...b]}function p(){const h={};return o.value.forEach(b=>{h[b.name]=b?.default??null}),h}function g(){c.value&&(n.value=[...l.value,p()],d())}function f(h){i.value||(n.value=l.value.filter((b,C)=>C!==h),d(),u())}function y(h){return{...h}}return(h,b)=>(e.openBlock(),e.createElementBlock("div",Oc,[e.createElementVNode("div",zc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(C,w)=>(e.openBlock(),e.createElementBlock("div",{key:a.value[w],class:"flex items-center gap-3"},[e.createVNode(tt,{schema:s.value,layout:"inline",navigation:!1,values:l.value[w],"onUpdate:values":k=>l.value[w]=k,"form-id":a.value[w]},null,8,["schema","values","onUpdate:values","form-id"]),e.createElementVNode("button",{type:"button",class:"h-[38px] w-[38px] flex items-center justify-center text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",onClick:k=>f(w),disabled:i.value},[e.createVNode(e.unref(R.Trash2),{class:"h-4 w-4"})],8,Rc)]))),128)),l.value.length===0?(e.openBlock(),e.createElementBlock("div",Pc,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:g,disabled:!c.value},[e.createVNode(e.unref(R.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,jc)]))}}),[["__scopeId","data-v-260e3e66"]]),Hc={class:"vs-dataform space-y-4"},qc=["draggable","onDragstart","onDragover","onDragenter","onDrop"],Kc={class:"flex items-center gap-2"},Gc=["onClick"],Wc={class:"text-sm font-medium text-gray-700"},Yc={class:"flex items-center gap-2"},Zc=["title","onClick","disabled"],Xc=["title","onClick","disabled"],Jc={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Qc=["disabled"],ed=pe(e.defineComponent({__name:"vs-input-dataform",props:e.mergeModels({schema:{default:()=>[]},minGroups:{default:0},maxGroups:{default:void 0},addButtonText:{default:"Додати групу фільтрів"},groupLabel:{default:void 0},duplicateTitle:{default:"Дублювати групу"},removeTitle:{default:"Видалити групу"},emptyLabel:{},view:{default:"default"},collapsible:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.ref([]),a=e.ref([]),o=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??"Ще немає груп"),p=e.computed(()=>t.schema?.map(W=>({...W,disabled:t.disabled||W.disabled}))??[]),g=e.computed(()=>p.value.map(W=>A(W))),f=e.computed(()=>t.view==="accordion"),y=e.computed(()=>!!(t.collapsible||f.value)),h=e.computed(()=>t.draggable!==!1),b=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),C=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{w(),k(),x()},{immediate:!0}),e.watch(()=>t.schema,x,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{k()},{immediate:!0});function w(){const W=n.value.length;l.value.length<W?l.value=[...l.value,...Array.from({length:W-l.value.length},()=>sr())]:l.value.length>W&&l.value.splice(W)}function k(){const W=n.value.length;f.value?W===0?o.value=-1:o.value>=W?o.value=W-1:o.value<0&&(o.value=0):a.value.length<W?a.value=[...a.value,...Array.from({length:W-a.value.length},()=>!1)]:a.value.length>W&&a.value.splice(W)}function x(){if(!t.minGroups||n.value.length>=t.minGroups)return;const W=t.minGroups-n.value.length,ae=Array.from({length:W},S);n.value=[...n.value,...ae],k()}function S(){const W={};return p.value.forEach(ae=>{W[ae.name]=ae?.default??null}),W}function L(){b.value&&(n.value=[...n.value,S()],w(),k())}function $(W){C.value||(n.value=n.value.filter((ae,ie)=>ie!==W),w(),f.value?o.value>=n.value.length&&(o.value=n.value.length-1):a.value.splice(W,1),x())}function v(W){if(t.disabled)return;const ae=JSON.parse(JSON.stringify(n.value[W]??{}));n.value=[...n.value.slice(0,W+1),ae,...n.value.slice(W+1)],w(),f.value?o.value>W&&(o.value+=1):a.value.splice(W+1,0,a.value[W]??!1)}function A(W){return{...W}}function E(W){return f.value?o.value===-1&&W===0?!1:o.value!==W:!!a.value[W]}function V(W){if(y.value){if(f.value){o.value=W;return}a.value[W]=!a.value[W]}}function B(W,ae){if(!h.value||t.disabled){ae.preventDefault();return}s.value=W,c.value=W,i.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...l.value],states:[...a.value]},ae.dataTransfer?.setData("text/plain",String(W)),ae.dataTransfer?.setDragImage?.(ae.currentTarget,0,0)}function M(W,ae){!h.value||t.disabled||s.value!==null&&Y(W,ae)}function N(W,ae){Y(W,ae)}function F(W){!h.value||t.disabled||ye()}function T(){i.value&&j(),s.value=null,c.value=null,i.value=null}function U(W,ae){const ie=[...n.value],[be]=ie.splice(W,1);ie.splice(ae,0,be),n.value=ie;const xe=[...l.value],[K]=xe.splice(W,1);if(xe.splice(ae,0,K),l.value=xe,f.value)o.value===W&&(o.value=ae);else{const se=[...a.value],[Me]=se.splice(W,1);se.splice(ae,0,Me),a.value=se}}function j(){i.value&&(n.value=i.value.groups,l.value=i.value.keys,a.value=i.value.states,i.value=null,c.value=null)}function Y(W,ae){if(s.value===null)return;const ie=ee(W,ae);c.value=ie,ve(ie)}function ee(W,ae){if(!ae?.currentTarget)return W;const ie=ae.currentTarget.getBoundingClientRect(),xe=ae.clientY-ie.top>ie.height/2?W+1:W;return Math.max(0,Math.min(xe,n.value.length))}function ve(W){const ae=s.value;if(ae===null)return;let ie=W;if(ie>n.value.length&&(ie=n.value.length),ie===ae||ie===ae+1)return;const be=ie>ae?ie-1:ie;U(ae,be),s.value=be,c.value=ie>ae?be+1:be}function ye(){i.value=null,s.value=null,c.value=null}return(W,ae)=>(e.openBlock(),e.createElementBlock("div",Hc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(ie,be)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[be],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":E(be)?"pt-6 px-6":"p-6"]]),draggable:h.value&&!t.disabled,onDragstart:xe=>B(be,xe),onDragend:T,onDragover:e.withModifiers(xe=>M(be,xe),["prevent"]),onDragenter:e.withModifiers(xe=>N(be,xe),["prevent"]),onDrop:e.withModifiers(xe=>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"&&!E(be)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",Kc,[h.value?(e.openBlock(),e.createBlock(e.unref(R.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:xe=>V(be)},[e.createVNode(e.unref(R.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",E(be)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,Gc)):e.createCommentVNode("",!0),e.createElementVNode("div",Wc,e.toDisplayString(`${d.value} (${be+1})`),1)]),e.createElementVNode("div",Yc,[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:xe=>v(be),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(R.Copy),{class:"h-4 w-4"})],8,Zc),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:xe=>$(be),disabled:C.value,draggable:"false"},[e.createVNode(e.unref(R.Trash2),{class:"h-4 w-4"})],8,Xc)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(tt,{class:"vs-dataform__form",schema:g.value,layout:"inline",navigation:!1,values:n.value[be],"onUpdate:values":xe=>n.value[be]=xe,"form-id":l.value[be],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!E(be)]])],42,qc))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",Jc,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:L,disabled:!b.value},[e.createVNode(e.unref(R.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Qc)]))}}),[["__scopeId","data-v-cfbcfed8"]]),Ut="__vs_form_monaco_loader__",mt="__vs_form_monaco_script_loader__",Ht="__vs_form_monaco_editor_loader__",xn=e.defineComponent({__name:"vs-input-monaco",props:e.mergeModels({syntax:{default:"xml"},theme:{default:"vs-light"},height:{default:280},minimap:{type:Boolean,default:!1},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r,{expose:t}){const n=r,l=e.useModel(r,"modelValue"),a=e.ref(null),o=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 y=window;if(y.monaco?.editor?.create)return c=y.monaco,Promise.resolve(c);if(y[Ut])return y[Ut];const b=(async()=>{const C=x=>{if(Array.from(document.styleSheets||[]).some($=>$?.href?.includes(x)))return;const L=document.createElement("link");L.rel="stylesheet",L.href=x,document.head.appendChild(L)},w=x=>{if(y[mt]?.[x])return y[mt][x];y[mt]||={};const S=Array.from(document.scripts).find(L=>L.src===x);return S?(y[mt][x]=new Promise((L,$)=>{const v=S.readyState;if(S.dataset.loaded==="true"||v==="loaded"||v==="complete"){L();return}S.addEventListener("load",()=>{S.dataset.loaded="true",L()},{once:!0}),S.addEventListener("error",A=>$(A),{once:!0})}),y[mt][x]):(y[mt][x]=new Promise((L,$)=>{const v=document.createElement("script");v.src=x,v.async=!0,v.onload=()=>{v.dataset.loaded="true",L()},v.onerror=A=>$(A),document.body.appendChild(v)}),y[mt][x])},k="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return C(`${k}/editor/editor.main.min.css`),await w(`${k}/loader.min.js`),y[Ht]||(y[Ht]=new Promise((x,S)=>{window.require.config({paths:{vs:k}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,y.monaco=c,x(c)},L=>S(L))}).catch(x=>{throw delete y[Ht],x})),y[Ht]})().catch(C=>{throw delete y[Ut],C});return y[Ut]=b,b},u=()=>{!a.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(a.value,{value:l.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{i||(l.value=s.getValue())}))},p=()=>{s?.focus()},g=()=>s,f=()=>c;return e.watch(()=>l.value,y=>{if(!s)return;const h=s.getValue();y!==h&&(i=!0,s.setValue(y||""),i=!1)}),e.watch(()=>n.syntax,y=>{!s||!c||c.editor.setModelLanguage(s.getModel(),y||"xml")}),e.watch(()=>n.theme,y=>{c&&c.editor.setTheme(y||"vs-light")}),e.watch(()=>n.disabled,y=>{s&&s.updateOptions({readOnly:!!y})}),e.watch(()=>n.minimap,y=>{s&&s.updateOptions({minimap:{enabled:!!y}})}),e.onMounted(async()=>{try{const y=await d();if(!y||!y.editor)return;c=y,u()}catch(y){console.error("Failed to load Monaco editor",y)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:p,getEditor:g,getMonaco:f}),(y,h)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:o.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:a,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),ir={VsInputText:yt,VsInputRadio:mn,"vs-input-text":yt,"vs-input-password":yl,"vs-input-textarea":Wn,"vs-input-richtext":Yn,"vs-input-mask":un,"vs-input-number":Rn,"vs-input-radio":mn,"vs-input-select":bn,"vs-input-switcher":cn,"vs-input-static":dn,"vs-input-container":Gn,"vs-input-date":ea,"vs-input-checkbox":Pn,"vs-input-file":Hn,"vs-input-file2":gn,file2:gn,File2:gn,"vs-input-html":dn,"vs-input-email":pn,"vs-input-tel":fn,"vs-input-datatable":Zn,"vs-input-map":Xn,"vs-input-file-list":qn,"vs-input-tags":Jn,"vs-input-slug":Qn,"vs-input-codegen":er,"vs-input-key-value":tr,"vs-input-text[]":nr,"vs-input-range":lr,"vs-input-color":rr,"vs-input-native-select":bn,VsInputArraySelect:jt,"vs-input-array":ar,"vs-input-array-select":jt,"array-select":jt,"vs-input-address":or,"vs-input-datalist":Uc,"vs-input-dataform":ed,"vs-input-monaco":xn},td=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(r){const t=r,n=e.inject("values");async function l(){try{if(!t.api)return;const a=t.api.replace("{{value}}",t.value),o=await fetch(a);if(!o.ok){ge.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const s=await o.json();if(!t.set||!n)return;for(const[c,i]of Object.entries(t.set))n.value[c]=s.result[i]}catch(a){console.error(t.error,a)}}return(a,o)=>(e.openBlock(),e.createElementBlock("button",{onClick:l,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(a.button),1))}}),nd={class:"flex flex-col gap-1 w-full"},rd=["innerHTML"],cr=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]},columns:{default:()=>({container:12,label:3})}},{modelValue:{default:null},modelModifiers:{}}),emits:e.mergeModels(["value-selected"],["update:modelValue"]),setup(r,{emit:t}){const n=r,l=e.useModel(r,"modelValue"),a=t,o=e.computed(()=>hl[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(C()),i=e.computed(()=>y(n.item,c.value)),d=e.computed(()=>ir?.[`vs-input-${n.item.type}`]),u=e.inject("field-props"),p=e.computed(()=>{const k=e.unref(d);if(!k)return new Set;const x=k.props??k.__vccOpts?.props;if(!x)return new Set;const S=Array.isArray(x)?x:Object.keys(x);return new Set(S)}),g=e.computed(()=>{const k={...i.value??{}},x=n.item?.name;x&&u?.value?.[x]&&Object.assign(k,u.value[x]);const S=p.value;return S.size?Object.fromEntries(Object.entries(k).filter(([L])=>S.has(L))):{}}),f=k=>{const x=typeof k=="object"&&k!==null?k:{value:k};a("value-selected",{...x,name:x.name??n.item?.name})};e.onMounted(()=>{c.value=C(),window.addEventListener("storage",w)}),e.onUnmounted(()=>{window.removeEventListener("storage",w)});function y(k,x){if(!k)return{};const S={...k};return s.forEach(L=>{const $=b(k,L,x);$!=null&&(S[L]=$)}),Array.isArray(k.options)&&(S.options=k.options.map(L=>h(L,x))),S}function h(k,x){if(!k)return k;const S={...k},L=b(k,"label",x),$=b(k,"text",x);return L!=null&&(S.label=L),$!=null?S.text=$:L!=null&&(S.text=L),S}function b(k,x,S){const L=`${x}:${S}`;if(k?.[L]!=null)return k[L];if(x==="label"&&k?.[S]!=null)return k[S];if(k?.[x]!=null)return k[x];if(x==="label"){if(k?.ua!=null)return k.ua;if(k?.en!=null)return k.en}if(x==="text"||x==="html"){if(k?.ua!=null)return k.ua;if(k?.en!=null)return k.en}return null}function C(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function w(){c.value=C()}return(k,x)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.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",nd,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),e.mergeProps(g.value,{modelValue:l.value,"onUpdate:modelValue":x[0]||(x[0]=S=>l.value=S),onValueSelected:f}),null,16,["modelValue"])),i.value.description&&n.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:i.value.description},null,8,rd)):e.createCommentVNode("",!0)]),i.value.behavior?.api&&i.value.behavior?.button?(e.openBlock(),e.createBlock(td,e.mergeProps({key:0},i.value.behavior,{value:l.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),ld={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},ad={class:"vs-compact-form-navigation__rail mt-[6px]"},od=["onClick"],sd=pe(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(r,{expose:t}){const n=r,l=e.ref([]),a=e.ref(""),o=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 V=n.width;if(V==null)return{};const B=typeof V=="number"?`${V}px`:`${V}`;return{width:B,minWidth:B}});let d=null,u=0,p=0,g=null,f=null,y=null;const h=()=>A(),b=()=>w();e.watch(()=>n.target,async V=>{if(L(),!V){g=null,l.value=[],a.value="";return}g=V,s.value&&(await e.nextTick(),S(V),w())},{immediate:!0}),e.watch(()=>n.scrollContainer,V=>{if(!s.value){f=V??null;return}C(V??null),e.nextTick(()=>w())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||C(null),w()}),e.onBeforeUnmount(()=>{L(),C(null,!0),g=null,typeof window<"u"&&(u&&window.cancelAnimationFrame(u),p&&window.cancelAnimationFrame(p))});function C(V,B=!1){if(y&&(y(),y=null),B){f=null;return}if(f=V??null,typeof window>"u")return;const M=V??window,N=window;M.addEventListener("scroll",h,{passive:!0}),N.addEventListener("resize",b),y=()=>{M.removeEventListener("scroll",h),N.removeEventListener("resize",b)}}function w(){if(!s.value||!g)return;u&&typeof window<"u"&&window.cancelAnimationFrame(u);const V=()=>{k(),u=0};typeof window>"u"?V():u=window.requestAnimationFrame(V)}function k(){if(!s.value||!g)return;const V=Array.from(g.querySelectorAll("h1, h2")),B=new Set,M=[];V.forEach((N,F)=>{const T=N.textContent?.trim()??"";if(!T)return;let U=(N.getAttribute("id")??"").trim();U||(U=x(T)||`heading-${F+1}`);let j=U,Y=1;for(;B.has(j);)j=`${U}-${Y+=1}`;N.id!==j&&Object.assign(N,{id:j}),B.add(j),M.push({id:j,text:T,level:N.tagName.toLowerCase()==="h1"?1:2})}),l.value=M,M.length||(a.value=""),v()}function x(V){return V.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function S(V){!V||!s.value||typeof MutationObserver>"u"||(L(),d=new MutationObserver(()=>w()),d.observe(V,{childList:!0,subtree:!0}))}function L(){d&&(d.disconnect(),d=null)}function $(V){const B=f;if(!B)return typeof window>"u"?V.offsetTop:V.getBoundingClientRect().top+window.scrollY;const M=V.getBoundingClientRect(),N=B.getBoundingClientRect();return M.top-N.top+B.scrollTop}function v(){if(!s.value||!l.value.length)return;const V=f,B=(V?V.scrollTop:null)||(typeof window<"u"?window.scrollY:0),M=(V?V.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),N=B+M;let F=null;for(let U=0;U<l.value.length;U+=1){const j=l.value[U],Y=document.getElementById(j.id);if(Y){const ee=$(Y);ee+Y.offsetHeight>B&&ee<N&&(F=j.id)}}!F&&o.value&&(F=o.value),F&&(o.value=F);const T=V?V.scrollHeight-V.clientHeight:document.documentElement.scrollHeight-window.innerHeight;B+5>=T&&(F=l.value[l.value.length-1].id),F&&(a.value=F)}function A(){s.value&&(p&&window.cancelAnimationFrame(p),p=window.requestAnimationFrame(()=>{v(),p=0}))}function E(V){if(!s.value)return;const B=document.getElementById(V);if(!B)return;const M=f,N=Math.max(0,$(B));M?M.scrollTo({top:N,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:N,behavior:"smooth"})}return t({refresh:w}),(V,B)=>s.value&&l.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",ld,e.toDisplayString(V.title),1),e.createElementVNode("div",ad,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,M=>(e.openBlock(),e.createElementBlock("div",{key:M.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",M.level===2?"vs-compact-form-navigation__item--nested":"",M.id===a.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:N=>E(M.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",M.level===2?"pl-[15px]":"pl-[18px]",M.id===a.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(M.text),1)],10,od)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),ht={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:r=>`Мінімальна довжина — ${r} символів`,maxlength:r=>`Максимальна довжина — ${r} символів`},id=r=>typeof r=="string"?r.trim()?!1:ht.required:Array.isArray(r)?r.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:ht.required:r?!1:ht.required,cd=r=>{const t=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return r?t.test(r)?!1:ht.email:!1},dd=r=>{const t=/^\+[1-9]\d{1,14}$/;return r?t.test(r)?!1:ht.tel:!1},dr=r=>r==null?0:typeof r=="string"?r.trim().length:Array.isArray(r)?r.length:typeof r=="number"?r.toString().length:String(r).length,ud=(r,t)=>{if(r==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&dr(r)<n?t?.message||ht.minlength(n):!1},pd=(r,t)=>{if(r==null||r==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&dr(r)>n?t?.message||ht.maxlength(n):!1},fd=(r,t)=>{const n=t.pattern??t.regexp,l=typeof n=="string"?new RegExp(n):n;if(Array.isArray(r)){const a=r.filter(Boolean);return a.length===0||a.every(o=>l.test(o))?!1:t.message}return!l.test(r)&&r?t.message:!1},md=(r,t)=>!1,hd=(r,t)=>{switch(typeof t=="string"?t:t.type){case"required":return id(r);case"email":return cd(r);case"tel":return dd(r);case"regexp":return fd(r,t);case"minlength":return ud(r,t);case"maxlength":return pd(r,t);case"custom":return md();default:return!1}},gd={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file"};function ur(r){const t=r?.toLowerCase();return gd[t]||t}function wn(r,t=!1){if(Array.isArray(r)){const l=[];return r.forEach(a=>{const o={...a};o.name=(a.name||a.id||a.key||"").toString(),o.type=ur(a.type),o.label=a.label||a.ua,o.rules=a.rules||a.validators,o.type==="email"&&!o.rules&&(o.rules=["email"]),a.data&&(o.api=`/api/suggest/${a.data}`),o.disabled=o.disabled??t,Array.isArray(o.schema)&&(o.schema=wn(o.schema,o.disabled)),l.push(o)}),l}const n=[];return Object.entries(r).forEach(l=>{const a={name:l[0],...l[1],type:ur(l[1].type),label:l[1].label||l[1].ua,rules:l[1].rules||l[1].validators,disabled:l[1].disabled??t};a.type==="email"&&!a.rules&&(a.rules=["email"]),l[1].type?.includes("list")&&(a.multiple=!0),!a.api&&l[1].data&&(a.api=`/api/suggest/${l[1].data}`),Array.isArray(a.schema)&&(a.schema=wn(a.schema,a.disabled)),n.push(a)}),n}function yd(r,t,n=!1){const l=e.computed(()=>wn((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),a=e.ref({});function o(d){const u=d?.conditions;if(!u)return!0;const p=Array.isArray(u)?u[0]:u,g=r?.value?.[p];return Kn(g,u)}const s=(d=l.value,u=!0)=>(d.forEach(p=>{const g=[],f=Number(p?.minlength),y=Number(p?.maxlength);!Number.isNaN(f)&&Number.isFinite(f)&&g.push({type:"minlength",value:f}),!Number.isNaN(y)&&Number.isFinite(y)&&g.push({type:"maxlength",value:y});const h=[...g,...p.rules||[]];if(h.length){if(!o(p)){delete a.value[p.name];return}let b=!1,C=null;h.forEach(w=>{const k=hd(r.value[p.name],w);k&&(b=!0,!C&&typeof k=="string"&&(C=k))}),b&&C?a.value[p.name]=C:delete a.value[p.name]}p.schema&&s(p.schema,!1)}),u&&Object.values(a.value).some(Boolean)?a.value:null),c=e.computed(()=>l.value?.filter(d=>d.hidden!==!0&&o(d)));return{errors:a,validate:s,reset:()=>{r.value={},a.value={}},visibleSchema:c}}const bd={class:"flex w-full h-full min-h-0 gap-6"},kd={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},tt=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(r,{expose:t,emit:n}){const l=n,a=r,o=e.useModel(r,"form"),s=e.useModel(r,"modelValue"),c=e.useModel(r,"values"),i=e.computed({get:()=>c.value??s.value,set:M=>{s.value=M,c.value=M}}),{errors:d,validate:u,reset:p,visibleSchema:g}=yd(i,a.schema,e.toRef(a,"disabled")),f=e.ref(null),y=e.ref(null),h=e.ref({}),b=e.computed(()=>a.navigation),C=e.computed(()=>a.navWidth),w=e.computed(()=>a.style?.columns),k=Object.freeze({container:12,label:3}),x=e.computed(()=>a.columns??w.value??k),S=e.computed(()=>a.columns!=null||w.value!=null),L=e.computed(()=>S.value?"horizontal":a.layout),$=M=>M?.columns?"horizontal":L.value,v=M=>M?.columns??x.value,A=()=>{l("update:modelValue",i.value),u(),l("handle-submit",i.value)},E=M=>{l("value-selected",M)},V=()=>{a.formId&&(i.value?.id!==void 0&&i.value?.id!==null&&i.value?.id!==""||(i.value={...i.value??{},id:a.formId}))};t({validate:u,reset:p,errors:d}),e.onMounted(()=>{V(),o.value={value:i.value,errors:d.value,reset:p,validate:u,formId:a.formId}}),e.watch(()=>a.formId,()=>{V()},{immediate:!0});function B(M,N){if(M===N)return!0;if(typeof M!="object"||typeof N!="object"||!M||!N)return!1;const F=Object.keys(M),T=Object.keys(N);return F.length!==T.length?!1:F.every(U=>M[U]===N[U])}return e.provide("form",o),e.provide("values",i),e.provide("field-props",h),(M,N)=>(e.openBlock(),e.createElementBlock("div",bd,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:y},[e.createElementVNode("form",{ref_key:"formRef",ref:f,onSubmit:e.withModifiers(A,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",L.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),(F,T)=>(e.openBlock(),e.createElementBlock("div",{key:F.name,class:e.normalizeClass($(F)==="horizontal"?"col-span-12":`col-span-${F.col||12}`)},[e.createVNode(cr,{style:e.normalizeStyle(M.style),item:F,layout:$(F),columns:v(F),"model-value":i.value[F.name],"onUpdate:modelValue":U=>{const j=i.value[F.name];B(j,U)||(i.value[F.name]=U)},error:e.unref(d)[F.name],onValueSelected:E},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),$(F)==="settings"&&T+1!==e.unref(g).length?(e.openBlock(),e.createElementBlock("div",kd)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(sd,{target:f.value,"scroll-container":y.value,enabled:b.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),xd={class:"relative"},wd={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},_d={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"},vd={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Cd={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Ed={class:"p-4 mim-h-0 h-full overflow-auto"},pr=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(r,{emit:t}){const n=r,l=t,a=e.ref(n.schema),o=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),c=e.ref(n.token||""),i=e.ref(n.mode),d=()=>{const y=n.method?.trim().toUpperCase();return y==="GET"||y==="POST"||y==="PUT"?y:i.value==="add"?"POST":"PUT"},u=()=>{ge.notify({type:"success",title:"Успішно",message:`Дані успішно ${i.value==="add"?"збережено":"оновлено"}`})},p=async y=>{if(console.log(y),y.ok){await y.json().catch(()=>({})),u(),l("save",o.value);return}if(y.status===400){const h=await y.json().catch(()=>({}));ge.notify({type:"warning",title:"Помилка валідації",message:h.message||"Некоректні дані (400)"});return}if(y.status===500){ge.notify({type:"error",title:"Серверна помилка",message:"Виникла помилка на сервері (500)"});return}ge.notify({type:"error",title:"Помилка",message:`Статус: ${y.status}`})};async function g(){const y=s.value.validate();if(y){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(y).map(([b,C])=>`${b}: ${C}`).join(`
|
|
3
|
-
`)});return}const h=n.api?.trim();if(h){const b=d();try{const C=await fetch(h,{method:b,headers:b==="GET"?void 0:{"Content-Type":"application/json"},body:b==="GET"?void 0:JSON.stringify(o.value)});await p(C)}catch(C){ge.notify({type:"error",title:"Помилка з’єднання",message:C.message||"Не вдалося виконати запит"})}return}if(c.value)try{const b=await fetch(`/api/table/${c.value}`,{method:i.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(o.value)});await p(b)}catch(b){ge.notify({type:"error",title:"Помилка з’єднання",message:b.message||"Не вдалося виконати запит"})}else l("edit",o.value),f()}function f(){l("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const y=await fetch(`/api/template/form/${n.form}`);if(!y.ok){ge.notify({type:y.status>=400&&y.status<500?"warning":"error",title:"Error",message:`Error code: ${y.status}`});return}const h=await y.json();a.value=h.schema,h.token&&(c.value=h.token)}else if(n.token&&!n.defaultValue){c.value=n.token;const y=await fetch(`/api/form/${c.value}`);if(!y.ok){ge.notify({type:y.status>=400&&y.status<500?"warning":"error",title:"Error",message:`Error code: ${y.status}`});return}const h=await y.json();a.value=h.schema,h.data?o.value=h.data:i.value="add",h.obj&&(o.value={...o.value,...h.obj})}}catch(y){ge.notify({type:"error",title:"Error",message:y.message||"Unexpected error"}),console.error(y)}}),(y,h)=>(e.openBlock(),e.createElementBlock("div",xd,[e.createElementVNode("div",wd,[e.createElementVNode("div",_d,[e.createElementVNode("div",vd,[e.createElementVNode("h3",Cd,e.toDisplayString(i.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:f,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"},[h[2]||(h[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(R.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",Ed,[a.value?(e.openBlock(),e.createBlock(tt,{key:0,schema:a.value,values:o.value,"onUpdate:values":h[0]||(h[0]=b=>o.value=b),form:s.value,"onUpdate:form":h[1]||(h[1]=b=>s.value=b),formId:c.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:f,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:g,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"}," Зберегти ")])])])]))}}),Bd=1440*60*1e3,Vd=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],Sd=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],$d=["нд","пн","вт","ср","чт","пт","сб"];function Fe(r){return r instanceof Date&&!Number.isNaN(r.getTime())}const bt=r=>new Date(r.getTime());function gt(r){const t=bt(r);return t.setHours(0,0,0,0),t}function wt(r){const t=bt(r);return t.setHours(23,59,59,999),t}function _n(r){return gt(new Date(r.getFullYear(),r.getMonth(),1))}function vn(r){return wt(new Date(r.getFullYear(),r.getMonth()+1,0))}function Cn(r,t){const n=new Date(r),l=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const a=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(l,a)),n}function Ad(r,t){return Cn(r,-1)}function qt(r,t){const n=new Date(r);return n.setFullYear(n.getFullYear()+t),n}function fr(r,t){return qt(r,-t)}function mr(r){return gt(new Date(r.getFullYear(),0,1))}function hr(r){return wt(new Date(r.getFullYear(),11,31))}function Fd(r){const t=Math.floor(r.getFullYear()/10)*10;return gt(new Date(t,0,1))}function Nd(r){const t=Math.floor(r.getFullYear()/10)*10+9;return wt(new Date(t,11,31))}const Je=r=>r.getFullYear(),Kt=r=>Math.floor(r.getFullYear()/10)*10;function Dd(r){const t=[];let n=gt(r.start);const l=gt(r.end);for(;n<=l;)t.push(bt(n)),n=new Date(n.getTime()+Bd);return t}function Md(r){const t=[];let n=_n(r.start);const l=vn(r.end);for(;n<=l;)t.push(bt(n)),n=Cn(n,1);return t}function Td(r){const t=[];let n=mr(r.start);const l=hr(r.end);for(;n<=l;)t.push(bt(n)),n=qt(n,1);return t}function En(r,t=1){const n=gt(r),l=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-l),n}function Ld(r,t=1){const n=En(r,t);return n.setDate(n.getDate()+6),wt(n)}function Id(r,t,n=0){const l=En(r,n),a=(t-n+7)%7;return l.setDate(l.getDate()+a),l}const Gt=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear()&&r.getMonth()===t.getMonth()&&r.getDate()===t.getDate(),Bn=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear()&&r.getMonth()===t.getMonth(),gr=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear(),yr=(r,t)=>!!r&&!!t&&Gt(r,t)&&r.getHours()===t.getHours(),Od=(r,t)=>!!r&&!!t&&yr(r,t)&&r.getMinutes()===t.getMinutes();function zd(r,t){const n=r.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const _t=(r,t)=>!!r&&!!t&&r.getTime()<t.getTime(),vt=(r,t)=>!!r&&!!t&&r.getTime()>t.getTime();function Rd(r){const t=r.filter(n=>Fe(n));if(t.length)return t.reduce((n,l)=>n.getTime()>=l.getTime()?n:l)}function Pd(r){const t=r.filter(n=>Fe(n));if(t.length)return t.reduce((n,l)=>n.getTime()<=l.getTime()?n:l)}function br(r,t){const n=bt(r);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const Wt=(r,t=2)=>String(r).padStart(t,"0");function kr(r,t){return t==="wide"?Vd[r]:Sd[r]}function jd(r){return $d[r]}const Ud=[{token:"LLLL",format:r=>kr(r.getMonth(),"wide")},{token:"LLL",format:r=>kr(r.getMonth(),"abbreviated")},{token:"EE",format:r=>jd(r.getDay())},{token:"yyyy",format:r=>String(r.getFullYear())},{token:"MM",format:r=>Wt(r.getMonth()+1)},{token:"dd",format:r=>Wt(r.getDate())},{token:"HH",format:r=>Wt(r.getHours())},{token:"mm",format:r=>Wt(r.getMinutes())}];function Yt(r,t){if(!Fe(r))return"";let n="",l=0;for(;l<t.length;){const a=Ud.find(o=>t.startsWith(o.token,l));a?(n+=a.format(r),l+=a.token.length):(n+=t[l],l+=1)}return n}const Hd={"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 xr(r,t){const n=Hd[t];if(!n){const a=new Date(r);return Fe(a)?a:null}const l=r.match(n);if(!l)return null;switch(t){case"yyyy-MM-dd":{const[,a,o,s]=l,c=new Date(Number(a),Number(o)-1,Number(s));return Fe(c)?c:null}case"dd.MM.yyyy":{const[,a,o,s]=l,c=new Date(Number(s),Number(o)-1,Number(a));return Fe(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,a,o,s,c,i]=l,d=new Date(Number(s),Number(o)-1,Number(a),Number(c),Number(i));return Fe(d)?d:null}case"HH:mm":{const[,a,o]=l,s=new Date;return s.setHours(Number(a),Number(o),0,0),s}case"MM.yyyy":{const[,a,o]=l;return new Date(Number(o),Number(a)-1,1)}case"yyyy":{const[,a]=l;return new Date(Number(a),0,1)}default:return null}}const qd=["year","month","day","time","custom"],Kd=e.defineComponent({components:{ChevronLeft:R.ChevronLeft,ChevronRight:R.ChevronRight},emits:{elementClick:r=>Fe(r),left:()=>!0,right:()=>!0,heading:()=>!0},props:{headingClickable:{type:Boolean,default:!1},leftDisabled:{type:Boolean,default:!1},rightDisabled:{type:Boolean,default:!1},columnCount:{type:Number,default:7},items:{type:Array,default:()=>[]},viewMode:{type:String,required:!0,validate:r=>typeof r=="string"&&qd.includes(r)}}}),Gd={class:"v3dp__heading"},Wd=["disabled"],Yd=["disabled"],Zd={class:"v3dp__body"},Xd={class:"v3dp__subheading"},Jd={class:"v3dp__elements"},Qd=["disabled","onClick"];function eu(r,t,n,l,a,o){const s=e.resolveComponent("ChevronLeft"),c=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v3dp__popout",`v3dp__popout-${r.viewMode}`]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${r.columnCount}, 1fr)`}),onMousedown:t[3]||(t[3]=e.withModifiers(()=>{},["prevent"]))},[e.createElementVNode("div",Gd,[e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__left",disabled:r.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(i=>r.$emit("left"),["stop","prevent"]))},[e.renderSlot(r.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,Wd),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.headingClickable?"button":"span"),{class:"v3dp__heading__center",onClick:t[1]||(t[1]=e.withModifiers(i=>r.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"heading",{},void 0,!0)]),_:3})),e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__right",disabled:r.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(i=>r.$emit("right"),["stop","prevent"]))},[e.renderSlot(r.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,Yd)]),e.createElementVNode("div",Zd,["subheading"in r.$slots?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",Xd,[e.renderSlot(r.$slots,"subheading",{},void 0,!0)]),t[4]||(t[4]=e.createElementVNode("hr",{class:"v3dp__divider"},null,-1))],64)):e.createCommentVNode("",!0),e.createElementVNode("div",Jd,[e.renderSlot(r.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass([{selected:i.selected,current:i.current},`v3dp__element__button__${r.viewMode}`]),onClick:e.withModifiers(d=>r.$emit("elementClick",i.value),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(i.display),1)],10,Qd))),128))],!0)])])],38)}const Zt=pe(Kd,[["render",eu],["__scopeId","data-v-9e083852"]]),tu=e.defineComponent({components:{PickerPopup:Zt},emits:{"update:pageDate":r=>Fe(r),select:r=>Fe(r)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(r,{emit:t}){const n=e.computed(()=>Fd(r.pageDate)),l=e.computed(()=>Nd(r.pageDate)),a=(p,g,f)=>!g&&!f?!0:!(g&&Je(p)<Je(g)||f&&Je(p)>Je(f)),o=e.computed(()=>Td({start:n.value,end:l.value}).map(p=>({value:p,key:String(Je(p)),display:Je(p),selected:!!r.selected&&Je(p)===Je(r.selected),disabled:!a(p,r.lowerLimit,r.upperLimit)}))),s=e.computed(()=>{const p=Je(n.value),g=Je(l.value);return`${p} - ${g}`}),c=e.computed(()=>r.lowerLimit&&(Kt(r.lowerLimit)===Kt(r.pageDate)||_t(r.pageDate,r.lowerLimit))),i=e.computed(()=>r.upperLimit&&(Kt(r.upperLimit)===Kt(r.pageDate)||vt(r.pageDate,r.upperLimit)));return{years:o,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",fr(r.pageDate,10)),nextPage:()=>t("update:pageDate",qt(r.pageDate,10))}}});function nu(r,t,n,l,a,o){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:3,leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,items:r.years,viewMode:"year",onLeft:r.previousPage,onRight:r.nextPage,onElementClick:t[0]||(t[0]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const ru=pe(tu,[["render",nu]]),lu=e.defineComponent({components:{PickerPopup:Zt},emits:{"update:pageDate":r=>Fe(r),select:r=>Fe(r),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(r,{emit:t}){const n=e.computed(()=>mr(r.pageDate)),l=e.computed(()=>hr(r.pageDate)),a=e.computed(()=>g=>Yt(g,r.format)),o=(g,f,y)=>!f&&!y?!0:!(f&&_t(g,_n(f))||y&&vt(g,vn(y))),s=e.computed(()=>Md({start:n.value,end:l.value}).map(g=>({value:g,display:a.value(g),key:a.value(g),selected:!!r.selected&&Bn(r.selected,g),disabled:!o(g,r.lowerLimit,r.upperLimit)}))),c=e.computed(()=>Je(n.value)),i=e.computed(()=>r.lowerLimit&&(gr(r.lowerLimit,r.pageDate)||_t(r.pageDate,r.lowerLimit))),d=e.computed(()=>r.upperLimit&&(gr(r.upperLimit,r.pageDate)||vt(r.pageDate,r.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",fr(r.pageDate,1)),nextPage:()=>t("update:pageDate",qt(r.pageDate,1))}}});function au(r,t,n,l,a,o){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:r.months,leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,viewMode:"month",onLeft:r.previousPage,onRight:r.nextPage,onHeading:t[0]||(t[0]=c=>r.$emit("back")),onElementClick:t[1]||(t[1]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const ou=pe(lu,[["render",au]]),su=e.defineComponent({components:{PickerPopup:Zt},emits:{"update:pageDate":r=>Fe(r),select:r=>Fe(r),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"dd"},headingFormat:{type:String,required:!1,default:"LLLL yyyy"},weekdayFormat:{type:String,required:!1,default:"EE"},weekStartsOn:{type:Number,required:!1,default:1,validator:r=>typeof r=="number"&&Number.isInteger(r)&&r>=0&&r<=6},customWeekdays:{type:Array,required:!1},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1}},setup(r,{emit:t}){const n=e.computed(()=>b=>C=>Yt(C,b)),l=e.computed(()=>_n(r.pageDate)),a=e.computed(()=>vn(r.pageDate)),o=e.computed(()=>({start:l.value,end:a.value})),s=e.computed(()=>({start:En(l.value,r.weekStartsOn),end:Ld(a.value,r.weekStartsOn)})),c=e.computed(()=>r.customWeekdays?.length===7?r.customWeekdays:null),i=e.computed(()=>{const b=r.weekStartsOn,C=c.value;if(C)return Array.from({length:7}).map((k,x)=>C[(b+x)%7]);const w=n.value(r.weekdayFormat);return Array.from(Array(7)).map((k,x)=>(b+x)%7).map(k=>Id(new Date,k,r.weekStartsOn)).map(w)}),d=(b,C,w,k)=>k?.dates?.some(x=>Gt(b,x))||k?.predicate?.(b)?!1:!C&&!w?!0:!(C&&_t(b,gt(C))||w&&vt(b,wt(w))),u=e.computed(()=>{const b=new Date,C=n.value(r.format);return Dd(s.value).map(w=>({value:w,display:C(w),selected:!!r.selected&&Gt(r.selected,w),current:Gt(b,w),disabled:!r.allowOutsideInterval&&!zd(w,o.value)||!d(w,r.lowerLimit,r.upperLimit,r.disabledDates),key:n.value("yyyy-MM-dd")(w)}))}),p=e.computed(()=>n.value(r.headingFormat)(r.pageDate)),g=e.computed(()=>r.lowerLimit&&(Bn(r.lowerLimit,r.pageDate)||_t(r.pageDate,r.lowerLimit))),f=e.computed(()=>r.upperLimit&&(Bn(r.upperLimit,r.pageDate)||vt(r.pageDate,r.upperLimit)));return{weekDays:i,days:u,heading:p,leftDisabled:g,rightDisabled:f,previousPage:()=>t("update:pageDate",Ad(r.pageDate)),nextPage:()=>t("update:pageDate",Cn(r.pageDate,1))}}});function iu(r,t,n,l,a,o){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,items:r.days,viewMode:"day",onLeft:r.previousPage,onRight:r.nextPage,onHeading:t[0]||(t[0]=c=>r.$emit("back")),onElementClick:t[1]||(t[1]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.weekDays,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),3))),128))]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const cu=pe(su,[["render",iu]]);function wr(r,t){const n=r.getBoundingClientRect(),l={height:r.clientHeight,width:r.clientWidth},a=t.getBoundingClientRect();if(!(a.top>=n.top&&a.bottom<=n.top+l.height)){const s=a.top-n.top,c=a.bottom-n.bottom;Math.abs(s)<Math.abs(c)?r.scrollTop+=s:r.scrollTop+=c}}const du=e.defineComponent({components:{PickerPopup:Zt},emits:{select:r=>Fe(r),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1}},setup(r,{emit:t}){const n=e.ref(null),l=e.ref(null),a=e.computed(()=>r.pageDate??r.selected),o=e.ref(a.value.getHours()),s=e.ref(a.value.getMinutes());e.watch(()=>r.selected,f=>{let y=0,h=0;f&&(y=f.getHours(),h=f.getMinutes()),o.value=y,s.value=h});const c=e.computed(()=>[...Array(24).keys()].map(f=>({value:f,date:br(new Date(a.value.getTime()),{hours:f,minutes:s.value,seconds:0}),selected:o.value===f,ref:e.ref(null)}))),i=e.computed(()=>[...Array(60).keys()].map(f=>({value:f,date:br(new Date(a.value.getTime()),{hours:o.value,minutes:f,seconds:0}),selected:s.value===f,ref:e.ref(null)}))),d=f=>{s.value=f.value,t("select",f.date)},u=()=>{const f=c.value.find(h=>h.ref.value?.classList?.contains("selected")??!1),y=i.value.find(h=>h.ref.value?.classList?.contains("selected")??!1);f&&y&&(wr(n.value,f.ref.value),wr(l.value,y.ref.value))};return e.watch(()=>r.visible,f=>{f&&e.nextTick(u)}),{hoursListRef:n,minutesListRef:l,hours:o,minutes:s,hoursList:c,minutesList:i,padStartZero:f=>`0${f}`.substr(-2),selectMinutes:d,isEnabled:f=>!(r.disabledTime?.dates?.some(y=>yr(f,y)&&Od(f,y))||r.disabledTime?.predicate?.(f)),scroll:u}}}),uu={ref:"hoursListRef",class:"v3dp__column"},pu=["disabled","onClick"],fu={ref:"minutesListRef",class:"v3dp__column"},mu=["disabled","onClick"];function hu(r,t,n,l,a,o){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:2,leftDisabled:!0,rightDisabled:!0,viewMode:"time",onHeading:t[0]||(t[0]=c=>r.$emit("back"))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.padStartZero(r.hours))+":"+e.toDisplayString(r.padStartZero(r.minutes)),1)]),body:e.withCtx(()=>[e.createElementVNode("div",uu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.hoursList,c=>(e.openBlock(),e.createElementBlock("button",{key:c.value,ref_for:!0,ref:c.ref,class:e.normalizeClass([{selected:c.selected},"v3dp__element_button__hour"]),disabled:!r.isEnabled(c.date),onClick:e.withModifiers(i=>r.hours=c.value,["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(r.padStartZero(c.value)),1)],10,pu))),128))],512),e.createElementVNode("div",fu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.minutesList,c=>(e.openBlock(),e.createElementBlock("button",{key:c.value,ref_for:!0,ref:c.ref,class:e.normalizeClass([{selected:c.selected},"v3dp__element_button__minute"]),disabled:!r.isEnabled(c.date),onClick:e.withModifiers(i=>r.selectMinutes(c),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(r.padStartZero(c.value)),1)],10,mu))),128))],512)]),_:1})}const gu=pe(du,[["render",hu],["__scopeId","data-v-610b89e1"]]),Xt=["time","day","month","year"],yu=(r,t,n=void 0)=>{let l=n||new Date;const a=Rd([r,l]);a&&(l=a);const o=Pd([t,l]);return o&&(l=o),l},bu=e.defineComponent({components:{YearPicker:ru,MonthPicker:ou,DayPicker:cu,TimePicker:gu},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:r=>typeof r=="string"&&Xt.includes(r)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:r=>[0,1,2,3,4,5,6].includes(r)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:r=>typeof r=="string"&&Xt.includes(r)}},emits:{"update:modelValue":r=>r==null||Fe(r),decadePageChanged:r=>!0,yearPageChanged:r=>!0,monthPageChanged:r=>!0,opened:()=>!0,closed:()=>!0},setup(r,{emit:t,attrs:n}){const l=e.ref("none"),a=e.ref(r.startingViewDate),o=e.ref(null),s=e.ref(!1),c=e.ref(""),i=F=>{const T=F.replace(/[a-zA-Z]/g,"0");return/0/.test(T)?T:""},d=e.computed(()=>i(r.inputFormat));let u=null,p=null;const g=()=>{u?.destroy(),u=null},f=async()=>{if(!p){const{default:F}=await Promise.resolve().then(()=>Nn);p=F}return p},y=()=>{u&&u.value!==c.value&&(u.value=c.value??"")},h=async()=>{if(g(),!o.value||!d.value)return;u=(await f())(o.value,{mask:d.value,lazy:!0,overwrite:!0}),y()};e.watchEffect(()=>{if(!c.value)return;const F=xr(c.value,r.inputFormat);F&&(a.value=F)}),e.watchEffect(()=>{c.value=r.modelValue&&Fe(r.modelValue)?Yt(r.modelValue,r.inputFormat):""}),e.onMounted(()=>{d.value&&e.nextTick(()=>{h()})}),e.onBeforeUnmount(()=>{g()}),e.watch(d,F=>{F?e.nextTick(()=>{h()}):g()}),e.watch(c,()=>{y()});const b=(F="none")=>{r.disabled||(F!=="none"&&l.value==="none"&&(a.value=r.modelValue||yu(r.lowerLimit,r.upperLimit,a.value)),l.value=F,t(F!=="none"?"opened":"closed"))};e.watchEffect(()=>{r.disabled&&(l.value="none")});const C=(F,T)=>{a.value=T,F==="year"?t("decadePageChanged",T):F==="month"?t("yearPageChanged",T):F==="day"&&t("monthPageChanged",T)},w=F=>{a.value=F,r.minimumView==="year"?(b("none"),t("update:modelValue",F)):l.value="month"},k=F=>{a.value=F,r.minimumView==="month"?(b("none"),t("update:modelValue",F)):l.value="day"},x=F=>{a.value=F,r.minimumView==="day"?(b("none"),t("update:modelValue",F)):l.value="time"},S=F=>{b("none"),t("update:modelValue",F)},L=()=>{r.clearable&&(b("none"),t("update:modelValue",null),a.value=r.startingViewDate)},$=()=>s.value=!0,v=()=>b(V.value),A=()=>{s.value=!1,b()},E=F=>{const T=F.keyCode?F.keyCode:F.which;if([27,13].includes(T)&&o.value.blur(),r.typeable){const j=xr(o.value.value,r.inputFormat);j&&c.value===Yt(j,r.inputFormat)&&(c.value=o.value.value,t("update:modelValue",j))}},V=e.computed(()=>{const F=Xt.indexOf(r.startingView),T=Xt.indexOf(r.minimumView);return F<T?r.minimumView:r.startingView}),B=F=>Object.fromEntries(Object.entries(F??{}).filter(([T,U])=>T.startsWith("--"))),M=e.computed(()=>r.weekDayNames?.length===7?r.weekDayNames:void 0);return{blur:A,focus:v,click:$,input:c,inputRef:o,pageDate:a,renderView:b,updatePageDate:C,selectYear:w,selectMonth:k,selectDay:x,selectTime:S,keyUp:E,normalizedWeekdayNames:M,viewShown:l,goBackFromTimepicker:()=>r.startingView==="time"&&r.minimumView==="time"?null:l.value="day",clearModelValue:L,initialView:V,log:F=>console.log(F),variables:B}}}),ku={class:"v3dp__input_wrapper"},xu=["readonly","placeholder","disabled","tabindex"],wu={class:"v3dp__clearable"};function _u(r,t,n,l,a,o){const s=e.resolveComponent("year-picker"),c=e.resolveComponent("month-picker"),i=e.resolveComponent("day-picker"),d=e.resolveComponent("time-picker");return e.openBlock(),e.createElementBlock("div",{class:"v3dp__datepicker",style:e.normalizeStyle(r.variables(r.$attrs.style))},[e.createElementVNode("div",ku,[e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",readonly:!r.typeable,"onUpdate:modelValue":t[0]||(t[0]=u=>r.input=u)},r.$attrs,{placeholder:r.placeholder,disabled:r.disabled,tabindex:r.disabled?-1:0,onKeyup:t[1]||(t[1]=(...u)=>r.keyUp&&r.keyUp(...u)),onBlur:t[2]||(t[2]=(...u)=>r.blur&&r.blur(...u)),onFocus:t[3]||(t[3]=(...u)=>r.focus&&r.focus(...u)),onClick:t[4]||(t[4]=(...u)=>r.click&&r.click(...u))}),null,16,xu),[[e.vModelText,r.input]]),e.withDirectives(e.createElementVNode("div",wu,[e.renderSlot(r.$slots,"clear",{onClear:r.clearModelValue},()=>[e.createElementVNode("i",{onClick:t[5]||(t[5]=u=>r.clearModelValue())},"x")])],512),[[e.vShow,r.clearable&&r.modelValue]])]),e.withDirectives(e.createVNode(s,{pageDate:r.pageDate,"onUpdate:pageDate":t[6]||(t[6]=u=>r.updatePageDate("year",u)),selected:r.modelValue,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,onSelect:r.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,r.viewShown==="year"]]),e.withDirectives(e.createVNode(c,{pageDate:r.pageDate,"onUpdate:pageDate":t[7]||(t[7]=u=>r.updatePageDate("month",u)),selected:r.modelValue,onSelect:r.selectMonth,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,format:r.monthListFormat,onBack:t[8]||(t[8]=u=>r.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,r.viewShown==="month"]]),e.withDirectives(e.createVNode(i,{pageDate:r.pageDate,"onUpdate:pageDate":t[9]||(t[9]=u=>r.updatePageDate("day",u)),selected:r.modelValue,weekStartsOn:r.weekStartsOn,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,headingFormat:r.dayPickerHeadingFormat,disabledDates:r.disabledDates,weekdayFormat:r.weekdayFormat,"allow-outside-interval":r.allowOutsideInterval,format:r.dayFormat,"custom-weekdays":r.normalizedWeekdayNames,onSelect:r.selectDay,onBack:t[10]||(t[10]=u=>r.viewShown="month")},null,8,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect"]),[[e.vShow,r.viewShown==="day"]]),e.withDirectives(e.createVNode(d,{pageDate:r.pageDate,visible:r.viewShown==="time",selected:r.modelValue,disabledTime:r.disabledTime,onSelect:r.selectTime,onBack:r.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,r.viewShown==="time"]])],4)}const vu=pe(bu,[["render",_u]]),Cu=pe(e.defineComponent({__name:"vs-input-date2",props:{clearable:{type:Boolean,default:!0},now:{type:Boolean},editable:{type:Boolean,default:!0},time:{type:Boolean},isInfinity:{type:Boolean},mode:{default:"date"},weekStart:{},dayNames:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,l=t,{inputClass:a}=Le(n.style),o=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),s={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},c=e.computed(()=>n.placeholder||s[o.value]||""),i=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",a.value,n.customClass,{"!border-red-600":n.error}]),d=e.computed(()=>!n.modelValue&&n.now?new Date:null),u=e.computed({get:()=>k(n.modelValue??d.value,o.value)||void 0,set:T=>l("update:modelValue",x(T,o.value))}),p=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],g=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:p}),f=e.computed(()=>{const T=n.weekStart,U=typeof T=="string"?Number(T):T;return U===void 0||Number.isNaN(U)?1:Math.min(6,Math.max(0,U))}),y=e.computed(()=>{switch(o.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"}}}),h={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"},b=e.computed(()=>h[o.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"})),w=e.ref(!1);e.watch(()=>n.modelValue,T=>{T?w.value=!0:n.now||(w.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!w.value&&(l("update:modelValue",x(new Date,o.value)),w.value=!0)});function k(T,U){if(!T)return null;if(T instanceof Date&&!Number.isNaN(T.getTime()))return T;if(typeof T!="string")return null;switch(U){case"datetime":return v(T);case"time":return V(T);case"month":return A(T);case"year":return E(T);case"week":return B(T);case"date":default:return $(T)}}function x(T,U){if(!T)return null;const j=T instanceof Date?T:k(T,U);if(!j)return null;switch(U){case"datetime":return`${S(j)}T${L(j)}`;case"time":return L(j);case"month":return`${j.getFullYear()}-${F(j.getMonth()+1)}`;case"year":return`${j.getFullYear()}`;case"week":{const{year:Y,week:ee}=M(j);return`${Y}-W${F(ee)}`}case"date":default:return S(j)}}function S(T){return`${T.getFullYear()}-${F(T.getMonth()+1)}-${F(T.getDate())}`}function L(T){return`${F(T.getHours())}:${F(T.getMinutes())}`}function $(T){const U=T.split("-");if(U.length<3)return null;const[j,Y,ee]=U.map(Number);return!j||!Y||!ee?null:new Date(j,Y-1,ee)}function v(T){const U=T.includes("T")?T:T.replace(" ","T"),j=new Date(U);return Number.isNaN(j.getTime())?null:j}function A(T){const[U,j]=T.split("-").map(Number);return!U||Number.isNaN(j)?null:new Date(U,(j||1)-1,1)}function E(T){const U=Number(T);return U?new Date(U,0,1):null}function V(T){const U=T.match(/^(\d{1,2}):(\d{2})$/);if(!U)return null;const[,j,Y]=U,ee=new Date;return ee.setHours(Number(j),Number(Y),0,0),ee}function B(T){const U=T.match(/^(\d{4})-W(\d{2})$/);if(!U)return null;const[,j,Y]=U,ee=Number(Y);return N(Number(j),ee)}function M(T){const U=new Date(Date.UTC(T.getFullYear(),T.getMonth(),T.getDate())),j=U.getUTCDay()||7;U.setUTCDate(U.getUTCDate()+4-j);const Y=new Date(Date.UTC(U.getUTCFullYear(),0,1)),ee=Math.ceil(((U.getTime()-Y.getTime())/864e5+1)/7);return{year:U.getUTCFullYear(),week:ee}}function N(T,U){if(!T||!U)return null;const j=new Date(T,0,1+(U-1)*7),Y=j.getDay(),ee=j;return Y<=4?ee.setDate(j.getDate()-j.getDay()+1):ee.setDate(j.getDate()+8-j.getDay()),ee}function F(T){return String(T).padStart(2,"0")}return(T,U)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass]),style:e.normalizeStyle(C.value)},[e.createVNode(vu,{modelValue:u.value,"onUpdate:modelValue":U[0]||(U[0]=j=>u.value=j),placeholder:c.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":g.value,"week-starts-on":f.value,"starting-view":y.value.startingView,"minimum-view":y.value.minimumView,"input-format":b.value,name:n.name,class:e.normalizeClass(i.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","name","class"])],6))}}),[["__scopeId","data-v-a65a2ac3"]]),Eu={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"}}},Bu={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:"Скасувати"}}},_r=Eu.form.richtext,vr=Bu.form.richtext,Vn={en:{form:{richtext:_r}},uk:{form:{richtext:vr}}},Cr=(r={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=ge.modal({title:r.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:pr,contentProps:{...r,onClose:()=>{t(null),n()},onSave:l=>{t(l),n()}}})});tt.install=function(t){t.component("VForm",tt),Object.assign(t.config.globalProperties,{$form:Cr}),t.provide("form",Cr),window.v3plugin||(window.v3plugin={})};function ct(r){return typeof r=="string"||r instanceof String}function Er(r){var t;return typeof r=="object"&&r!=null&&(r==null||(t=r.constructor)==null?void 0:t.name)==="Object"}function Br(r,t){return Array.isArray(t)?Br(r,(n,l)=>t.includes(l)):Object.entries(r).reduce((n,l)=>{let[a,o]=l;return t(o,a)&&(n[a]=o),n},{})}const ne={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function Vr(r){switch(r){case ne.LEFT:return ne.FORCE_LEFT;case ne.RIGHT:return ne.FORCE_RIGHT;default:return r}}function Sn(r){return r.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function Jt(r,t){if(t===r)return!0;const n=Array.isArray(t),l=Array.isArray(r);let a;if(n&&l){if(t.length!=r.length)return!1;for(a=0;a<t.length;a++)if(!Jt(t[a],r[a]))return!1;return!0}if(n!=l)return!1;if(t&&r&&typeof t=="object"&&typeof r=="object"){const o=t instanceof Date,s=r instanceof Date;if(o&&s)return t.getTime()==r.getTime();if(o!=s)return!1;const c=t instanceof RegExp,i=r instanceof RegExp;if(c&&i)return t.toString()==r.toString();if(c!=i)return!1;const d=Object.keys(t);for(a=0;a<d.length;a++)if(!Object.prototype.hasOwnProperty.call(r,d[a]))return!1;for(a=0;a<d.length;a++)if(!Jt(r[d[a]],t[d[a]]))return!1;return!0}else if(t&&r&&typeof t=="function"&&typeof r=="function")return t.toString()===r.toString();return!1}class Vu{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?ne.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?ne.RIGHT:ne.LEFT}}function ue(r,t){return new ue.InputMask(r,t)}function Sr(r){if(r==null)throw new Error("mask property should be defined");return r instanceof RegExp?ue.MaskedRegExp:ct(r)?ue.MaskedPattern:r===Date?ue.MaskedDate:r===Number?ue.MaskedNumber:Array.isArray(r)||r===Array?ue.MaskedDynamic:ue.Masked&&r.prototype instanceof ue.Masked?r:ue.Masked&&r instanceof ue.Masked?r.constructor:r instanceof Function?ue.MaskedFunction:(console.warn("Mask not found for mask",r),ue.Masked)}function kt(r){if(!r)throw new Error("Options in not defined");if(ue.Masked){if(r.prototype instanceof ue.Masked)return{mask:r};const{mask:t=void 0,...n}=r instanceof ue.Masked?{mask:r}:Er(r)&&r.mask instanceof ue.Masked?r:{};if(t){const l=t.mask;return{...Br(t,(a,o)=>!o.startsWith("_")),mask:t.constructor,_mask:l,...n}}}return Er(r)?{...r}:{mask:r}}function nt(r){if(ue.Masked&&r instanceof ue.Masked)return r;const t=kt(r),n=Sr(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)}ue.createMask=nt;class Qt{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}}ue.MaskElement=Qt;const $r=90,Su=89;class Ct extends Qt{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,l;return(t=(n=(l=this.input).getRootNode)==null?void 0:n.call(l))!=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===$r&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===Su&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===$r&&(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={}}}ue.HTMLMaskElement=Ct;class Ar extends Ct{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}}ue.HTMLMaskElement=Ct;class $n extends Ct{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),l=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||l==null||l<a?l:a}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),l=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||l==null||l>a?l:a}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const l=this.rootElement.createRange();l.setStart(this.input.firstChild||this.input,t),l.setEnd(this.input.lastChild||this.input,n);const a=this.rootElement,o=a.getSelection&&a.getSelection();o&&(o.removeAllRanges(),o.addRange(l))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}ue.HTMLContenteditableMaskElement=$n;class en{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>en.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}}en.MAX_LENGTH=100;class Fr{constructor(t,n){this.el=t instanceof Qt?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new $n(t):new Ar(t),this.masked=nt(n),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new en,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 ue.Masked)&&this.masked.constructor===Sr(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof ue.Masked?t:nt({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 l=this._listeners[t];l&&l.forEach(a=>a(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,l=this.masked.value,a=this.masked.rawInputValue,o=this.displayValue,s=this.unmaskedValue!==n||this.value!==l||this._rawInputValue!==a;this._unmaskedValue=n,this._value=l,this._rawInputValue=a,this.el.value!==o&&(this.el.value=o),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,...l}=t,a=!this.maskEquals(n),o=this.masked.optionsIsChanged(l);a&&(this.mask=n),o&&this.masked.updateOptions(l),(a||o)&&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,ne.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 l=this._listeners[t].indexOf(n);return l>=0&&this._listeners[t].splice(l,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new Vu({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),l=this.masked.rawInputValue,a=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,o=l===this.masked.rawInputValue?n.removeDirection:ne.NONE;let s=this.masked.nearestInputPos(n.startChangePos+a,o);o!==ne.NONE&&(s=this.masked.nearestInputPos(s,ne.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}}ue.InputMask=Fr;class me{static normalize(t){return Array.isArray(t)?t:[t,new me]}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}}ue.ChangeDetails=me;class rt{constructor(t,n,l){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=l}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const n=this.value[0];return this.value=this.value.slice(1),n}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class Ne{constructor(t){this._value="",this._update({...Ne.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,n){n===void 0&&(n={input:!0}),this.reset(),this.append(t,n,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,n){return t}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),Math.min(this.displayValue.length,n-t)}extractInput(t,n,l){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 rt(this.extractInput(t,n),t)}appendTail(t){return ct(t)&&(t=new rt(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new me({inserted:t,rawInserted:t})):new me}_appendChar(t,n,l){n===void 0&&(n={});const a=this.state;let o;if([t,o]=this.doPrepareChar(t,n),t&&(o=o.aggregate(this._appendCharRaw(t,n)),!o.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=a;let c=this.pad(n);const i=this._appendCharRaw(t,n);c=c.aggregate(i),i.rawInserted||c.equals(o)?o=c:this.state=s}if(o.inserted){let s,c=this.doValidate(n)!==!1;if(c&&l!=null){const i=this.state;if(this.overwrite===!0){s=l.state;for(let u=0;u<o.rawInserted.length;++u)l.unshift(this.displayValue.length-o.tailShift)}let d=this.appendTail(l);if(c=d.rawInserted.length===l.toString().length,!(c&&d.inserted)&&this.overwrite==="shift"){this.state=i,s=l.state;for(let u=0;u<o.rawInserted.length;++u)l.shift();d=this.appendTail(l),c=d.rawInserted.length===l.toString().length}c&&d.inserted&&(this.state=i)}c||(o=new me,this.state=a,l&&s&&(l.state=s))}return o}_appendPlaceholder(){return new me}_appendEager(){return new me}append(t,n,l){if(!ct(t))throw new Error("value should be string");const a=ct(l)?new rt(String(l)):l;n!=null&&n.tail&&(n._beforeTailState=this.state);let o;[t,o]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const c=this._appendChar(t[s],n,a);if(!c.rawInserted&&!this.doSkipInvalid(t[s],n,a))break;o.aggregate(c)}return(this.eager===!0||this.eager==="append")&&n!=null&&n.input&&t&&o.aggregate(this._appendEager()),a!=null&&(o.tailShift+=this.appendTail(a).tailShift),o}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 me}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,l=this.value,a=t();return this.rawInputValue=n,this.value&&this.value!==l&&l.indexOf(this.value)===0&&(this.append(l.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,a}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,l=t(this);return this.state=n,delete this._isolated,l}doSkipInvalid(t,n,l){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),me.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),me.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,l,a,o){l===void 0&&(l=""),a===void 0&&(a=ne.NONE),o===void 0&&(o={input:!0});const s=t+n,c=this.extractTail(s),i=this.eager===!0||this.eager==="remove";let d;i&&(a=Vr(a),d=this.extractInput(0,s,{raw:!0}));let u=t;const p=new me;if(a!==ne.NONE&&(u=this.nearestInputPos(t,n>1&&t!==0&&!i?ne.NONE:a),p.tailShift=u-t),p.aggregate(this.remove(u)),i&&a!==ne.NONE&&d===this.rawInputValue)if(a===ne.FORCE_LEFT){let g;for(;d===this.rawInputValue&&(g=this.displayValue.length);)p.aggregate(new me({tailShift:-1})).aggregate(this.remove(g-1))}else a===ne.FORCE_RIGHT&&c.unshift();return p.aggregate(this.append(l,o,c))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!Jt(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||Ne.EMPTY_VALUES.includes(t)&&Ne.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new me}}Ne.DEFAULTS={skipInvalid:!0},Ne.EMPTY_VALUES=[void 0,null,""],ue.Masked=Ne;class dt{constructor(t,n){t===void 0&&(t=[]),n===void 0&&(n=0),this.chunks=t,this.from=n}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=ct(t)?new rt(String(t)):t;const n=this.chunks[this.chunks.length-1],l=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof rt)l?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof dt){if(t.stop==null){let a;for(;t.chunks.length&&t.chunks[0].stop==null;)a=t.chunks.shift(),a.from+=t.from,this.extend(a)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof ue.MaskedPattern))return new rt(this.toString()).appendTo(t);const n=new me;for(let l=0;l<this.chunks.length;++l){const a=this.chunks[l],o=t._mapPosToBlock(t.displayValue.length),s=a.stop;let c;if(s!=null&&(!o||o.index<=s)&&((a instanceof dt||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),c=a instanceof dt&&t._blocks[s]),c){const i=c.appendTail(a);n.aggregate(i);const d=a.toString().slice(i.rawInserted.length);d&&n.aggregate(t.append(d,{tail:!0}))}else n.aggregate(t.append(a.toString(),{tail:!0}))}return n}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:n,...l}=t;Object.assign(this,l),this.chunks=n.map(a=>{const o="chunks"in a?new dt:new rt;return o.state=a,o})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let l=0;for(;l<this.chunks.length;){const a=this.chunks[l],o=a.unshift(n);if(a.toString()){if(!o)break;++l}else this.chunks.splice(l,1);if(o)return o}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],l=n.shift();if(n.toString()){if(!l)break;--t}else this.chunks.splice(t,1);if(l)return l}return""}}class $u{constructor(t,n){this.masked=t,this._log=[];const{offset:l,index:a}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=l,this.index=a,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ne.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,ne.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ne.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ne.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,ne.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ne.NONE),!0})}}class An{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 me}nearestInputPos(t,n){n===void 0&&(n=ne.NONE);const l=0,a=this._value.length;switch(n){case ne.LEFT:case ne.FORCE_LEFT:return l;case ne.NONE:case ne.RIGHT:case ne.FORCE_RIGHT:default:return a}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,l){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),l===void 0&&(l={}),l.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 me;const l=this.eager===!0||this.eager==="append",o=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!l)&&!n.tail,s=new me({inserted:this.char,rawInserted:o?this.char:""});return this._value=this.char,this._isRawInput=o&&(n.raw||n.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new me;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new rt("")}appendTail(t){return ct(t)&&(t=new rt(String(t))),t.appendTo(this)}append(t,n,l){const a=this._appendChar(t[0],n);return l!=null&&(a.tailShift+=this.appendTail(l).tailShift),a}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class Et{constructor(t){const{parent:n,isOptional:l,placeholderChar:a,displayChar:o,lazy:s,eager:c,...i}=t;this.masked=nt(i),Object.assign(this,{parent:n,isOptional:l,placeholderChar:a,displayChar:o,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 me}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 me;const l=this.masked.state;let a=this.masked._appendChar(t,this.currentMaskFlags(n));return a.inserted&&this.doValidate(n)===!1&&(a=new me,this.masked.state=l),!a.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(a.inserted=this.placeholderChar),a.skip=!a.inserted&&!this.isOptional,this.isFilled=!!a.inserted,a}append(t,n,l){return this.masked.append(t,this.currentMaskFlags(n),l)}_appendPlaceholder(){return this.isFilled||this.isOptional?new me:(this.isFilled=!0,new me({inserted:this.placeholderChar}))}_appendEager(){return new me}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,l){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,l)}nearestInputPos(t,n){n===void 0&&(n=ne.NONE);const l=0,a=this.value.length,o=Math.min(Math.max(t,l),a);switch(n){case ne.LEFT:case ne.FORCE_LEFT:return this.isComplete?o:l;case ne.RIGHT:case ne.FORCE_RIGHT:return this.isComplete?o:a;case ne.NONE:default:return o}}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 me}}Et.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 Nr extends Ne{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=l=>l.search(n)>=0),super._update(t)}}ue.MaskedRegExp=Nr;class De extends Ne{constructor(t){super({...De.DEFAULTS,...t,definitions:Object.assign({},Et.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 l=!1,a=!1;for(let o=0;o<n.length;++o){if(this.blocks){const d=n.slice(o),u=Object.keys(this.blocks).filter(g=>d.indexOf(g)===0);u.sort((g,f)=>f.length-g.length);const p=u[0];if(p){const{expose:g,repeat:f,...y}=kt(this.blocks[p]),h={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...y,repeat:f,parent:this},b=f!=null?new ue.RepeatBlock(h):nt(h);b&&(this._blocks.push(b),g&&(this.exposeBlock=b),this._maskedBlocks[p]||(this._maskedBlocks[p]=[]),this._maskedBlocks[p].push(this._blocks.length-1)),o+=p.length-1;continue}}let s=n[o],c=s in t;if(s===De.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){l=!l;continue}if(s==="["||s==="]"){a=!a;continue}if(s===De.ESCAPE_CHAR){if(++o,s=n[o],!s)break;c=!1}const i=c?new Et({isOptional:a,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...kt(t[s]),parent:this}):new An({char:s,eager:this.eager,isUnmasking:l});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,...l}=t;this._blocks.forEach((a,o)=>a.state=n[o]),super.state=l}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 me;let l=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(l==null)return n;this._blocks[l].isFilled&&++l;for(let a=l;a<this._blocks.length;++a){const o=this._blocks[a]._appendEager();if(!o.inserted)break;n.aggregate(o)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const l=this._mapPosToBlock(this.displayValue.length),a=new me;if(!l)return a;for(let s=l.index,c;c=this._blocks[s];++s){var o;const i=c._appendChar(t,{...n,_beforeTailState:(o=n._beforeTailState)==null||(o=o._blocks)==null?void 0:o[s]});if(a.aggregate(i),i.consumed)break}return a}extractTail(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const l=new dt;return t===n||this._forEachBlocksInRange(t,n,(a,o,s,c)=>{const i=a.extractTail(s,c);i.stop=this._findStopBefore(o),i.from=this._blockStartPos(o),i instanceof dt&&(i.blockIndex=o),l.extend(i)}),l}extractInput(t,n,l){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),l===void 0&&(l={}),t===n)return"";let a="";return this._forEachBlocksInRange(t,n,(o,s,c,i)=>{a+=o.extractInput(c,i,l)}),a}_findStopBefore(t){let n;for(let l=0;l<this._stops.length;++l){const a=this._stops[l];if(a<=t)n=a;else break}return n}_appendPlaceholder(t){const n=new me;if(this.lazy&&t==null)return n;const l=this._mapPosToBlock(this.displayValue.length);if(!l)return n;const a=l.index,o=t??this._blocks.length;return this._blocks.slice(a,o).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 l=0;l<this._blocks.length;++l){const a=this._blocks[l],o=n.length;if(n+=a.displayValue,t<=n.length)return{index:l,offset:t-o}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,l)=>n+=l.displayValue.length,0)}_forEachBlocksInRange(t,n,l){n===void 0&&(n=this.displayValue.length);const a=this._mapPosToBlock(t);if(a){const o=this._mapPosToBlock(n),s=o&&a.index===o.index,c=a.offset,i=o&&s?o.offset:this._blocks[a.index].displayValue.length;if(l(this._blocks[a.index],a.index,c,i),o&&!s){for(let d=a.index+1;d<o.index;++d)l(this._blocks[d],d,0,this._blocks[d].displayValue.length);l(this._blocks[o.index],o.index,0,o.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const l=super.remove(t,n);return this._forEachBlocksInRange(t,n,(a,o,s,c)=>{l.aggregate(a.remove(s,c))}),l}nearestInputPos(t,n){if(n===void 0&&(n=ne.NONE),!this._blocks.length)return 0;const l=new $u(this,t);if(n===ne.NONE)return l.pushRightBeforeInput()||(l.popState(),l.pushLeftBeforeInput())?l.pos:this.displayValue.length;if(n===ne.LEFT||n===ne.FORCE_LEFT){if(n===ne.LEFT){if(l.pushRightBeforeFilled(),l.ok&&l.pos===t)return t;l.popState()}if(l.pushLeftBeforeInput(),l.pushLeftBeforeRequired(),l.pushLeftBeforeFilled(),n===ne.LEFT){if(l.pushRightBeforeInput(),l.pushRightBeforeRequired(),l.ok&&l.pos<=t||(l.popState(),l.ok&&l.pos<=t))return l.pos;l.popState()}return l.ok?l.pos:n===ne.FORCE_LEFT?0:(l.popState(),l.ok||(l.popState(),l.ok)?l.pos:0)}return n===ne.RIGHT||n===ne.FORCE_RIGHT?(l.pushRightBeforeInput(),l.pushRightBeforeRequired(),l.pushRightBeforeFilled()?l.pos:n===ne.FORCE_RIGHT?this.displayValue.length:(l.popState(),l.ok||(l.popState(),l.ok)?l.pos:this.nearestInputPos(t,ne.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let l=0;return this._forEachBlocksInRange(t,n,(a,o,s,c)=>{l+=a.totalInputPositions(s,c)}),l}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(l=>this._blocks[l]):[]}pad(t){const n=new me;return this._forEachBlocksInRange(0,this.displayValue.length,l=>n.aggregate(l.pad(t))),n}}De.DEFAULTS={...Ne.DEFAULTS,lazy:!0,placeholderChar:"_"},De.STOP_CHAR="`",De.ESCAPE_CHAR="\\",De.InputDefinition=Et,De.FixedDefinition=An,ue.MaskedPattern=De;class Bt extends De{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:l=this.from||0,maxLength:a=this.maxLength||0,autofix:o=this.autofix,...s}=t;this.to=n,this.from=l,this.maxLength=Math.max(String(n).length,a),this.autofix=o;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="",l="";const[,a,o]=t.match(/^(\D*)(\d*)(\D*)/)||[];return o&&(n="0".repeat(a.length)+o,l="9".repeat(a.length)+o),n=n.padEnd(this.maxLength,"0"),l=l.padEnd(this.maxLength,"9"),[n,l]}doPrepareChar(t,n){n===void 0&&(n={});let l;return[t,l]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(l.skip=!this.isComplete),[t,l]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const l=String(this.from).padStart(this.maxLength,"0"),a=String(this.to).padStart(this.maxLength,"0"),[o,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(l[this.value.length],n):Number(o)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(l[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(a[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[a,o]=this.boundaries(n);return this.from<=Number(o)&&Number(a)<=this.to&&super.doValidate(t)}pad(t){const n=new me;if(this.value.length===this.maxLength)return n;const l=this.value,a=this.maxLength-this.value.length;if(a){this.reset();for(let o=0;o<a;++o)n.aggregate(super._appendCharRaw("0",t));l.split("").forEach(o=>this._appendCharRaw(o))}return n}}ue.MaskedRange=Bt;const Au="d{.}`m{.}`Y";class lt extends De{static extractPatternOptions(t){const{mask:n,pattern:l,...a}=t;return{...a,mask:ct(n)?n:l}}constructor(t){super(lt.extractPatternOptions({...lt.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:l,blocks:a,...o}={...lt.DEFAULTS,...t},s=Object.assign({},lt.GET_DEFAULT_BLOCKS());t.min&&(s.Y.from=t.min.getFullYear()),t.max&&(s.Y.to=t.max.getFullYear()),t.min&&t.max&&s.Y.from===s.Y.to&&(s.m.from=t.min.getMonth()+1,s.m.to=t.max.getMonth()+1,s.m.from===s.m.to&&(s.d.from=t.min.getDate(),s.d.to=t.max.getDate())),Object.assign(s,this.blocks,a),super._update({...o,mask:ct(n)?n:l,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(lt.extractPatternOptions(t))}}lt.GET_DEFAULT_BLOCKS=()=>({d:{mask:Bt,from:1,to:31,maxLength:2},m:{mask:Bt,from:1,to:12,maxLength:2},Y:{mask:Bt,from:1900,to:9999}}),lt.DEFAULTS={...De.DEFAULTS,mask:Date,pattern:Au,format:(r,t)=>{if(!r)return"";const n=String(r.getDate()).padStart(2,"0"),l=String(r.getMonth()+1).padStart(2,"0"),a=r.getFullYear();return[n,l,a].join(".")},parse:(r,t)=>{const[n,l,a]=r.split(".").map(Number);return new Date(a,l-1,n)}},ue.MaskedDate=lt;class Vt extends Ne{constructor(t){super({...Vt.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:l,...a}=kt(n),o=nt({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...a});return l&&(this.exposeMask=o),o}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const l=this._applyDispatch(t,n);return this.currentMask&&l.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),l}_applyDispatch(t,n,l){t===void 0&&(t=""),n===void 0&&(n={}),l===void 0&&(l="");const a=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,o=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:o,c=o.slice(s.length),i=this.currentMask,d=new me,u=i?.state;return this.currentMask=this.doDispatch(t,{...n},l),this.currentMask&&(this.currentMask!==i?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-a.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 me;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,l;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((l=t._beforeTailState)==null?void 0:l.currentMask)||t._beforeTailState}}doDispatch(t,n,l){return n===void 0&&(n={}),l===void 0&&(l=""),this.dispatch(t,this,n,l)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[l,a]=super.doPrepare(t,n);if(this.currentMask){let o;[l,o]=super.doPrepare(l,this.currentMaskFlags(n)),a=a.aggregate(o)}return[l,a]}doPrepareChar(t,n){n===void 0&&(n={});let[l,a]=super.doPrepareChar(t,n);if(this.currentMask){let o;[l,o]=super.doPrepareChar(l,this.currentMaskFlags(n)),a=a.aggregate(o)}return[l,a]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const l=new me;return this.currentMask&&l.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),l}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:l,currentMask:a,...o}=t;n&&this.compiledMasks.forEach((s,c)=>s.state=n[c]),l!=null&&(this.currentMask=l,this.currentMask.state=a),super.state=o}extractInput(t,n,l){return this.currentMask?this.currentMask.extractInput(t,n,l):""}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,l)=>{if(!t[l])return;const{mask:a,...o}=t[l];return Jt(n,o)&&n.maskEquals(a)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}Vt.DEFAULTS={...Ne.DEFAULTS,dispatch:(r,t,n,l)=>{if(!t.compiledMasks.length)return;const a=t.rawInputValue,o=t.compiledMasks.map((s,c)=>{const i=t.currentMask===s,d=i?s.displayValue.length:s.nearestInputPos(s.displayValue.length,ne.FORCE_LEFT);return s.rawInputValue!==a?(s.reset(),s.append(a,{raw:!0})):i||s.remove(d),s.append(r,t.currentMaskFlags(n)),s.appendTail(l),{index:c,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,ne.FORCE_LEFT)))}});return o.sort((s,c)=>c.weight-s.weight||c.totalInputPositions-s.totalInputPositions),t.compiledMasks[o[0].index]}},ue.MaskedDynamic=Vt;class St extends De{constructor(t){super({...St.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...l}=t;if(n){const a=n.map(c=>c.length),o=Math.min(...a),s=Math.max(...a)-o;l.mask="*".repeat(o),s&&(l.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(l)}_appendCharRaw(t,n){n===void 0&&(n={});const l=Math.min(this.nearestInputPos(0,ne.FORCE_RIGHT),this.value.length),a=this.enum.filter(o=>this.matchValue(o,this.unmaskedValue+t,l));if(a.length){a.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,c)=>{const i=a[0][c];c>=this.value.length||i===s.value||(s.reset(),s._appendChar(i,n))});const o=super._appendCharRaw(a[0][this.value.length],n);return a.length===1&&a[0].slice(this.unmaskedValue.length).split("").forEach(s=>o.aggregate(super._appendCharRaw(s))),o}return new me({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new rt("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new me;const l=Math.min(super.nearestInputPos(0,ne.FORCE_RIGHT),this.value.length);let a;for(a=t;a>=0&&!(this.enum.filter(c=>this.matchValue(c,this.value.slice(l,a),l)).length>1);--a);const o=super.remove(a,n);return o.tailShift+=a-t,o}get isComplete(){return this.enum.indexOf(this.value)>=0}}St.DEFAULTS={...De.DEFAULTS,matchValue:(r,t,n)=>r.indexOf(t,n)===n},ue.MaskedEnum=St;class Dr extends Ne{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}ue.MaskedFunction=Dr;var Mr;class ze extends Ne{constructor(t){super({...ze.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",l=(this.scale?"("+Sn(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+l),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(Sn).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(Sn(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[l,a]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!l&&(a.skip=!0),l&&!this.allowPositive&&!this.value&&l!=="-"&&a.aggregate(this._appendChar("-")),[l,a]}_separatorsCount(t,n){n===void 0&&(n=!1);let l=0;for(let a=0;a<t;++a)this._value.indexOf(this.thousandsSeparator,a)===a&&(++l,n&&(t+=this.thousandsSeparator.length));return l}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,l){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,l))}_appendCharRaw(t,n){n===void 0&&(n={});const l=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,a=this._separatorsCountFromSlice(l);this._value=this._removeThousandsSeparators(this.value);const o=this._value;this._value+=t;const s=this.number;let c=!isNaN(s),i=!1;if(c){let g;this.min!=null&&this.min<0&&this.number<this.min&&(g=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(g=this.max),g!=null&&(this.autofix?(this._value=this.format(g,this).replace(ze.UNMASKED_RADIX,this.radix),i||(i=o===this._value&&!n.tail)):c=!1),c&&(c=!!this._value.match(this._numberRegExp))}let d;c?d=new me({inserted:this._value.slice(o.length),rawInserted:i?"":t,skip:i}):(this._value=o,d=new me),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-a)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,l=this.value.indexOf(this.thousandsSeparator,n);if(l<=t)return l}return-1}_adjustRangeWithSeparators(t,n){const l=this._findSeparatorAround(t);l>=0&&(t=l);const a=this._findSeparatorAround(n);return a>=0&&(n=a+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const l=this.value.slice(0,t),a=this.value.slice(n),o=this._separatorsCount(l.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(l+a));const s=this._separatorsCountFromSlice(l);return new me({tailShift:(s-o)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case ne.NONE:case ne.LEFT:case ne.FORCE_LEFT:{const l=this._findSeparatorAround(t-1);if(l>=0){const a=l+this.thousandsSeparator.length;if(t<a||this.value.length<=a||n===ne.FORCE_LEFT)return l}break}case ne.RIGHT:case ne.FORCE_RIGHT:{const l=this._findSeparatorAround(t);if(l>=0)return l+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 l=this.value;this.normalizeZeros&&(l=this._normalizeZeros(l)),this.padFractionalZeros&&this.scale>0&&(l=this._padFractionalZeros(l)),this._value=l}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(l,a,o,s)=>a+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,l){n===void 0&&(n={});const a=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===ze.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,l)&&!a}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,ze.UNMASKED_RADIX)}set unmaskedValue(t){super.unmaskedValue=t}get typedValue(){return this.parse(this.unmaskedValue,this)}set typedValue(t){this.rawInputValue=this.format(t,this).replace(ze.UNMASKED_RADIX,this.radix)}get number(){return this.typedValue}set number(t){this.typedValue=t}get allowNegative(){return this.min!=null&&this.min<0||this.max!=null&&this.max<0}get allowPositive(){return this.min!=null&&this.min>0||this.max!=null&&this.max>0}typedValueEquals(t){return(super.typedValueEquals(t)||ze.EMPTY_VALUES.includes(t)&&ze.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}Mr=ze,ze.UNMASKED_RADIX=".",ze.EMPTY_VALUES=[...Ne.EMPTY_VALUES,0],ze.DEFAULTS={...Ne.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[Mr.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:r=>r.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},ue.MaskedNumber=ze;const tn={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function Fn(r,t,n){t===void 0&&(t=tn.MASKED),n===void 0&&(n=tn.MASKED);const l=nt(r);return a=>l.runIsolated(o=>(o[t]=a,o[n]))}function Tr(r,t,n,l){return Fn(t,n,l)(r)}ue.PIPE_TYPE=tn,ue.createPipe=Fn,ue.pipe=Tr;class Lr extends De{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,l,a;const{repeat:o,...s}=kt(t);this._blockOpts=Object.assign({},this._blockOpts,s);const c=nt(this._blockOpts);this.repeat=(n=(l=o??c.repeat)!=null?l:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((a=this._blocks)==null?void 0:a.length)||0,this.repeatFrom)),blocks:{m: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(nt(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const l=new me;for(let i=(a=(o=this._mapPosToBlock(this.displayValue.length))==null?void 0:o.index)!=null?a:Math.max(this._blocks.length-1,0),d,u;d=(s=this._blocks[i])!=null?s:u=!u&&this._allocateBlock(i);++i){var a,o,s,c;const p=d._appendChar(t,{...n,_beforeTailState:(c=n._beforeTailState)==null||(c=c._blocks)==null?void 0:c[i]});if(p.skip&&u){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(l.aggregate(p),p.consumed)break}return l}_trimEmptyTail(t,n){var l,a;t===void 0&&(t=0);const o=Math.max(((l=this._mapPosToBlock(t))==null?void 0:l.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(a=this._mapPosToBlock(n))==null?void 0:a.index),s==null&&(s=this._blocks.length-1);let c=0;for(let i=s;o<=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 l=super.remove(t,n);return this._trimEmptyTail(t,n),l}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}}ue.RepeatBlock=Lr;try{globalThis.IMask=ue}catch{}const Nn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:me,ChunksTailDetails:dt,DIRECTION:ne,HTMLContenteditableMaskElement:$n,HTMLInputMaskElement:Ar,HTMLMaskElement:Ct,InputMask:Fr,MaskElement:Qt,Masked:Ne,MaskedDate:lt,MaskedDynamic:Vt,MaskedEnum:St,MaskedFunction:Dr,MaskedNumber:ze,MaskedPattern:De,MaskedRange:Bt,MaskedRegExp:Nr,PIPE_TYPE:tn,PatternFixedDefinition:An,PatternInputDefinition:Et,RepeatBlock:Lr,createMask:nt,createPipe:Fn,default:ue,forceDirection:Vr,normalizeOpts:kt,pipe:Tr},Symbol.toStringTag,{value:"Module"})),Fu=async r=>{try{const t=new FormData;return t.append("unique","true"),t.append("file",r),(await(await fetch("/file/upload/uploads?id=&form=&table=",{method:"POST",body:t})).json())?.result}catch(t){console.error(t)}},Nu=async(r,t,n)=>{const l=t.clipboardData?.items;if(l){const a=t.clipboardData?.getData("text/html"),o=t.clipboardData?.getData("text/plain");if(a){const{state:s,dispatch:c}=r,{tr:i}=s,d=n.fromSchema(r.state.schema),u=new DOMParser().parseFromString(a,"text/html").body,p=d.parse(u),g=i.replaceSelectionWith(p);return c(g),t.preventDefault(),!0}if(o){const{state:s,dispatch:c}=r,{tr:i}=s,d=i.insertText(o,s.selection.from,s.selection.to);return c(d),t.preventDefault(),!0}for(let s=0;s<l.length;s++){const c=l[s];if(c.type.startsWith("image/")){const i=c.getAsFile();if(i){const d=await Fu(i),{schema:u}=r.state,p=u.nodes.image.create({src:d?.file_path}),g=r.state.tr.replaceSelectionWith(p);return r.dispatch(g),t.preventDefault(),!0}}}}return!1},Du="https://esm.sh",Pe="3.7.2",Ir="3.7.2",Mu=`?deps=@tiptap/core@${Pe},@tiptap/pm@${Ir}`,je=r=>`${Du}/${r}${Mu}`,Ue={core:je(`@tiptap/core@${Pe}`),starterKit:je(`@tiptap/starter-kit@${Pe}`),textStyle:je(`@tiptap/extension-text-style@${Pe}`),table:je(`@tiptap/extension-table@${Pe}`),highlight:je(`@tiptap/extension-highlight@${Pe}`),subscript:je(`@tiptap/extension-subscript@${Pe}`),superscript:je(`@tiptap/extension-superscript@${Pe}`),link:je(`@tiptap/extension-link@${Pe}`),image:je(`@tiptap/extension-image@${Pe}`),textAlign:je(`@tiptap/extension-text-align@${Pe}`),heading:je(`@tiptap/extension-heading@${Pe}`),paragraph:je(`@tiptap/extension-paragraph@${Pe}`),pmModel:je(`@tiptap/pm@${Ir}/model`)},$t="__vs_form_tiptap_loader__",He=r=>import(r),$e=(r,t)=>r?.[t]||r?.default?.[t]||r?.default?.default?.[t]||r?.default||r,Or={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;"},Tu=r=>r.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}).extend({addAttributes(){return{...this.parent?.(),level:{default:1,renderHTML:t=>{const n=t.level||1;return{class:`heading-level-${n}`,style:Or[n]||Or[1]}}}}}}),Lu=r=>r.configure({HTMLAttributes:{style:"min-height: 1rem;"}}),Iu=(r,t,n,l,a)=>{const o=t.extend({renderHTML({HTMLAttributes:s}){return["div",{style:"overflow-x: auto;"},["table",s,0]]},parseHTML(){return[{tag:"div.table-wrapper table",priority:100},{tag:"table"}]}});return r.extend({addExtensions(){return[o.configure({HTMLAttributes:{class:"editor-content"},resizable:!0}),n,l,a]}})},Ou=r=>r.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),zu=r=>r.create({name:"iframe",group:"block",inline:!1,atom:!0,selectable:!0,addAttributes(){return{src:{default:null},width:{default:"100%"},height:{default:"280"},frameborder:{default:"0"},allow:{default:null},allowfullscreen:{default:null},referrerpolicy:{default:null},loading:{default:null},class:{default:null},title:{default:null},style:{default:null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["iframe",t]}});async function Ru(){if(typeof window>"u")return null;const r=window;return r[$t]||(r[$t]=Promise.all([He(Ue.core),He(Ue.starterKit),He(Ue.textStyle),He(Ue.table),He(Ue.highlight),He(Ue.subscript),He(Ue.superscript),He(Ue.link),He(Ue.image),He(Ue.textAlign),He(Ue.heading),He(Ue.paragraph),He(Ue.pmModel)]).then(([t,n,l,a,o,s,c,i,d,u,p,g,f])=>{const y=$e(t,"Editor"),h=$e(t,"Node"),b=$e(t,"Extension"),C=$e(n,"StarterKit"),w=$e(l,"TextStyle"),k=$e(a,"TableKit"),x=$e(a,"Table"),S=$e(a,"TableRow"),L=$e(a,"TableCell"),$=$e(a,"TableHeader"),v=$e(o,"Highlight"),A=$e(s,"Subscript"),E=$e(c,"Superscript"),V=$e(i,"Link"),B=$e(d,"Image"),M=$e(u,"TextAlign"),N=$e(p,"Heading"),F=$e(g,"Paragraph"),T=$e(f,"DOMParser");if(!y||!h||!C||!w||!k||!x||!S||!L||!$||!v||!A||!E||!V||!B||!M||!N||!F||!T)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:y,Extension:b,ProseMirrorDOMParser:T,StarterKit:C,ExtendedTextStyle:Ou(w),Highlight:v,Subscript:A,Superscript:E,Link:V,Image:B,TextAlign:M,CustomHeading:Tu(N),CustomParagraph:Lu(F),CustomTableKit:Iu(k,x,S,L,$),Iframe:zu(h)}}).catch(t=>{throw delete r[$t],t})),r[$t]}function Pu(r){let t=!1;const n=e.shallowRef(null),l=e.ref(!1),a=e.ref(""),o=async(d,u="")=>{if(!d)return null;l.value=!0,a.value="";try{const p=await Ru();if(!p)return null;const g=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:(f,y)=>Nu(f,y,p.ProseMirrorDOMParser),handleKeyDown:(f,y)=>{if(y.key==="Tab"){const h=f.state,{$anchor:b}=h.selection;let C=!1;for(let w=b.depth;w>0;w--){const k=b.node(w);if(k&&(k.type.name==="bulletList"||k.type.name==="orderedList")){C=!0;break}}return C?!1:(y.preventDefault(),!0)}return!1}}});return n.value=e.markRaw(g),g}catch(p){return a.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",p),null}finally{l.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();r.modelValue,setTimeout(()=>{t=!1},10)}})}),{editor:n,editorInstance:s,focusEditor:()=>{n.value&&!n.value.isFocused&&n.value.commands.focus()},createEditor:o,destroyEditor:()=>{n.value&&(n.value.destroy(),n.value=null)},isLoading:l,loadError:a}}function ju(r,t,n,{toEditorContent:l,toSourceContent:a}={}){const o=e.ref(!1),s=e.ref(""),c=e.ref(null);return{isHtmlMode:o,htmlContent:s,htmlTextarea:c,toggleHtmlMode:async u=>{if(o.value=u,u)r.value&&(s.value=a?await a(r.value.getHTML(),t):r.value.getHTML()),e.nextTick(()=>{c.value&&c.value.focus?.()});else if(r.value){const p=l?await l(s.value,t):s.value;r.value.commands.setContent(p,!0),e.nextTick(()=>{r.value?.commands?.focus?.()})}},onHtmlInput:u=>{s.value=u,n&&n("update:modelValue",u)}}}function Uu(){const r=e.ref(!1);return{isFullscreen:r,toggleFullscreen:()=>{r.value=!r.value}}}const ut=r=>r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),At=r=>{let t=ut(r||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,l,a,o)=>{const s=o?` title="${ut(o)}"`:"";return`<img src="${ut(a)}" alt="${ut(l)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,l,a,o)=>{const s=o?` title="${ut(o)}"`:"";return`<a href="${ut(a)}"${s} target="_blank" rel="noopener noreferrer">${l}</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},Ft=r=>/^\s*\d+\.\s+/.test(r),Dn=r=>/^\s*[-*+]\s+/.test(r),zr=r=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(r),Mn=r=>/^\s*>\s?/.test(r),Tn=r=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(r),Rr=r=>r.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>At(t.trim())),Hu=(r,t)=>{const n=r[t],l=r[t+1];if(!n||!l||!n.includes("|")||!Tn(l))return null;const a=Rr(n),o=[];let s=t+2;for(;s<r.length&&r[s].includes("|")&&r[s].trim()!=="";){const d=Rr(r[s]);o.push(`<tr>${d.map(u=>`<td>${u}</td>`).join("")}</tr>`),s+=1}const c=`<thead><tr>${a.map(d=>`<th>${d}</th>`).join("")}</tr></thead>`,i=o.length?`<tbody>${o.join("")}</tbody>`:"";return{html:`<table>${c}${i}</table>`,nextIndex:s}},qu=(r,t)=>{const n=Ft(r[t]),l=n?"ol":"ul",a=[];let o=t;for(;o<r.length;){const s=r[o];if(s.trim()===""||!(n?Ft(s):(Dn(s)||zr(s))&&!Ft(s)))break;const i=s.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.*)$/);if(i){const d=i[1].toLowerCase()==="x";a.push(`<li><input type="checkbox" disabled${d?" checked":""}> ${At(i[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");a.push(`<li>${At(d)}</li>`)}o+=1}return{html:`<${l}>${a.join("")}</${l}>`,nextIndex:o}},Ku=(r,t)=>{const l=r[t].replace(/^```/,"").trim(),a=[];let o=t+1;for(;o<r.length&&!r[o].startsWith("```");)a.push(r[o]),o+=1;return{html:`<pre><code${l?` class="language-${ut(l)}"`:""}>${ut(a.join(`
|
|
4
|
-
`))}</code></pre>`,nextIndex:o<r.length?o+1:o}},Gu=(r,t)=>{const n=[];let l=t;for(;l<r.length;){const a=r[l];if(a.trim()===""||a.startsWith("```")||/^#{1,6}\s+/.test(a)||/^---+$/.test(a.trim())||/^\*\*\*+$/.test(a.trim())||Mn(a)||Ft(a)||Dn(a)||l+1<r.length&&a.includes("|")&&Tn(r[l+1]))break;n.push(a.trim()),l+=1}return{html:`<p>${At(n.join(" "))}</p>`,nextIndex:l}},Pr=r=>{const n=(r||"").replace(/\r\n/g,`
|
|
1
|
+
(function(ce,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):(ce=typeof globalThis<"u"?globalThis:ce||self,e(ce.FormBuilder={},ce.Vue,ce.OpenGISCore,ce.lucide))})(this,(function(ce,e,pe,P){"use strict";const Hn=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(r){const t=r,n=e.ref(!1),l=e.ref({top:"0px",left:"0px"});function a(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();l.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},n.value=!0}function o(){n.value=!1}return(s,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:a,onMouseleave:o},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(P.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value&&r.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(l.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none"},e.toDisplayString(r.text),5)):e.createCommentVNode("",!0)]))],64))}}),ll={class:"w-full relative"},al={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},ol={class:"opacity-100"},sl={key:0,class:"text-red-500 text-[14px]"},il={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},cl=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(r){const t=r,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),l=e.computed(()=>!!n.value),a=e.computed(()=>!!t.item?.rules?.includes("required")),o=e.computed(()=>t.item?.info||"");return(s,c)=>(e.openBlock(),e.createElementBlock("div",ll,[l.value?(e.openBlock(),e.createElementBlock("div",al,[e.createElementVNode("span",ol,e.toDisplayString(n.value),1),a.value?(e.openBlock(),e.createElementBlock("span",sl,"*")):e.createCommentVNode("",!0),o.value?(e.openBlock(),e.createBlock(Hn,{key:1,text:o.value},null,8,["text"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(s.$slots,"default",e.mergeProps(s.$attrs,{class:{"opacity-60":r.item.disabled}})),r.error?(e.openBlock(),e.createElementBlock("span",il,e.toDisplayString(r.error),1)):e.createCommentVNode("",!0)]))}}),dl={class:"w-full relative flex flex-row items-center gap-2"},ul={key:0,class:"text-red-500 text-[14px]"},pl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},fl=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(r){const t=r,n=e.computed(()=>t.item?.label||t.label||t.ua),l=e.computed(()=>t.item?.info||""),a=e.computed(()=>t.columns??{container:12,label:3}),o=e.computed(()=>{const{container:d,label:u}=a.value;return!d||d<=0?0:Math.min(Math.max(u??0,0),d)/d}),s=e.computed(()=>t.item?.type==="html"||o.value<=0?!1:!!n.value),c=e.computed(()=>{if(!s.value)return{};const d=`${o.value*100}%`;return{flexBasis:d,maxWidth:d}}),i=e.computed(()=>{const{container:d,label:u}=a.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 y=`${p*100}%`;return{flexBasis:y,maxWidth:y}});return(d,u)=>(e.openBlock(),e.createElementBlock("div",dl,[s.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(c.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),r.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",ul,"*")):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(Hn,{key:1,text:l.value},null,8,["text"])):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(i.value)},[e.renderSlot(d.$slots,"default",e.normalizeProps(e.guardReactiveProps(d.$attrs)))],4),r.error?(e.openBlock(),e.createElementBlock("span",pl,e.toDisplayString(r.error),1)):e.createCommentVNode("",!0)]))}}),ml={class:"w-full relative"},hl={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},gl=e.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",ml,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),r.error?(e.openBlock(),e.createElementBlock("span",hl,e.toDisplayString(r.error),1)):e.createCommentVNode("",!0)]))}}),yl={class:"flex-1 min-w-0"},bl={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},kl={class:"truncate"},xl={key:0,class:"text-red-500 text-[14px]"},wl=["innerHTML"],vl={key:0,class:"mt-1 text-xs text-red-500"},_l={default:cl,horizontal:fl,inline:gl,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(r){const t=r,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const l=e.computed(()=>t.item?.description??""),a=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),o=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const c=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=c||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":r.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(r.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",yl,[r.ua||r.label?(e.openBlock(),e.createElementBlock("p",bl,[e.createElementVNode("span",kl,e.toDisplayString(r.item[n.value]||r.ua||r.label),1),a.value?(e.openBlock(),e.createElementBlock("span",xl,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:l.value},null,8,wl)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(r.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(c.$attrs)))],2)],2),o.value?(e.openBlock(),e.createElementBlock("p",vl,e.toDisplayString(o.value),1)):e.createCommentVNode("",!0)],2))}})};function Ne(r){return{inputClass:e.computed(()=>{const n=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${r?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return r?.size==="sm"?`${n}h-[32px]`:`${n}h-[38px]`})}}const Cl=["placeholder","disabled"],El=e.defineComponent({__name:"vs-input-password",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Ne(t.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>!!t.disabled),o=e.computed(()=>t.placeholder??"");return(s,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":c[0]||(c[0]=i=>l.value=i),placeholder:o.value,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Cl)),[[e.vModelText,l.value]])}}),Bl=["placeholder","disabled","maxlength","minlength"],wt=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Ne(t.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>!!t.disabled),o=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),c=e.computed(()=>t.minlength??void 0);function i(){typeof l.value=="string"&&(l.value=l.value.trim())}return(d,u)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":u[0]||(u[0]=p=>l.value=p),placeholder:o.value,disabled:a.value,maxlength:s.value,minlength:c.value,onBlur:i,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[r.customClass,e.unref(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Bl)),[[e.vModelText,l.value]])}}),Vl=["placeholder","disabled","min","max"],qn=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({min:{},max:{},style:{default:()=>({})},customClass:{},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Ne(t.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>!!t.disabled);return(o,s)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:"any","onUpdate:modelValue":s[0]||(s[0]=c=>l.value=c),placeholder:r.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:r.min,max:r.max},null,10,Vl)),[[e.vModelText,l.value]])}}),Sl={class:"flex items-center gap-[4px]"},$l=["value","id","disabled"],Al=["for"],Fl={class:"text-[14px] text-gray-700 flex items-center dark:text-neutral-400"},Nl=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=t,l=r,a=e.computed({get:()=>l.modelValue,set:s=>n("update:modelValue",s)}),o=e.computed(()=>!!l.disabled);return(s,c)=>(e.openBlock(),e.createElementBlock("div",Sl,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:r.value,"onUpdate:modelValue":c[0]||(c[0]=i=>a.value=i),class:e.normalizeClass(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer",{"!cursor-not-allowed":o.value}]),id:r.id,disabled:o.value},null,10,$l),[[e.vModelCheckbox,a.value]]),e.createElementVNode("label",{for:r.id,class:e.normalizeClass(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300",{"!cursor-not-allowed":o.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[a.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",r.error?"border-red-600":""]])},[e.createVNode(e.unref(P.Check),{class:"h-4 w-4"})],2),e.createElementVNode("span",Fl,[e.renderSlot(s.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(r.label),1)])])],10,Al)]))}}),Dl=["name","value","disabled"],Ml={class:"flex items-center gap-[6px] text-[14px]"},Tl={key:0,class:"text-[16px]"},Ll=["src"],Il=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,l=t,a=e.computed({get:()=>n.modelValue,set:c=>{l("update:modelValue",c)}}),o=e.computed(()=>Array.isArray(a.value)?a.value.includes(n.value):a.value===!0||a.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs");return(c,i)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,o.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:r.id,value:r.value,"onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),disabled:r.disabled},null,8,Dl),[[e.vModelCheckbox,a.value]]),e.createElementVNode("span",Ml,[r.icon||r.imgUrl?(e.openBlock(),e.createElementBlock("span",Tl,[r.icon?(e.openBlock(),e.createElementBlock("i",{key:0,class:e.normalizeClass(r.icon)},null,2)):e.createCommentVNode("",!0),r.imgUrl?(e.openBlock(),e.createElementBlock("img",{key:1,src:r.imgUrl,width:"16",height:"16",alt:"icon"},null,8,Ll)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(c.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(r.label),1)])])],2))}}),Ol={class:"flex items-center"},fn=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,l=t,a=`radio-${Math.floor(Math.random()*1e4)}`,o=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),l("update:modelValue",i)}else l("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Ol,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Il):e.unref(Nl)),{value:r.value,label:r.label,info:r.option?.info,disabled:r.disabled,modelValue:o.value,"onUpdate:modelValue":i[0]||(i[0]=d=>o.value=d),id:a,icon:r.icon,imgUrl:r.imgUrl,style:e.normalizeStyle(r.style),error:r.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.label),1)]),_:1},8,["value","label","info","disabled","modelValue","icon","imgUrl","style","error"]))]))}}),zl={key:0,class:"flex items-start gap-x-1"},Rl={key:0,class:"text-red-500 text-[14px]"},Pl=["title"],jl=["disabled"],mn=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue");return(l,a)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",zl,[e.createVNode(fn,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=o=>n.value=o),label:r.text,error:r.error||""},null,8,["modelValue","label","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Rl,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:a[1]||(a[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(P.Info),{class:"h-4 w-4 text-gray-500"})],8,Pl)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[n.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:a[2]||(a[2]=o=>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,jl))}}),Ul=["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(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{id:r.name,class:e.normalizeClass(["text-gray-900",r.customClass]),innerHTML:r.html?r.html:r.text},null,10,Ul))}}),Hl=["placeholder","disabled","name"],gn=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Ne(t.style),l=e.useModel(r,"modelValue"),a=e.ref(null);let o=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 y=0;y<c.length;y+=1){const f=c[y];f==="{"?u=!0:f==="}"?u=!1:u&&d.add(f)}const p={};return Object.keys(i).forEach(y=>{d.has(y)||(p[y]=i[y])}),{mask:c,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(a.value){const{default:c}=await Promise.resolve().then(()=>Ln),i=s(t.mask||"");o=c(a.value,i),o.on("accept",()=>{l.value=t.unmask?o.unmaskedValue:o.value}),o.on("complete",()=>{l.value=t.unmask?o.unmaskedValue:o.value}),o.value=l.value!=null?String(l.value):""}}),e.onBeforeUnmount(()=>{o?.destroy()}),e.watch(()=>t.mask,c=>{if(o){const i=s(c||"");o.updateOptions(i)}}),e.watch(l,c=>{o&&o.unmaskedValue!==c&&(o.value=c!=null?String(c):"")}),(c,i)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:a,placeholder:r.placeholder,disabled:r.disabled,name:r.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,Hl))}}),ql={class:"relative w-full bg-white rounded-lg"},Kl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Gl=["placeholder","disabled"],yn=e.defineComponent({__name:"vs-input-email",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Ne(t.style),l=e.useModel(r,"modelValue");return(a,o)=>(e.openBlock(),e.createElementBlock("div",ql,[e.createElementVNode("div",Kl,[e.createVNode(e.unref(P.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":o[0]||(o[0]=s=>l.value=s),placeholder:r.placeholder,disabled:r.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Gl),[[e.vModelText,l.value]])]))}}),Wl={class:"relative w-full bg-white rounded-lg"},Yl={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Zl=["value","placeholder","disabled"],bn=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Ne(t.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>l.value?l.value.startsWith("+")?l.value.slice(1):l.value:""),o=c=>{let{value:i}=c.target;i=i.replace(/^\+/,""),l.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(()=>l.value,c=>{c&&!c.startsWith("+")?l.value=`+${c.replace(/^\+/,"")}`:c||(l.value="")},{immediate:!0}),(c,i)=>(e.openBlock(),e.createElementBlock("div",Wl,[e.createElementVNode("div",Yl,[e.createVNode(e.unref(P.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),i[0]||(i[0]=e.createElementVNode("div",{class:"absolute bottom-2/4 translate-y-2/4 left-[30px] text-gray-500 select-none pointer-events-none"}," + ",-1)),e.createElementVNode("input",{type:"tel",value:a.value,onInput:o,onBeforeinput:s,pattern:"^\\+[1-9]\\d{1,14}$",maxlength:"15",placeholder:r.placeholder,disabled:r.disabled,class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Zl)]))}}),Xl=["value","disabled"],Jl={class:"text-[13px] text-gray-700"},Ql=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.computed(()=>!!t.disabled);return(a,o)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,l.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":o[0]||(o[0]=s=>n.value=s),type:"radio",value:t.value,disabled:l.value,class:"hidden"},null,8,Xl),[[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`,l.value?"opacity-50 cursor-not-allowed":""]])},[n.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),e.createElementVNode("span",Jl,e.toDisplayString(t.text),1)],2))}}),ea=["value","disabled"],ta={class:"text-[13px] text-gray-700"},na={"vs-input-radio-default":Ql,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.computed(()=>!!t.disabled);return(a,o)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,l.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":o[0]||(o[0]=s=>n.value=s),type:"radio",value:t.value,disabled:l.value,class:"hidden"},null,8,ea),[[e.vModelRadio,n.value]]),e.createElementVNode("span",ta,e.toDisplayString(t.text),1)],2))}})},kn=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.computed(()=>na[`vs-input-radio-${t.view}`]);return(a,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([r.position==="horizontal"?"flex items-center flex-wrap gap-2":""])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.options,s=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),e.mergeProps({key:s?.id,text:s.text,value:s.id.toString(),checked:n.value===s.id,modelValue:n.value,"onUpdate:modelValue":o[0]||(o[0]=c=>n.value=c)},{ref_for:!0},a.$attrs),null,16,["text","value","checked","modelValue"]))),128))],2))}}),ra={key:1,class:"w-full flex flex-col gap-4"},la={key:0,class:"text-sm font-medium text-muted-foreground my-2"},aa="Без категорії",oa=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},colSpan:{default:0},data:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,l=t,a=e.ref([]),o=e.reactive({}),s=f=>f?.value||f?.id||f?.text||f,c=f=>f.text||String(f),i=f=>`lg:col-span-${f||12}`,d=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),u=f=>f==null||f===""?null:typeof f=="string"||typeof f=="number"?f:String(f),p=e.computed(()=>{if(!n.group)return[];const f=new Map;a.value.forEach(v=>{const x=v[n.group],w=u(x);f.has(w)||f.set(w,[]),f.get(w)?.push(v)});const g=[];n.values?.length&&n.values.forEach(v=>{const x=u(v);g.push(x)});const h=new Set,k=v=>{const x=f.get(v)||[];if(!x.length)return null;const w=v===null?"group-null":`group-${String(v)}`,A=v===null?aa:String(v);return h.add(v),{key:w,label:A,options:x}},C=[];return g.forEach(v=>{const x=k(v);x&&C.push(x)}),f.forEach((v,x)=>{if(h.has(x))return;const w=k(x);w&&C.push(w)}),C}),y=async()=>{try{const f=await fetch(`/api/suggest/${n.data}`).then(g=>g.json());a.value=f?.data||f}catch(f){console.error(f)}};return e.watch(()=>n.modelValue,f=>{if(typeof f=="boolean"&&a.value.length===1){const g=s(a.value[0]);o[g]=f}else if(Array.isArray(f)){const g=new Set(f);a.value.forEach(h=>{if(!h.disabled){const k=s(h);o[k]=g.has(k)}})}},{immediate:!0}),e.watch(o,()=>{if(!a.value.length){l("update:modelValue",null);return}const f=Object.entries(o).filter(([,g])=>g).map(([g])=>g);l("update:modelValue",f.length===0?[]:f)},{deep:!0}),e.onMounted(()=>{if(n.data)y().then(()=>{if(typeof n.modelValue=="boolean"&&a.value.length===1){const f=s(a.value[0]);o[f]=n.modelValue}else if(Array.isArray(n.modelValue)){const f=new Set(n.modelValue);a.value.forEach(g=>{if(!g.disabled){const h=s(g);o[h]=f.has(h)}})}});else if(a.value=n.options,typeof n.modelValue=="boolean"&&a.value.length===1){const f=s(a.value[0]);o[f]=n.modelValue}else if(Array.isArray(n.modelValue)){const f=new Set(n.modelValue);a.value.forEach(g=>{if(!g.disabled){const h=s(g);o[h]=f.has(h)}})}}),(f,g)=>n.group?(e.openBlock(),e.createElementBlock("div",ra,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h.key,class:"flex flex-col gap-2"},[h.label?(e.openBlock(),e.createElementBlock("span",la,e.toDisplayString(h.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",d.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.options,k=>(e.openBlock(),e.createBlock(fn,{modelValue:o[s(k)],"onUpdate:modelValue":C=>o[s(k)]=C,value:s(k),class:e.normalizeClass(i(r.colSpan)),disabled:n.disabled||k.disabled,label:c(k),key:`${h.key}-${s(k)}`,icon:k?.icon,imgUrl:k?.imgUrl,option:k,view:r.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",d.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,h=>(e.openBlock(),e.createBlock(fn,{modelValue:o[s(h)],"onUpdate:modelValue":k=>o[s(h)]=k,value:s(h),class:e.normalizeClass(i(r.colSpan)),disabled:n.disabled||h.disabled,label:c(h),key:s(h),icon:h?.icon,imgUrl:h?.imgUrl,option:h,view:r.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","icon","imgUrl","option","view"]))),128))],2))}}),ue=(r,t)=>{const n=r.__vccOpts||r;for(const[l,a]of t)n[l]=a;return n},Kn=ue(oa,[["__scopeId","data-v-cf0478ce"]]),sa=["type","placeholder","disabled"],ia=e.defineComponent({__name:"vs-input-date1",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},mode:{default:"date"}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r;function l(u){return u?n.mode==="datetime"?(u.includes("T")?u:null)||u+(u.includes(" ")?"":"T00:00"):u?.split(" ")[0]:null}const{inputClass:a}=Ne(n.style),o=t,s=e.computed({get:()=>l(n.modelValue),set:u=>o("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,p)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:c.value,"onUpdate:modelValue":p[0]||(p[0]=y=>s.value=y),placeholder:d.value,disabled:i.value,ref:"date",class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[r.modelValue?"":"text-opacity-50",e.unref(a)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,sa)),[[e.vModelDynamic,s.value]])}}),ca=(r,t)=>{if(!t||!Object.keys(t).length)return r;const[n,l=""]=r.split("?"),a=new URLSearchParams(l);Object.entries(t).forEach(([s,c])=>{c==null||c===""||a.set(s,String(c))});const o=a.toString();return o?`${n}?${o}`:n},Gn=async(r,t={})=>{try{const n=new FormData;n.append("unique","true"),n.append("file",r);const{api:l,id:a="1",form:o="form",table:s="table",customParams:c}=t,i=l||`/file/upload/uploads?id=${a||""}&form=${o||""}&table=${s||""}`,d=ca(i,c);return(await fetch(d,{method:"POST",body:n}).then(p=>p.json()))?.result}catch(n){return pe.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},da=async r=>{try{return await fetch(`file/delete${r}`),!0}catch(t){return console.error(t),!1}},Wn=async r=>{try{const t=await fetch(`/file/download/files/uploads${r}`),n=await t.arrayBuffer(),l=t.headers["content-type"],a=new TextDecoder("utf-8").decode(n),o=new Blob([a],{type:l}),s=document.createElement("a");s.setAttribute("download",r),s.href=window.URL.createObjectURL(o),s.click()}catch(t){console.error(t.message)}},ua=r=>{if(!r)return"";const t=r?.split(".");return t[t.length-1]},pa=r=>{const t=ua(r),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?P.Table:n.textsFormat.includes(t)?P.FileCode:n.documentsFormat.includes(t)?P.FileText:n.archivesFormat.includes(t)?P.FileArchive:P.FileText},fa=["title"],ma={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},xn=ue(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:["update:value","update:item"],setup(r){const t=e.useModel(r,"value"),n=e.useModel(r,"item"),l=r;return(a,o)=>(e.openBlock(),e.createElementBlock("div",{title:n.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(pa)(n.value)),{src:n.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:o[0]||(o[0]=s=>e.unref(Wn)(n.value))},null,8,["src"])),e.createElementVNode("div",ma,[e.createElementVNode("button",{type:"button",onClick:o[1]||(o[1]=s=>{e.unref(da)(n.value),t.value=l.multiple?t.value?.filter(c=>c!==n.value):""}),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(P.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:o[2]||(o[2]=s=>e.unref(Wn)(n.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(P.Download),{class:"w-4 h-4"})])])],8,fa))}}),[["__scopeId","data-v-b458bb29"]]),ha={class:"flex items-center gap-x-2"},ga=["accept","multiple","disabled"],ya={key:1,class:"flex items-center flex-wrap gap-2"},ba={key:1,class:"loader"},ka={key:1,class:"loader"},Yn=ue(e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(r,{emit:t}){const n=r,l=e.useModel(r,"modelValue"),a=t,o=e.ref(null),s=e.ref(!1),c=e.inject("values"),i=e.computed(()=>n.format?n.format.split(",").map(v=>v.trim().toLowerCase()).filter(Boolean):[]),d=v=>Array.isArray(l.value)&&l.value[v]||"",u=v=>{if(n.max_size&&v.size>n.max_size*1024*1024){const x=(v.size/1048576).toFixed(2);return pe.notify({type:"error",title:"Помилка!",message:`Файл "${v.name}" занадто великий. Максимальний розмір: ${n.max_size} МБ, розмір файлу: ${x} МБ`,position:"right-bottom"}),!1}return!0},p=v=>{if(!i.value.length)return!0;const x=`.${v.name.split(".").pop()?.toLowerCase()||""}`,w=i.value.includes(x);return w||pe.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${v.name}". Дозволені формати: ${i.value.join(", ")}`,position:"right-bottom"}),w},y=e.computed(()=>{const v={},x=[];if(!n.customParams?.length)return{params:v,missingSources:x};const w=c?.value??{};return n.customParams.forEach(A=>{if(!A)return;const[I,V]=A.split("="),_=I?.trim(),S=V?.trim();if(!_||!S)return;const E=w[S];if(E==null||E===""){x.push(S);return}v[_]=E}),{params:v,missingSources:x}}),f=()=>{const{params:v}=y.value;return{api:n.api,customParams:Object.keys(v).length?v:void 0}},g=()=>{const v=y.value.missingSources;if(!v.length)return!0;const x=v.join(", ");return pe.notify({type:"warning",title:"Заповніть поля",message:`Поля (${x}) необхідні для завантаження файлу`,position:"right-bottom"}),!1},h=v=>{pe.notify({type:"error",title:"Помилка завантаження",message:v||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},k=()=>{n.disabled||s.value||g()&&o.value?.click()},C=async v=>{const{files:x}=v.target;if(!x||x.length===0)return;if(!g()){o.value&&(o.value.value="");return}const w=Array.from(x);if(n.max_size&&w.filter(V=>!u(V)).length>0){o.value&&(o.value.value="");return}if(w.filter(I=>!p(I)).length>0){o.value&&(o.value.value="");return}s.value=!0;try{if(n.multiple){const I=Array.from(x).map(async E=>await Gn(E,f())),V=await Promise.all(I),S=V.filter(E=>E!==null).map(E=>E?.file_path).filter(Boolean);if(S.length===0){h();return}S.length<V.length&&h("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову."),l.value=[...l.value||[],...S],a("change",l.value)}else{const I=x[0],V=await Gn(I,f());if(!V?.file_path){h();return}l.value=V?.file_path,a("change",l.value||"")}}catch(I){const V=I?.message||void 0;h(V)}finally{s.value=!1,o.value&&(o.value.value="")}};return(v,x)=>(e.openBlock(),e.createElementBlock("div",ha,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:o,type:"file",accept:n.format,multiple:r.multiple,onChange:C,disabled:s.value||r.disabled},null,40,ga),!r.multiple&&l.value?(e.openBlock(),e.createBlock(xn,{key:0,item:l.value,"onUpdate:item":x[0]||(x[0]=w=>l.value=w),value:l.value,"onUpdate:value":x[1]||(x[1]=w=>l.value=w)},null,8,["item","value"])):r.multiple?(e.openBlock(),e.createElementBlock("div",ya,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(w,A)=>(e.openBlock(),e.createBlock(xn,{multiple:r.multiple,key:A,value:l.value,"onUpdate:value":x[2]||(x[2]=I=>l.value=I),item:d(A)},null,8,["multiple","value","item"]))),128)),e.createElementVNode("div",{onClick:k,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",r.disabled||s.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500 hover:bg-blue-50"])},[s.value?(e.openBlock(),e.createElementBlock("div",ba)):(e.openBlock(),e.createBlock(e.unref(P.Plus),{key:0,class:"h-4 w-4"}))],2)])):e.createCommentVNode("",!0),r.multiple?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:2,onClick:k,class:e.normalizeClass([r.disabled||s.value?"opacity-50 cursor-not-allowed":"cursor-pointer hover:border-blue-500","relative h-[120px] w-[120px] border text-gray-300 hover:text-blue-500 border-dashed border-gray-300 rounded-lg flex items-center justify-center cursor-pointer hover:border-blue-500 transition-all duration-300 hover:bg-blue-50"])},[s.value?(e.openBlock(),e.createElementBlock("div",ka)):(e.openBlock(),e.createBlock(e.unref(P.Plus),{key:0,class:"h-4 w-4"}))],2))]))}}),[["__scopeId","data-v-4605f83b"]]),xa={class:"vs-input-file2 flex flex-col gap-4"},wa={class:"flex items-center gap-x-2"},va=["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"},Ca={key:0,class:"rounded-lg border border-[#CFD9E0] bg-white p-4 shadow-sm"},Ea={class:"flex items-center justify-between text-sm"},Ba={class:"truncate pr-4"},Va={class:"font-medium text-slate-800 truncate"},Sa={class:"text-slate-500"},$a={class:"text-slate-500 whitespace-nowrap"},Aa={class:"mt-3 h-2 rounded-full bg-slate-100 overflow-hidden"},Fa={class:"mt-3 flex flex-wrap gap-2 text-sm"},Na={key:0,class:"mt-2 text-sm text-rose-600"},Da=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.ref(null),a=e.ref(null),o=e.ref(""),s=e.ref(0),c=e.ref(!1),i=e.ref(""),d=e.ref(null),u=e.inject("values"),p=e.computed(()=>t.format?t.format.split(",").map(T=>T.trim().toLowerCase()).filter(Boolean):[]),y=e.computed(()=>!a.value||!a.value.size?0:Math.min(100,Math.round(s.value/a.value.size*100))),f=e.computed(()=>a.value?`${k(s.value)} / ${k(a.value.size)}`:""),g=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"),h=()=>{t.disabled||c.value||w()&&l.value?.click()},k=T=>{if(!Number.isFinite(T))return"0 B";const L=["B","KB","MB","GB"];let $=0,M=T;for(;M>=1024&&$<L.length-1;)M/=1024,$+=1;return`${M.toFixed($===0?0:1)} ${L[$]}`},C=T=>{if(!t.max_size)return!0;const L=t.max_size*1024*1024;return T.size>L?(pe.notify({type:"error",title:"Файл занадто великий",message:`Максимальний розмір ${t.max_size} МБ`,position:"right-bottom"}),!1):!0},v=T=>{if(!p.value.length)return!0;const L=`.${T.name.split(".").pop()?.toLowerCase()||""}`;return p.value.includes(L)?!0:(pe.notify({type:"error",title:"Непідтримуваний формат",message:`Дозволені формати: ${p.value.join(", ")}`,position:"right-bottom"}),!1)},x=e.computed(()=>{const T={},L=[];if(!t.customParams?.length)return{params:T,missing:L};const $=u?.value??{};return t.customParams.forEach(M=>{if(!M)return;const[N,H]=M.split("="),U=N?.trim(),q=H?.trim();if(!U||!q)return;const Q=$[q];Q==null||Q===""?L.push(q):T[U]=Q}),{params:T,missing:L}}),w=()=>x.value.missing.length?(pe.notify({type:"warning",title:"Заповніть поля",message:`Потрібні значення: ${x.value.missing.join(", ")}`,position:"right-bottom"}),!1):!0,A=T=>{const L=T.target,$=L.files?.[0];if($){if(!w()){L.value="";return}if(!C($)||!v($)){L.value="";return}a.value=$,s.value=0,o.value="",i.value=""}},I=async()=>{if(!a.value){h();return}try{i.value="";const T={id:o.value||"",fileName:a.value.name,subdir:t.subdir,size:a.value.size,...x.value.params},L=await fetch("/api/file/upload2/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T)});if(!L.ok)throw new Error("Не вдалося ініціалізувати завантаження");const $=await L.json();o.value=$.id||o.value,s.value=$.uploaded||0,await V()}catch(T){i.value=T?.message||"Помилка при старті завантаження"}},V=async()=>{if(!(!a.value||!o.value)){c.value=!0;try{for(;s.value<a.value.size;){const T=s.value,L=Math.min(T+t.chunkSize,a.value.size),$=a.value.slice(T,L);d.value=new AbortController;const M=await fetch(`/api/file/upload2/${o.value}`,{method:"PATCH",headers:{"Content-Range":`bytes ${T}-${L-1}/${a.value.size}`},body:$,signal:d.value.signal});if(!M.ok)throw new Error("Помилка завантаження частини");const N=await M.json().catch(()=>({}));if(N.uploaded!=null?s.value=Number(N.uploaded):s.value=L,N.finished||s.value>=a.value.size){c.value=!1,n.value=N.file_path||N.url||o.value,pe.notify({type:"success",title:"Файл завантажено",message:a.value.name,position:"right-bottom"}),D();return}}}catch(T){if(T?.name==="AbortError")return;i.value=T?.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(a.value){if(!o.value){await I();return}await V()}},E=()=>{d.value?.abort(),d.value=null,D()},D=()=>{const T=l.value;T&&(T.value=""),a.value=null,o.value="",s.value=0,i.value=""};return(T,L)=>(e.openBlock(),e.createElementBlock("div",xa,[e.createElementVNode("div",wa,[e.createElementVNode("input",{ref_key:"fileInput",ref:l,type:"file",class:"hidden",accept:t.format,disabled:c.value||t.disabled,onChange:A},null,40,va),n.value?(e.openBlock(),e.createBlock(xn,{key:0,item:n.value,"onUpdate:item":L[0]||(L[0]=$=>n.value=$),value:n.value,"onUpdate:value":L[1]||(L[1]=$=>n.value=$)},null,8,["item","value"])):(e.openBlock(),e.createElementBlock("div",{key:1,onClick:h,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",g.value])},[c.value?(e.openBlock(),e.createElementBlock("div",_a,[L[2]||(L[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(y.value)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(P.Plus),{key:1,class:"h-4 w-4"}))],2))]),a.value&&!n.value?(e.openBlock(),e.createElementBlock("div",Ca,[e.createElementVNode("div",Ea,[e.createElementVNode("div",Ba,[e.createElementVNode("div",Va,e.toDisplayString(a.value.name),1),e.createElementVNode("div",Sa,e.toDisplayString(k(a.value.size)),1)]),e.createElementVNode("div",$a,e.toDisplayString(f.value),1)]),e.createElementVNode("div",Aa,[e.createElementVNode("div",{class:"h-full rounded-full bg-blue-500 transition-all duration-300",style:e.normalizeStyle({width:`${y.value}%`})},null,4)]),e.createElementVNode("div",Fa,[!c.value&&s.value>0&&s.value<(a.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:I}," Upload ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"rounded border border-rose-200 px-3 py-1 text-rose-600",onClick:E}," Cancel ")]),i.value?(e.openBlock(),e.createElementBlock("p",Na,e.toDisplayString(i.value),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),wn=ue(Da,[["__scopeId","data-v-12c3bd36"]]),Ma={class:"flex items-center justify-center h-[30px] w-[30px]"},Ta={class:"max-w-[55vw]"},La={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},Ia={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Oa={class:"px-[5px]"},za={class:""},zt=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(r){const t=r,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function l(a){if(a<1024)return`${a} B`;const o=a/1024;return o<1024?`${o.toFixed(2)} KB`:`${(o/1024).toFixed(2)} MB`}return(a,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Ma,[e.createVNode(e.unref(P.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Ta,[e.createElementVNode("p",La,e.toDisplayString(r.item?.uploaded_name),1),e.createElementVNode("p",Ia,[e.createElementVNode("span",null,e.toDisplayString(r.item?.username),1),e.withDirectives(e.createElementVNode("span",Oa,"|",512),[[e.vShow,r.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),o[0]||(o[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",za,e.toDisplayString(l(r.item?.size)),1)])])],64))}}),Ra={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Pa={key:0,class:"flex w-full gap-x-3 items-center"},ja={key:1,class:"flex gap-x-3 w-full items-center"},Ua={key:2,class:"flex gap-x-3 w-full items-center"},Ha=["href"],qa={key:3,class:"flex gap-x-3 w-full items-center"},Ka={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},Ga={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"},Wa={class:"inline-block"},Ya={class:"inline-block"},Za=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(r,{emit:t}){const n=r,l=t;function a(u){return["pdf","json"].includes(u.ext)}function o(u){return["ppt","pptx","doc","docx","xls","xlsx"].includes(u.ext)}function s(u){const p=document.createElement("a");p.setAttribute("download",u?.uploaded_name),p.href=u?.file_path,p.click()}async function c(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),l("update")}catch(u){console.error(u)}}function i(){l("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function d(u){(n.item.ext==="jpg"||n.item.ext==="png")&&l("openLightbox",{item:n.item,index:u})}return(u,p)=>(e.openBlock(),e.createElementBlock("div",Ra,[r.item.ext==="jpg"||r.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Pa,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=y=>d(r.index))},[e.createVNode(zt,{item:r.item},null,8,["item"])])])):a(r.item)?(e.openBlock(),e.createElementBlock("div",ja,[e.createVNode(zt,{item:r.item},null,8,["item"])])):o(r.item)?(e.openBlock(),e.createElementBlock("div",Ua,[e.createElementVNode("a",{href:`/api/file-preview?id=${r.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(zt,{item:r.item},null,8,["item"])],8,Ha)])):(e.openBlock(),e.createElementBlock("div",qa,[e.createVNode(zt,{item:r.item},null,8,["item"])])),e.createElementVNode("div",Ka,[e.createElementVNode("div",Ga,[e.createElementVNode("div",Wa,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:p[1]||(p[1]=y=>s(r.item))},[e.createVNode(e.unref(P.Download),{class:"h-4 w-4"})])]),p[3]||(p[3]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",Ya,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:p[2]||(p[2]=y=>i())},[e.createVNode(e.unref(P.Trash2),{class:"h-4 w-4"})])])])])]))}}),Xa={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},Ja={class:"flex w-full mb-[12px] items-center gap-x-2"},Qa={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},eo={class1:"ml-auto"},to={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"},no={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},ro={class:"relative"},lo={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},ao={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"},oo={key:0},Zn=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(r,{emit:t}){const n=r,l=e.inject("form"),a=e.computed(()=>l.value.formId),o=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),u=e.ref([]),p=e.ref(""),y=e.computed(()=>Array.isArray(u.value)?u.value.filter(x=>x.ext==="jpg"||x.ext==="png").map(x=>x?.file_path):[]),f=e.computed(()=>p.value===""?u.value:u.value.filter(x=>x?.uploaded_name?.includes(p.value))),g=x=>{const w=y.value.findIndex(A=>A===x.item.file_path);w!==-1&&(o.value=!0,s.value=w)},h=async()=>{try{const x=await fetch(`${n.prefix}/widget/file/${a.value}`).then(w=>w.json());u.value=x?.rows}catch(x){console.error(x)}},k=async x=>{await Promise.all(Array.from(x.target.files).map(async w=>{const A=new FormData;A.append("file",w);try{const I=`${n.prefix}/widget/file/${a.value}`,V=await fetch(I,{method:"POST",body:A});return V.ok?(c("update","file-list"),w):(pe.notify({type:V.status>=400&&V.status<500?"warning":"error",title:"Error",message:`Error code: ${V.status}`}),null)}catch(I){return pe.notify({type:"error",title:"Error",message:I.message||"Unknown error"}),console.error(I),null}})),await h()},C=x=>{const w={...x};return x.cancel||(w.cancel=()=>{i.value=!1}),x.updateListOnConfirm&&(w.confirm=async()=>{await x.confirm(),i.value=!1,h()}),w},v=x=>{d.value=C(x),i.value=!0};return e.watch(a,x=>{x&&h()}),e.onMounted(()=>{a.value&&h()}),(x,w)=>{const A=e.resolveComponent("Lightbox"),I=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",Xa,[e.createElementVNode("div",Ja,[e.createElementVNode("h2",Qa," Файлів: "+e.toDisplayString(u.value?.length),1),e.createElementVNode("div",eo,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:w[0]||(w[0]=V=>k(V))},null,32),e.createElementVNode("div",to,[e.createVNode(e.unref(P.Upload),{class:"h-4 w-4"})])])])]),u.value?.length>4?(e.openBlock(),e.createElementBlock("div",no,[e.createElementVNode("div",null,[e.createElementVNode("div",ro,[e.createElementVNode("div",lo,[e.createVNode(e.unref(P.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":w[1]||(w[1]=V=>p.value=V),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",ao,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(V,_)=>(e.openBlock(),e.createBlock(Za,{key:_,prefix:r.prefix,item:V,index:_,onUpdate:w[2]||(w[2]=S=>x.$emit("update","file-list")),onOpenModal:w[3]||(w[3]=S=>v(S)),onOpenLightbox:w[4]||(w[4]=S=>g(S))},null,8,["prefix","item","index"]))),128)),f.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",oo,[...w[8]||(w[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])]))])):e.createCommentVNode("",!0),e.createVNode(A,{modelValue:o.value,"onUpdate:modelValue":w[5]||(w[5]=V=>o.value=V),startIndex:s.value,"onUpdate:index":w[6]||(w[6]=V=>s.value=V),images:y.value},null,8,["modelValue","startIndex","images"]),e.createVNode(I,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":w[7]||(w[7]=V=>i.value=V),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),so={class:"flex items-center justify-between"},io={class:"text-[16px] text-gray-900 font-medium"},co={class:"grid gap-3"},uo=ue(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(r){const t=r,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,l=>{n.value=l}),(l,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",so,[e.createElementVNode("p",io,e.toDisplayString(r.title),1),e.createVNode(mn,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=o=>n.value=o),style:e.normalizeStyle(r.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",co,[e.renderSlot(l.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-00f2f0fc"]]),po={class:"text-[16px] text-gray-900 font-medium"},fo={class:"grid gap-3"},mo=ue(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(r){const t=r,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,l=>{n.value=l}),(l,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:a[0]||(a[0]=o=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(P.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",po,e.toDisplayString(r.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",fo,[e.renderSlot(l.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-dde48964"]]),ho={class:"flex items-center justify-between"},go={switcher:uo,accordion:mo,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(r){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ho,[e.createElementVNode("p",null,e.toDisplayString(r.title),1)]),e.renderSlot(t.$slots,"default")]))}})},Ge={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},yo=(r,t)=>String(r)===String(t),bo=(r,t)=>String(r)!==String(t),ko=(r,t)=>r>t,xo=(r,t)=>r>=t,wo=(r,t)=>r<t,vo=(r,t)=>r<=t,_o=(r,t)=>Array.isArray(t)&&t.length===2?r>=t[0]&&r<=t[1]:!1,Co=(r,t)=>String(r).startsWith(String(t)),Eo=(r,t)=>String(r).endsWith(String(t)),Bo=(r,t)=>String(r).includes(String(t)),Vo=(r,t)=>Array.isArray(t)?t.includes(r):!1,So=(r,t)=>Array.isArray(t)?!t.includes(r):!0,Xn=(r,t)=>{if(!t)return!0;switch(t?.[1]){case Ge.Equal:return yo(r,t?.[2]);case Ge.Inequal:return bo(r,t?.[2]);case Ge.Higer:return ko(r,t?.[2]);case Ge.HigerOrEqual:return xo(r,t?.[2]);case Ge.Lower:return wo(r,t?.[2]);case Ge.LowerOrEqual:return vo(r,t?.[2]);case Ge.Between:return _o(r,t?.[2]);case Ge.StartWith:return Co(r,t?.[2]);case Ge.EndWith:return Eo(r,t?.[2]);case Ge.Contain:return Bo(r,t?.[2]);case Ge.In:return Vo(r,t?.[2]);case Ge.NotIn:return So(r,t?.[2]);default:return!0}},Jn=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(r){const t=r,n=e.inject("values",e.ref({})),l=e.inject("form"),a=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 Xn(u,i)})),o=e.computed(()=>go[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const c=n.value[t.name];if(c)return c;const i={};return n.value={...n.value,[t.name]:i},i});return(c,i)=>r.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.value),{key:0,title:r.title,style:e.normalizeStyle(r.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,d=>(e.openBlock(),e.createBlock(gr,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:r.style,error:e.unref(l)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),$o=["aria-expanded","data-focus"],Ao={class:"relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},Fo={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},No={class:"flex items-center gap-1 min-w-0"},Do=["title"],Mo=["innerHTML"],To=["onClick"],Lo={class:"flex-1 min-w-[2px]"},Io=["placeholder"],Oo=["title"],zo=["innerHTML"],Ro={key:3,class:"truncate flex-1 min-w-0"},Po={key:2,class:"flex-1 min-w-[2px]"},jo=["placeholder"],Uo={class:"flex items-center shrink-0"},Ho=["disabled"],qo={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Ko=["disabled","title"],Go=["aria-disabled","onClick"],Wo=["innerHTML"],Yo={key:1,class:"px-3 py-2 text-center text-gray-500"},Zo=["disabled"],vn="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",_n=ue(e.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(r,{emit:t}){const n=r,l=t,a=e.computed(()=>n.multiple),o=e.computed(()=>n.disabled);Ne(n.style);const s=e.computed({get:()=>n.modelValue,set:O=>l("update:modelValue",O)});!s.value&&n.defaultValue&&(s.value=n.defaultValue);const c=e.ref(null),i=e.ref(null),d=e.ref(null),u=e.ref(null),p=e.ref(!1),y=e.ref(!1),f=e.ref(null),g=e.ref([]),h=e.ref(-1),k=e.ref([]),C=e.ref(""),v=e.ref(null),x=e.ref("bottom"),w=e.ref({}),A=e.ref([]),I=e.computed(()=>{if(!A.value.length)return[];const O=g.value,G=new Map(O.map(K=>[K.id?.toString(),K]));return A.value.map(K=>G.get(K?.toString())).filter(K=>!!K)}),V=e.computed(()=>n.placeholder||"Select..."),_=e.computed(()=>U(f.value));e.computed(()=>a.value?!A.value.length&&C.value==="":!_.value&&C.value==="");const S=e.computed(()=>o.value?!1:a.value?A.value.length>0:!!s.value),E=O=>a.value?A.value.some(G=>G?.toString()===O?.toString()):s.value?.toString()===O?.toString(),D=e.computed(()=>{let O=g.value??[];if(!n.data&&C.value.trim()!==""){const G=C.value.toLowerCase();O=O.filter(K=>{const le=U(K).toLowerCase(),be=K.text?.toLowerCase?.()||"";return le.includes(G)||be.includes(G)})}if(a.value&&A.value.length){const G=new Set(A.value.map(K=>K?.toString()));O=O.filter(K=>!G.has(K.id?.toString()))}return O}),T=e.inject("values"),L=e.inject("field-props"),$=/\{\{\s*([^}]+?)\s*\}\}/g,M=O=>(O?String(O):"").replace(/<[^>]*>/g,"").trim(),N=e.computed(()=>n.slot??n?.optionTemplate??""),H=O=>{if(!O)return"";const G=N.value;return G?G.replace($,(K,le)=>{const be=le.trim(),we=O[be];return we!=null?String(we):""}):O.text??""},U=O=>{if(!O)return"";if(!N.value)return O.text??"";const K=H(O);return M(K)||O.text||""},q=O=>O?O.icon??null:null,Q=O=>!!(O?.color&&!q(O)),_e=O=>O?.color?{color:O.color}:void 0,ge=O=>!!q(O),Z=(O,G,K)=>{if(!L)return!1;const le=L.value?.[O]??{},be=(ve,Be,Me)=>{if(!Be.length)return ve;const[Te,...qe]=Be,Ye={...ve};if(!qe.length)return Ye[Te]=Me,Ye;const it=typeof ve[Te]=="object"&&ve[Te]!==null?ve[Te]:{};return Ye[Te]=be(it,qe,Me),Ye},we=be(le,G,K);return L.value={...L.value||{},[O]:we},!0},ae=O=>{if(!n.set)return;const G=T?.value;!G&&!L||Object.entries(n.set).forEach(([K,le])=>{if(!K)return;const be=O?O[le]:null,we=K.split(".").map(Me=>Me.trim()).filter(Boolean);if(!we.length)return;const[ve,...Be]=we;Be.length&&Z(ve,Be,be??null)||G&&(G[ve]=be??null)})},ie=e.computed(()=>n.parent?T?.value?.[n.parent]?.toString()??null:null),oe=async O=>{if(!n.data){let G=n.options??[];if(O?.trim()){const K=O.toLowerCase();G=G.filter(le=>{const be=U(le).toLowerCase(),we=le.text?.toLowerCase?.()||"";return be.includes(K)||we.includes(K)})}return G}try{const G=n.host??"",K=n.prefix??"api",le=n.api??`/${K}/suggest/${n.data}`,be=`${G}${le}`,we=new URLSearchParams;return we.set("json","1"),O&&we.set("key",O),ie.value!==void 0&&ie.value!==null&&ie.value!==""&&we.set("parent",ie.value),n.start===1&&we.set("start","1"),(await fetch(`${be}?${we.toString()}`).then(Be=>Be.json()))?.data??[]}catch{return[]}},xe=async()=>{n.data?g.value=await oe(C.value):g.value=n.options?[...n.options]:[]},De=async O=>{if(O==null||O==="")return null;const G=g.value?.find(K=>K?.id?.toString()===String(O));if(G)return G;if(n.data)try{const K=n.host??"",le=n.prefix??"api",be=n.api??`/${le}/suggest/${n.data}`,we=`${K}${be}`,ve=new URLSearchParams;return ve.set("json","1"),ve.set("val",String(O)),ie.value!==void 0&&ie.value!==null&&ie.value!==""&&ve.set("parent",ie.value),n.start===1&&ve.set("start","1"),((await fetch(`${we}?${ve.toString()}`).then(Te=>Te.json()))?.data??[])?.[0]??null}catch{return null}return null},Se=async O=>{const G=new Set(g.value.map(le=>le.id?.toString())),K=O.filter(le=>!G.has(le?.toString()));K.length&&await K.reduce(async(le,be)=>{await le;const we=await De(be);we&&g.value.push(we)},Promise.resolve())},Je=()=>{if(!D.value.length){h.value=-1;return}let O=0;if(!a.value&&f.value){const G=f.value.id?.toString(),K=D.value.findIndex(le=>le.id?.toString()===G);K>=0&&(O=K)}h.value=O,e.nextTick(()=>{ke(k.value[O],d.value)})},Qe=async()=>{o.value||(p.value=!0,await xe(),await e.nextTick(()=>{J(),v.value?.focus()}),Je())},Le=()=>{p.value=!1,h.value=-1,e.nextTick(()=>{v.value?.blur()})},ft=async O=>{if(o.value)return;!p.value?await Qe():Le()},j=async()=>{if(!o.value){if(p.value){Le();return}await Qe()}},Y=()=>{a.value?(A.value=[],s.value=[],l("change",[]),W(null,[])):(f.value=null,s.value=null,l("change",null),W(null,null)),ae(null),C.value="",e.nextTick(()=>v.value?.focus())},B=O=>{a.value&&(A.value=A.value.filter(G=>G?.toString()!==O?.toString()),s.value=[...A.value],l("change",s.value),W(null),e.nextTick(()=>v.value?.focus()))},W=(O,G)=>{const K=G??(a.value?[...A.value]:O?.id??null);l("value-selected",{name:n.name,value:K,option:O})},re=O=>{a.value?(E(O.id)||(A.value=[...A.value,O.id],s.value=[...A.value],l("change",s.value),W(O)),C.value="",e.nextTick(()=>{v.value?.focus(),h.value=Math.min(h.value,D.value.length-1)}),ae(null)):(f.value=O,s.value=O.id,l("change",s.value),W(O),C.value="",Le(),ae(O))},ye=O=>{if(E(O.id)){a.value||Le();return}re(O)},ke=(O,G)=>{if(!O||!G)return;const K=O.offsetTop,le=K+O.offsetHeight,be=G.scrollTop,we=be+G.clientHeight;let ve=G.scrollTop;K<be?ve=K-80:le>we&&(ve=le-G.clientHeight+4);const Be=G;Be.scrollTop=ve},z=O=>{let G=O.parentElement;for(;G;){if(G.classList.contains("ui-dialog__content"))return G;const K=window.getComputedStyle(G),le=K.overflow+K.overflowY+K.overflowX;if(le.includes("auto")||le.includes("scroll")||G===document.body||G===document.documentElement)return G;G=G.parentElement}return document.body},J=()=>{if(!i.value)return;const O=i.value.getBoundingClientRect(),G=window.innerHeight||document.documentElement.clientHeight,K=window.innerWidth||document.documentElement.clientWidth,le=8,be=8,we=n.maxHeight||300,ve=G-O.bottom-be-le,Be=O.top-be-le,Me=ve>=Be,Te=Math.max(K-le*2,0);let{width:qe}=O;Te>0&&qe>Te&&(qe=Te);let{left:Ye}=O;Ye+qe+le>K&&(Ye=K-qe-le),Ye=Math.max(Ye,le);const it=Math.min(we,Math.max(Me?ve:Be,50));x.value=Me?"bottom":"top",w.value={position:"fixed",left:`${Ye}px`,width:`${qe}px`,maxHeight:`${it}px`,transform:Me?"none":"translateY(-100%)",top:Me?`${O.bottom+be}px`:`${O.top-be}px`}},te=async O=>{o.value||!p.value&&(O.key==="ArrowDown"||O.key==="ArrowUp")&&(O.preventDefault(),await Qe())},fe=O=>{if(!p.value)return;const{key:G}=O;if(G==="ArrowDown")O.preventDefault(),h.value+1<D.value.length&&(h.value+=1,ke(k.value[h.value],d.value));else if(G==="ArrowUp")O.preventDefault(),h.value>0&&(h.value-=1,ke(k.value[h.value],d.value));else if(G==="Enter"){O.preventDefault();const K=D.value[h.value];K&&re(K),v.value?.blur()}else G==="Escape"?(O.preventDefault(),Le()):G==="Backspace"?a.value&&C.value===""&&A.value.length&&(A.value=A.value.slice(0,-1),s.value=[...A.value],l("change",s.value)):G==="Home"?(h.value=0,ke(k.value[0],d.value)):G==="End"?(h.value=D.value.length-1,ke(k.value[h.value],d.value)):G==="Tab"&&Le()},Ce=()=>{o.value||(y.value=!0)},kt=()=>{y.value=!1,C.value=""},Ie=O=>{O.key==="Escape"&&p.value&&Le()},xt=O=>{const G=O.target;c.value?.contains(G)||u.value?.contains(G)||Le()},ot=O=>{p.value&&d.value&&!d.value.contains(O.target)&&J()},mt=()=>{p.value&&J()},Ue=()=>{p.value&&J()};e.watch(()=>n.options,O=>{O?.length&&(g.value=[...O],We())},{immediate:!0});async function We(){if(a.value)Array.isArray(s.value)?A.value=[...s.value]:(A.value=s.value==null?[]:[s.value],s.value=[...A.value]),n.data&&A.value.length&&(await Se(A.value),await e.nextTick());else{if(Array.isArray(s.value)){const O=s.value[0]??null;s.value=O??null}s.value!=null&&(f.value=await De(s.value)),ae(f.value??null)}}e.watch(s,()=>{We()}),e.onMounted(async()=>{addEventListener("keydown",Ie),addEventListener("scroll",ot,!0),addEventListener("resize",mt),document.addEventListener("click",xt,!0),i.value&&z(i.value).addEventListener("scroll",Ue,!0),n.options?.length&&!n.data?g.value=[...n.options]:n.data&&(g.value=await oe("")),await We(),It.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",Ie),removeEventListener("scroll",ot,!0),removeEventListener("resize",mt),document.removeEventListener("click",xt,!0),i.value&&z(i.value).removeEventListener("scroll",Ue,!0)});const He=e.ref(!1),st=e.ref({}),sn=e.ref([]),lt=e.ref(null);async function Un(){if(!(!n.add?.token||lt?.value.validate()))try{const G=n.add.api??`/api/table/${n.add.token}`,K=await fetch(G,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(st.value)}),le=await K.json().catch(()=>({})),be=le?.error||le?.message,we=Number(le?.code)>=400;if(!K.ok||we){pe.notify({title:"Помилка",type:"error",message:be||`Код помилки: ${le?.code||K.status}`});return}const ve=le?.id;if(!ve){pe.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}if(!n.options?.length&&n.data){const Be=await fetch(`${n.api??`/api/suggest/${n.data}`}?val=${ve}`).then(Me=>Me.json());f.value=Be[0],g.value.push(Be[0]),s.value=ve}He.value=!1,pe.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(G){pe.notify({title:"Помилка",type:"error",message:G?.message||"Не вдалося створити обʼєкт."})}}async function Lt(){if(!n.add)return null;const O=await fetch(`/api/template/form/${n.add.form}`).then(G=>G.json());return sn.value=O.schema,He.value=!0,null}function cn(O,G=200){let K;return(...le)=>{K&&clearTimeout(K),K=window.setTimeout(()=>O(...le),G)}}const dn=cn(async O=>{g.value=await oe(O)},200);e.watch(C,O=>{n.data&&dn(O.trim())}),e.watch(()=>n.options,O=>{!n.data&&O?.length&&(g.value=[...O],We())},{immediate:!0}),e.watch(()=>n.parent??n.parentValue,()=>{n.data&&xe()});const It=e.ref(!0);return e.watch(ie,async()=>{if(n.data&&(It.value||(a.value?(A.value=[],s.value=[],l("change",[])):(f.value=null,s.value=null,l("change",null))),await xe(),n.auto===1&&ie.value&&g.value.length>0)){const O=g.value[0];O&&re(O)}}),(O,G)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(pe.VsModal),{visible:He.value,"onUpdate:visible":G[1]||(G[1]=K=>He.value=K),class:"z-[1000]",title:"Додати",buttonText:"Додати",onDone:Un,teleport:r.teleport},{default:e.withCtx(()=>[e.createVNode(Ze,{schema:sn.value,modelValue:st.value,"onUpdate:modelValue":G[0]||(G[0]=K=>st.value=K),ref_key:"addForm",ref:lt},null,8,["schema","modelValue"])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:G[5]||(G[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[G[6]||(G[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),G[7]||(G[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createElementVNode("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",o.value?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":p.value,"aria-haspopup":"listbox",onKeydown:te,onClick:j,"data-focus":p.value||y.value?"true":"false",ref_key:"triggerRef",ref:i},[e.createElementVNode("div",Ao,[a.value?(e.openBlock(),e.createElementBlock("div",Fo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.value,K=>(e.openBlock(),e.createElementBlock("div",{class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full",key:K.id},[e.createElementVNode("div",No,[Q(K)?(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:K?.color})},null,4)):e.createCommentVNode("",!0),!N.value&&ge(K)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(vn),style:e.normalizeStyle(_e(K)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(q(K)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:U(K)},[N.value?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:H(K)},null,8,Mo)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(K.text),1)],64))],8,Do)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(le=>B(K.id),["stop"])},[e.createVNode(e.unref(P.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,To)]))),128)),e.createElementVNode("div",Lo,[!o.value&&r.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:v,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.value.length?" ":V.value,"onUpdate:modelValue":G[2]||(G[2]=K=>C.value=K),onFocus:Ce,onBlur:kt,onKeydown:fe},null,40,Io)),[[e.vModelText,C.value]]):e.createCommentVNode("",!0)])])):!a.value&&_.value&&C.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate text-gray-900 absolute inset-x-0 pl-2 flex items-center gap-1 min-w-0"]),title:_.value},[Q(f.value)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:f.value?.color})},null,4)):e.createCommentVNode("",!0),!N.value&&ge(f.value)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(vn),style:e.normalizeStyle(_e(f.value)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(q(f.value)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),N.value?(e.openBlock(),e.createElementBlock("span",{key:2,class:"truncate flex-1 min-w-0",innerHTML:H(f.value)},null,8,zo)):(e.openBlock(),e.createElementBlock("span",Ro,e.toDisplayString(f.value?.text),1))],8,Oo)):e.createCommentVNode("",!0),a.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Po,[!o.value&&r.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:v,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:_.value?" ":V.value,"onUpdate:modelValue":G[3]||(G[3]=K=>C.value=K),onFocus:Ce,onBlur:kt,onKeydown:fe},null,40,jo)),[[e.vModelText,C.value]]):e.createCommentVNode("",!0)]))]),e.createElementVNode("div",Uo,[S.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:o.value,onClick:e.withModifiers(Y,["stop"])},[e.createVNode(e.unref(P.X),{class:"h-4 w-4"})],8,Ho)):e.createCommentVNode("",!0),S.value?(e.openBlock(),e.createElementBlock("div",qo)):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.value,onClick:G[4]||(G[4]=e.withModifiers(K=>ft(),["stop"])),title:p.value?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(P.ChevronDown),{class:"h-4 w-4"})],8,Ko)])],42,$o),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[p.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:u,class:e.normalizeClass(["fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]"]),style:e.normalizeStyle(w.value),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:w.value.maxHeight||"300px"}),ref_key:"listRef",ref:d},[D.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(D.value,(K,le)=>(e.openBlock(),e.createElementBlock("div",{key:K.id,ref_for:!0,ref:be=>k.value[le]=be,class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",E(K.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",h.value===le&&!E(K.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":E(K.id)?"true":"false",role:"option",tabindex:"-1",onClick:be=>ye(K)},[Q(K)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:K?.color})},null,4)):e.createCommentVNode("",!0),!N.value&&ge(K)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(vn),style:e.normalizeStyle(_e(K)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(q(K)),{class:"w-full h-full",focusable:"false"}))],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["leading-[19px]",h.value===K.id?"text-white":"",(h.value===le,"")])},[N.value?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:H(K)},null,8,Wo)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(K.text),1)],64))],2)],10,Go))),128)):(e.openBlock(),e.createElementBlock("div",Yo," No options "))],4)],4)):e.createCommentVNode("",!0)]))],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:Lt,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(P.Plus),{class:"h-4 w-4"}),G[8]||(G[8]=e.createElementVNode("span",null,"Додати",-1))],8,Zo)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-5b8f243f"]]),Xo=["placeholder","disabled"],Qn=e.defineComponent({__name:"vs-input-textarea",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,{inputClass:n}=Ne(t.style),l=e.useModel(r,"modelValue"),a=e.computed(()=>!!t.disabled),o=e.computed(()=>t.placeholder??"");function s(){typeof l.value=="string"&&(l.value=l.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),placeholder:o.value,disabled:a.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,Xo)),[[e.vModelText,l.value]])}}),er=e.defineComponent({__name:"vs-input-richtext",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},format:{default:"html"},richtextProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>Am)),n=r,{inputClass:l}=Ne(n.style),a=e.useModel(r,"modelValue"),o=e.computed(()=>!!n.disabled),s=e.computed(()=>n.placeholder??""),c=e.computed(()=>({height:"300px",format:n.format,...n.richtextProps}));return(i,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full",[r.customClass,e.unref(l)]]),style:e.normalizeStyle(o.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=u=>a.value=u),placeholder:s.value},c.value),null,16,["modelValue","placeholder"])],6))}}),Jo={},Qo={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function es(r,t){return e.openBlock(),e.createElementBlock("svg",Qo,[...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 ts=ue(Jo,[["render",es]]),ns={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},rs={key:0,class:"flex flex-col gap-2 !p-4 border-b border-gray-200 sm:flex-row sm:items-center sm:justify-between bg-gray-50"},ls={key:0,class:"relative w-full"},as={class:"flex flex-nowrap items-center justify-end gap-2 w-full overflow-x-auto"},os={class:"w-full overflow-x-auto"},ss={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},is={class:"bg-gray-50"},cs={class:"border-b border-gray-200"},ds={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},us=["onClick"],ps={key:0,class:"text-gray-400"},fs={key:0,colspan:"100%",class:"text-center"},ms={class:"w-full"},hs={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},gs=["onDragstart","onDragover","onDrop"],ys={class:"px-4 py-3 text-center align-middle"},bs={class:"flex items-center justify-center"},ks=["innerHTML"],xs={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},ws={key:0},vs=["src"],_s={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Cs={key:1,class:"flex items-center justify-center"},Es={key:2,class:"text-sm font-medium text-gray-900"},Bs={class:"px-4 py-3 text-right whitespace-nowrap"},Vs={class:"flex items-center justify-end gap-2"},Ss=["onClick"],$s=["onClick"],As={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},tr=e.defineComponent({__name:"vs-input-datatable",props:e.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useSlots(),l=j=>t.actions===void 0?!0:t.actions.includes(j),a=["search","import","export","add"],o=e.computed(()=>a.some(j=>l(j))),s=e.useModel(r,"modelValue"),c=e.ref({}),i=e.ref(""),d=e.ref(null),u=e.ref("asc"),p=e.computed(()=>{const j=s.value??[],Y=i.value?j.filter(re=>y.value?.some(ye=>{const ke=ye.key||ye.name;if(!ke)return!1;const z=re[ke];return z?Array.isArray(z)?z.join(", ").toLowerCase().includes(i.value.toLowerCase()):String(z).toLowerCase().includes(i.value.toLowerCase()):!1})):j;if(!d.value)return Y;const B=d.value,W=[...Y].sort((re,ye)=>{const ke=ae(re?.[B]),z=ae(ye?.[B]);return typeof ke=="number"&&typeof z=="number"?ke-z:String(ke).localeCompare(String(z))});return u.value==="asc"?W:W.reverse()}),y=e.computed(()=>(t.colModel??[]).filter(j=>!j.tableHidden)),f=e.ref(null),g=e.ref(null),h=e.ref(null),k=j=>{f.value=j},C=j=>{g.value=j},v=j=>{if(f.value===null||f.value===j){f.value=null,g.value=null;return}const Y=[...s.value],[B]=Y.splice(f.value,1);Y.splice(j,0,B),s.value=Y,f.value=null,g.value=null},x=()=>{h.value&&h.value.click()},w=j=>{const Y=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],B=j.toLowerCase();return Y.some(W=>B.endsWith(W))},A=j=>{const B=j.target.files?.[0];if(!B)return;const W=new FileReader;W.onload=re=>{try{const ye=re.target?.result;if(typeof ye=="string"){const ke=JSON.parse(ye);Array.isArray(ke)&&s.value.push(...ke)}}catch(ye){console.error("Error parsing file:",ye)}},W.readAsText(B)},I=()=>{const j=JSON.stringify(s.value,null,2),Y=new Blob([j],{type:"application/json"}),B=URL.createObjectURL(Y),W=document.createElement("a");W.href=B,W.download="data.json",W.click(),URL.revokeObjectURL(B)},V=new Set(["autocomplete","select","radio","checkbox","combobox"]),_=new Map,S=(j,Y)=>{const B=`/api/suggest/${j}`,W=B.includes("?")?"&":"?",re=Y?`&val=${Y}`:"";return`${B}${W}json=1${re}`},E=j=>j==null||j===""?null:typeof j=="object"?j?.id!==void 0&&j.id!==null&&j.id!==""?j.id:null:j,D=j=>{const Y=new Set;return Array.isArray(s.value)&&s.value.forEach(B=>{const W=B?.[j];if(W==null||W==="")return;if(Array.isArray(W)){W.forEach(ye=>{const ke=E(ye);ke!==null&&Y.add(ke)});return}const re=E(W);re!==null&&Y.add(re)}),Y},T=async()=>{if(!t.colModel?.length)return;const j=t.colModel.filter(Y=>Y.data&&V.has(Y.type?.toLowerCase()||""));j.length&&await Promise.all(j.map(async Y=>{const B=Y.key||Y.name;if(!B)return;const W=D(B),re=Array.from(W).map(z=>String(z)).sort(),ye=re.join(",");if(!re.length||_.get(B)===ye)return;_.set(B,ye);const ke=re.map(encodeURIComponent).join(",");try{const J=await(await fetch(S(Y.data,ke))).json();c.value[B]=J?.data??J}catch(z){console.error("Failed to fetch column values",z)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{T()},{immediate:!0,deep:!0});const L=e.ref(""),$=e.ref(!1);let M="edit",N=0;const H=j=>(j?.format||j?.type||"").toString().toLowerCase(),U=e.computed(()=>t.colModel?.filter(j=>H(j)!=="slot").map(j=>{const{slot:Y,...B}=j;return B})??[]),q=e.ref({}),Q=e.ref({}),_e=j=>typeof j!="string"?!1:!!n[j],ge=(j,Y)=>Y?Y.split(".").reduce((B,W)=>B==null?B:B[W.trim()],j):j,Z=(j,Y)=>typeof j!="string"?"":j.replace(/{{\s*([^}]+)\s*}}/g,(B,W)=>{const re=ge(Y,W.trim());return re??""}),ae=j=>{if(j==null||j==="")return"";if(typeof j=="number")return j;if(typeof j=="boolean")return j?1:0;if(typeof j=="string")return j.toLowerCase();if(Array.isArray(j))return j.map(Y=>ae(Y)).join(", ");if(typeof j=="object"){if(j.text!==void 0)return String(j.text).toLowerCase();if(j.label!==void 0)return String(j.label).toLowerCase();if(j.id!==void 0)return String(j.id).toLowerCase()}return String(j).toLowerCase()},ie=j=>{const Y=j.key||j.name;if(Y){if(d.value===Y){u.value=u.value==="asc"?"desc":"asc";return}d.value=Y,u.value="asc"}};async function oe(){L.value="Додати",$.value=!0,M="add",q.value={}}function xe(j,Y){if(!j?.length)return null;const B=typeof Y=="object"?Y?.id:Y;return B==null||B===""?null:j.find(W=>W?.id?.toString()===B.toString())?.text??null}function De(j){return j==null||j===""?"-":Array.isArray(j)?j.map(Y=>typeof Y=="object"?Y?.text??Y?.id??"-":Y).join(", "):typeof j=="object"?j?.text??j?.id??"-":j}function Se(j,Y){const B=Y.key||Y.name,W=j?.[B],re=c.value[B];if(!W)return"-";if(Array.isArray(W)){const ke=W.map(z=>xe(re,z)).filter(Boolean);return ke.length?ke.join(", "):De(W)}const ye=xe(re,W);return ye||De(W)}async function Je(j,Y){L.value="Редагувати",$.value=!0,M="edit",N=Y,q.value={...j}}function Qe(){const j=Q.value.validate();if(j){pe.notify({type:"warning",title:"Помилка валідації",message:Object.entries(j).map(([Y,B])=>`${Y}: ${B}`).join(`
|
|
2
|
+
`)});return}M==="add"?Array.isArray(s.value)?s.value=[...s.value,q.value]:s.value=[q.value]:s.value=s.value.map((Y,B)=>B===N?q.value:Y),$.value=!1}function Le(j){s.value=s.value.filter((Y,B)=>B!==j)}function ft(){$.value=!1}return(j,Y)=>(e.openBlock(),e.createElementBlock("div",ns,[o.value?(e.openBlock(),e.createElementBlock("div",rs,[l("search")?(e.openBlock(),e.createElementBlock("div",ls,[e.createVNode(e.unref(P.Search),{class:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"}),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":Y[0]||(Y[0]=B=>i.value=B),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",as,[l("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:h,onChange:A,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),l("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:x,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(P.Upload),{class:"h-4 w-4 text-gray-700"}),Y[4]||(Y[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),l("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:I,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(P.Download),{class:"h-4 w-4 text-gray-700"}),Y[5]||(Y[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),l("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:oe,type:"button",class:"inline-flex items-center gap-2 rounded-md bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-600 transition-colors"},[e.createVNode(e.unref(P.Plus),{class:"h-4 w-4 text-white"}),Y[6]||(Y[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",os,[e.createElementVNode("table",ss,[e.createElementVNode("thead",is,[e.createElementVNode("tr",cs,[e.createElementVNode("th",ds,[e.createVNode(e.unref(P.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,B=>(e.openBlock(),e.createElementBlock("th",{key:B.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:W=>ie(B),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(B.ua||B.label),1),d.value===(B.key||B.name)?(e.openBlock(),e.createElementBlock("span",ps,e.toDisplayString(u.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,us)]))),128)),Y[7]||(Y[7]=e.createElementVNode("th",{class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 text-center w-[1%] whitespace-nowrap"}," Дії ",-1))])]),e.createElementVNode("tbody",{class:e.normalizeClass(["divide-y divide-gray-200",{"[&_tr:last-child]:border-0":!g.value}])},[p.value.length===0?(e.openBlock(),e.createElementBlock("td",fs,[e.createElementVNode("div",ms,[e.createElementVNode("div",hs,[e.createVNode(ts,{class:"w-48 mx-auto"}),Y[8]||(Y[8]=e.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[e.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"Нічого не знайдено"),e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,(B,W)=>(e.openBlock(),e.createElementBlock("tr",{key:B.id,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":f.value===W,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":g.value===W}]),draggable:"true",onDragstart:re=>k(W),onDragover:e.withModifiers(re=>C(W),["prevent"]),onDrop:re=>v(W)},[e.createElementVNode("td",ys,[e.createElementVNode("div",bs,[e.createVNode(e.unref(P.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,re=>(e.openBlock(),e.createElementBlock("td",{key:re.key,class:"px-4 py-3 align-middle"},[H(re)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[_e(re.slot)?e.renderSlot(j.$slots,re.slot,{key:0,row:B,value:B[re.key],column:re}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:Z(re.slot,B)},null,8,ks))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[H(re)==="file"?(e.openBlock(),e.createElementBlock("div",xs,[w(Se(B,re))?(e.openBlock(),e.createElementBlock("div",ws,[e.createElementVNode("img",{src:Se(B,re),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,vs)])):(e.openBlock(),e.createElementBlock("div",_s,[e.createVNode(e.unref(P.FileText),{class:"h-4 w-4 min-w-4"})]))])):H(re)==="color"?(e.openBlock(),e.createElementBlock("div",Cs,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:Se(B,re)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Es,e.toDisplayString(Se(B,re)),1))],64))]))),128)),e.createElementVNode("td",Bs,[e.createElementVNode("div",Vs,[e.createElementVNode("button",{onClick:re=>Je(B,W),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(P.Pencil),{class:"h-4 w-4"})],8,Ss),e.createElementVNode("button",{onClick:re=>Le(W),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(P.Trash2),{class:"h-4 w-4"})],8,$s)])])],42,gs))),128))],2)])]),e.createVNode(e.unref(pe.VsModal),{visible:$.value,title:L.value,size:"lg",onClose:ft,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(Ze,{schema:U.value,values:q.value,"onUpdate:values":Y[1]||(Y[1]=B=>q.value=B),form:Q.value,"onUpdate:form":Y[2]||(Y[2]=B=>Q.value=B)},null,8,["schema","values","form"]),e.createElementVNode("div",As,[e.createElementVNode("button",{type:"button",onClick:Y[3]||(Y[3]=B=>$.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:Qe,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"])]))}}),Fs={},Ns={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 Ds(r,t){return e.openBlock(),e.createElementBlock("svg",Ns,[...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 Ms=ue(Fs,[["render",Ds]]),Ts={},Ls={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 Is(r,t){return e.openBlock(),e.createElementBlock("svg",Ls,[...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 Os=ue(Ts,[["render",Is]]),zs={},Rs={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 Ps(r,t){return e.openBlock(),e.createElementBlock("svg",Rs,[...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 js=ue(zs,[["render",Ps]]),Us={class:"bg-white/30 p-1 rounded-md shadow w-fit"},Hs={class:"flex gap-2"},qs=["onClick","title"],Ks=["src"],Gs=e.defineComponent({__name:"map-layers",props:{basemaps:{}},emits:["onLayerChange"],setup(r,{emit:t}){const n=r,l=e.ref(Object.keys(n.basemaps)[0]),a=t;function o(i){a("onLayerChange",i),l.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(([p,y])=>{u=u.replace(new RegExp(p,"gi"),String(y))}),u}return(i,d)=>(e.openBlock(),e.createElementBlock("div",Us,[e.createElementVNode("div",Hs,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.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":l.value===p}]),onClick:y=>o(p),title:u.name||p,role:"button",tabindex:"0"},[e.createElementVNode("img",{src:c(u),alt:"",class:"w-10 h-10 object-cover"},null,8,Ks)],10,qs))),128))])]))}}),Ws={class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},Ys={key:0,class:"vs-select__options absolute z-50 mt-1 w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm"},Zs=["onClick"],Xs={class:"relative flex-1 min-w-[140px]"},Js=["placeholder"],Qs={type:"submit",class:"absolute inset-y-0 right-2 flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},ei="https://data.softpro.ua/api-user/gis-url-proxy",ti="https://geo.rv.ua/api-user/dzk.api",ni=ue(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(r,{emit:t}){const n=r,l=t,a=["here","xy","parcel"],o=e.computed(()=>{const w=n.config?.tools?.filter(A=>a.includes(A));return w&&w.length?w:a}),s=e.computed(()=>n.config?.placeholder?.trim()||"Пошук…"),c=e.ref(o.value[0]??a[0]);e.watch(o,w=>{w.includes(c.value)||(c.value=w[0])});const i=e.ref(""),d=e.ref(!1),u=e.ref(null);e.watch(c,()=>{i.value="",d.value=!1});function p(w){c.value=w}function y(w){if(!d.value)return;const A=u.value;A&&!A.contains(w.target)&&(d.value=!1)}e.onMounted(()=>{window.addEventListener("click",y,!0)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",y,!0)});function f(w){return w==="xy"?"Координати":w==="parcel"?"Кадастр":"Адреси"}function g(w){const A=w.replace(/[,]+/g," ").trim();if(!A)return null;const I=A.split(/\s+/).filter(Boolean);if(I.length<2)return null;const V=I.slice(0,2).map(Number);if(!V.every($=>Number.isFinite($)))return null;const[_,S]=V;let E=_,D=S;const T=$=>Math.abs($)<=90,L=$=>Math.abs($)<=180;if(!T(E)||!L(D))if(T(D)&&L(E))E=S,D=_;else return null;return{lat:E,lng:D}}function h(w){return(w?.items||[]).map((I,V)=>({id:String(I?.id??V),title:I?.title||I?.address?.label||"Знайдений обʼєкт",lat:Number(I?.position?.lat),lng:Number(I?.position?.lng)})).filter(I=>Number.isFinite(I.lat)&&Number.isFinite(I.lng))}function k(w){const A=w?.result||w?.data||w;if(!A)return[];const I=A.geom_centroid;if(!I||!Array.isArray(I.coordinates))return[];const[V,_]=I.coordinates;return!Number.isFinite(_)||!Number.isFinite(V)?[]:[{id:"parcel",title:A.cadnum||A.cad_num||"Земельна ділянка",lat:_,lng:V}]}function C(w){const I=w.replace(/\s+/g,"").split(":");if(I.length!==4)return!1;const V=[10,2,3,4];return I.every((_,S)=>_.length===V[S]&&/^\d+$/.test(_))}function v(w){l("goToCoordinates",[w.lat,w.lng])}async function x(){const w=i.value.trim();if(w){if(c.value==="xy"){const A=g(w);if(!A){pe.notify({type:"warning",title:"Пошук координат",message:"Не знайдено або невірний формат координат"});return}v(A),i.value="";return}try{const A=new URL(c.value==="here"?ei:ti);if(c.value==="here")A.searchParams.set("searchtext",w);else{if(!C(w)){pe.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}A.searchParams.set("cad_num",w)}const I=await fetch(A.toString());if(!I.ok)throw new Error(`HTTP ${I.status}`);const V=await I.json(),_=c.value==="here"?h(V):k(V);if(!_.length)pe.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const S=_[0];v(S),i.value=""}}catch(A){const I=A?.message||"Помилка пошуку";pe.notify({type:"error",title:"Пошук",message:I})}}}return(w,A)=>(e.openBlock(),e.createElementBlock("div",Ws,[e.createElementVNode("form",{class:"flex gap-2",onSubmit:e.withModifiers(x,["prevent"])},[o.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:u,class:"relative search-type w-[140px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:A[0]||(A[0]=I=>d.value=!d.value)},[e.createElementVNode("span",null,e.toDisplayString(f(c.value)),1),e.createVNode(e.unref(P.ChevronDown),{class:e.normalizeClass(["h-4 w-4 text-gray-500 transition-transform",{"rotate-180":d.value}])},null,8,["class"])]),d.value?(e.openBlock(),e.createElementBlock("div",Ys,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,I=>(e.openBlock(),e.createElementBlock("li",{key:I,class:"px-3 py-2 cursor-pointer hover:bg-gray-100",onClick:V=>p(I)},e.toDisplayString(f(I)),9,Zs))),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",Xs,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":A[1]||(A[1]=I=>i.value=I),placeholder:s.value,type:"text",class:"vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid !pr-8 py-1.5 pl-3 text-sm"},null,8,Js),[[e.vModelText,i.value,void 0,{trim:!0}]]),e.createElementVNode("button",Qs,[e.createVNode(e.unref(P.Search),{class:"h-4 w-4"})])])],32)]))}}),[["__scopeId","data-v-1241d5df"]]),ht=1e-10,Rt=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,ri=/^[+-]?\d+(?:\.\d+)?$/;function li(r,t,n){const l=r.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(l.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(l.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const a=[],o=[];if(l.forEach((d,u)=>{const p=u+1,y=t==="decimal"?ai(d,p,n):oi(d,p,n);if(!y.ok){a.push(...y.errors);return}const f=o[o.length-1];if(f&&rr(f,y.point)){a.push({line:p,message:"Послідовні точки не повинні дублюватися."});return}o.push(y.point)}),a.length)return{ok:!1,errors:a};if(new Set(o.map(si)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const c=[...o];let i=!1;return rr(c[0],c[c.length-1])||(c.push(c[0]),i=!0),ii(c)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:c,wasClosedAutomatically:i}}function ai(r,t,n){const l=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(r))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const a=r.split(/[\s,;]+/).filter(Boolean);if(a.length<2)return{ok:!1,errors:[{line:t,message:"Кожен рядок має містити дві координати."}]};if(a.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(!a.every(d=>ri.test(d)))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const o=Number(a[0]),s=Number(a[1]);if(!Number.isFinite(o)||!Number.isFinite(s))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const c=n==="lat-lon"?o:s,i=n==="lat-lon"?s:o;return(c<-90||c>90)&&l.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(i<-180||i>180)&&l.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),l.length?{ok:!1,errors:l}:{ok:!0,point:[i,c]}}function oi(r,t,n){Rt.lastIndex=0;const l=[...r.matchAll(Rt)];if(l.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(l.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Rt.lastIndex=0,r.replace(Rt," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const o=nr(l[0],t,n==="lat-lon"?"lat":"lon"),s=nr(l[1],t,n==="lat-lon"?"lon":"lat"),c=[];if(o.ok||c.push(o.error),s.ok||c.push(s.error),c.length)return{ok:!1,errors:c};const i=n==="lat-lon"?o.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:o.value,i]}}function nr(r,t,n){const l=Number(r[1]),a=Number(r[2]),o=Number(r[3]),s=String(r[4]).toUpperCase();if(!Number.isFinite(l)||!Number.isFinite(a)||!Number.isFinite(o))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(n==="lat"&&!(s==="N"||s==="S")||n==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:n==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(a<0||a>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(o<0||o>59)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..59."}};const d=Math.abs(l),u=n==="lat"?90:180;if(d>u)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===u&&(a!==0||o!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const p=d+a/60+o/3600;return{ok:!0,value:s==="S"||s==="W"?-p:p}}function si(r){return`${r[0].toFixed(12)}:${r[1].toFixed(12)}`}function rr(r,t){return Math.abs(r[0]-t[0])<ht&&Math.abs(r[1]-t[1])<ht}function ii(r){if(r.length<4)return!1;for(let t=0;t<r.length-1;t+=1){const n=r[t],l=r[t+1];for(let a=t+1;a<r.length-1;a+=1){if(Math.abs(t-a)<=1||t===0&&a===r.length-2)continue;const o=r[a],s=r[a+1];if(ci(n,l,o,s))return!0}}return!1}function ci(r,t,n,l){const a=Pt(r,t,n),o=Pt(r,t,l),s=Pt(n,l,r),c=Pt(n,l,t);return!!(a!==o&&s!==c||a===0&&jt(r,n,t)||o===0&&jt(r,l,t)||s===0&&jt(n,r,l)||c===0&&jt(n,t,l))}function Pt(r,t,n){const l=(t[1]-r[1])*(n[0]-t[0])-(t[0]-r[0])*(n[1]-t[1]);return Math.abs(l)<ht?0:l>0?1:2}function jt(r,t,n){return t[0]<=Math.max(r[0],n[0])+ht&&t[0]+ht>=Math.min(r[0],n[0])&&t[1]<=Math.max(r[1],n[1])+ht&&t[1]+ht>=Math.min(r[1],n[1])}const di={key:0,class:"absolute top-4 left-4 z-[1000] w-[calc(100%-20px)] sm:w-[350px]"},ui={key:1,class:"form-geom__panel flex gap-1 items-start mt-2"},pi={class:"flex items-center gap-1"},fi=["disabled"],mi={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"},hi=["disabled"],gi=["disabled"],yi={class:"mt-4 flex justify-end gap-2"},bi=["disabled"],ki={class:"absolute top-4 right-4 z-[1000]"},xi={class:"flex flex-col gap-[2px]"},wi=["disabled"],vi=["disabled"],_i=["disabled"],Ci=["disabled"],Ei={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"},Bi={class:"space-y-0.5"},Vi={class:"text-gray-500"},Si={class:"text-gray-900 text-right break-all"},$i={class:"absolute left-4 bottom-[36px] z-[1000]"},Ai={class:"flex flex-col gap-2"},Fi={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]"},Ni={class:"flex flex-col gap-1"},Di=["checked","disabled","onChange"],Mi={class:"text-gray-700 text-xs font-medium"},Ti={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"},Li={key:0,class:"form-geom__feature flex items-center text-xs transition-all gap-2 w-full px-2 pb-1"},Ii={class:"mr-auto flex items-center gap-2 min-w-0 relative"},Oi={class:"shrink-0"},zi={class:"font-bold"},Ri={class:"flex items-center"},Pi={class:"text-xs mr-2"},ji={key:0,class:"text-xs mr-2"},Ui={key:1,class:"text-xs mr-2"},Hi=["disabled"],qi=["disabled"],Ut="__vs_form_maplibre_loader__",Ht="vs-global-bounds-src",qt="vs-global-bounds-line",lr=ue(e.defineComponent({__name:"vs-input-map",props:{tools:{},handleZoom:{type:Boolean,default:!0},ctrlZoom:{type:Boolean,default:!0},geomType:{default:()=>[]},prefix:{default:""},katottg:{default:""},layers:{default:()=>[]},bounds:{},api:{},center:{default:void 0},zoom:{default:void 0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue","valueSelected"],setup(r,{emit:t}){const n=r,l=t,a=e.useAttrs(),o=e.computed(()=>!!n.disabled),s=e.ref(!1),c=e.ref(null),i=e.ref(0),d=e.ref(""),u=e.ref(null),p=e.getCurrentInstance(),y=p?.appContext?.config?.globalProperties?.$settings??{},f=y?.map??{},g=p?.vnode?.props??{};function h(m){return Object.prototype.hasOwnProperty.call(g,m)||Object.prototype.hasOwnProperty.call(g,m.replace(/[A-Z]/g,b=>`-${b.toLowerCase()}`))}const k=Array.isArray(f.center)&&f.center.length===2?f.center:Array.isArray(y.center)&&y.center.length===2?y.center:[30,50],C=typeof f.zoom=="number"?f.zoom:typeof y.zoom=="number"?y.zoom:typeof y.defaultZoom=="number"?y.defaultZoom:10,v=e.computed(()=>h("center")?n.center:f.center??n.center),x=e.computed(()=>h("zoom")?n.zoom:f.zoom??n.zoom),w=e.computed(()=>h("katottg")?String(n.katottg??""):String(f.katottg??n.katottg??"")),A=e.computed(()=>h("layers")?n.layers??[]:f.layers??n.layers??[]),I=e.computed(()=>h("bounds")?n.bounds:f.bounds??n.bounds),V=e.ref(Array.isArray(v.value)&&v.value.length===2?[...v.value]:k),_=e.ref(typeof x.value=="number"?x.value:C),S=e.ref(n.modelValue),E=e.ref(null),D=e.ref(null),T=e.ref([]),L=e.ref(!1),$=e.ref(!1),M=e.ref([]);let N=e.reactive({coordinates:"",format:"decimal",order:"lat-lon"});const H={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
|
|
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 U=!1;const q=e.reactive({}),Q=e.ref([]),_e=e.computed(()=>Q.value.map(m=>q[m]).filter(Boolean)),ge=e.ref(null),Z=e.computed(()=>ge.value?.entries??[]),ae=e.computed(()=>{if(ge.value)return{left:`${ge.value.point.x+12}px`,top:`${ge.value.point.y+12}px`}}),ie=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const m=a?.tools;return Array.isArray(m)?m.map(b=>String(b)):typeof m=="string"?m.split(",").map(b=>b.trim()).filter(Boolean):[]}),oe=e.computed(()=>{const m={search:!1,import:!1,importCoordinates:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1};if(!ie.value.length)return{...m,import:!0,importCoordinates:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const b=new Set(ie.value.map(F=>F.toLowerCase()));return{search:b.has("search"),import:b.has("import"),importCoordinates:b.has("import-coordinates")||b.has("import_coordinates")||b.has("importcoordinates"),export:b.has("export"),point:b.has("point"),line:b.has("line"),polygon:b.has("polygon"),rectangle:b.has("rectangle")}});function xe(m){if(typeof m!="string"||!m.trim())return"";if(/^https?:\/\//i.test(m))return m;const b=window?.location?.origin??"",F=m.replace(/^\/+/,"");return F?b?`${b}/${F}`:`/${F}`:b}function De(){const m=Array.isArray(f.basemaps)&&f.basemaps.length?f.basemaps:y.basemaps;if(Array.isArray(m)&&m.length){const F=m.map((R,X)=>{const ee=String(R?.key??R?.id??R?.name??`b${X}`),se=xe(String(R?.url??""));if(!se)return null;const me=typeof R?.preview=="string"&&R.preview?xe(R.preview):"";return[ee,{...R,url:se,preview:me}]}).filter(R=>Array.isArray(R)&&R.length===2).reduce((R,[X,ee])=>(R[X]=ee,R),{});if(Object.keys(F).length)return F}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 Se=De(),Je=Object.keys(Se),Qe=e.ref(Je.length?Je[0]:"");async function Le(){if(typeof window>"u")return null;const m=window;if(m[Ut])return m[Ut];const b=ee=>{if(Array.from(document.styleSheets).some(Ee=>Ee?.href?.includes(ee)))return;const me=document.createElement("link");me.rel="stylesheet",me.href=ee,document.head.appendChild(me)},F=async()=>{const ee=new Function("u","return import(u)"),se=await ee("https://esm.sh/maplibre-gl@3.6.2"),me=se?.default??se;if(!me)throw new Error("maplibre esm fallback failed");window.maplibregl=me,window.mapboxgl=me;const Ee=await ee("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),Ke=Ee?.default??Ee;if(!Ke)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=Ke},X=(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 F();const ee=window.maplibregl,se=window.MapboxDraw;if(!ee)throw new Error("maplibregl not available after load");if(!se)throw new Error("MapboxDraw not available after load");return{maplibregl:ee,MapboxDraw:se}})().catch(ee=>{throw delete m[Ut],ee});return m[Ut]=X,X}function ft(m){return{version:8,sources:{rasterSource:{type:"raster",tiles:[m],tileSize:256}},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let j=null,Y=null,B=null,W=null,re=null,ye=null,ke=!1,z=!1;function J(){return{onSetup(){const m=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(m),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:m,startPoint:null,hasCoordinates:!1}},onMouseMove(m,b){if(!m.startPoint)return;const[F,R]=m.startPoint,X=b.lngLat.lng,ee=b.lngLat.lat;m.rectangle.setCoordinates([[[F,R],[X,R],[X,ee],[F,ee],[F,R]]])},onClick(m,b){if(!m.startPoint){m.startPoint=[b.lngLat.lng,b.lngLat.lat],m.hasCoordinates=!0,m.rectangle.setCoordinates([[[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat],[b.lngLat.lng,b.lngLat.lat]]]);return}const[F,R]=m.startPoint,X=b.lngLat.lng,ee=b.lngLat.lat;return Math.abs(F-X)>0&&Math.abs(R-ee)>0?(m.rectangle.setCoordinates([[[F,R],[X,R],[X,ee],[F,ee],[F,R]]]),this.map.fire("draw.create",{features:[m.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[m.rectangle.id]})):(this.deleteFeature([m.rectangle.id],{silent:!0}),m.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(m){this.deleteFeature([m.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(m,b,F){if(!m.hasCoordinates)return;const R=b.properties.id===m.rectangle.id;b.properties.active=R?"true":"false",F(b)}}}const te=[{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 fe(){const m=Qe.value;return!m||!Se[m]?.url?"":Se[m].url}function Ce(m,b){return m?.id?String(m.id):m?.url?`${m.url}-${b}`:`layer-${b}`}function kt(m){const b=String(m?.url??"").trim();if(!b)return"";if(/^https?:\/\//i.test(b))return b;const F=window.location?.origin??"",R=b.replace(/^\/+/,"");return`${F}/${R}`}function Ie(m){m&&ge.value?.layerId!==m||(ge.value=null)}function xt(m,b={}){return m.popup===!1?[]:Array.isArray(m.popup)?m.popup.length?m.popup.map(F=>{const R=F?.field||F?.name;if(!R)return null;const X=b[R];return X==null||X===""?null:{key:F.label||R,value:String(X)}}).filter(Boolean):[]:Object.entries(b).slice(0,5).map(([F,R])=>({key:F,value:R==null?"—":String(R)}))}function ot(m){if(!Array.isArray(m))return[];const b=R=>Array.isArray(R)&&R.length>=2&&Number.isFinite(Number(R[0]))&&Number.isFinite(Number(R[1])),F=R=>{if(!R.length)return R;const X=R[0],ee=R[R.length-1];return!ee||X[0]!==ee[0]||X[1]!==ee[1]?[...R,X]:R};if(m.length&&b(m[0])){const R=m.map(X=>[Number(X[0]),Number(X[1])]).filter(b);return R.length?[F(R)]:[]}return m.length&&Array.isArray(m[0])&&b(m[0][0])?m.map(X=>Array.isArray(X)?X.map(ee=>[Number(ee[0]),Number(ee[1])]):[]).filter(X=>X.length).map(F):m.length&&Array.isArray(m[0])&&Array.isArray(m[0][0])&&b(m[0][0][0])?m.flatMap(X=>Array.isArray(X)?X:[]).map(X=>Array.isArray(X)?X.map(ee=>[Number(ee[0]),Number(ee[1])]):[]).filter(X=>X.length).map(F):[]}function mt(m){const b=m.style??{},F=b.color??"#3b82f6";if(!b.colorAttr||!b.colorSet)return F;const R=Object.keys(b.colorSet);if(!R.length)return F;const X=["match",["to-string",["get",b.colorAttr]]];return R.forEach(ee=>{X.push(String(ee),b.colorSet?.[ee]??F)}),X.push(F),X}function Ue(m){if(!B)return;m.handlers.forEach(F=>{try{B.off(F.type,F.layerId,F.handler)}catch{}}),m.handlers=[],[...m.layerIds,...m.boundsIds].forEach(F=>{B.getLayer(F)&&B.removeLayer(F)}),B.getSource(m.sourceId)&&B.removeSource(m.sourceId);const b=`vs-ov-bounds-src-${m.id}`;B.getSource(b)&&B.removeSource(b),Ie(m.id)}function We(m,b){if(!B)return[];const F=`vs-ov-bounds-src-${b}`,R=`vs-ov-bounds-line-${b}`,X=m.bounds??I.value??T.value,ee=ot(X);if(!ee.length)return[];const se={type:"FeatureCollection",features:ee.map(me=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:me}}))};return B.getSource(F)&&B.removeSource(F),B.addSource(F,{type:"geojson",data:se}),B.addLayer({id:R,type:"line",source:F,paint:{"line-color":m.style?.stroke??m.style?.color??"#2563eb","line-width":m.style?.width??2,"line-opacity":m.style?.opacity??.8,"line-dasharray":[2,2]}}),[R]}function He(m){if(!B)return;Ue(m);const b=m.config,F=kt(b);if(!F)return;const R=[],X=[];if(/\.v(?:m)?t(?:\?|$)/i.test(F)||/\.pbf(?:\?|$)/i.test(F)){const me=b.sourceLayer||b.layer||b.service_layer||b.dataset?.layer||b.id;B.addSource(m.sourceId,{type:"vector",tiles:[F]});const Ee=String(b.style?.type??"polygon").toLowerCase(),Ke=mt(b),et=b.style?.opacity??.5;if(Ee==="point"){const at=`vs-ov-point-${m.id}`;B.addLayer({id:at,type:"circle",source:m.sourceId,"source-layer":me,paint:{"circle-color":Ke,"circle-radius":5,"circle-opacity":et}}),R.push(at)}else if(Ee==="polyline"||Ee==="line"){const at=`vs-ov-line-${m.id}`;B.addLayer({id:at,type:"line",source:m.sourceId,"source-layer":me,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":Ke,"line-width":b.style?.width??2,"line-opacity":et}}),R.push(at)}else{const at=`vs-ov-fill-${m.id}`,Ot=`vs-ov-border-${m.id}`;B.addLayer({id:at,type:"fill",source:m.sourceId,"source-layer":me,paint:{"fill-color":Ke,"fill-opacity":et}}),B.addLayer({id:Ot,type:"line",source:m.sourceId,"source-layer":me,paint:{"line-color":b.style?.stroke??b.style?.color??"#2563eb","line-width":b.style?.width??1,"line-opacity":et}}),R.push(at,Ot)}}else{B.addSource(m.sourceId,{type:"raster",tiles:[F],tileSize:256});const me=`vs-ov-raster-${m.id}`;B.addLayer({id:me,type:"raster",source:m.sourceId,paint:{"raster-opacity":b.style?.opacity??1}}),R.push(me)}R.forEach(me=>{const Ee=et=>{if(!et?.features?.length){Ie(m.id);return}const at=et.features[0]?.properties??{},Ot=xt(m.config,at);if(!Ot.length){Ie(m.id);return}ge.value={layerId:m.id,entries:Ot,point:{x:et.point.x,y:et.point.y}}},Ke=()=>Ie(m.id);B.on("mousemove",me,Ee),B.on("mouseleave",me,Ke),X.push({layerId:me,type:"mousemove",handler:Ee},{layerId:me,type:"mouseleave",handler:Ke})}),m.layerIds=R,m.boundsIds=We(m.config,m.id),m.handlers=X;const se=m.visible?"visible":"none";[...m.layerIds,...m.boundsIds].forEach(me=>{B.getLayer(me)&&B.setLayoutProperty(me,"visibility",se)})}function st(){if(!B)return;const b={type:"FeatureCollection",features:ot(I.value??T.value).map(F=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:F}}))};B.getSource(Ht)?B.getSource(Ht).setData(b):B.addSource(Ht,{type:"geojson",data:b}),B.getLayer(qt)||B.addLayer({id:qt,type:"line",source:Ht,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function sn(m){if(!B||o.value)return;const b=q[m];if(!b)return;b.visible=!b.visible;const F=b.visible?"visible":"none";[...b.layerIds,...b.boundsIds].forEach(R=>{B.getLayer(R)&&B.setLayoutProperty(R,"visibility",F)}),lt(),b.visible||Ie(m)}function lt(){if(!B)return;const m=[],b=[],F=[],R=[];Q.value.forEach(se=>{const me=q[se];if(!me)return;const Ee=String(me.config?.url??""),Ke=/\.v(?:m)?t(?:\?|$)/i.test(Ee),et=/\.png(?:\?|$)/i.test(Ee);Ke?F.push(...me.layerIds):et?m.push(...me.layerIds):b.push(...me.layerIds),R.push(...me.boundsIds)}),[...m,...b,...F,...R].forEach(se=>{B.getLayer(se)&&B.moveLayer(se)}),B.getLayer(qt)&&B.moveLayer(qt),(B.getStyle?.()?.layers??[]).map(se=>String(se?.id??"")).filter(se=>se.startsWith("gl-draw-")).forEach(se=>{B.getLayer(se)&&B.moveLayer(se)})}function Un(m){if(!Se[m]||(Qe.value=m,!B))return;const b=fe();if(!b)return;const F=B.getCenter?.(),R=B.getZoom?.(),X=W?.getAll?.();B.setStyle(ft(b)),B.once("style.load",()=>{if(B&&(F&&Number.isFinite(R)&&B.jumpTo({center:[F.lng,F.lat],zoom:R}),st(),Q.value.forEach(ee=>{const se=q[ee];se&&He(se)}),lt(),X?.features?.length&&W))try{X.features.forEach(ee=>W.add(ee)),i.value=X.features.length}catch{i.value=0}})}function Lt(m){return m?m.type==="FeatureCollection"?m.features?.[0]?.geometry??null:m.type==="Feature"?m.geometry??null:m.geom?.type&&Array.isArray(m.geom.coordinates)?{type:m.geom.type,coordinates:m.geom.coordinates}:typeof m.type=="string"&&Array.isArray(m.coordinates)?m:null:null}function cn(m){return{type:"Feature",properties:{},geometry:m}}function dn(m){if(!m)return null;try{return JSON.parse(JSON.stringify(m))}catch{return null}}function It(m){if(!m)return"__null__";try{return JSON.stringify(m)}catch{return"__invalid__"}}function O(m){const b=we(m);if(!b)return null;const[[F,R],[X,ee]]=b;return{lat:(R+ee)/2,lng:(F+X)/2}}function G(m){if(!Array.isArray(m)||m.length<3)return 0;const b=(R,X)=>{const ee=R*2003750834e-2/180,se=Math.log(Math.tan((90+X)*Math.PI/360))/(Math.PI/180);return[ee,se*2003750834e-2/180]};let F=0;for(let R=0;R<m.length-1;R+=1){const[X,ee]=b(Number(m[R][0]),Number(m[R][1])),[se,me]=b(Number(m[R+1][0]),Number(m[R+1][1]));F+=X*me-se*ee}return Math.abs(F/2)/1e6}function K(m){if(!m?.type||!m?.coordinates)return null;if(m.type==="Polygon"){const b=m.coordinates?.[0];return Array.isArray(b)?G(b):null}return m.type==="MultiPolygon"?m.coordinates.reduce((b,F)=>{const R=F?.[0];return Array.isArray(R)?b+G(R):b},0):null}function le(m){if(!m){u.value=null;return}const b=O(m);if(!b){u.value=null;return}u.value={type:String(m.type??"Feature"),center:b,areaKm2:K(m)}}function be(m,b){if(!Array.isArray(m)||!Array.isArray(b)||m.length!==2||b.length!==2)return!1;const F=1e-9;return Math.abs(Number(m[0])-Number(b[0]))<F&&Math.abs(Number(m[1])-Number(b[1]))<F}function we(m){if(!m)return null;let b=1/0,F=1/0,R=-1/0,X=-1/0;const ee=se=>{if(Array.isArray(se)){if(se.length>=2&&Number.isFinite(se[0])&&Number.isFinite(se[1])){const me=Number(se[0]),Ee=Number(se[1]);b=Math.min(b,me),F=Math.min(F,Ee),R=Math.max(R,me),X=Math.max(X,Ee);return}se.forEach(ee)}};return ee(m.coordinates),!Number.isFinite(b)||!Number.isFinite(F)?null:[[b,F],[R,X]]}function ve(m){if(!B||!m)return;const b=we(m);if(!b)return;const[[F,R],[X,ee]]=b;if(F===X&&R===ee){B.easeTo({center:[F,R],zoom:Math.max(_.value,14)});return}B.fitBounds(b,{padding:30,duration:250,maxZoom:18})}function Be(){if(!W){i.value=0;return}const m=W.getAll();i.value=m?.features?.length??0}function Me(){if(!W)return;const m=W.getAll();if(i.value=m?.features?.length??0,!m?.features?.length){re=null,u.value=null,U||(ye="__null__",l("update:modelValue",null));return}const b=dn(m.features[m.features.length-1]?.geometry??null);re=b,le(b),U||(ye=It(b),l("update:modelValue",b))}function Te(){if(!W)return;(W.getAll()?.features||[]).forEach(b=>W.delete(b.id)),Be()}function qe(m){if(!W)return;const b=Lt(m);if(U=!0,Te(),b)try{W.add(cn(b))}catch{}U=!1,re=dn(b),Be(),le(b),b&&(ve(b),o.value||pn())}function Ye(){if(W){if(U=!0,Te(),re)try{W.add(cn(re))}catch{}U=!1,Be(),le(re)}}function it(){if(W){try{W.changeMode("simple_select",{featureIds:[]})}catch{}d.value=""}}function un(m){if(o.value||!W)return;z=!0,it(),d.value=m;const b=m==="marker"?"draw_point":m==="polyline"?"draw_line_string":m==="rectangle"?"draw_rectangle":"draw_polygon";U=!0,Te(),U=!1;try{W.changeMode(b)}catch{d.value=""}finally{requestAnimationFrame(()=>{z=!1})}}function pn(){if(o.value||!W)return;const m=W.getAll();if(m?.features?.length)try{W.changeMode("direct_select",{featureId:m.features[0].id}),d.value="edit"}catch{d.value=""}}function Fm(){o.value||!W||(it(),Te(),ye="__null__",u.value=null,l("update:modelValue",null))}function Nm(){o.value||!re||ve(re)}function Dm(m){B&&B.easeTo({center:[m[1],m[0]],zoom:13,duration:250})}function Mm(){o.value||E.value?.click()}function Tm(){o.value||(L.value=!L.value)}function rl(m){if(!L.value)return;const b=D.value;b&&!b.contains(m.target)&&(L.value=!1)}function Lm(){L.value=!1,Mm()}function Im(){o.value||(M.value=[],L.value=!1,$.value=!0)}function Om(){$.value=!1,M.value=[]}function zm(){if(o.value||!W)return;const m=li(N.coordinates??"",N.format||"decimal",N.order||"lat-lon");if(!m.ok){M.value=m.errors,Rm(m.errors);return}M.value=[],qe({type:"Polygon",coordinates:[m.ring]}),$.value=!1,m.wasClosedAutomatically&&pe.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function Rm(m){if(!m.length)return;const b=5;m.slice(0,b).forEach(F=>{const R=F.line>0?`Рядок ${F.line}`:"Загальна помилка";pe.notify({type:"warning",title:"Імпорт координат",message:`${R} — ${F.message}`})}),m.length>b&&pe.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${m.length-b}`})}function Pm(m){if(o.value||!W)return;L.value=!1;const b=m.target,F=b.files?.[0];if(!F)return;const R=new FileReader;R.onload=()=>{try{const X=JSON.parse(String(R.result)),ee=Lt(X);if(!ee)return;qe(ee)}finally{b.value=""}},R.readAsText(F)}function jm(){if(o.value||!W)return;const m=W.getAll(),b=new Blob([JSON.stringify(m,null,2)],{type:"application/json"}),F=URL.createObjectURL(b),R=document.createElement("a");R.href=F,R.download="data.geojson",R.click(),URL.revokeObjectURL(F)}return e.onMounted(async()=>{if(window.addEventListener("click",rl,!0),!c.value)return;const m=await Le();j=m.maplibregl,Y=m.MapboxDraw;const b=fe();b&&(B=new j.Map({container:c.value,style:ft(b),center:[V.value[0],V.value[1]],zoom:_.value,attributionControl:!1}),B.addControl(new j.NavigationControl({showCompass:!0}),"bottom-right"),B.on("load",()=>{if(!(!Y||!B)){if(W=new Y({displayControlsDefault:!1,modes:{...Y.modes,draw_rectangle:J()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:te}),B.addControl(W),B.on("draw.create",()=>{if(!W)return;const F=W.getAll();if(F.features.length>1){const R=F.features[F.features.length-1];U=!0,F.features.slice(0,-1).forEach(X=>W.delete(X.id)),U=!1,R&&(U=!0,W.add(R),U=!1)}Me(),pn()}),B.on("draw.update",F=>{if(!ke){if(F?.action==="move"){if(ke=!0,Ye(),ke=!1,d.value==="edit"){const R=W?.getAll?.()?.features?.[0];if(R?.id)try{W.changeMode("direct_select",{featureId:R.id})}catch{d.value=""}}return}Me()}}),B.on("draw.delete",()=>{d.value==="marker"||d.value==="polyline"||d.value==="polygon"||d.value==="rectangle"||(Me(),d.value="",it())}),B.on("draw.selectionchange",()=>{if(!(!W||ke)&&d.value!=="edit"&&!(d.value==="marker"||d.value==="polyline"||d.value==="polygon"||d.value==="rectangle")){if(!o.value&&i.value>0){pn();return}try{W.changeMode("simple_select",{featureIds:[]})}catch{}}}),S.value!==void 0){const F=S.value;S.value=void 0,requestAnimationFrame(()=>{W&&qe(F)})}st(),Q.value.forEach(F=>{const R=q[F];R&&He(R)}),lt()}}),B.on("zoomend",()=>{B&&(_.value=B.getZoom())}))}),e.onUnmounted(()=>{window.removeEventListener("click",rl,!0),Object.values(q).forEach(m=>{B&&Ue(m)}),Ie(),B?.remove&&B.remove(),B=null,W=null}),e.watch(()=>n.modelValue,m=>{if(!W){S.value=m;return}const b=Lt(m),F=It(b);if(ye&&F===ye){ye=null;return}ye=null,qe(m)},{deep:!0}),e.watch(()=>A.value,m=>{const b=Array.isArray(m)?m:[],F=[],R=new Set;b.forEach((X,ee)=>{if(!X)return;const se=Ce(X,ee);F.push(se),R.add(se);const me={...X,id:se},Ee=q[se],Ke=Ee?.visible??!!me.visible;Ee&&B&&Ue(Ee),q[se]={id:se,config:me,visible:Ke,sourceId:`vs-ov-src-${se}`,layerIds:[],boundsIds:[],handlers:[]}}),Object.keys(q).forEach(X=>{if(R.has(X))return;const ee=q[X];ee&&B&&Ue(ee),delete q[X]}),Q.value=F,B&&(Q.value.forEach(X=>{const ee=q[X];ee&&He(ee)}),lt())},{immediate:!0,deep:!0}),e.watch(()=>I.value,()=>{B&&(st(),Q.value.forEach(m=>{const b=q[m];b&&He(b)}),lt())},{deep:!0}),e.watch(()=>w.value,async m=>{if(T.value=[],!m){B&&(st(),Q.value.forEach(b=>{const F=q[b];F&&He(F)}),lt());return}try{const b=await fetch(`https://data.gki.com.ua/api-user/atu/${m}`);if(!b?.ok)return;const R=(await b.json())?.geometry?.coordinates;Array.isArray(R)&&R.length&&(T.value=R)}catch(b){console.error("Failed to fetch KATOTTG bounds",b)}finally{if(!B)return;st(),Q.value.forEach(b=>{const F=q[b];F&&He(F)}),lt()}},{immediate:!0}),e.watch(()=>v.value,m=>{if(!Array.isArray(m)||m.length!==2)return;const b=[Number(m[0]),Number(m[1])];if(be(V.value,b)||(V.value=[...b],!B))return;const F=B.getCenter?.();F&&be([F.lng,F.lat],V.value)||B.easeTo({center:[V.value[0],V.value[1]]})},{deep:!0}),e.watch(()=>x.value,m=>{typeof m=="number"&&(_.value=m,B&&B.setZoom(m))}),e.watch(o,m=>{m&&it()}),e.watch(i,m=>{if(m>0){o.value||pn();return}z||it()}),e.watch(s,()=>{setTimeout(()=>{B?.resize&&B.resize()},50)}),(m,b)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!s.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper relative w-full h-[400px]",{fullscreen:s.value}])},[e.createElementVNode("div",{ref_key:"mapContainer",ref:c,class:"w-full h-[calc(100%-28px)]"},null,512),oe.value.search||oe.value.import||oe.value.importCoordinates||oe.value.export?(e.openBlock(),e.createElementBlock("div",di,[oe.value.search?(e.openBlock(),e.createBlock(ni,{key:0,onGoToCoordinates:Dm})):e.createCommentVNode("",!0),oe.value.import||oe.value.importCoordinates||oe.value.export?(e.openBlock(),e.createElementBlock("div",ui,[e.createElementVNode("div",pi,[oe.value.import||oe.value.importCoordinates?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:D,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:Tm,disabled:o.value},[b[7]||(b[7]=e.createTextVNode(" Import ",-1)),e.createVNode(e.unref(P.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition-transform",{"rotate-180":L.value}])},null,8,["class"])],8,fi),L.value?(e.openBlock(),e.createElementBlock("div",mi,[oe.value.import?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100",onClick:Lm}," З файлу ")):e.createCommentVNode("",!0),oe.value.importCoordinates?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100",onClick:Im}," З координат ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),oe.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:jm,disabled:o.value||i.value===0}," Export ",8,hi)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:E,type:"file",onChange:Pm,accept:".json,.geojson",class:"hidden",disabled:o.value},null,40,gi)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(pe.VsModal),{visible:$.value,"onUpdate:visible":b[1]||(b[1]=F=>$.value=F),title:"Імпорт координат полігону",size:"lg",teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(Ze,{schema:H,values:e.unref(N),"onUpdate:values":b[0]||(b[0]=F=>e.isRef(N)?N.value=F:N=F)},null,8,["values"]),e.createElementVNode("div",yi,[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:Om}," Скасувати "),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:zm,disabled:o.value}," Побудувати ",8,bi)])]),_:1},8,["visible"]),e.createElementVNode("div",ki,[e.createElementVNode("div",xi,[oe.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":d.value==="marker"}]),title:"Point",onClick:b[2]||(b[2]=F=>un("marker")),disabled:o.value},[e.createVNode(e.unref(P.MapPin),{class:"h-4 w-4"})],10,wi)):e.createCommentVNode("",!0),oe.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":d.value==="polyline"}]),title:"Line",onClick:b[3]||(b[3]=F=>un("polyline")),disabled:o.value},[e.createVNode(Ms)],10,vi)):e.createCommentVNode("",!0),oe.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":d.value==="polygon"}]),title:"Polygon",onClick:b[4]||(b[4]=F=>un("polygon")),disabled:o.value},[e.createVNode(Os)],10,_i)):e.createCommentVNode("",!0),oe.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":d.value==="rectangle"}]),title:"Rectangle",onClick:b[5]||(b[5]=F=>un("rectangle")),disabled:o.value},[e.createVNode(js)],10,Ci)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn mt-5",onClick:b[6]||(b[6]=F=>s.value=!s.value),title:"Full Screen"},[e.createVNode(e.unref(P.Maximize),{class:"h-4 w-4"})])])]),Z.value.length?(e.openBlock(),e.createElementBlock("div",{key:1,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(ae.value)},[e.createElementVNode("div",Ei,[e.createElementVNode("dl",Bi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Z.value,F=>(e.openBlock(),e.createElementBlock("div",{key:`${F.key}-${F.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Vi,e.toDisplayString(F.key),1),e.createElementVNode("dd",Si,e.toDisplayString(F.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",$i,[e.createElementVNode("div",Ai,[e.createVNode(Gs,{basemaps:e.unref(Se),onOnLayerChange:Un},null,8,["basemaps"]),_e.value.length?(e.openBlock(),e.createElementBlock("div",Fi,[b[8]||(b[8]=e.createElementVNode("p",{class:"font-semibold text-[11px] uppercase tracking-wide text-gray-500 mb-2"},"Шари",-1)),e.createElementVNode("div",Ni,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_e.value,F=>(e.openBlock(),e.createElementBlock("label",{key:F.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:F.visible,disabled:o.value,onChange:R=>sn(F.id)},null,40,Di),e.createElementVNode("span",Mi,e.toDisplayString(F.config.title||F.config.name||F.id),1)]))),128))])])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",Ti,[u.value?(e.openBlock(),e.createElementBlock("div",Li,[e.createElementVNode("div",Ii,[e.createElementVNode("div",Oi,[b[9]||(b[9]=e.createTextVNode(" Type: ",-1)),e.createElementVNode("span",zi,e.toDisplayString(u.value.type),1)])]),e.createElementVNode("div",Ri,[e.createElementVNode("div",Pi,[b[10]||(b[10]=e.createTextVNode(" Center: ",-1)),e.createElementVNode("b",null,e.toDisplayString(u.value.center.lat.toFixed(5))+", "+e.toDisplayString(u.value.center.lng.toFixed(5)),1)]),u.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("div",ji,[b[11]||(b[11]=e.createTextVNode(" Area: ",-1)),e.createElementVNode("b",null,e.toDisplayString(u.value.areaKm2.toFixed(1))+" km²",1)])):(e.openBlock(),e.createElementBlock("div",Ui,[...b[12]||(b[12]=[e.createTextVNode("Area: ",-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:Nm,disabled:o.value},[e.createVNode(e.unref(P.ZoomIn),{class:"h-3 w-3"})],8,Hi),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:Fm,disabled:o.value},[e.createVNode(e.unref(P.Trash2),{class:"h-4 w-4"})],8,qi)])])):e.createCommentVNode("",!0)])],2)],8,["disabled"]))}}),[["__scopeId","data-v-839288ad"]]),Ki=["data-focus"],Gi={class:"flex items-center"},Wi={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},Yi=["onClick","aria-label"],Zi={key:0,class:"absolute text-gray-500 truncate pl-2"},Xi={class:"flex-1 min-w-[2px]"},Ji=["placeholder"],Qi={class:"flex items-center shrink-0"},ec=["disabled"],ar=e.defineComponent({__name:"vs-input-tag",props:e.mergeModels({unique:{type:Boolean,default:!0},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:"Введіть тег"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(r,{emit:t}){const n=r,l=t;Ne(n.style);const a=e.ref(null),o=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref(""),d=e.useModel(r,"modelValue"),u=e.computed(()=>n.placeholder||"Add tag…"),p=e.computed(()=>d.value?.length===0&&i.value===""),y=e.computed(()=>!n.disabled&&d.value?.length>0),f=e.computed(()=>n.disabled),g=async()=>{f.value||await e.nextTick(()=>s.value?.focus())},h=I=>{const V=I.trim();V!==""&&(!d.value||!Array.isArray(d.value)?d.value=[V]:n.unique?d.value.includes(V)||(d.value=[...d.value,V]):d.value=[...d.value,V],i.value="")},k=()=>{const I=i.value;I.trim()!==""&&h(I),i.value=""},C=I=>{const V=d.value.slice();V.splice(I,1),l("update:modelValue",V)},v=()=>{l("update:modelValue",[])},x=()=>{f.value||(c.value=!0)},w=()=>{c.value=!1,!f.value&&k()},A=I=>{const{key:V}=I;V==="Enter"?(I.preventDefault(),k()):V==="Backspace"&&i.value===""&&d.value.length>0&&C(d.value.length-1)};return(I,V)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:a,onClick:V[1]||(V[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":"",f.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.value?"true":"false",onClick:g},[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:o},[(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",Gi,[e.createElementVNode("div",Wi,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(E=>C(S),["stop"]),"aria-label":`Remove ${_}`},[e.createVNode(e.unref(P.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Yi)]))),128)),p.value?(e.openBlock(),e.createElementBlock("div",Zi,e.toDisplayString(u.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Xi,[f.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":V[0]||(V[0]=_=>i.value=_),onFocus:x,onBlur:w,onKeydown:A,placeholder:d.value&&d.value.length?"":void 0},null,40,Ji)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",Qi,[y.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:f.value,onClick:e.withModifiers(v,["stop"])},[e.createVNode(e.unref(P.X),{class:"h-4 w-4"})],8,ec)):e.createCommentVNode("",!0)])],10,Ki)],2)],512))}}),tc={class:"relative flex gap-1 bg-white w-full"},nc=["disabled","placeholder"],or=ue(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=e.inject("values"),n=r,l=e.useModel(r,"modelValue");function a(s){const c={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return s.toLowerCase().split("").map(i=>c[i]||i).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const o=()=>{const s=t?.value?.[n.parent||""]?.toString(),c=a(s);l.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",tc,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:r.disabled,placeholder:r.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>l.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,nc),[[e.vModelText,l.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:o}," Gen ")]))}}),[["__scopeId","data-v-cb7b2b74"]]),rc={class:"relative flex gap-1 bg-white w-full"},lc=["disabled","placeholder"],ac=["disabled"],oc={key:0},sc={key:1},sr=ue(e.defineComponent({__name:"vs-input-codegen",props:e.mergeModels({table:{},code:{},init:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.ref(!1),a=e.computed(()=>t.init!==!1),o=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!o.value)return"";const d=encodeURIComponent(String(t.table)),u=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${u}`},c=async()=>{if(!o.value||l.value)return;const d=s();if(d){l.value=!0;try{const p=await(await fetch(d)).text();n.value=p}finally{l.value=!1}}},i=()=>{a.value&&(n.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,u)=>(e.openBlock(),e.createElementBlock("div",rc,[e.withDirectives(e.createElementVNode("input",{disabled:r.disabled,placeholder:r.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,lc),[[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:l.value||r.disabled||!o.value,onClick:c},[l.value?(e.openBlock(),e.createElementBlock("span",sc,"...")):(e.openBlock(),e.createElementBlock("span",oc,"Gen"))],8,ac)]))}}),[["__scopeId","data-v-8f88fb66"]]),ic={class:"w-full"},cc={ref:"sortableContainer",class:"flex flex-col gap-1"},dc=["onDragstart","onDrop"],uc={class:"cursor-move",type:"button"},pc={class:"w-1/3"},fc={class:"w-2/3"},mc=["onClick"],hc={key:0,class:"text-[14px] text-gray-700"},gc={class:"mt-2 w-full flex items-center"},yc=["disabled"],ir=ue(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=k=>`${k}-${Math.random().toString(36).substring(2,15)}`,l=e.inject("values"),a=r,o=t,s=a.addButtonText??"Додати",c=a.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const k=a.parent&&l?.value?.[a.parent]||a.modelValue||{};i.value=Object.entries(k).filter(([C])=>!c.includes(C)).map(([C,v])=>({id:n("key-value-"),key:C,value:v}))})();function p(k){d.value=k}function y(k){if(d.value===null||d.value===k)return;const C=i.value.splice(d.value,1)[0];i.value.splice(k,0,C),d.value=null}const f=e.computed(()=>i.value.some(k=>k.key&&!k.value||!k.key&&k.value)),g=()=>{i.value.push({id:n("key-value-"),key:"",value:""})},h=k=>{i.value=i.value.filter(C=>C.id!==k)};return e.watch(i,k=>{const C={};k.forEach(x=>{x.key&&x.value!==void 0&&(C[x.key]=x.value)});const v={};c.length&&c.forEach(x=>{v[x]=a.parent?l?.value?.[a.parent]?.[x]:void 0}),l?.value&&a.parent&&(l.value[a.parent]={...v,...C}),o("update:modelValue",C)},{deep:!0}),(k,C)=>(e.openBlock(),e.createElementBlock("div",ic,[e.createElementVNode("div",cc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(v,x)=>(e.openBlock(),e.createElementBlock("div",{key:v.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===x}]),draggable:"true",onDragstart:w=>p(x),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:w=>y(x)},[e.createElementVNode("button",uc,[e.createVNode(e.unref(P.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",pc,[e.createVNode(wt,{modelValue:v.key,"onUpdate:modelValue":w=>v.key=w,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",fc,[e.createVNode(wt,{modelValue:v.value,"onUpdate:modelValue":w=>v.value=w,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:w=>h(v.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(P.X),{class:"h-4 w-4"})],8,mc)],42,dc))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",hc," Дані для відображення відсутні ")),e.createElementVNode("div",gc,[e.createElementVNode("button",{type:"button",onClick:g,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(P.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,yc)])]))}}),[["__scopeId","data-v-ac321a0f"]]),bc={class:"w-full"},kc={ref:"sortableContainer",class:"flex flex-col gap-1"},xc=["onDragstart","onDrop"],wc=["disabled"],vc={class:"flex-1"},_c=["onClick","disabled"],Cc={key:0,class:"text-[14px] text-gray-700"},Ec={class:"mt-2 w-full flex items-center"},Bc=["disabled"],cr=ue(e.defineComponent({__name:"vs-input-text-array",props:e.mergeModels({addButtonText:{default:"Додати"},inputType:{default:"text"},placeholder:{default:"Значення"},mask:{default:""},disabled:{type:Boolean,default:!1}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.ref([]),a=e.ref(null),o=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),c=e.computed(()=>t.addButtonText??"Додати");let i=!1;const d=k=>`${k}-${Math.random().toString(36).substring(2,15)}`,u=k=>{const C=k??n.value??[];l.value=C.map((v,x)=>({id:l.value[x]?.id??d("text-array"),value:v??""}))};u(),e.watch(()=>n.value,k=>{if(i){i=!1;return}u(k||[])},{deep:!0}),e.watch(l,k=>{i=!0,n.value=k.map(C=>C.value).filter(C=>C!=null&&C!=="")},{deep:!0});const p=e.computed(()=>o.value||l.value.some(k=>!k.value));function y(){p.value||(l.value=[...l.value,{id:d("text-array"),value:""}])}function f(k){o.value||(l.value=l.value.filter(C=>C.id!==k))}function g(k){o.value||(a.value=k)}function h(k){if(o.value||a.value===null||a.value===k)return;const C=[...l.value],[v]=C.splice(a.value,1);C.splice(k,0,v),l.value=C,a.value=null}return(k,C)=>(e.openBlock(),e.createElementBlock("div",bc,[e.createElementVNode("div",kc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(v,x)=>(e.openBlock(),e.createElementBlock("div",{key:v.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":a.value===x}]),draggable:"true",onDragstart:w=>g(x),onDragover:C[0]||(C[0]=e.withModifiers(()=>{},["prevent"])),onDrop:w=>h(x)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:o.value},[e.createVNode(e.unref(P.GripVertical),{class:"h-4 w-4"})],8,wc),e.createElementVNode("div",vc,[r.inputType==="text"?(e.openBlock(),e.createBlock(wt,{key:0,modelValue:v.value,"onUpdate:modelValue":w=>v.value=w,disabled:o.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),r.inputType==="tel"?(e.openBlock(),e.createBlock(bn,{key:1,modelValue:v.value,"onUpdate:modelValue":w=>v.value=w,disabled:o.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),r.inputType==="email"?(e.openBlock(),e.createBlock(yn,{key:2,modelValue:v.value,"onUpdate:modelValue":w=>v.value=w,disabled:o.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),r.inputType==="mask"?(e.openBlock(),e.createBlock(gn,{key:3,modelValue:v.value,"onUpdate:modelValue":w=>v.value=w,mask:r.mask,disabled:o.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:w=>f(v.id),disabled:o.value,class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200 disabled:opacity-50"},[e.createVNode(e.unref(P.X),{class:"h-4 w-4"})],8,_c)],42,xc))),128))],512),l.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Cc," Дані для відображення відсутні ")),e.createElementVNode("div",Ec,[e.createElementVNode("button",{type:"button",onClick:y,disabled:p.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(P.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,Bc)])]))}}),[["__scopeId","data-v-972a598a"]]),Vc={class:"flex items-center gap-2 w-full"},Sc=["disabled"],$c=["disabled"],dr=e.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,{inputClass:l}=Ne(n.style),a=t,o=e.computed({get:()=>n.modelValue||"#000000",set:c=>a("update:modelValue",c)}),s=e.computed(()=>!!n.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Vc,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":i[0]||(i[0]=d=>o.value=d),disabled:s.value,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[r.modelValue?"":"text-opacity-50",e.unref(l)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Sc),[[e.vModelText,o.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=>o.value=d),disabled:s.value},null,8,$c),[[e.vModelText,o.value]])]))}}),Ac={class:"flex items-center gap-2 w-full"},Fc=["min","max","step","disabled"],Nc=["disabled"],ur=e.defineComponent({__name:"vs-input-range",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},min:{default:0},max:{default:100},step:{default:1}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,{inputClass:l}=Ne(n.style),a=t,o=e.computed({get:()=>Number(n.modelValue??n.min),set:c=>a("update:modelValue",Number(c))}),s=e.computed(()=>!!n.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Ac,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":i[0]||(i[0]=d=>o.value=d),min:r.min,max:r.max,step:r.step,disabled:s.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[r.modelValue?"":"text-opacity-50",e.unref(l)].join(" ")])},null,10,Fc),[[e.vModelText,o.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number","onUpdate:modelValue":i[1]||(i[1]=d=>o.value=d),disabled:s.value},null,8,Nc),[[e.vModelText,o.value]])]))}}),Dc=["placeholder","disabled","name"],Mc=["type","value","onInput","placeholder","disabled"],Tc=["onClick"],pr=e.defineComponent({__name:"vs-input-array",props:e.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.ref(t.count),l=e.computed(()=>t.limit),{inputClass:a}=Ne(t.style),o=e.useModel(r,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const h=o.value?.length??0;h<n.value&&(o.value=[...o.value??[],...Array(n.value-h)])});const i=e.ref({}),d=e.ref({});function u(h,k){h&&(i.value[k]=h)}async function p(h,k){if(!h||t.inputType!=="mask")return;const{default:C}=await Promise.resolve().then(()=>Ln);d.value[k]&&d.value[k].destroy(),d.value[k]=C(h,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[k].on("accept",()=>{const v=[...o.value||[]];v[k]=t.unmask?d.value[k].unmaskedValue:d.value[k].value,o.value=v}),d.value[k].on("complete",()=>{const v=[...o.value||[]];v[k]=t.unmask?d.value[k].unmaskedValue:d.value[k].value,o.value=v}),o.value?.[k]&&(d.value[k].value=o.value[k])}function y(h,k){if(s.value)return;const C=h.target.value??null,v=[...o.value];v[k]=t.inputType==="text"?C:Number(C),o.value=v}function f(){n.value+=1;const h=t.inputType==="text"||t.inputType==="mask"?null:0;o.value=[...o.value,h],t.inputType==="mask"&&setTimeout(()=>{const k=n.value-1;i.value[k]&&p(i.value[k],k)},0)}function g(h){if(n.value>1){d.value[h]&&(d.value[h].destroy(),delete d.value[h]),n.value-=1,o.value=o.value.filter((C,v)=>v!==h);const k={};Object.keys(d.value).forEach(C=>{const v=parseInt(C,10);v>h?k[v-1]=d.value[v]:v<h&&(k[v]=d.value[v])}),d.value=k}}return e.onMounted(()=>{if(t.inputType==="mask")for(let h=0;h<n.value;h+=1)i.value[h]&&p(i.value[h],h)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(h=>{h&&h.destroy()})}),e.watch(()=>t.mask,h=>{t.inputType==="mask"&&Object.values(d.value).forEach(k=>{k&&k.updateOptions({mask:h,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(o,h=>{t.inputType==="mask"&&h&&h.forEach((k,C)=>{d.value[C]&&d.value[C].value!==k&&(d.value[C].value=k||"")})},{deep:!0}),(h,k)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${l.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,C=>(e.openBlock(),e.createElementBlock("div",{key:C,class:"flex items-center gap-2 w-full"},[r.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:v=>u(v,C-1),placeholder:r.placeholder,disabled:r.disabled,name:`${r.name}[${C-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Dc)):(e.openBlock(),e.createElementBlock("input",{key:1,type:r.inputType,value:o.value?.[C-1],onInput:v=>y(v,C-1),placeholder:c.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Mc)),!r.disabled&&C===n.value&&r.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(f,["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-green-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(P.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!r.disabled&&n.value>1&&r.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(v=>g(C-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(P.X),{class:"h-4 w-4"})],8,Tc)):e.createCommentVNode("",!0)]))),128))],2))}}),Lc=["aria-expanded","data-focus"],Ic=["placeholder","disabled","readonly"],Oc={class:"max-h-full"},zc=["onClick","disabled"],Rc={key:0,class:"px-3 py-2 text-sm text-stone-500"},Pc={class:"flex flex-col gap-1"},jc=["onDragstart","onDrop"],Uc=["disabled"],Hc=["title"],qc=["disabled","onClick","aria-label"],Kc={key:0,class:"text-xs text-stone-500"},Kt=ue(e.defineComponent({__name:"vs-input-array-select",props:e.mergeModels({options:{default:()=>[]},data:{default:""},api:{default:""},prefix:{default:"api"},host:{default:""},parent:{},search:{type:Boolean,default:!0},maxHeight:{default:280},start:{default:0},slot:{},disabled:{type:Boolean,default:!1},style:{},customClass:{},modelValue:{},error:{},name:{},placeholder:{default:"Оберіть значення"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(r,{emit:t}){const n=r,l=t,a=e.useModel(r,"modelValue"),o=e.ref([]),s=e.ref(n.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),u=e.ref(""),p=e.ref(!1),y=e.ref(null),f=e.ref(null),g=e.ref(null),h=e.ref(null),k=e.ref(null),C=e.ref({});let v=!1,x=!1;const w=e.inject("values"),A=e.computed(()=>!!n.disabled),I=e.computed(()=>n.placeholder??"Оберіть значення"),V=e.computed(()=>n.search!==!1),_=e.computed(()=>{const z=n.parent??n.parentValue;return z?String(z):""}),S=e.computed(()=>_.value?w?.value?.[_.value]??null:null),E=z=>z==null?"__null__":String(z),D=z=>{if(!z)return"";const J=z.label??z.text??z.name??z.ua??z.en;return J?String(J):z.id!==void 0&&z.id!==null?String(z.id):""},T=z=>{const J=E(z);return i.value[J]||(i.value[J]=`array-select-${J}-${Math.random().toString(36).slice(2,8)}`),i.value[J]},L=e.computed(()=>new Set(o.value.map(z=>E(z.id)))),$=e.computed(()=>{const z=L.value;let J=[...s.value];if(!n.data&&u.value.trim()){const te=u.value.toLowerCase();J=J.filter(fe=>D(fe).toLowerCase().includes(te))}return J.filter(te=>!z.has(E(te.id)))}),M=()=>{if(!n.data)return"";const z=n.prefix??"api",J=n.api??`/${z}/suggest/${n.data}`;return`${n.host??""}${J}`},N=()=>{o.value.length&&(v=!0,o.value=o.value.map(z=>({...z,text:c.value[E(z.id)]??z.text})))},H=z=>{const J=E(z.id),te=D(z);te&&(c.value[J]=te)},U=z=>{s.value=z?[...z]:[],z?.forEach(H),N()},q=z=>{if(!z.length)return;const J=new Map(s.value.map(te=>[E(te.id),te]));z.forEach(te=>{const fe=E(te.id);J.set(fe,te),H(te)}),s.value=Array.from(J.values()),N()},Q=async(z="")=>{if(!n.data)return[];const J=M();if(!J)return[];const te=new URLSearchParams;te.set("json","1"),z&&te.set("key",z),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(`${J}?${te.toString()}`)).json())?.data??[]}catch{return[]}},_e=async z=>{if(!n.data||!z.length)return[];const J=M();if(!J)return[];const te=Array.from(new Set(z.map(Ce=>E(Ce)))),fe=new URLSearchParams;fe.set("json","1"),fe.set("val",te.join(",")),n.start===1&&fe.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&fe.set("parent",String(S.value));try{const Ie=(await(await fetch(`${J}?${fe.toString()}`)).json())?.data??[];return q(Ie),Ie}catch{return[]}},ge=async(z="",{force:J=!1}={})=>{if(!n.data)return;const te=S.value??null;if(!J&&d.value.keyword===z&&d.value.parent===te&&s.value.length>0)return;d.value={keyword:z,parent:te};const Ce=await Q(z);U(Ce)},ae=((z,J=200)=>{let te;return(...fe)=>{te&&clearTimeout(te),te=setTimeout(()=>z(...fe),J)}})(async z=>{n.data&&await ge(z,{force:!0})},250),ie=e.ref(null),oe=()=>{if(!g.value)return;const z=g.value.getBoundingClientRect(),J=window.innerHeight??document.documentElement.clientHeight,te=window.innerWidth??document.documentElement.clientWidth,fe=8,Ce=8,kt=n.maxHeight??280,Ie=J-z.bottom-Ce-fe,xt=z.top-Ce-fe,ot=Ie>=xt,mt=Math.max(te-fe*2,0);let{width:Ue}=z;mt>0&&Ue>mt&&(Ue=mt);let{left:We}=z;We+Ue+fe>te&&(We=te-Ue-fe),We=Math.max(We,fe);const He=Math.min(kt,Math.max(ot?Ie:xt,50));C.value={position:"fixed",left:`${We}px`,width:`${Ue}px`,maxHeight:`${He}px`,transform:ot?"none":"translateY(-100%)",top:ot?`${z.bottom+Ce}px`:`${z.top-Ce}px`}},xe=async(z="click")=>{A.value||p.value||(ie.value=z,await ge(u.value.trim()),p.value=!0,await e.nextTick(),oe(),k.value?.focus())},De=()=>{p.value=!1,ie.value=null,e.nextTick(()=>{k.value?.blur()})},Se=async z=>{if(z.stopPropagation(),!A.value){if(p.value){if(ie.value==="focus"){ie.value=null;return}De();return}await xe("click")}},Je=z=>{z.key==="Escape"&&De()},Qe=z=>{if(!p.value)return;const J=z.target;h.value?.contains(J)||De()},Le=z=>{const J=z.target;f.value?.contains(J)||h.value?.contains(J)||De()},ft=z=>{if(z.key==="Escape"){z.preventDefault(),De();return}if(z.key==="Enter"){z.preventDefault();const J=$.value[0];J&&j(J)}},j=z=>{if(!z)return;const J=E(z.id);if(L.value.has(J))return;H(z);const te={id:z.id,text:D(z)||String(z.id??""),key:T(z.id)};o.value=[...o.value,te],Y(z),u.value="",e.nextTick(()=>{k.value?.focus()})},Y=z=>{const J=o.value.map(te=>te.id);l("value-selected",{name:n.name,value:J,option:z})},B=z=>{if(A.value)return;const J=o.value.filter(te=>E(te.id)!==E(z));o.value=J},W=z=>{A.value||(y.value=z)},re=z=>{if(A.value||y.value===null||y.value===z)return;const J=[...o.value],[te]=J.splice(y.value,1);J.splice(z,0,te),y.value=null,o.value=J},ye=async()=>{const J=(Array.isArray(a.value)?[...a.value]:[]).filter(fe=>fe!=null);if(n.data&&J.length){const fe=J.filter(Ce=>!c.value[E(Ce)]);fe.length&&await _e(fe)}const te=J.map(fe=>({id:fe,text:c.value[E(fe)]??String(fe),key:T(fe)}));v=!0,o.value=te};e.watch(o,z=>{if(v){v=!1;return}const J=z.map(te=>te.id);x=!0,a.value=J,l("change",J)},{deep:!0}),e.watch(a,()=>{if(x){x=!1;return}ye()},{deep:!0}),e.watch(u,z=>{!n.data||!p.value||ae(z.trim())}),e.watch(A,z=>{z&&De()}),e.watch(()=>n.options,async z=>{n.data||(U(z??[]),await ye())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async z=>{z&&(await ge(u.value.trim()),await ye())},{immediate:!0});const ke=e.ref(!1);return e.watch(S,async()=>{if(n.data){if(!ke.value){ke.value=!0;return}o.value=[],await ge(u.value.trim()),await ye()}}),e.onMounted(async()=>{document.addEventListener("click",Le,!0),window.addEventListener("keydown",Je),window.addEventListener("scroll",Qe,!0),await ye()}),e.onUnmounted(()=>{document.removeEventListener("click",Le,!0),window.removeEventListener("keydown",Je),window.removeEventListener("scroll",Qe,!0)}),(z,J)=>(e.openBlock(),e.createElementBlock("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:f},[e.createElementVNode("div",{class:"relative",onClick:J[2]||(J[2]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:g,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)]":"",A.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:Se},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:k,"onUpdate:modelValue":J[0]||(J[0]=te=>u.value=te),placeholder:I.value,disabled:A.value,readonly:!V.value,onFocus:J[1]||(J[1]=()=>xe("focus")),onKeydown:ft,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,Ic),[[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(P.ChevronDown),{class:"h-4 w-4"})],2)],10,Lc),(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:h,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(C.value)},[e.createElementVNode("div",Oc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,te=>(e.openBlock(),e.createElementBlock("button",{key:E(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(fe=>j(te),["stop"]),disabled:A.value},e.toDisplayString(D(te)),9,zc))),128)),$.value.length===0?(e.openBlock(),e.createElementBlock("p",Rc," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),e.createElementVNode("div",Pc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(te,fe)=>(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":y.value===fe}]),draggable:"true",onDragstart:Ce=>W(fe),onDragover:J[3]||(J[3]=e.withModifiers(()=>{},["prevent"])),onDrop:Ce=>re(fe),onDragend:J[4]||(J[4]=Ce=>y.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:A.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(P.GripVertical),{class:"h-4 w-4"})],8,Uc),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:te.text},e.toDisplayString(te.text),9,Hc),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:A.value,onClick:e.withModifiers(Ce=>B(te.id),["stop"]),"aria-label":`Видалити ${te.text}`},[e.createVNode(e.unref(P.X),{class:"h-4 w-4"})],8,qc)],42,jc))),128)),o.value.length===0?(e.openBlock(),e.createElementBlock("p",Kc,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512))}}),[["__scopeId","data-v-5fa5a4b9"]]),Gc={class:"flex items-center gap-2 w-full"},Wc={class:"relative flex-1"},Yc=["placeholder","disabled","onKeydown"],Zc=["disabled"],Xc={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},Jc={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Qc={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},ed=["onClick"],td={key:0,class:"p-4 text-sm text-gray-500"},fr=e.defineComponent({__name:"vs-input-address",props:e.mergeModels({api:{default:""},geom:{default:""},includes:{default:()=>[]},bbox:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","update:geom"],["update:modelValue"]),setup(r,{emit:t}){const n=/{{\s*([^}]+?)\s*}}/g,l=r,a=t,{inputClass:o}=Ne(l.style),s=e.useModel(r,"modelValue"),c=e.computed({get:()=>s.value,set:V=>{s.value=V}}),i=e.ref(!1),d=e.ref([]),u=e.ref(!1),p=e.ref(null);e.watch(u,V=>{typeof document>"u"||(V?(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 y=e.computed(()=>l.placeholder??""),f=e.computed(()=>!!l.disabled),g=V=>{if(!V)return null;if(Array.isArray(V))return V;if(typeof V=="string"){const _=V.split(",").map(S=>S.trim()).filter(Boolean);return _.length!==4?null:_.map(Number)}return null},h=e.computed(()=>{const V=g(l.bbox);if(!V||V.length!==4)return null;const _=V.map(Number);return _.some(S=>Number.isNaN(S))?null:_}),k=e.computed(()=>{const V=h.value;if(!V)return"";const[_,S,E,D]=V;return`${_},${Math.max(S,D)},${E},${Math.min(S,D)}`});e.computed(()=>k.value?"1":"0");const C=e.inject("values");function v(){!f.value&&c.value.trim()&&x()}async function x(){const V=(c.value||"").trim();if(!V)return;let _=V;if(l.includes?.length&&C?.value){const E=l.includes.map(D=>C.value?.[D]).filter(Boolean);E.length&&(_=`${E.join(", ")}, ${V}`)}const S=I(_);if(S){i.value=!0;try{const D=await(await fetch(S)).json();d.value=Array.isArray(D)?D:[],u.value=!0}catch(E){console.error("Address search error:",E)}finally{i.value=!1}}}function w(){u.value=!u.value}function A(V){if(!V)return;u.value=!1;const _=parseFloat(V.lat),E={type:"Point",coordinates:[parseFloat(V.lon),_]};l.geom&&C?.value&&(C.value[l.geom]=E),a("update:geom",E)}function I(V){if(!l.api)return"";const _={value:encodeURIComponent(V),bbox:h.value?h.value.join(","):""};return l.api.replace(n,(S,E)=>_[E.trim()]??"")}return(V,_)=>(e.openBlock(),e.createElementBlock("div",Gc,[e.createElementVNode("div",Wc,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":_[0]||(_[0]=S=>c.value=S),placeholder:y.value,disabled:f.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(o),{"!border-red-600":l.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(v,["prevent"]),["enter"])},null,42,Yc),[[e.vModelText,c.value]]),d.value.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-blue-600",onClick:w,title:"Show search results"},[e.createVNode(e.unref(P.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:x,class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px]",disabled:i.value||!c.value?.trim()},[i.value?(e.openBlock(),e.createBlock(e.unref(P.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(P.Search),{key:0,class:"h-4 w-4"}))],8,Zc),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[u.value?(e.openBlock(),e.createElementBlock("div",Xc,[e.createElementVNode("div",Jc,[e.createElementVNode("div",Qc,[_[2]||(_[2]=e.createElementVNode("span",null,"Search results",-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(P.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(S,E)=>(e.openBlock(),e.createElementBlock("li",{key:E,onClick:D=>A(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,ed))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",td," No results found "))])])):e.createCommentVNode("",!0)]))]))}}),mr=(r="")=>`${r}${Math.floor(Math.random()*1e4)}`,nd={class:"vs-datalist space-y-3"},rd={class:"space-y-3"},ld=["onClick","disabled"],ad={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},od=["disabled"],sd=ue(e.defineComponent({__name:"vs-input-datalist",props:e.mergeModels({schema:{default:()=>[]},minItems:{default:0},maxItems:{default:void 0},addButtonText:{default:"Додати позицію"},emptyLabel:{default:"Немає рядків"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.computed(()=>Array.isArray(n.value)?n.value:[]),a=e.ref([]),o=e.computed(()=>t.schema?.map(h=>({...h,disabled:t.disabled||h.disabled}))??[]),s=e.computed(()=>o.value.map(h=>g(h))),c=e.computed(()=>t.disabled?!1:t.maxItems?l.value.length<t.maxItems:!0),i=e.computed(()=>t.disabled||l.value.length<=(t.minItems||0));e.watch(()=>l.value.length,()=>{d(),u()},{immediate:!0}),e.watch(()=>t.schema,u,{immediate:!0,deep:!0});function d(){const h=l.value.length;a.value.length<h?a.value=[...a.value,...Array.from({length:h-a.value.length},()=>mr())]:a.value.length>h&&a.value.splice(h)}function u(){if(!t.minItems||l.value.length>=t.minItems)return;const h=t.minItems-l.value.length,k=Array.from({length:h},p);n.value=[...l.value,...k]}function p(){const h={};return o.value.forEach(k=>{h[k.name]=k?.default??null}),h}function y(){c.value&&(n.value=[...l.value,p()],d())}function f(h){i.value||(n.value=l.value.filter((k,C)=>C!==h),d(),u())}function g(h){return{...h}}return(h,k)=>(e.openBlock(),e.createElementBlock("div",nd,[e.createElementVNode("div",rd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(C,v)=>(e.openBlock(),e.createElementBlock("div",{key:a.value[v],class:"flex items-center gap-3"},[e.createVNode(Ze,{schema:s.value,layout:"inline",navigation:!1,values:l.value[v],"onUpdate:values":x=>l.value[v]=x,"form-id":a.value[v]},null,8,["schema","values","onUpdate:values","form-id"]),e.createElementVNode("button",{type:"button",class:"h-[38px] w-[38px] flex items-center justify-center text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",onClick:x=>f(v),disabled:i.value},[e.createVNode(e.unref(P.Trash2),{class:"h-4 w-4"})],8,ld)]))),128)),l.value.length===0?(e.openBlock(),e.createElementBlock("div",ad,e.toDisplayString(t.emptyLabel),1)):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:y,disabled:!c.value},[e.createVNode(e.unref(P.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,od)]))}}),[["__scopeId","data-v-b4dfd331"]]),id={class:"vs-dataform space-y-4"},cd=["draggable","onDragstart","onDragover","onDragenter","onDrop"],dd={class:"flex items-center gap-2"},ud=["onClick"],pd={class:"text-sm font-medium text-gray-700"},fd={class:"flex items-center gap-2"},md=["title","onClick","disabled"],hd=["title","onClick","disabled"],gd={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},yd=["disabled"],bd=ue(e.defineComponent({__name:"vs-input-dataform",props:e.mergeModels({schema:{default:()=>[]},minGroups:{default:0},maxGroups:{default:void 0},addButtonText:{default:"Додати групу фільтрів"},groupLabel:{default:void 0},duplicateTitle:{default:"Дублювати групу"},removeTitle:{default:"Видалити групу"},emptyLabel:{},view:{default:"default"},collapsible:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.ref([]),a=e.ref([]),o=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??"Ще немає груп"),p=e.computed(()=>t.schema?.map(Z=>({...Z,disabled:t.disabled||Z.disabled}))??[]),y=e.computed(()=>p.value.map(Z=>S(Z))),f=e.computed(()=>t.view==="accordion"),g=e.computed(()=>!!(t.collapsible||f.value)),h=e.computed(()=>t.draggable!==!1),k=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,()=>{v(),x(),w()},{immediate:!0}),e.watch(()=>t.schema,w,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{x()},{immediate:!0});function v(){const Z=n.value.length;l.value.length<Z?l.value=[...l.value,...Array.from({length:Z-l.value.length},()=>mr())]:l.value.length>Z&&l.value.splice(Z)}function x(){const Z=n.value.length;f.value?Z===0?o.value=-1:o.value>=Z?o.value=Z-1:o.value<0&&(o.value=0):a.value.length<Z?a.value=[...a.value,...Array.from({length:Z-a.value.length},()=>!1)]:a.value.length>Z&&a.value.splice(Z)}function w(){if(!t.minGroups||n.value.length>=t.minGroups)return;const Z=t.minGroups-n.value.length,ae=Array.from({length:Z},A);n.value=[...n.value,...ae],x()}function A(){const Z={};return p.value.forEach(ae=>{Z[ae.name]=ae?.default??null}),Z}function I(){k.value&&(n.value=[...n.value,A()],v(),x())}function V(Z){C.value||(n.value=n.value.filter((ae,ie)=>ie!==Z),v(),f.value?o.value>=n.value.length&&(o.value=n.value.length-1):a.value.splice(Z,1),w())}function _(Z){if(t.disabled)return;const ae=JSON.parse(JSON.stringify(n.value[Z]??{}));n.value=[...n.value.slice(0,Z+1),ae,...n.value.slice(Z+1)],v(),f.value?o.value>Z&&(o.value+=1):a.value.splice(Z+1,0,a.value[Z]??!1)}function S(Z){return{...Z}}function E(Z){return f.value?o.value===-1&&Z===0?!1:o.value!==Z:!!a.value[Z]}function D(Z){if(g.value){if(f.value){o.value=Z;return}a.value[Z]=!a.value[Z]}}function T(Z,ae){if(!h.value||t.disabled){ae.preventDefault();return}s.value=Z,c.value=Z,i.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...l.value],states:[...a.value]},ae.dataTransfer?.setData("text/plain",String(Z)),ae.dataTransfer?.setDragImage?.(ae.currentTarget,0,0)}function L(Z,ae){!h.value||t.disabled||s.value!==null&&q(Z,ae)}function $(Z,ae){q(Z,ae)}function M(Z){!h.value||t.disabled||ge()}function N(){i.value&&U(),s.value=null,c.value=null,i.value=null}function H(Z,ae){const ie=[...n.value],[oe]=ie.splice(Z,1);ie.splice(ae,0,oe),n.value=ie;const xe=[...l.value],[De]=xe.splice(Z,1);if(xe.splice(ae,0,De),l.value=xe,f.value)o.value===Z&&(o.value=ae);else{const Se=[...a.value],[Je]=Se.splice(Z,1);Se.splice(ae,0,Je),a.value=Se}}function U(){i.value&&(n.value=i.value.groups,l.value=i.value.keys,a.value=i.value.states,i.value=null,c.value=null)}function q(Z,ae){if(s.value===null)return;const ie=Q(Z,ae);c.value=ie,_e(ie)}function Q(Z,ae){if(!ae?.currentTarget)return Z;const ie=ae.currentTarget.getBoundingClientRect(),xe=ae.clientY-ie.top>ie.height/2?Z+1:Z;return Math.max(0,Math.min(xe,n.value.length))}function _e(Z){const ae=s.value;if(ae===null)return;let ie=Z;if(ie>n.value.length&&(ie=n.value.length),ie===ae||ie===ae+1)return;const oe=ie>ae?ie-1:ie;H(ae,oe),s.value=oe,c.value=ie>ae?oe+1:oe}function ge(){i.value=null,s.value=null,c.value=null}return(Z,ae)=>(e.openBlock(),e.createElementBlock("div",id,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(ie,oe)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[oe],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":E(oe)?"pt-6 px-6":"p-6"]]),draggable:h.value&&!t.disabled,onDragstart:xe=>T(oe,xe),onDragend:N,onDragover:e.withModifiers(xe=>L(oe,xe),["prevent"]),onDragenter:e.withModifiers(xe=>$(oe,xe),["prevent"]),onDrop:e.withModifiers(xe=>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"&&!E(oe)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",dd,[h.value?(e.openBlock(),e.createBlock(e.unref(P.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),g.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:xe=>D(oe)},[e.createVNode(e.unref(P.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",E(oe)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,ud)):e.createCommentVNode("",!0),e.createElementVNode("div",pd,e.toDisplayString(`${d.value} (${oe+1})`),1)]),e.createElementVNode("div",fd,[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:xe=>_(oe),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(P.Copy),{class:"h-4 w-4"})],8,md),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:xe=>V(oe),disabled:C.value,draggable:"false"},[e.createVNode(e.unref(P.Trash2),{class:"h-4 w-4"})],8,hd)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(Ze,{class:"vs-dataform__form",schema:y.value,layout:"inline",navigation:!1,values:n.value[oe],"onUpdate:values":xe=>n.value[oe]=xe,"form-id":l.value[oe],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!E(oe)]])],42,cd))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",gd,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:I,disabled:!k.value},[e.createVNode(e.unref(P.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,yd)]))}}),[["__scopeId","data-v-accd044e"]]),Gt="__vs_form_monaco_loader__",gt="__vs_form_monaco_script_loader__",Wt="__vs_form_monaco_editor_loader__",Cn=e.defineComponent({__name:"vs-input-monaco",props:e.mergeModels({syntax:{default:"xml"},theme:{default:"vs-light"},height:{default:280},minimap:{type:Boolean,default:!1},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r,{expose:t}){const n=r,l=e.useModel(r,"modelValue"),a=e.ref(null),o=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 g=window;if(g.monaco?.editor?.create)return c=g.monaco,Promise.resolve(c);if(g[Gt])return g[Gt];const k=(async()=>{const C=w=>{if(Array.from(document.styleSheets||[]).some(V=>V?.href?.includes(w)))return;const I=document.createElement("link");I.rel="stylesheet",I.href=w,document.head.appendChild(I)},v=w=>{if(g[gt]?.[w])return g[gt][w];g[gt]||={};const A=Array.from(document.scripts).find(I=>I.src===w);return A?(g[gt][w]=new Promise((I,V)=>{const _=A.readyState;if(A.dataset.loaded==="true"||_==="loaded"||_==="complete"){I();return}A.addEventListener("load",()=>{A.dataset.loaded="true",I()},{once:!0}),A.addEventListener("error",S=>V(S),{once:!0})}),g[gt][w]):(g[gt][w]=new Promise((I,V)=>{const _=document.createElement("script");_.src=w,_.async=!0,_.onload=()=>{_.dataset.loaded="true",I()},_.onerror=S=>V(S),document.body.appendChild(_)}),g[gt][w])},x="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return C(`${x}/editor/editor.main.min.css`),await v(`${x}/loader.min.js`),g[Wt]||(g[Wt]=new Promise((w,A)=>{window.require.config({paths:{vs:x}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,g.monaco=c,w(c)},I=>A(I))}).catch(w=>{throw delete g[Wt],w})),g[Wt]})().catch(C=>{throw delete g[Gt],C});return g[Gt]=k,k},u=()=>{!a.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(a.value,{value:l.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{i||(l.value=s.getValue())}))},p=()=>{s?.focus()},y=()=>s,f=()=>c;return e.watch(()=>l.value,g=>{if(!s)return;const h=s.getValue();g!==h&&(i=!0,s.setValue(g||""),i=!1)}),e.watch(()=>n.syntax,g=>{!s||!c||c.editor.setModelLanguage(s.getModel(),g||"xml")}),e.watch(()=>n.theme,g=>{c&&c.editor.setTheme(g||"vs-light")}),e.watch(()=>n.disabled,g=>{s&&s.updateOptions({readOnly:!!g})}),e.watch(()=>n.minimap,g=>{s&&s.updateOptions({minimap:{enabled:!!g}})}),e.onMounted(async()=>{try{const g=await d();if(!g||!g.editor)return;c=g,u()}catch(g){console.error("Failed to load Monaco editor",g)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:p,getEditor:y,getMonaco:f}),(g,h)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:o.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:a,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),hr={VsInputText:wt,VsInputRadio:kn,"vs-input-text":wt,"vs-input-password":El,"vs-input-textarea":Qn,"vs-input-richtext":er,"vs-input-mask":gn,"vs-input-number":qn,"vs-input-radio":kn,"vs-input-select":_n,"vs-input-switcher":mn,"vs-input-static":hn,"vs-input-container":Jn,"vs-input-date":ia,"vs-input-checkbox":Kn,"vs-input-file":Yn,"vs-input-file2":wn,file2:wn,File2:wn,"vs-input-html":hn,"vs-input-email":yn,"vs-input-tel":bn,"vs-input-datatable":tr,"vs-input-map":lr,"vs-input-file-list":Zn,"vs-input-tags":ar,"vs-input-slug":or,"vs-input-codegen":sr,"vs-input-key-value":ir,"vs-input-text[]":cr,"vs-input-range":ur,"vs-input-color":dr,"vs-input-native-select":_n,VsInputArraySelect:Kt,"vs-input-array":pr,"vs-input-array-select":Kt,"array-select":Kt,"vs-input-address":fr,"vs-input-datalist":sd,"vs-input-dataform":bd,"vs-input-monaco":Cn},kd=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(r){const t=r,n=e.inject("values");async function l(){try{if(!t.api)return;const a=t.api.replace("{{value}}",t.value),o=await fetch(a);if(!o.ok){pe.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const s=await o.json();if(!t.set||!n)return;for(const[c,i]of Object.entries(t.set))n.value[c]=s.result[i]}catch(a){console.error(t.error,a)}}return(a,o)=>(e.openBlock(),e.createElementBlock("button",{onClick:l,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(r.button),1))}}),xd={class:"flex flex-col gap-1 w-full"},wd=["innerHTML"],gr=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]},columns:{default:()=>({container:12,label:3})}},{modelValue:{default:null},modelModifiers:{}}),emits:e.mergeModels(["value-selected"],["update:modelValue"]),setup(r,{emit:t}){const n=r,l=e.useModel(r,"modelValue"),a=t,o=e.computed(()=>_l[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(C()),i=e.computed(()=>g(n.item,c.value)),d=e.computed(()=>hr?.[`vs-input-${n.item.type}`]),u=e.inject("field-props"),p=e.computed(()=>{const x=e.unref(d);if(!x)return new Set;const w=x.props??x.__vccOpts?.props;if(!w)return new Set;const A=Array.isArray(w)?w:Object.keys(w);return new Set(A)}),y=e.computed(()=>{const x={...i.value??{}},w=n.item?.name;w&&u?.value?.[w]&&Object.assign(x,u.value[w]);const A=p.value;return A.size?Object.fromEntries(Object.entries(x).filter(([I])=>A.has(I))):{}}),f=x=>{const w=typeof x=="object"&&x!==null?x:{value:x};a("value-selected",{...w,name:w.name??n.item?.name})};e.onMounted(()=>{c.value=C(),window.addEventListener("storage",v)}),e.onUnmounted(()=>{window.removeEventListener("storage",v)});function g(x,w){if(!x)return{};const A={...x};return s.forEach(I=>{const V=k(x,I,w);V!=null&&(A[I]=V)}),Array.isArray(x.options)&&(A.options=x.options.map(I=>h(I,w))),A}function h(x,w){if(!x)return x;const A={...x},I=k(x,"label",w),V=k(x,"text",w);return I!=null&&(A.label=I),V!=null?A.text=V:I!=null&&(A.text=I),A}function k(x,w,A){const I=`${w}:${A}`;if(x?.[I]!=null)return x[I];if(w==="label"&&x?.[A]!=null)return x[A];if(x?.[w]!=null)return x[w];if(w==="label"){if(x?.ua!=null)return x.ua;if(x?.en!=null)return x.en}if(w==="text"||w==="html"){if(x?.ua!=null)return x.ua;if(x?.en!=null)return x.en}return null}function C(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function v(){c.value=C()}return(x,w)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.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",xd,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),e.mergeProps(y.value,{modelValue:l.value,"onUpdate:modelValue":w[0]||(w[0]=A=>l.value=A),onValueSelected:f}),null,16,["modelValue"])),i.value.description&&n.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:i.value.description},null,8,wd)):e.createCommentVNode("",!0)]),i.value.behavior?.api&&i.value.behavior?.button?(e.openBlock(),e.createBlock(kd,e.mergeProps({key:0},i.value.behavior,{value:l.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),vd={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},_d={class:"vs-compact-form-navigation__rail mt-[6px]"},Cd=["onClick"],Ed=ue(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(r,{expose:t}){const n=r,l=e.ref([]),a=e.ref(""),o=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 D=n.width;if(D==null)return{};const T=typeof D=="number"?`${D}px`:`${D}`;return{width:T,minWidth:T}});let d=null,u=0,p=0,y=null,f=null,g=null;const h=()=>S(),k=()=>v();e.watch(()=>n.target,async D=>{if(I(),!D){y=null,l.value=[],a.value="";return}y=D,s.value&&(await e.nextTick(),A(D),v())},{immediate:!0}),e.watch(()=>n.scrollContainer,D=>{if(!s.value){f=D??null;return}C(D??null),e.nextTick(()=>v())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||C(null),v()}),e.onBeforeUnmount(()=>{I(),C(null,!0),y=null,typeof window<"u"&&(u&&window.cancelAnimationFrame(u),p&&window.cancelAnimationFrame(p))});function C(D,T=!1){if(g&&(g(),g=null),T){f=null;return}if(f=D??null,typeof window>"u")return;const L=D??window,$=window;L.addEventListener("scroll",h,{passive:!0}),$.addEventListener("resize",k),g=()=>{L.removeEventListener("scroll",h),$.removeEventListener("resize",k)}}function v(){if(!s.value||!y)return;u&&typeof window<"u"&&window.cancelAnimationFrame(u);const D=()=>{x(),u=0};typeof window>"u"?D():u=window.requestAnimationFrame(D)}function x(){if(!s.value||!y)return;const D=Array.from(y.querySelectorAll("h1, h2")),T=new Set,L=[];D.forEach(($,M)=>{const N=$.textContent?.trim()??"";if(!N)return;let H=($.getAttribute("id")??"").trim();H||(H=w(N)||`heading-${M+1}`);let U=H,q=1;for(;T.has(U);)U=`${H}-${q+=1}`;$.id!==U&&Object.assign($,{id:U}),T.add(U),L.push({id:U,text:N,level:$.tagName.toLowerCase()==="h1"?1:2})}),l.value=L,L.length||(a.value=""),_()}function w(D){return D.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function A(D){!D||!s.value||typeof MutationObserver>"u"||(I(),d=new MutationObserver(()=>v()),d.observe(D,{childList:!0,subtree:!0}))}function I(){d&&(d.disconnect(),d=null)}function V(D){const T=f;if(!T)return typeof window>"u"?D.offsetTop:D.getBoundingClientRect().top+window.scrollY;const L=D.getBoundingClientRect(),$=T.getBoundingClientRect();return L.top-$.top+T.scrollTop}function _(){if(!s.value||!l.value.length)return;const D=f,T=(D?D.scrollTop:null)||(typeof window<"u"?window.scrollY:0),L=(D?D.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),$=T+L;let M=null;for(let H=0;H<l.value.length;H+=1){const U=l.value[H],q=document.getElementById(U.id);if(q){const Q=V(q);Q+q.offsetHeight>T&&Q<$&&(M=U.id)}}!M&&o.value&&(M=o.value),M&&(o.value=M);const N=D?D.scrollHeight-D.clientHeight:document.documentElement.scrollHeight-window.innerHeight;T+5>=N&&(M=l.value[l.value.length-1].id),M&&(a.value=M)}function S(){s.value&&(p&&window.cancelAnimationFrame(p),p=window.requestAnimationFrame(()=>{_(),p=0}))}function E(D){if(!s.value)return;const T=document.getElementById(D);if(!T)return;const L=f,$=Math.max(0,V(T));L?L.scrollTo({top:$,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:$,behavior:"smooth"})}return t({refresh:v}),(D,T)=>s.value&&l.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",vd,e.toDisplayString(r.title),1),e.createElementVNode("div",_d,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,L=>(e.openBlock(),e.createElementBlock("div",{key:L.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",L.level===2?"vs-compact-form-navigation__item--nested":"",L.id===a.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:$=>E(L.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",L.level===2?"pl-[15px]":"pl-[18px]",L.id===a.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(L.text),1)],10,Cd)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-b3e16a91"]]),yt={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:r=>`Мінімальна довжина — ${r} символів`,maxlength:r=>`Максимальна довжина — ${r} символів`},Bd=r=>typeof r=="string"?r.trim()?!1:yt.required:Array.isArray(r)?r.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:yt.required:r?!1:yt.required,Vd=r=>{const t=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return r?t.test(r)?!1:yt.email:!1},Sd=r=>{const t=/^\+[1-9]\d{1,14}$/;return r?t.test(r)?!1:yt.tel:!1},yr=r=>r==null?0:typeof r=="string"?r.trim().length:Array.isArray(r)?r.length:typeof r=="number"?r.toString().length:String(r).length,$d=(r,t)=>{if(r==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&yr(r)<n?t?.message||yt.minlength(n):!1},Ad=(r,t)=>{if(r==null||r==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&yr(r)>n?t?.message||yt.maxlength(n):!1},Fd=(r,t)=>{const n=t.pattern??t.regexp,l=typeof n=="string"?new RegExp(n):n;if(Array.isArray(r)){const a=r.filter(Boolean);return a.length===0||a.every(o=>l.test(o))?!1:t.message}return!l.test(r)&&r?t.message:!1},Nd=(r,t)=>!1,Dd=(r,t)=>{switch(typeof t=="string"?t:t.type){case"required":return Bd(r);case"email":return Vd(r);case"tel":return Sd(r);case"regexp":return Fd(r,t);case"minlength":return $d(r,t);case"maxlength":return Ad(r,t);case"custom":return Nd();default:return!1}},Md={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file"};function br(r){const t=r?.toLowerCase();return Md[t]||t}function En(r,t=!1){if(Array.isArray(r)){const l=[];return r.forEach(a=>{const o={...a};o.name=(a.name||a.id||a.key||"").toString(),o.type=br(a.type),o.label=a.label||a.ua,o.rules=a.rules||a.validators,o.type==="email"&&!o.rules&&(o.rules=["email"]),a.data&&(o.api=`/api/suggest/${a.data}`),o.disabled=o.disabled??t,Array.isArray(o.schema)&&(o.schema=En(o.schema,o.disabled)),l.push(o)}),l}const n=[];return Object.entries(r).forEach(l=>{const a={name:l[0],...l[1],type:br(l[1].type),label:l[1].label||l[1].ua,rules:l[1].rules||l[1].validators,disabled:l[1].disabled??t};a.type==="email"&&!a.rules&&(a.rules=["email"]),l[1].type?.includes("list")&&(a.multiple=!0),!a.api&&l[1].data&&(a.api=`/api/suggest/${l[1].data}`),Array.isArray(a.schema)&&(a.schema=En(a.schema,a.disabled)),n.push(a)}),n}function Td(r,t,n=!1){const l=e.computed(()=>En((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),a=e.ref({});function o(d){const u=d?.conditions;if(!u)return!0;const p=Array.isArray(u)?u[0]:u,y=r?.value?.[p];return Xn(y,u)}const s=(d=l.value,u=!0)=>(d.forEach(p=>{const y=[],f=Number(p?.minlength),g=Number(p?.maxlength);!Number.isNaN(f)&&Number.isFinite(f)&&y.push({type:"minlength",value:f}),!Number.isNaN(g)&&Number.isFinite(g)&&y.push({type:"maxlength",value:g});const h=[...y,...p.rules||[]];if(h.length){if(!o(p)){delete a.value[p.name];return}let k=!1,C=null;h.forEach(v=>{const x=Dd(r.value[p.name],v);x&&(k=!0,!C&&typeof x=="string"&&(C=x))}),k&&C?a.value[p.name]=C:delete a.value[p.name]}p.schema&&s(p.schema,!1)}),u&&Object.values(a.value).some(Boolean)?a.value:null),c=e.computed(()=>l.value?.filter(d=>d.hidden!==!0&&o(d)));return{errors:a,validate:s,reset:()=>{r.value={},a.value={}},visibleSchema:c}}const Ld={class:"flex w-full h-full min-h-0 gap-6"},Id={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},Ze=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(r,{expose:t,emit:n}){const l=n,a=r,o=e.useModel(r,"form"),s=e.useModel(r,"modelValue"),c=e.useModel(r,"values"),i=e.computed({get:()=>c.value??s.value,set:L=>{s.value=L,c.value=L}}),{errors:d,validate:u,reset:p,visibleSchema:y}=Td(i,a.schema,e.toRef(a,"disabled")),f=e.ref(null),g=e.ref(null),h=e.ref({}),k=e.computed(()=>a.navigation),C=e.computed(()=>a.navWidth),v=e.computed(()=>a.style?.columns),x=Object.freeze({container:12,label:3}),w=e.computed(()=>a.columns??v.value??x),A=e.computed(()=>a.columns!=null||v.value!=null),I=e.computed(()=>A.value?"horizontal":a.layout),V=L=>L?.columns?"horizontal":I.value,_=L=>L?.columns??w.value,S=()=>{l("update:modelValue",i.value),u(),l("handle-submit",i.value)},E=L=>{l("value-selected",L)},D=()=>{a.formId&&(i.value?.id!==void 0&&i.value?.id!==null&&i.value?.id!==""||(i.value={...i.value??{},id:a.formId}))};t({validate:u,reset:p,errors:d}),e.onMounted(()=>{D(),o.value={value:i.value,errors:d.value,reset:p,validate:u,formId:a.formId}}),e.watch(()=>a.formId,()=>{D()},{immediate:!0});function T(L,$){if(L===$)return!0;if(typeof L!="object"||typeof $!="object"||!L||!$)return!1;const M=Object.keys(L),N=Object.keys($);return M.length!==N.length?!1:M.every(H=>L[H]===$[H])}return e.provide("form",o),e.provide("values",i),e.provide("field-props",h),(L,$)=>(e.openBlock(),e.createElementBlock("div",Ld,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:g},[e.createElementVNode("form",{ref_key:"formRef",ref:f,onSubmit:e.withModifiers(S,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",I.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),(M,N)=>(e.openBlock(),e.createElementBlock("div",{key:M.name,class:e.normalizeClass(V(M)==="horizontal"?"col-span-12":`col-span-${M.col||12}`)},[e.createVNode(gr,{style:e.normalizeStyle(r.style),item:M,layout:V(M),columns:_(M),"model-value":i.value[M.name],"onUpdate:modelValue":H=>{const U=i.value[M.name];T(U,H)||(i.value[M.name]=H)},error:e.unref(d)[M.name],onValueSelected:E},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),V(M)==="settings"&&N+1!==e.unref(y).length?(e.openBlock(),e.createElementBlock("div",Id)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(Ed,{target:f.value,"scroll-container":g.value,enabled:k.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),Od={class:"relative"},zd={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},Rd={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"},Pd={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},jd={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Ud={class:"p-4 mim-h-0 h-full overflow-auto"},kr=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(r,{emit:t}){const n=r,l=t,a=e.ref(n.schema),o=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),c=e.ref(n.token||""),i=e.ref(n.mode),d=()=>{const g=n.method?.trim().toUpperCase();return g==="GET"||g==="POST"||g==="PUT"?g:i.value==="add"?"POST":"PUT"},u=()=>{pe.notify({type:"success",title:"Успішно",message:`Дані успішно ${i.value==="add"?"збережено":"оновлено"}`})},p=async g=>{if(console.log(g),g.ok){await g.json().catch(()=>({})),u(),l("save",o.value);return}if(g.status===400){const h=await g.json().catch(()=>({}));pe.notify({type:"warning",title:"Помилка валідації",message:h.message||"Некоректні дані (400)"});return}if(g.status===500){pe.notify({type:"error",title:"Серверна помилка",message:"Виникла помилка на сервері (500)"});return}pe.notify({type:"error",title:"Помилка",message:`Статус: ${g.status}`})};async function y(){const g=s.value.validate();if(g){pe.notify({type:"warning",title:"Помилка валідації",message:Object.entries(g).map(([k,C])=>`${k}: ${C}`).join(`
|
|
5
|
+
`)});return}const h=n.api?.trim();if(h){const k=d();try{const C=await fetch(h,{method:k,headers:k==="GET"?void 0:{"Content-Type":"application/json"},body:k==="GET"?void 0:JSON.stringify(o.value)});await p(C)}catch(C){pe.notify({type:"error",title:"Помилка з’єднання",message:C.message||"Не вдалося виконати запит"})}return}if(c.value)try{const k=await fetch(`/api/table/${c.value}`,{method:i.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(o.value)});await p(k)}catch(k){pe.notify({type:"error",title:"Помилка з’єднання",message:k.message||"Не вдалося виконати запит"})}else l("edit",o.value),f()}function f(){l("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const g=await fetch(`/api/template/form/${n.form}`);if(!g.ok){pe.notify({type:g.status>=400&&g.status<500?"warning":"error",title:"Error",message:`Error code: ${g.status}`});return}const h=await g.json();a.value=h.schema,h.token&&(c.value=h.token)}else if(n.token&&!n.defaultValue){c.value=n.token;const g=await fetch(`/api/form/${c.value}`);if(!g.ok){pe.notify({type:g.status>=400&&g.status<500?"warning":"error",title:"Error",message:`Error code: ${g.status}`});return}const h=await g.json();a.value=h.schema,h.data?o.value=h.data:i.value="add",h.obj&&(o.value={...o.value,...h.obj})}}catch(g){pe.notify({type:"error",title:"Error",message:g.message||"Unexpected error"}),console.error(g)}}),(g,h)=>(e.openBlock(),e.createElementBlock("div",Od,[e.createElementVNode("div",zd,[e.createElementVNode("div",Rd,[e.createElementVNode("div",Pd,[e.createElementVNode("h3",jd,e.toDisplayString(i.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:f,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"},[h[2]||(h[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(P.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",Ud,[a.value?(e.openBlock(),e.createBlock(Ze,{key:0,schema:a.value,values:o.value,"onUpdate:values":h[0]||(h[0]=k=>o.value=k),form:s.value,"onUpdate:form":h[1]||(h[1]=k=>s.value=k),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:f,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:y,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"}," Зберегти ")])])])]))}}),Hd=1440*60*1e3,qd=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],Kd=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],Gd=["нд","пн","вт","ср","чт","пт","сб"];function $e(r){return r instanceof Date&&!Number.isNaN(r.getTime())}const vt=r=>new Date(r.getTime());function bt(r){const t=vt(r);return t.setHours(0,0,0,0),t}function Ct(r){const t=vt(r);return t.setHours(23,59,59,999),t}function Bn(r){return bt(new Date(r.getFullYear(),r.getMonth(),1))}function Vn(r){return Ct(new Date(r.getFullYear(),r.getMonth()+1,0))}function Sn(r,t){const n=new Date(r),l=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const a=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(l,a)),n}function Wd(r,t){return Sn(r,-1)}function Yt(r,t){const n=new Date(r);return n.setFullYear(n.getFullYear()+t),n}function xr(r,t){return Yt(r,-t)}function wr(r){return bt(new Date(r.getFullYear(),0,1))}function vr(r){return Ct(new Date(r.getFullYear(),11,31))}function Yd(r){const t=Math.floor(r.getFullYear()/10)*10;return bt(new Date(t,0,1))}function Zd(r){const t=Math.floor(r.getFullYear()/10)*10+9;return Ct(new Date(t,11,31))}const Xe=r=>r.getFullYear(),Zt=r=>Math.floor(r.getFullYear()/10)*10;function Xd(r){const t=[];let n=bt(r.start);const l=bt(r.end);for(;n<=l;)t.push(vt(n)),n=new Date(n.getTime()+Hd);return t}function Jd(r){const t=[];let n=Bn(r.start);const l=Vn(r.end);for(;n<=l;)t.push(vt(n)),n=Sn(n,1);return t}function Qd(r){const t=[];let n=wr(r.start);const l=vr(r.end);for(;n<=l;)t.push(vt(n)),n=Yt(n,1);return t}function $n(r,t=1){const n=bt(r),l=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-l),n}function eu(r,t=1){const n=$n(r,t);return n.setDate(n.getDate()+6),Ct(n)}function tu(r,t,n=0){const l=$n(r,n),a=(t-n+7)%7;return l.setDate(l.getDate()+a),l}const Xt=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear()&&r.getMonth()===t.getMonth()&&r.getDate()===t.getDate(),An=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear()&&r.getMonth()===t.getMonth(),_r=(r,t)=>!!r&&!!t&&r.getFullYear()===t.getFullYear(),Cr=(r,t)=>!!r&&!!t&&Xt(r,t)&&r.getHours()===t.getHours(),nu=(r,t)=>!!r&&!!t&&Cr(r,t)&&r.getMinutes()===t.getMinutes();function ru(r,t){const n=r.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const Et=(r,t)=>!!r&&!!t&&r.getTime()<t.getTime(),Bt=(r,t)=>!!r&&!!t&&r.getTime()>t.getTime();function lu(r){const t=r.filter(n=>$e(n));if(t.length)return t.reduce((n,l)=>n.getTime()>=l.getTime()?n:l)}function au(r){const t=r.filter(n=>$e(n));if(t.length)return t.reduce((n,l)=>n.getTime()<=l.getTime()?n:l)}function Er(r,t){const n=vt(r);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const Jt=(r,t=2)=>String(r).padStart(t,"0");function Br(r,t){return t==="wide"?qd[r]:Kd[r]}function ou(r){return Gd[r]}const su=[{token:"LLLL",format:r=>Br(r.getMonth(),"wide")},{token:"LLL",format:r=>Br(r.getMonth(),"abbreviated")},{token:"EE",format:r=>ou(r.getDay())},{token:"yyyy",format:r=>String(r.getFullYear())},{token:"MM",format:r=>Jt(r.getMonth()+1)},{token:"dd",format:r=>Jt(r.getDate())},{token:"HH",format:r=>Jt(r.getHours())},{token:"mm",format:r=>Jt(r.getMinutes())}];function Qt(r,t){if(!$e(r))return"";let n="",l=0;for(;l<t.length;){const a=su.find(o=>t.startsWith(o.token,l));a?(n+=a.format(r),l+=a.token.length):(n+=t[l],l+=1)}return n}const iu={"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 Vr(r,t){const n=iu[t];if(!n){const a=new Date(r);return $e(a)?a:null}const l=r.match(n);if(!l)return null;switch(t){case"yyyy-MM-dd":{const[,a,o,s]=l,c=new Date(Number(a),Number(o)-1,Number(s));return $e(c)?c:null}case"dd.MM.yyyy":{const[,a,o,s]=l,c=new Date(Number(s),Number(o)-1,Number(a));return $e(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,a,o,s,c,i]=l,d=new Date(Number(s),Number(o)-1,Number(a),Number(c),Number(i));return $e(d)?d:null}case"HH:mm":{const[,a,o]=l,s=new Date;return s.setHours(Number(a),Number(o),0,0),s}case"MM.yyyy":{const[,a,o]=l;return new Date(Number(o),Number(a)-1,1)}case"yyyy":{const[,a]=l;return new Date(Number(a),0,1)}default:return null}}const cu=["year","month","day","time","custom"],du=e.defineComponent({components:{ChevronLeft:P.ChevronLeft,ChevronRight:P.ChevronRight},emits:{elementClick:r=>$e(r),left:()=>!0,right:()=>!0,heading:()=>!0},props:{headingClickable:{type:Boolean,default:!1},leftDisabled:{type:Boolean,default:!1},rightDisabled:{type:Boolean,default:!1},columnCount:{type:Number,default:7},items:{type:Array,default:()=>[]},viewMode:{type:String,required:!0,validate:r=>typeof r=="string"&&cu.includes(r)}}}),uu={class:"v3dp__heading"},pu=["disabled"],fu=["disabled"],mu={class:"v3dp__body"},hu={class:"v3dp__subheading"},gu={class:"v3dp__elements"},yu=["disabled","onClick"];function bu(r,t,n,l,a,o){const s=e.resolveComponent("ChevronLeft"),c=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["v3dp__popout",`v3dp__popout-${r.viewMode}`]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${r.columnCount}, 1fr)`}),onMousedown:t[3]||(t[3]=e.withModifiers(()=>{},["prevent"]))},[e.createElementVNode("div",uu,[e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__left",disabled:r.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(i=>r.$emit("left"),["stop","prevent"]))},[e.renderSlot(r.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,pu),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.headingClickable?"button":"span"),{class:"v3dp__heading__center",onClick:t[1]||(t[1]=e.withModifiers(i=>r.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(r.$slots,"heading",{},void 0,!0)]),_:3})),e.createElementVNode("button",{class:"v3dp__heading__button v3dp__heading__button__right",disabled:r.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(i=>r.$emit("right"),["stop","prevent"]))},[e.renderSlot(r.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"v3dp__heading__icon h-4 w-4"})],!0)],8,fu)]),e.createElementVNode("div",mu,["subheading"in r.$slots?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("div",hu,[e.renderSlot(r.$slots,"subheading",{},void 0,!0)]),t[4]||(t[4]=e.createElementVNode("hr",{class:"v3dp__divider"},null,-1))],64)):e.createCommentVNode("",!0),e.createElementVNode("div",gu,[e.renderSlot(r.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass([{selected:i.selected,current:i.current},`v3dp__element__button__${r.viewMode}`]),onClick:e.withModifiers(d=>r.$emit("elementClick",i.value),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(i.display),1)],10,yu))),128))],!0)])])],38)}const en=ue(du,[["render",bu],["__scopeId","data-v-744d2ba4"]]),ku=e.defineComponent({components:{PickerPopup:en},emits:{"update:pageDate":r=>$e(r),select:r=>$e(r)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(r,{emit:t}){const n=e.computed(()=>Yd(r.pageDate)),l=e.computed(()=>Zd(r.pageDate)),a=(p,y,f)=>!y&&!f?!0:!(y&&Xe(p)<Xe(y)||f&&Xe(p)>Xe(f)),o=e.computed(()=>Qd({start:n.value,end:l.value}).map(p=>({value:p,key:String(Xe(p)),display:Xe(p),selected:!!r.selected&&Xe(p)===Xe(r.selected),disabled:!a(p,r.lowerLimit,r.upperLimit)}))),s=e.computed(()=>{const p=Xe(n.value),y=Xe(l.value);return`${p} - ${y}`}),c=e.computed(()=>r.lowerLimit&&(Zt(r.lowerLimit)===Zt(r.pageDate)||Et(r.pageDate,r.lowerLimit))),i=e.computed(()=>r.upperLimit&&(Zt(r.upperLimit)===Zt(r.pageDate)||Bt(r.pageDate,r.upperLimit)));return{years:o,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",xr(r.pageDate,10)),nextPage:()=>t("update:pageDate",Yt(r.pageDate,10))}}});function xu(r,t,n,l,a,o){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:3,leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,items:r.years,viewMode:"year",onLeft:r.previousPage,onRight:r.nextPage,onElementClick:t[0]||(t[0]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const wu=ue(ku,[["render",xu]]),vu=e.defineComponent({components:{PickerPopup:en},emits:{"update:pageDate":r=>$e(r),select:r=>$e(r),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(r,{emit:t}){const n=e.computed(()=>wr(r.pageDate)),l=e.computed(()=>vr(r.pageDate)),a=e.computed(()=>y=>Qt(y,r.format)),o=(y,f,g)=>!f&&!g?!0:!(f&&Et(y,Bn(f))||g&&Bt(y,Vn(g))),s=e.computed(()=>Jd({start:n.value,end:l.value}).map(y=>({value:y,display:a.value(y),key:a.value(y),selected:!!r.selected&&An(r.selected,y),disabled:!o(y,r.lowerLimit,r.upperLimit)}))),c=e.computed(()=>Xe(n.value)),i=e.computed(()=>r.lowerLimit&&(_r(r.lowerLimit,r.pageDate)||Et(r.pageDate,r.lowerLimit))),d=e.computed(()=>r.upperLimit&&(_r(r.upperLimit,r.pageDate)||Bt(r.pageDate,r.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",xr(r.pageDate,1)),nextPage:()=>t("update:pageDate",Yt(r.pageDate,1))}}});function _u(r,t,n,l,a,o){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:r.months,leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,viewMode:"month",onLeft:r.previousPage,onRight:r.nextPage,onHeading:t[0]||(t[0]=c=>r.$emit("back")),onElementClick:t[1]||(t[1]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Cu=ue(vu,[["render",_u]]),Eu=e.defineComponent({components:{PickerPopup:en},emits:{"update:pageDate":r=>$e(r),select:r=>$e(r),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"dd"},headingFormat:{type:String,required:!1,default:"LLLL yyyy"},weekdayFormat:{type:String,required:!1,default:"EE"},weekStartsOn:{type:Number,required:!1,default:1,validator:r=>typeof r=="number"&&Number.isInteger(r)&&r>=0&&r<=6},customWeekdays:{type:Array,required:!1},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1}},setup(r,{emit:t}){const n=e.computed(()=>k=>C=>Qt(C,k)),l=e.computed(()=>Bn(r.pageDate)),a=e.computed(()=>Vn(r.pageDate)),o=e.computed(()=>({start:l.value,end:a.value})),s=e.computed(()=>({start:$n(l.value,r.weekStartsOn),end:eu(a.value,r.weekStartsOn)})),c=e.computed(()=>r.customWeekdays?.length===7?r.customWeekdays:null),i=e.computed(()=>{const k=r.weekStartsOn,C=c.value;if(C)return Array.from({length:7}).map((x,w)=>C[(k+w)%7]);const v=n.value(r.weekdayFormat);return Array.from(Array(7)).map((x,w)=>(k+w)%7).map(x=>tu(new Date,x,r.weekStartsOn)).map(v)}),d=(k,C,v,x)=>x?.dates?.some(w=>Xt(k,w))||x?.predicate?.(k)?!1:!C&&!v?!0:!(C&&Et(k,bt(C))||v&&Bt(k,Ct(v))),u=e.computed(()=>{const k=new Date,C=n.value(r.format);return Xd(s.value).map(v=>({value:v,display:C(v),selected:!!r.selected&&Xt(r.selected,v),current:Xt(k,v),disabled:!r.allowOutsideInterval&&!ru(v,o.value)||!d(v,r.lowerLimit,r.upperLimit,r.disabledDates),key:n.value("yyyy-MM-dd")(v)}))}),p=e.computed(()=>n.value(r.headingFormat)(r.pageDate)),y=e.computed(()=>r.lowerLimit&&(An(r.lowerLimit,r.pageDate)||Et(r.pageDate,r.lowerLimit))),f=e.computed(()=>r.upperLimit&&(An(r.upperLimit,r.pageDate)||Bt(r.pageDate,r.upperLimit)));return{weekDays:i,days:u,heading:p,leftDisabled:y,rightDisabled:f,previousPage:()=>t("update:pageDate",Wd(r.pageDate)),nextPage:()=>t("update:pageDate",Sn(r.pageDate,1))}}});function Bu(r,t,n,l,a,o){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:r.leftDisabled,rightDisabled:r.rightDisabled,items:r.days,viewMode:"day",onLeft:r.previousPage,onRight:r.nextPage,onHeading:t[0]||(t[0]=c=>r.$emit("back")),onElementClick:t[1]||(t[1]=c=>r.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.weekDays,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),3))),128))]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Vu=ue(Eu,[["render",Bu]]);function Sr(r,t){const n=r.getBoundingClientRect(),l={height:r.clientHeight,width:r.clientWidth},a=t.getBoundingClientRect();if(!(a.top>=n.top&&a.bottom<=n.top+l.height)){const s=a.top-n.top,c=a.bottom-n.bottom;Math.abs(s)<Math.abs(c)?r.scrollTop+=s:r.scrollTop+=c}}const Su=e.defineComponent({components:{PickerPopup:en},emits:{select:r=>$e(r),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1}},setup(r,{emit:t}){const n=e.ref(null),l=e.ref(null),a=e.computed(()=>r.pageDate??r.selected),o=e.ref(a.value.getHours()),s=e.ref(a.value.getMinutes());e.watch(()=>r.selected,f=>{let g=0,h=0;f&&(g=f.getHours(),h=f.getMinutes()),o.value=g,s.value=h});const c=e.computed(()=>[...Array(24).keys()].map(f=>({value:f,date:Er(new Date(a.value.getTime()),{hours:f,minutes:s.value,seconds:0}),selected:o.value===f,ref:e.ref(null)}))),i=e.computed(()=>[...Array(60).keys()].map(f=>({value:f,date:Er(new Date(a.value.getTime()),{hours:o.value,minutes:f,seconds:0}),selected:s.value===f,ref:e.ref(null)}))),d=f=>{s.value=f.value,t("select",f.date)},u=()=>{const f=c.value.find(h=>h.ref.value?.classList?.contains("selected")??!1),g=i.value.find(h=>h.ref.value?.classList?.contains("selected")??!1);f&&g&&(Sr(n.value,f.ref.value),Sr(l.value,g.ref.value))};return e.watch(()=>r.visible,f=>{f&&e.nextTick(u)}),{hoursListRef:n,minutesListRef:l,hours:o,minutes:s,hoursList:c,minutesList:i,padStartZero:f=>`0${f}`.substr(-2),selectMinutes:d,isEnabled:f=>!(r.disabledTime?.dates?.some(g=>Cr(f,g)&&nu(f,g))||r.disabledTime?.predicate?.(f)),scroll:u}}}),$u={ref:"hoursListRef",class:"v3dp__column"},Au=["disabled","onClick"],Fu={ref:"minutesListRef",class:"v3dp__column"},Nu=["disabled","onClick"];function Du(r,t,n,l,a,o){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:2,leftDisabled:!0,rightDisabled:!0,viewMode:"time",onHeading:t[0]||(t[0]=c=>r.$emit("back"))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.padStartZero(r.hours))+":"+e.toDisplayString(r.padStartZero(r.minutes)),1)]),body:e.withCtx(()=>[e.createElementVNode("div",$u,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.hoursList,c=>(e.openBlock(),e.createElementBlock("button",{key:c.value,ref_for:!0,ref:c.ref,class:e.normalizeClass([{selected:c.selected},"v3dp__element_button__hour"]),disabled:!r.isEnabled(c.date),onClick:e.withModifiers(i=>r.hours=c.value,["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(r.padStartZero(c.value)),1)],10,Au))),128))],512),e.createElementVNode("div",Fu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.minutesList,c=>(e.openBlock(),e.createElementBlock("button",{key:c.value,ref_for:!0,ref:c.ref,class:e.normalizeClass([{selected:c.selected},"v3dp__element_button__minute"]),disabled:!r.isEnabled(c.date),onClick:e.withModifiers(i=>r.selectMinutes(c),["stop","prevent"])},[e.createElementVNode("span",null,e.toDisplayString(r.padStartZero(c.value)),1)],10,Nu))),128))],512)]),_:1})}const Mu=ue(Su,[["render",Du],["__scopeId","data-v-43e01bf7"]]),tn=["time","day","month","year"],Tu=(r,t,n=void 0)=>{let l=n||new Date;const a=lu([r,l]);a&&(l=a);const o=au([t,l]);return o&&(l=o),l},Lu=e.defineComponent({components:{YearPicker:wu,MonthPicker:Cu,DayPicker:Vu,TimePicker:Mu},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:r=>typeof r=="string"&&tn.includes(r)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:r=>[0,1,2,3,4,5,6].includes(r)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:r=>typeof r=="string"&&tn.includes(r)}},emits:{"update:modelValue":r=>r==null||$e(r),decadePageChanged:r=>!0,yearPageChanged:r=>!0,monthPageChanged:r=>!0,opened:()=>!0,closed:()=>!0},setup(r,{emit:t,attrs:n}){const l=e.ref("none"),a=e.ref(r.startingViewDate),o=e.ref(null),s=e.ref(!1),c=e.ref(""),i=M=>{const N=M.replace(/[a-zA-Z]/g,"0");return/0/.test(N)?N:""},d=e.computed(()=>i(r.inputFormat));let u=null,p=null;const y=()=>{u?.destroy(),u=null},f=async()=>{if(!p){const{default:M}=await Promise.resolve().then(()=>Ln);p=M}return p},g=()=>{u&&u.value!==c.value&&(u.value=c.value??"")},h=async()=>{if(y(),!o.value||!d.value)return;u=(await f())(o.value,{mask:d.value,lazy:!0,overwrite:!0}),g()};e.watchEffect(()=>{if(!c.value)return;const M=Vr(c.value,r.inputFormat);M&&(a.value=M)}),e.watchEffect(()=>{c.value=r.modelValue&&$e(r.modelValue)?Qt(r.modelValue,r.inputFormat):""}),e.onMounted(()=>{d.value&&e.nextTick(()=>{h()})}),e.onBeforeUnmount(()=>{y()}),e.watch(d,M=>{M?e.nextTick(()=>{h()}):y()}),e.watch(c,()=>{g()});const k=(M="none")=>{r.disabled||(M!=="none"&&l.value==="none"&&(a.value=r.modelValue||Tu(r.lowerLimit,r.upperLimit,a.value)),l.value=M,t(M!=="none"?"opened":"closed"))};e.watchEffect(()=>{r.disabled&&(l.value="none")});const C=(M,N)=>{a.value=N,M==="year"?t("decadePageChanged",N):M==="month"?t("yearPageChanged",N):M==="day"&&t("monthPageChanged",N)},v=M=>{a.value=M,r.minimumView==="year"?(k("none"),t("update:modelValue",M)):l.value="month"},x=M=>{a.value=M,r.minimumView==="month"?(k("none"),t("update:modelValue",M)):l.value="day"},w=M=>{a.value=M,r.minimumView==="day"?(k("none"),t("update:modelValue",M)):l.value="time"},A=M=>{k("none"),t("update:modelValue",M)},I=()=>{r.clearable&&(k("none"),t("update:modelValue",null),a.value=r.startingViewDate)},V=()=>s.value=!0,_=()=>k(D.value),S=()=>{s.value=!1,k()},E=M=>{const N=M.keyCode?M.keyCode:M.which;if([27,13].includes(N)&&o.value.blur(),r.typeable){const U=Vr(o.value.value,r.inputFormat);U&&c.value===Qt(U,r.inputFormat)&&(c.value=o.value.value,t("update:modelValue",U))}},D=e.computed(()=>{const M=tn.indexOf(r.startingView),N=tn.indexOf(r.minimumView);return M<N?r.minimumView:r.startingView}),T=M=>Object.fromEntries(Object.entries(M??{}).filter(([N,H])=>N.startsWith("--"))),L=e.computed(()=>r.weekDayNames?.length===7?r.weekDayNames:void 0);return{blur:S,focus:_,click:V,input:c,inputRef:o,pageDate:a,renderView:k,updatePageDate:C,selectYear:v,selectMonth:x,selectDay:w,selectTime:A,keyUp:E,normalizedWeekdayNames:L,viewShown:l,goBackFromTimepicker:()=>r.startingView==="time"&&r.minimumView==="time"?null:l.value="day",clearModelValue:I,initialView:D,log:M=>console.log(M),variables:T}}}),Iu={class:"v3dp__input_wrapper"},Ou=["readonly","placeholder","disabled","tabindex"],zu={class:"v3dp__clearable"};function Ru(r,t,n,l,a,o){const s=e.resolveComponent("year-picker"),c=e.resolveComponent("month-picker"),i=e.resolveComponent("day-picker"),d=e.resolveComponent("time-picker");return e.openBlock(),e.createElementBlock("div",{class:"v3dp__datepicker",style:e.normalizeStyle(r.variables(r.$attrs.style))},[e.createElementVNode("div",Iu,[e.withDirectives(e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",readonly:!r.typeable,"onUpdate:modelValue":t[0]||(t[0]=u=>r.input=u)},r.$attrs,{placeholder:r.placeholder,disabled:r.disabled,tabindex:r.disabled?-1:0,onKeyup:t[1]||(t[1]=(...u)=>r.keyUp&&r.keyUp(...u)),onBlur:t[2]||(t[2]=(...u)=>r.blur&&r.blur(...u)),onFocus:t[3]||(t[3]=(...u)=>r.focus&&r.focus(...u)),onClick:t[4]||(t[4]=(...u)=>r.click&&r.click(...u))}),null,16,Ou),[[e.vModelText,r.input]]),e.withDirectives(e.createElementVNode("div",zu,[e.renderSlot(r.$slots,"clear",{onClear:r.clearModelValue},()=>[e.createElementVNode("i",{onClick:t[5]||(t[5]=u=>r.clearModelValue())},"x")])],512),[[e.vShow,r.clearable&&r.modelValue]])]),e.withDirectives(e.createVNode(s,{pageDate:r.pageDate,"onUpdate:pageDate":t[6]||(t[6]=u=>r.updatePageDate("year",u)),selected:r.modelValue,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,onSelect:r.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,r.viewShown==="year"]]),e.withDirectives(e.createVNode(c,{pageDate:r.pageDate,"onUpdate:pageDate":t[7]||(t[7]=u=>r.updatePageDate("month",u)),selected:r.modelValue,onSelect:r.selectMonth,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,format:r.monthListFormat,onBack:t[8]||(t[8]=u=>r.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,r.viewShown==="month"]]),e.withDirectives(e.createVNode(i,{pageDate:r.pageDate,"onUpdate:pageDate":t[9]||(t[9]=u=>r.updatePageDate("day",u)),selected:r.modelValue,weekStartsOn:r.weekStartsOn,lowerLimit:r.lowerLimit,upperLimit:r.upperLimit,headingFormat:r.dayPickerHeadingFormat,disabledDates:r.disabledDates,weekdayFormat:r.weekdayFormat,"allow-outside-interval":r.allowOutsideInterval,format:r.dayFormat,"custom-weekdays":r.normalizedWeekdayNames,onSelect:r.selectDay,onBack:t[10]||(t[10]=u=>r.viewShown="month")},null,8,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect"]),[[e.vShow,r.viewShown==="day"]]),e.withDirectives(e.createVNode(d,{pageDate:r.pageDate,visible:r.viewShown==="time",selected:r.modelValue,disabledTime:r.disabledTime,onSelect:r.selectTime,onBack:r.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,r.viewShown==="time"]])],4)}const Pu=ue(Lu,[["render",Ru]]),ju=ue(e.defineComponent({__name:"vs-input-date2",props:{clearable:{type:Boolean,default:!0},now:{type:Boolean},editable:{type:Boolean,default:!0},time:{type:Boolean},isInfinity:{type:Boolean},mode:{default:"date"},weekStart:{},dayNames:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(r,{emit:t}){const n=r,l=t,{inputClass:a}=Ne(n.style),o=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),s={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},c=e.computed(()=>n.placeholder||s[o.value]||""),i=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",a.value,n.customClass,{"!border-red-600":n.error}]),d=e.computed(()=>!n.modelValue&&n.now?new Date:null),u=e.computed({get:()=>x(n.modelValue??d.value,o.value)||void 0,set:N=>l("update:modelValue",w(N,o.value))}),p=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],y=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:p}),f=e.computed(()=>{const N=n.weekStart,H=typeof N=="string"?Number(N):N;return H===void 0||Number.isNaN(H)?1:Math.min(6,Math.max(0,H))}),g=e.computed(()=>{switch(o.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"}}}),h={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"},k=e.computed(()=>h[o.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"})),v=e.ref(!1);e.watch(()=>n.modelValue,N=>{N?v.value=!0:n.now||(v.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!v.value&&(l("update:modelValue",w(new Date,o.value)),v.value=!0)});function x(N,H){if(!N)return null;if(N instanceof Date&&!Number.isNaN(N.getTime()))return N;if(typeof N!="string")return null;switch(H){case"datetime":return _(N);case"time":return D(N);case"month":return S(N);case"year":return E(N);case"week":return T(N);default:return V(N)}}function w(N,H){if(!N)return null;const U=N instanceof Date?N:x(N,H);if(!U)return null;switch(H){case"datetime":return`${A(U)}T${I(U)}`;case"time":return I(U);case"month":return`${U.getFullYear()}-${M(U.getMonth()+1)}`;case"year":return`${U.getFullYear()}`;case"week":{const{year:q,week:Q}=L(U);return`${q}-W${M(Q)}`}default:return A(U)}}function A(N){return`${N.getFullYear()}-${M(N.getMonth()+1)}-${M(N.getDate())}`}function I(N){return`${M(N.getHours())}:${M(N.getMinutes())}`}function V(N){const H=N.split("-");if(H.length<3)return null;const[U,q,Q]=H.map(Number);return!U||!q||!Q?null:new Date(U,q-1,Q)}function _(N){const H=N.includes("T")?N:N.replace(" ","T"),U=new Date(H);return Number.isNaN(U.getTime())?null:U}function S(N){const[H,U]=N.split("-").map(Number);return!H||Number.isNaN(U)?null:new Date(H,(U||1)-1,1)}function E(N){const H=Number(N);return H?new Date(H,0,1):null}function D(N){const H=N.match(/^(\d{1,2}):(\d{2})$/);if(!H)return null;const[,U,q]=H,Q=new Date;return Q.setHours(Number(U),Number(q),0,0),Q}function T(N){const H=N.match(/^(\d{4})-W(\d{2})$/);if(!H)return null;const[,U,q]=H,Q=Number(q);return $(Number(U),Q)}function L(N){const H=new Date(Date.UTC(N.getFullYear(),N.getMonth(),N.getDate())),U=H.getUTCDay()||7;H.setUTCDate(H.getUTCDate()+4-U);const q=new Date(Date.UTC(H.getUTCFullYear(),0,1)),Q=Math.ceil(((H.getTime()-q.getTime())/864e5+1)/7);return{year:H.getUTCFullYear(),week:Q}}function $(N,H){if(!N||!H)return null;const U=new Date(N,0,1+(H-1)*7),q=U.getDay(),Q=U;return q<=4?Q.setDate(U.getDate()-U.getDay()+1):Q.setDate(U.getDate()+8-U.getDay()),Q}function M(N){return String(N).padStart(2,"0")}return(N,H)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass]),style:e.normalizeStyle(C.value)},[e.createVNode(Pu,{modelValue:u.value,"onUpdate:modelValue":H[0]||(H[0]=U=>u.value=U),placeholder:c.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":y.value,"week-starts-on":f.value,"starting-view":g.value.startingView,"minimum-view":g.value.minimumView,"input-format":k.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"]]),Uu={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"}}},Hu={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:"Скасувати"}}},$r=Uu.form.richtext,Ar=Hu.form.richtext,Fn={en:{form:{richtext:$r}},uk:{form:{richtext:Ar}}},Fr=(r={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=pe.modal({title:r.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:kr,contentProps:{...r,onClose:()=>{t(null),n()},onSave:l=>{t(l),n()}}})});Ze.install=function(t){t.component("VForm",Ze),Object.assign(t.config.globalProperties,{$form:Fr}),t.provide("form",Fr),window.v3plugin||(window.v3plugin={})};function ct(r){return typeof r=="string"||r instanceof String}function Nr(r){var t;return typeof r=="object"&&r!=null&&(r==null||(t=r.constructor)==null?void 0:t.name)==="Object"}function Dr(r,t){return Array.isArray(t)?Dr(r,(n,l)=>t.includes(l)):Object.entries(r).reduce((n,l)=>{let[a,o]=l;return t(o,a)&&(n[a]=o),n},{})}const ne={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function Mr(r){switch(r){case ne.LEFT:return ne.FORCE_LEFT;case ne.RIGHT:return ne.FORCE_RIGHT;default:return r}}function Nn(r){return r.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function nn(r,t){if(t===r)return!0;const n=Array.isArray(t),l=Array.isArray(r);let a;if(n&&l){if(t.length!=r.length)return!1;for(a=0;a<t.length;a++)if(!nn(t[a],r[a]))return!1;return!0}if(n!=l)return!1;if(t&&r&&typeof t=="object"&&typeof r=="object"){const o=t instanceof Date,s=r instanceof Date;if(o&&s)return t.getTime()==r.getTime();if(o!=s)return!1;const c=t instanceof RegExp,i=r instanceof RegExp;if(c&&i)return t.toString()==r.toString();if(c!=i)return!1;const d=Object.keys(t);for(a=0;a<d.length;a++)if(!Object.prototype.hasOwnProperty.call(r,d[a]))return!1;for(a=0;a<d.length;a++)if(!nn(r[d[a]],t[d[a]]))return!1;return!0}else if(t&&r&&typeof t=="function"&&typeof r=="function")return t.toString()===r.toString();return!1}class qu{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?ne.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?ne.RIGHT:ne.LEFT}}function de(r,t){return new de.InputMask(r,t)}function Tr(r){if(r==null)throw new Error("mask property should be defined");return r instanceof RegExp?de.MaskedRegExp:ct(r)?de.MaskedPattern:r===Date?de.MaskedDate:r===Number?de.MaskedNumber:Array.isArray(r)||r===Array?de.MaskedDynamic:de.Masked&&r.prototype instanceof de.Masked?r:de.Masked&&r instanceof de.Masked?r.constructor:r instanceof Function?de.MaskedFunction:(console.warn("Mask not found for mask",r),de.Masked)}function _t(r){if(!r)throw new Error("Options in not defined");if(de.Masked){if(r.prototype instanceof de.Masked)return{mask:r};const{mask:t=void 0,...n}=r instanceof de.Masked?{mask:r}:Nr(r)&&r.mask instanceof de.Masked?r:{};if(t){const l=t.mask;return{...Dr(t,(a,o)=>!o.startsWith("_")),mask:t.constructor,_mask:l,...n}}}return Nr(r)?{...r}:{mask:r}}function tt(r){if(de.Masked&&r instanceof de.Masked)return r;const t=_t(r),n=Tr(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)}de.createMask=tt;class rn{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}}de.MaskElement=rn;const Lr=90,Ku=89;class Vt extends rn{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,l;return(t=(n=(l=this.input).getRootNode)==null?void 0:n.call(l))!=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===Lr&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===Ku&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===Lr&&(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={}}}de.HTMLMaskElement=Vt;class Ir extends Vt{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}}de.HTMLMaskElement=Vt;class Dn extends Vt{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),l=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||l==null||l<a?l:a}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),l=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||l==null||l>a?l:a}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const l=this.rootElement.createRange();l.setStart(this.input.firstChild||this.input,t),l.setEnd(this.input.lastChild||this.input,n);const a=this.rootElement,o=a.getSelection&&a.getSelection();o&&(o.removeAllRanges(),o.addRange(l))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}de.HTMLContenteditableMaskElement=Dn;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 Or{constructor(t,n){this.el=t instanceof rn?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new Dn(t):new Ir(t),this.masked=tt(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 de.Masked)&&this.masked.constructor===Tr(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof de.Masked?t:tt({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 l=this._listeners[t];l&&l.forEach(a=>a(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,l=this.masked.value,a=this.masked.rawInputValue,o=this.displayValue,s=this.unmaskedValue!==n||this.value!==l||this._rawInputValue!==a;this._unmaskedValue=n,this._value=l,this._rawInputValue=a,this.el.value!==o&&(this.el.value=o),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,...l}=t,a=!this.maskEquals(n),o=this.masked.optionsIsChanged(l);a&&(this.mask=n),o&&this.masked.updateOptions(l),(a||o)&&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,ne.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 l=this._listeners[t].indexOf(n);return l>=0&&this._listeners[t].splice(l,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new qu({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),l=this.masked.rawInputValue,a=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,o=l===this.masked.rawInputValue?n.removeDirection:ne.NONE;let s=this.masked.nearestInputPos(n.startChangePos+a,o);o!==ne.NONE&&(s=this.masked.nearestInputPos(s,ne.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}}de.InputMask=Or;class he{static normalize(t){return Array.isArray(t)?t:[t,new he]}constructor(t){Object.assign(this,{inserted:"",rawInserted:"",tailShift:0,skip:!1},t)}aggregate(t){return this.inserted+=t.inserted,this.rawInserted+=t.rawInserted,this.tailShift+=t.tailShift,this.skip=this.skip||t.skip,this}get offset(){return this.tailShift+this.inserted.length}get consumed(){return!!this.rawInserted||this.skip}equals(t){return this.inserted===t.inserted&&this.tailShift===t.tailShift&&this.rawInserted===t.rawInserted&&this.skip===t.skip}}de.ChangeDetails=he;class nt{constructor(t,n,l){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=l}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 Ae{constructor(t){this._value="",this._update({...Ae.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,l){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 nt(this.extractInput(t,n),t)}appendTail(t){return ct(t)&&(t=new nt(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new he({inserted:t,rawInserted:t})):new he}_appendChar(t,n,l){n===void 0&&(n={});const a=this.state;let o;if([t,o]=this.doPrepareChar(t,n),t&&(o=o.aggregate(this._appendCharRaw(t,n)),!o.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=a;let c=this.pad(n);const i=this._appendCharRaw(t,n);c=c.aggregate(i),i.rawInserted||c.equals(o)?o=c:this.state=s}if(o.inserted){let s,c=this.doValidate(n)!==!1;if(c&&l!=null){const i=this.state;if(this.overwrite===!0){s=l.state;for(let u=0;u<o.rawInserted.length;++u)l.unshift(this.displayValue.length-o.tailShift)}let d=this.appendTail(l);if(c=d.rawInserted.length===l.toString().length,!(c&&d.inserted)&&this.overwrite==="shift"){this.state=i,s=l.state;for(let u=0;u<o.rawInserted.length;++u)l.shift();d=this.appendTail(l),c=d.rawInserted.length===l.toString().length}c&&d.inserted&&(this.state=i)}c||(o=new he,this.state=a,l&&s&&(l.state=s))}return o}_appendPlaceholder(){return new he}_appendEager(){return new he}append(t,n,l){if(!ct(t))throw new Error("value should be string");const a=ct(l)?new nt(String(l)):l;n!=null&&n.tail&&(n._beforeTailState=this.state);let o;[t,o]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const c=this._appendChar(t[s],n,a);if(!c.rawInserted&&!this.doSkipInvalid(t[s],n,a))break;o.aggregate(c)}return(this.eager===!0||this.eager==="append")&&n!=null&&n.input&&t&&o.aggregate(this._appendEager()),a!=null&&(o.tailShift+=this.appendTail(a).tailShift),o}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(n),new he}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,l=this.value,a=t();return this.rawInputValue=n,this.value&&this.value!==l&&l.indexOf(this.value)===0&&(this.append(l.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,a}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,l=t(this);return this.state=n,delete this._isolated,l}doSkipInvalid(t,n,l){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),he.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),he.normalize(this.prepareChar?this.prepareChar(t,this,n):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,n,l,a,o){l===void 0&&(l=""),a===void 0&&(a=ne.NONE),o===void 0&&(o={input:!0});const s=t+n,c=this.extractTail(s),i=this.eager===!0||this.eager==="remove";let d;i&&(a=Mr(a),d=this.extractInput(0,s,{raw:!0}));let u=t;const p=new he;if(a!==ne.NONE&&(u=this.nearestInputPos(t,n>1&&t!==0&&!i?ne.NONE:a),p.tailShift=u-t),p.aggregate(this.remove(u)),i&&a!==ne.NONE&&d===this.rawInputValue)if(a===ne.FORCE_LEFT){let y;for(;d===this.rawInputValue&&(y=this.displayValue.length);)p.aggregate(new he({tailShift:-1})).aggregate(this.remove(y-1))}else a===ne.FORCE_RIGHT&&c.unshift();return p.aggregate(this.append(l,o,c))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!nn(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||Ae.EMPTY_VALUES.includes(t)&&Ae.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new he}}Ae.DEFAULTS={skipInvalid:!0},Ae.EMPTY_VALUES=[void 0,null,""],de.Masked=Ae;class dt{constructor(t,n){t===void 0&&(t=[]),n===void 0&&(n=0),this.chunks=t,this.from=n}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=ct(t)?new nt(String(t)):t;const n=this.chunks[this.chunks.length-1],l=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof nt)l?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof dt){if(t.stop==null){let a;for(;t.chunks.length&&t.chunks[0].stop==null;)a=t.chunks.shift(),a.from+=t.from,this.extend(a)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof de.MaskedPattern))return new nt(this.toString()).appendTo(t);const n=new he;for(let l=0;l<this.chunks.length;++l){const a=this.chunks[l],o=t._mapPosToBlock(t.displayValue.length),s=a.stop;let c;if(s!=null&&(!o||o.index<=s)&&((a instanceof dt||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),c=a instanceof dt&&t._blocks[s]),c){const i=c.appendTail(a);n.aggregate(i);const d=a.toString().slice(i.rawInserted.length);d&&n.aggregate(t.append(d,{tail:!0}))}else n.aggregate(t.append(a.toString(),{tail:!0}))}return n}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:n,...l}=t;Object.assign(this,l),this.chunks=n.map(a=>{const o="chunks"in a?new dt:new nt;return o.state=a,o})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let l=0;for(;l<this.chunks.length;){const a=this.chunks[l],o=a.unshift(n);if(a.toString()){if(!o)break;++l}else this.chunks.splice(l,1);if(o)return o}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],l=n.shift();if(n.toString()){if(!l)break;--t}else this.chunks.splice(t,1);if(l)return l}return""}}class Gu{constructor(t,n){this.masked=t,this._log=[];const{offset:l,index:a}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=l,this.index=a,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ne.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,ne.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ne.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ne.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,ne.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ne.NONE),!0})}}class Mn{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(n),this._value||(this._isRawInput=!1),new he}nearestInputPos(t,n){n===void 0&&(n=ne.NONE);const l=0,a=this._value.length;switch(n){case ne.LEFT:case ne.FORCE_LEFT:return l;case ne.NONE:case ne.RIGHT:case ne.FORCE_RIGHT:default:return a}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,l){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),l===void 0&&(l={}),l.raw&&this._isRawInput&&this._value.slice(t,n)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new he;const l=this.eager===!0||this.eager==="append",o=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!l)&&!n.tail,s=new he({inserted:this.char,rawInserted:o?this.char:""});return this._value=this.char,this._isRawInput=o&&(n.raw||n.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new he;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new nt("")}appendTail(t){return ct(t)&&(t=new nt(String(t))),t.appendTo(this)}append(t,n,l){const a=this._appendChar(t[0],n);return l!=null&&(a.tailShift+=this.appendTail(l).tailShift),a}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class St{constructor(t){const{parent:n,isOptional:l,placeholderChar:a,displayChar:o,lazy:s,eager:c,...i}=t;this.masked=tt(i),Object.assign(this,{parent:n,isOptional:l,placeholderChar:a,displayChar:o,lazy:s,eager:c})}reset(){this.isFilled=!1,this.masked.reset()}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),t===0&&n>=1?(this.isFilled=!1,this.masked.remove(t,n)):new he}get value(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}get unmaskedValue(){return this.masked.unmaskedValue}get rawInputValue(){return this.masked.rawInputValue}get displayValue(){return this.masked.value&&this.displayChar||this.value}get isComplete(){return!!this.masked.value||this.isOptional}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new he;const l=this.masked.state;let a=this.masked._appendChar(t,this.currentMaskFlags(n));return a.inserted&&this.doValidate(n)===!1&&(a=new he,this.masked.state=l),!a.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(a.inserted=this.placeholderChar),a.skip=!a.inserted&&!this.isOptional,this.isFilled=!!a.inserted,a}append(t,n,l){return this.masked.append(t,this.currentMaskFlags(n),l)}_appendPlaceholder(){return this.isFilled||this.isOptional?new he:(this.isFilled=!0,new he({inserted:this.placeholderChar}))}_appendEager(){return new he}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,l){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,l)}nearestInputPos(t,n){n===void 0&&(n=ne.NONE);const l=0,a=this.value.length,o=Math.min(Math.max(t,l),a);switch(n){case ne.LEFT:case ne.FORCE_LEFT:return this.isComplete?o:l;case ne.RIGHT:case ne.FORCE_RIGHT:return this.isComplete?o:a;case ne.NONE:default:return o}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.value.slice(t,n).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var n;return{...t,_beforeTailState:(t==null||(n=t._beforeTailState)==null?void 0:n.masked)||t?._beforeTailState}}pad(t){return new he}}St.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 zr extends Ae{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=l=>l.search(n)>=0),super._update(t)}}de.MaskedRegExp=zr;class Fe extends Ae{constructor(t){super({...Fe.DEFAULTS,...t,definitions:Object.assign({},St.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 l=!1,a=!1;for(let o=0;o<n.length;++o){if(this.blocks){const d=n.slice(o),u=Object.keys(this.blocks).filter(y=>d.indexOf(y)===0);u.sort((y,f)=>f.length-y.length);const p=u[0];if(p){const{expose:y,repeat:f,...g}=_t(this.blocks[p]),h={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...g,repeat:f,parent:this},k=f!=null?new de.RepeatBlock(h):tt(h);k&&(this._blocks.push(k),y&&(this.exposeBlock=k),this._maskedBlocks[p]||(this._maskedBlocks[p]=[]),this._maskedBlocks[p].push(this._blocks.length-1)),o+=p.length-1;continue}}let s=n[o],c=s in t;if(s===Fe.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){l=!l;continue}if(s==="["||s==="]"){a=!a;continue}if(s===Fe.ESCAPE_CHAR){if(++o,s=n[o],!s)break;c=!1}const i=c?new St({isOptional:a,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,..._t(t[s]),parent:this}):new Mn({char:s,eager:this.eager,isUnmasking:l});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,...l}=t;this._blocks.forEach((a,o)=>a.state=n[o]),super.state=l}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,n)=>t+=n.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(n),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,n)=>t+=n.value,"")}set value(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(n),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(n),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,n)=>t+=n.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const n=new he;let l=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(l==null)return n;this._blocks[l].isFilled&&++l;for(let a=l;a<this._blocks.length;++a){const o=this._blocks[a]._appendEager();if(!o.inserted)break;n.aggregate(o)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const l=this._mapPosToBlock(this.displayValue.length),a=new he;if(!l)return a;for(let s=l.index,c;c=this._blocks[s];++s){var o;const i=c._appendChar(t,{...n,_beforeTailState:(o=n._beforeTailState)==null||(o=o._blocks)==null?void 0:o[s]});if(a.aggregate(i),i.consumed)break}return a}extractTail(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const l=new dt;return t===n||this._forEachBlocksInRange(t,n,(a,o,s,c)=>{const i=a.extractTail(s,c);i.stop=this._findStopBefore(o),i.from=this._blockStartPos(o),i instanceof dt&&(i.blockIndex=o),l.extend(i)}),l}extractInput(t,n,l){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),l===void 0&&(l={}),t===n)return"";let a="";return this._forEachBlocksInRange(t,n,(o,s,c,i)=>{a+=o.extractInput(c,i,l)}),a}_findStopBefore(t){let n;for(let l=0;l<this._stops.length;++l){const a=this._stops[l];if(a<=t)n=a;else break}return n}_appendPlaceholder(t){const n=new he;if(this.lazy&&t==null)return n;const l=this._mapPosToBlock(this.displayValue.length);if(!l)return n;const a=l.index,o=t??this._blocks.length;return this._blocks.slice(a,o).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 l=0;l<this._blocks.length;++l){const a=this._blocks[l],o=n.length;if(n+=a.displayValue,t<=n.length)return{index:l,offset:t-o}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,l)=>n+=l.displayValue.length,0)}_forEachBlocksInRange(t,n,l){n===void 0&&(n=this.displayValue.length);const a=this._mapPosToBlock(t);if(a){const o=this._mapPosToBlock(n),s=o&&a.index===o.index,c=a.offset,i=o&&s?o.offset:this._blocks[a.index].displayValue.length;if(l(this._blocks[a.index],a.index,c,i),o&&!s){for(let d=a.index+1;d<o.index;++d)l(this._blocks[d],d,0,this._blocks[d].displayValue.length);l(this._blocks[o.index],o.index,0,o.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const l=super.remove(t,n);return this._forEachBlocksInRange(t,n,(a,o,s,c)=>{l.aggregate(a.remove(s,c))}),l}nearestInputPos(t,n){if(n===void 0&&(n=ne.NONE),!this._blocks.length)return 0;const l=new Gu(this,t);if(n===ne.NONE)return l.pushRightBeforeInput()||(l.popState(),l.pushLeftBeforeInput())?l.pos:this.displayValue.length;if(n===ne.LEFT||n===ne.FORCE_LEFT){if(n===ne.LEFT){if(l.pushRightBeforeFilled(),l.ok&&l.pos===t)return t;l.popState()}if(l.pushLeftBeforeInput(),l.pushLeftBeforeRequired(),l.pushLeftBeforeFilled(),n===ne.LEFT){if(l.pushRightBeforeInput(),l.pushRightBeforeRequired(),l.ok&&l.pos<=t||(l.popState(),l.ok&&l.pos<=t))return l.pos;l.popState()}return l.ok?l.pos:n===ne.FORCE_LEFT?0:(l.popState(),l.ok||(l.popState(),l.ok)?l.pos:0)}return n===ne.RIGHT||n===ne.FORCE_RIGHT?(l.pushRightBeforeInput(),l.pushRightBeforeRequired(),l.pushRightBeforeFilled()?l.pos:n===ne.FORCE_RIGHT?this.displayValue.length:(l.popState(),l.ok||(l.popState(),l.ok)?l.pos:this.nearestInputPos(t,ne.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let l=0;return this._forEachBlocksInRange(t,n,(a,o,s,c)=>{l+=a.totalInputPositions(s,c)}),l}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(l=>this._blocks[l]):[]}pad(t){const n=new he;return this._forEachBlocksInRange(0,this.displayValue.length,l=>n.aggregate(l.pad(t))),n}}Fe.DEFAULTS={...Ae.DEFAULTS,lazy:!0,placeholderChar:"_"},Fe.STOP_CHAR="`",Fe.ESCAPE_CHAR="\\",Fe.InputDefinition=St,Fe.FixedDefinition=Mn,de.MaskedPattern=Fe;class $t extends Fe{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:l=this.from||0,maxLength:a=this.maxLength||0,autofix:o=this.autofix,...s}=t;this.to=n,this.from=l,this.maxLength=Math.max(String(n).length,a),this.autofix=o;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="",l="";const[,a,o]=t.match(/^(\D*)(\d*)(\D*)/)||[];return o&&(n="0".repeat(a.length)+o,l="9".repeat(a.length)+o),n=n.padEnd(this.maxLength,"0"),l=l.padEnd(this.maxLength,"9"),[n,l]}doPrepareChar(t,n){n===void 0&&(n={});let l;return[t,l]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(l.skip=!this.isComplete),[t,l]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const l=String(this.from).padStart(this.maxLength,"0"),a=String(this.to).padStart(this.maxLength,"0"),[o,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(l[this.value.length],n):Number(o)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(l[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(a[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[a,o]=this.boundaries(n);return this.from<=Number(o)&&Number(a)<=this.to&&super.doValidate(t)}pad(t){const n=new he;if(this.value.length===this.maxLength)return n;const l=this.value,a=this.maxLength-this.value.length;if(a){this.reset();for(let o=0;o<a;++o)n.aggregate(super._appendCharRaw("0",t));l.split("").forEach(o=>this._appendCharRaw(o))}return n}}de.MaskedRange=$t;const Wu="d{.}`m{.}`Y";class rt extends Fe{static extractPatternOptions(t){const{mask:n,pattern:l,...a}=t;return{...a,mask:ct(n)?n:l}}constructor(t){super(rt.extractPatternOptions({...rt.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:l,blocks:a,...o}={...rt.DEFAULTS,...t},s=Object.assign({},rt.GET_DEFAULT_BLOCKS());t.min&&(s.Y.from=t.min.getFullYear()),t.max&&(s.Y.to=t.max.getFullYear()),t.min&&t.max&&s.Y.from===s.Y.to&&(s.m.from=t.min.getMonth()+1,s.m.to=t.max.getMonth()+1,s.m.from===s.m.to&&(s.d.from=t.min.getDate(),s.d.to=t.max.getDate())),Object.assign(s,this.blocks,a),super._update({...o,mask:ct(n)?n:l,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(rt.extractPatternOptions(t))}}rt.GET_DEFAULT_BLOCKS=()=>({d:{mask:$t,from:1,to:31,maxLength:2},m:{mask:$t,from:1,to:12,maxLength:2},Y:{mask:$t,from:1900,to:9999}}),rt.DEFAULTS={...Fe.DEFAULTS,mask:Date,pattern:Wu,format:(r,t)=>{if(!r)return"";const n=String(r.getDate()).padStart(2,"0"),l=String(r.getMonth()+1).padStart(2,"0"),a=r.getFullYear();return[n,l,a].join(".")},parse:(r,t)=>{const[n,l,a]=r.split(".").map(Number);return new Date(a,l-1,n)}},de.MaskedDate=rt;class At extends Ae{constructor(t){super({...At.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:l,...a}=_t(n),o=tt({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...a});return l&&(this.exposeMask=o),o}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const l=this._applyDispatch(t,n);return this.currentMask&&l.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),l}_applyDispatch(t,n,l){t===void 0&&(t=""),n===void 0&&(n={}),l===void 0&&(l="");const a=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,o=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:o,c=o.slice(s.length),i=this.currentMask,d=new he,u=i?.state;return this.currentMask=this.doDispatch(t,{...n},l),this.currentMask&&(this.currentMask!==i?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-a.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 he;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,l;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((l=t._beforeTailState)==null?void 0:l.currentMask)||t._beforeTailState}}doDispatch(t,n,l){return n===void 0&&(n={}),l===void 0&&(l=""),this.dispatch(t,this,n,l)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[l,a]=super.doPrepare(t,n);if(this.currentMask){let o;[l,o]=super.doPrepare(l,this.currentMaskFlags(n)),a=a.aggregate(o)}return[l,a]}doPrepareChar(t,n){n===void 0&&(n={});let[l,a]=super.doPrepareChar(t,n);if(this.currentMask){let o;[l,o]=super.doPrepareChar(l,this.currentMaskFlags(n)),a=a.aggregate(o)}return[l,a]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const l=new he;return this.currentMask&&l.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),l}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:l,currentMask:a,...o}=t;n&&this.compiledMasks.forEach((s,c)=>s.state=n[c]),l!=null&&(this.currentMask=l,this.currentMask.state=a),super.state=o}extractInput(t,n,l){return this.currentMask?this.currentMask.extractInput(t,n,l):""}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,l)=>{if(!t[l])return;const{mask:a,...o}=t[l];return nn(n,o)&&n.maskEquals(a)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}At.DEFAULTS={...Ae.DEFAULTS,dispatch:(r,t,n,l)=>{if(!t.compiledMasks.length)return;const a=t.rawInputValue,o=t.compiledMasks.map((s,c)=>{const i=t.currentMask===s,d=i?s.displayValue.length:s.nearestInputPos(s.displayValue.length,ne.FORCE_LEFT);return s.rawInputValue!==a?(s.reset(),s.append(a,{raw:!0})):i||s.remove(d),s.append(r,t.currentMaskFlags(n)),s.appendTail(l),{index:c,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,ne.FORCE_LEFT)))}});return o.sort((s,c)=>c.weight-s.weight||c.totalInputPositions-s.totalInputPositions),t.compiledMasks[o[0].index]}},de.MaskedDynamic=At;class Ft extends Fe{constructor(t){super({...Ft.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...l}=t;if(n){const a=n.map(c=>c.length),o=Math.min(...a),s=Math.max(...a)-o;l.mask="*".repeat(o),s&&(l.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(l)}_appendCharRaw(t,n){n===void 0&&(n={});const l=Math.min(this.nearestInputPos(0,ne.FORCE_RIGHT),this.value.length),a=this.enum.filter(o=>this.matchValue(o,this.unmaskedValue+t,l));if(a.length){a.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,c)=>{const i=a[0][c];c>=this.value.length||i===s.value||(s.reset(),s._appendChar(i,n))});const o=super._appendCharRaw(a[0][this.value.length],n);return a.length===1&&a[0].slice(this.unmaskedValue.length).split("").forEach(s=>o.aggregate(super._appendCharRaw(s))),o}return new he({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new nt("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new he;const l=Math.min(super.nearestInputPos(0,ne.FORCE_RIGHT),this.value.length);let a;for(a=t;a>=0&&!(this.enum.filter(c=>this.matchValue(c,this.value.slice(l,a),l)).length>1);--a);const o=super.remove(a,n);return o.tailShift+=a-t,o}get isComplete(){return this.enum.indexOf(this.value)>=0}}Ft.DEFAULTS={...Fe.DEFAULTS,matchValue:(r,t,n)=>r.indexOf(t,n)===n},de.MaskedEnum=Ft;class Rr extends Ae{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}de.MaskedFunction=Rr;var Pr;class Oe extends Ae{constructor(t){super({...Oe.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",l=(this.scale?"("+Nn(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+l),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(Nn).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(Nn(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[l,a]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!l&&(a.skip=!0),l&&!this.allowPositive&&!this.value&&l!=="-"&&a.aggregate(this._appendChar("-")),[l,a]}_separatorsCount(t,n){n===void 0&&(n=!1);let l=0;for(let a=0;a<t;++a)this._value.indexOf(this.thousandsSeparator,a)===a&&(++l,n&&(t+=this.thousandsSeparator.length));return l}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,l){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,l))}_appendCharRaw(t,n){n===void 0&&(n={});const l=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,a=this._separatorsCountFromSlice(l);this._value=this._removeThousandsSeparators(this.value);const o=this._value;this._value+=t;const s=this.number;let c=!isNaN(s),i=!1;if(c){let y;this.min!=null&&this.min<0&&this.number<this.min&&(y=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(y=this.max),y!=null&&(this.autofix?(this._value=this.format(y,this).replace(Oe.UNMASKED_RADIX,this.radix),i||(i=o===this._value&&!n.tail)):c=!1),c&&(c=!!this._value.match(this._numberRegExp))}let d;c?d=new he({inserted:this._value.slice(o.length),rawInserted:i?"":t,skip:i}):(this._value=o,d=new he),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-a)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,l=this.value.indexOf(this.thousandsSeparator,n);if(l<=t)return l}return-1}_adjustRangeWithSeparators(t,n){const l=this._findSeparatorAround(t);l>=0&&(t=l);const a=this._findSeparatorAround(n);return a>=0&&(n=a+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const l=this.value.slice(0,t),a=this.value.slice(n),o=this._separatorsCount(l.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(l+a));const s=this._separatorsCountFromSlice(l);return new he({tailShift:(s-o)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case ne.NONE:case ne.LEFT:case ne.FORCE_LEFT:{const l=this._findSeparatorAround(t-1);if(l>=0){const a=l+this.thousandsSeparator.length;if(t<a||this.value.length<=a||n===ne.FORCE_LEFT)return l}break}case ne.RIGHT:case ne.FORCE_RIGHT:{const l=this._findSeparatorAround(t);if(l>=0)return l+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 l=this.value;this.normalizeZeros&&(l=this._normalizeZeros(l)),this.padFractionalZeros&&this.scale>0&&(l=this._padFractionalZeros(l)),this._value=l}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(l,a,o,s)=>a+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,l){n===void 0&&(n={});const a=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===Oe.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,l)&&!a}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,Oe.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(Oe.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)||Oe.EMPTY_VALUES.includes(t)&&Oe.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}Pr=Oe,Oe.UNMASKED_RADIX=".",Oe.EMPTY_VALUES=[...Ae.EMPTY_VALUES,0],Oe.DEFAULTS={...Ae.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[Pr.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:r=>r.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},de.MaskedNumber=Oe;const an={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function Tn(r,t,n){t===void 0&&(t=an.MASKED),n===void 0&&(n=an.MASKED);const l=tt(r);return a=>l.runIsolated(o=>(o[t]=a,o[n]))}function jr(r,t,n,l){return Tn(t,n,l)(r)}de.PIPE_TYPE=an,de.createPipe=Tn,de.pipe=jr;class Ur extends Fe{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,l,a;const{repeat:o,...s}=_t(t);this._blockOpts=Object.assign({},this._blockOpts,s);const c=tt(this._blockOpts);this.repeat=(n=(l=o??c.repeat)!=null?l:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((a=this._blocks)==null?void 0:a.length)||0,this.repeatFrom)),blocks:{m: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(tt(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const l=new he;for(let i=(a=(o=this._mapPosToBlock(this.displayValue.length))==null?void 0:o.index)!=null?a:Math.max(this._blocks.length-1,0),d,u;d=(s=this._blocks[i])!=null?s:u=!u&&this._allocateBlock(i);++i){var a,o,s,c;const p=d._appendChar(t,{...n,_beforeTailState:(c=n._beforeTailState)==null||(c=c._blocks)==null?void 0:c[i]});if(p.skip&&u){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(l.aggregate(p),p.consumed)break}return l}_trimEmptyTail(t,n){var l,a;t===void 0&&(t=0);const o=Math.max(((l=this._mapPosToBlock(t))==null?void 0:l.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(a=this._mapPosToBlock(n))==null?void 0:a.index),s==null&&(s=this._blocks.length-1);let c=0;for(let i=s;o<=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 l=super.remove(t,n);return this._trimEmptyTail(t,n),l}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}}de.RepeatBlock=Ur;try{globalThis.IMask=de}catch{}const Ln=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:he,ChunksTailDetails:dt,DIRECTION:ne,HTMLContenteditableMaskElement:Dn,HTMLInputMaskElement:Ir,HTMLMaskElement:Vt,InputMask:Or,MaskElement:rn,Masked:Ae,MaskedDate:rt,MaskedDynamic:At,MaskedEnum:Ft,MaskedFunction:Rr,MaskedNumber:Oe,MaskedPattern:Fe,MaskedRange:$t,MaskedRegExp:zr,PIPE_TYPE:an,PatternFixedDefinition:Mn,PatternInputDefinition:St,RepeatBlock:Ur,createMask:tt,createPipe:Tn,default:de,forceDirection:Mr,normalizeOpts:_t,pipe:jr},Symbol.toStringTag,{value:"Module"})),Yu=async r=>{try{const t=new FormData;return t.append("unique","true"),t.append("file",r),(await(await fetch("/file/upload/uploads?id=&form=&table=",{method:"POST",body:t})).json())?.result}catch(t){console.error(t)}},Zu=async(r,t,n)=>{const l=t.clipboardData?.items;if(l){const a=t.clipboardData?.getData("text/html"),o=t.clipboardData?.getData("text/plain");if(a){const{state:s,dispatch:c}=r,{tr:i}=s,d=n.fromSchema(r.state.schema),u=new DOMParser().parseFromString(a,"text/html").body,p=d.parse(u),y=i.replaceSelectionWith(p);return c(y),t.preventDefault(),!0}if(o){const{state:s,dispatch:c}=r,{tr:i}=s,d=i.insertText(o,s.selection.from,s.selection.to);return c(d),t.preventDefault(),!0}for(let s=0;s<l.length;s++){const c=l[s];if(c.type.startsWith("image/")){const i=c.getAsFile();if(i){const d=await Yu(i),{schema:u}=r.state,p=u.nodes.image.create({src:d?.file_path}),y=r.state.tr.replaceSelectionWith(p);return r.dispatch(y),t.preventDefault(),!0}}}}return!1},Xu="https://esm.sh",ze="3.7.2",Hr="3.7.2",Ju=`?deps=@tiptap/core@${ze},@tiptap/pm@${Hr}`,Re=r=>`${Xu}/${r}${Ju}`,Pe={core:Re(`@tiptap/core@${ze}`),starterKit:Re(`@tiptap/starter-kit@${ze}`),textStyle:Re(`@tiptap/extension-text-style@${ze}`),table:Re(`@tiptap/extension-table@${ze}`),highlight:Re(`@tiptap/extension-highlight@${ze}`),subscript:Re(`@tiptap/extension-subscript@${ze}`),superscript:Re(`@tiptap/extension-superscript@${ze}`),link:Re(`@tiptap/extension-link@${ze}`),image:Re(`@tiptap/extension-image@${ze}`),textAlign:Re(`@tiptap/extension-text-align@${ze}`),heading:Re(`@tiptap/extension-heading@${ze}`),paragraph:Re(`@tiptap/extension-paragraph@${ze}`),pmModel:Re(`@tiptap/pm@${Hr}/model`)},Nt="__vs_form_tiptap_loader__",je=r=>import(r),Ve=(r,t)=>r?.[t]||r?.default?.[t]||r?.default?.default?.[t]||r?.default||r,qr={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;"},Qu=r=>r.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}).extend({addAttributes(){return{...this.parent?.(),level:{default:1,renderHTML:t=>{const n=t.level||1;return{class:`heading-level-${n}`,style:qr[n]||qr[1]}}}}}}),ep=r=>r.configure({HTMLAttributes:{style:"min-height: 1rem;"}}),tp=(r,t,n,l,a)=>{const o=t.extend({renderHTML({HTMLAttributes:s}){return["div",{style:"overflow-x: auto;"},["table",s,0]]},parseHTML(){return[{tag:"div.table-wrapper table",priority:100},{tag:"table"}]}});return r.extend({addExtensions(){return[o.configure({HTMLAttributes:{class:"editor-content"},resizable:!0}),n,l,a]}})},np=r=>r.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),rp=r=>r.create({name:"iframe",group:"block",inline:!1,atom:!0,selectable:!0,addAttributes(){return{src:{default:null},width:{default:"100%"},height:{default:"280"},frameborder:{default:"0"},allow:{default:null},allowfullscreen:{default:null},referrerpolicy:{default:null},loading:{default:null},class:{default:null},title:{default:null},style:{default:null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["iframe",t]}});async function lp(){if(typeof window>"u")return null;const r=window;return r[Nt]||(r[Nt]=Promise.all([je(Pe.core),je(Pe.starterKit),je(Pe.textStyle),je(Pe.table),je(Pe.highlight),je(Pe.subscript),je(Pe.superscript),je(Pe.link),je(Pe.image),je(Pe.textAlign),je(Pe.heading),je(Pe.paragraph),je(Pe.pmModel)]).then(([t,n,l,a,o,s,c,i,d,u,p,y,f])=>{const g=Ve(t,"Editor"),h=Ve(t,"Node"),k=Ve(t,"Extension"),C=Ve(n,"StarterKit"),v=Ve(l,"TextStyle"),x=Ve(a,"TableKit"),w=Ve(a,"Table"),A=Ve(a,"TableRow"),I=Ve(a,"TableCell"),V=Ve(a,"TableHeader"),_=Ve(o,"Highlight"),S=Ve(s,"Subscript"),E=Ve(c,"Superscript"),D=Ve(i,"Link"),T=Ve(d,"Image"),L=Ve(u,"TextAlign"),$=Ve(p,"Heading"),M=Ve(y,"Paragraph"),N=Ve(f,"DOMParser");if(!g||!h||!C||!v||!x||!w||!A||!I||!V||!_||!S||!E||!D||!T||!L||!$||!M||!N)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:g,Extension:k,ProseMirrorDOMParser:N,StarterKit:C,ExtendedTextStyle:np(v),Highlight:_,Subscript:S,Superscript:E,Link:D,Image:T,TextAlign:L,CustomHeading:Qu($),CustomParagraph:ep(M),CustomTableKit:tp(x,w,A,I,V),Iframe:rp(h)}}).catch(t=>{throw delete r[Nt],t})),r[Nt]}function ap(r){let t=!1;const n=e.shallowRef(null),l=e.ref(!1),a=e.ref(""),o=async(d,u="")=>{if(!d)return null;l.value=!0,a.value="";try{const p=await lp();if(!p)return null;const y=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:(f,g)=>Zu(f,g,p.ProseMirrorDOMParser),handleKeyDown:(f,g)=>{if(g.key==="Tab"){const h=f.state,{$anchor:k}=h.selection;let C=!1;for(let v=k.depth;v>0;v--){const x=k.node(v);if(x&&(x.type.name==="bulletList"||x.type.name==="orderedList")){C=!0;break}}return C?!1:(g.preventDefault(),!0)}return!1}}});return n.value=e.markRaw(y),y}catch(p){return a.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",p),null}finally{l.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();r.modelValue,setTimeout(()=>{t=!1},10)}})}),{editor:n,editorInstance:s,focusEditor:()=>{n.value&&!n.value.isFocused&&n.value.commands.focus()},createEditor:o,destroyEditor:()=>{n.value&&(n.value.destroy(),n.value=null)},isLoading:l,loadError:a}}function op(r,t,n,{toEditorContent:l,toSourceContent:a}={}){const o=e.ref(!1),s=e.ref(""),c=e.ref(null);return{isHtmlMode:o,htmlContent:s,htmlTextarea:c,toggleHtmlMode:async u=>{if(o.value=u,u)r.value&&(s.value=a?await a(r.value.getHTML(),t):r.value.getHTML()),e.nextTick(()=>{c.value&&c.value.focus?.()});else if(r.value){const p=l?await l(s.value,t):s.value;r.value.commands.setContent(p,!0),e.nextTick(()=>{r.value?.commands?.focus?.()})}},onHtmlInput:u=>{s.value=u,n&&n("update:modelValue",u)}}}function sp(){const r=e.ref(!1);return{isFullscreen:r,toggleFullscreen:()=>{r.value=!r.value}}}const ut=r=>r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),Dt=r=>{let t=ut(r||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,l,a,o)=>{const s=o?` title="${ut(o)}"`:"";return`<img src="${ut(a)}" alt="${ut(l)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,l,a,o)=>{const s=o?` title="${ut(o)}"`:"";return`<a href="${ut(a)}"${s} target="_blank" rel="noopener noreferrer">${l}</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},Mt=r=>/^\s*\d+\.\s+/.test(r),In=r=>/^\s*[-*+]\s+/.test(r),Kr=r=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(r),On=r=>/^\s*>\s?/.test(r),zn=r=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(r),Gr=r=>r.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>Dt(t.trim())),ip=(r,t)=>{const n=r[t],l=r[t+1];if(!n||!l||!n.includes("|")||!zn(l))return null;const a=Gr(n),o=[];let s=t+2;for(;s<r.length&&r[s].includes("|")&&r[s].trim()!=="";){const d=Gr(r[s]);o.push(`<tr>${d.map(u=>`<td>${u}</td>`).join("")}</tr>`),s+=1}const c=`<thead><tr>${a.map(d=>`<th>${d}</th>`).join("")}</tr></thead>`,i=o.length?`<tbody>${o.join("")}</tbody>`:"";return{html:`<table>${c}${i}</table>`,nextIndex:s}},cp=(r,t)=>{const n=Mt(r[t]),l=n?"ol":"ul",a=[];let o=t;for(;o<r.length;){const s=r[o];if(s.trim()===""||!(n?Mt(s):(In(s)||Kr(s))&&!Mt(s)))break;const i=s.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.*)$/);if(i){const d=i[1].toLowerCase()==="x";a.push(`<li><input type="checkbox" disabled${d?" checked":""}> ${Dt(i[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");a.push(`<li>${Dt(d)}</li>`)}o+=1}return{html:`<${l}>${a.join("")}</${l}>`,nextIndex:o}},dp=(r,t)=>{const l=r[t].replace(/^```/,"").trim(),a=[];let o=t+1;for(;o<r.length&&!r[o].startsWith("```");)a.push(r[o]),o+=1;return{html:`<pre><code${l?` class="language-${ut(l)}"`:""}>${ut(a.join(`
|
|
6
|
+
`))}</code></pre>`,nextIndex:o<r.length?o+1:o}},up=(r,t)=>{const n=[];let l=t;for(;l<r.length;){const a=r[l];if(a.trim()===""||a.startsWith("```")||/^#{1,6}\s+/.test(a)||/^---+$/.test(a.trim())||/^\*\*\*+$/.test(a.trim())||On(a)||Mt(a)||In(a)||l+1<r.length&&a.includes("|")&&zn(r[l+1]))break;n.push(a.trim()),l+=1}return{html:`<p>${Dt(n.join(" "))}</p>`,nextIndex:l}},Wr=r=>{const n=(r||"").replace(/\r\n/g,`
|
|
5
7
|
`).split(`
|
|
6
|
-
`),l=[];let a=0;for(;a<n.length;){const o=n[a],s=o.trim();if(!s){a+=1;continue}if(o.startsWith("```")){const d=
|
|
7
|
-
`))}</blockquote>`);continue}if(
|
|
8
|
-
`)},
|
|
9
|
-
`);function
|
|
8
|
+
`),l=[];let a=0;for(;a<n.length;){const o=n[a],s=o.trim();if(!s){a+=1;continue}if(o.startsWith("```")){const d=dp(n,a);l.push(d.html),a=d.nextIndex;continue}const c=o.match(/^(#{1,6})\s+(.*)$/);if(c){const d=c[1].length;l.push(`<h${d}>${Dt(c[2])}</h${d}>`),a+=1;continue}if(/^---+$/.test(s)||/^\*\*\*+$/.test(s)){l.push("<hr>"),a+=1;continue}if(o.includes("|")&&a+1<n.length&&zn(n[a+1])){const d=ip(n,a);if(d){l.push(d.html),a=d.nextIndex;continue}}if(On(o)){const d=[];for(;a<n.length&&On(n[a]);)d.push(n[a].replace(/^\s*>\s?/,"")),a+=1;l.push(`<blockquote>${Wr(d.join(`
|
|
9
|
+
`))}</blockquote>`);continue}if(Mt(o)||In(o)||Kr(o)){const d=cp(n,a);l.push(d.html),a=d.nextIndex;continue}const i=up(n,a);l.push(i.html),a=i.nextIndex}return l.join("")},Rn=r=>(r.textContent||"").replace(/\u00a0/g," "),Yr=r=>Array.from(r.childNodes).map(t=>Pn(t)).join(""),pp=r=>{const t=Array.from(r.querySelectorAll("tr"));if(!t.length)return"";const n=c=>`| ${Array.from(c.children).map(d=>Yr(d).trim()).join(" | ")} |`,l=t[0],a=l?Array.from(l.children).length:0,o=`| ${Array(Math.max(a,1)).fill("---").join(" | ")} |`,s=t.slice(1).map(c=>n(c));return[n(l),o,...s].join(`
|
|
10
|
+
`)},Zr=(r,t=!1)=>Array.from(r.children).filter(n=>n.nodeType===Node.ELEMENT_NODE).map((n,l)=>{const a=n,o=a.querySelector('input[type="checkbox"]'),s=Array.from(a.childNodes).filter(c=>!(c instanceof HTMLInputElement)).map(c=>Pn(c)).join("").trim();return o?`- [${o.checked?"x":" "}] ${s}`:t?`${l+1}. ${s}`:`- ${s}`}).join(`
|
|
11
|
+
`);function Pn(r){if(r.nodeType===Node.TEXT_NODE)return Rn(r);if(r.nodeType!==Node.ELEMENT_NODE)return"";const t=r,n=t.tagName.toLowerCase(),l=Yr(t);switch(n){case"br":return`
|
|
10
12
|
`;case"p":return`${l.trim()}
|
|
11
13
|
|
|
12
|
-
`;case"strong":case"b":return`**${l}**`;case"em":case"i":return`*${l}*`;case"del":case"s":return`~~${l}~~`;case"code":return t.parentElement?.tagName.toLowerCase()==="pre"?l:`\`${l}\``;case"pre":{const a=t.querySelector("code"),c=(a?.className||"").match(/language-([a-z0-9_-]+)/i)?.[1]||"",i=
|
|
14
|
+
`;case"strong":case"b":return`**${l}**`;case"em":case"i":return`*${l}*`;case"del":case"s":return`~~${l}~~`;case"code":return t.parentElement?.tagName.toLowerCase()==="pre"?l:`\`${l}\``;case"pre":{const a=t.querySelector("code"),c=(a?.className||"").match(/language-([a-z0-9_-]+)/i)?.[1]||"",i=Rn(a||t);return`\`\`\`${c}
|
|
13
15
|
${i}
|
|
14
16
|
\`\`\`
|
|
15
17
|
|
|
@@ -19,30 +21,30 @@ ${i}
|
|
|
19
21
|
|
|
20
22
|
`;case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":{const a=Number(n[1]);return`${"#".repeat(a)} ${l.trim()}
|
|
21
23
|
|
|
22
|
-
`}case"ul":return`${
|
|
24
|
+
`}case"ul":return`${Zr(t,!1)}
|
|
23
25
|
|
|
24
|
-
`;case"ol":return`${
|
|
26
|
+
`;case"ol":return`${Zr(t,!0)}
|
|
25
27
|
|
|
26
28
|
`;case"a":{const a=t.getAttribute("href")||"";return`[${l||a}](${a})`}case"img":{const a=t.getAttribute("alt")||"",o=t.getAttribute("src")||"";return o?``:""}case"hr":return`---
|
|
27
29
|
|
|
28
|
-
`;case"table":return`${
|
|
30
|
+
`;case"table":return`${pp(t)}
|
|
29
31
|
|
|
30
|
-
`;default:return l}}const
|
|
32
|
+
`;default:return l}}const Xr=r=>{if(!r)return"";if(typeof window>"u"||typeof DOMParser>"u")return r;const n=new DOMParser().parseFromString(r,"text/html");return Array.from(n.body.childNodes).map(l=>Pn(l)).join("").replace(/\n{3,}/g,`
|
|
31
33
|
|
|
32
|
-
`).trim()},On=async(r,t)=>t!=="md"?r||"":Pr(r||""),Yu=async(r,t)=>t!=="md"?r||"":Hr(r||""),Zu=async(r,t)=>t!=="md"?r||"":Hr(r||""),Xu=r=>String(r).trim().toLowerCase().split("-")[0],Ju=()=>typeof window>"u"?"uk":Xu(localStorage.getItem("language")||localStorage.getItem("locale")||navigator.language||"uk"),Qu=(r,t)=>{const n=t.replace(/^form\.richtext\./,"");return Vn?.[r]?.form?.richtext?.[n]||Vn?.uk?.form?.richtext?.[n]||t},qr=r=>r.startsWith("form.richtext.")?r:`form.richtext.${r}`;function nn(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties,n=t?.$i18n;return{t:a=>{const o=t?.$t,s=t?.$te,c=typeof n?.te=="function"?n.te.bind(n):null;if(typeof o=="function"){const i=qr(a);if((typeof s=="function"?s(i):typeof c=="function"?c(i):null)!==!1){const u=o(i);if(u&&u!==i)return u}}return Qu(Ju(),qr(a))}}}const ep={components:{Quote:R.Quote},props:{editor:Object},methods:{toggleBlockquote(){this.editor&&this.editor.chain().toggleBlockquote().run()}}};function tp(r,t,n,l,a,o){const s=e.resolveComponent("Quote");return e.openBlock(),e.createElementBlock("button",{title:"Blockquote",onClick:t[0]||(t[0]=(...c)=>o.toggleBlockquote&&o.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 np=pe(ep,[["render",tp]]),rp={components:{List:R.List},props:{editor:Object},methods:{toggleBulletList(){this.editor&&this.editor.chain().focus().toggleBulletList().run()}}};function lp(r,t,n,l,a,o){const s=e.resolveComponent("List");return e.openBlock(),e.createElementBlock("button",{title:"Bullet List",onClick:t[0]||(t[0]=(...c)=>o.toggleBulletList&&o.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 ap=pe(rp,[["render",lp]]),op={components:{ListOrdered:R.ListOrdered},props:{editor:Object},methods:{toggleOrderedList(){this.editor&&this.editor.chain().focus().toggleOrderedList().run()}}};function sp(r,t,n,l,a,o){const s=e.resolveComponent("ListOrdered");return e.openBlock(),e.createElementBlock("button",{title:"Ordered List",onClick:t[0]||(t[0]=(...c)=>o.toggleOrderedList&&o.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 ip=pe(op,[["render",sp]]),cp={components:{CodeXml:R.CodeXml},props:{editor:Object},methods:{toggleCodeBlock(){this.editor&&this.editor.chain().focus().toggleCodeBlock().run()}}};function dp(r,t,n,l,a,o){const s=e.resolveComponent("CodeXml");return e.openBlock(),e.createElementBlock("button",{title:"Code Block",onClick:t[0]||(t[0]=(...c)=>o.toggleCodeBlock&&o.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 up=pe(cp,[["render",dp]]),pp={components:{Bold:R.Bold},props:{editor:Object},methods:{toggleBold(){this.editor&&this.editor.commands.toggleBold()}}};function fp(r,t,n,l,a,o){const s=e.resolveComponent("Bold");return e.openBlock(),e.createElementBlock("button",{title:"Bold Text",onClick:t[0]||(t[0]=(...c)=>o.toggleBold&&o.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 mp=pe(pp,[["render",fp]]),hp={components:{Italic:R.Italic},props:{editor:Object},methods:{toggleItalic(){this.editor&&this.editor.chain().toggleItalic().run()}}};function gp(r,t,n,l,a,o){const s=e.resolveComponent("Italic");return e.openBlock(),e.createElementBlock("button",{title:"Italic Text",onClick:t[0]||(t[0]=(...c)=>o.toggleItalic&&o.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 yp=pe(hp,[["render",gp]]),bp={__name:"vs-editor-underline",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().toggleUnderline().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Underline",onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.isActive("underline")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(R.Underline),{class:"h-4 w-4"})],2))}},kp={__name:"vs-editor-strike",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().toggleStrike().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Strikethrough",onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.isActive("strike")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(R.Strikethrough),{class:"h-4 w-4"})],2))}},xp={components:{X:R.X},props:{visible:{type:Boolean,default:()=>!1},modelValue:{type:Boolean,default:()=>!1},title:{type:String,default:()=>""},size:{type:String,default:()=>""},closeClickBack:{type:Boolean,default:()=>!1}},emits:["update:visible","update:modelValue","onClose","confirm","cancel"],inheritAttrs:!1,name:"vs-dialog",mounted(){window.addEventListener("keydown",this.checkKey)},unmounted(){window.removeEventListener("keydown",this.checkKey)},computed:{hasSlot(){return!!this.$slots?.footer},checkSize(){return this.size==="small"?"md:w-5/12 w-9/12":this.size==="medium"?"md:w-6/12 w-9/12":"lg:w-7/12 w-11/12"}},methods:{checkKey({key:r}){r==="Escape"&&this.handleClose()},handleClose(){this.$emit("update:visible",!1),this.$emit("update:modelValue",!1),this.$emit("onClose")},handleConfirm(){this.$emit("confirm"),this.handleClose()},handleCancel(){this.$emit("cancel"),this.handleClose()},closeByClickBack(r,t){t&&r.target.classList.contains("vs-dialog-overlay")&&this.handleClose()}}},wp={key:0,class:"vsTailwind ui-dialog__wrapper"},_p={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},vp={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Cp={class:"ui-dialog__content p-4"},Ep={key:0,class:"flex justify-end gap-x-2"};function Bp(r,t,n,l,a,o){const s=e.resolveComponent("X");return e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.visible||n.modelValue?(e.openBlock(),e.createElementBlock("div",wp,[e.createElementVNode("div",{onMousedown:t[1]||(t[1]=c=>o.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",[o.checkSize]])},[e.createElementVNode("div",_p,[e.createElementVNode("h3",vp,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)=>o.handleClose&&o.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",Cp,[e.renderSlot(r.$slots,"default",{},void 0,!0)]),o.hasSlot?(e.openBlock(),e.createElementBlock("div",Ep,[e.renderSlot(r.$slots,"footer",{handleClose:o.handleClose,handleConfirm:o.handleConfirm,handleCancel:o.handleCancel},void 0,!0)])):e.createCommentVNode("",!0)],2)]),_:3})],32)])):e.createCommentVNode("",!0)])}const Kr=pe(xp,[["render",Bp],["__scopeId","data-v-56ad9010"]]),Vp=e.defineComponent({components:{IconClose:R.X,IconSearch:R.Search,IconEmail:R.Mail},inheritAttrs:!1,props:{icon:{type:String,default:()=>""},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},modelValue:{type:String,default:()=>""},placeholder:{type:String,default:()=>""},iconPosition:{type:String,default:()=>"right"},type:{type:String,default:()=>"text"},style:{type:Object,default:()=>null},size:{type:String,default:()=>"md"},attrs:{type:Object,default:()=>{}}},emits:["onInput","update:modelValue","blur","focus"],computed:{checkSize(){return(this.style?.size||this.size)==="xs"?"h-[32px] text-sm":(this.style?.size||this.size)==="md"?"h-[38px] text-sm":(this.style?.size||this.size)==="lg"?"h-[46px] text-[20px]":"h-[38px] text-sm"},value:{get(){return this.modelValue},set(r){this.$emit("update:modelValue",r.trim())}},clearIconStyle(){return[{"right-8":this.icon&&this.iconPosition==="right","right-3":!this.icon||this.iconPosition!=="right","pointer-events-none":this.disabled}]},iconStylePosition(){return[{"left-3":this.icon&&this.iconPosition==="left","right-3":this.icon&&this.iconPosition==="right"}]},inputStyle(){return[{"!pr-8":this.clearable&&!this.icon,"!pr-7":this.clearable,"!pr-16":this.clearable&&this.icon&&this.iconPosition==="right","!pl-8":this.icon&&this.iconPosition==="left","!pr-[50px]":this.clearable&&this.value&&this.icon&&this.iconPosition==="right","!cursor-not-allowed bg-slate-100":this.disabled,"bg-white":!this.disabled}]}},methods:{handleInput(){this.$emit("onInput",this.modelValue)},handleBlur(){this.$emit("blur")},handleFocus(){this.$emit("focus")},clearInput(){this.$emit("update:modelValue",""),this.$emit("onInput","")},async inputFocus(){await this.$refs.vsText?.focus()}}}),Sp={class:"vs-form-text relative bg-white rounded-lg"},$p={key:2,class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Ap=["disabled","type","placeholder"];function Fp(r,t,n,l,a,o){const s=e.resolveComponent("IconClose"),c=e.resolveComponent("IconSearch"),i=e.resolveComponent("IconEmail");return e.openBlock(),e.createElementBlock("div",Sp,[r.clearable&&r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[0]||(t[0]=(...d)=>r.clearInput&&r.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),r.icon&&r.icon==="search"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 cursor-pointer",r.iconStylePosition])},[e.createVNode(c,{class:"h-4 w-4 stroke-gray-500 transition-all"})],2)):r.icon&&r.icon==="email"?(e.openBlock(),e.createElementBlock("div",$p,[e.createVNode(i,{class:"h-4 w-4 stroke-gray-500 transition-all"})])):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 text-gray-500 cursor-pointer",["ti "+r.icon,r.iconStylePosition]])},null,2)),r.clearable&&r.value?(e.openBlock(),e.createElementBlock("div",{key:4,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[1]||(t[1]=(...d)=>r.clearInput&&r.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",e.mergeProps({ref:"vsText",disabled:r.disabled,type:r.type,onInput:t[2]||(t[2]=(...d)=>r.handleInput&&r.handleInput(...d)),placeholder:r.placeholder,"onUpdate:modelValue":t[3]||(t[3]=d=>r.value=d)},r.style?.attrs||r.attrs||{},{onFocus:t[4]||(t[4]=(...d)=>r.handleFocus&&r.handleFocus(...d)),onBlur:t[5]||(t[5]=(...d)=>r.handleBlur&&r.handleBlur(...d)),class:[[r.inputStyle,r.checkSize],"py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-sm text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"]}),null,16,Ap),[[e.vModelDynamic,r.value]])])}const Gr=pe(Vp,[["render",Fp],["__scopeId","data-v-eb21a54f"]]),Np=["title"],Dp={class:"flex flex-col gap-3 p-[20px]"},Mp={class:"relative flex items-center gap-2"},Tp={class:"flex-1"},Lp={key:0,class:"flex items-center gap-2 flex-shrink-0"},Ip=["title"],Op=["title"],zp={class:"flex items-center gap-2"},Rp={for:"openInNewTab",class:"text-sm text-gray-700 cursor-pointer"},Pp={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},jp=Object.assign({inheritAttrs:!1},{__name:"vs-editor-link",props:{editor:Object},setup(r){const{t}=nn(),n=r,l=e.ref(!1),a=e.ref(""),o=e.ref(!1),s=e.ref(!1),c=()=>{if(!n.editor)return;n.editor.chain().focus().extendMarkRange("link").run();const g=n.editor.getAttributes("link");g.href?(o.value=!0,a.value=g.href,s.value=g.target==="_blank"):(o.value=!1,a.value="",s.value=!1),l.value=!0},i=()=>{l.value=!1,a.value="",o.value=!1,s.value=!1},d=()=>{if(!n.editor||!a.value.trim())return;let g=a.value.trim();g.match(/^https?:\/\//i)||(g="https://"+g),n.editor.chain().focus().setLink({href:g,target:s.value?"_blank":null}).run(),i()},u=()=>{n.editor&&(n.editor.chain().focus().unsetLink().run(),i())},p=()=>{if(!a.value)return;let g=a.value.trim();g.match(/^https?:\/\//i)||(g="https://"+g),window.open(g,"_blank","noopener,noreferrer")};return(g,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("button",{title:e.unref(t)("form.richtext.link")||"Посилання",onClick:c,class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":r.editor?.isActive("link")}])},[e.createVNode(e.unref(R.Link2),{class:"h-4 w-4"})],10,Np),e.createVNode(Kr,{title:o.value?e.unref(t)("form.richtext.editLink")||"Редагувати посилання":e.unref(t)("form.richtext.linkTitle")||"Додати посилання",visible:l.value,"onUpdate:visible":f[2]||(f[2]=y=>l.value=y),size:"small"},{footer:e.withCtx(()=>[e.createElementVNode("div",Pp,[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(o.value?e.unref(t)("form.richtext.update")||"Оновити":e.unref(t)("form.richtext.create")||"Створити"),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Dp,[e.createElementVNode("div",Mp,[e.createElementVNode("div",Tp,[e.createVNode(Gr,{modelValue:a.value,"onUpdate:modelValue":f[0]||(f[0]=y=>a.value=y),placeholder:e.unref(t)("form.richtext.linkUrl")||"Введіть URL",class:"w-full"},null,8,["modelValue","placeholder"])]),o.value?(e.openBlock(),e.createElementBlock("div",Lp,[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(R.ExternalLink),{class:"h-4 w-4"})],8,Ip),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(R.Trash2),{class:"h-4 w-4"})],8,Op)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",zp,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"openInNewTab","onUpdate:modelValue":f[1]||(f[1]=y=>s.value=y),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",Rp,e.toDisplayString(e.unref(t)("form.richtext.openInNewTab")||"Відкривати в новій вкладці"),1)])])]),_:1},8,["title","visible"])],64))}}),Nt=async(r,t,n,l=10)=>{if(!t||!n)return;await e.nextTick();const a=await n?.getBoundingClientRect(),o=await t?.getBoundingClientRect();if(!o||!a)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,p=await window.innerWidth;let g=0,f=0;const y=o.bottom+l+i;switch(r){case"top":o.top-a.height-l<0?g=o.top-a.height+l+i+s:g=o.top-a.height-l,p>d+o.right+30?f=o.left-a.width/2+o.width/2:f=p-30-d;break;case"bottom":u>y?g=o.bottom+l:g=o.bottom-l-i-s,f=o.left-a.width/2+o.width/2;break;case"left":g=o.top-a.height/2+o.height/2,o.left-a.width-l>0?f=o.left-a.width-l:f=10;break;case"right":g=o.top-a.height/2+o.height/2,p-c>d?f=o.right+l:f=p-30-d;break;case"top-right":o.top-a.height-l<0?g=o.top-a.height+l+i+s:g=o.top-a.height-l,p-c>d?f=o.right+l:f=p-30-d;break;case"top-left":o.top-a.height-l<0?g=o.top-a.height+l+i+s:g=o.top-a.height-l,o.left-a.width-l>0?f=o.left-a.width-l:f=10;break;case"top-start":o.top-a.height-l<0?g=o.top-a.height+l+i+s:g=o.top-a.height-l,o.left>0?f=o.left:f=10;break;case"bottom-right":u>y?g=o.bottom+l:g=o.bottom-l-i-s,p-c>d?f=o.left:f=p-30-d;break;case"bottom-left":u>y?g=o.bottom+l:g=o.bottom-l-i-s,o.left>0?f=o.right-d:f=10;break;case"bottom-start":u>y?g=o.bottom+l:g=o.bottom-l-i-s,o.left>0?f=o.left:f=10;break}g+i>u?g=u-i-l:g<0&&(g=l),f+d>p?f=p-d-l:f<0&&(f=l),n instanceof HTMLElement&&(n.style.top=`${g}px`,n.style.left=`${f}px`,n.style.position="fixed")},Up={class:"text-center"},Hp={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"},pt=Object.assign({inheritAttrs:!1},{__name:"vs-popover",props:{isOpen:{type:Boolean,default:()=>!1},placement:{type:String,default:"top"},gap:{type:Number,default:8},width:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},trigger:{type:String,default:"click"},teleport:{type:String,default:"body"}},emits:["isvisible"],setup(r,{expose:t,emit:n}){const l=r,a=n,o=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref(null),d=e.ref(null);e.watch(o,k=>{k?(u(),window.addEventListener("resize",()=>Nt(l.placement,i.value,d.value)),Nt(l.placement,i.value,d.value)):window.removeEventListener("resize",()=>Nt(l.placement,i.value,d.value)),a("isvisible",k)}),e.onMounted(()=>{window.addEventListener("click",b),window.addEventListener("popstate",C),window.addEventListener("scroll",w,!0),u()}),e.onBeforeUnmount(()=>{window.removeEventListener("click",b),window.removeEventListener("popstate",C),p()});const u=()=>{let k=c.value;for(;k&&k!==document.body;)(k.scrollHeight>k.clientHeight||k.scrollWidth>k.clientWidth)&&(k.addEventListener("scroll",h),s.value.push(k)),k=k.parentElement;document.body&&(document.body.addEventListener("scroll",h),s.value.push(document.body))},p=()=>{s.value.forEach(k=>{k.removeEventListener("scroll",h)}),s.value=[]},g=()=>{o.value=!0,Nt(l.placement,i.value,d.value)},f=()=>{o.value=!1},y=async()=>{await Nt(l.placement,i.value,d.value),o.value=!o.value},h=()=>{o.value=!1},b=k=>{if(!k){o.value=!1;return}i.value?.contains(k.target)||d.value?.contains(k.target)||(o.value=!1)},C=()=>{o.value&&(o.value=!1)},w=k=>{o.value&&d.value&&!d.value.contains(k.target)&&(o.value=!1)};return t({togglePopover:y}),(k,x)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"popover",ref:c,class:"vs-popover inline-block"},[e.createElementVNode("div",Up,[r.trigger==="click"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverRef",ref:i,onClick:y,class:e.normalizeClass({"pointer-events-none":r.disabled})},[e.renderSlot(k.$slots,"reference",{},()=>[x[0]||(x[0]=e.createElementVNode("button",null,"Click me!",-1))])],2)):e.createCommentVNode("",!0),r.trigger==="hover"?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"popoverRef",ref:i,onMouseover:g,onMouseleave:f,class:e.normalizeClass({"pointer-events-none":r.disabled})},[e.renderSlot(k.$slots,"reference",{},()=>[x[1]||(x[1]=e.createElementVNode("button",null,"Click me!",-1))])],34)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:r.teleport},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content",r.placement]),ref_key:"contentPop",ref:d,style:e.normalizeStyle({width:r.width?r.width+"px":"fit-content",zIndex:100001})},[e.createElementVNode("div",Hp,[e.renderSlot(k.$slots,"default",{},()=>[x[2]||(x[2]=e.createElementVNode("span",null,"Popover content",-1))])])],6),[[e.vShow,o.value]])]),_:3})],8,["to"]))])],512))}}),qp={class:"flex flex-col gap-[2px] p-[2px]"},Kp=["onClick"],Gp={__name:"vs-editor-table",props:{editor:Object},setup(r){const{t}=nn(),n=r,l=e.ref(!1),a=e.ref("popover"),o=()=>{n.editor&&(n.editor.chain().focus().insertTable({rows:3,cols:3,withHeaderRow:!0}).run(),a.value.togglePopover())},s=()=>{n.editor&&(n.editor.chain().focus().addColumnAfter().run(),a.value.togglePopover())},c=()=>{n.editor&&(n.editor.chain().focus().addRowAfter().run(),a.value.togglePopover())},i=()=>{n.editor&&(n.editor.chain().focus().deleteColumn().run(),a.value.togglePopover())},d=()=>{n.editor&&(n.editor.chain().focus().deleteRow().run(),a.value.togglePopover())},u=()=>{n.editor&&(n.editor.chain().focus().deleteTable().run(),a.value.togglePopover())},p=()=>{n.editor&&(n.editor.chain().focus().mergeCells().run(),a.value.togglePopover())},g=()=>{n.editor&&(n.editor.chain().focus().splitCell().run(),a.value.togglePopover())},f=e.computed(()=>[{text:t("form.richtext.createTable"),function:o},{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:p},{text:t("form.richtext.splitCells"),function:g}]);return(y,h)=>(e.openBlock(),e.createBlock(pt,{ref_key:"popover",ref:a,placement:"bottom",onIsvisible:h[0]||(h[0]=b=>l.value=b)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Table",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[l.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(R.Table2),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",qp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(b,C)=>(e.openBlock(),e.createElementBlock("button",{key:C,onClick:b?.function,class:"px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded"},e.toDisplayString(b.text),9,Kp))),128))])]),_:1},512))}},Wp={class:"flex gap-[4px] p-1"},Yp=["title","onClick"],Zp={__name:"vs-editor-align",props:{editor:Object},setup(r){const t=r,n={left:R.AlignLeft,center:R.AlignCenter,right:R.AlignRight,justify:R.AlignJustify},l=e.ref(!1),a=e.ref("popover"),o=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),p=()=>{c.value?o.value="right":i.value?o.value="center":d.value?o.value="justify":o.value="left"};e.watch([s,c,i,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 g=y=>{t.editor&&(t.editor.chain().focus().setTextAlign(y).run(),o.value=y)},f=e.ref([{id:"left",isActive:s},{id:"center",isActive:i},{id:"right",isActive:c},{id:"justify",isActive:d}]);return(y,h)=>(e.openBlock(),e.createBlock(pt,{ref_key:"popover",ref:a,placement:"bottom",onIsvisible:h[0]||(h[0]=b=>l.value=b)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Text Align",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[u.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[o.value]),{height:"16",width:"16"}))],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Wp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,b=>(e.openBlock(),e.createElementBlock("button",{title:"Text align "+b?.id,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":b?.isActive}]),key:b?.id,onClick:C=>g(b?.id)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[b?.id]),{height:"16",width:"16"}))],10,Yp))),128))])]),_:1},512))}},Xp={class:"flex flex-col gap-[2px] p-[2px]"},Jp=["onClick"],Qp={__name:"vs-editor-type-tag",props:{editor:Object},setup(r){const{t}=nn(),n=r,l=e.ref(!1),a=e.ref("popover"),o=()=>{n.editor&&(n.editor?.chain().focus().setParagraph().run(),a.value.togglePopover())},s=i=>{n.editor&&(n.editor?.chain().focus().toggleHeading({level:i}).run(),a.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(pt,{ref_key:"popover",ref:a,placement:"bottom",onIsvisible:d[0]||(d[0]=u=>l.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",[l.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(R.Type),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Xp,[e.createElementVNode("button",{onClick:o,class:e.normalizeClass(["px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded",[r.editor?.isActive("paragraph")?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)("form.richtext.paragraph")),3),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(u,p)=>(e.openBlock(),e.createElementBlock("button",{key:p,onClick:g=>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,r.editor?.isActive("heading",{level:u?.id})?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)(`form.richtext.heading${u?.id}`)),11,Jp))),128))])]),_:1},512))}},ef={components:{VsText:Gr},inheritAttrs:!1,events:["update:modelValue"],props:{modelValue:{type:String},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},isTextInputShown:{type:Boolean,default:()=>!0}},computed:{value:{get(){return this.modelValue??""},set(r){this.$emit("update:modelValue",r)}}}},tf={class:"flex items-center w-full max-w-[182px]"},nf=["disabled"];function rf(r,t,n,l,a,o){const s=e.resolveComponent("vs-text");return e.openBlock(),e.createElementBlock("div",tf,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=c=>o.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,nf),[[e.vModelText,o.value]]),n.isTextInputShown?(e.openBlock(),e.createBlock(s,{key:0,modelValue:o.value,"onUpdate:modelValue":t[1]||(t[1]=c=>o.value=c),class:"ml-2 w-full",disabled:n.disabled,clearable:n.clearable},null,8,["modelValue","disabled","clearable"])):e.createCommentVNode("",!0)])}const Wr=pe(ef,[["render",rf]]),lf={class:"flex gap-[4px] mb-[8px]"},af={class:"grid grid-rows-3 grid-cols-7"},of={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},sf=["onClick","title"],cf={__name:"vs-editor-color",props:{editor:Object},setup(r){const t=r,n=e.ref(null),l=e.ref("#000000"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").color||"#000000"),o=e.computed(()=>a.value!=="#000000"),s=()=>{t.editor&&(l.value=a.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=p=>{t.editor&&(t.editor.chain().focus().setColor(p).run(),l.value=p,n.value&&n.value.togglePopover())},d=()=>{i(l.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,g)=>(e.openBlock(),e.createBlock(pt,{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":o.value}])},[g[1]||(g[1]=e.createElementVNode("span",{class:"leading-none"},"A",-1)),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:l.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",lf,[e.createVNode(Wr,{modelValue:l.value,"onUpdate:modelValue":g[0]||(g[0]=f=>l.value=f)},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(R.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",af,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",of,[e.createElementVNode("button",{class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:f}),onClick:y=>i(f),title:u(f)},[l.value===f?(e.openBlock(),e.createBlock(e.unref(R.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,sf)])]))),128))])])]),_:1},512))}},df={class:"flex gap-[4px] mb-[8px]"},uf={class:"grid grid-rows-3 grid-cols-7"},pf={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},ff=["onClick","title"],mf=["onClick","title"],hf={__name:"vs-editor-background-color",props:{editor:Object},setup(r){const t=r,n=e.ref(null),l=e.ref("transparent"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").backgroundColor||"transparent"),o=e.computed(()=>a.value!=="transparent"&&a.value!==""),s=()=>{t.editor&&(l.value=a.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=p=>{t.editor&&(t.editor.chain().focus().setBackgroundColor(p).run(),l.value=p,n.value&&n.value.togglePopover())},d=()=>{i(l.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,g)=>(e.openBlock(),e.createBlock(pt,{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":o.value}])},[e.createVNode(e.unref(R.PaintBucket),{class:"h-4 w-4"}),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:l.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",df,[e.createVNode(Wr,{modelValue:l.value,"onUpdate:modelValue":g[0]||(g[0]=f=>l.value=f)},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(R.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",uf,[e.createElementVNode("button",{onClick:g[1]||(g[1]=f=>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(R.Eraser),{class:"h-4 w-4"}),g[2]||(g[2]=e.createElementVNode("p",null,"no color",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",pf,[f!=="transparent"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:f}),onClick:y=>i(f),title:u(f)},[l.value===f?(e.openBlock(),e.createBlock(e.unref(R.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,ff)):e.createCommentVNode("",!0),f==="transparent"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"flex items-center justify-center w-full h-full",onClick:y=>i(f),title:u(f)},[l.value===f?(e.openBlock(),e.createBlock(e.unref(R.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],8,mf)):e.createCommentVNode("",!0)])]))),128))])])]),_:1},512))}},gf={__name:"vs-editor-highlight",props:{editor:Object},setup(r){const t=r,n=e.computed(()=>t.editor?.isActive("highlight")),l=()=>{t.editor&&t.editor.chain().focus().toggleHighlight().run()};return(a,o)=>(e.openBlock(),e.createElementBlock("button",{title:"Highlight",onClick:l,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(R.Highlighter),{class:"h-4 w-4"})],2))}},yf={class:"truncate"},bf={class:"w-[200px]"},kf={class:"max-h-[200px] overflow-y-auto"},xf=["onClick"],wf={__name:"vs-editor-font-family",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),l=e.ref(!1),a=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"}]),o=e.computed(()=>{if(!t.editor)return"Arial, sans-serif";for(const d of a.value)if(t.editor.isActive("textStyle",{fontFamily:d.value}))return d.value;return"Arial, sans-serif"}),s=e.computed(()=>a.value.find(u=>u.value===o.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(pt,{ref_key:"popover",ref:n,placement:"bottom",onIsvisible:u[0]||(u[0]=p=>l.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",[l.value?"bg-gray-100 text-gray-900":"text-gray-700"]]),style:e.normalizeStyle({fontFamily:o.value})},[e.createElementVNode("span",yf,e.toDisplayString(s.value),1),e.createVNode(e.unref(R.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})],6)]),default:e.withCtx(()=>[e.createElementVNode("div",bf,[e.createElementVNode("ul",kf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.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":c(p.value)}]),style:e.normalizeStyle({fontFamily:p.value}),onClick:g=>i(p.value)},e.toDisplayString(p.label),15,xf))),128))])])]),_:1},512))}},_f={class:"w-[120px]"},vf={class:"max-h-[200px] overflow-y-auto"},Cf=["onClick"],Ef={__name:"vs-editor-font-size",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),l=e.ref("14px"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").fontSize||"14px"),o=e.computed(()=>a.value!=="14px"),s=()=>{t.editor&&(l.value=a.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(),l.value=d,n.value&&n.value.togglePopover())};return(d,u)=>(e.openBlock(),e.createBlock(pt,{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":o.value}])},[e.createVNode(e.unref(R.ALargeSmall),{class:"h-4 w-4"}),e.createVNode(e.unref(R.ChevronDown),{class:"h-3 w-3 text-gray-400"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",_f,[e.createElementVNode("ul",vf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,p=>(e.openBlock(),e.createElementBlock("li",{key:p.value,class:"px-3 py-2 hover:bg-gray-100 cursor-pointer",onClick:g=>i(p.value)},e.toDisplayString(p.label),9,Cf))),128))])])]),_:1},512))}},Bf={components:{Superscript:R.Superscript},props:{editor:Object},methods:{toggleSuperscript(){this.editor&&this.editor.commands.toggleSuperscript()}}};function Vf(r,t,n,l,a,o){const s=e.resolveComponent("Superscript");return e.openBlock(),e.createElementBlock("button",{title:"Superscript",onClick:t[0]||(t[0]=(...c)=>o.toggleSuperscript&&o.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 Sf=pe(Bf,[["render",Vf]]),$f={components:{Subscript:R.Subscript},props:{editor:Object},methods:{toggleSubscript(){this.editor&&this.editor.commands.toggleSubscript()}}};function Af(r,t,n,l,a,o){const s=e.resolveComponent("Subscript");return e.openBlock(),e.createElementBlock("button",{title:"Subscript",onClick:t[0]||(t[0]=(...c)=>o.toggleSubscript&&o.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 Ff=pe($f,[["render",Af]]),Nf={title:"Heading",class:"h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700"},Df={class:"truncate"},Mf={class:"max-h-[200px] overflow-y-auto"},Tf=["onClick"],Lf=pe({__name:"vs-editor-heading",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),l=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}]),a=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"}),o=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(pt,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",Nf,[e.createElementVNode("span",Df,e.toDisplayString(a.value),1),e.createVNode(e.unref(R.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})])]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("ul",Mf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.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(o(u.value)),onClick:p=>s(u.value)},e.toDisplayString(u.label),15,Tf))),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-96f02f2a"]]),If={components:{RemoveFormatting:R.RemoveFormatting},props:{editor:Object},methods:{clearFormatting(){this.editor&&this.editor.commands.unsetAllMarks()}}};function Of(r,t,n,l,a,o){const s=e.resolveComponent("RemoveFormatting");return e.openBlock(),e.createElementBlock("button",{title:"Clear Formatting",onClick:t[0]||(t[0]=(...c)=>o.clearFormatting&&o.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 zf=pe(If,[["render",Of]]),Rf={class:"relative"},Pf={key:0,class:"mt-4"},jf=["src","alt","title"],Uf={key:0,class:"text-sm text-red-500"},Hf={key:1,class:"mt-4"},qf={class:"text-sm text-gray-600 mb-2"},Kf={class:"flex flex-wrap gap-2"},Gf=["src","alt","onError"],Wf=["onClick"],Yf={class:"flex justify-end gap-x-2 p-[20px]"},Zf=Object.assign({inheritAttrs:!1},{__name:"vs-editor-image",props:{editor:{type:Object,required:!0}},setup(r){const t=r,n=e.ref(!1),l=e.ref(!1),a=e.ref({}),o=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref({src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}),d=e.computed(()=>{if(Array.isArray(i.value.file)){const v=i.value.file.filter(V=>V instanceof File),A=i.value.file.filter(V=>typeof V=="string"&&V.trim()!=="");return v.length+A.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(v=>v instanceof File).length===1:i.value.file instanceof FileList?i.value.file.length===1:i.value.file instanceof File),p=e.computed(()=>{if(d.value)return"";if(i.value.src)return i.value.src;if(u.value){let v=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?v=i.value.file[0]:i.value.file instanceof File&&(v=i.value.file),v instanceof File){const A=s.value.find(E=>E.file===v);return A?A.preview:""}else if(typeof v=="string")return v}return""}),g=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}]),f=()=>{if(!t.editor)return;if(t.editor.isActive("image")){const{state:A}=t.editor,{selection:E}=A,{$from:V}=E;let B=null,M=null;if(V.parent.type.name==="image")B=V.before(V.depth),M=V.parent;else for(let ee=V.depth;ee>0;ee--){const ve=V.node(ee),ye=V.before(ee);ve.type.name==="paragraph"&&ve.forEach((W,ae)=>{if(W.type.name==="image"){const ie=ye+ae+1;(B===null||Math.abs(ie-E.$from.pos)<Math.abs(B-E.$from.pos))&&(B=ie,M=W)}})}if(B!==null&&M){try{t.editor.chain().focus().setNodeSelection(B).run()}catch{t.editor.chain().focus().setTextSelection(B).run()}c.value=B}else{t.editor.chain().focus().selectParentNode().run();const{state:ee}=t.editor;c.value=ee.selection.$from.pos}const N=M?M.attrs:t.editor.getAttributes("image");o.value=!0;let F="",T=!1;const U=t.editor.getAttributes("link");U&&U.href&&(F=U.href,T=U.target==="_blank");const j=N.src||"",Y=j?[j]:[];i.value={src:j,file:Y,alt:N.alt||"",title:N.title||"",width:N.width||"",height:N.height||"",link:F,openInNewTab:T}}else o.value=!1,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1};l.value=!1,n.value=!0},y=()=>{n.value=!1,l.value=!1,o.value=!1,s.value=[],c.value=null,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}},h=async v=>{if(!v||v.length===0)return;const A=[];for(const E of v)if(E&&E.type&&E.type.startsWith("image/")&&!s.value.some(B=>B.file===E)){const B=new Promise((M,N)=>{const F=new FileReader;F.onload=T=>{s.value.push({file:E,preview:T.target.result,error:!1}),M()},F.onerror=N,F.readAsDataURL(E)});A.push(B)}await Promise.all(A)},b=v=>{s.value.splice(v,1),Array.isArray(i.value.file)&&i.value.file.splice(v,1)},C=()=>{const v=i.value.width!==null&&i.value.width!==void 0&&i.value.width!==""&&String(i.value.width).trim()!==""?String(i.value.width).trim():"",A=i.value.height!==null&&i.value.height!==void 0&&i.value.height!==""&&String(i.value.height).trim()!==""?String(i.value.height).trim():"",E={};return v&&A?(E.width=v,E.height=A,E.style=`width: ${v}px; height: ${A}px; object-fit: fill;`):v?(E.width=v,E.height=void 0):A?(E.height=A,E.width=void 0):(E.width=void 0,E.height=void 0),E},w=(v,A=null,E=50)=>{const V=()=>{const{view:N}=v;if(!N||!N.dom)return;N.dom.querySelectorAll("img.editor-image[width][height]").forEach(U=>{if(U instanceof HTMLImageElement){const j=U.getAttribute("width"),Y=U.getAttribute("height");j&&Y&&j!=="auto"&&Y!=="auto"&&j!==""&&Y!==""&&!isNaN(Number(j))&&!isNaN(Number(Y))&&(U.style.cssText=`
|
|
33
|
-
width: ${
|
|
34
|
-
height: ${
|
|
34
|
+
`).trim()},jn=async(r,t)=>t!=="md"?r||"":Wr(r||""),fp=async(r,t)=>t!=="md"?r||"":Xr(r||""),mp=async(r,t)=>t!=="md"?r||"":Xr(r||""),hp=r=>String(r).trim().toLowerCase().split("-")[0],gp=()=>typeof window>"u"?"uk":hp(localStorage.getItem("language")||localStorage.getItem("locale")||navigator.language||"uk"),yp=(r,t)=>{const n=t.replace(/^form\.richtext\./,"");return Fn?.[r]?.form?.richtext?.[n]||Fn?.uk?.form?.richtext?.[n]||t},Jr=r=>r.startsWith("form.richtext.")?r:`form.richtext.${r}`;function on(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties,n=t?.$i18n;return{t:a=>{const o=t?.$t,s=t?.$te,c=typeof n?.te=="function"?n.te.bind(n):null;if(typeof o=="function"){const i=Jr(a);if((typeof s=="function"?s(i):typeof c=="function"?c(i):null)!==!1){const u=o(i);if(u&&u!==i)return u}}return yp(gp(),Jr(a))}}}const bp={components:{Quote:P.Quote},props:{editor:Object},methods:{toggleBlockquote(){this.editor&&this.editor.chain().toggleBlockquote().run()}}};function kp(r,t,n,l,a,o){const s=e.resolveComponent("Quote");return e.openBlock(),e.createElementBlock("button",{title:"Blockquote",onClick:t[0]||(t[0]=(...c)=>o.toggleBlockquote&&o.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 xp=ue(bp,[["render",kp]]),wp={components:{List:P.List},props:{editor:Object},methods:{toggleBulletList(){this.editor&&this.editor.chain().focus().toggleBulletList().run()}}};function vp(r,t,n,l,a,o){const s=e.resolveComponent("List");return e.openBlock(),e.createElementBlock("button",{title:"Bullet List",onClick:t[0]||(t[0]=(...c)=>o.toggleBulletList&&o.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 _p=ue(wp,[["render",vp]]),Cp={components:{ListOrdered:P.ListOrdered},props:{editor:Object},methods:{toggleOrderedList(){this.editor&&this.editor.chain().focus().toggleOrderedList().run()}}};function Ep(r,t,n,l,a,o){const s=e.resolveComponent("ListOrdered");return e.openBlock(),e.createElementBlock("button",{title:"Ordered List",onClick:t[0]||(t[0]=(...c)=>o.toggleOrderedList&&o.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 Bp=ue(Cp,[["render",Ep]]),Vp={components:{CodeXml:P.CodeXml},props:{editor:Object},methods:{toggleCodeBlock(){this.editor&&this.editor.chain().focus().toggleCodeBlock().run()}}};function Sp(r,t,n,l,a,o){const s=e.resolveComponent("CodeXml");return e.openBlock(),e.createElementBlock("button",{title:"Code Block",onClick:t[0]||(t[0]=(...c)=>o.toggleCodeBlock&&o.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 $p=ue(Vp,[["render",Sp]]),Ap={components:{Bold:P.Bold},props:{editor:Object},methods:{toggleBold(){this.editor&&this.editor.commands.toggleBold()}}};function Fp(r,t,n,l,a,o){const s=e.resolveComponent("Bold");return e.openBlock(),e.createElementBlock("button",{title:"Bold Text",onClick:t[0]||(t[0]=(...c)=>o.toggleBold&&o.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 Np=ue(Ap,[["render",Fp]]),Dp={components:{Italic:P.Italic},props:{editor:Object},methods:{toggleItalic(){this.editor&&this.editor.chain().toggleItalic().run()}}};function Mp(r,t,n,l,a,o){const s=e.resolveComponent("Italic");return e.openBlock(),e.createElementBlock("button",{title:"Italic Text",onClick:t[0]||(t[0]=(...c)=>o.toggleItalic&&o.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 Tp=ue(Dp,[["render",Mp]]),Lp={__name:"vs-editor-underline",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().toggleUnderline().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Underline",onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.isActive("underline")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(P.Underline),{class:"h-4 w-4"})],2))}},Ip={__name:"vs-editor-strike",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().toggleStrike().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Strikethrough",onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.isActive("strike")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(P.Strikethrough),{class:"h-4 w-4"})],2))}},Op={components:{X:P.X},props:{visible:{type:Boolean,default:()=>!1},modelValue:{type:Boolean,default:()=>!1},title:{type:String,default:()=>""},size:{type:String,default:()=>""},closeClickBack:{type:Boolean,default:()=>!1}},emits:["update:visible","update:modelValue","onClose","confirm","cancel"],inheritAttrs:!1,name:"vs-dialog",mounted(){window.addEventListener("keydown",this.checkKey)},unmounted(){window.removeEventListener("keydown",this.checkKey)},computed:{hasSlot(){return!!this.$slots?.footer},checkSize(){return this.size==="small"?"md:w-5/12 w-9/12":this.size==="medium"?"md:w-6/12 w-9/12":"lg:w-7/12 w-11/12"}},methods:{checkKey({key:r}){r==="Escape"&&this.handleClose()},handleClose(){this.$emit("update:visible",!1),this.$emit("update:modelValue",!1),this.$emit("onClose")},handleConfirm(){this.$emit("confirm"),this.handleClose()},handleCancel(){this.$emit("cancel"),this.handleClose()},closeByClickBack(r,t){t&&r.target.classList.contains("vs-dialog-overlay")&&this.handleClose()}}},zp={key:0,class:"vsTailwind ui-dialog__wrapper"},Rp={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Pp={class:"font-medium text-gray-800 dark:text-[#ffffff]"},jp={class:"ui-dialog__content p-4"},Up={key:0,class:"flex justify-end gap-x-2"};function Hp(r,t,n,l,a,o){const s=e.resolveComponent("X");return e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.visible||n.modelValue?(e.openBlock(),e.createElementBlock("div",zp,[e.createElementVNode("div",{onMousedown:t[1]||(t[1]=c=>o.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",[o.checkSize]])},[e.createElementVNode("div",Rp,[e.createElementVNode("h3",Pp,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)=>o.handleClose&&o.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",jp,[e.renderSlot(r.$slots,"default",{},void 0,!0)]),o.hasSlot?(e.openBlock(),e.createElementBlock("div",Up,[e.renderSlot(r.$slots,"footer",{handleClose:o.handleClose,handleConfirm:o.handleConfirm,handleCancel:o.handleCancel},void 0,!0)])):e.createCommentVNode("",!0)],2)]),_:3})],32)])):e.createCommentVNode("",!0)])}const Qr=ue(Op,[["render",Hp],["__scopeId","data-v-9395bb47"]]),qp=e.defineComponent({components:{IconClose:P.X,IconSearch:P.Search,IconEmail:P.Mail},inheritAttrs:!1,props:{icon:{type:String,default:()=>""},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},modelValue:{type:String,default:()=>""},placeholder:{type:String,default:()=>""},iconPosition:{type:String,default:()=>"right"},type:{type:String,default:()=>"text"},style:{type:Object,default:()=>null},size:{type:String,default:()=>"md"},attrs:{type:Object,default:()=>{}}},emits:["onInput","update:modelValue","blur","focus"],computed:{checkSize(){return(this.style?.size||this.size)==="xs"?"h-[32px] text-sm":(this.style?.size||this.size)==="md"?"h-[38px] text-sm":(this.style?.size||this.size)==="lg"?"h-[46px] text-[20px]":"h-[38px] text-sm"},value:{get(){return this.modelValue},set(r){this.$emit("update:modelValue",r.trim())}},clearIconStyle(){return[{"right-8":this.icon&&this.iconPosition==="right","right-3":!this.icon||this.iconPosition!=="right","pointer-events-none":this.disabled}]},iconStylePosition(){return[{"left-3":this.icon&&this.iconPosition==="left","right-3":this.icon&&this.iconPosition==="right"}]},inputStyle(){return[{"!pr-8":this.clearable&&!this.icon,"!pr-7":this.clearable,"!pr-16":this.clearable&&this.icon&&this.iconPosition==="right","!pl-8":this.icon&&this.iconPosition==="left","!pr-[50px]":this.clearable&&this.value&&this.icon&&this.iconPosition==="right","!cursor-not-allowed bg-slate-100":this.disabled,"bg-white":!this.disabled}]}},methods:{handleInput(){this.$emit("onInput",this.modelValue)},handleBlur(){this.$emit("blur")},handleFocus(){this.$emit("focus")},clearInput(){this.$emit("update:modelValue",""),this.$emit("onInput","")},async inputFocus(){await this.$refs.vsText?.focus()}}}),Kp={class:"vs-form-text relative bg-white rounded-lg"},Gp={key:2,class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Wp=["disabled","type","placeholder"];function Yp(r,t,n,l,a,o){const s=e.resolveComponent("IconClose"),c=e.resolveComponent("IconSearch"),i=e.resolveComponent("IconEmail");return e.openBlock(),e.createElementBlock("div",Kp,[r.clearable&&r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[0]||(t[0]=(...d)=>r.clearInput&&r.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),r.icon&&r.icon==="search"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 cursor-pointer",r.iconStylePosition])},[e.createVNode(c,{class:"h-4 w-4 stroke-gray-500 transition-all"})],2)):r.icon&&r.icon==="email"?(e.openBlock(),e.createElementBlock("div",Gp,[e.createVNode(i,{class:"h-4 w-4 stroke-gray-500 transition-all"})])):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 text-gray-500 cursor-pointer",["ti "+r.icon,r.iconStylePosition]])},null,2)),r.clearable&&r.value?(e.openBlock(),e.createElementBlock("div",{key:4,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[1]||(t[1]=(...d)=>r.clearInput&&r.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",e.mergeProps({ref:"vsText",disabled:r.disabled,type:r.type,onInput:t[2]||(t[2]=(...d)=>r.handleInput&&r.handleInput(...d)),placeholder:r.placeholder,"onUpdate:modelValue":t[3]||(t[3]=d=>r.value=d)},r.style?.attrs||r.attrs||{},{onFocus:t[4]||(t[4]=(...d)=>r.handleFocus&&r.handleFocus(...d)),onBlur:t[5]||(t[5]=(...d)=>r.handleBlur&&r.handleBlur(...d)),class:[[r.inputStyle,r.checkSize],"py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-sm text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"]}),null,16,Wp),[[e.vModelDynamic,r.value]])])}const el=ue(qp,[["render",Yp],["__scopeId","data-v-1e382a36"]]),Zp=["title"],Xp={class:"flex flex-col gap-3 p-[20px]"},Jp={class:"relative flex items-center gap-2"},Qp={class:"flex-1"},ef={key:0,class:"flex items-center gap-2 flex-shrink-0"},tf=["title"],nf=["title"],rf={class:"flex items-center gap-2"},lf={for:"openInNewTab",class:"text-sm text-gray-700 cursor-pointer"},af={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},of=Object.assign({inheritAttrs:!1},{__name:"vs-editor-link",props:{editor:Object},setup(r){const{t}=on(),n=r,l=e.ref(!1),a=e.ref(""),o=e.ref(!1),s=e.ref(!1),c=()=>{if(!n.editor)return;n.editor.chain().focus().extendMarkRange("link").run();const y=n.editor.getAttributes("link");y.href?(o.value=!0,a.value=y.href,s.value=y.target==="_blank"):(o.value=!1,a.value="",s.value=!1),l.value=!0},i=()=>{l.value=!1,a.value="",o.value=!1,s.value=!1},d=()=>{if(!n.editor||!a.value.trim())return;let y=a.value.trim();y.match(/^https?:\/\//i)||(y="https://"+y),n.editor.chain().focus().setLink({href:y,target:s.value?"_blank":null}).run(),i()},u=()=>{n.editor&&(n.editor.chain().focus().unsetLink().run(),i())},p=()=>{if(!a.value)return;let y=a.value.trim();y.match(/^https?:\/\//i)||(y="https://"+y),window.open(y,"_blank","noopener,noreferrer")};return(y,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("button",{title:e.unref(t)("form.richtext.link")||"Посилання",onClick:c,class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":r.editor?.isActive("link")}])},[e.createVNode(e.unref(P.Link2),{class:"h-4 w-4"})],10,Zp),e.createVNode(Qr,{title:o.value?e.unref(t)("form.richtext.editLink")||"Редагувати посилання":e.unref(t)("form.richtext.linkTitle")||"Додати посилання",visible:l.value,"onUpdate:visible":f[2]||(f[2]=g=>l.value=g),size:"small"},{footer:e.withCtx(()=>[e.createElementVNode("div",af,[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(o.value?e.unref(t)("form.richtext.update")||"Оновити":e.unref(t)("form.richtext.create")||"Створити"),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Xp,[e.createElementVNode("div",Jp,[e.createElementVNode("div",Qp,[e.createVNode(el,{modelValue:a.value,"onUpdate:modelValue":f[0]||(f[0]=g=>a.value=g),placeholder:e.unref(t)("form.richtext.linkUrl")||"Введіть URL",class:"w-full"},null,8,["modelValue","placeholder"])]),o.value?(e.openBlock(),e.createElementBlock("div",ef,[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(P.ExternalLink),{class:"h-4 w-4"})],8,tf),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(P.Trash2),{class:"h-4 w-4"})],8,nf)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",rf,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"openInNewTab","onUpdate:modelValue":f[1]||(f[1]=g=>s.value=g),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",lf,e.toDisplayString(e.unref(t)("form.richtext.openInNewTab")||"Відкривати в новій вкладці"),1)])])]),_:1},8,["title","visible"])],64))}}),Tt=async(r,t,n,l=10)=>{if(!t||!n)return;await e.nextTick();const a=await n?.getBoundingClientRect(),o=await t?.getBoundingClientRect();if(!o||!a)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,p=await window.innerWidth;let y=0,f=0;const g=o.bottom+l+i;switch(r){case"top":o.top-a.height-l<0?y=o.top-a.height+l+i+s:y=o.top-a.height-l,p>d+o.right+30?f=o.left-a.width/2+o.width/2:f=p-30-d;break;case"bottom":u>g?y=o.bottom+l:y=o.bottom-l-i-s,f=o.left-a.width/2+o.width/2;break;case"left":y=o.top-a.height/2+o.height/2,o.left-a.width-l>0?f=o.left-a.width-l:f=10;break;case"right":y=o.top-a.height/2+o.height/2,p-c>d?f=o.right+l:f=p-30-d;break;case"top-right":o.top-a.height-l<0?y=o.top-a.height+l+i+s:y=o.top-a.height-l,p-c>d?f=o.right+l:f=p-30-d;break;case"top-left":o.top-a.height-l<0?y=o.top-a.height+l+i+s:y=o.top-a.height-l,o.left-a.width-l>0?f=o.left-a.width-l:f=10;break;case"top-start":o.top-a.height-l<0?y=o.top-a.height+l+i+s:y=o.top-a.height-l,o.left>0?f=o.left:f=10;break;case"bottom-right":u>g?y=o.bottom+l:y=o.bottom-l-i-s,p-c>d?f=o.left:f=p-30-d;break;case"bottom-left":u>g?y=o.bottom+l:y=o.bottom-l-i-s,o.left>0?f=o.right-d:f=10;break;case"bottom-start":u>g?y=o.bottom+l:y=o.bottom-l-i-s,o.left>0?f=o.left:f=10;break}y+i>u?y=u-i-l:y<0&&(y=l),f+d>p?f=p-d-l:f<0&&(f=l),n instanceof HTMLElement&&(n.style.top=`${y}px`,n.style.left=`${f}px`,n.style.position="fixed")},sf={class:"text-center"},cf={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"},pt=Object.assign({inheritAttrs:!1},{__name:"vs-popover",props:{isOpen:{type:Boolean,default:()=>!1},placement:{type:String,default:"top"},gap:{type:Number,default:8},width:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},trigger:{type:String,default:"click"},teleport:{type:String,default:"body"}},emits:["isvisible"],setup(r,{expose:t,emit:n}){const l=r,a=n,o=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref(null),d=e.ref(null);e.watch(o,x=>{x?(u(),window.addEventListener("resize",()=>Tt(l.placement,i.value,d.value)),Tt(l.placement,i.value,d.value)):window.removeEventListener("resize",()=>Tt(l.placement,i.value,d.value)),a("isvisible",x)}),e.onMounted(()=>{window.addEventListener("click",k),window.addEventListener("popstate",C),window.addEventListener("scroll",v,!0),u()}),e.onBeforeUnmount(()=>{window.removeEventListener("click",k),window.removeEventListener("popstate",C),p()});const u=()=>{let x=c.value;for(;x&&x!==document.body;)(x.scrollHeight>x.clientHeight||x.scrollWidth>x.clientWidth)&&(x.addEventListener("scroll",h),s.value.push(x)),x=x.parentElement;document.body&&(document.body.addEventListener("scroll",h),s.value.push(document.body))},p=()=>{s.value.forEach(x=>{x.removeEventListener("scroll",h)}),s.value=[]},y=()=>{o.value=!0,Tt(l.placement,i.value,d.value)},f=()=>{o.value=!1},g=async()=>{await Tt(l.placement,i.value,d.value),o.value=!o.value},h=()=>{o.value=!1},k=x=>{if(!x){o.value=!1;return}i.value?.contains(x.target)||d.value?.contains(x.target)||(o.value=!1)},C=()=>{o.value&&(o.value=!1)},v=x=>{o.value&&d.value&&!d.value.contains(x.target)&&(o.value=!1)};return t({togglePopover:g}),(x,w)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"popover",ref:c,class:"vs-popover inline-block"},[e.createElementVNode("div",sf,[r.trigger==="click"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverRef",ref:i,onClick:g,class:e.normalizeClass({"pointer-events-none":r.disabled})},[e.renderSlot(x.$slots,"reference",{},()=>[w[0]||(w[0]=e.createElementVNode("button",null,"Click me!",-1))])],2)):e.createCommentVNode("",!0),r.trigger==="hover"?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"popoverRef",ref:i,onMouseover:y,onMouseleave:f,class:e.normalizeClass({"pointer-events-none":r.disabled})},[e.renderSlot(x.$slots,"reference",{},()=>[w[1]||(w[1]=e.createElementVNode("button",null,"Click me!",-1))])],34)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:r.teleport},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content",r.placement]),ref_key:"contentPop",ref:d,style:e.normalizeStyle({width:r.width?r.width+"px":"fit-content",zIndex:100001})},[e.createElementVNode("div",cf,[e.renderSlot(x.$slots,"default",{},()=>[w[2]||(w[2]=e.createElementVNode("span",null,"Popover content",-1))])])],6),[[e.vShow,o.value]])]),_:3})],8,["to"]))])],512))}}),df={class:"flex flex-col gap-[2px] p-[2px]"},uf=["onClick"],pf={__name:"vs-editor-table",props:{editor:Object},setup(r){const{t}=on(),n=r,l=e.ref(!1),a=e.ref("popover"),o=()=>{n.editor&&(n.editor.chain().focus().insertTable({rows:3,cols:3,withHeaderRow:!0}).run(),a.value.togglePopover())},s=()=>{n.editor&&(n.editor.chain().focus().addColumnAfter().run(),a.value.togglePopover())},c=()=>{n.editor&&(n.editor.chain().focus().addRowAfter().run(),a.value.togglePopover())},i=()=>{n.editor&&(n.editor.chain().focus().deleteColumn().run(),a.value.togglePopover())},d=()=>{n.editor&&(n.editor.chain().focus().deleteRow().run(),a.value.togglePopover())},u=()=>{n.editor&&(n.editor.chain().focus().deleteTable().run(),a.value.togglePopover())},p=()=>{n.editor&&(n.editor.chain().focus().mergeCells().run(),a.value.togglePopover())},y=()=>{n.editor&&(n.editor.chain().focus().splitCell().run(),a.value.togglePopover())},f=e.computed(()=>[{text:t("form.richtext.createTable"),function:o},{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:p},{text:t("form.richtext.splitCells"),function:y}]);return(g,h)=>(e.openBlock(),e.createBlock(pt,{ref_key:"popover",ref:a,placement:"bottom",onIsvisible:h[0]||(h[0]=k=>l.value=k)},{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",[l.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(P.Table2),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",df,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(k,C)=>(e.openBlock(),e.createElementBlock("button",{key:C,onClick:k?.function,class:"px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded"},e.toDisplayString(k.text),9,uf))),128))])]),_:1},512))}},ff={class:"flex gap-[4px] p-1"},mf=["title","onClick"],hf={__name:"vs-editor-align",props:{editor:Object},setup(r){const t=r,n={left:P.AlignLeft,center:P.AlignCenter,right:P.AlignRight,justify:P.AlignJustify},l=e.ref(!1),a=e.ref("popover"),o=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),p=()=>{c.value?o.value="right":i.value?o.value="center":d.value?o.value="justify":o.value="left"};e.watch([s,c,i,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 y=g=>{t.editor&&(t.editor.chain().focus().setTextAlign(g).run(),o.value=g)},f=e.ref([{id:"left",isActive:s},{id:"center",isActive:i},{id:"right",isActive:c},{id:"justify",isActive:d}]);return(g,h)=>(e.openBlock(),e.createBlock(pt,{ref_key:"popover",ref:a,placement:"bottom",onIsvisible:h[0]||(h[0]=k=>l.value=k)},{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[o.value]),{height:"16",width:"16"}))],2)]),default:e.withCtx(()=>[e.createElementVNode("div",ff,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,k=>(e.openBlock(),e.createElementBlock("button",{title:"Text align "+k?.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":k?.isActive}]),key:k?.id,onClick:C=>y(k?.id)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[k?.id]),{height:"16",width:"16"}))],10,mf))),128))])]),_:1},512))}},gf={class:"flex flex-col gap-[2px] p-[2px]"},yf=["onClick"],bf={__name:"vs-editor-type-tag",props:{editor:Object},setup(r){const{t}=on(),n=r,l=e.ref(!1),a=e.ref("popover"),o=()=>{n.editor&&(n.editor?.chain().focus().setParagraph().run(),a.value.togglePopover())},s=i=>{n.editor&&(n.editor?.chain().focus().toggleHeading({level:i}).run(),a.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(pt,{ref_key:"popover",ref:a,placement:"bottom",onIsvisible:d[0]||(d[0]=u=>l.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",[l.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(P.Type),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",gf,[e.createElementVNode("button",{onClick:o,class:e.normalizeClass(["px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded",[r.editor?.isActive("paragraph")?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)("form.richtext.paragraph")),3),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(u,p)=>(e.openBlock(),e.createElementBlock("button",{key:p,onClick:y=>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,r.editor?.isActive("heading",{level:u?.id})?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)(`form.richtext.heading${u?.id}`)),11,yf))),128))])]),_:1},512))}},kf={components:{VsText:el},inheritAttrs:!1,events:["update:modelValue"],props:{modelValue:{type:String},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},isTextInputShown:{type:Boolean,default:()=>!0}},computed:{value:{get(){return this.modelValue??""},set(r){this.$emit("update:modelValue",r)}}}},xf={class:"flex items-center w-full max-w-[182px]"},wf=["disabled"];function vf(r,t,n,l,a,o){const s=e.resolveComponent("vs-text");return e.openBlock(),e.createElementBlock("div",xf,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=c=>o.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,wf),[[e.vModelText,o.value]]),n.isTextInputShown?(e.openBlock(),e.createBlock(s,{key:0,modelValue:o.value,"onUpdate:modelValue":t[1]||(t[1]=c=>o.value=c),class:"ml-2 w-full",disabled:n.disabled,clearable:n.clearable},null,8,["modelValue","disabled","clearable"])):e.createCommentVNode("",!0)])}const tl=ue(kf,[["render",vf]]),_f={class:"flex gap-[4px] mb-[8px]"},Cf={class:"grid grid-rows-3 grid-cols-7"},Ef={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},Bf=["onClick","title"],Vf={__name:"vs-editor-color",props:{editor:Object},setup(r){const t=r,n=e.ref(null),l=e.ref("#000000"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").color||"#000000"),o=e.computed(()=>a.value!=="#000000"),s=()=>{t.editor&&(l.value=a.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=p=>{t.editor&&(t.editor.chain().focus().setColor(p).run(),l.value=p,n.value&&n.value.togglePopover())},d=()=>{i(l.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,y)=>(e.openBlock(),e.createBlock(pt,{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":o.value}])},[y[1]||(y[1]=e.createElementVNode("span",{class:"leading-none"},"A",-1)),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:l.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",_f,[e.createVNode(tl,{modelValue:l.value,"onUpdate:modelValue":y[0]||(y[0]=f=>l.value=f)},null,8,["modelValue"]),e.createElementVNode("button",{onClick:d,class:"h-[38px] w-[38px] bg-blue-500 shrink-0 border rounded-md flex items-center justify-center hover:bg-blue-700 duration-300"},[e.createVNode(e.unref(P.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",Cf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",Ef,[e.createElementVNode("button",{class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:f}),onClick:g=>i(f),title:u(f)},[l.value===f?(e.openBlock(),e.createBlock(e.unref(P.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,Bf)])]))),128))])])]),_:1},512))}},Sf={class:"flex gap-[4px] mb-[8px]"},$f={class:"grid grid-rows-3 grid-cols-7"},Af={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},Ff=["onClick","title"],Nf=["onClick","title"],Df={__name:"vs-editor-background-color",props:{editor:Object},setup(r){const t=r,n=e.ref(null),l=e.ref("transparent"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").backgroundColor||"transparent"),o=e.computed(()=>a.value!=="transparent"&&a.value!==""),s=()=>{t.editor&&(l.value=a.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=p=>{t.editor&&(t.editor.chain().focus().setBackgroundColor(p).run(),l.value=p,n.value&&n.value.togglePopover())},d=()=>{i(l.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,y)=>(e.openBlock(),e.createBlock(pt,{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":o.value}])},[e.createVNode(e.unref(P.PaintBucket),{class:"h-4 w-4"}),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:l.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",Sf,[e.createVNode(tl,{modelValue:l.value,"onUpdate:modelValue":y[0]||(y[0]=f=>l.value=f)},null,8,["modelValue"]),e.createElementVNode("button",{onClick:d,class:"h-[38px] w-[38px] bg-blue-500 shrink-0 border rounded-md flex items-center justify-center hover:bg-blue-700 duration-300"},[e.createVNode(e.unref(P.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",$f,[e.createElementVNode("button",{onClick:y[1]||(y[1]=f=>i("transparent")),class:"col-span-7 flex items-center justify-center gap-2 bg-gray-100 rounded-md py-1 mb-2 hover:bg-gray-200"},[e.createVNode(e.unref(P.Eraser),{class:"h-4 w-4"}),y[2]||(y[2]=e.createElementVNode("p",null,"no color",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,f=>(e.openBlock(),e.createElementBlock("div",{key:f,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",Af,[f!=="transparent"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:f}),onClick:g=>i(f),title:u(f)},[l.value===f?(e.openBlock(),e.createBlock(e.unref(P.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,Ff)):e.createCommentVNode("",!0),f==="transparent"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"flex items-center justify-center w-full h-full",onClick:g=>i(f),title:u(f)},[l.value===f?(e.openBlock(),e.createBlock(e.unref(P.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],8,Nf)):e.createCommentVNode("",!0)])]))),128))])])]),_:1},512))}},Mf={__name:"vs-editor-highlight",props:{editor:Object},setup(r){const t=r,n=e.computed(()=>t.editor?.isActive("highlight")),l=()=>{t.editor&&t.editor.chain().focus().toggleHighlight().run()};return(a,o)=>(e.openBlock(),e.createElementBlock("button",{title:"Highlight",onClick:l,class:e.normalizeClass(["flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-200":n.value}])},[e.createVNode(e.unref(P.Highlighter),{class:"h-4 w-4"})],2))}},Tf={class:"truncate"},Lf={class:"w-[200px]"},If={class:"max-h-[200px] overflow-y-auto"},Of=["onClick"],zf={__name:"vs-editor-font-family",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),l=e.ref(!1),a=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"}]),o=e.computed(()=>{if(!t.editor)return"Arial, sans-serif";for(const d of a.value)if(t.editor.isActive("textStyle",{fontFamily:d.value}))return d.value;return"Arial, sans-serif"}),s=e.computed(()=>a.value.find(u=>u.value===o.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(pt,{ref_key:"popover",ref:n,placement:"bottom",onIsvisible:u[0]||(u[0]=p=>l.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",[l.value?"bg-gray-100 text-gray-900":"text-gray-700"]]),style:e.normalizeStyle({fontFamily:o.value})},[e.createElementVNode("span",Tf,e.toDisplayString(s.value),1),e.createVNode(e.unref(P.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})],6)]),default:e.withCtx(()=>[e.createElementVNode("div",Lf,[e.createElementVNode("ul",If,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.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":c(p.value)}]),style:e.normalizeStyle({fontFamily:p.value}),onClick:y=>i(p.value)},e.toDisplayString(p.label),15,Of))),128))])])]),_:1},512))}},Rf={class:"w-[120px]"},Pf={class:"max-h-[200px] overflow-y-auto"},jf=["onClick"],Uf={__name:"vs-editor-font-size",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),l=e.ref("14px"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").fontSize||"14px"),o=e.computed(()=>a.value!=="14px"),s=()=>{t.editor&&(l.value=a.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(),l.value=d,n.value&&n.value.togglePopover())};return(d,u)=>(e.openBlock(),e.createBlock(pt,{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":o.value}])},[e.createVNode(e.unref(P.ALargeSmall),{class:"h-4 w-4"}),e.createVNode(e.unref(P.ChevronDown),{class:"h-3 w-3 text-gray-400"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Rf,[e.createElementVNode("ul",Pf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,p=>(e.openBlock(),e.createElementBlock("li",{key:p.value,class:"px-3 py-2 hover:bg-gray-100 cursor-pointer",onClick:y=>i(p.value)},e.toDisplayString(p.label),9,jf))),128))])])]),_:1},512))}},Hf={components:{Superscript:P.Superscript},props:{editor:Object},methods:{toggleSuperscript(){this.editor&&this.editor.commands.toggleSuperscript()}}};function qf(r,t,n,l,a,o){const s=e.resolveComponent("Superscript");return e.openBlock(),e.createElementBlock("button",{title:"Superscript",onClick:t[0]||(t[0]=(...c)=>o.toggleSuperscript&&o.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 Kf=ue(Hf,[["render",qf]]),Gf={components:{Subscript:P.Subscript},props:{editor:Object},methods:{toggleSubscript(){this.editor&&this.editor.commands.toggleSubscript()}}};function Wf(r,t,n,l,a,o){const s=e.resolveComponent("Subscript");return e.openBlock(),e.createElementBlock("button",{title:"Subscript",onClick:t[0]||(t[0]=(...c)=>o.toggleSubscript&&o.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 Yf=ue(Gf,[["render",Wf]]),Zf={title:"Heading",class:"h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700"},Xf={class:"truncate"},Jf={class:"max-h-[200px] overflow-y-auto"},Qf=["onClick"],em=ue({__name:"vs-editor-heading",props:{editor:Object},setup(r){const t=r,n=e.ref("popover"),l=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}]),a=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"}),o=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(pt,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",Zf,[e.createElementVNode("span",Xf,e.toDisplayString(a.value),1),e.createVNode(e.unref(P.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})])]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("ul",Jf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.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(o(u.value)),onClick:p=>s(u.value)},e.toDisplayString(u.label),15,Qf))),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"]]),tm={components:{RemoveFormatting:P.RemoveFormatting},props:{editor:Object},methods:{clearFormatting(){this.editor&&this.editor.commands.unsetAllMarks()}}};function nm(r,t,n,l,a,o){const s=e.resolveComponent("RemoveFormatting");return e.openBlock(),e.createElementBlock("button",{title:"Clear Formatting",onClick:t[0]||(t[0]=(...c)=>o.clearFormatting&&o.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 rm=ue(tm,[["render",nm]]),lm={class:"relative"},am={key:0,class:"mt-4"},om=["src","alt","title"],sm={key:0,class:"text-sm text-red-500"},im={key:1,class:"mt-4"},cm={class:"text-sm text-gray-600 mb-2"},dm={class:"flex flex-wrap gap-2"},um=["src","alt","onError"],pm=["onClick"],fm={class:"flex justify-end gap-x-2 p-[20px]"},mm=Object.assign({inheritAttrs:!1},{__name:"vs-editor-image",props:{editor:{type:Object,required:!0}},setup(r){const t=r,n=e.ref(!1),l=e.ref(!1),a=e.ref({}),o=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(D=>D instanceof File),S=i.value.file.filter(D=>typeof D=="string"&&D.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),p=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(E=>E.file===_);return S?S.preview:""}else if(typeof _=="string")return _}return""}),y=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}]),f=()=>{if(!t.editor)return;if(t.editor.isActive("image")){const{state:S}=t.editor,{selection:E}=S,{$from:D}=E;let T=null,L=null;if(D.parent.type.name==="image")T=D.before(D.depth),L=D.parent;else for(let Q=D.depth;Q>0;Q--){const _e=D.node(Q),ge=D.before(Q);_e.type.name==="paragraph"&&_e.forEach((Z,ae)=>{if(Z.type.name==="image"){const ie=ge+ae+1;(T===null||Math.abs(ie-E.$from.pos)<Math.abs(T-E.$from.pos))&&(T=ie,L=Z)}})}if(T!==null&&L){try{t.editor.chain().focus().setNodeSelection(T).run()}catch{t.editor.chain().focus().setTextSelection(T).run()}c.value=T}else{t.editor.chain().focus().selectParentNode().run();const{state:Q}=t.editor;c.value=Q.selection.$from.pos}const $=L?L.attrs:t.editor.getAttributes("image");o.value=!0;let M="",N=!1;const H=t.editor.getAttributes("link");H&&H.href&&(M=H.href,N=H.target==="_blank");const U=$.src||"",q=U?[U]:[];i.value={src:U,file:q,alt:$.alt||"",title:$.title||"",width:$.width||"",height:$.height||"",link:M,openInNewTab:N}}else o.value=!1,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1};l.value=!1,n.value=!0},g=()=>{n.value=!1,l.value=!1,o.value=!1,s.value=[],c.value=null,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}},h=async _=>{if(!_||_.length===0)return;const S=[];for(const E of _)if(E&&E.type&&E.type.startsWith("image/")&&!s.value.some(T=>T.file===E)){const T=new Promise((L,$)=>{const M=new FileReader;M.onload=N=>{s.value.push({file:E,preview:N.target.result,error:!1}),L()},M.onerror=$,M.readAsDataURL(E)});S.push(T)}await Promise.all(S)},k=_=>{s.value.splice(_,1),Array.isArray(i.value.file)&&i.value.file.splice(_,1)},C=()=>{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():"",E={};return _&&S?(E.width=_,E.height=S,E.style=`width: ${_}px; height: ${S}px; object-fit: fill;`):_?(E.width=_,E.height=void 0):S?(E.height=S,E.width=void 0):(E.width=void 0,E.height=void 0),E},v=(_,S=null,E=50)=>{const D=()=>{const{view:$}=_;if(!$||!$.dom)return;$.dom.querySelectorAll("img.editor-image[width][height]").forEach(H=>{if(H instanceof HTMLImageElement){const U=H.getAttribute("width"),q=H.getAttribute("height");U&&q&&U!=="auto"&&q!=="auto"&&U!==""&&q!==""&&!isNaN(Number(U))&&!isNaN(Number(q))&&(H.style.cssText=`
|
|
35
|
+
width: ${U}px !important;
|
|
36
|
+
height: ${q}px !important;
|
|
35
37
|
max-width: none !important;
|
|
36
38
|
max-height: none !important;
|
|
37
39
|
min-width: auto !important;
|
|
38
40
|
min-height: auto !important;
|
|
39
41
|
object-fit: fill !important;
|
|
40
|
-
`.replace(/\s+/g," ").trim())}})},B=i.value.width,M=i.value.height;B&&M&&B!==""&&M!==""?[0,E,E*2,E*3,E*4].forEach(F=>{setTimeout(V,F)}):(V(),setTimeout(V,E))},k=async()=>{let v=[],A=[];if(Array.isArray(i.value.file)?(v=i.value.file.filter(N=>N instanceof File),A=i.value.file.filter(N=>typeof N=="string"&&N.trim()!=="")):i.value.file instanceof FileList?v=Array.from(i.value.file):i.value.file instanceof File?v=[i.value.file]:typeof i.value.file=="string"&&i.value.file.trim()!==""&&(A=[i.value.file]),v.length===0&&A.length===0&&a.value&&a.value.file){const N=a.value.file;Array.isArray(N)?(v=N.filter(F=>F instanceof File),A=N.filter(F=>typeof F=="string"&&F.trim()!=="")):N instanceof FileList?v=Array.from(N):N instanceof File?v=[N]:typeof N=="string"&&N.trim()!==""&&(A=[N])}if(A.length>0&&!o.value){for(const N of A)s.value.some(F=>F.url===N)||s.value.push({url:N,preview:N,error:!1});if(v.length===0&&s.value.length>0){await S();return}}const E=v.length,V=E+A.length;if(!(o.value&&E<=1)){if(E>0){const N=v.filter(F=>!s.value.some(T=>T.file===F));N.length>0&&await h(N)}}if(!o.value){if(V>1||d.value||s.value.length>1){if(s.value.length>0){await S();return}else if(E>0){if(await h(v),s.value.length>0){await S();return}}else if(A.length>0){await S();return}}else if(s.value.length>1){await S();return}}let B=i.value.src;if(u.value){let N=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?N=i.value.file[0]:(i.value.file instanceof File||typeof i.value.file=="string")&&(N=i.value.file),N instanceof File)try{const F=new FileReader,T=await new Promise((U,j)=>{F.onload=Y=>U(Y.target.result),F.onerror=j,F.readAsDataURL(N)});B=T,o.value&&(i.value.src=T)}catch(F){console.error("Помилка при читанні файлу:",F),ge.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof N=="string"&&N.trim()!==""&&(B=N.trim(),o.value&&N.trim()!==i.value.src&&(i.value.src=N.trim(),B=N.trim()))}else if(Array.isArray(i.value.file)&&i.value.file.length===1){const N=i.value.file[0];typeof N=="string"&&N.trim()!==""&&(B=N.trim(),(!i.value.src||i.value.src!==N.trim())&&(i.value.src=N.trim()))}else typeof i.value.file=="string"&&i.value.file.trim()!==""&&(B=i.value.file.trim(),(!i.value.src||i.value.src!==i.value.file.trim())&&(i.value.src=i.value.file.trim()));const M=B||Array.isArray(i.value.file)&&i.value.file.length>0&&(i.value.file.some(N=>N instanceof File)||i.value.file.some(N=>typeof N=="string"&&N.trim()!==""))||i.value.file instanceof FileList&&i.value.file.length>0||typeof i.value.file=="string"&&i.value.file.trim()!=="";if(!B&&!M){ge.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!M&&await a.value.validate()){ge.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&B)if(o.value&&c.value!==null){const{state:N}=t.editor;try{t.editor.chain().focus().setNodeSelection(c.value).run()}catch{t.editor.chain().focus().setTextSelection(c.value).run()}const F=t.editor.getAttributes("link"),T=F&&F.href,U=C(),j={src:B,alt:i.value.alt||"",title:i.value.title||"",...U};if((!i.value.width||i.value.width==="")&&(j.width=void 0),(!i.value.height||i.value.height==="")&&(j.height=void 0),t.editor.chain().focus().updateAttributes("image",j).run(),setTimeout(()=>{const{view:Y}=t.editor;if(!Y||!Y.dom)return;Y.dom.querySelectorAll("img.editor-image").forEach(ye=>{if(ye instanceof HTMLImageElement){const W=ye.getAttribute("src")||ye.src;(W===B||W.includes(B.split("/").pop()))&&(i.value.width&&i.value.height?(ye.style.setProperty("width",`${i.value.width}px`,"important"),ye.style.setProperty("height",`${i.value.height}px`,"important"),ye.style.setProperty("object-fit","fill","important"),ye.style.setProperty("max-width","none","important"),ye.style.setProperty("max-height","none","important")):(ye.style.removeProperty("width"),ye.style.removeProperty("height"),ye.style.removeProperty("object-fit"),ye.style.removeProperty("max-width"),ye.style.removeProperty("max-height")))}})},20),i.value.link&&i.value.link.trim()!==""){let Y=i.value.link.trim();Y.match(/^https?:\/\//i)||(Y="https://"+Y),T?t.editor.chain().focus().extendMarkRange("link").setLink({href:Y,target:i.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:Y,target:i.value.openInNewTab?"_blank":null}).run()}else T&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:N}=t.editor,{selection:F}=N,{$anchor:T}=F;let U=null;for(let Y=T.depth;Y>0;Y--){const ee=T.node(Y);if(ee&&ee.type.name==="paragraph"){U=ee;break}}if(U&&U.content.content.some(Y=>Y.type.name==="image")){const Y=x(U,T.before(T.depth));if(Y!==null){const ee=C(),ve=N.schema.nodes.image.create({src:B,alt:i.value.alt||"",title:i.value.title||"",...ee});if(i.value.link&&i.value.link.trim()!==""){let ye=i.value.link.trim();ye.match(/^https?:\/\//i)||(ye="https://"+ye);const W=N.schema.marks.link.create({href:ye,target:i.value.openInNewTab?"_blank":null}),ae=ve.type.create(ve.attrs,ve.content,[W]);t.editor.chain().focus().insertContentAt(Y+1,ae).run(),w(t.editor,B)}else t.editor.chain().focus().insertContentAt(Y+1,ve).run(),w(t.editor,B)}else if(i.value.link&&i.value.link.trim()!==""){const ee=C();t.editor.chain().focus().setImage({src:B,alt:i.value.alt||"",title:i.value.title||"",...ee}).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(),w(t.editor,B,20)},10)}else{const ee=C();t.editor.chain().focus().setImage({src:B,alt:i.value.alt||"",title:i.value.title||"",...ee}).run(),w(t.editor,B)}}else if(i.value.link&&i.value.link.trim()!==""){const Y=C();t.editor.chain().focus().setImage({src:B,alt:i.value.alt||"",title:i.value.title||"",...Y}).run(),setTimeout(()=>{let ee=i.value.link.trim();ee.match(/^https?:\/\//i)||(ee="https://"+ee),t.editor.chain().focus().selectParentNode().setLink({href:ee,target:i.value.openInNewTab?"_blank":null}).run(),w(t.editor,B,20)},10)}else{const Y=C();t.editor.chain().focus().setImage({src:B,alt:i.value.alt||"",title:i.value.title||"",...Y}).run(),w(t.editor,B)}}y()},x=(v,A)=>{let E=null;return v.forEach((V,B)=>{V.type.name==="image"&&(E=A+B+1)}),E},S=async()=>{if(t.editor){if(s.value.length===0)if(Array.isArray(i.value.file)&&i.value.file.length>0){const v=i.value.file.filter(E=>typeof E=="string"&&E.trim()!==""),A=i.value.file.filter(E=>E instanceof File);for(const E of v)s.value.some(V=>V.url===E||V.preview===E)||s.value.push({url:E,preview:E,error:!1});A.length>0&&await h(A)}else d.value&&await h(i.value.file);if(s.value.length!==0)try{const v=[],A=C();for(const E of s.value){const V=E.url||E.preview||"";if(!V)continue;const B=t.editor.schema.nodes.image.create({src:V,alt:i.value.alt||"",title:i.value.title||"",...A});v.push(B)}v.length>0&&(t.editor.chain().focus().command(({tr:E,dispatch:V})=>{if(V){const{selection:B}=E,{$anchor:M}=B;let N=B.$anchor.pos,F=null,T=null;for(let j=M.depth;j>0;j--){const Y=M.node(j);if(Y&&Y.type.name==="paragraph"){F=Y,T=M.start(j);break}}if(F){let j=null;F.forEach((Y,ee)=>{Y.type.name==="image"&&(j=T+ee+1)}),j!==null?N=j+1:N=T+F.content.size}let U=N;return v.forEach(j=>{E.insert(U,j),U+=j.nodeSize}),!0}return!1}).run(),i.value.width&&i.value.height&&setTimeout(()=>{const{view:E}=t.editor;E&&E.dom&&E.dom.querySelectorAll("img.editor-image").forEach(M=>{M instanceof HTMLImageElement&&Array.from(s.value).some(F=>{const T=F.url||F.preview||"",U=M.src||M.getAttribute("src")||"";return U===T||U.includes(T.split("/").pop())})&&(M.style.setProperty("width",`${i.value.width}px`,"important"),M.style.setProperty("height",`${i.value.height}px`,"important"),M.style.setProperty("object-fit","fill","important"),M.style.setProperty("max-width","none","important"),M.style.setProperty("max-height","none","important"))})},50)),y()}catch(v){console.error("Помилка при додаванні зображень:",v),ge.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},L=async()=>{await k()},$=()=>{y()};return e.watch(()=>i.value.file,async(v,A)=>{if(l.value=!1,!(o.value&&Array.isArray(v)&&v.length===1&&typeof v[0]=="string"&&!v.some(V=>V instanceof File)))if(Array.isArray(v)&&v.length>0){const E=v.filter(B=>B instanceof File),V=v.filter(B=>typeof B=="string"&&B.trim()!=="");if(E.length>0&&(o.value?o.value&&E.length===1&&V.length===0&&(s.value=[]):s.value=[],(!o.value||E.length>1||V.length>0)&&await h(E),o.value&&E.length===1&&V.length===0)){const B=new FileReader;B.onload=M=>{i.value.src=M.target.result},B.readAsDataURL(E[0])}if(V.length>0)if(o.value)o.value&&V.length===1&&E.length===0&&(i.value.src=V[0]);else{E.length===0&&(s.value=[]);for(const B of V)s.value.some(M=>M.url===B||M.preview===B)||s.value.push({url:B,preview:B,error:!1})}}else v&&typeof v=="object"&&v instanceof FileList?(o.value||(s.value=[]),await h(Array.from(v))):v&&typeof v=="object"&&!Array.isArray(v)&&v instanceof File?(o.value||(s.value=[]),await h([v])):o.value||(s.value=[])},{immediate:!1}),e.watch(()=>i.value.src,()=>{l.value=!1}),(v,A)=>(e.openBlock(),e.createElementBlock("div",Rf,[e.createElementVNode("button",{onClick:f,class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",r.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(R.Image),{class:"h-4 w-4"}),A[4]||(A[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(Kr,{modelValue:n.value,"onUpdate:modelValue":A[3]||(A[3]=E=>n.value=E),title:o.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",Yf,[e.createElementVNode("button",{onClick:$,type:"button",class:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500"}," Скасувати "),e.createElementVNode("button",{onClick:L,type:"button",class:"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500"},e.toDisplayString(o.value?"Оновити зображення":"Додати зображення"),1)])]),default:e.withCtx(()=>[e.createVNode(tt,{modelValue:i.value,"onUpdate:modelValue":A[0]||(A[0]=E=>i.value=E),schema:g.value,form:a.value,"onUpdate:form":A[1]||(A[1]=E=>a.value=E)},null,8,["modelValue","schema","form"]),p.value&&!d.value?(e.openBlock(),e.createElementBlock("div",Pf,[A[5]||(A[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:p.value,alt:i.value.alt||"Попередній перегляд зображення",title:i.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:A[2]||(A[2]=E=>l.value=!0)},null,40,jf),[[e.vShow,!l.value]]),l.value?(e.openBlock(),e.createElementBlock("p",Uf," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",Hf,[e.createElementVNode("p",qf,"Попередній перегляд ("+e.toDisplayString(s.value.length)+" зображень):",1),A[6]||(A[6]=e.createElementVNode("p",{class:"text-xs text-gray-500 mb-2"}," Зображення будуть розміщені в ряд, якщо вони помістяться по ширині ",-1)),e.createElementVNode("div",Kf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(E,V)=>(e.openBlock(),e.createElementBlock("div",{key:V,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:E.preview,alt:`Попередній перегляд ${V+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:B=>E.error=!0},null,40,Gf),[[e.vShow,!E.error]]),e.createElementVNode("button",{onClick:B=>b(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,Wf)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),Xf={class:"flex items-center"},Jf=["disabled"],Qf=["disabled"],em=pe(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},l=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(a,o)=>(e.openBlock(),e.createElementBlock("div",Xf,[e.createElementVNode("button",{onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[r.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!r.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(R.Undo2),{class:"h-4 w-4"})],10,Jf),e.createElementVNode("button",{onClick:l,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!r.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(R.Redo2),{class:"h-4 w-4"})],10,Qf)]))}}),[["__scopeId","data-v-6a87fc55"]]),tm={class:"relative"},nm={class:"p-6"},rm={class:"flex justify-between items-center mb-4"},lm={bold:mp,italic:yp,color:cf,background_color:hf,highlight:gf,bullet_list:ap,ordered_list:ip,blockquote:np,codeblock:up,underline:bp,strike:kp,link:jp,table:Gp,text_align:Zp,type_tag:Qp,font_family:wf,font_size:Ef,superscript:Sf,subscript:Ff,heading:Lf,clear_formatting:zf,image:Zf,history:em,help:pe(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(r){const t=e.ref(!1),n=e.ref(null),l=()=>{t.value=!t.value},a=()=>{t.value=!1};return(o,s)=>(e.openBlock(),e.createElementBlock("div",tm,[e.createElementVNode("button",{ref_key:"helpButton",ref:n,onClick:l,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(R.CircleHelp),{class:"h-4 w-4"})],2),t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[100001]",onClick:a},[e.createElementVNode("div",{class:"bg-white rounded-lg shadow-xl max-w-2xl w-full mx-4 max-h-[80vh] overflow-y-auto",onClick:s[0]||(s[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",nm,[e.createElementVNode("div",rm,[s[1]||(s[1]=e.createElementVNode("h2",{class:"text-xl font-semibold text-gray-900"},"Common Markdown Syntax & Shortcuts",-1)),e.createElementVNode("button",{onClick:a,class:"text-gray-400 hover:text-gray-600 transition-colors"},[e.createVNode(e.unref(R.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(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:n,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(R.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(r,{emit:t}){const n=t,l=()=>{n("toggle-fullscreen")};return(a,o)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:l,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(R.Maximize),{class:"h-4 w-4"})]))}},tab:Object.assign({inheritAttrs:!1},{__name:"vs-editor-tab",props:{editor:{type:Object,required:!0}},setup(r){const t=r,n=()=>{t.editor&&(t.editor.isActive("bulletList")||t.editor.isActive("orderedList"))&&t.editor.chain().focus().sinkListItem("listItem").run()};return(l,a)=>(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(R.ListIndentIncrease),{class:"h-4 w-4"})]))}})},Yr={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"]},am={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},om={class:"rich-text-scroll-wrapper"},sm={key:0,class:"richtext-loading text-sm text-gray-500"},im={key:1,class:"richtext-error text-sm text-red-600"},cm={class:"html-source-editor"},dm={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},um={class:"inline-flex items-stretch -mt-px"},pm=Object.freeze(Object.defineProperty({__proto__:null,default:Object.assign({inheritAttrs:!1},{__name:"vs-richtext",props:e.mergeModels({modelValue:{type:String,default:()=>""},height:{type:String,default:()=>"300px"},format:{type:String,default:()=>"html"},toolbar:{type:[Array,String],default:()=>"default"}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.ref(null),{t:a}=nn(),o=e.computed(()=>t.format==="md"?"markdown":"html"),s=e.computed(()=>t.format==="md"?a("form.richtext.markdown"):a("form.richtext.html")),{editor:c,editorInstance:i,focusEditor:d,createEditor:u,destroyEditor:p,isLoading:g,loadError:f}=Pu(t),{isHtmlMode:y,htmlContent:h,htmlTextarea:b,toggleHtmlMode:C}=ju(c,t.format,($,v)=>{$==="update:modelValue"&&(n.value=v)},{toEditorContent:On,toSourceContent:Yu}),{isFullscreen:w,toggleFullscreen:k}=Uu(),x=e.computed(()=>typeof t.toolbar=="string"?Yr[t.toolbar]||Yr.default:t.toolbar),S=e.computed(()=>x.value.map($=>lm[$]).filter(Boolean));e.watch(()=>t.modelValue,async $=>{if(c.value){const v=await On($||"",t.format),A=c.value.getHTML();v!==A&&v!=="<p></p>"&&c.value.commands.setContent(v,!1)}},{immediate:!0});const L=$=>{if(!$||!$.view||!$.view.dom)return;$.view.dom.querySelectorAll("img.editor-image[width][height]").forEach(A=>{if(A instanceof HTMLImageElement){const E=A.getAttribute("width"),V=A.getAttribute("height");E&&V&&E!=="auto"&&V!=="auto"&&E!==""&&V!==""&&!isNaN(Number(E))&&!isNaN(Number(V))&&(A.style.cssText=`
|
|
42
|
+
`.replace(/\s+/g," ").trim())}})},T=i.value.width,L=i.value.height;T&&L&&T!==""&&L!==""?[0,E,E*2,E*3,E*4].forEach(M=>{setTimeout(D,M)}):(D(),setTimeout(D,E))},x=async()=>{let _=[],S=[];if(Array.isArray(i.value.file)?(_=i.value.file.filter($=>$ instanceof File),S=i.value.file.filter($=>typeof $=="string"&&$.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&&a.value&&a.value.file){const $=a.value.file;Array.isArray($)?(_=$.filter(M=>M instanceof File),S=$.filter(M=>typeof M=="string"&&M.trim()!=="")):$ instanceof FileList?_=Array.from($):$ instanceof File?_=[$]:typeof $=="string"&&$.trim()!==""&&(S=[$])}if(S.length>0&&!o.value){for(const $ of S)s.value.some(M=>M.url===$)||s.value.push({url:$,preview:$,error:!1});if(_.length===0&&s.value.length>0){await A();return}}const E=_.length,D=E+S.length;if(!(o.value&&E<=1)){if(E>0){const $=_.filter(M=>!s.value.some(N=>N.file===M));$.length>0&&await h($)}}if(!o.value){if(D>1||d.value||s.value.length>1){if(s.value.length>0){await A();return}else if(E>0){if(await h(_),s.value.length>0){await A();return}}else if(S.length>0){await A();return}}else if(s.value.length>1){await A();return}}let T=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||typeof i.value.file=="string")&&($=i.value.file),$ instanceof File)try{const M=new FileReader,N=await new Promise((H,U)=>{M.onload=q=>H(q.target.result),M.onerror=U,M.readAsDataURL($)});T=N,o.value&&(i.value.src=N)}catch(M){console.error("Помилка при читанні файлу:",M),pe.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof $=="string"&&$.trim()!==""&&(T=$.trim(),o.value&&$.trim()!==i.value.src&&(i.value.src=$.trim(),T=$.trim()))}else if(Array.isArray(i.value.file)&&i.value.file.length===1){const $=i.value.file[0];typeof $=="string"&&$.trim()!==""&&(T=$.trim(),(!i.value.src||i.value.src!==$.trim())&&(i.value.src=$.trim()))}else typeof i.value.file=="string"&&i.value.file.trim()!==""&&(T=i.value.file.trim(),(!i.value.src||i.value.src!==i.value.file.trim())&&(i.value.src=i.value.file.trim()));const L=T||Array.isArray(i.value.file)&&i.value.file.length>0&&(i.value.file.some($=>$ instanceof File)||i.value.file.some($=>typeof $=="string"&&$.trim()!==""))||i.value.file instanceof FileList&&i.value.file.length>0||typeof i.value.file=="string"&&i.value.file.trim()!=="";if(!T&&!L){pe.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!L&&await a.value.validate()){pe.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&T)if(o.value&&c.value!==null){const{state:$}=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"),N=M&&M.href,H=C(),U={src:T,alt:i.value.alt||"",title:i.value.title||"",...H};if((!i.value.width||i.value.width==="")&&(U.width=void 0),(!i.value.height||i.value.height==="")&&(U.height=void 0),t.editor.chain().focus().updateAttributes("image",U).run(),setTimeout(()=>{const{view:q}=t.editor;if(!q||!q.dom)return;q.dom.querySelectorAll("img.editor-image").forEach(ge=>{if(ge instanceof HTMLImageElement){const Z=ge.getAttribute("src")||ge.src;(Z===T||Z.includes(T.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 q=i.value.link.trim();q.match(/^https?:\/\//i)||(q="https://"+q),N?t.editor.chain().focus().extendMarkRange("link").setLink({href:q,target:i.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:q,target:i.value.openInNewTab?"_blank":null}).run()}else N&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:$}=t.editor,{selection:M}=$,{$anchor:N}=M;let H=null;for(let q=N.depth;q>0;q--){const Q=N.node(q);if(Q&&Q.type.name==="paragraph"){H=Q;break}}if(H&&H.content.content.some(q=>q.type.name==="image")){const q=w(H,N.before(N.depth));if(q!==null){const Q=C(),_e=$.schema.nodes.image.create({src:T,alt:i.value.alt||"",title:i.value.title||"",...Q});if(i.value.link&&i.value.link.trim()!==""){let ge=i.value.link.trim();ge.match(/^https?:\/\//i)||(ge="https://"+ge);const Z=$.schema.marks.link.create({href:ge,target:i.value.openInNewTab?"_blank":null}),ae=_e.type.create(_e.attrs,_e.content,[Z]);t.editor.chain().focus().insertContentAt(q+1,ae).run(),v(t.editor,T)}else t.editor.chain().focus().insertContentAt(q+1,_e).run(),v(t.editor,T)}else if(i.value.link&&i.value.link.trim()!==""){const Q=C();t.editor.chain().focus().setImage({src:T,alt:i.value.alt||"",title:i.value.title||"",...Q}).run(),setTimeout(()=>{let _e=i.value.link.trim();_e.match(/^https?:\/\//i)||(_e="https://"+_e),t.editor.chain().focus().selectParentNode().setLink({href:_e,target:i.value.openInNewTab?"_blank":null}).run(),v(t.editor,T,20)},10)}else{const Q=C();t.editor.chain().focus().setImage({src:T,alt:i.value.alt||"",title:i.value.title||"",...Q}).run(),v(t.editor,T)}}else if(i.value.link&&i.value.link.trim()!==""){const q=C();t.editor.chain().focus().setImage({src:T,alt:i.value.alt||"",title:i.value.title||"",...q}).run(),setTimeout(()=>{let Q=i.value.link.trim();Q.match(/^https?:\/\//i)||(Q="https://"+Q),t.editor.chain().focus().selectParentNode().setLink({href:Q,target:i.value.openInNewTab?"_blank":null}).run(),v(t.editor,T,20)},10)}else{const q=C();t.editor.chain().focus().setImage({src:T,alt:i.value.alt||"",title:i.value.title||"",...q}).run(),v(t.editor,T)}}g()},w=(_,S)=>{let E=null;return _.forEach((D,T)=>{D.type.name==="image"&&(E=S+T+1)}),E},A=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(E=>typeof E=="string"&&E.trim()!==""),S=i.value.file.filter(E=>E instanceof File);for(const E of _)s.value.some(D=>D.url===E||D.preview===E)||s.value.push({url:E,preview:E,error:!1});S.length>0&&await h(S)}else d.value&&await h(i.value.file);if(s.value.length!==0)try{const _=[],S=C();for(const E of s.value){const D=E.url||E.preview||"";if(!D)continue;const T=t.editor.schema.nodes.image.create({src:D,alt:i.value.alt||"",title:i.value.title||"",...S});_.push(T)}_.length>0&&(t.editor.chain().focus().command(({tr:E,dispatch:D})=>{if(D){const{selection:T}=E,{$anchor:L}=T;let $=T.$anchor.pos,M=null,N=null;for(let U=L.depth;U>0;U--){const q=L.node(U);if(q&&q.type.name==="paragraph"){M=q,N=L.start(U);break}}if(M){let U=null;M.forEach((q,Q)=>{q.type.name==="image"&&(U=N+Q+1)}),U!==null?$=U+1:$=N+M.content.size}let H=$;return _.forEach(U=>{E.insert(H,U),H+=U.nodeSize}),!0}return!1}).run(),i.value.width&&i.value.height&&setTimeout(()=>{const{view:E}=t.editor;E&&E.dom&&E.dom.querySelectorAll("img.editor-image").forEach(L=>{L instanceof HTMLImageElement&&Array.from(s.value).some(M=>{const N=M.url||M.preview||"",H=L.src||L.getAttribute("src")||"";return H===N||H.includes(N.split("/").pop())})&&(L.style.setProperty("width",`${i.value.width}px`,"important"),L.style.setProperty("height",`${i.value.height}px`,"important"),L.style.setProperty("object-fit","fill","important"),L.style.setProperty("max-width","none","important"),L.style.setProperty("max-height","none","important"))})},50)),g()}catch(_){console.error("Помилка при додаванні зображень:",_),pe.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},I=async()=>{await x()},V=()=>{g()};return e.watch(()=>i.value.file,async(_,S)=>{if(l.value=!1,!(o.value&&Array.isArray(_)&&_.length===1&&typeof _[0]=="string"&&!_.some(D=>D instanceof File)))if(Array.isArray(_)&&_.length>0){const E=_.filter(T=>T instanceof File),D=_.filter(T=>typeof T=="string"&&T.trim()!=="");if(E.length>0&&(o.value?o.value&&E.length===1&&D.length===0&&(s.value=[]):s.value=[],(!o.value||E.length>1||D.length>0)&&await h(E),o.value&&E.length===1&&D.length===0)){const T=new FileReader;T.onload=L=>{i.value.src=L.target.result},T.readAsDataURL(E[0])}if(D.length>0)if(o.value)o.value&&D.length===1&&E.length===0&&(i.value.src=D[0]);else{E.length===0&&(s.value=[]);for(const T of D)s.value.some(L=>L.url===T||L.preview===T)||s.value.push({url:T,preview:T,error:!1})}}else _&&typeof _=="object"&&_ instanceof FileList?(o.value||(s.value=[]),await h(Array.from(_))):_&&typeof _=="object"&&!Array.isArray(_)&&_ instanceof File?(o.value||(s.value=[]),await h([_])):o.value||(s.value=[])},{immediate:!1}),e.watch(()=>i.value.src,()=>{l.value=!1}),(_,S)=>(e.openBlock(),e.createElementBlock("div",lm,[e.createElementVNode("button",{onClick:f,class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",r.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(P.Image),{class:"h-4 w-4"}),S[4]||(S[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(Qr,{modelValue:n.value,"onUpdate:modelValue":S[3]||(S[3]=E=>n.value=E),title:o.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",fm,[e.createElementVNode("button",{onClick:V,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:I,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(o.value?"Оновити зображення":"Додати зображення"),1)])]),default:e.withCtx(()=>[e.createVNode(Ze,{modelValue:i.value,"onUpdate:modelValue":S[0]||(S[0]=E=>i.value=E),schema:y.value,form:a.value,"onUpdate:form":S[1]||(S[1]=E=>a.value=E)},null,8,["modelValue","schema","form"]),p.value&&!d.value?(e.openBlock(),e.createElementBlock("div",am,[S[5]||(S[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:p.value,alt:i.value.alt||"Попередній перегляд зображення",title:i.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:S[2]||(S[2]=E=>l.value=!0)},null,40,om),[[e.vShow,!l.value]]),l.value?(e.openBlock(),e.createElementBlock("p",sm," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",im,[e.createElementVNode("p",cm,"Попередній перегляд ("+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",dm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(E,D)=>(e.openBlock(),e.createElementBlock("div",{key:D,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:E.preview,alt:`Попередній перегляд ${D+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:T=>E.error=!0},null,40,um),[[e.vShow,!E.error]]),e.createElementVNode("button",{onClick:T=>k(D),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,pm)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),hm={class:"flex items-center"},gm=["disabled"],ym=["disabled"],bm=ue(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(r){const t=r,n=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},l=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(a,o)=>(e.openBlock(),e.createElementBlock("div",hm,[e.createElementVNode("button",{onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[r.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!r.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(P.Undo2),{class:"h-4 w-4"})],10,gm),e.createElementVNode("button",{onClick:l,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[r.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!r.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(P.Redo2),{class:"h-4 w-4"})],10,ym)]))}}),[["__scopeId","data-v-2cd0a908"]]),km={class:"relative"},xm={class:"p-6"},wm={class:"flex justify-between items-center mb-4"},vm={bold:Np,italic:Tp,color:Vf,background_color:Df,highlight:Mf,bullet_list:_p,ordered_list:Bp,blockquote:xp,codeblock:$p,underline:Lp,strike:Ip,link:of,table:pf,text_align:hf,type_tag:bf,font_family:zf,font_size:Uf,superscript:Kf,subscript:Yf,heading:em,clear_formatting:rm,image:mm,history:bm,help:ue(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(r){const t=e.ref(!1),n=e.ref(null),l=()=>{t.value=!t.value},a=()=>{t.value=!1};return(o,s)=>(e.openBlock(),e.createElementBlock("div",km,[e.createElementVNode("button",{ref_key:"helpButton",ref:n,onClick:l,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 text-gray-500",[t.value?"bg-gray-100 text-gray-900":"text-gray-500"]]),title:"Markdown Shortcuts Help"},[e.createVNode(e.unref(P.CircleHelp),{class:"h-4 w-4"})],2),t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[100001]",onClick:a},[e.createElementVNode("div",{class:"bg-white rounded-lg shadow-xl max-w-2xl w-full mx-4 max-h-[80vh] overflow-y-auto",onClick:s[0]||(s[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",xm,[e.createElementVNode("div",wm,[s[1]||(s[1]=e.createElementVNode("h2",{class:"text-xl font-semibold text-gray-900"},"Common Markdown Syntax & Shortcuts",-1)),e.createElementVNode("button",{onClick:a,class:"text-gray-400 hover:text-gray-600 transition-colors"},[e.createVNode(e.unref(P.X),{class:"h-6 w-6"})])]),s[2]||(s[2]=e.createStaticVNode('<div class="space-y-6" data-v-38077376><div data-v-38077376><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-38077376>Markdown Syntax</h3><div class="overflow-x-auto" data-v-38077376><table class="w-full border-collapse" data-v-38077376><thead data-v-38077376><tr class="bg-gray-50" data-v-38077376><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Element</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Example</th></tr></thead><tbody class="text-sm" data-v-38077376><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Bold</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>**bold text**</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>__bold text__</code></td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Italics</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>*italic text*</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>_italic text_</code></td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Strikethrough</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>~strikethrough text~</code></td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Headings</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376># Heading 1</code>, <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>## Heading 2</code>, etc., up to <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>###### Heading 6</code></td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Unordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use an asterisk (*), dash (-), or plus sign (+) followed by a space. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Ordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use a number followed by a period and a space (e.g., <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>1. First item</code>). </td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Blockquotes</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Start with a greater-than sign (>) 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(r){const t=r,n=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:n,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(P.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(r,{emit:t}){const n=t,l=()=>{n("toggle-fullscreen")};return(a,o)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:l,class:"w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(e.unref(P.Maximize),{class:"h-4 w-4"})]))}},tab:Object.assign({inheritAttrs:!1},{__name:"vs-editor-tab",props:{editor:{type:Object,required:!0}},setup(r){const t=r,n=()=>{t.editor&&(t.editor.isActive("bulletList")||t.editor.isActive("orderedList"))&&t.editor.chain().focus().sinkListItem("listItem").run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Tab (Increase List Indent)",onClick:n,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none"},[e.createVNode(e.unref(P.ListIndentIncrease),{class:"h-4 w-4"})]))}})},nl={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"]},_m={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},Cm={class:"rich-text-scroll-wrapper"},Em={key:0,class:"richtext-loading text-sm text-gray-500"},Bm={key:1,class:"richtext-error text-sm text-red-600"},Vm={class:"html-source-editor"},Sm={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},$m={class:"inline-flex items-stretch -mt-px"},Am=Object.freeze(Object.defineProperty({__proto__:null,default:Object.assign({inheritAttrs:!1},{__name:"vs-richtext",props:e.mergeModels({modelValue:{type:String,default:()=>""},height:{type:String,default:()=>"300px"},format:{type:String,default:()=>"html"},toolbar:{type:[Array,String],default:()=>"default"}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(r){const t=r,n=e.useModel(r,"modelValue"),l=e.ref(null),{t:a}=on(),o=e.computed(()=>t.format==="md"?"markdown":"html"),s=e.computed(()=>t.format==="md"?a("form.richtext.markdown"):a("form.richtext.html")),{editor:c,editorInstance:i,focusEditor:d,createEditor:u,destroyEditor:p,isLoading:y,loadError:f}=ap(t),{isHtmlMode:g,htmlContent:h,htmlTextarea:k,toggleHtmlMode:C}=op(c,t.format,(V,_)=>{V==="update:modelValue"&&(n.value=_)},{toEditorContent:jn,toSourceContent:fp}),{isFullscreen:v,toggleFullscreen:x}=sp(),w=e.computed(()=>typeof t.toolbar=="string"?nl[t.toolbar]||nl.default:t.toolbar),A=e.computed(()=>w.value.map(V=>vm[V]).filter(Boolean));e.watch(()=>t.modelValue,async V=>{if(c.value){const _=await jn(V||"",t.format),S=c.value.getHTML();_!==S&&_!=="<p></p>"&&c.value.commands.setContent(_,!1)}},{immediate:!0});const I=V=>{if(!V||!V.view||!V.view.dom)return;V.view.dom.querySelectorAll("img.editor-image[width][height]").forEach(S=>{if(S instanceof HTMLImageElement){const E=S.getAttribute("width"),D=S.getAttribute("height");E&&D&&E!=="auto"&&D!=="auto"&&E!==""&&D!==""&&!isNaN(Number(E))&&!isNaN(Number(D))&&(S.style.cssText=`
|
|
41
43
|
width: ${E}px !important;
|
|
42
|
-
height: ${
|
|
44
|
+
height: ${D}px !important;
|
|
43
45
|
max-width: none !important;
|
|
44
46
|
max-height: none !important;
|
|
45
47
|
min-width: auto !important;
|
|
46
48
|
min-height: auto !important;
|
|
47
49
|
object-fit: fill !important;
|
|
48
|
-
`.replace(/\s+/g," ").trim())}})};return e.watch(c
|
|
50
|
+
`.replace(/\s+/g," ").trim())}})};return e.watch(c,V=>{V&&(e.nextTick(()=>{I(c.value)}),c.value.on("update",async _=>{const S=_.editor.getHTML(),E=await mp(S,t.format);E!==t.modelValue&&S!=="<p></p>"&&(n.value=E),setTimeout(()=>{I(_.editor)},10)}))}),e.onMounted(async()=>{const V=await jn(t.modelValue||"",t.format);await u(l.value,V),e.nextTick(()=>{c.value&&setTimeout(()=>{I(c.value)},100)})}),e.onBeforeUnmount(()=>{p()}),(V,_)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["bg-white rounded-md w-full",{"fixed left-0 right-0 top-0 bottom-0 z-[100000]":e.unref(v)}])},[e.createElementVNode("div",_m,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,S=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:S},[e.unref(c)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(S),{key:0,editor:e.unref(i),onToggleFullscreen:e.unref(x)},null,40,["editor","onToggleFullscreen"])):e.createCommentVNode("",!0)],64))),128))]),e.createElementVNode("div",{onClick:_[1]||(_[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(v)?"calc(95vh - 44px)":r.height})},[e.withDirectives(e.createElementVNode("div",Cm,[e.createElementVNode("div",{ref_key:"editorElement",ref:l,class:"relative w-full"},null,512),e.unref(y)?(e.openBlock(),e.createElementBlock("div",Em,"Loading editor...")):e.createCommentVNode("",!0),e.unref(f)?(e.openBlock(),e.createElementBlock("div",Bm,e.toDisplayString(e.unref(f)),1)):e.createCommentVNode("",!0)],512),[[e.vShow,!e.unref(g)]]),e.withDirectives(e.createElementVNode("div",Vm,[e.createVNode(Cn,{ref_key:"htmlTextarea",ref:k,modelValue:e.unref(h),"onUpdate:modelValue":_[0]||(_[0]=S=>e.isRef(h)?h.value=S:null),height:"100%",syntax:o.value,theme:"vs-light"},null,8,["modelValue","syntax"])],512),[[e.vShow,e.unref(g)]])],4),e.createElementVNode("div",Sm,[e.createElementVNode("div",$m,[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(g)?"text-[#8f99aa]":"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]"]),onClick:_[2]||(_[2]=S=>e.unref(C)(!1))},e.toDisplayString(e.unref(a)("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(g)?"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]":"text-[#8f99aa]"]),onClick:_[3]||(_[3]=S=>e.unref(C)(!0))},e.toDisplayString(s.value),3)])])],2))}})},Symbol.toStringTag,{value:"Module"}));ce.ModalEdit=kr,ce.VForm=Ze,ce.VsInputAddress=fr,ce.VsInputArray=pr,ce.VsInputArraySelect=Kt,ce.VsInputCheckbox=Kn,ce.VsInputCodegen=sr,ce.VsInputColor=dr,ce.VsInputContainer=Jn,ce.VsInputDate=ju,ce.VsInputEmail=yn,ce.VsInputFile=Yn,ce.VsInputFileList=Zn,ce.VsInputKeyValue=ir,ce.VsInputMask=gn,ce.VsInputMonaco=Cn,ce.VsInputNumber=qn,ce.VsInputRadio=kn,ce.VsInputRange=ur,ce.VsInputRichtext=er,ce.VsInputSelect=_n,ce.VsInputSlug=or,ce.VsInputStatic=hn,ce.VsInputSwitcher=mn,ce.VsInputTag=ar,ce.VsInputTel=bn,ce.VsInputText=wt,ce.VsInputTextArray=cr,ce.VsInputTextarea=Qn,ce.default=Ze,ce.inputs=hr,ce.richtextLocaleEn=$r,ce.richtextLocaleUk=Ar,ce.richtextMessages=Fn,ce.vsInputDatatable=tr,ce.vsInputMap=lr,Object.defineProperties(ce,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|