@opengis/form 0.1.4 → 0.1.6
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/dist/{index-CwoIOaLb.js → index-DSZYmWFb.js} +925 -925
- package/dist/index.css +1 -1
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +15 -15
- package/dist/src/components/modal/modal-edit.vue.d.ts.map +1 -1
- package/dist/{vs-richtext-CJbj5g8S.js → vs-richtext-ClKbYxzb.js} +1 -1
- package/package.json +1 -1
package/dist/index.umd.cjs
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
(function(xe,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):(xe=typeof globalThis<"u"?globalThis:xe||self,e(xe.FormBuilder={},xe.Vue,xe.OpenGISCore,xe.lucide))})(this,(function(xe,e,ge,X){"use strict";function _n(o,t,n){if(!Array.isArray(n)||!n.length)return null;const r=String(o?.preset??o?.renderer??"").trim().toLowerCase();if(r){const a=n.find(l=>String(l.id).trim().toLowerCase()===r);if(a)return a}return n.find(a=>typeof a.match=="function"&&a.match(o,t))??null}function Yo(o,t,n){return!!_n(o,t,n)}const Xo=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(o){const t=o,n=e.ref(!1),r=e.ref({top:"0px",left:"0px"});function a(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();r.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},n.value=!0}function l(){n.value=!1}return(s,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:a,onMouseleave:l},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(X.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value&&s.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(r.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none"},e.toDisplayString(s.text),5)):e.createCommentVNode("",!0)]))],64))}}),lo={form:{autofillFrom:"Filled from",richtext:{paragraph:"Paragraph",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",heading4:"Heading 4",heading5:"Heading 5",heading6:"Heading 6",createTable:"Create Table",addColumn:"Add Column",addRow:"Add Row",deleteColumn:"Delete Column",deleteRow:"Delete Row",deleteTable:"Delete Table",mergeCells:"Merge Cells",splitCells:"Split Cells",linkTitle:"Enter Link",link:"Link",linkUrl:"Enter URL",editLink:"Edit Link",openLink:"Open Link",removeLink:"Remove Link",openInNewTab:"Open in New Tab",editor:"Editor",html:"HTML",markdown:"Markdown",create:"Create",update:"Update",cancel:"Cancel"}}},ao={form:{autofillFrom:"Підставлено з",richtext:{paragraph:"Звичайний текст",heading1:"Заголовок 1",heading2:"Заголовок 2",heading3:"Заголовок 3",heading4:"Заголовок 4",heading5:"Заголовок 5",heading6:"Заголовок 6",createTable:"Створити таблицю",addColumn:"Додати колонку",addRow:"Додати рядок",deleteColumn:"Видалити колонку",deleteRow:"Видалити рядок",deleteTable:"Видалити таблицю",mergeCells:"Об'єднати комірки",splitCells:"Розділити комірки",linkTitle:"Додати посилання",link:"Посилання",linkUrl:"Введіть URL",editLink:"Редагувати посилання",openLink:"Відкрити посилання",removeLink:"Видалити посилання",openInNewTab:"Відкривати в новій вкладці",editor:"Редактор",html:"HTML",markdown:"Markdown",create:"Створити",update:"Оновити",cancel:"Скасувати"}}},ql={class:"w-full relative"},Wl={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},Kl={class:"opacity-100"},Gl={key:0,class:"text-red-500 text-[14px]"},Yl={key:2,class:"text-[11px] text-slate-500 font-normal"},Xl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Zl=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),r=e.computed(()=>!!n.value),a=e.computed(()=>!!t.item?.rules?.includes("required")),l=e.computed(()=>t.item?.info||""),s=e.inject("schema-by-name"),c={en:lo?.form?.autofillFrom,uk:ao?.form?.autofillFrom},i=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const h=String(t.item?.__locale||"uk"),y=String(d.parentField),p=s?.value?.[y],m=p?.[`label:${h}`]||(h!=="uk"?p?.[h]:void 0)||p?.label||p?.ua||p?.en||y;return`${c[h]||c.uk}: ${m}`});return(d,h)=>(e.openBlock(),e.createElementBlock("div",ql,[r.value?(e.openBlock(),e.createElementBlock("div",Wl,[e.createElementVNode("span",Kl,e.toDisplayString(n.value),1),a.value?(e.openBlock(),e.createElementBlock("span",Gl,"*")):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(Xo,{key:1,text:l.value},null,8,["text"])):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",Yl," ("+e.toDisplayString(i.value)+") ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.mergeProps(d.$attrs,{class:{"opacity-60":d.item.disabled}})),d.error?(e.openBlock(),e.createElementBlock("span",Xl,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),Jl={class:"w-full relative flex flex-row items-center gap-2"},Ql={key:0,class:"text-red-500 text-[14px]"},ea={key:2,class:"text-[11px] text-slate-500 font-normal"},ta={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},na=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(o){const t=o,n=e.computed(()=>t.item?.label||t.label||t.ua),r=e.computed(()=>t.item?.info||""),a=e.inject("schema-by-name"),l={en:lo?.form?.autofillFrom,uk:ao?.form?.autofillFrom},s=e.computed(()=>{const p=t.item?.__autoMeta;if(!p||p?.source!=="parent-auto"||!p?.parentField)return"";const m=String(t.item?.__locale||"uk"),f=String(p.parentField),w=a?.value?.[f],b=w?.[`label:${m}`]||(m!=="uk"?w?.[m]:void 0)||w?.label||w?.ua||w?.en||f;return`${l[m]||l.uk}: ${b}`}),c=e.computed(()=>t.columns??{container:12,label:3}),i=e.computed(()=>{const{container:p,label:m}=c.value;return!p||p<=0?0:Math.min(Math.max(m??0,0),p)/p}),d=e.computed(()=>t.item?.type==="html"||i.value<=0?!1:!!n.value),h=e.computed(()=>{if(!d.value)return{};const p=`${i.value*100}%`;return{flexBasis:p,maxWidth:p}}),y=e.computed(()=>{const{container:p,label:m}=c.value;if(!p||p<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const f=Math.max(p-Math.max(m??0,0),0)/p;if(!f)return{};const w=`${f*100}%`;return{flexBasis:w,maxWidth:w}});return(p,m)=>(e.openBlock(),e.createElementBlock("div",Jl,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(h.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),p.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",Ql,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Xo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",ea," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(y.value)},[e.renderSlot(p.$slots,"default",e.normalizeProps(e.guardReactiveProps(p.$attrs)))],4),p.error?(e.openBlock(),e.createElementBlock("span",ta,e.toDisplayString(p.error),1)):e.createCommentVNode("",!0)]))}}),oa={class:"w-full relative"},ra={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},la=e.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",oa,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",ra,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),aa={class:"flex-1 min-w-0"},sa={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ia={class:"truncate"},ca={key:0,class:"text-red-500 text-[14px]"},da=["innerHTML"],ua={key:0,class:"mt-1 text-xs text-red-500"},pa={default:Zl,horizontal:na,inline:la,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const r=e.computed(()=>t.item?.description??""),a=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),l=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const 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",aa,[c.ua||c.label?(e.openBlock(),e.createElementBlock("p",sa,[e.createElementVNode("span",ia,e.toDisplayString(c.item[n.value]||c.ua||c.label),1),a.value?(e.openBlock(),e.createElementBlock("span",ca,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:r.value},null,8,da)):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),l.value?(e.openBlock(),e.createElementBlock("p",ua,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)],2))}})};function et(o){return{inputClass:e.computed(()=>{const n=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${o?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return o?.size==="sm"?`${n}h-[32px]`:`${n}h-[38px]`})}}const ma=["placeholder","disabled"],fa=e.defineComponent({__name:"vs-input-password",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");return(s,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),placeholder:l.value,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":s.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ma)),[[e.vModelText,r.value]])}}),ha=["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(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),c=e.computed(()=>t.minlength??void 0);function i(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,h)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":h[0]||(h[0]=y=>r.value=y),placeholder:l.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,ha)),[[e.vModelText,r.value]])}}),ga=["step","placeholder","disabled","min","max"],Zo=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({style:{type:Object,default:()=>({})},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:[Number,String],default:void 0}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useAttrs(),a=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),s=h=>{if(h==null||h==="")return;const y=typeof h=="string"?h.trim().replace(",","."):h,p=Number(y);return Number.isFinite(p)?p:void 0},c=e.computed(()=>s(t.min??r.min)),i=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const h=r.step;return typeof h=="number"||typeof h=="string"?h:"any"});return(h,y)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":y[0]||(y[0]=p=>a.value=p),placeholder:o.placeholder,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:c.value,max:i.value},null,10,ga)),[[e.vModelText,a.value]])}}),Cn=o=>!!String(o??"").trim(),Dt=o=>o?.color?String(o.color):"",on=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},rn=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},ya={class:"flex items-center gap-[4px]"},ba=["value","id","disabled"],ka=["for"],wa=["innerHTML"],xa={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},va=["src"],_a=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(o,{emit:t}){const n=t,r=o,a=e.computed({get:()=>r.modelValue,set:m=>n("update:modelValue",m)}),l=e.computed(()=>!!r.disabled),s=e.computed(()=>on(r.option)),c=e.computed(()=>rn(r.option)),i=e.computed(()=>Dt(r.option)),d=e.computed(()=>!!(i.value&&!s.value&&!c.value)),h=e.computed(()=>!!(s.value&&i.value)),y=e.computed(()=>i.value?{color:i.value}:void 0),p=e.computed(()=>{if(!(!s.value||!i.value))return{backgroundColor:i.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(m,f)=>(e.openBlock(),e.createElementBlock("div",ya,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:m.value,"onUpdate:modelValue":f[0]||(f[0]=w=>a.value=w),class:e.normalizeClass(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer",{"!cursor-not-allowed":l.value}]),id:m.id,disabled:l.value},null,10,ba),[[e.vModelCheckbox,a.value]]),e.createElementVNode("label",{for:m.id,class:e.normalizeClass(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300",{"!cursor-not-allowed":l.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[a.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",m.error?"border-red-600":""]])},[e.createVNode(e.unref(X.Check),{class:"h-4 w-4"})],2),m.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:m.html},null,8,wa)):(e.openBlock(),e.createElementBlock("span",xa,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:i.value})},null,4)):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(p.value)},null,4)):s.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:s.value,alt:"icon"},null,8,va)):c.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(y.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(m.label),1)])]))],10,ka)]))}}),Ca=["name","value","disabled"],Ea=["innerHTML"],Ba={key:1,class:"flex items-center gap-[6px] text-[14px]"},Va={key:2,class:"text-[16px] inline-flex items-center justify-center"},Sa=["src"],$a=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=e.computed({get:()=>n.modelValue,set:w=>{r("update:modelValue",w)}}),l=e.computed(()=>Array.isArray(a.value)?a.value.includes(n.value):a.value===!0||a.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),c=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),i=e.computed(()=>on(c.value)),d=e.computed(()=>rn(c.value)),h=e.computed(()=>Dt(c.value)),y=e.computed(()=>!!(h.value&&!i.value&&!d.value)),p=e.computed(()=>!!(i.value&&h.value)),m=e.computed(()=>h.value?{color:h.value}:void 0),f=e.computed(()=>{if(!(!i.value||!h.value))return{backgroundColor:h.value,WebkitMaskImage:`url(${i.value})`,maskImage:`url(${i.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(w,b)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,l.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:w.id,value:w.value,"onUpdate:modelValue":b[0]||(b[0]=v=>a.value=v),disabled:w.disabled},null,8,Ca),[[e.vModelCheckbox,a.value]]),w.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:w.html},null,8,Ea)):(e.openBlock(),e.createElementBlock("span",Ba,[y.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:h.value})},null,4)):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(f.value)},null,4)):i.value||d.value?(e.openBlock(),e.createElementBlock("span",Va,[i.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:i.value,width:"16",height:"16",alt:"icon"},null,8,Sa)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(m.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(w.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(w.label),1)])]))],2))}}),Aa={class:"flex items-center"},so=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=`radio-${Math.floor(Math.random()*1e4)}`,l=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:c=>{if(Array.isArray(n.modelValue)){let i=[...n.modelValue];c?i.includes(n.value)||i.push(n.value):i=i.filter(d=>d!==n.value),r("update:modelValue",i)}else r("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Aa,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref($a):e.unref(_a)),{value:c.value,label:c.label,html:c.labelHtml,info:c.option?.info,disabled:c.disabled,modelValue:l.value,"onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),id:a,icon:c.icon,imgUrl:c.imgUrl,option:c.option,style:e.normalizeStyle(c.style),error:c.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Na={key:0,class:"flex items-start gap-x-1"},Ma={key:0,class:"text-red-500 text-[14px]"},Fa=["title"],Da=["disabled"],io=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue");return(r,a)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Na,[e.createVNode(so,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Ma,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:a[1]||(a[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4 text-gray-500"})],8,Fa)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[n.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:a[2]||(a[2]=l=>n.value=!n.value)},[e.createElementVNode("span",{"data-state":"checked",class:e.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[n.value?"translate-x-4":"translate-x-0"]])},null,2)],10,Da))}}),Ta=["id","innerHTML"],co=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.name,class:e.normalizeClass(["text-gray-900",t.customClass]),innerHTML:t.html?t.html:t.text},null,10,Ta))}}),La=["placeholder","disabled","name"],En=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),a=e.ref(null);let l=null;function s(c){const i=c==null?"":String(c),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let y=!1;for(let m=0;m<i.length;m+=1){const f=i[m];f==="{"?y=!0:f==="}"?y=!1:y&&h.add(f)}const p={};return Object.keys(d).forEach(m=>{h.has(m)||(p[m]=d[m])}),{mask:i,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(a.value){const{default:c}=await Promise.resolve().then(()=>Jn),i=s(t.mask||"");l=c(a.value,i),l.on("accept",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.on("complete",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{l?.destroy()}),e.watch(()=>t.mask,c=>{if(l){const i=s(c||"");l.updateOptions(i)}}),e.watch(r,c=>{l&&l.unmaskedValue!==c&&(l.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,La))}}),Ia={class:"relative w-full bg-white rounded-lg"},Oa={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Pa=["placeholder","disabled"],uo=e.defineComponent({__name:"vs-input-email",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue");return(a,l)=>(e.openBlock(),e.createElementBlock("div",Ia,[e.createElementVNode("div",Oa,[e.createVNode(e.unref(X.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":l[0]||(l[0]=s=>r.value=s),placeholder:a.placeholder,disabled:a.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":a.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Pa),[[e.vModelText,r.value]])]))}}),Et="+99(999)-999-99-99";function Tt(o){if(!o?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let n=!1,r=0;for(let a=0;a<o.length;a+=1){const l=o[a];if(l==="{"){n=!0;continue}if(l==="}"){n=!1;continue}!n&&t.has(l)&&(r+=1)}return r}const Ra={class:"relative w-full bg-white rounded-lg"},za={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},ja=["name","placeholder","disabled","pattern"],po=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:Et}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(Tt(t.mask||Et)||Tt(Et))-1}}$`),{inputClass:r}=et(t.style),a=e.useModel(o,"modelValue"),l=e.ref(null);let s=null;function c(h){const y={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let m=!1;for(let w=0;w<h.length;w+=1){const b=h[w];b==="{"?m=!0:b==="}"?m=!1:m&&p.add(b)}const f={};return Object.keys(y).forEach(w=>{p.has(w)||(f[w]=y[w])}),{mask:h,definitions:f,lazy:!1,disabled:t.disabled}}function i(h){if(h==null||h==="")return"";const y=String(h).trim();return y?y.replace(/\D/g,""):""}function d(){if(!s)return;const h=s.unmaskedValue??"";a.value=h?`+${h}`:""}return e.onMounted(async()=>{if(!l.value)return;const{default:h}=await Promise.resolve().then(()=>Jn),y=c(t.mask||"");s=h(l.value,y),s.on("accept",d),s.on("complete",d);const p=i(a.value);s.unmaskedValue=p}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,h=>{s&&s.updateOptions(c(h||""))}),e.watch(()=>t.disabled,h=>{s&&s.updateOptions({disabled:h})}),e.watch(a,h=>{if(!s)return;const y=i(h);s.unmaskedValue!==y&&(s.unmaskedValue=y)}),(h,y)=>(e.openBlock(),e.createElementBlock("div",Ra,[e.createElementVNode("div",za,[e.createVNode(e.unref(X.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:l,type:"tel",name:h.name,placeholder:h.placeholder,disabled:h.disabled,pattern:n.value,title:"Міжнародний номер (E.164), наприклад +380XXXXXXXXX",autocomplete:"tel",class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(r),{"!border-red-600":h.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ja)]))}}),Ua=["value","disabled"],Ha=["innerHTML"],qa={key:1,class:"flex items-center gap-2"},Wa=["src"],Ka={class:"text-[13px] text-gray-700"},Ga=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(y,p)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=m=>n.value=m),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Ua),[[e.vModelRadio,n.value]]),e.createElementVNode("span",{class:e.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${t.style?.primaryColor||"blue"}-500`,r.value?"opacity-50 cursor-not-allowed":""]])},[n.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Ha)):(e.openBlock(),e.createElementBlock("div",qa,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,Wa)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Ka,e.toDisplayString(t.text),1)]))],2))}}),Ya=["value","disabled"],Xa=["innerHTML"],Za={key:1,class:"flex items-center gap-2"},Ja=["src"],Qa={class:"text-[13px] text-gray-700"},es={"vs-input-radio-default":Ga,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(y,p)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=m=>n.value=m),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Ya),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Xa)):(e.openBlock(),e.createElementBlock("div",Za,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,Ja)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Qa,e.toDisplayString(t.text),1)]))],2))}})},Jo=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],Qo=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},ts=o=>({fetchOptions:async(r="")=>{const a=o();if(!a.data)return a.options?[...a.options]:[];try{const l=new URLSearchParams;l.set("json","1"),r&&l.set("key",r),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${Qo(a)}?${l.toString()}`)).json();return Jo(c)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const a=o();if(!a.data)return(a.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const l=new URLSearchParams;l.set("json","1"),l.set("val",String(r)),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${Qo(a)}?${l.toString()}`)).json();return Jo(c)[0]??null}catch{return null}}}),Bn=({props:o,formValues:t=null,watchParent:n=!0})=>{const r=e.ref([]),a=e.computed(()=>o.parent?t?.value?.[o.parent]?.toString?.()??null:null),{fetchOptions:l,fetchOptionByValue:s}=ts(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:a.value})),c=async(i="")=>{const d=o.data?await l(i):o.options?[...o.options]:[];return r.value=d,r.value};return e.watch(()=>o.options,()=>{o.data||(r.value=o.options?[...o.options]:[])},{immediate:!0,deep:!0}),n&&e.watch(a,async()=>{o.data&&(r.value=await l())},{immediate:!1}),{optionsList:r,parentValue:a,fetchOptions:l,fetchOptionByValue:s,loadOptions:c}},ns=/\{\{\s*([^}]+?)\s*\}\}/g,os=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),rs=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),Vn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(ns,(r,a)=>{const l=String(a).trim(),s=o,i=(l.includes(".")?rs(s,l):void 0)??s[l];return i!=null?String(i):""}):o.text??""},Sn=(o,t)=>{if(!o)return"";const n=Vn(o,t);return os(n)||o.text||""},mo=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},slot:{},data:{},api:{},prefix:{},host:{},start:{},parent:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>es[`vs-input-radio-${t.view}`]),a=e.computed(()=>t.slot??t?.optionTemplate??""),l=e.computed(()=>Cn(a.value)),s=m=>Vn(m,a.value),c=m=>Sn(m,a.value),i=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),h=e.inject("values",null),{optionsList:y,loadOptions:p}=Bn({props:t,formValues:h});return e.onMounted(async()=>{await p()}),(m,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),w=>(e.openBlock(),e.createElementBlock("div",{key:w?.id,class:e.normalizeClass(["flex items-stretch",m.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:c(w),html:l.value?s(w):"",option:w,value:w.id.toString(),checked:n.value?.toString?.()===w.id?.toString?.(),"custom-class":m.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":f[0]||(f[0]=b=>n.value=b)},{ref_for:!0},m.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),ls={key:1,class:"w-full flex flex-col gap-4"},as={key:0,class:"text-sm font-medium text-muted-foreground my-2"},ss="Без категорії",is=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=e.reactive({}),l=e.inject("values",null),{optionsList:s,loadOptions:c}=Bn({props:{...n,options:n.options},formValues:l}),i=e.computed(()=>s.value),d=C=>C?.value||C?.id||C?.text||C,h=e.computed(()=>n.slot??n?.optionTemplate??""),y=e.computed(()=>Cn(h.value)),p=C=>Vn(C,h.value),m=C=>Sn(C,h.value),f=C=>`lg:col-span-${C||12}`,w=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),b=C=>C==null||C===""?null:typeof C=="string"||typeof C=="number"?C:String(C),v=e.computed(()=>{if(!n.group)return[];const C=new Map;i.value.forEach(O=>{const E=O[n.group],S=b(E);C.has(S)||C.set(S,[]),C.get(S)?.push(O)});const V=[];n.values?.length&&n.values.forEach(O=>{const E=b(O);V.push(E)});const $=new Set,U=O=>{const E=C.get(O)||[];if(!E.length)return null;const S=O===null?"group-null":`group-${String(O)}`,_=O===null?ss:String(O);return $.add(O),{key:S,label:_,options:E}},Z=[];return V.forEach(O=>{const E=U(O);E&&Z.push(E)}),C.forEach((O,E)=>{if($.has(E))return;const S=U(E);S&&Z.push(S)}),Z});return e.watch(()=>n.modelValue,C=>{if(typeof C=="boolean"&&i.value.length===1){const V=d(i.value[0]);a[V]=C}else if(Array.isArray(C)){const V=new Set(C);i.value.forEach($=>{if(!$.disabled){const U=d($);a[U]=V.has(U)}})}},{immediate:!0}),e.watch(a,()=>{if(!i.value.length){r("update:modelValue",null);return}const C=Object.entries(a).filter(([,V])=>V).map(([V])=>V);r("update:modelValue",C.length===0?[]:C)},{deep:!0}),e.onMounted(async()=>{if(await c(),typeof n.modelValue=="boolean"&&i.value.length===1){const C=d(i.value[0]);a[C]=n.modelValue}else if(Array.isArray(n.modelValue)){const C=new Set(n.modelValue);i.value.forEach(V=>{if(!V.disabled){const $=d(V);a[$]=C.has($)}})}}),(C,V)=>n.group?(e.openBlock(),e.createElementBlock("div",ls,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,$=>(e.openBlock(),e.createElementBlock("div",{key:$.key,class:"flex flex-col gap-2"},[$.label?(e.openBlock(),e.createElementBlock("span",as,e.toDisplayString($.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",w.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.options,U=>(e.openBlock(),e.createBlock(so,{modelValue:a[d(U)],"onUpdate:modelValue":Z=>a[d(U)]=Z,value:d(U),class:e.normalizeClass(f(C.colSpan)),disabled:n.disabled||U.disabled,label:m(U),labelHtml:y.value?p(U):"",key:`${$.key}-${d(U)}`,icon:U?.icon,imgUrl:U?.imgUrl,option:U,view:C.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",w.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,$=>(e.openBlock(),e.createBlock(so,{modelValue:a[d($)],"onUpdate:modelValue":U=>a[d($)]=U,value:d($),class:e.normalizeClass(f(C.colSpan)),disabled:n.disabled||$.disabled,label:m($),labelHtml:y.value?p($):"",key:d($),icon:$?.icon,imgUrl:$?.imgUrl,option:$,view:C.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),Be=(o,t)=>{const n=o.__vccOpts||o;for(const[r,a]of t)n[r]=a;return n},er=Be(is,[["__scopeId","data-v-9056e0ec"]]),cs=1440*60*1e3,ds=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],us=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],ps=["нд","пн","вт","ср","чт","пт","сб"];function Ye(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const Xt=o=>new Date(o.getTime());function Ut(o){const t=Xt(o);return t.setHours(0,0,0,0),t}function ln(o){const t=Xt(o);return t.setHours(23,59,59,999),t}function fo(o){return Ut(new Date(o.getFullYear(),o.getMonth(),1))}function ho(o){return ln(new Date(o.getFullYear(),o.getMonth()+1,0))}function go(o,t){const n=new Date(o),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const a=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,a)),n}function ms(o,t){return go(o,-1)}function $n(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function tr(o,t){return $n(o,-t)}function nr(o){return Ut(new Date(o.getFullYear(),0,1))}function or(o){return ln(new Date(o.getFullYear(),11,31))}function fs(o){const t=Math.floor(o.getFullYear()/10)*10;return Ut(new Date(t,0,1))}function hs(o){const t=Math.floor(o.getFullYear()/10)*10+9;return ln(new Date(t,11,31))}const ft=o=>o.getFullYear(),An=o=>Math.floor(o.getFullYear()/10)*10;function gs(o){const t=[];let n=Ut(o.start);const r=Ut(o.end);for(;n<=r;)t.push(Xt(n)),n=new Date(n.getTime()+cs);return t}function ys(o){const t=[];let n=fo(o.start);const r=ho(o.end);for(;n<=r;)t.push(Xt(n)),n=go(n,1);return t}function bs(o){const t=[];let n=nr(o.start);const r=or(o.end);for(;n<=r;)t.push(Xt(n)),n=$n(n,1);return t}function yo(o,t=1){const n=Ut(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function ks(o,t=1){const n=yo(o,t);return n.setDate(n.getDate()+6),ln(n)}function ws(o,t,n=0){const r=yo(o,n),a=(t-n+7)%7;return r.setDate(r.getDate()+a),r}const Nn=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),bo=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),rr=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),lr=(o,t)=>!!o&&!!t&&Nn(o,t)&&o.getHours()===t.getHours(),xs=(o,t)=>!!o&&!!t&&lr(o,t)&&o.getMinutes()===t.getMinutes();function vs(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const an=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),sn=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function _s(o){const t=o.filter(n=>Ye(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function Cs(o){const t=o.filter(n=>Ye(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function Es(o,t){const n=Xt(o);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const Mn=(o,t=2)=>String(o).padStart(t,"0");function ar(o,t){return t==="wide"?ds[o]:us[o]}function Bs(o){return ps[o]}const Vs=[{token:"LLLL",format:o=>ar(o.getMonth(),"wide")},{token:"LLL",format:o=>ar(o.getMonth(),"abbreviated")},{token:"EE",format:o=>Bs(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>Mn(o.getMonth()+1)},{token:"dd",format:o=>Mn(o.getDate())},{token:"HH",format:o=>Mn(o.getHours())},{token:"mm",format:o=>Mn(o.getMinutes())}];function cn(o,t){if(!Ye(o))return"";let n="",r=0;for(;r<t.length;){const a=Vs.find(l=>t.startsWith(l.token,r));a?(n+=a.format(o),r+=a.token.length):(n+=t[r],r+=1)}return n}const Ss={"yyyy-MM-dd":/^(\d{4})-(\d{2})-(\d{2})$/,"dd.MM.yyyy":/^(\d{2})\.(\d{2})\.(\d{4})$/,"dd.MM.yyyy HH:mm":/^(\d{2})\.(\d{2})\.(\d{4}) (\d{1,2}):(\d{2})(?::(\d{2}))?$/,"HH:mm":/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/,"MM.yyyy":/^(\d{2})\.(\d{4})$/,yyyy:/^(\d{4})$/};function sr(o,t){const n=Ss[t];if(!n){const a=new Date(o);return Ye(a)?a:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,a,l,s]=r,c=new Date(Number(a),Number(l)-1,Number(s));return Ye(c)?c:null}case"dd.MM.yyyy":{const[,a,l,s]=r,c=new Date(Number(s),Number(l)-1,Number(a));return Ye(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,a,l,s,c,i,d]=r,h=new Date(Number(s),Number(l)-1,Number(a),Number(c),Number(i),Number(d||0));return Ye(h)?h:null}case"HH:mm":{const[,a,l,s]=r,c=new Date;return c.setHours(Number(a),Number(l),Number(s||0),0),c}case"MM.yyyy":{const[,a,l]=r;return new Date(Number(l),Number(a)-1,1)}case"yyyy":{const[,a]=r;return new Date(Number(a),0,1)}default:return null}}const $s=["year","month","day","time","custom"],As=e.defineComponent({components:{ChevronLeft:X.ChevronLeft,ChevronRight:X.ChevronRight},emits:{elementClick:o=>Ye(o),left:()=>!0,right:()=>!0,heading:()=>!0,today:()=>!0,clear:()=>!0},props:{headingClickable:{type:Boolean,default:!1},leftDisabled:{type:Boolean,default:!1},rightDisabled:{type:Boolean,default:!1},columnCount:{type:Number,default:7},items:{type:Array,default:()=>[]},viewMode:{type:String,required:!0,validate:o=>typeof o=="string"&&$s.includes(o)},showButtonBar:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1}},setup(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties?.$t,n=e.computed(()=>{const a=t?.("form.date.today");return a&&a!=="form.date.today"?a:"Сьогодні"}),r=e.computed(()=>{const a=t?.("form.date.clear");return a&&a!=="form.date.clear"?a:"Очистити"});return{todayLabel:n,clearLabel:r}}}),Ns={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},Ms=["disabled"],Fs=["disabled"],Ds={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},Ts=["disabled","onClick"],Ls={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function Is(o,t,n,r,a,l){const s=e.resolveComponent("ChevronLeft"),c=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",o.viewMode==="month"||o.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${o.columnCount}, 1fr)`}),onMousedown:t[5]||(t[5]=e.withModifiers(()=>{},["prevent"]))},[o.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ns,[e.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(i=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,Ms),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.headingClickable?"button":"span"),{class:e.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",o.headingClickable?"hover:bg-slate-100":"",o.viewMode==="month"?"p-datepicker-select-year":"",o.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:t[1]||(t[1]=e.withModifiers(i=>o.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"heading")]),_:3},8,["class"])),e.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(i=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"h-3.5 w-3.5"})])],8,Fs)])),e.createElementVNode("div",null,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock("div",Ds,[e.renderSlot(o.$slots,"subheading")])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",o.viewMode==="month"?"p-datepicker-month-view":"",o.viewMode==="year"?"p-datepicker-year-view":"",o.viewMode==="month"?"gap-y-1":""])},[e.renderSlot(o.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>o.$emit("elementClick",i.value),["stop","prevent"])},[e.createElementVNode("span",{class:e.normalizeClass([o.viewMode==="month"||o.viewMode==="year"?"inline-flex w-full h-8 items-center justify-center rounded-md text-[13px] font-normal transition-colors":"inline-flex w-8 h-8 items-center justify-center rounded-full text-[13px] font-normal transition-colors",o.viewMode==="month"?"p-datepicker-month":"",o.viewMode==="year"?"p-datepicker-year":"",o.viewMode==="day"?"p-datepicker-day":"",i.selected?"bg-blue-500 text-white font-semibold":"",i.current&&!i.selected&&o.viewMode!=="month"&&o.viewMode!=="year"?"border border-slate-300 font-medium":"",!i.disabled&&!i.selected?"hover:bg-slate-100 hover:text-slate-700":"",!i.current&&!i.selected&&i.disabled?"text-slate-300":""])},e.toDisplayString(i.display),3)],8,Ts))),128))])],2),e.renderSlot(o.$slots,"after-calendar"),o.showButtonBar?(e.openBlock(),e.createElementBlock("div",Ls,[e.createElementVNode("button",{type:"button",class:"p-datepicker-today-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[3]||(t[3]=e.withModifiers(i=>o.$emit("today"),["stop","prevent"]))},e.toDisplayString(o.todayLabel),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-clear-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[4]||(t[4]=e.withModifiers(i=>o.$emit("clear"),["stop","prevent"]))},e.toDisplayString(o.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const Fn=Be(As,[["render",Is]]),Os=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(o)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>fs(o.pageDate)),r=e.computed(()=>hs(o.pageDate)),a=(y,p,m)=>!p&&!m?!0:!(p&&ft(y)<ft(p)||m&&ft(y)>ft(m)),l=e.computed(()=>bs({start:n.value,end:r.value}).map(y=>({value:y,key:String(ft(y)),display:ft(y),selected:!!o.selected&&ft(y)===ft(o.selected),disabled:!a(y,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const y=ft(n.value),p=ft(r.value);return`${y} - ${p}`}),c=e.computed(()=>o.lowerLimit&&(An(o.lowerLimit)===An(o.pageDate)||an(o.pageDate,o.lowerLimit))),i=e.computed(()=>o.upperLimit&&(An(o.upperLimit)===An(o.pageDate)||sn(o.pageDate,o.upperLimit)));return{years:l,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",tr(o.pageDate,10)),nextPage:()=>t("update:pageDate",$n(o.pageDate,10))}}});function Ps(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:2,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.years,viewMode:"year",onLeft:o.previousPage,onRight:o.nextPage,onElementClick:t[0]||(t[0]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Rs=Be(Os,[["render",Ps]]),zs=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>nr(o.pageDate)),r=e.computed(()=>or(o.pageDate)),a=e.computed(()=>p=>cn(p,o.format)),l=(p,m,f)=>!m&&!f?!0:!(m&&an(p,fo(m))||f&&sn(p,ho(f))),s=e.computed(()=>ys({start:n.value,end:r.value}).map(p=>({value:p,display:a.value(p),key:a.value(p),selected:!!o.selected&&bo(o.selected,p),disabled:!l(p,o.lowerLimit,o.upperLimit)}))),c=e.computed(()=>ft(n.value)),i=e.computed(()=>o.lowerLimit&&(rr(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(rr(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",tr(o.pageDate,1)),nextPage:()=>t("update:pageDate",$n(o.pageDate,1))}}});function js(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:o.months,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,viewMode:"month",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Us=Be(zs,[["render",js]]),Hs=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(o),back:()=>!0,today:()=>!0,clear:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"dd"},headingFormat:{type:String,required:!1,default:"LLLL yyyy"},weekdayFormat:{type:String,required:!1,default:"EE"},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>typeof o=="number"&&Number.isInteger(o)&&o>=0&&o<=6},customWeekdays:{type:Array,required:!1},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>b=>v=>cn(v,b)),r=e.computed(()=>fo(o.pageDate)),a=e.computed(()=>ho(o.pageDate)),l=e.computed(()=>({start:r.value,end:a.value})),s=e.computed(()=>({start:yo(r.value,o.weekStartsOn),end:ks(a.value,o.weekStartsOn)})),c=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),i=e.computed(()=>{const b=o.weekStartsOn,v=c.value;if(v)return Array.from({length:7}).map((V,$)=>v[(b+$)%7]);const C=n.value(o.weekdayFormat);return Array.from(Array(7)).map((V,$)=>(b+$)%7).map(V=>ws(new Date,V,o.weekStartsOn)).map(C)}),d=(b,v,C,V)=>V?.dates?.some($=>Nn(b,$))||V?.predicate?.(b)?!1:!v&&!C?!0:!(v&&an(b,Ut(v))||C&&sn(b,ln(C))),h=e.computed(()=>{const b=new Date,v=n.value(o.format);return gs(s.value).map(C=>({value:C,display:v(C),selected:!!o.selected&&Nn(o.selected,C),current:Nn(b,C),disabled:!o.allowOutsideInterval&&!vs(C,l.value)||!d(C,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(C)}))}),y=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),p=e.computed(()=>o.lowerLimit&&(bo(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),m=e.computed(()=>o.upperLimit&&(bo(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{weekDays:i,days:h,heading:y,leftDisabled:p,rightDisabled:m,previousPage:()=>t("update:pageDate",ms(o.pageDate)),nextPage:()=>t("update:pageDate",go(o.pageDate,1))}}});function qs(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.days,showButtonBar:!0,viewMode:"day",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c)),onToday:t[2]||(t[2]=c=>o.$emit("today")),onClear:t[3]||(t[3]=c=>o.$emit("clear"))},e.createSlots({heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.weekDays,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),3))),128))]),_:2},[o.$slots["after-calendar"]?{name:"after-calendar",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Ws=Be(Hs,[["render",qs]]),Ks=e.defineComponent({components:{PickerPopup:Fn,ChevronUp:X.ChevronUp,ChevronDown:X.ChevronDown},emits:{select:o=>Ye(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1},embedded:{type:Boolean,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>o.pageDate??o.selected),r=e.ref(n.value.getHours()),a=e.ref(n.value.getMinutes());e.watch(()=>o.selected,m=>{let f=0,w=0;m&&(f=m.getHours(),w=m.getMinutes()),r.value=f,a.value=w});const l=(m,f)=>{const w=Es(new Date(n.value.getTime()),{hours:m,minutes:f,seconds:0});y(w)&&(r.value=m,a.value=f,t("select",w))},s=(m,f)=>m<0?f:m>f?0:m,c=()=>l(s(r.value+1,23),a.value),i=()=>l(s(r.value-1,23),a.value),d=()=>l(r.value,s(a.value+1,59)),h=()=>l(r.value,s(a.value-1,59)),y=m=>!(o.disabledTime?.dates?.some(f=>lr(m,f)&&xs(m,f))||o.disabledTime?.predicate?.(m));return{hours:r,minutes:a,padStartZero:m=>`0${m}`.substr(-2),isEnabled:y,incrementHours:c,decrementHours:i,incrementMinutes:d,decrementMinutes:h}}}),Gs={key:0,class:"p-datepicker-time-picker mt-2 pt-2 border-t border-slate-200 flex items-center justify-center gap-2 py-1"},Ys={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Xs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Zs={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Js={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Qs={class:"col-span-2"},ei={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},ti={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},ni={class:"min-w-8 text-center text-sm font-medium text-slate-700"},oi={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},ri={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function li(o,t,n,r,a,l){const s=e.resolveComponent("ChevronUp"),c=e.resolveComponent("ChevronDown"),i=e.resolveComponent("picker-popup");return o.embedded?(e.openBlock(),e.createElementBlock("div",Gs,[e.createElementVNode("div",Ys,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[0]||(t[0]=e.withModifiers((...d)=>o.incrementHours&&o.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Xs,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[1]||(t[1]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[8]||(t[8]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Zs,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[2]||(t[2]=e.withModifiers((...d)=>o.incrementMinutes&&o.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Js,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[3]||(t[3]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(i,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",Qs,[e.createElementVNode("div",ei,[e.createElementVNode("div",ti,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[4]||(t[4]=e.withModifiers((...d)=>o.incrementHours&&o.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",ni,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[5]||(t[5]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[9]||(t[9]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",oi,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[6]||(t[6]=e.withModifiers((...d)=>o.incrementMinutes&&o.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",ri,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[7]||(t[7]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const ai=Be(Ks,[["render",li]]),Dn=["time","day","month","year"],si=(o,t,n=void 0)=>{let r=n||new Date;const a=_s([o,r]);a&&(r=a);const l=Cs([t,r]);return l&&(r=l),r},ii=e.defineComponent({components:{YearPicker:Rs,MonthPicker:Us,DayPicker:Ws,TimePicker:ai,CalendarDays:X.CalendarDays,Clock3:X.Clock3,X:X.X},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Dn.includes(o)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>[0,1,2,3,4,5,6].includes(o)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Dn.includes(o)}},emits:{"update:modelValue":o=>o==null||Ye(o),decadePageChanged:o=>!0,yearPageChanged:o=>!0,monthPageChanged:o=>!0,opened:()=>!0,closed:()=>!0},setup(o,{emit:t}){const n=e.ref("none"),r=e.ref(o.startingViewDate),a=e.ref(null),l=e.ref(null),s=e.ref(null),c=e.ref({}),i=e.ref(!1),d=e.ref(!1);let h=null;const y=e.ref(""),p=se=>{const ie=se.replace(/[a-zA-Z]/g,"0");return/0/.test(ie)?ie:""},m=e.computed(()=>p(o.inputFormat));let f=null,w=null;const b=()=>{f?.destroy(),f=null},v=async()=>{if(!w){const{default:se}=await Promise.resolve().then(()=>Jn);w=se}return w},C=()=>{f&&f.value!==y.value&&(f.value=y.value??"")},V=se=>{const ie=se&&Ye(se)?cn(se,o.inputFormat):"";y.value!==ie&&(y.value=ie),C()},$=async()=>{if(b(),!l.value||!m.value)return;f=(await v())(l.value,{mask:m.value,lazy:!0,overwrite:!1}),C()};e.watch(()=>o.modelValue,se=>{d.value&&o.typeable||V(se)},{immediate:!0}),e.watch(()=>o.inputFormat,()=>{d.value&&o.typeable||V(o.modelValue)}),e.onMounted(()=>{m.value&&e.nextTick(()=>{$()})}),e.onBeforeUnmount(()=>{b()}),e.watch(m,se=>{se?e.nextTick(()=>{$()}):b()});const U=e.computed(()=>n.value!=="none"),Z=e.computed(()=>o.startingView==="time"&&o.minimumView==="time"),O=e.computed(()=>o.startingView==="day"&&o.minimumView==="time"),E=se=>{o.disabled||(U.value||(r.value=o.modelValue||si(o.lowerLimit,o.upperLimit,r.value),t("opened")),n.value=se,e.nextTick(()=>Fe()))},S=()=>{U.value&&(h!==null&&(cancelAnimationFrame(h),h=null),n.value="none",t("closed"))},_=(se="none")=>{se==="none"?S():E(se)};e.watchEffect(()=>{o.disabled&&S()});const T=(se,ie)=>{r.value=ie,se==="year"?t("decadePageChanged",ie):se==="month"?t("yearPageChanged",ie):se==="day"&&t("monthPageChanged",ie)},j=se=>{r.value=se,o.minimumView==="year"?(S(),V(se),t("update:modelValue",se)):E("month")},oe=se=>{r.value=se,o.minimumView==="month"?(S(),V(se),t("update:modelValue",se)):E("day")},A=se=>{const ie=O.value?(()=>{const ve=o.modelValue||r.value||new Date,Se=new Date(se);return Se.setHours(ve.getHours(),ve.getMinutes(),0,0),Se})():se;r.value=ie,o.minimumView==="day"?(S(),V(ie),t("update:modelValue",ie)):O.value?(V(ie),t("update:modelValue",ie),E("day")):E("time")},P=se=>{V(se),t("update:modelValue",se)},Y=()=>{A(new Date)},q=()=>{o.clearable&&(S(),V(null),t("update:modelValue",null),r.value=o.startingViewDate)},I=()=>{U.value||E(Q.value)},J=()=>{d.value=!0,i.value=!1,E(Q.value)},te=()=>{d.value=!1,o.typeable&&M({closeOnSuccess:!1,revertOnInvalid:!0})},L=se=>{const ie=se.target;if(y.value=ie?.value??"",!o.typeable)return;const ve=sr(y.value,o.inputFormat);ve&&y.value===cn(ve,o.inputFormat)&&(r.value=ve)},M=({closeOnSuccess:se,revertOnInvalid:ie})=>{const ve=l.value?.value??y.value,Se=sr(ve,o.inputFormat);return!!Se&&ve===cn(Se,o.inputFormat)&&Se?(r.value=Se,V(Se),t("update:modelValue",Se),se&&S(),!0):(V(o.modelValue),!1)},N=se=>{const ie=se.keyCode?se.keyCode:se.which,ve=ie===27,Se=ie===13;if(ve){S(),l.value?.blur();return}o.typeable&&Se&&(M({closeOnSuccess:!0,revertOnInvalid:!0})||l.value?.focus())},Q=e.computed(()=>{const se=Dn.indexOf(o.startingView),ie=Dn.indexOf(o.minimumView);return se<ie?o.minimumView:o.startingView}),ae=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0),ee=()=>o.startingView==="time"&&o.minimumView==="time"?null:E("day"),he=()=>{if(!l.value||!s.value)return;const se=4,ie=8,ve=l.value.getBoundingClientRect(),Se=s.value.getBoundingClientRect(),qe=s.value.firstElementChild?.getBoundingClientRect(),z=window.innerWidth,ne=window.innerHeight,le=window.scrollX||window.pageXOffset,ue=window.scrollY||window.pageYOffset,ke=Math.max(160,ne-ie*2),Ae=Math.min(Se.height||0,ke),De=ne-ve.bottom-se-ie,Te=ve.top-se-ie,W=De<Ae&&Te>De;let x=W?ve.top-se-Ae:ve.bottom+se;x=Math.max(ie,Math.min(x,ne-ie-Ae));const D=qe?.width||Se.width||268;let R=ve.left;R+D>z-ie&&(R=z-ie-D),R<ie&&(R=ie);const de=W?Math.max(120,ve.top-se-ie):Math.max(120,ne-ve.bottom-se-ie);c.value={position:"absolute",top:`${Math.round(x+ue)}px`,left:`${Math.round(R+le)}px`,maxHeight:`${Math.round(Math.min(ke,de))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},O.value&&n.value==="day"&&(c.value.minWidth="345px")},we=(se,ie)=>se.bottom>ie.top&&se.top<ie.bottom&&se.right>ie.left&&se.left<ie.right,be=se=>{const ie=[];let ve=se.parentElement;for(;ve;){const Se=window.getComputedStyle(ve),Le=Se.overflowY,qe=Se.overflowX,z=["auto","scroll","hidden","clip"].includes(Le),ne=["auto","scroll","hidden","clip"].includes(qe);(z||ne)&&ie.push(ve),ve=ve.parentElement}return ie},$e=()=>{if(!l.value)return!1;const se=l.value.getBoundingClientRect(),ie=new DOMRect(0,0,window.innerWidth,window.innerHeight);return we(se,ie)?be(l.value).every(Se=>we(se,Se.getBoundingClientRect())):!1},Me=()=>{if(U.value){if(!$e()){i.value=!0,S();return}Fe();return}i.value&&document.activeElement===l.value&&$e()&&(i.value=!1,E(Q.value))};e.watch(n,()=>{U.value&&e.nextTick(()=>Fe())});const Fe=()=>{he(),h!==null&&cancelAnimationFrame(h),h=requestAnimationFrame(()=>{he(),h=null})};e.onMounted(()=>{window.addEventListener("resize",Me),window.addEventListener("scroll",Me,!0),document.addEventListener("pointerdown",Re,!0)}),e.onBeforeUnmount(()=>{h!==null&&(cancelAnimationFrame(h),h=null),window.removeEventListener("resize",Me),window.removeEventListener("scroll",Me,!0),document.removeEventListener("pointerdown",Re,!0)});const Re=se=>{if(n.value==="none")return;const ie=se.target;if(!ie)return;const ve=!!a.value?.contains(ie),Se=!!s.value?.contains(ie);!ve&&!Se&&(i.value=!1,S())};return{rootRef:a,blur:te,focus:J,click:I,input:y,inputRef:l,pageDate:r,renderView:_,updatePageDate:T,selectYear:j,selectMonth:oe,selectDay:A,selectToday:Y,selectTime:P,keyUp:N,onInput:L,isTimeOnlyMode:Z,isDateTimeMode:O,normalizedWeekdayNames:ae,viewShown:n,goBackFromTimepicker:ee,clearModelValue:q,initialView:Q,log:se=>console.log(se),popupAnchorStyle:c,popupRef:s}}}),ci={ref:"rootRef",class:"relative"},di={class:"p-datepicker p-component p-inputwrapper relative"},ui=["readonly","value","placeholder","disabled","tabindex"],pi={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},mi={class:"absolute right-8 top-1/2 -translate-y-1/2"};function fi(o,t,n,r,a,l){const s=e.resolveComponent("Clock3"),c=e.resolveComponent("CalendarDays"),i=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),h=e.resolveComponent("month-picker"),y=e.resolveComponent("time-picker"),p=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",ci,[e.createElementVNode("div",di,[e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",class:"p-inputtext p-component p-datepicker-input",readonly:!o.typeable,value:o.input},o.$attrs,{placeholder:o.placeholder,disabled:o.disabled,tabindex:o.disabled?-1:0,onInput:t[0]||(t[0]=(...m)=>o.onInput&&o.onInput(...m)),onKeyup:t[1]||(t[1]=(...m)=>o.keyUp&&o.keyUp(...m)),onBlur:t[2]||(t[2]=(...m)=>o.blur&&o.blur(...m)),onFocus:t[3]||(t[3]=(...m)=>o.focus&&o.focus(...m)),onClick:t[4]||(t[4]=(...m)=>o.click&&o.click(...m))}),null,16,ui),e.createElementVNode("span",pi,[o.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(c,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",mi,[e.renderSlot(o.$slots,"clear",{onClear:o.clearModelValue},()=>[e.createElementVNode("button",{type:"button",class:"inline-flex h-5 w-5 items-center justify-center rounded-full text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600 focus:outline-none focus:ring-2 focus:ring-blue-500/30","aria-label":"Очистити дату",onClick:t[5]||(t[5]=m=>o.clearModelValue())},[e.createVNode(i,{class:"h-3 w-3"})])])],512),[[e.vShow,o.clearable&&o.modelValue]])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{ref:"popupRef",style:e.normalizeStyle(o.popupAnchorStyle)},[e.withDirectives(e.createVNode(d,{pageDate:o.pageDate,"onUpdate:pageDate":t[6]||(t[6]=m=>o.updatePageDate("year",m)),selected:o.modelValue,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,onSelect:o.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,o.viewShown==="year"]]),e.withDirectives(e.createVNode(h,{pageDate:o.pageDate,"onUpdate:pageDate":t[7]||(t[7]=m=>o.updatePageDate("month",m)),selected:o.modelValue,onSelect:o.selectMonth,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,format:o.monthListFormat,onBack:t[8]||(t[8]=m=>o.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,o.viewShown==="month"]]),e.withDirectives(e.createVNode(p,{pageDate:o.pageDate,"onUpdate:pageDate":t[9]||(t[9]=m=>o.updatePageDate("day",m)),selected:o.modelValue,weekStartsOn:o.weekStartsOn,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,headingFormat:o.dayPickerHeadingFormat,disabledDates:o.disabledDates,weekdayFormat:o.weekdayFormat,"allow-outside-interval":o.allowOutsideInterval,format:o.dayFormat,"custom-weekdays":o.normalizedWeekdayNames,onSelect:o.selectDay,onToday:o.selectToday,onClear:o.clearModelValue,onBack:t[10]||(t[10]=m=>o.viewShown="month")},e.createSlots({_:2},[o.isDateTimeMode?{name:"after-calendar",fn:e.withCtx(()=>[e.createVNode(y,{embedded:!0,pageDate:o.pageDate,visible:o.viewShown==="day"&&o.isDateTimeMode,selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"])]),key:"0"}:void 0]),1032,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect","onToday","onClear"]),[[e.vShow,o.viewShown==="day"]]),e.withDirectives(e.createVNode(y,{pageDate:o.pageDate,visible:o.viewShown==="time",selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,o.viewShown==="time"&&!o.isDateTimeMode]])],4),[[e.vShow,o.viewShown!=="none"]])]))],512)}const hi=Be(ii,[["render",fi]]),ir=Be(e.defineComponent({__name:"vs-input-date2",props:{clearable:{type:Boolean,default:!0},now:{type:Boolean},editable:{type:Boolean,default:!0},time:{type:Boolean},isInfinity:{type:Boolean},dateFormat:{},mode:{default:"date"},weekStart:{},dayNames:{},maxDaysFromNow:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,{inputClass:a}=et(n.style),l=e.getCurrentInstance(),s=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),c=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",a.value,n.customClass,{"!border-red-600":n.error}]),i=e.computed(()=>!n.modelValue&&n.now?new Date:null),d=e.computed({get:()=>E(n.modelValue??i.value,s.value)||void 0,set:L=>r("update:modelValue",S(L,s.value))}),h=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],y=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:h}),p=e.computed(()=>{const L=n.weekStart,M=typeof L=="string"?Number(L):L;return M===void 0||Number.isNaN(M)?1:Math.min(6,Math.max(0,M))}),m=e.computed(()=>{const L=n.maxDaysFromNow;if(L==null||L==="")return;const M=typeof L=="string"?Number(L):L;if(!Number.isFinite(M)||M<0)return;const N=new Date;return N.setHours(0,0,0,0),N.setDate(N.getDate()+M),N.setHours(23,59,59,999),N}),f=e.computed(()=>{switch(s.value){case"time":return{startingView:"time",minimumView:"time"};case"month":return{startingView:"month",minimumView:"month"};case"year":return{startingView:"year",minimumView:"year"};case"datetime":return{startingView:"day",minimumView:"time"};default:return{startingView:"day",minimumView:"day"}}}),w={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"};function b(){const L=l?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof L=="string"&&L)return L;if(L&&typeof L=="object"&&"value"in L&&L.value)return String(L.value);if(typeof localStorage<"u"){const M=localStorage.getItem("locale")||localStorage.getItem("language");if(M)return M}return"uk"}function v(){const M=l?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!M)return"";if(typeof M=="string")return M;if(typeof M=="object"){const N=b();return M[N]||M[N.split("-")[0]]||M.uk||M.en||""}return""}function C(L){return L?L.replaceAll("dd","__DAY2__").replaceAll("d","__DAY1__").replaceAll("mm","__MONTH2__").replaceAll("m","__MONTH1__").replaceAll("yy","__YEAR2__").replaceAll("y","__YEAR1__").replaceAll("__DAY2__","dd").replaceAll("__DAY1__","d").replaceAll("__MONTH2__","MM").replaceAll("__MONTH1__","M").replaceAll("__YEAR2__","yy").replaceAll("__YEAR1__","yyyy"):""}const V=e.computed(()=>{const L=w[s.value]||"dd.MM.yyyy";if(s.value==="time")return L;const M=n.dateFormat||v();if(!M)return L;const N=C(M);return N?s.value==="datetime"?`${N} HH:mm`:N:L});function $(L,M){return L?M==="week"?"рррр-тиждень":L.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",M==="time"||M==="datetime"?"хх":"мм"):""}const U={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},Z=e.computed(()=>{if(n.placeholder)return n.placeholder;const L=s.value;return $(V.value,L)||U[L]||""}),O=e.ref(!1);e.watch(()=>n.modelValue,L=>{L?O.value=!0:n.now||(O.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!O.value&&(r("update:modelValue",S(new Date,s.value)),O.value=!0)}),e.watch(V,()=>{r("update:modelValue",S(d.value,s.value))});function E(L,M){if(!L)return null;if(L instanceof Date&&!Number.isNaN(L.getTime()))return L;if(typeof L!="string")return null;switch(M){case"datetime":return oe(L);case"time":return Y(L);case"month":return A(L);case"year":return P(L);case"week":return q(L);case"date":default:return j(L)}}function S(L,M){if(!L)return null;const N=L instanceof Date?L:E(L,M);if(!N)return null;switch(M){case"datetime":return`${_(N)}T${T(N)}`;case"time":return T(N);case"month":return`${N.getFullYear()}-${te(N.getMonth()+1)}`;case"year":return`${N.getFullYear()}`;case"week":{const{year:Q,week:ae}=I(N);return`${Q}-W${te(ae)}`}case"date":default:return _(N)}}function _(L){return`${L.getFullYear()}-${te(L.getMonth()+1)}-${te(L.getDate())}`}function T(L){return`${te(L.getHours())}:${te(L.getMinutes())}`}function j(L){const M=L.split("-");if(M.length<3)return null;const[N,Q,ae]=M.map(Number);return!N||!Q||!ae?null:new Date(N,Q-1,ae)}function oe(L){const M=L.includes("T")?L:L.replace(" ","T"),N=new Date(M);return Number.isNaN(N.getTime())?null:N}function A(L){const[M,N]=L.split("-").map(Number);return!M||Number.isNaN(N)?null:new Date(M,(N||1)-1,1)}function P(L){const M=Number(L);return M?new Date(M,0,1):null}function Y(L){const M=L.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!M)return null;const[,N,Q,ae]=M,ee=new Date;return ee.setHours(Number(N),Number(Q),Number(ae||0),0),ee}function q(L){const M=L.match(/^(\d{4})-W(\d{2})$/);if(!M)return null;const[,N,Q]=M,ae=Number(Q);return J(Number(N),ae)}function I(L){const M=new Date(Date.UTC(L.getFullYear(),L.getMonth(),L.getDate())),N=M.getUTCDay()||7;M.setUTCDate(M.getUTCDate()+4-N);const Q=new Date(Date.UTC(M.getUTCFullYear(),0,1)),ae=Math.ceil(((M.getTime()-Q.getTime())/864e5+1)/7);return{year:M.getUTCFullYear(),week:ae}}function J(L,M){if(!L||!M)return null;const N=new Date(L,0,1+(M-1)*7),Q=N.getDay(),ae=N;return Q<=4?ae.setDate(N.getDate()-N.getDay()+1):ae.setDate(N.getDate()+8-N.getDay()),ae}function te(L){return String(L).padStart(2,"0")}return(L,M)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass])},[e.createVNode(hi,{modelValue:d.value,"onUpdate:modelValue":M[0]||(M[0]=N=>d.value=N),placeholder:Z.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":y.value,"week-starts-on":p.value,"starting-view":f.value.startingView,"minimum-view":f.value.minimumView,"input-format":V.value,"upper-limit":m.value,name:n.name,class:e.normalizeClass(c.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","upper-limit","name","class"])],2))}}),[["__scopeId","data-v-fb3e8176"]]),gi=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),a=new URLSearchParams(r);Object.entries(t).forEach(([s,c])=>{c==null||c===""||a.set(s,String(c))});const l=a.toString();return l?`${n}?${l}`:n},yi=(o,t,n)=>new Promise((r,a)=>{const l=new FormData;l.append("unique","true"),l.append("file",o);const s=new XMLHttpRequest;s.open("POST",t),s.upload.addEventListener("progress",c=>{if(n){if(c.lengthComputable&&c.total>0){n(Math.min(100,Math.round(c.loaded/c.total*100)));return}n(0)}}),s.addEventListener("load",()=>{try{const c=s.responseText?JSON.parse(s.responseText):{};if(s.status>=200&&s.status<300){r(c?.result??null);return}a(new Error(c?.message||c?.error||`Код помилки: ${s.status}`))}catch(c){a(c)}}),s.addEventListener("error",()=>a(new Error("Помилка мережі під час завантаження файлу"))),s.addEventListener("abort",()=>a(new Error("Завантаження файлу скасовано"))),s.send(l)}),bi=async(o,t={})=>{try{const{api:n,id:r="1",form:a="form",table:l="table",customParams:s,onProgress:c}=t,i=n||`/file/upload/uploads?id=${r||""}&form=${a||""}&table=${l||""}`,d=gi(i,s);if(o instanceof File)return await yi(o,d,c);const h=new FormData;return h.append("unique","true"),h.append("file",o),(await fetch(d,{method:"POST",body:h}).then(p=>p.json()))?.result}catch(n){return ge.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},ki=async o=>{try{return await fetch(`file/delete/${o}`),!0}catch(t){return console.error(t),!1}},cr=async o=>{try{const t=await fetch(`/file/download/${o}`);if(!t.ok)throw new Error(`Download failed with status ${t.status}`);const n=await t.blob(),a=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),l=a?.[1]?decodeURIComponent(a[1].replace(/"/g,"").trim()):"",s=o.split("/").filter(Boolean).pop()||"download",c=l||s,i=document.createElement("a");i.setAttribute("download",c),i.href=window.URL.createObjectURL(n),i.click(),window.URL.revokeObjectURL(i.href)}catch(t){console.error(t.message)}},wi=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},xi=o=>{const t=wi(o),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?X.Table:n.textsFormat.includes(t)?X.FileCode:n.documentsFormat.includes(t)?X.FileText:n.archivesFormat.includes(t)?X.FileArchive:X.FileText},vi=["title"],_i={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 px-2 text-center text-xs font-medium text-slate-600"},Ci=["title"],Ei={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},ht=Be(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},action:{type:Boolean,default:!1},isUploading:{type:Boolean,default:!1},progressPercent:{default:0},title:{default:""}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:e.mergeModels(["click"],["update:value","update:item"]),setup(o,{emit:t}){const n=e.useModel(o,"value"),r=e.useModel(o,"item"),a=t,l=o,s=e.computed(()=>l.action),c=e.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),i=e.computed(()=>l.disabled?"opacity-50 cursor-not-allowed":l.isUploading?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),d=e.computed(()=>l.progressPercent>0?`${l.progressPercent}%`:"Завантаження..."),h=f=>typeof f=="string"?f:f?.file_path||"",y=()=>{const f=c.value;ki(f),l.multiple&&Array.isArray(n.value)?n.value=n.value.filter(w=>h(w)!==f):n.value=""},p=()=>{c.value&&window.open(c.value,"_blank")},m=()=>{l.disabled||l.isUploading||a("click")};return(f,w)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,title:f.title,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",i.value]),onClick:m},[f.isUploading?(e.openBlock(),e.createElementBlock("div",_i,[w[2]||(w[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(d.value),1)])):(e.openBlock(),e.createBlock(e.unref(X.Plus),{key:1,class:"h-4 w-4"}))],10,vi)):(e.openBlock(),e.createElementBlock("div",{key:1,title:c.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(xi)(c.value)),{src:c.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:w[0]||(w[0]=b=>e.unref(cr)(c.value))},null,8,["src"])),e.createElementVNode("div",Ei,[e.createElementVNode("button",{type:"button",onClick:y,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(X.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:p,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-emerald-600"},[e.createVNode(e.unref(X.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:w[1]||(w[1]=b=>e.unref(cr)(c.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(X.Download),{class:"w-4 h-4"})])])],8,Ci))}}),[["__scopeId","data-v-245df5b1"]]),dr=o=>o?o.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean).map(t=>t.startsWith(".")?t.slice(1):t):[],ur=(o,t)=>!t||o.size<=t*1024*1024?!0:(ge.notify({type:"error",title:"Помилка!",message:`Файл "${o.name}" занадто великий. Максимальний розмір: ${t} МБ`,position:"right-bottom"}),!1),pr=(o,t)=>{if(!t.length)return!0;const n=o.name.split(".").pop()?.toLowerCase()||"";return t.includes(n)?!0:(ge.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${o.name}". Дозволені формати: ${t.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},mr=(o,t)=>{const n={},r=[];if(!o?.length)return{ok:!0,params:n,missingSources:r};const a=t?.value??{};return o.forEach(l=>{if(!l)return;const[s,c]=l.split("="),i=s?.trim(),d=c?.trim();if(!i||!d)return;const h=a[d];if(h==null||h===""){r.push(d);return}n[i]=h}),r.length?(ge.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:n,missingSources:r}):{ok:!0,params:n,missingSources:r}},fr=(o,t)=>!t||!Array.isArray(o)?[]:o,hr=(o,t)=>t||Array.isArray(o)?null:o,gr=o=>{if(!o)return"";const t=o.split(/[/\\]/).pop()||"",n=t.lastIndexOf(".");return n<=0||n===t.length-1?"":t.slice(n+1).toLowerCase()},Bi={class:"flex items-center flex-wrap gap-2"},Vi=["accept","multiple","disabled"],yr=e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),a=t,l=e.ref(null),s=e.ref(!1),c=e.ref([]),i=e.inject("values"),d=e.inject("map-file-import-uploading",null),h=e.computed(()=>fr(r.value,!!n.multiple)),y=e.computed(()=>hr(r.value,!!n.multiple)),p=e.computed(()=>dr(n.format)),m=e.computed(()=>mr(n.customParams,i)),f=Z=>{ge.notify({type:"error",title:"Помилка завантаження",message:Z||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},w=()=>{n.disabled||s.value||m.value.ok&&l.value?.click()},b=async(Z,O)=>{const E={api:n.api,customParams:Object.keys(m.value.params).length?m.value.params:void 0,onProgress:_=>{O&&(O.status="uploading",O.progressPercent=_)}},S=await bi(Z,E);return S?.file_path?S.file_path:null};e.watch(s,Z=>{d&&(d.value=Z)},{immediate:!0});const v=e.computed(()=>c.value.filter(Z=>Z.status!=="done")),C=e.computed(()=>v.value[0]||null),V=Z=>typeof Z=="string"?Z:Z?.file_path||"",$=(Z,O)=>({key:`${Date.now()}-${O}-${Z.name}`,file:Z,size:Z.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),U=async Z=>{const{files:O}=Z.target;if(!O||O.length===0)return;if(!m.value.ok){l.value&&(l.value.value="");return}const E=Array.from(O);if(n.max_size&&E.filter(T=>!ur(T,n.max_size)).length>0){l.value&&(l.value.value="");return}if(E.filter(_=>!pr(_,p.value)).length>0){l.value&&(l.value.value="");return}s.value=!0,c.value=E.map((_,T)=>$(_,T));try{if(n.multiple){const oe=await Promise.all(E.map(async(q,I)=>{const J=c.value[I];J.status="uploading",J.progressPercent=0;const te=await b(q,J);return te?(J.status="done",J.path=te,J.uploaded=J.size,J.progressPercent=100):(J.status="error",J.error="Помилка при завантаженні"),te})),A=oe.filter(q=>!!q);if(A.length===0){f();return}A.length<oe.length&&f("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const P=A,Y=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...Y,...P],a("change",r.value);return}const _=E[0],T=c.value[0];T.status="uploading",T.progressPercent=0;const j=await b(_,T);if(!j){T.status="error",T.error="Помилка при завантаженні",f();return}T.status="done",T.path=j,T.uploaded=T.size,T.progressPercent=100,r.value=j,a("change",j)}catch(_){f(_?.message||void 0)}finally{s.value=!1,c.value=[],l.value&&(l.value.value="")}};return(Z,O)=>(e.openBlock(),e.createElementBlock("div",Bi,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:l,type:"file",accept:n.format,multiple:n.multiple,onChange:U,disabled:s.value||Z.disabled},null,40,Vi),y.value?(e.openBlock(),e.createBlock(ht,{key:0,item:y.value,value:r.value,"onUpdate:value":O[0]||(O[0]=E=>r.value=E)},null,8,["item","value"])):e.createCommentVNode("",!0),n.multiple?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(E,S)=>(e.openBlock(),e.createBlock(ht,{key:`${S}-${V(E)}`,multiple:!0,item:E,value:r.value,"onUpdate:value":O[1]||(O[1]=_=>r.value=_)},null,8,["item","value"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,E=>(e.openBlock(),e.createBlock(ht,{key:E.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":E.progressPercent,title:E.file.name},null,8,["progress-percent","title"]))),128)),e.createVNode(ht,{action:"","is-uploading":!1,disabled:Z.disabled||s.value,title:"Добавить файлы",onClick:w},null,8,["disabled"])],64)):!n.multiple&&!C.value?(e.openBlock(),e.createBlock(ht,{key:2,action:"","is-uploading":!1,disabled:Z.disabled||s.value,title:"Обновить файл",onClick:w},null,8,["disabled"])):C.value?(e.openBlock(),e.createBlock(ht,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":C.value.progressPercent,title:C.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0)]))}}),Si={class:"vs-input-file2 flex flex-col gap-4"},$i={class:"flex items-center flex-wrap gap-2"},Ai=["multiple","accept","disabled"],Ni={key:0,class:"text-sm text-rose-600"},Tn=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},multiple:{type:Boolean,default:!1},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),a=e.ref(!1),l=e.ref(""),s=e.ref([]),c=e.inject("values"),i=e.computed(()=>!!t.multiple),d=e.computed(()=>dr(t.format)),h=e.computed(()=>{if(d.value.length)return d.value.map(E=>`.${E}`).join(",")}),y=e.computed(()=>fr(n.value,i.value)),p=e.computed(()=>hr(n.value,i.value)),m=e.computed(()=>mr(t.customParams,c)),f=e.computed(()=>s.value.filter(E=>E.status!=="done")),w=e.computed(()=>i.value?null:f.value[0]||null),b=e.computed(()=>{const E=f.value,S=E.reduce((T,j)=>T+j.size,0);if(!S)return 0;const _=E.reduce((T,j)=>T+Math.min(j.uploaded,j.size),0);return Math.min(100,Math.round(_/S*100))}),v=()=>{t.disabled||a.value||m.value.ok&&r.value?.click()},C=async(E,S)=>{const _=S||Z(E,0);try{_.status="uploading";const T={id:"",fileName:_.file.name,subdir:t.subdir,size:_.file.size,...m.value.params},j=await fetch(`${t.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T)});if(!j.ok)throw new Error("Не вдалося ініціалізувати завантаження");const oe=await j.json().catch(()=>({}));_.uploadId=oe.id||"",_.uploaded=Number(oe.uploaded)||0,_.progressPercent=_.size?Math.min(100,Math.round(_.uploaded/_.size*100)):0;const A=t.chunkSize??5*1024*1024;for(;_.uploaded<_.size;){const q=_.uploaded,I=Math.min(q+A,_.size),te=await _.file.slice(q,I).arrayBuffer(),L=await fetch(`${t.api||"/file/upload2"}/${_.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${q}-${I-1}/${_.size}`,"Content-Type":"application/octet-stream"},body:te});if(!L.ok)throw new Error("Помилка завантаження частини");const M=await L.json().catch(()=>({})),N=M.uploaded!=null?Number(M.uploaded):I;if(_.uploaded=N,_.progressPercent=_.size?Math.min(100,Math.round(_.uploaded/_.size*100)):0,M.finished||N>=_.size){const Q=gr(_.file.name),ae=M.file_path||M.filepath||M.url||(Q?`/files/uploads/${_.uploadId}.${Q}`:`/files/uploads/${_.uploadId}`);return _.path=ae,_.status="done",U(ae),ae}}const P=gr(_.file.name),Y=`/files/uploads/${_.uploadId}${P?`.${P}`:""}`;return _.path=Y,_.status="done",U(Y),Y}catch(T){return _.status="error",_.error=T?.message||"Помилка при завантаженні",l.value=T?.message||"Помилка при завантаженні",null}},V=E=>typeof E=="string"?E:E?.file_path||"",$=E=>!E||E.length===0?[]:Array.from(E),U=E=>{if(i.value){const S=Array.isArray(n.value)?[...n.value]:n.value?[n.value]:[];S.push(E),n.value=S;return}n.value=E},Z=(E,S)=>({key:`${Date.now()}-${S}-${E.name}`,file:E,size:E.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),O=async E=>{const S=E.target,_=$(S.files);if(!_.length)return;if(!m.value.ok){S.value="";return}const T=_.filter(j=>ur(j,t.max_size)&&pr(j,d.value));if(!T.length){S.value="";return}try{a.value=!0,l.value="",s.value=T.map((P,Y)=>Z(P,Y));const oe=(await Promise.allSettled(s.value.map(P=>C(P.file,P)))).filter(P=>P.status==="fulfilled").map(P=>P.value).filter(P=>!!P),A=s.value.filter(P=>P.status==="error").map(P=>P.file.name);if(oe.length===0){l.value="Не вдалося завантажити файл";return}A.length>0?ge.notify({type:"warning",title:"Частина файлів не завантажилась",message:A.join(", "),position:"right-bottom"}):ge.notify({type:"success",title:"Файл завантажено",message:T.length>1?`Завантажено ${oe.length} файлів`:T[0].name,position:"right-bottom"})}finally{a.value=!1,s.value=[],S.value=""}};return(E,S)=>(e.openBlock(),e.createElementBlock("div",Si,[e.createElementVNode("div",$i,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:i.value,accept:h.value,disabled:a.value||t.disabled,onChange:O},null,40,Ai),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(y.value,(_,T)=>(e.openBlock(),e.createBlock(ht,{key:`${T}-${V(_)}`,multiple:!0,item:_,value:n.value,"onUpdate:value":S[0]||(S[0]=j=>n.value=j)},null,8,["item","value"]))),128)):p.value?(e.openBlock(),e.createBlock(ht,{key:1,item:p.value,value:n.value,"onUpdate:value":S[1]||(S[1]=_=>n.value=_)},null,8,["item","value"])):e.createCommentVNode("",!0),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(f.value,_=>(e.openBlock(),e.createBlock(ht,{key:_.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":_.progressPercent,title:_.file.name},null,8,["progress-percent","title"]))),128)):w.value?(e.openBlock(),e.createBlock(ht,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":w.value.progressPercent,title:w.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0),e.createVNode(ht,{action:"","is-uploading":!1,disabled:t.disabled||a.value,"progress-percent":b.value,title:i.value?"Добавить файлы":"Обновить файл",onClick:v},null,8,["disabled","progress-percent","title"])]),l.value?(e.openBlock(),e.createElementBlock("p",Ni,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)]))}}),Mi={class:"flex items-center justify-center h-[30px] w-[30px]"},Fi={class:"max-w-[55vw]"},Di={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},Ti={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Li={class:"px-[5px]"},Ii={class:""},Ln=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(o){const t=o,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(a){if(a<1024)return`${a} B`;const l=a/1024;return l<1024?`${l.toFixed(2)} KB`:`${(l/1024).toFixed(2)} MB`}return(a,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Mi,[e.createVNode(e.unref(X.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Fi,[e.createElementVNode("p",Di,e.toDisplayString(a.item?.uploaded_name),1),e.createElementVNode("p",Ti,[e.createElementVNode("span",null,e.toDisplayString(a.item?.username),1),e.withDirectives(e.createElementVNode("span",Li,"|",512),[[e.vShow,a.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),l[0]||(l[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",Ii,e.toDisplayString(r(a.item?.size)),1)])])],64))}}),Oi={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Pi={key:0,class:"flex w-full gap-x-3 items-center"},Ri={key:1,class:"flex gap-x-3 w-full items-center"},zi={key:2,class:"flex gap-x-3 w-full items-center"},ji=["href"],Ui={key:3,class:"flex gap-x-3 w-full items-center"},Hi={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},qi={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"},Wi={class:"inline-block"},Ki={class:"inline-block"},Gi={class:"inline-block"},Yi=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(o,{emit:t}){const n=o,r=t;function a(y){return["pdf","json"].includes(y.ext)}function l(y){return["ppt","pptx","doc","docx","xls","xlsx"].includes(y.ext)}function s(y){const p=document.createElement("a");p.setAttribute("download",y?.uploaded_name),p.href=y?.file_path,p.click()}function c(y){y?.file_path&&window.open(y.file_path,"_blank")}async function i(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),r("update")}catch(y){console.error(y)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:i,updateListOnConfirm:!0})}function h(y){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:y})}return(y,p)=>(e.openBlock(),e.createElementBlock("div",Oi,[y.item.ext==="jpg"||y.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Pi,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=m=>h(y.index))},[e.createVNode(Ln,{item:y.item},null,8,["item"])])])):a(y.item)?(e.openBlock(),e.createElementBlock("div",Ri,[e.createVNode(Ln,{item:y.item},null,8,["item"])])):l(y.item)?(e.openBlock(),e.createElementBlock("div",zi,[e.createElementVNode("a",{href:`/api/file-preview?id=${y.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Ln,{item:y.item},null,8,["item"])],8,ji)])):(e.openBlock(),e.createElementBlock("div",Ui,[e.createVNode(Ln,{item:y.item},null,8,["item"])])),e.createElementVNode("div",Hi,[e.createElementVNode("div",qi,[e.createElementVNode("div",Wi,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:p[1]||(p[1]=m=>c(y.item))},[e.createVNode(e.unref(X.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",Ki,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:p[2]||(p[2]=m=>s(y.item))},[e.createVNode(e.unref(X.Download),{class:"h-4 w-4"})])]),p[4]||(p[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",Gi,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:p[3]||(p[3]=m=>d())},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})])])])])]))}}),Xi={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},Zi={class:"flex w-full mb-[12px] items-center gap-x-2"},Ji={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Qi={class1:"ml-auto"},ec={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"},tc={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},nc={class:"relative"},oc={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},rc={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"},lc={key:0},br=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(o,{emit:t}){const n=o,r=e.inject("form"),a=e.computed(()=>r.value.formId),l=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),h=e.ref([]),y=e.ref(""),p=e.computed(()=>Array.isArray(h.value)?h.value.filter(V=>V.ext==="jpg"||V.ext==="png").map(V=>V?.file_path):[]),m=e.computed(()=>y.value===""?h.value:h.value.filter(V=>V?.uploaded_name?.includes(y.value))),f=V=>{const $=p.value.findIndex(U=>U===V.item.file_path);$!==-1&&(l.value=!0,s.value=$)},w=async()=>{try{const V=await fetch(`${n.prefix}/widget/file/${a.value}`).then($=>$.json());h.value=V?.rows}catch(V){console.error(V)}},b=async V=>{await Promise.all(Array.from(V.target.files).map(async $=>{const U=new FormData;U.append("file",$);try{const Z=`${n.prefix}/widget/file/${a.value}`,O=await fetch(Z,{method:"POST",body:U});return O.ok?(c("update","file-list"),$):(ge.notify({type:O.status>=400&&O.status<500?"warning":"error",title:"Error",message:`Error code: ${O.status}`}),null)}catch(Z){return ge.notify({type:"error",title:"Error",message:Z.message||"Unknown error"}),console.error(Z),null}})),await w()},v=V=>{const $={...V};return V.cancel||($.cancel=()=>{i.value=!1}),V.updateListOnConfirm&&($.confirm=async()=>{await V.confirm(),i.value=!1,w()}),$},C=V=>{d.value=v(V),i.value=!0};return e.watch(a,V=>{V&&w()}),e.onMounted(()=>{a.value&&w()}),(V,$)=>{const U=e.resolveComponent("Lightbox"),Z=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",Xi,[e.createElementVNode("div",Zi,[e.createElementVNode("h2",Ji," Файлів: "+e.toDisplayString(h.value?.length),1),e.createElementVNode("div",Qi,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:$[0]||($[0]=O=>b(O))},null,32),e.createElementVNode("div",ec,[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4"})])])])]),h.value?.length>4?(e.openBlock(),e.createElementBlock("div",tc,[e.createElementVNode("div",null,[e.createElementVNode("div",nc,[e.createElementVNode("div",oc,[e.createVNode(e.unref(X.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":$[1]||($[1]=O=>y.value=O),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,y.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),h.value?.length?(e.openBlock(),e.createElementBlock("div",rc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(O,E)=>(e.openBlock(),e.createBlock(Yi,{key:E,prefix:V.prefix,item:O,index:E,onUpdate:$[2]||($[2]=S=>V.$emit("update","file-list")),onOpenModal:$[3]||($[3]=S=>C(S)),onOpenLightbox:$[4]||($[4]=S=>f(S))},null,8,["prefix","item","index"]))),128)),m.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",lc,$[8]||($[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(U,{modelValue:l.value,"onUpdate:modelValue":$[5]||($[5]=O=>l.value=O),startIndex:s.value,"onUpdate:index":$[6]||($[6]=O=>s.value=O),images:p.value},null,8,["modelValue","startIndex","images"]),e.createVNode(Z,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":$[7]||($[7]=O=>i.value=O),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),ac={class:"flex items-center justify-between"},sc={class:"text-[16px] text-gray-900 font-medium"},ic={class:"grid gap-3"},cc=Be(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ac,[e.createElementVNode("p",sc,e.toDisplayString(o.title),1),e.createVNode(io,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",ic,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),dc={class:"text-[16px] text-gray-900 font-medium"},uc={class:"grid gap-3"},pc=Be(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:a[0]||(a[0]=l=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",dc,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",uc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),mc={class:"flex items-center justify-between"},fc={switcher:cc,accordion:pc,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",mc,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},dt={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},hc=(o,t)=>String(o)===String(t),gc=(o,t)=>String(o)!==String(t),yc=(o,t)=>o>t,bc=(o,t)=>o>=t,kc=(o,t)=>o<t,wc=(o,t)=>o<=t,xc=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,vc=(o,t)=>String(o).startsWith(String(t)),_c=(o,t)=>String(o).endsWith(String(t)),Cc=(o,t)=>String(o).includes(String(t)),Ec=(o,t)=>Array.isArray(t)?t.includes(o):!1,Bc=(o,t)=>Array.isArray(t)?!t.includes(o):!0,Vc=(o,t)=>{if(!t)return!0;switch(t?.[1]){case dt.Equal:return hc(o,t?.[2]);case dt.Inequal:return gc(o,t?.[2]);case dt.Higer:return yc(o,t?.[2]);case dt.HigerOrEqual:return bc(o,t?.[2]);case dt.Lower:return kc(o,t?.[2]);case dt.LowerOrEqual:return wc(o,t?.[2]);case dt.Between:return xc(o,t?.[2]);case dt.StartWith:return vc(o,t?.[2]);case dt.EndWith:return _c(o,t?.[2]);case dt.Contain:return Cc(o,t?.[2]);case dt.In:return Ec(o,t?.[2]);case dt.NotIn:return Bc(o,t?.[2]);default:return!0}};function kr(o,t,n){return t==null||!Array.isArray(t)||t.length===0?!0:(Array.isArray(t[0])?t:[t]).every(a=>{if(!Array.isArray(a)||a.length<2)return!0;const l=a[0],s=n?o?.[n]?.[l]??o?.[l]:o?.[l];return Vc(s,a)})}const wr=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(o){const t=o,n=e.inject("values",e.ref({})),r=e.inject("form"),a=e.computed(()=>t.schema?.filter(c=>kr(n.value,c?.conditions,t.name||void 0))),l=e.computed(()=>fc[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const c=n.value[t.name];if(c)return c;const i={};return n.value={...n.value,[t.name]:i},i});return(c,i)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,d=>(e.openBlock(),e.createBlock(Wr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":h=>s.value[d.name]=h,style:o.style,error:e.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),xr=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:a,onCreated:l})=>{const s=e.ref(!1),c=e.ref({}),i=e.ref([]),d=e.ref(null),h=e.computed(()=>o.add?.title||"Додати"),y=e.computed(()=>o.add?.token||o.add?.model||""),p=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:c,addSchema:i,addForm:d,addTitle:h,addOption:async()=>{if(!(!y.value||d?.value.validate()))try{const b=o.add?.api??`/api/table/${y.value}`,v=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c.value)}),C=await v.json().catch(()=>({})),V=C?.error||C?.message,$=Number(C?.code)>=400;if(!v.ok||$){ge.notify({title:"Помилка",type:"error",message:V||`Код помилки: ${C?.code||v.status}`});return}const U=C?.rows?.[0],Z=C?.[p.value]??C?.id??U?.[p.value]??U?.id;if(!Z){ge.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const O=await t(Z);O&&(n.value.some(S=>String(S?.id)===String(O.id))||n.value.push(O)),l?await l(O,Z):O&&(r.value=O,a.value=Z),s.value=!1,ge.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(b){ge.notify({title:"Помилка",type:"error",message:b?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!o.add)return null;const w=await fetch(`/api/template/form/${o.add.form}`).then(b=>b.json());return i.value=w.schema,c.value={},s.value=!0,null}}},Sc=["aria-expanded","data-focus"],$c={class:"vs-input-select__value-area relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},Ac={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Nc={class:"flex items-center gap-1 min-w-0"},Mc=["title"],Fc=["innerHTML"],Dc=["onClick"],Tc={class:"flex-1 min-w-[2px]"},Lc=["placeholder"],Ic=["title"],Oc=["innerHTML"],Pc={key:3,class:"truncate flex-1 min-w-0"},Rc={key:2,class:"flex-1 min-w-[2px]"},zc=["placeholder"],jc={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Uc={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},Hc=["disabled"],qc={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Wc=["disabled","title"],Kc=e.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(o,{emit:t}){const n=o,r=t,a=e.computed({get:()=>n.keyWord,set:l=>r("update:keyWord",l)});return(l,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",l.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":l.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...c)=>l.onControlKeydown&&l.onControlKeydown(...c)),onClick:s[11]||(s[11]=(...c)=>l.onControlClick&&l.onControlClick(...c)),"data-focus":l.isOpen||l.inputFocus?"true":"false",ref:l.setTriggerRef},[e.createElementVNode("div",$c,[l.isMulti?(e.openBlock(),e.createElementBlock("div",Ac,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.selectedOptions,c=>(e.openBlock(),e.createElementBlock("div",{key:c.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Nc,[l.shouldShowColorDot(c)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:c?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(c)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(c)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(c)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:l.getLabel(c)},[l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:l.renderTemplate(c)},null,8,Fc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c.text),1)],64))],8,Mc)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(i=>l.onRemoveSelected(c.id),["stop"])},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Dc)]))),128)),e.createElementVNode("div",Tc,[!l.disabled&&l.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:l.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:l.selectedIds.length?" ":l.placeholder,"onUpdate:modelValue":s[0]||(s[0]=c=>a.value=c),onFocus:s[1]||(s[1]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[2]||(s[2]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[3]||(s[3]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,Lc)),[[e.vModelText,a.value]]):e.createCommentVNode("",!0)])])):!l.isMulti&&l.selectedOptionLabel&&a.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",l.disabled||!l.search?"relative z-0 flex-1 min-h-[30px] py-0.5 text-inherit":"absolute inset-x-0 top-0 bottom-0 z-[1] text-gray-900 pointer-events-none"]),title:l.selectedOptionLabel},[l.shouldShowColorDot(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:l.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(l.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(l.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:l.renderTemplate(l.selectedOption)},null,8,Oc)):(e.openBlock(),e.createElementBlock("span",Pc,e.toDisplayString(l.selectedOption?.text),1))],10,Ic)):e.createCommentVNode("",!0),!l.isMulti&&!l.disabled&&l.search?(e.openBlock(),e.createElementBlock("div",Rc,[e.withDirectives(e.createElementVNode("input",{ref:l.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:l.selectedOptionLabel?" ":l.placeholder,"onUpdate:modelValue":s[4]||(s[4]=c=>a.value=c),onFocus:s[5]||(s[5]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[6]||(s[6]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[7]||(s[7]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,zc),[[e.vModelText,a.value]])])):!l.isMulti&&l.disabled&&(!l.selectedOptionLabel||a.value!=="")?(e.openBlock(),e.createElementBlock("div",jc,e.toDisplayString(l.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Uc,[l.showClear?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:l.disabled,onClick:s[8]||(s[8]=e.withModifiers((...c)=>l.onClearSelected&&l.onClearSelected(...c),["stop"]))},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Hc)):e.createCommentVNode("",!0),l.showClear?(e.openBlock(),e.createElementBlock("div",qc)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:l.disabled,onClick:s[9]||(s[9]=e.withModifiers((...c)=>l.onToggleSelect&&l.onToggleSelect(...c),["stop"])),title:l.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],8,Wc)])],42,Sc))}}),Gc=["aria-disabled","onMousedown"],Yc={class:"leading-[19px]"},Xc=["innerHTML"],Zc={key:1,class:"px-3 py-2 text-center text-gray-500"},Jc=e.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(o){return(t,n)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,ref:t.setDropdownRef,class:"fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:e.normalizeStyle(t.dropdownStyle),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:t.dropdownStyle.maxHeight||"300px"}),ref:t.setListRef},[t.filteredOptionsList.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.filteredOptionsList,(r,a)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:l=>t.setItemRef(l,a),class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",t.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",t.selectedNavIndex===a&&!t.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":t.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(l=>t.onOptionClick(r),["prevent","stop"])},[t.shouldShowColorDot(r)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:r?.color})},null,4)):e.createCommentVNode("",!0),!t.optionTemplate&&t.optionHasIcon(r)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.iconWrapperClass),style:e.normalizeStyle(t.getIconColorStyle(r)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",Yc,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,Xc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,Gc))),128)):(e.openBlock(),e.createElementBlock("div",Zc," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),Qc={class:"flex justify-end items-center gap-x-2 py-3 px-4 border-t border-gray-200 w-full"},ed=["onClick"],td=["disabled"],nd="__autoMeta",vr="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",ko=Be(e.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t,a=e.computed(()=>n.multiple),l=e.computed(()=>n.disabled),s=e.computed(()=>n.search);et(n.style);const c=e.computed({get:()=>n.modelValue,set:H=>r("update:modelValue",H)});!c.value&&n.defaultValue&&(c.value=n.defaultValue);const i=e.ref(null),d=e.ref(null),h=e.ref(null),y=e.ref(null),p=e.ref(!1),m=e.ref(!1),f=e.ref(null),w=e.ref(-1),b=e.ref([]),v=e.ref(""),C=e.ref(null),V=H=>{d.value=H},$=H=>{C.value=H},U=H=>{y.value=H},Z=H=>{h.value=H},O=(H,re)=>{b.value[re]=H},E=e.ref({}),S=e.ref([]),_=e.computed(()=>{if(!S.value.length)return[];const H=be.value,re=new Map(H.map(me=>[me.id?.toString(),me]));return S.value.map(me=>re.get(me?.toString())).filter(me=>!!me)}),T=e.computed(()=>n.placeholder||"Select..."),j=e.computed(()=>te(f.value)),oe=e.computed(()=>l.value?!1:a.value?S.value.length>0:!!c.value),A=H=>a.value?S.value.some(re=>re?.toString()===H?.toString()):c.value?.toString()===H?.toString(),P=e.computed(()=>{let H=be.value??[];if(!n.data&&v.value.trim()!==""){const re=v.value.toLowerCase();H=H.filter(me=>{const Ne=te(me).toLowerCase(),ze=me.text?.toLowerCase?.()||"";return Ne.includes(re)||ze.includes(re)})}if(a.value&&S.value.length){const re=new Set(S.value.map(me=>me?.toString()));H=H.filter(me=>!re.has(me.id?.toString()))}return H}),Y=e.inject("values"),q=e.inject("field-props"),I=e.computed(()=>n.slot??n?.optionTemplate??""),J=H=>Vn(H,I.value),te=H=>Sn(H,I.value),L=e.computed(()=>Cn(I.value)),M=H=>rn(H),N=H=>!!(!L.value&&Dt(H)&&!M(H)),Q=H=>{const re=Dt(H);return re?{color:re}:void 0},ae=H=>!!(!L.value&&(on(H)||M(H))),ee=(H,re,me)=>{if(!q)return!1;const Ne=q.value?.[H]??{},ze=(je,Qe,xt)=>{if(!Qe.length)return je;const[pt,...vt]=Qe,mt={...je};if(!vt.length)return mt[pt]=xt,mt;const zt=typeof je[pt]=="object"&&je[pt]!==null?je[pt]:{};return mt[pt]=ze(zt,vt,xt),mt},Je=ze(Ne,re,me);return q.value={...q.value||{},[H]:Je},!0},he=H=>{if(!q||!n.name)return;const re=q.value?.[n.name]??{};q.value={...q.value||{},[n.name]:{...re,[nd]:H}}},we=H=>{if(!n.set)return;const re=Y?.value;!re&&!q||Object.entries(n.set).forEach(([me,Ne])=>{if(!me)return;const ze=H?H[Ne]:null,Je=me.split(".").map(xt=>xt.trim()).filter(Boolean);if(!Je.length)return;const[je,...Qe]=Je;Qe.length&&ee(je,Qe,ze??null)||re&&(re[je]=ze??null)})},{optionsList:be,parentValue:$e,fetchOptions:Me,fetchOptionByValue:Fe,loadOptions:Re}=Bn({props:n,formValues:Y,watchParent:!1}),se=H=>H==null?"":String(H),ie=H=>{if(a.value){if(!S.value.length){be.value=H;return}}else if(!f.value){be.value=H;return}const re=new Set(H.map(Ne=>se(Ne.id)).filter(Boolean));if(a.value){const Ne=new Set(S.value.map(Je=>se(Je)).filter(Boolean)),ze=(be.value??[]).filter(Je=>{const je=se(Je.id);return!je||!Ne.has(je)?!1:!re.has(je)});be.value=[...ze,...H];return}const me=se(f.value?.id);if(me&&!re.has(me)){be.value=[f.value,...H];return}be.value=H},ve=e.ref(0),Se=async H=>{const re=++ve.value,me=await Me(H);return re!==ve.value?null:me},Le=async()=>{if(n.data){const H=await Se(v.value);return H&&ie(H),be.value}return Re()},qe=async H=>{if(H==null||H==="")return null;const re=be.value?.find(me=>me?.id?.toString()===String(H));return re||Fe(H)},z=async H=>{const re=new Set(be.value.map(Ne=>Ne.id?.toString())),me=H.filter(Ne=>!re.has(Ne?.toString()));me.length&&await me.reduce(async(Ne,ze)=>{await Ne;const Je=await qe(ze);Je&&be.value.push(Je)},Promise.resolve())},ne=()=>{if(!P.value.length){w.value=-1;return}let H=0;if(!a.value&&f.value){const re=f.value.id?.toString(),me=P.value.findIndex(Ne=>Ne.id?.toString()===re);me>=0&&(H=me)}w.value=H,e.nextTick(()=>{R(b.value[H],h.value)})},le=async()=>{l.value||(p.value=!0,await e.nextTick(()=>{_e()}),await Le(),await e.nextTick(()=>{_e(),C.value?.focus()}),ne())},ue=()=>{p.value=!1,w.value=-1,e.nextTick(()=>{C.value?.blur()})},ke=async H=>{if(l.value)return;(H!==void 0?H:!p.value)?await le():ue()},Ae=async()=>{if(!l.value){if(p.value){ue();return}await le()}},De=()=>{a.value?(S.value=[],c.value=[],r("change",[]),W(null,[])):(f.value=null,c.value=null,r("change",null),W(null,null)),we(null),he(null),v.value="",ue(),e.nextTick(()=>{C.value?.focus()})},Te=H=>{a.value&&(S.value=S.value.filter(re=>re?.toString()!==H?.toString()),c.value=[...S.value],r("change",c.value),W(null),e.nextTick(()=>C.value?.focus()))},W=(H,re)=>{const me=re??(a.value?[...S.value]:H?.id??null);r("value-selected",{name:n.name,value:me,option:H})},x=(H,re="manual")=>{a.value?(A(H.id)||(S.value=[...S.value,H.id],c.value=[...S.value],r("change",c.value),W(H)),v.value="",e.nextTick(()=>{C.value?.focus(),w.value=Math.min(w.value,P.value.length-1)}),we(null)):(f.value=H,c.value=H.id,r("change",c.value),W(H),v.value="",ue(),we(H),re==="parent-auto"&&he({source:re,parentField:n.parent??null,parentValue:$e.value??null}))},D=H=>{if(A(H.id)){a.value||ue();return}x(H)},R=(H,re)=>{if(!H||!re)return;const me=H.offsetTop,Ne=me+H.offsetHeight,ze=re.scrollTop,Je=ze+re.clientHeight;let je=re.scrollTop;me<ze?je=me-80:Ne>Je&&(je=Ne-re.clientHeight+4);const Qe=re;Qe.scrollTop=je},de=H=>{let re=H.parentElement;for(;re;){if(re.classList.contains("ui-dialog__content"))return re;const me=window.getComputedStyle(re),Ne=me.overflow+me.overflowY+me.overflowX;if(Ne.includes("auto")||Ne.includes("scroll")||re===document.body||re===document.documentElement)return re;re=re.parentElement}return document.body},_e=()=>{if(!d.value)return;const H=d.value.getBoundingClientRect(),re=window.innerHeight||document.documentElement.clientHeight,me=window.innerWidth||document.documentElement.clientWidth,Ne=8,ze=8,Je=n.maxHeight||300,je=re-H.bottom-ze-Ne,Qe=H.top-ze-Ne,xt=je>=Qe,pt=Math.max(me-Ne*2,0);let{width:vt}=H;pt>0&&vt>pt&&(vt=pt);let{left:mt}=H;mt+vt+Ne>me&&(mt=me-vt-Ne),mt=Math.max(mt,Ne);const zt=Math.min(Je,Math.max(xt?je:Qe,50));E.value={position:"fixed",left:`${mt}px`,width:`${vt}px`,maxHeight:`${zt}px`,transform:xt?"none":"translateY(-100%)",top:xt?`${H.bottom+ze}px`:`${H.top-ze}px`}},Oe=async H=>{l.value||!p.value&&(H.key==="ArrowDown"||H.key==="ArrowUp")&&(H.preventDefault(),await le())},Ie=H=>{if(!p.value)return;const{key:re}=H;if(re==="ArrowDown")H.preventDefault(),w.value+1<P.value.length&&(w.value+=1,R(b.value[w.value],h.value));else if(re==="ArrowUp")H.preventDefault(),w.value>0&&(w.value-=1,R(b.value[w.value],h.value));else if(re==="Enter"){H.preventDefault();const me=P.value[w.value];me&&x(me),C.value?.blur()}else re==="Escape"?(H.preventDefault(),ue()):re==="Backspace"?a.value&&v.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),c.value=[...S.value],r("change",c.value)):re==="Home"?(w.value=0,R(b.value[0],h.value)):re==="End"?(w.value=P.value.length-1,R(b.value[w.value],h.value)):re==="Tab"&&ue()},Ue=()=>{l.value||(m.value=!0)},We=()=>{m.value=!1,v.value=""},ut=H=>{H.key==="Escape"&&p.value&&ue()},Ke=H=>{const re=H.target;i.value?.contains(re)||y.value?.contains(re)||ue()},ct=H=>{p.value&&h.value&&!h.value.contains(H.target)&&_e()},Pt=()=>{p.value&&_e()},eo=()=>{p.value&&_e()};async function Qt(){if(a.value)Array.isArray(c.value)?S.value=[...c.value]:(S.value=c.value==null?[]:[c.value],c.value=[...S.value]),n.data&&S.value.length&&(await z(S.value),await e.nextTick());else{if(Array.isArray(c.value)){const H=c.value[0]??null;c.value=H??null}c.value!=null&&c.value!==""?f.value=await qe(c.value):f.value=null,we(f.value??null)}}e.watch(c,()=>{Qt()}),e.onMounted(async()=>{if(addEventListener("keydown",ut),addEventListener("scroll",ct,!0),addEventListener("resize",Pt),document.addEventListener("click",Ke,!0),d.value&&de(d.value).addEventListener("scroll",eo,!0),n.options?.length&&!n.data)be.value=[...n.options];else if(n.data){const H=await Se("");H&&ie(H)}await Qt(),Gt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",ut),removeEventListener("scroll",ct,!0),removeEventListener("resize",Pt),document.removeEventListener("click",Ke,!0),d.value&&de(d.value).removeEventListener("scroll",eo,!0)});const{isOpenAdd:$t,addData:Rt,addSchema:K,addForm:fe,addTitle:nt,addOption:At,onAddValue:wt}=xr({props:n,fetchOptionByValue:Fe,optionsList:be,selectedOption:f,modelValue:c});function Ge(H,re=200){let me;return(...Ne)=>{me&&clearTimeout(me),me=window.setTimeout(()=>H(...Ne),re)}}const en=Ge(async H=>{const re=await Se(H);re&&ie(re)},200);e.watch(v,H=>{n.data&&en(H.trim())}),e.watch(()=>n.options,H=>{!n.data&&H?.length&&(be.value=[...H],Qt())},{immediate:!0});const Gt=e.ref(!0);return e.watch($e,async()=>{if(n.data&&(Gt.value||(a.value?(S.value=[],c.value=[],r("change",[])):(f.value=null,c.value=null,r("change",null))),await Le(),n.auto===1&&$e.value&&be.value.length>0)){const H=be.value[0];H&&x(H,"parent-auto")}}),(H,re)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:e.unref($t),"onUpdate:visible":re[2]||(re[2]=me=>e.isRef($t)?$t.value=me:null),class:"z-[1000]",title:e.unref(nt),teleport:H.teleport},{footer:e.withCtx(({handleClose:me})=>[e.createElementVNode("div",Qc,[e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 hover:bg-gray-50",onClick:me}," Скасувати ",8,ed),e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700",onClick:re[1]||(re[1]=(...Ne)=>e.unref(At)&&e.unref(At)(...Ne))}," Додати ")])]),default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(K),modelValue:e.unref(Rt),"onUpdate:modelValue":re[0]||(re[0]=me=>e.isRef(Rt)?Rt.value=me:null),ref_key:"addForm",ref:fe},null,8,["schema","modelValue"])]),_:1},8,["visible","title","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:i,onClick:re[5]||(re[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[re[6]||(re[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),re[7]||(re[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(Kc,{keyWord:v.value,"onUpdate:keyWord":re[3]||(re[3]=me=>v.value=me),disabled:l.value,"is-open":p.value,"input-focus":m.value,"is-multi":a.value,"selected-options":_.value,"selected-ids":S.value,placeholder:T.value,search:s.value,"option-template":I.value,"icon-wrapper-class":vr,"selected-option-label":j.value,"selected-option":f.value,"show-clear":oe.value,"set-trigger-ref":V,"set-input-ref":$,"should-show-color-dot":N,"option-has-icon":ae,"get-icon-color-style":Q,"resolve-option-icon":M,"render-template":J,"get-label":te,"on-control-keydown":Oe,"on-control-click":Ae,"on-input-focus":Ue,"on-input-blur":We,"on-input-keydown":Ie,"on-remove-selected":Te,"on-clear-selected":De,"on-toggle-select":ke},null,8,["keyWord","disabled","is-open","input-focus","is-multi","selected-options","selected-ids","placeholder","search","option-template","selected-option-label","selected-option","show-clear"]),e.createVNode(Jc,{"is-open":p.value,"dropdown-style":E.value,"filtered-options-list":P.value,"selected-nav-index":w.value,"option-template":I.value,"icon-wrapper-class":vr,"set-dropdown-ref":U,"set-list-ref":Z,"set-item-ref":O,"is-selected":A,"on-option-click":D,"should-show-color-dot":N,"option-has-icon":ae,"get-icon-color-style":Q,"resolve-option-icon":M,"render-template":J},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:re[4]||(re[4]=(...me)=>e.unref(wt)&&e.unref(wt)(...me)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:l.value,type:"button"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),re[8]||(re[8]=e.createElementVNode("span",null,"Додати",-1))],8,td)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-49a64961"]]),wo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,od=["disabled","aria-expanded"],rd={class:"truncate"},ld={class:"py-2 px-4"},ad={class:"block font-medium text-[13px] text-foreground"},sd={class:"truncate"},id={class:"p-1 border-t border-gray-200"},cd={class:"space-y-0.5 max-h-48 overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-none [&::-webkit-scrollbar-track]:bg-scrollbar-track [&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"},dd=["onClick"],ud=["checked"],pd={class:"shrink-0 size-3.5 flex justify-center items-center"},md={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},fd={class:"truncate"},hd={key:0,class:"px-3 py-2 text-xs text-stone-500"},In=e.defineComponent({__name:"vs-input-inline-select",props:{multiple:{type:Boolean},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t;et(n.style);const a=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:ee=>r("update:modelValue",ee)});a.value==null&&n.defaultValue!=null&&(a.value=n.defaultValue);const l=e.inject("values"),s=e.inject("field-props"),c=e.computed(()=>!!n.disabled),i=e.ref(null),d=e.ref(!1),h=e.ref(null),y=e.ref(null),p=e.ref(null),m=e.ref({}),f=`vs-input-inline-select-${wo()}`,w=e.computed(()=>n.placeholder||"Оберіть значення"),b=e.computed(()=>U(i.value)||n.placeholder||"Оберіть значення"),v=e.computed(()=>n.slot??""),C=e.computed(()=>Cn(v.value)),V=e.computed(()=>n.teleport||"body"),$=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,U=ee=>Sn(ee,v.value),Z=ee=>!!(!C.value&&Dt(ee)),O=e.computed(()=>{const ee=Dt(i.value).trim();return ee?$.test(ee)?`bg-[${ee}] border-[${ee}]`:`bg-${ee.toLowerCase()}-500 border-${ee.toLowerCase()}-500`:""}),{optionsList:E,parentValue:S,fetchOptions:_,fetchOptionByValue:T,loadOptions:j}=Bn({props:n,formValues:l,watchParent:!1}),oe=(ee,he,we)=>{if(!s)return!1;const be=s.value?.[ee]??{},$e=(Fe,Re,se)=>{if(!Re.length)return Fe;const[ie,...ve]=Re,Se={...Fe};if(!ve.length)return Se[ie]=se,Se;const Le=typeof Fe[ie]=="object"&&Fe[ie]!==null?Fe[ie]:{};return Se[ie]=$e(Le,ve,se),Se},Me=$e(be,he,we);return s.value={...s.value||{},[ee]:Me},!0},A=ee=>{if(!n.set)return;const he=l?.value;!he&&!s||Object.entries(n.set).forEach(([we,be])=>{if(!we)return;const $e=ee?ee[be]:null,Me=we.split(".").map(se=>se.trim()).filter(Boolean);if(!Me.length)return;const[Fe,...Re]=Me;Re.length&&oe(Fe,Re,$e??null)||he&&(he[Fe]=$e??null)})},P=ee=>a.value?.toString?.()===ee?.toString?.(),Y=()=>{if(!y.value||typeof window>"u")return;const ee=y.value.getBoundingClientRect(),he=8,we=8,be=window.innerHeight||document.documentElement.clientHeight,$e=window.innerWidth||document.documentElement.clientWidth,Me=p.value?.offsetHeight||260,Fe=Math.max(ee.width,176),Re=Math.max($e-he*2,120),se=Math.min(Fe,Re);let ie=ee.left;ie+se+he>$e&&(ie=$e-se-he),ie=Math.max(ie,he);const ve=be-ee.bottom-we-he,Se=ee.top-we-he,Le=ve<Math.min(Me,260)&&Se>ve,qe=Math.max(120,Math.min(320,Le?Se:ve));m.value={position:"fixed",left:`${ie}px`,top:Le?`${ee.top-we}px`:`${ee.bottom+we}px`,transform:Le?"translateY(-100%)":"none",width:`${se}px`,maxHeight:`${qe}px`}},q=async()=>{if(n.data){E.value=await _("");return}await j()},I=async()=>{if(a.value==null||a.value===""){i.value=null,A(null);return}const ee=E.value.find(he=>he.id?.toString()===String(a.value));if(ee){i.value=ee,A(ee);return}i.value=await T(a.value),A(i.value??null)},J=async()=>{c.value||(d.value=!0,await e.nextTick(),Y(),await q(),await e.nextTick(),Y())},te=()=>{d.value=!1},L=async()=>{if(d.value){te();return}await J()},M=ee=>{r("value-selected",{name:n.name,value:ee?.id??null,option:ee})},N=ee=>{i.value=ee,a.value=ee.id,r("change",ee.id),M(ee),A(ee),te()},Q=ee=>{const he=ee.target;h.value?.contains(he)||p.value?.contains(he)||te()},ae=()=>{d.value&&Y()};return e.watch(()=>n.options,ee=>{n.data||(E.value=ee?[...ee]:[],I())},{immediate:!0,deep:!0}),e.watch(a,()=>{I()}),e.watch(S,async()=>{n.data&&(await q(),i.value&&!E.value.some(ee=>ee.id?.toString()===i.value?.id?.toString())&&(i.value=null,a.value=null,r("change",null),M(null),A(null)))}),e.onMounted(async()=>{document.addEventListener("click",Q,!0),window.addEventListener("resize",ae),window.addEventListener("scroll",ae,!0),await q(),await I()}),e.onUnmounted(()=>{document.removeEventListener("click",Q,!0),window.removeEventListener("resize",ae),window.removeEventListener("scroll",ae,!0)}),(ee,he)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:h,onClick:he[0]||(he[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:y,type:"button",disabled:c.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:e.normalizeClass(["py-1.5 px-2.5 inline-flex items-center gap-2 text-nowrap text-xs sm:text-[13px] rounded-lg focus:outline-hidden disabled:opacity-50 disabled:pointer-events-none max-w-full border",O.value?`${O.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:L},[e.createElementVNode("span",rd,e.toDisplayString(b.value),1)],10,od),(e.openBlock(),e.createBlock(e.Teleport,{to:V.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:p,class:"z-[3000] w-44 transition-[opacity,margin] duration-150 bg-white text-gray-900 border border-gray-200 rounded-xl shadow-lg",style:e.normalizeStyle(m.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",ld,[e.createElementVNode("span",ad,[e.createElementVNode("span",sd,e.toDisplayString(w.value),1)])]),e.createElementVNode("div",id,[e.createElementVNode("div",cd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),we=>(e.openBlock(),e.createElementBlock("label",{key:we.id,class:"py-1.5 px-3 group flex items-center gap-x-3 rounded-lg cursor-pointer text-[13px] text-gray-800 hover:bg-gray-100",onClick:e.withModifiers(be=>N(we),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:f,checked:P(we.id),tabindex:"-1"},null,8,ud),e.createElementVNode("span",pd,[Z(we)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:we.color})},null,4)):(e.openBlock(),e.createElementBlock("span",md))]),e.createElementVNode("span",fd,e.toDisplayString(U(we)),1),e.createVNode(e.unref(X.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",P(we.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,dd))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",hd,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),gd=["placeholder","disabled"],_r=e.defineComponent({__name:"vs-input-textarea",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value,disabled:a.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,gd)),[[e.vModelText,r.value]])}}),Cr=e.defineComponent({__name:"vs-input-richtext",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},format:{default:"html"},richtextProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>j0)),n=o,r=e.useModel(o,"modelValue"),a=e.computed(()=>!!n.disabled),l=e.computed(()=>n.placeholder??""),s=e.computed(()=>({height:n.richtextProps.height||"300px",format:n.format,...n.richtextProps}));return(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full overflow-hidden rounded-md border border-solid border-stone-200 disabled:opacity-50 disabled:cursor-not-allowed",c.customClass]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value},s.value),null,16,["modelValue","placeholder"])],6))}}),yd={},bd={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function kd(o,t){return e.openBlock(),e.createElementBlock("svg",bd,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 wd=Be(yd,[["render",kd]]),xd={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},vd={key:0,class:"flex flex-col gap-2 !p-4 border-b border-gray-200 md:flex-row md:items-center md:justify-between bg-gray-50"},_d={key:0,class:"relative flex-1 min-w-0"},Cd={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},Ed={class:"w-full overflow-x-auto"},Bd={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Vd={class:"bg-gray-50"},Sd={class:"border-b border-gray-200"},$d={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Ad=["onClick"],Nd={key:0,class:"text-gray-400"},Md={key:0,colspan:"100%",class:"text-center"},Fd={class:"w-full"},Dd={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Td=["data-row-index","onDragstart","onDragover","onDrop"],Ld=["onPointerdown"],Id={class:"flex items-center justify-center"},Od=["innerHTML"],Pd={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Rd={key:0},zd=["src"],jd={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Ud={key:1,class:"flex items-center justify-center"},Hd={key:2,class:"text-sm font-medium text-gray-900"},qd={class:"px-4 py-3 text-right whitespace-nowrap"},Wd={class:"flex items-center justify-end gap-2"},Kd=["onClick"],Gd=["onClick"],Yd={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},Er=e.defineComponent({__name:"vs-input-datatable",props:e.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useSlots(),r=z=>t.actions===void 0?!0:t.actions.includes(z),a=["search","import","export","add"],l=e.computed(()=>a.some(z=>r(z))),s=e.useModel(o,"modelValue"),c=e.ref({}),i=e.ref(""),d=e.ref(null),h=e.ref("asc"),y=e.computed(()=>{const z=s.value??[],ne=i.value?z.filter(ke=>p.value?.some(Ae=>{const De=Ae.key||Ae.name;if(!De)return!1;const Te=ke[De];return Te?Array.isArray(Te)?Te.join(", ").toLowerCase().includes(i.value.toLowerCase()):String(Te).toLowerCase().includes(i.value.toLowerCase()):!1})):z;if(!d.value)return ne;const le=d.value,ue=[...ne].sort((ke,Ae)=>{const De=$e(ke?.[le]),Te=$e(Ae?.[le]);return typeof De=="number"&&typeof Te=="number"?De-Te:String(De).localeCompare(String(Te))});return h.value==="asc"?ue:ue.reverse()}),p=e.computed(()=>(t.colModel??[]).filter(z=>!z.tableHidden)),m=e.ref(null),f=e.ref(null),w=e.ref(null);function b(z){return z.pointerType==="touch"||z.pointerType==="pen"}function v(z,ne){const ue=document.elementFromPoint(z,ne)?.closest?.("[data-row-index]")??null;if(!ue)return null;const ke=ue.getAttribute("data-row-index");if(ke==null)return null;const Ae=Number.parseInt(ke,10);return Number.isNaN(Ae)?null:Ae}function C(z,ne){b(z)&&(z.preventDefault(),z.currentTarget.setPointerCapture(z.pointerId),m.value=ne,f.value=ne)}function V(z){if(m.value===null||!b(z))return;z.preventDefault();const ne=v(z.clientX,z.clientY);ne!==null&&(f.value=ne)}function $(z){if(m.value===null||!b(z))return;z.preventDefault();const ne=v(z.clientX,z.clientY);E(ne??m.value);try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}function U(z){if(b(z)){m.value=null,f.value=null;try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}}const Z=z=>{m.value=z},O=z=>{f.value=z},E=z=>{if(m.value===null||m.value===z){m.value=null,f.value=null;return}const ne=[...s.value],[le]=ne.splice(m.value,1);ne.splice(z,0,le),s.value=ne,m.value=null,f.value=null},S=()=>{w.value&&w.value.click()},_=z=>{const ne=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],le=z.toLowerCase();return ne.some(ue=>le.endsWith(ue))},T=z=>{const le=z.target.files?.[0];if(!le)return;const ue=new FileReader;ue.onload=ke=>{try{const Ae=ke.target?.result;if(typeof Ae=="string"){const De=JSON.parse(Ae);Array.isArray(De)&&s.value.push(...De)}}catch(Ae){console.error("Error parsing file:",Ae)}},ue.readAsText(le)},j=()=>{const z=JSON.stringify(s.value,null,2),ne=new Blob([z],{type:"application/json"}),le=URL.createObjectURL(ne),ue=document.createElement("a");ue.href=le,ue.download="data.json",ue.click(),URL.revokeObjectURL(le)},oe=new Set(["autocomplete","select","radio","checkbox","combobox"]),A=new Map,P=(z,ne)=>{const le=`/api/suggest/${z}`,ue=le.includes("?")?"&":"?",ke=ne?`&val=${ne}`:"";return`${le}${ue}json=1${ke}`},Y=z=>z==null||z===""?null:typeof z=="object"?z?.id!==void 0&&z.id!==null&&z.id!==""?z.id:null:z,q=z=>{const ne=new Set;return Array.isArray(s.value)&&s.value.forEach(le=>{const ue=le?.[z];if(ue==null||ue==="")return;if(Array.isArray(ue)){ue.forEach(Ae=>{const De=Y(Ae);De!==null&&ne.add(De)});return}const ke=Y(ue);ke!==null&&ne.add(ke)}),ne},I=async()=>{if(!t.colModel?.length)return;const z=t.colModel.filter(ne=>ne.data&&oe.has(ne.type?.toLowerCase()||""));z.length&&await Promise.all(z.map(async ne=>{const le=ne.key||ne.name;if(!le)return;const ue=q(le),ke=Array.from(ue).map(Te=>String(Te)).sort(),Ae=ke.join(",");if(!ke.length||A.get(le)===Ae)return;A.set(le,Ae);const De=ke.map(encodeURIComponent).join(",");try{const W=await(await fetch(P(ne.data,De))).json();c.value[le]=W?.data??W}catch(Te){console.error("Failed to fetch column values",Te)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{I()},{immediate:!0,deep:!0});const J=e.ref(""),te=e.ref(!1);let L="edit",M=0;const N=z=>(z?.format||z?.type||"").toString().toLowerCase(),Q=e.computed(()=>(t.colModel?.filter(ne=>N(ne)!=="slot")??[]).map(ne=>{const le=ne.key||ne.name;return le?{...ne,name:le,key:le}:ne})),ae=e.ref({}),ee=e.ref({}),he=z=>typeof z!="string"?!1:!!n[z],we=(z,ne)=>ne?ne.split(".").reduce((le,ue)=>le==null?le:le[ue.trim()],z):z,be=(z,ne)=>typeof z!="string"?"":z.replace(/{{\s*([^}]+)\s*}}/g,(le,ue)=>{const ke=we(ne,ue.trim());return ke??""}),$e=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(ne=>$e(ne)).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()},Me=z=>{const ne=z.key||z.name;if(ne){if(d.value===ne){h.value=h.value==="asc"?"desc":"asc";return}d.value=ne,h.value="asc"}};async function Fe(){J.value="Додати",te.value=!0,L="add",ae.value={}}function Re(z,ne){if(!z?.length)return null;const le=typeof ne=="object"?ne?.id:ne;return le==null||le===""?null:z.find(ue=>ue?.id?.toString()===le.toString())?.text??null}function se(z){return z==null||z===""?"-":Array.isArray(z)?z.map(ne=>typeof ne=="object"?ne?.text??ne?.id??"-":ne).join(", "):typeof z=="object"?z?.text??z?.id??"-":z}function ie(z,ne){const le=ne.key||ne.name,ue=z?.[le],ke=c.value[le];if(!ue)return"-";if(Array.isArray(ue)){const De=ue.map(Te=>Re(ke,Te)).filter(Boolean);return De.length?De.join(", "):se(ue)}const Ae=Re(ke,ue);return Ae||se(ue)}async function ve(z,ne){J.value="Редагувати",te.value=!0,L="edit",M=ne,ae.value={...z}}function Se(){const z=ee.value.validate();if(z){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(z).map(([ne,le])=>`${ne}: ${le}`).join(`
|
|
2
|
-
`)});return}L==="add"?Array.isArray(s.value)?s.value=[...s.value,ae.value]:s.value=[ae.value]:s.value=s.value.map((ne,le)=>le===M?ae.value:ne),te.value=!1}function Le(z){s.value=s.value.filter((ne,le)=>le!==z)}function qe(){te.value=!1}return(z,ne)=>(e.openBlock(),e.createElementBlock("div",xd,[l.value?(e.openBlock(),e.createElementBlock("div",vd,[r("search")?(e.openBlock(),e.createElementBlock("div",_d,[e.createVNode(e.unref(X.Search),{class:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"}),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":ne[0]||(ne[0]=le=>i.value=le),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",Cd,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:w,onChange:T,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),r("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:S,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4 text-gray-700"}),ne[4]||(ne[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),r("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:j,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(X.Download),{class:"h-4 w-4 text-gray-700"}),ne[5]||(ne[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),r("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:Fe,type:"button",class:"inline-flex items-center gap-2 rounded-md bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-600 transition-colors"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4 text-white"}),ne[6]||(ne[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ed,[e.createElementVNode("table",Bd,[e.createElementVNode("thead",Vd,[e.createElementVNode("tr",Sd,[e.createElementVNode("th",$d,[e.createVNode(e.unref(X.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,le=>(e.openBlock(),e.createElementBlock("th",{key:le.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:ue=>Me(le),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(le.ua||le.label),1),d.value===(le.key||le.name)?(e.openBlock(),e.createElementBlock("span",Nd,e.toDisplayString(h.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,Ad)]))),128)),ne[7]||(ne[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":!f.value}])},[y.value.length===0?(e.openBlock(),e.createElementBlock("td",Md,[e.createElementVNode("div",Fd,[e.createElementVNode("div",Dd,[e.createVNode(wd,{class:"w-48 mx-auto"}),ne[8]||(ne[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(y.value,(le,ue)=>(e.openBlock(),e.createElementBlock("tr",{key:le.id,"data-row-index":ue,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":m.value===ue,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":f.value===ue}]),draggable:"true",onDragstart:ke=>Z(ue),onDragover:e.withModifiers(ke=>O(ue),["prevent"]),onDrop:ke=>E(ue)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:ke=>C(ke,ue),onPointermove:V,onPointerup:$,onPointercancel:U},[e.createElementVNode("div",Id,[e.createVNode(e.unref(X.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,Ld),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,ke=>(e.openBlock(),e.createElementBlock("td",{key:ke.key,class:"px-4 py-3 align-middle"},[N(ke)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[he(ke.slot)?e.renderSlot(z.$slots,ke.slot,{key:0,row:le,value:le[ke.key],column:ke}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:be(ke.slot,le)},null,8,Od))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[N(ke)==="file"?(e.openBlock(),e.createElementBlock("div",Pd,[_(ie(le,ke))?(e.openBlock(),e.createElementBlock("div",Rd,[e.createElementVNode("img",{src:`/file/resize?filepath=${ie(le,ke)}&format=webp`,alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,zd)])):(e.openBlock(),e.createElementBlock("div",jd,[e.createVNode(e.unref(X.FileText),{class:"h-4 w-4 min-w-4"})]))])):N(ke)==="color"?(e.openBlock(),e.createElementBlock("div",Ud,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:ie(le,ke)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Hd,e.toDisplayString(ie(le,ke)),1))],64))]))),128)),e.createElementVNode("td",qd,[e.createElementVNode("div",Wd,[e.createElementVNode("button",{onClick:ke=>ve(le,ue),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(X.Pencil),{class:"h-4 w-4"})],8,Kd),e.createElementVNode("button",{onClick:ke=>Le(ue),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,Gd)])])],42,Td))),128))],2)])]),e.createVNode(e.unref(ge.VsModal),{visible:te.value,title:J.value,size:"lg",onClose:qe,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(rt,{schema:Q.value,"allow-id-field":"",values:ae.value,"onUpdate:values":ne[1]||(ne[1]=le=>ae.value=le),form:ee.value,"onUpdate:form":ne[2]||(ne[2]=le=>ee.value=le)},null,8,["schema","values","form"]),e.createElementVNode("div",Yd,[e.createElementVNode("button",{type:"button",onClick:ne[3]||(ne[3]=le=>te.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"])]))}}),Xd={},Zd={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 Jd(o,t){return e.openBlock(),e.createElementBlock("svg",Zd,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M18 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M7.5 16.5l9 -9"},null,-1)]))}const Qd=Be(Xd,[["render",Jd]]),eu={},tu={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 nu(o,t){return e.openBlock(),e.createElementBlock("svg",tu,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 ou=Be(eu,[["render",nu]]),ru={},lu={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 au(o,t){return e.openBlock(),e.createElementBlock("svg",lu,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 su=Be(ru,[["render",au]]);function iu(o,t,n){const r=Math.max(0,Math.min(22,Math.floor(n))),a=2**r,l=Math.floor((o+180)/360*a),s=t*Math.PI/180,c=Math.floor((1-Math.log(Math.tan(s)+1/Math.cos(s))/Math.PI)/2*a);return{z:r,x:l,y:c}}function cu(o,t){if(typeof o!="string"||!o.trim()||!/\{z\}/i.test(o))return;const n={"{z}":t.z,"{x}":t.x,"{y}":t.y,"{-y}":2**t.z-t.y-1,"{s}":"a"};let r=o;return Object.entries(n).forEach(([a,l])=>{r=r.replace(new RegExp(a.replace(/[{}-]/g,"\\$&"),"gi"),String(l))}),r}const Br=/\/(\d+)\/(\d+)\/(\d+)(\.(?:png|jpe?g|webp))(?:\?.*)?$/i;function Vr(o,t){if(typeof o!="string"||!o.trim()||!Br.test(o))return;const n=o.replace(Br,`/${t.z}/${t.x}/${t.y}$4`);return n!==o?n:void 0}function du(o,t){if(o?.url){const n=cu(o.url,t);if(n)return n;const r=Vr(o.url,t);if(r)return r}if(o?.preview){const n=Vr(o.preview,t);return n||o.preview}}const uu=["title","aria-expanded"],pu=["src"],mu={class:"map-layers__header"},fu={class:"map-layers__body"},hu={key:0,class:"map-layers__section"},gu={class:"map-layers__grid map-layers__grid--4"},yu=["disabled","title","onClick"],bu={class:"map-layers__thumb"},ku=["src"],wu={class:"map-layers__option-label"},xu={key:1,class:"map-layers__section"},vu={class:"map-layers__grid map-layers__grid--4"},_u=["title","onClick"],Cu={class:"map-layers__thumb"},Eu=["src"],Bu={class:"map-layers__option-label"},Vu={key:2,class:"map-layers__section map-layers__section--vector"},Su={class:"map-layers__vector-list"},$u=["checked","disabled","onChange"],On=.8,Au=Be(e.defineComponent({__name:"map-layers",props:{basemaps:{},activeBaseKey:{},tileOverlays:{},activeTileOverlayKeys:{},vectorOverlays:{},previewTile:{},disabled:{type:Boolean},compact:{type:Boolean}},emits:["onLayerChange","onOverlayToggle","onVectorOverlayToggle"],setup(o,{emit:t}){const n=o,r=t,a=10*On,l=400*On,s=400*On,c=320*On,i=e.ref(null),d=e.ref(null),h=e.ref(null),y=e.ref(!1),p=e.ref({}),m=e.computed(()=>Object.keys(n.basemaps||{}).length>0),f=e.computed(()=>Object.keys(n.tileOverlays||{}).length>0),w=e.computed(()=>n.vectorOverlays??[]),b=e.computed(()=>w.value.length>0),v=e.computed(()=>m.value||f.value||b.value),C=e.computed(()=>n.basemaps?.[n.activeBaseKey]?.name||n.activeBaseKey||"Шари"),V=e.computed(()=>U(n.basemaps)),$=e.computed(()=>U(n.tileOverlays||{}));function U(I){const J=n.previewTile;return J?Object.fromEntries(Object.entries(I).map(([te,L])=>[String(te),du(L,J)??L.preview??""])):{}}function Z(I){return V.value[I]||n.basemaps?.[I]?.preview||""}function O(I){return $.value[I]||n.tileOverlays?.[I]?.preview||""}const E=e.computed(()=>Z(n.activeBaseKey));function S(I){return Array.isArray(n.activeTileOverlayKeys)&&n.activeTileOverlayKeys.includes(I)}function _(){const I=d.value;if(!I)return;const J=I.getBoundingClientRect(),te=Math.min(l,window.innerWidth-16);let L=J.left;L+te>window.innerWidth-8&&(L=window.innerWidth-te-8),L=Math.max(8,L);const M=J.top-a-8,N=n.compact?c:s,Q=Math.min(N,Math.max(96,M));p.value={position:"fixed",left:`${L}px`,bottom:`${window.innerHeight-J.top+a}px`,width:`${te}px`,maxHeight:`${Q}px`,zIndex:"10050"}}async function T(){y.value=!y.value,y.value&&(await e.nextTick(),_())}function j(){y.value=!1}function oe(I){I!==n.activeBaseKey&&r("onLayerChange",I)}function A(I){n.disabled||r("onOverlayToggle",I)}function P(I){n.disabled||r("onVectorOverlayToggle",I)}function Y(I){if(!y.value)return;const J=I.target;i.value?.contains(J)||h.value?.contains(J)||j()}function q(I){I.key==="Escape"&&j()}return e.watch(y,async I=>{I&&(await e.nextTick(),_())}),e.onMounted(()=>{document.addEventListener("click",Y),document.addEventListener("keydown",q),window.addEventListener("resize",_),window.addEventListener("scroll",_,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",Y),document.removeEventListener("keydown",q),window.removeEventListener("resize",_),window.removeEventListener("scroll",_,!0)}),(I,J)=>v.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"rootRef",ref:i,class:e.normalizeClass(["map-layers relative",{"map-layers--compact":I.compact}])},[e.createElementVNode("button",{ref_key:"triggerRef",ref:d,type:"button",class:"map-layers__trigger",title:C.value,"aria-haspopup":"dialog","aria-expanded":y.value,onClick:e.withModifiers(T,["stop"])},[E.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:E.value,alt:"",class:"map-layers__trigger-img"},null,8,pu)):e.createCommentVNode("",!0)],8,uu),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"map-layers-panel"},{default:e.withCtx(()=>[y.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panelRef",ref:h,class:"map-layers__panel",style:e.normalizeStyle(p.value),role:"dialog","aria-label":"Шари карти"},[e.createElementVNode("header",mu,[J[0]||(J[0]=e.createElementVNode("h3",{class:"map-layers__title"},"Шари карти",-1)),e.createElementVNode("button",{type:"button",class:"map-layers__close","aria-label":"Закрити",onClick:j},[e.createVNode(e.unref(X.X),{class:"map-layers__close-icon"})])]),e.createElementVNode("div",fu,[f.value?(e.openBlock(),e.createElementBlock("section",hu,[J[1]||(J[1]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Додаткові шари",-1)),e.createElementVNode("div",gu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.tileOverlays,(te,L)=>(e.openBlock(),e.createElementBlock("button",{key:`tile-${L}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":S(String(L))}]),disabled:I.disabled,title:te.name||String(L),onClick:M=>A(String(L))},[e.createElementVNode("span",bu,[e.createElementVNode("img",{src:O(String(L)),alt:""},null,8,ku)]),e.createElementVNode("span",wu,e.toDisplayString(te.name||L),1)],10,yu))),128))])])):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("section",xu,[J[2]||(J[2]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Базові шари",-1)),e.createElementVNode("div",vu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.basemaps,(te,L)=>(e.openBlock(),e.createElementBlock("button",{key:`base-${L}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":I.activeBaseKey===String(L)}]),title:te.name||String(L),onClick:M=>oe(String(L))},[e.createElementVNode("span",Cu,[e.createElementVNode("img",{src:Z(String(L)),alt:""},null,8,Eu)]),e.createElementVNode("span",Bu,e.toDisplayString(te.name||L),1)],10,_u))),128))])])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("section",Vu,[J[3]||(J[3]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Дані",-1)),e.createElementVNode("div",Su,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,te=>(e.openBlock(),e.createElementBlock("label",{key:te.id,class:"map-layers__vector-item"},[e.createElementVNode("input",{type:"checkbox",class:"map-layers__checkbox",checked:te.visible,disabled:I.disabled,onChange:L=>P(te.id)},null,40,$u),e.createElementVNode("span",null,e.toDisplayString(te.label),1)]))),128))])])):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))],2)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-c1206d48"]]),Ht=1e-10,Pn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,Nu=/^[+-]?\d+(?:\.\d+)?$/;function Mu(o,t,n){const r=o.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(r.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(r.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const a=[],l=[];if(r.forEach((d,h)=>{const y=h+1,p=t==="decimal"?Fu(d,y,n):$r(d,y,n);if(!p.ok){a.push(...p.errors);return}const m=l[l.length-1];if(m&&Nr(m,p.point)){a.push({line:y,message:"Послідовні точки не повинні дублюватися."});return}l.push(p.point)}),a.length)return{ok:!1,errors:a};if(new Set(l.map(Tu)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const c=[...l];let i=!1;return Nr(c[0],c[c.length-1])||(c.push(c[0]),i=!0),Lu(c)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:c,wasClosedAutomatically:i}}function Fu(o,t,n){return Sr(o,"decimal",n,t)}function Sr(o,t,n,r=1){return t==="decimal"?Du(o,r,n):$r(o,r,n)}function Du(o,t,n){const r=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(o))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const a=o.split(/[\s,;]+/).filter(Boolean);if(a.length<2)return{ok:!1,errors:[{line:t,message:"Кожен рядок має містити дві координати."}]};if(a.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(!a.every(d=>Nu.test(d)))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const l=Number(a[0]),s=Number(a[1]);if(!Number.isFinite(l)||!Number.isFinite(s))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const c=n==="lat-lon"?l:s,i=n==="lat-lon"?s:l;return(c<-90||c>90)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(i<-180||i>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[i,c]}}function $r(o,t,n){Pn.lastIndex=0;const r=[...o.matchAll(Pn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Pn.lastIndex=0,o.replace(Pn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const l=Ar(r[0],t,n==="lat-lon"?"lat":"lon"),s=Ar(r[1],t,n==="lat-lon"?"lon":"lat"),c=[];if(l.ok||c.push(l.error),s.ok||c.push(s.error),c.length)return{ok:!1,errors:c};const i=n==="lat-lon"?l.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:l.value,i]}}function Ar(o,t,n){const r=Number(o[1]),a=Number(o[2]),l=Number(o[3]),s=String(o[4]).toUpperCase();if(!Number.isFinite(r)||!Number.isFinite(a)||!Number.isFinite(l))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(n==="lat"&&!(s==="N"||s==="S")||n==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:n==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(a<0||a>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(l<0||l>60)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..60."}};const d=Math.abs(r),h=n==="lat"?90:180;if(d>h)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===h&&(a!==0||l!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const y=d+a/60+l/3600;return{ok:!0,value:s==="S"||s==="W"?-y:y}}function Tu(o){return`${o[0].toFixed(12)}:${o[1].toFixed(12)}`}function Nr(o,t){return Math.abs(o[0]-t[0])<Ht&&Math.abs(o[1]-t[1])<Ht}function Lu(o){if(o.length<4)return!1;for(let t=0;t<o.length-1;t+=1){const n=o[t],r=o[t+1];for(let a=t+1;a<o.length-1;a+=1){if(Math.abs(t-a)<=1||t===0&&a===o.length-2)continue;const l=o[a],s=o[a+1];if(Iu(n,r,l,s))return!0}}return!1}function Iu(o,t,n,r){const a=Rn(o,t,n),l=Rn(o,t,r),s=Rn(n,r,o),c=Rn(n,r,t);return!!(a!==l&&s!==c||a===0&&zn(o,n,t)||l===0&&zn(o,r,t)||s===0&&zn(n,o,r)||c===0&&zn(n,t,r))}function Rn(o,t,n){const r=(t[1]-o[1])*(n[0]-t[0])-(t[0]-o[0])*(n[1]-t[1]);return Math.abs(r)<Ht?0:r>0?1:2}function zn(o,t,n){return t[0]<=Math.max(o[0],n[0])+Ht&&t[0]+Ht>=Math.min(o[0],n[0])&&t[1]<=Math.max(o[1],n[1])+Ht&&t[1]+Ht>=Math.min(o[1],n[1])}const Ou=["title"],Pu={key:0,class:"vs-select__options absolute z-50 mt-1 w-auto min-w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm text-gray-900"},Ru=["onClick"],zu=["placeholder"],ju={class:"absolute inset-y-0 right-2 flex items-center gap-1"},Uu={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},Hu={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},qu={class:"max-h-[260px] overflow-auto"},Wu={key:0,class:"divide-y divide-gray-100"},Ku=["onClick"],Gu={key:1,class:"px-3 py-3 text-xs text-gray-500"},Mr="formMapSearchAddressHistory",Yu=12,Xu="https://geo.rv.ua/api-user/dzk.api",Zu="https://nominatim.openstreetmap.org/search",Ju=Be(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(o,{emit:t}){const n={mounted(W,x){if(typeof document>"u")return;let D=null;const R=8,de=()=>{const Oe=String(x?.value??"");if(!Oe)return;D=document.createElement("div"),D.textContent=Oe,Object.assign(D.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(D);const Ie=W.getBoundingClientRect();D.style.left=`${Ie.right+window.scrollX+R}px`,D.style.top=`${Ie.top+window.scrollY+(Ie.height-D.offsetHeight)/2}px`},_e=()=>{D?.parentNode&&D.parentNode.removeChild(D),D=null};W.addEventListener("mouseenter",de),W.addEventListener("mouseleave",_e),Object.assign(W,{tooltipRightHandlers:{show:de,hide:_e}})},unmounted(W){if(typeof document>"u")return;const x=W.tooltipRightHandlers;x&&(W.removeEventListener("mouseenter",x.show),W.removeEventListener("mouseleave",x.hide))}},r=o,a=t,l=e.getCurrentInstance();function s(){return typeof globalThis<"u"&&globalThis.proxy?globalThis.proxy:typeof window<"u"&&window.proxy?window.proxy:null}function c(){const x=l?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(x)return Array.isArray(x)?x.join(","):String(x);const R=s()?.map?.searchViewbox;if(R)return Array.isArray(R)?R.join(","):String(R)}function i(){const x=l?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof x=="string"&&x.trim())return x.trim();const R=s()?.map?.addressSuggest;if(typeof R=="string"&&R.trim())return R.trim()}function d(){if(typeof r.config?.cadastreSuggest=="string"&&r.config.cadastreSuggest.trim())return r.config.cadastreSuggest.trim();const W=l?.appContext.config.globalProperties?.$settings,x=W?.map?.cadastreSuggest??W?.map?.parcelSuggest??W?.map?.parcelSearch;if(typeof x=="string"&&x.trim())return x.trim();const D=s(),R=D?.map?.cadastreSuggest??D?.map?.parcelSuggest??D?.map?.parcelSearch;if(typeof R=="string"&&R.trim())return R.trim()}const h=!!i(),y=!!c(),p=e.computed(()=>{const W=["nominatim","xy","parcel"];return h&&W.unshift("address"),y?W:W.filter(x=>x!=="nominatim")}),m=e.computed(()=>{const W=p.value,x=r.config?.tools?.filter(D=>W.includes(D));return x&&x.length?x:W}),f=e.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),w=e.ref(m.value[0]);e.watch(m,W=>{W.includes(w.value)||(w.value=W[0])});const b=e.ref(""),v=e.ref(!1),C=e.ref(null),V=e.ref(null),$=e.ref(null),U=e.ref(null),Z=e.ref([]),O=e.ref(null),E=e.ref(!1),S=e.ref([]),_=e.computed(()=>(w.value==="address"||w.value==="nominatim")&&E.value),T=e.computed(()=>r.config?.addressDebounceMs??1e3);let j=null;const oe=e.ref(!1),A=e.computed(()=>b.value.trim().length>0?Z.value:S.value),P=e.computed(()=>b.value.trim().length?`Знайдено ${Z.value.length}`:"Історія пошуку"),Y=e.computed(()=>b.value.trim().length?"Нічого не знайдено":"Історія порожня");function q(){if(typeof window>"u")return[];try{const W=window.localStorage?.getItem?.(Mr);if(!W)return[];const x=JSON.parse(W);return Array.isArray(x)?x:[]}catch{return[]}}function I(W){typeof window>"u"||window.localStorage?.setItem?.(Mr,JSON.stringify(W))}function J(W){const D=[W,...S.value.filter(R=>R.id!==W.id)].slice(0,10);S.value=D,I(D)}const te=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function L(){if(!U.value)return;const W=U.value.getBoundingClientRect(),x=$.value?.getBoundingClientRect(),D=x?.width??W.width,R=(x?.left??W.left)+window.scrollX,de=W.bottom+window.scrollY+Yu;te.left=`${R}px`,te.top=`${de}px`,te.width=`${D}px`,te.display="block"}const M=()=>{_.value&&L()};function N(){j&&(clearTimeout(j),j=null)}e.watch(w,()=>{b.value="",v.value=!1,Z.value=[],E.value=!1,N(),oe.value=!1}),e.watch(_,W=>{W?e.nextTick(()=>{L()}):te.display="none"}),e.watch(b,W=>{if(w.value!=="address"&&w.value!=="nominatim"){Z.value=[],N();return}if(!W.trim()){Z.value=[],E.value=S.value.length>0,N();return}N(),E.value=!0,j=window.setTimeout(()=>{le(W).catch(x=>{const D=x?.message||"Помилка пошуку адреси";ge.notify({type:"error",title:"Пошук адреси",message:D})})},T.value)});function Q(W){const x=[];V.value&&x.push(V.value),W instanceof HTMLElement&&x.push(W),C.value?.querySelectorAll("li")?.forEach(R=>{x.push(R)}),x.forEach(R=>{R.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function ae(W){v.value&&Q(W.target),v.value=!v.value}function ee(W,x){Q(x?.target),w.value=W}function he(){b.value="",Z.value=[],E.value=!1,oe.value=!1}function we(W){const x=W.target;if(v.value){const D=C.value;D&&!D.contains(x)&&(Q(x),v.value=!1)}if(_.value){const D=O.value,R=U.value;D&&!D.contains(x)&&(!R||!R.contains(x))&&(E.value=!1)}}e.onMounted(()=>{S.value=q(),window.addEventListener("click",we,!0),window.addEventListener("scroll",M,!0),window.addEventListener("resize",M)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",we,!0),window.removeEventListener("scroll",M,!0),window.removeEventListener("resize",M),N()});function be(W){return W==="xy"?"Координати":W==="parcel"?"Кадастр":W==="nominatim"?"Адреса":"Адресний"}function $e(W){switch(W){case"xy":return"Пошук за географічними координатами. Введіть широту і довготу через пробіл або кому (lat lng або lng lat).";case"parcel":return"Пошук земельної ділянки за кадастровим номером у форматі 0000000000:00:000:0000.";case"nominatim":return"Пошук адрес та обʼєктів через Nominatim.";case"address":return"Пошук адрес через локальний сервіс addressSuggest.";default:return""}}function Me(W){const x=Sr(W.trim(),"dms","lat-lon");if(x.ok){const[Ke,ct]=x.point;return{lat:ct,lng:Ke}}const D=W.replace(/[,]+/g," ").trim();if(!D)return null;const R=D.split(/\s+/).filter(Boolean);if(R.length<2)return null;const de=R.slice(0,2).map(Number);if(!de.every(Ke=>Number.isFinite(Ke)))return null;let[_e,Oe]=de,Ie=_e,Ue=Oe;const We=Ke=>Math.abs(Ke)<=90,ut=Ke=>Math.abs(Ke)<=180;if(!We(Ie)||!ut(Ue))if(We(Ue)&&ut(Ie))Ie=Oe,Ue=_e;else return null;return{lat:Ie,lng:Ue}}function Fe(W){const x=W?.result||W?.data||W;return(Array.isArray(x)?x:x?[x]:[]).map((R,de)=>{const _e=R?.geom_centroid,Oe=Array.isArray(_e?.coordinates)?_e.coordinates:null;if(!Oe||Oe.length<2)return null;const Ie=Number(Oe[0]),Ue=Number(Oe[1]);return!Number.isFinite(Ue)||!Number.isFinite(Ie)?null:{id:String(R?.parcel_id??R?.cad_num??de),title:R?.cadnum||R?.cad_num||"Земельна ділянка",lat:Ue,lng:Ie}}).filter(R=>!!R)}function Re(W){return(Array.isArray(W?.features)?W.features:[]).map((D,R)=>{const de=D?.geometry?.coordinates,_e=Number(de?.[0]),Oe=Number(de?.[1]);if(!Number.isFinite(Oe)||!Number.isFinite(_e))return null;const Ie=D?.properties||{},Ue=Ie?.geocoding?.label||Ie?.display_name||Ie?.label||"Адреса";return{id:String(Ie?.geocoding?.place_id||Ie?.place_id||R),title:Ue,lat:Oe,lng:_e}}).filter(D=>!!D)}function se(W){return Number.isFinite(W.lat)&&Number.isFinite(W.lng)}function ie(W){if(W==null||typeof W=="string"&&!W.trim())return null;const x=Number(W);return Number.isFinite(x)?x:null}function ve(W){const x=ie(W.lng)??ie(W.lon)??ie(W.longitude)??ie(W.x),D=ie(W.lat)??ie(W.latitude)??ie(W.y);if(x!=null&&D!=null)return{lat:D,lng:x};const R=W?.geometry?.coordinates??W?.geom_centroid?.coordinates??W?.centroid?.coordinates??W?.geojson?.geometry?.coordinates??W?.geom?.coordinates;if(Array.isArray(R)&&R.length>=2){const de=ie(R[0]),_e=ie(R[1]);if(de!=null&&_e!=null)return{lat:_e,lng:de}}return null}function Se(W){return(Array.isArray(W?.data)?W.data:[]).map((D,R)=>{const de=ve(D),_e=String(D.text??D.title??D.label??D.name??D.address??D.display_name??D.id??"Адреса"),Oe=String(D.id??D.code??D.value??R);return de?{id:Oe,title:_e,...de}:{id:Oe,title:_e}}).filter(D=>!!D?.title)}function Le(W){const x=d()||Xu;if(x.includes(":id"))return x.replace(":id",encodeURIComponent(W));if(x.includes(":name"))return x.replace(":name",encodeURIComponent(W));try{const D=new URL(x,window.location.origin),R=r.config?.parcelQueryParam?.trim()||"cad_num";return D.searchParams.set(R,W),D.toString()}catch{return x}}function qe(W){const x=i();if(!x)return null;if(x.includes(":name"))return x.replace(":name",encodeURIComponent(W));try{const D=new URL(x,window.location.origin);return W.trim()&&D.searchParams.set("q",W),D.toString()}catch{return x}}async function z(W){const x=qe(W);if(!x)return[];const D=await fetch(x);if(!D.ok)throw new Error(`HTTP ${D.status}`);const R=await D.json();return Se(R)}async function ne(W){const x=new URL(Zu);x.searchParams.set("format","geojson"),x.searchParams.set("q",W),x.searchParams.set("addressdetails","1"),x.searchParams.set("bounded","1");const D=c();D&&x.searchParams.set("viewbox",D);const R=await fetch(x.toString());if(!R.ok)throw new Error(`HTTP ${R.status}`);const de=await R.json();return Re(de)}async function le(W){if(Z.value=[],N(),w.value==="address"){if(!i()){ge.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const R=await z(W);if(!R.length){ge.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=R;return}const x=await ne(W);if(!x.length){ge.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=x}async function ue(W){if(se(W)){De(W),J(W);return}ge.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function ke(){w.value!=="address"&&w.value!=="nominatim"||(E.value=!0,e.nextTick(()=>{L()}))}function Ae(W){const D=W.replace(/\s+/g,"").split(":");if(D.length!==4)return!1;const R=[10,2,3,4];return D.every((de,_e)=>de.length===R[_e]&&/^\d+$/.test(de))}function De(W){a("goToCoordinates",[W.lat,W.lng]),oe.value=!0}async function Te(){const W=b.value.trim();if(W){if(w.value==="xy"){const x=Me(W);if(!x){ge.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}De(x);return}if(w.value==="address"||w.value==="nominatim"){try{await le(W)}catch(x){const D=x?.message||"Помилка пошуку адреси";ge.notify({type:"error",title:"Пошук адреси",message:D})}return}try{if(!Ae(W)){ge.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const x=await fetch(Le(W));if(!x.ok)throw new Error(`HTTP ${x.status}`);const D=await x.json(),R=Fe(D);if(!R.length)ge.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const de=R.find(se);if(!de){ge.notify({type:"warning",title:"Пошук",message:"Геометрія ділянки відсутня"});return}De(de)}}catch(x){const D=x?.message||"Помилка пошуку";ge.notify({type:"error",title:"Пошук",message:D})}}}return(W,x)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"widgetRef",ref:$,class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},[e.createElementVNode("form",{class:"flex gap-2 text-gray-900",onSubmit:e.withModifiers(Te,["prevent"])},[m.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:C,class:"relative search-type w-[100px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:ae},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:V,class:"block w-full truncate",title:be(w.value)},[e.createTextVNode(e.toDisplayString(be(w.value)),1)],8,Ou)),[[n,$e(w.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":v.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},x[3]||(x[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]),2))]),v.value?(e.openBlock(),e.createElementBlock("div",Pu,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,D=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:D,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:R=>ee(D,R)},[e.createTextVNode(e.toDisplayString(be(D)),1)],8,Ru)),[[n,$e(D)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:U,class:"relative flex-1 min-w-[140px]"},[w.value==="parcel"?(e.openBlock(),e.createBlock(En,{key:0,modelValue:b.value,"onUpdate:modelValue":x[0]||(x[0]=D=>b.value=D),mask:"0000000000:00:000:0000",class:e.normalizeClass(["vs-input !h-[34px] transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",oe.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":x[1]||(x[1]=D=>b.value=D),placeholder:f.value,type:"text",class:e.normalizeClass(["vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",oe.value?"!pr-14":"!pr-8"]),onFocus:ke},null,42,zu)),[[e.vModelText,b.value,void 0,{trim:!0}]]),e.createElementVNode("div",ju,[oe.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Очистити",onClick:he},x[4]||(x[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)]))):e.createCommentVNode("",!0),x[5]||(x[5]=e.createElementVNode("button",{type:"submit",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-4.35-4.35m0 0A7.5 7.5 0 1 0 5 5a7.5 7.5 0 0 0 11.65 11.65Z"})])],-1))]),_.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref:O,class:"vs-select__options mt-1 bg-white border border-gray-300 rounded-lg shadow-lg text-sm text-gray-900 z-50",style:e.normalizeStyle(te)},[e.createElementVNode("div",Uu,[e.createElementVNode("span",Hu,e.toDisplayString(P.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:x[2]||(x[2]=D=>E.value=!1)}," ✕ ")]),e.createElementVNode("div",qu,[A.value.length?(e.openBlock(),e.createElementBlock("ul",Wu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,D=>(e.openBlock(),e.createElementBlock("li",{key:D.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:R=>ue(D)},e.toDisplayString(D.title),9,Ku))),128))])):(e.openBlock(),e.createElementBlock("div",Gu,e.toDisplayString(Y.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-4d528cf7"]]),Qu={class:"pt-1 border-t border-gray-100"},ep={class:"space-y-1"},tp=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(o,{emit:t}){const n=t,r=e.ref(null),a=e.ref(null),l=(i,d,h)=>Math.min(Math.max(i,d),h),s=()=>{if(r.value===null||a.value===null||!Number.isFinite(r.value)||!Number.isFinite(a.value))return;const i=l(r.value,-90,90),d=l(a.value,-180,180);n("submit",{lat:i,lng:d}),r.value=null,a.value=null},c=()=>{r.value=null,a.value=null,n("cancel")};return(i,d)=>(e.openBlock(),e.createElementBlock("div",Qu,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",ep,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=h=>r.value=h),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта (50.4501)"},null,512),[[e.vModelText,r.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=h=>a.value=h),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота (30.5234)"},null,512),[[e.vModelText,a.value,void 0,{number:!0}]]),e.createElementVNode("div",{class:"flex gap-1.5"},[e.createElementVNode("button",{class:"flex-1 px-2 py-1 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors",type:"button",onClick:s}," Додати "),e.createElementVNode("button",{class:"px-2 py-1 bg-gray-200 hover:bg-gray-300 text-gray-700 text-xs font-medium rounded transition-colors",type:"button",onClick:c}," Скасувати ")])])]))}}),np=e.defineComponent({__name:"BtnAdd",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(X.Plus),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Додати ",-1))]))}}),op=e.defineComponent({__name:"BtnClear",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"w-full px-2 py-1.5 bg-rose-500 hover:bg-rose-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(X.Trash2),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Очистити ",-1))]))}}),rp=e.defineComponent({__name:"BtnComplete",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-emerald-500 hover:bg-emerald-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(X.Circle),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode("Замкнути ",-1))]))}}),lp=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function qt(o){return lp.format(o)}function Fr(o){return o>=1e3?`${qt(o/1e3)} км`:`${qt(o)} м`}const ap={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},sp={key:0,class:"flex-1 flex gap-1"},ip={key:1,class:"flex-1 font-mono text-gray-700"},cp=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(o,{emit:t}){const n=o,r=t,a=e.computed(()=>`${n.coords.lat.toFixed(4)}°, ${n.coords.lng.toFixed(4)}°`),l=e.ref(!1),s=e.ref(n.coords.lat),c=e.ref(n.coords.lng);e.watch(()=>n.coords,p=>{s.value=p.lat,c.value=p.lng},{deep:!0,immediate:!0});const i=(p,m,f)=>Math.min(Math.max(p,m),f),d=()=>{l.value=!0},h=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(c.value))return;const p=i(s.value,-90,90),m=i(c.value,-180,180);r("update",{id:n.id,coords:{lat:p,lng:m}}),l.value=!1},y=()=>{r("delete",n.id)};return(p,m)=>(e.openBlock(),e.createElementBlock("div",ap,[e.createVNode(e.unref(X.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),l.value?(e.openBlock(),e.createElementBlock("div",sp,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[0]||(m[0]=f=>s.value=f),type:"number",step:"0.0001",min:"-90",max:"90",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта"},null,512),[[e.vModelText,s.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[1]||(m[1]=f=>c.value=f),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[e.vModelText,c.value,void 0,{number:!0}]]),e.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:h}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",ip,e.toDisplayString(a.value),1)),l.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:2,class:"text-blue-500 hover:text-blue-600 px-0.5",type:"button",onClick:d}," ✎ ")),e.createElementVNode("button",{class:"text-rose-500 hover:text-rose-600 px-0.5",type:"button",onClick:y}," ✕ ")]))}}),dp={class:"ruler-control px-3 py-2.5 space-y-2"},up={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},pp={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Сумарна довжина всіх відрізків","aria-hidden":"true"},mp={class:"text-sm font-semibold text-slate-700"},fp={class:"ruler-row"},hp={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},gp={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Площа замкнутого контуру","aria-hidden":"true"},yp={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},bp=["onClick"],kp={class:"flex items-center gap-2 mt-0.5 pl-7"},wp={key:0,class:"text-base font-semibold text-green-600"},xp={key:1,class:"text-xs text-gray-400"},vp={class:"ruler-row flex items-center gap-2 cursor-pointer"},_p={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Список точок","aria-hidden":"true"},Cp={class:"text-xs font-medium text-gray-600 flex-1"},Ep={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},Bp=e.defineComponent({__name:"ControlPanel",props:{points:{},isShapeClosed:{type:Boolean}},emits:["update-point","delete-point"],setup(o){const t=o,n=e.ref(!1),r=e.ref("km2"),a=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],l=()=>{n.value=!n.value},s=(f,w)=>{const b=S=>S*Math.PI/180,v=b(w.lat-f.lat),C=b(w.lng-f.lng),V=b(f.lat),$=b(w.lat),U=Math.sin(v/2),Z=Math.sin(C/2);return 6371e3*(2*Math.asin(Math.sqrt(U*U+Math.cos(V)*Math.cos($)*Z*Z)))},c=e.computed(()=>{if(t.points.length<2)return 0;let f=0;for(let w=1;w<t.points.length;w+=1)f+=s(t.points[w-1].coords,t.points[w].coords);return t.isShapeClosed&&t.points.length>=2&&(f+=s(t.points[t.points.length-1].coords,t.points[0].coords)),f}),i=e.computed(()=>c.value>=1e3?`${qt(c.value/1e3)} км`:`${qt(c.value)} м`);function d(f){if(f.length<3)return 0;const w=f[0].lat,b=f[0].lng,v=(V,$)=>{const U=(V-w)*110574;return{x:($-b)*111320*Math.cos(w*Math.PI/180),y:U}};let C=0;for(let V=0;V<f.length;V++){const $=(V+1)%f.length,U=v(f[V].lat,f[V].lng),Z=v(f[$].lat,f[$].lng);C+=U.x*Z.y-U.y*Z.x}return Math.abs(C)*.5}const h=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const f=t.points.map(w=>w.coords);return d(f)}),y=e.computed(()=>h.value>0),p=e.computed(()=>{const f=h.value;if(f===0)return"—";if(r.value==="km2"){const b=f/1e6;return`${qt(b)} км²`}if(r.value==="ha"){const b=f/1e4;return`${qt(b)} га`}const w=f>=1?Math.round(f):f;return`${qt(w)} м²`}),m=e.computed(()=>{const f=t.points.length;return f===1?"1 точка":f>=2&&f<=4?`${f} точки`:`${f} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(f,w)=>(e.openBlock(),e.createElementBlock("div",dp,[e.createElementVNode("button",up,[e.createElementVNode("span",pp,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),w[1]||(w[1]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),e.createElementVNode("span",mp,e.toDisplayString(i.value),1)]),e.createElementVNode("div",fp,[e.createElementVNode("button",hp,[e.createElementVNode("span",gp,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),w[2]||(w[2]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),e.createElementVNode("div",yp,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,(b,v)=>e.createElementVNode("button",{key:b.id,type:"button",class:e.normalizeClass(["px-2.5 py-1 text-xs font-medium transition-colors border-r border-gray-200 last:border-r-0",v===0&&"rounded-l-md",v===a.length-1&&"rounded-r-md",r.value===b.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(C=>r.value=b.id,["stop"])},e.toDisplayString(b.label),11,bp)),64))])]),e.createElementVNode("div",kp,[y.value?(e.openBlock(),e.createElementBlock("span",wp,e.toDisplayString(p.value),1)):(e.openBlock(),e.createElementBlock("span",xp,"—"))])]),e.createElementVNode("div",vp,[e.createElementVNode("span",_p,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",Cp,e.toDisplayString(m.value),1),e.createElementVNode("button",{type:"button",class:"text-xs text-blue-500 hover:text-blue-600 font-medium transition-colors",onClick:e.withModifiers(l,["stop"])}," Координати ")]),n.value?(e.openBlock(),e.createElementBlock("div",Ep,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.points,(b,v)=>(e.openBlock(),e.createBlock(cp,{key:b.id,id:b.id,index:v+1,coords:b.coords,onUpdate:w[0]||(w[0]=C=>f.$emit("update-point",C)),onDelete:C=>f.$emit("delete-point",b.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),Vp={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},Sp={class:"flex items-start gap-2"},$p=e.defineComponent({__name:"InfoHint",setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Vp,[e.createElementVNode("div",Sp,[e.createVNode(e.unref(X.Info),{size:16,"stroke-width":2,class:"text-blue-600 flex-shrink-0 mt-0.5"}),n[0]||(n[0]=e.createElementVNode("div",{class:"space-y-1"},[e.createElementVNode("p",{class:"text-xs font-medium text-blue-900"}," Натискайте на карту, щоб додати точки вимірювання "),e.createElementVNode("p",{class:"text-[10px] text-blue-700"},' Або скористайтесь кнопкою "Додати" внизу для введення координат вручну ')],-1))])]))}}),Ap={class:"space-y-1.5"},Np={class:"space-y-1 max-h-40 overflow-y-auto"},Mp={class:"text-gray-700"},Fp={class:"font-semibold text-slate-800"},Dp=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(o){const t=o;function n(l,s){const c=m=>m*Math.PI/180,i=c(s.lat-l.lat),d=c(s.lng-l.lng),h=c(l.lat),y=c(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(i/2)**2+Math.cos(h)*Math.cos(y)*Math.sin(d/2)**2)))}function r(l){return Fr(l)}const a=e.computed(()=>{const l=[],s=t.points;if(s.length<2)return l;for(let c=0;c<s.length;c++){const i=c===s.length-1&&t.isShapeClosed?0:c+1;if(i>=s.length)break;const d=n(s[c].coords,s[i].coords);l.push({from:c+1,to:i+1,label:r(d)})}return l});return(l,s)=>(e.openBlock(),e.createElementBlock("div",Ap,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",Np,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(c,i)=>(e.openBlock(),e.createElementBlock("div",{key:i,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[e.createElementVNode("span",Mp,"Точка "+e.toDisplayString(c.from)+" → Точка "+e.toDisplayString(c.to),1),e.createElementVNode("span",Fp,e.toDisplayString(c.label),1)]))),128))])]))}}),Tp={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},Lp={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},Ip={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},Op={class:"flex items-center gap-2"},Pp={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},Rp={class:"flex border-b border-gray-200"},zp={key:1,class:"px-3 py-2.5"},jp={key:1,class:"text-xs text-gray-500"},Up={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},Hp={class:"flex gap-1.5"},qp=e.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(o,{expose:t,emit:n}){const r=n,a=e.ref([]),l=e.computed(()=>a.value.length>0),s=e.ref(!1),c=e.ref(!1),i=e.ref("general");function d(_){i.value=_,r("tab-change",_)}e.onMounted(()=>{r("tab-change",i.value)});const h=e.computed(()=>a.value.length>=3&&!c.value);let y=1;const p=()=>a.value.map(_=>({id:_.id,coords:{..._.coords}})),m=()=>{a.value.length<3&&c.value&&(c.value=!1,r("shape-closed-change",!1)),r("points-change",p())},f=()=>{const _=y;return y+=1,_},w=_=>{a.value=[...a.value,{id:f(),coords:{lat:_.lat,lng:_.lng}}],m()},b=({id:_,coords:T})=>{const j=a.value.findIndex(A=>A.id===_);if(j===-1)return;const oe=[...a.value];oe[j]={id:_,coords:{...T}},a.value=oe,m()},v=_=>{a.value=a.value.filter(T=>T.id!==_),m()},C=()=>{a.value=[],c.value&&(c.value=!1,r("shape-closed-change",!1)),m()},V=_=>{b(_)},$=_=>{v(_)},U=()=>{s.value=!0,r("add-request")},Z=_=>{w(_),s.value=!1},O=()=>{s.value=!1},E=()=>{h.value&&(c.value=!0,r("complete"),r("shape-closed-change",!0))},S=()=>{C(),s.value=!1,r("close")};return t({addPoint:w,clearPoints:C}),(_,T)=>(e.openBlock(),e.createElementBlock("div",Tp,[e.createElementVNode("div",Lp,[e.createElementVNode("div",Ip,[e.createElementVNode("div",Op,[e.createElementVNode("div",Pp,[e.createVNode(e.unref(X.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),T[2]||(T[2]=e.createElementVNode("h3",{class:"text-white font-semibold text-xs"},"Вимірювання",-1))]),e.createElementVNode("button",{class:"w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors","aria-label":"Закрити",onClick:S},[e.createVNode(e.unref(X.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",Rp,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[0]||(T[0]=j=>d("general"))}," Загальна ",2),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[1]||(T[1]=j=>d("topoint"))}," До точки ",2)]),i.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[l.value?(e.openBlock(),e.createBlock(Bp,{key:1,points:a.value,"is-shape-closed":c.value,onUpdatePoint:V,onDeletePoint:$},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock($p,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",zp,[l.value?(e.openBlock(),e.createBlock(Dp,{key:0,points:a.value,"is-shape-closed":c.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",jp,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",Up,[e.createElementVNode("div",Hp,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(np,{key:0,onClick:U})),h.value?(e.openBlock(),e.createBlock(rp,{key:1,onClick:E})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(tp,{key:0,onSubmit:Z,onCancel:O})):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(op,{key:1,onClick:C})):e.createCommentVNode("",!0)])])]))}}),ot="ruler-points",Bt="ruler-line",Vt="ruler-polygon",St="ruler-segments",Wp=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(o){function t(f,w){const b=Z=>Z*Math.PI/180,v=b(w.lat-f.lat),C=b(w.lng-f.lng),V=b(f.lat),$=b(w.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(v/2)**2+Math.cos(V)*Math.cos($)*Math.sin(C/2)**2)))}function n(f){return Fr(f)}const r=o;function a(){return{type:"FeatureCollection",features:[]}}function l(f,w,b){const v=b??"general",C=[];let V=0;C.push(0);for(let $=1;$<f.length;$++)V+=t(f[$-1].coords,f[$].coords),C.push(V);return w&&f.length>=2&&(V+=t(f[f.length-1].coords,f[0].coords)),{type:"FeatureCollection",features:f.map(($,U)=>{const Z=v==="general"?U===0?"0":n(C[U]):U===0?"0":n(t(f[U-1].coords,f[U].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[$.coords.lng,$.coords.lat]},properties:{id:$.id,index:U+1,label:Z}}})}}function s(f,w){if(f.length<2)return a();const b=[];for(let v=0;v<f.length;v++){const C=v===f.length-1&&w?0:v+1;if(C>=f.length)break;const V=f[v].coords,$=f[C].coords,U=t(V,$);b.push({type:"Feature",geometry:{type:"LineString",coordinates:[[V.lng,V.lat],[$.lng,$.lat]]},properties:{distance:n(U)}})}return{type:"FeatureCollection",features:b}}function c(f,w){if(f.length<2)return a();const b=f.map(v=>[v.coords.lng,v.coords.lat]);return w&&b.push(b[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:b},properties:{}}]}}function i(f){if(f.length<3)return a();const w=f.map(b=>[b.coords.lng,b.coords.lat]);return w.push(w[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[w]},properties:{}}]}}let d=!1;function h(f){f.getSource(ot)||(f.addSource(ot,{type:"geojson",data:a()}),f.addLayer({id:`${ot}-circle`,type:"circle",source:ot,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),f.addLayer({id:`${ot}-labels`,type:"symbol",source:ot,layout:{"text-field":["get","label"],"text-size":14,"text-offset":[0,1.3]},paint:{"text-color":"#0f172a","text-halo-color":"#ffffff","text-halo-width":1}})),f.getSource(St)||(f.addSource(St,{type:"geojson",data:a()}),f.addLayer({id:`${St}-labels`,type:"symbol",source:St,layout:{"text-field":["get","distance"],"text-size":13,"symbol-placement":"line-center","text-rotation-alignment":"map","text-pitch-alignment":"map"},paint:{"text-color":"#1e293b","text-halo-color":"#ffffff","text-halo-width":1.5}})),f.getSource(Bt)||(f.addSource(Bt,{type:"geojson",data:a()}),f.addLayer({id:`${Bt}-layer`,type:"line",source:Bt,paint:{"line-color":"#3b82f6","line-width":2}})),f.getSource(Vt)||(f.addSource(Vt,{type:"geojson",data:a()}),f.addLayer({id:`${Vt}-layer`,type:"fill",source:Vt,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function y(f){if(f){try{f.getLayer(`${Vt}-layer`)&&f.removeLayer(`${Vt}-layer`),f.getSource(Vt)&&f.removeSource(Vt),f.getLayer(`${Bt}-layer`)&&f.removeLayer(`${Bt}-layer`),f.getSource(Bt)&&f.removeSource(Bt),f.getLayer(`${St}-labels`)&&f.removeLayer(`${St}-labels`),f.getSource(St)&&f.removeSource(St),f.getLayer(`${ot}-labels`)&&f.removeLayer(`${ot}-labels`),f.getLayer(`${ot}-circle`)&&f.removeLayer(`${ot}-circle`),f.getSource(ot)&&f.removeSource(ot)}catch{}d=!1}}function p(f){if(!f)return;const w=f.getSource(ot),b=f.getSource(Bt),v=f.getSource(Vt),C=f.getSource(St),V=r.points,$=r.labelMode??"general";w&&w.setData(l(V,r.isShapeClosed,$)),b&&b.setData(c(V,r.isShapeClosed)),v&&v.setData(i(V)),C&&C.setData($==="topoint"?s(V,r.isShapeClosed):a())}function m(){const f=r.map;f&&(d||h(f),p(f))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>m(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>m(),{immediate:!0}),e.onBeforeUnmount(()=>{y(r.map)}),(f,w)=>null}});function Kp(o={}){const t=e.ref(!1),n=e.ref([]),r=e.ref(!1),a=e.ref("general"),l=e.ref(null);function s(){t.value?c():(t.value=!0,o.onActivate?.())}function c(){t.value=!1,n.value=[],r.value=!1,l.value?.clearPoints(),o.onDeactivate?.()}function i(m){n.value=m}function d(m){a.value=m}function h(m){r.value=m}function y(m){t.value&&l.value?.addPoint({lat:m.lat,lng:m.lng})}const p=e.computed(()=>n.value.length>0);return{isRulerActive:t,rulerPoints:n,rulerShapeClosed:r,rulerActiveTab:a,rulerPanelRef:l,hasRulerPoints:p,toggleRuler:s,closeRuler:c,onRulerPointsChange:i,onRulerTabChange:d,onRulerShapeClosedChange:h,handleRulerMapClick:y}}const xo="vs-safe-raster",dn=new ArrayBuffer(0);let vo=!1;function Gp(o){const t=`${xo}://`;return typeof o!="string"||!o.startsWith(t)?o:o.slice(t.length)}function Yp(o){if(!o||o.byteLength<4)return!1;const t=new Uint8Array(o);return t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71||t[0]===255&&t[1]===216&&t[2]===255||t[0]===82&&t[1]===73&&t[2]===70&&t[3]===70&&o.byteLength>=12&&String.fromCharCode(t[8],t[9],t[10],t[11])==="WEBP"}async function Xp(o,t){try{const n=await fetch(o,{signal:t});if(!n.ok||n.status===204)return dn;const r=await n.arrayBuffer();return!r.byteLength||!Yp(r)?dn:r}catch{return dn}}function Zp(o){vo||!o?.addProtocol||(vo=!0,o.addProtocol(xo,(t,n)=>{const r=Gp(String(t?.url??""));if(!r)return n(null,{data:dn}),{cancel:()=>{}};const a=new AbortController;return Xp(r,a.signal).then(l=>n(null,{data:l})).catch(()=>n(null,{data:dn})),{cancel:()=>a.abort()}}))}function Jp(o){const t=typeof o=="string"?o.trim():"";if(!t)return t;const n=`${xo}://`;return t.startsWith(n)?t:`${n}${t}`}function Qp(o,t){const n=typeof o=="string"?o.trim():"";return n?t&&vo?[Jp(n)]:[n]:[]}function _o(o,t,n){const r={type:"raster",tiles:Qp(o,!!n?.safe),tileSize:typeof t?.tileSize=="number"?t.tileSize:256};return typeof t?.minzoom=="number"&&(r.minzoom=t.minzoom),typeof t?.maxzoom=="number"&&(r.maxzoom=t.maxzoom),Array.isArray(t?.bounds)&&t.bounds.length===4&&(r.bounds=t.bounds),r}function em(o){const t=String(o??"").toLowerCase();return t.includes("could not be decoded")||t.includes("source image could not be decoded")||t.includes("unsupported image type")}const tm={class:"vs-map-body"},nm={key:0,class:"absolute top-2 left-2 z-[1000] w-[calc(100%-16px)] sm:w-[320px]"},om={key:1,class:"form-geom__panel flex items-center gap-1 mt-1"},rm={class:"flex items-center gap-1"},lm=["disabled"],am={key:0,class:"absolute z-[1600] left-0 top-full mt-1 w-full min-w-[140px] bg-white border border-gray-200 shadow-lg rounded-lg text-sm overflow-hidden"},sm=["disabled"],im={key:0,class:"mb-3 flex items-center gap-2 rounded-md border border-blue-100 bg-blue-50 px-3 py-2 text-sm text-blue-700"},cm={class:"mt-4 flex justify-end gap-2"},dm=["disabled"],um=["disabled"],pm={class:"mt-4 flex justify-end gap-2"},mm=["disabled"],fm={class:"vs-map-controls vs-map-controls--tr"},hm={class:"vs-map-toolbar"},gm=["disabled"],ym=["disabled"],bm=["disabled"],km=["disabled"],wm={key:1,class:"vs-map-toolbar__divider"},xm=["title"],vm={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"},_m={class:"space-y-0.5"},Cm={class:"text-gray-500"},Em={class:"text-gray-900 text-right break-all"},Bm={class:"absolute left-2 bottom-2 z-[1000]"},Vm={key:0,class:"vs-map-status"},Sm={class:"form-geom__feature vs-map-status__inner"},$m={class:"vs-map-status__type"},Am={class:"vs-map-status__values"},Nm=["onClick","disabled"],Mm={key:1,class:"vs-map-status__chip"},Fm={key:2,class:"vs-map-status__sep"},Dm={key:1,class:"vs-map-status__chip"},Tm={class:"vs-map-status__meta"},Lm={class:"vs-map-status__coords"},Im={key:0,class:"vs-map-status__value"},Om={key:1,class:"vs-map-status__value"},Pm={key:0,class:"vs-map-status__area"},Rm={class:"vs-map-status__value"},zm={class:"vs-map-status__actions"},jm=["disabled"],Um=["disabled"],Hm=11,qm=15,Wm=.7,Km="vs-tile-ov-src-",Gm="vs-tile-ov-raster-",jn="__vs_form_maplibre_loader__",Ym="https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",Un="vs-global-bounds-src",Zt="vs-global-bounds-line",Dr="rasterLayer",Tr=Be(e.defineComponent({__name:"vs-input-map",props:{tools:{},multi:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},handleZoom:{type:Boolean,default:!0},ctrlZoom:{type:Boolean,default:!0},geomType:{default:()=>[]},prefix:{default:""},katottg:{default:""},layers:{default:()=>[]},bounds:{},api:{},center:{default:void 0},zoom:{default:void 0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue","valueSelected"],setup(o,{emit:t}){const n=o,r=t,a=e.useAttrs(),l=e.inject("values",e.ref({})),s=typeof document<"u"&&document.querySelector("#modal")?"#modal":"body",c=e.computed(()=>{const u=a?.multiple,g=a?.multi,k=B=>B===""||B===!0||B==="true"||B===1||B==="1";return!!n.multi||!!n.multiple||k(g)||k(u)}),i=e.computed(()=>!!n.disabled),d=e.ref(!1),h=e.ref(null),y=e.ref(0),p=e.ref(""),m=e.ref(null),f=e.ref([]),w=e.ref(null),b=e.ref(null),v=Kp({onActivate(){if(fe)try{fe.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""},onDeactivate(){}});function C(){v.toggleRuler()}const V=e.getCurrentInstance(),$=V?.appContext?.config?.globalProperties?.$settings??{},U=$?.map??{},Z=e.computed(()=>{const u=U.layerPresets;return Array.isArray(u)?u:[]}),O=V?.vnode?.props??{};function E(u){return Object.prototype.hasOwnProperty.call(O,u)||Object.prototype.hasOwnProperty.call(O,u.replace(/[A-Z]/g,g=>`-${g.toLowerCase()}`))}const S=Array.isArray(U.center)&&U.center.length===2?U.center:Array.isArray($.center)&&$.center.length===2?$.center:[30,50],_=typeof U.zoom=="number"?U.zoom:typeof $.zoom=="number"?$.zoom:typeof $.defaultZoom=="number"?$.defaultZoom:10;function T(u){if(u!=null){if(Array.isArray(u)&&u.length>=2){const g=Number(u[0]),k=Number(u[1]);return!Number.isFinite(g)||!Number.isFinite(k)?void 0:[g,k]}if(typeof u=="object"){const g=u,k=g.geom;if(g.type==="Point"&&Array.isArray(g.coordinates)){const G=g.coordinates,ce=Number(G[0]),pe=Number(G[1]);if(Number.isFinite(ce)&&Number.isFinite(pe))return[ce,pe]}if(k?.type==="Point"&&Array.isArray(k.coordinates)){const G=k.coordinates,ce=Number(G[0]),pe=Number(G[1]);if(Number.isFinite(ce)&&Number.isFinite(pe))return[ce,pe]}const B=Number(g.lat),F=Number(g.lng??g.lon);if(Number.isFinite(B)&&Number.isFinite(F))return[F,B]}}}const j=e.computed(()=>{const u=T(n.center);if(u)return u;if(!E("center"))return T(U.center)??T($.center)}),oe=e.computed(()=>E("zoom")?n.zoom:U.zoom??n.zoom),A=e.computed(()=>E("katottg")?String(n.katottg??""):String(U.katottg??n.katottg??"")),P=e.computed(()=>E("layers")?n.layers??[]:U.layers??n.layers??[]),Y=e.computed(()=>E("bounds")?n.bounds:U.bounds??n.bounds),q=e.ref(Array.isArray(j.value)&&j.value.length===2?[...j.value]:S),I=e.ref(typeof oe.value=="number"?oe.value:_),J=e.ref(null);let te=null;function L(u){const g=typeof u=="number"&&Number.isFinite(u)?u:I.value;return Math.min(qm,Math.max(Hm,Math.round(g)))}function M(u,g,k){if(!Number.isFinite(u)||!Number.isFinite(g))return;const B=iu(u,g,L(k)),F=J.value;F&&F.z===B.z&&F.x===B.x&&F.y===B.y||(J.value=B)}function N(){if(K){const u=K.getCenter?.(),g=K.getZoom?.();if(u&&Number.isFinite(g)){M(u.lng,u.lat,g);return}}Array.isArray(q.value)&&q.value.length===2&&M(q.value[0],q.value[1])}function Q(){te&&clearTimeout(te),te=setTimeout(()=>{te=null,N()},120)}M(q.value[0],q.value[1]);const ae=e.ref(n.modelValue),ee=e.ref(null),he=e.ref([]),we=e.ref(!1),be=e.ref(!1),$e=e.ref(!1),Me=e.ref(!1),Fe=e.ref(!1);e.provide("map-file-import-uploading",Fe);const Re=e.computed(()=>Fe.value?"Завантаження файлу на сервер...":Me.value?"Конвертація геометрії...":""),se=e.ref([]),ie=e.ref({srid:"",encoding:"UTF-8",file:""}),ve=e.computed(()=>{const u=l.value??{},g=u.id??a.id??"1",k=a.form??u.form??"form",B=a.table??u.table??"table",F=n.name??a.field??"geom";return`/file/upload/temp?${new URLSearchParams({id:String(g),form:String(k),table:String(B),field:String(F)}).toString()}`}),Se=e.computed(()=>({srid:{type:"Autocomplete",label:"Система координат",info:"Оберіть одну із систем координат в якій знаходяться ваші геодані",data:"gis.srid_from_setting",placeholder:"Обрати",rules:["required"]},encoding:{type:"Select",label:"Кодування файлу",info:"Вкажіть кодування в якому зберігається інформація в ваших файлах. Зазвичай це UTF-8",options:[{id:"UTF-8",text:"UTF-8"},{id:"CP1251",text:"CP1251"},{id:"LATIN-1",text:"LATIN-1"}],default:"UTF-8",rules:["required"]},file:{type:"File",label:"Файл",info:"Завантажте файл із геоданими у форматі GeoJson або Zip (Shapefiles)",format:".geojson,.zip",api:ve.value,rules:["required"]}})),Le=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),qe={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
|
|
1
|
+
(function(xe,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):(xe=typeof globalThis<"u"?globalThis:xe||self,e(xe.FormBuilder={},xe.Vue,xe.OpenGISCore,xe.lucide))})(this,(function(xe,e,ge,X){"use strict";function _n(o,t,n){if(!Array.isArray(n)||!n.length)return null;const r=String(o?.preset??o?.renderer??"").trim().toLowerCase();if(r){const a=n.find(l=>String(l.id).trim().toLowerCase()===r);if(a)return a}return n.find(a=>typeof a.match=="function"&&a.match(o,t))??null}function Yo(o,t,n){return!!_n(o,t,n)}const Xo=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(o){const t=o,n=e.ref(!1),r=e.ref({top:"0px",left:"0px"});function a(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();r.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},n.value=!0}function l(){n.value=!1}return(s,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:a,onMouseleave:l},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(X.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value&&s.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(r.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none"},e.toDisplayString(s.text),5)):e.createCommentVNode("",!0)]))],64))}}),lo={form:{autofillFrom:"Filled from",richtext:{paragraph:"Paragraph",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",heading4:"Heading 4",heading5:"Heading 5",heading6:"Heading 6",createTable:"Create Table",addColumn:"Add Column",addRow:"Add Row",deleteColumn:"Delete Column",deleteRow:"Delete Row",deleteTable:"Delete Table",mergeCells:"Merge Cells",splitCells:"Split Cells",linkTitle:"Enter Link",link:"Link",linkUrl:"Enter URL",editLink:"Edit Link",openLink:"Open Link",removeLink:"Remove Link",openInNewTab:"Open in New Tab",editor:"Editor",html:"HTML",markdown:"Markdown",create:"Create",update:"Update",cancel:"Cancel"}}},ao={form:{autofillFrom:"Підставлено з",richtext:{paragraph:"Звичайний текст",heading1:"Заголовок 1",heading2:"Заголовок 2",heading3:"Заголовок 3",heading4:"Заголовок 4",heading5:"Заголовок 5",heading6:"Заголовок 6",createTable:"Створити таблицю",addColumn:"Додати колонку",addRow:"Додати рядок",deleteColumn:"Видалити колонку",deleteRow:"Видалити рядок",deleteTable:"Видалити таблицю",mergeCells:"Об'єднати комірки",splitCells:"Розділити комірки",linkTitle:"Додати посилання",link:"Посилання",linkUrl:"Введіть URL",editLink:"Редагувати посилання",openLink:"Відкрити посилання",removeLink:"Видалити посилання",openInNewTab:"Відкривати в новій вкладці",editor:"Редактор",html:"HTML",markdown:"Markdown",create:"Створити",update:"Оновити",cancel:"Скасувати"}}},Wl={class:"w-full relative"},Kl={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},Gl={class:"opacity-100"},Yl={key:0,class:"text-red-500 text-[14px]"},Xl={key:2,class:"text-[11px] text-slate-500 font-normal"},Zl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Jl=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),r=e.computed(()=>!!n.value),a=e.computed(()=>!!t.item?.rules?.includes("required")),l=e.computed(()=>t.item?.info||""),s=e.inject("schema-by-name"),c={en:lo?.form?.autofillFrom,uk:ao?.form?.autofillFrom},i=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const h=String(t.item?.__locale||"uk"),y=String(d.parentField),p=s?.value?.[y],m=p?.[`label:${h}`]||(h!=="uk"?p?.[h]:void 0)||p?.label||p?.ua||p?.en||y;return`${c[h]||c.uk}: ${m}`});return(d,h)=>(e.openBlock(),e.createElementBlock("div",Wl,[r.value?(e.openBlock(),e.createElementBlock("div",Kl,[e.createElementVNode("span",Gl,e.toDisplayString(n.value),1),a.value?(e.openBlock(),e.createElementBlock("span",Yl,"*")):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(Xo,{key:1,text:l.value},null,8,["text"])):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",Xl," ("+e.toDisplayString(i.value)+") ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.mergeProps(d.$attrs,{class:{"opacity-60":d.item.disabled}})),d.error?(e.openBlock(),e.createElementBlock("span",Zl,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),Ql={class:"w-full relative flex flex-row items-center gap-2"},ea={key:0,class:"text-red-500 text-[14px]"},ta={key:2,class:"text-[11px] text-slate-500 font-normal"},na={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},oa=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(o){const t=o,n=e.computed(()=>t.item?.label||t.label||t.ua),r=e.computed(()=>t.item?.info||""),a=e.inject("schema-by-name"),l={en:lo?.form?.autofillFrom,uk:ao?.form?.autofillFrom},s=e.computed(()=>{const p=t.item?.__autoMeta;if(!p||p?.source!=="parent-auto"||!p?.parentField)return"";const m=String(t.item?.__locale||"uk"),f=String(p.parentField),w=a?.value?.[f],b=w?.[`label:${m}`]||(m!=="uk"?w?.[m]:void 0)||w?.label||w?.ua||w?.en||f;return`${l[m]||l.uk}: ${b}`}),c=e.computed(()=>t.columns??{container:12,label:3}),i=e.computed(()=>{const{container:p,label:m}=c.value;return!p||p<=0?0:Math.min(Math.max(m??0,0),p)/p}),d=e.computed(()=>t.item?.type==="html"||i.value<=0?!1:!!n.value),h=e.computed(()=>{if(!d.value)return{};const p=`${i.value*100}%`;return{flexBasis:p,maxWidth:p}}),y=e.computed(()=>{const{container:p,label:m}=c.value;if(!p||p<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const f=Math.max(p-Math.max(m??0,0),0)/p;if(!f)return{};const w=`${f*100}%`;return{flexBasis:w,maxWidth:w}});return(p,m)=>(e.openBlock(),e.createElementBlock("div",Ql,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(h.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),p.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",ea,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Xo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",ta," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(y.value)},[e.renderSlot(p.$slots,"default",e.normalizeProps(e.guardReactiveProps(p.$attrs)))],4),p.error?(e.openBlock(),e.createElementBlock("span",na,e.toDisplayString(p.error),1)):e.createCommentVNode("",!0)]))}}),ra={class:"w-full relative"},la={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},aa=e.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",ra,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",la,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),sa={class:"flex-1 min-w-0"},ia={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ca={class:"truncate"},da={key:0,class:"text-red-500 text-[14px]"},ua=["innerHTML"],pa={key:0,class:"mt-1 text-xs text-red-500"},ma={default:Jl,horizontal:oa,inline:aa,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const r=e.computed(()=>t.item?.description??""),a=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),l=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const 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",sa,[c.ua||c.label?(e.openBlock(),e.createElementBlock("p",ia,[e.createElementVNode("span",ca,e.toDisplayString(c.item[n.value]||c.ua||c.label),1),a.value?(e.openBlock(),e.createElementBlock("span",da,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:r.value},null,8,ua)):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),l.value?(e.openBlock(),e.createElementBlock("p",pa,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)],2))}})};function et(o){return{inputClass:e.computed(()=>{const n=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${o?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return o?.size==="sm"?`${n}h-[32px]`:`${n}h-[38px]`})}}const fa=["placeholder","disabled"],ha=e.defineComponent({__name:"vs-input-password",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");return(s,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),placeholder:l.value,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":s.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,fa)),[[e.vModelText,r.value]])}}),ga=["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(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),c=e.computed(()=>t.minlength??void 0);function i(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,h)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":h[0]||(h[0]=y=>r.value=y),placeholder:l.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,ga)),[[e.vModelText,r.value]])}}),ya=["step","placeholder","disabled","min","max"],Zo=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({style:{type:Object,default:()=>({})},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:[Number,String],default:void 0}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useAttrs(),a=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),s=h=>{if(h==null||h==="")return;const y=typeof h=="string"?h.trim().replace(",","."):h,p=Number(y);return Number.isFinite(p)?p:void 0},c=e.computed(()=>s(t.min??r.min)),i=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const h=r.step;return typeof h=="number"||typeof h=="string"?h:"any"});return(h,y)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":y[0]||(y[0]=p=>a.value=p),placeholder:o.placeholder,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:c.value,max:i.value},null,10,ya)),[[e.vModelText,a.value]])}}),Cn=o=>!!String(o??"").trim(),Dt=o=>o?.color?String(o.color):"",on=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},rn=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},ba={class:"flex items-center gap-[4px]"},ka=["value","id","disabled"],wa=["for"],xa=["innerHTML"],va={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},_a=["src"],Ca=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(o,{emit:t}){const n=t,r=o,a=e.computed({get:()=>r.modelValue,set:m=>n("update:modelValue",m)}),l=e.computed(()=>!!r.disabled),s=e.computed(()=>on(r.option)),c=e.computed(()=>rn(r.option)),i=e.computed(()=>Dt(r.option)),d=e.computed(()=>!!(i.value&&!s.value&&!c.value)),h=e.computed(()=>!!(s.value&&i.value)),y=e.computed(()=>i.value?{color:i.value}:void 0),p=e.computed(()=>{if(!(!s.value||!i.value))return{backgroundColor:i.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(m,f)=>(e.openBlock(),e.createElementBlock("div",ba,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:m.value,"onUpdate:modelValue":f[0]||(f[0]=w=>a.value=w),class:e.normalizeClass(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer",{"!cursor-not-allowed":l.value}]),id:m.id,disabled:l.value},null,10,ka),[[e.vModelCheckbox,a.value]]),e.createElementVNode("label",{for:m.id,class:e.normalizeClass(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300",{"!cursor-not-allowed":l.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[a.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",m.error?"border-red-600":""]])},[e.createVNode(e.unref(X.Check),{class:"h-4 w-4"})],2),m.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:m.html},null,8,xa)):(e.openBlock(),e.createElementBlock("span",va,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:i.value})},null,4)):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(p.value)},null,4)):s.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:s.value,alt:"icon"},null,8,_a)):c.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(y.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(m.label),1)])]))],10,wa)]))}}),Ea=["name","value","disabled"],Ba=["innerHTML"],Va={key:1,class:"flex items-center gap-[6px] text-[14px]"},Sa={key:2,class:"text-[16px] inline-flex items-center justify-center"},$a=["src"],Aa=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=e.computed({get:()=>n.modelValue,set:w=>{r("update:modelValue",w)}}),l=e.computed(()=>Array.isArray(a.value)?a.value.includes(n.value):a.value===!0||a.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),c=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),i=e.computed(()=>on(c.value)),d=e.computed(()=>rn(c.value)),h=e.computed(()=>Dt(c.value)),y=e.computed(()=>!!(h.value&&!i.value&&!d.value)),p=e.computed(()=>!!(i.value&&h.value)),m=e.computed(()=>h.value?{color:h.value}:void 0),f=e.computed(()=>{if(!(!i.value||!h.value))return{backgroundColor:h.value,WebkitMaskImage:`url(${i.value})`,maskImage:`url(${i.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(w,b)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,l.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:w.id,value:w.value,"onUpdate:modelValue":b[0]||(b[0]=v=>a.value=v),disabled:w.disabled},null,8,Ea),[[e.vModelCheckbox,a.value]]),w.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:w.html},null,8,Ba)):(e.openBlock(),e.createElementBlock("span",Va,[y.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:h.value})},null,4)):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(f.value)},null,4)):i.value||d.value?(e.openBlock(),e.createElementBlock("span",Sa,[i.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:i.value,width:"16",height:"16",alt:"icon"},null,8,$a)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(m.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(w.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(w.label),1)])]))],2))}}),Na={class:"flex items-center"},so=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=`radio-${Math.floor(Math.random()*1e4)}`,l=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:c=>{if(Array.isArray(n.modelValue)){let i=[...n.modelValue];c?i.includes(n.value)||i.push(n.value):i=i.filter(d=>d!==n.value),r("update:modelValue",i)}else r("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Na,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Aa):e.unref(Ca)),{value:c.value,label:c.label,html:c.labelHtml,info:c.option?.info,disabled:c.disabled,modelValue:l.value,"onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),id:a,icon:c.icon,imgUrl:c.imgUrl,option:c.option,style:e.normalizeStyle(c.style),error:c.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Ma={key:0,class:"flex items-start gap-x-1"},Fa={key:0,class:"text-red-500 text-[14px]"},Da=["title"],Ta=["disabled"],io=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue");return(r,a)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Ma,[e.createVNode(so,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Fa,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:a[1]||(a[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4 text-gray-500"})],8,Da)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[n.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:a[2]||(a[2]=l=>n.value=!n.value)},[e.createElementVNode("span",{"data-state":"checked",class:e.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[n.value?"translate-x-4":"translate-x-0"]])},null,2)],10,Ta))}}),La=["id","innerHTML"],co=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.name,class:e.normalizeClass(["text-gray-900",t.customClass]),innerHTML:t.html?t.html:t.text},null,10,La))}}),Ia=["placeholder","disabled","name"],En=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),a=e.ref(null);let l=null;function s(c){const i=c==null?"":String(c),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let y=!1;for(let m=0;m<i.length;m+=1){const f=i[m];f==="{"?y=!0:f==="}"?y=!1:y&&h.add(f)}const p={};return Object.keys(d).forEach(m=>{h.has(m)||(p[m]=d[m])}),{mask:i,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(a.value){const{default:c}=await Promise.resolve().then(()=>Jn),i=s(t.mask||"");l=c(a.value,i),l.on("accept",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.on("complete",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{l?.destroy()}),e.watch(()=>t.mask,c=>{if(l){const i=s(c||"");l.updateOptions(i)}}),e.watch(r,c=>{l&&l.unmaskedValue!==c&&(l.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,Ia))}}),Oa={class:"relative w-full bg-white rounded-lg"},Pa={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Ra=["placeholder","disabled"],uo=e.defineComponent({__name:"vs-input-email",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue");return(a,l)=>(e.openBlock(),e.createElementBlock("div",Oa,[e.createElementVNode("div",Pa,[e.createVNode(e.unref(X.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":l[0]||(l[0]=s=>r.value=s),placeholder:a.placeholder,disabled:a.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":a.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Ra),[[e.vModelText,r.value]])]))}}),Et="+99(999)-999-99-99";function Tt(o){if(!o?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let n=!1,r=0;for(let a=0;a<o.length;a+=1){const l=o[a];if(l==="{"){n=!0;continue}if(l==="}"){n=!1;continue}!n&&t.has(l)&&(r+=1)}return r}const za={class:"relative w-full bg-white rounded-lg"},ja={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},Ua=["name","placeholder","disabled","pattern"],po=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:Et}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(Tt(t.mask||Et)||Tt(Et))-1}}$`),{inputClass:r}=et(t.style),a=e.useModel(o,"modelValue"),l=e.ref(null);let s=null;function c(h){const y={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let m=!1;for(let w=0;w<h.length;w+=1){const b=h[w];b==="{"?m=!0:b==="}"?m=!1:m&&p.add(b)}const f={};return Object.keys(y).forEach(w=>{p.has(w)||(f[w]=y[w])}),{mask:h,definitions:f,lazy:!1,disabled:t.disabled}}function i(h){if(h==null||h==="")return"";const y=String(h).trim();return y?y.replace(/\D/g,""):""}function d(){if(!s)return;const h=s.unmaskedValue??"";a.value=h?`+${h}`:""}return e.onMounted(async()=>{if(!l.value)return;const{default:h}=await Promise.resolve().then(()=>Jn),y=c(t.mask||"");s=h(l.value,y),s.on("accept",d),s.on("complete",d);const p=i(a.value);s.unmaskedValue=p}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,h=>{s&&s.updateOptions(c(h||""))}),e.watch(()=>t.disabled,h=>{s&&s.updateOptions({disabled:h})}),e.watch(a,h=>{if(!s)return;const y=i(h);s.unmaskedValue!==y&&(s.unmaskedValue=y)}),(h,y)=>(e.openBlock(),e.createElementBlock("div",za,[e.createElementVNode("div",ja,[e.createVNode(e.unref(X.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:l,type:"tel",name:h.name,placeholder:h.placeholder,disabled:h.disabled,pattern:n.value,title:"Міжнародний номер (E.164), наприклад +380XXXXXXXXX",autocomplete:"tel",class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(r),{"!border-red-600":h.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Ua)]))}}),Ha=["value","disabled"],qa=["innerHTML"],Wa={key:1,class:"flex items-center gap-2"},Ka=["src"],Ga={class:"text-[13px] text-gray-700"},Ya=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(y,p)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=m=>n.value=m),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Ha),[[e.vModelRadio,n.value]]),e.createElementVNode("span",{class:e.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${t.style?.primaryColor||"blue"}-500`,r.value?"opacity-50 cursor-not-allowed":""]])},[n.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,qa)):(e.openBlock(),e.createElementBlock("div",Wa,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,Ka)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Ga,e.toDisplayString(t.text),1)]))],2))}}),Xa=["value","disabled"],Za=["innerHTML"],Ja={key:1,class:"flex items-center gap-2"},Qa=["src"],es={class:"text-[13px] text-gray-700"},ts={"vs-input-radio-default":Ya,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(y,p)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=m=>n.value=m),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Xa),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Za)):(e.openBlock(),e.createElementBlock("div",Ja,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,Qa)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",es,e.toDisplayString(t.text),1)]))],2))}})},Jo=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],Qo=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},ns=o=>({fetchOptions:async(r="")=>{const a=o();if(!a.data)return a.options?[...a.options]:[];try{const l=new URLSearchParams;l.set("json","1"),r&&l.set("key",r),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${Qo(a)}?${l.toString()}`)).json();return Jo(c)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const a=o();if(!a.data)return(a.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const l=new URLSearchParams;l.set("json","1"),l.set("val",String(r)),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${Qo(a)}?${l.toString()}`)).json();return Jo(c)[0]??null}catch{return null}}}),Bn=({props:o,formValues:t=null,watchParent:n=!0})=>{const r=e.ref([]),a=e.computed(()=>o.parent?t?.value?.[o.parent]?.toString?.()??null:null),{fetchOptions:l,fetchOptionByValue:s}=ns(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:a.value})),c=async(i="")=>{const d=o.data?await l(i):o.options?[...o.options]:[];return r.value=d,r.value};return e.watch(()=>o.options,()=>{o.data||(r.value=o.options?[...o.options]:[])},{immediate:!0,deep:!0}),n&&e.watch(a,async()=>{o.data&&(r.value=await l())},{immediate:!1}),{optionsList:r,parentValue:a,fetchOptions:l,fetchOptionByValue:s,loadOptions:c}},os=/\{\{\s*([^}]+?)\s*\}\}/g,rs=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),ls=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),Vn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(os,(r,a)=>{const l=String(a).trim(),s=o,i=(l.includes(".")?ls(s,l):void 0)??s[l];return i!=null?String(i):""}):o.text??""},Sn=(o,t)=>{if(!o)return"";const n=Vn(o,t);return rs(n)||o.text||""},mo=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},slot:{},data:{},api:{},prefix:{},host:{},start:{},parent:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>ts[`vs-input-radio-${t.view}`]),a=e.computed(()=>t.slot??t?.optionTemplate??""),l=e.computed(()=>Cn(a.value)),s=m=>Vn(m,a.value),c=m=>Sn(m,a.value),i=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),h=e.inject("values",null),{optionsList:y,loadOptions:p}=Bn({props:t,formValues:h});return e.onMounted(async()=>{await p()}),(m,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(y),w=>(e.openBlock(),e.createElementBlock("div",{key:w?.id,class:e.normalizeClass(["flex items-stretch",m.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:c(w),html:l.value?s(w):"",option:w,value:w.id.toString(),checked:n.value?.toString?.()===w.id?.toString?.(),"custom-class":m.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":f[0]||(f[0]=b=>n.value=b)},{ref_for:!0},m.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),as={key:1,class:"w-full flex flex-col gap-4"},ss={key:0,class:"text-sm font-medium text-muted-foreground my-2"},is="Без категорії",cs=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=e.reactive({}),l=e.inject("values",null),{optionsList:s,loadOptions:c}=Bn({props:{...n,options:n.options},formValues:l}),i=e.computed(()=>s.value),d=C=>C?.value||C?.id||C?.text||C,h=e.computed(()=>n.slot??n?.optionTemplate??""),y=e.computed(()=>Cn(h.value)),p=C=>Vn(C,h.value),m=C=>Sn(C,h.value),f=C=>`lg:col-span-${C||12}`,w=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),b=C=>C==null||C===""?null:typeof C=="string"||typeof C=="number"?C:String(C),v=e.computed(()=>{if(!n.group)return[];const C=new Map;i.value.forEach(O=>{const E=O[n.group],S=b(E);C.has(S)||C.set(S,[]),C.get(S)?.push(O)});const V=[];n.values?.length&&n.values.forEach(O=>{const E=b(O);V.push(E)});const $=new Set,U=O=>{const E=C.get(O)||[];if(!E.length)return null;const S=O===null?"group-null":`group-${String(O)}`,_=O===null?is:String(O);return $.add(O),{key:S,label:_,options:E}},Z=[];return V.forEach(O=>{const E=U(O);E&&Z.push(E)}),C.forEach((O,E)=>{if($.has(E))return;const S=U(E);S&&Z.push(S)}),Z});return e.watch(()=>n.modelValue,C=>{if(typeof C=="boolean"&&i.value.length===1){const V=d(i.value[0]);a[V]=C}else if(Array.isArray(C)){const V=new Set(C);i.value.forEach($=>{if(!$.disabled){const U=d($);a[U]=V.has(U)}})}},{immediate:!0}),e.watch(a,()=>{if(!i.value.length){r("update:modelValue",null);return}const C=Object.entries(a).filter(([,V])=>V).map(([V])=>V);r("update:modelValue",C.length===0?[]:C)},{deep:!0}),e.onMounted(async()=>{if(await c(),typeof n.modelValue=="boolean"&&i.value.length===1){const C=d(i.value[0]);a[C]=n.modelValue}else if(Array.isArray(n.modelValue)){const C=new Set(n.modelValue);i.value.forEach(V=>{if(!V.disabled){const $=d(V);a[$]=C.has($)}})}}),(C,V)=>n.group?(e.openBlock(),e.createElementBlock("div",as,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,$=>(e.openBlock(),e.createElementBlock("div",{key:$.key,class:"flex flex-col gap-2"},[$.label?(e.openBlock(),e.createElementBlock("span",ss,e.toDisplayString($.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",w.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.options,U=>(e.openBlock(),e.createBlock(so,{modelValue:a[d(U)],"onUpdate:modelValue":Z=>a[d(U)]=Z,value:d(U),class:e.normalizeClass(f(C.colSpan)),disabled:n.disabled||U.disabled,label:m(U),labelHtml:y.value?p(U):"",key:`${$.key}-${d(U)}`,icon:U?.icon,imgUrl:U?.imgUrl,option:U,view:C.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",w.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,$=>(e.openBlock(),e.createBlock(so,{modelValue:a[d($)],"onUpdate:modelValue":U=>a[d($)]=U,value:d($),class:e.normalizeClass(f(C.colSpan)),disabled:n.disabled||$.disabled,label:m($),labelHtml:y.value?p($):"",key:d($),icon:$?.icon,imgUrl:$?.imgUrl,option:$,view:C.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),Be=(o,t)=>{const n=o.__vccOpts||o;for(const[r,a]of t)n[r]=a;return n},er=Be(cs,[["__scopeId","data-v-9056e0ec"]]),ds=1440*60*1e3,us=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],ps=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],ms=["нд","пн","вт","ср","чт","пт","сб"];function Ye(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const Xt=o=>new Date(o.getTime());function Ut(o){const t=Xt(o);return t.setHours(0,0,0,0),t}function ln(o){const t=Xt(o);return t.setHours(23,59,59,999),t}function fo(o){return Ut(new Date(o.getFullYear(),o.getMonth(),1))}function ho(o){return ln(new Date(o.getFullYear(),o.getMonth()+1,0))}function go(o,t){const n=new Date(o),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const a=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,a)),n}function fs(o,t){return go(o,-1)}function $n(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function tr(o,t){return $n(o,-t)}function nr(o){return Ut(new Date(o.getFullYear(),0,1))}function or(o){return ln(new Date(o.getFullYear(),11,31))}function hs(o){const t=Math.floor(o.getFullYear()/10)*10;return Ut(new Date(t,0,1))}function gs(o){const t=Math.floor(o.getFullYear()/10)*10+9;return ln(new Date(t,11,31))}const ft=o=>o.getFullYear(),An=o=>Math.floor(o.getFullYear()/10)*10;function ys(o){const t=[];let n=Ut(o.start);const r=Ut(o.end);for(;n<=r;)t.push(Xt(n)),n=new Date(n.getTime()+ds);return t}function bs(o){const t=[];let n=fo(o.start);const r=ho(o.end);for(;n<=r;)t.push(Xt(n)),n=go(n,1);return t}function ks(o){const t=[];let n=nr(o.start);const r=or(o.end);for(;n<=r;)t.push(Xt(n)),n=$n(n,1);return t}function yo(o,t=1){const n=Ut(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function ws(o,t=1){const n=yo(o,t);return n.setDate(n.getDate()+6),ln(n)}function xs(o,t,n=0){const r=yo(o,n),a=(t-n+7)%7;return r.setDate(r.getDate()+a),r}const Nn=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),bo=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),rr=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),lr=(o,t)=>!!o&&!!t&&Nn(o,t)&&o.getHours()===t.getHours(),vs=(o,t)=>!!o&&!!t&&lr(o,t)&&o.getMinutes()===t.getMinutes();function _s(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const an=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),sn=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function Cs(o){const t=o.filter(n=>Ye(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function Es(o){const t=o.filter(n=>Ye(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function Bs(o,t){const n=Xt(o);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const Mn=(o,t=2)=>String(o).padStart(t,"0");function ar(o,t){return t==="wide"?us[o]:ps[o]}function Vs(o){return ms[o]}const Ss=[{token:"LLLL",format:o=>ar(o.getMonth(),"wide")},{token:"LLL",format:o=>ar(o.getMonth(),"abbreviated")},{token:"EE",format:o=>Vs(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>Mn(o.getMonth()+1)},{token:"dd",format:o=>Mn(o.getDate())},{token:"HH",format:o=>Mn(o.getHours())},{token:"mm",format:o=>Mn(o.getMinutes())}];function cn(o,t){if(!Ye(o))return"";let n="",r=0;for(;r<t.length;){const a=Ss.find(l=>t.startsWith(l.token,r));a?(n+=a.format(o),r+=a.token.length):(n+=t[r],r+=1)}return n}const $s={"yyyy-MM-dd":/^(\d{4})-(\d{2})-(\d{2})$/,"dd.MM.yyyy":/^(\d{2})\.(\d{2})\.(\d{4})$/,"dd.MM.yyyy HH:mm":/^(\d{2})\.(\d{2})\.(\d{4}) (\d{1,2}):(\d{2})(?::(\d{2}))?$/,"HH:mm":/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/,"MM.yyyy":/^(\d{2})\.(\d{4})$/,yyyy:/^(\d{4})$/};function sr(o,t){const n=$s[t];if(!n){const a=new Date(o);return Ye(a)?a:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,a,l,s]=r,c=new Date(Number(a),Number(l)-1,Number(s));return Ye(c)?c:null}case"dd.MM.yyyy":{const[,a,l,s]=r,c=new Date(Number(s),Number(l)-1,Number(a));return Ye(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,a,l,s,c,i,d]=r,h=new Date(Number(s),Number(l)-1,Number(a),Number(c),Number(i),Number(d||0));return Ye(h)?h:null}case"HH:mm":{const[,a,l,s]=r,c=new Date;return c.setHours(Number(a),Number(l),Number(s||0),0),c}case"MM.yyyy":{const[,a,l]=r;return new Date(Number(l),Number(a)-1,1)}case"yyyy":{const[,a]=r;return new Date(Number(a),0,1)}default:return null}}const As=["year","month","day","time","custom"],Ns=e.defineComponent({components:{ChevronLeft:X.ChevronLeft,ChevronRight:X.ChevronRight},emits:{elementClick:o=>Ye(o),left:()=>!0,right:()=>!0,heading:()=>!0,today:()=>!0,clear:()=>!0},props:{headingClickable:{type:Boolean,default:!1},leftDisabled:{type:Boolean,default:!1},rightDisabled:{type:Boolean,default:!1},columnCount:{type:Number,default:7},items:{type:Array,default:()=>[]},viewMode:{type:String,required:!0,validate:o=>typeof o=="string"&&As.includes(o)},showButtonBar:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1}},setup(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties?.$t,n=e.computed(()=>{const a=t?.("form.date.today");return a&&a!=="form.date.today"?a:"Сьогодні"}),r=e.computed(()=>{const a=t?.("form.date.clear");return a&&a!=="form.date.clear"?a:"Очистити"});return{todayLabel:n,clearLabel:r}}}),Ms={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},Fs=["disabled"],Ds=["disabled"],Ts={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},Ls=["disabled","onClick"],Is={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function Os(o,t,n,r,a,l){const s=e.resolveComponent("ChevronLeft"),c=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",o.viewMode==="month"||o.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${o.columnCount}, 1fr)`}),onMousedown:t[5]||(t[5]=e.withModifiers(()=>{},["prevent"]))},[o.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ms,[e.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(i=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,Fs),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.headingClickable?"button":"span"),{class:e.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",o.headingClickable?"hover:bg-slate-100":"",o.viewMode==="month"?"p-datepicker-select-year":"",o.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:t[1]||(t[1]=e.withModifiers(i=>o.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"heading")]),_:3},8,["class"])),e.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(i=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"h-3.5 w-3.5"})])],8,Ds)])),e.createElementVNode("div",null,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock("div",Ts,[e.renderSlot(o.$slots,"subheading")])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",o.viewMode==="month"?"p-datepicker-month-view":"",o.viewMode==="year"?"p-datepicker-year-view":"",o.viewMode==="month"?"gap-y-1":""])},[e.renderSlot(o.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>o.$emit("elementClick",i.value),["stop","prevent"])},[e.createElementVNode("span",{class:e.normalizeClass([o.viewMode==="month"||o.viewMode==="year"?"inline-flex w-full h-8 items-center justify-center rounded-md text-[13px] font-normal transition-colors":"inline-flex w-8 h-8 items-center justify-center rounded-full text-[13px] font-normal transition-colors",o.viewMode==="month"?"p-datepicker-month":"",o.viewMode==="year"?"p-datepicker-year":"",o.viewMode==="day"?"p-datepicker-day":"",i.selected?"bg-blue-500 text-white font-semibold":"",i.current&&!i.selected&&o.viewMode!=="month"&&o.viewMode!=="year"?"border border-slate-300 font-medium":"",!i.disabled&&!i.selected?"hover:bg-slate-100 hover:text-slate-700":"",!i.current&&!i.selected&&i.disabled?"text-slate-300":""])},e.toDisplayString(i.display),3)],8,Ls))),128))])],2),e.renderSlot(o.$slots,"after-calendar"),o.showButtonBar?(e.openBlock(),e.createElementBlock("div",Is,[e.createElementVNode("button",{type:"button",class:"p-datepicker-today-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[3]||(t[3]=e.withModifiers(i=>o.$emit("today"),["stop","prevent"]))},e.toDisplayString(o.todayLabel),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-clear-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[4]||(t[4]=e.withModifiers(i=>o.$emit("clear"),["stop","prevent"]))},e.toDisplayString(o.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const Fn=Be(Ns,[["render",Os]]),Ps=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(o)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>hs(o.pageDate)),r=e.computed(()=>gs(o.pageDate)),a=(y,p,m)=>!p&&!m?!0:!(p&&ft(y)<ft(p)||m&&ft(y)>ft(m)),l=e.computed(()=>ks({start:n.value,end:r.value}).map(y=>({value:y,key:String(ft(y)),display:ft(y),selected:!!o.selected&&ft(y)===ft(o.selected),disabled:!a(y,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const y=ft(n.value),p=ft(r.value);return`${y} - ${p}`}),c=e.computed(()=>o.lowerLimit&&(An(o.lowerLimit)===An(o.pageDate)||an(o.pageDate,o.lowerLimit))),i=e.computed(()=>o.upperLimit&&(An(o.upperLimit)===An(o.pageDate)||sn(o.pageDate,o.upperLimit)));return{years:l,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",tr(o.pageDate,10)),nextPage:()=>t("update:pageDate",$n(o.pageDate,10))}}});function Rs(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:2,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.years,viewMode:"year",onLeft:o.previousPage,onRight:o.nextPage,onElementClick:t[0]||(t[0]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const zs=Be(Ps,[["render",Rs]]),js=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>nr(o.pageDate)),r=e.computed(()=>or(o.pageDate)),a=e.computed(()=>p=>cn(p,o.format)),l=(p,m,f)=>!m&&!f?!0:!(m&&an(p,fo(m))||f&&sn(p,ho(f))),s=e.computed(()=>bs({start:n.value,end:r.value}).map(p=>({value:p,display:a.value(p),key:a.value(p),selected:!!o.selected&&bo(o.selected,p),disabled:!l(p,o.lowerLimit,o.upperLimit)}))),c=e.computed(()=>ft(n.value)),i=e.computed(()=>o.lowerLimit&&(rr(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(rr(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",tr(o.pageDate,1)),nextPage:()=>t("update:pageDate",$n(o.pageDate,1))}}});function Us(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:o.months,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,viewMode:"month",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Hs=Be(js,[["render",Us]]),qs=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ye(o),select:o=>Ye(o),back:()=>!0,today:()=>!0,clear:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"dd"},headingFormat:{type:String,required:!1,default:"LLLL yyyy"},weekdayFormat:{type:String,required:!1,default:"EE"},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>typeof o=="number"&&Number.isInteger(o)&&o>=0&&o<=6},customWeekdays:{type:Array,required:!1},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>b=>v=>cn(v,b)),r=e.computed(()=>fo(o.pageDate)),a=e.computed(()=>ho(o.pageDate)),l=e.computed(()=>({start:r.value,end:a.value})),s=e.computed(()=>({start:yo(r.value,o.weekStartsOn),end:ws(a.value,o.weekStartsOn)})),c=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),i=e.computed(()=>{const b=o.weekStartsOn,v=c.value;if(v)return Array.from({length:7}).map((V,$)=>v[(b+$)%7]);const C=n.value(o.weekdayFormat);return Array.from(Array(7)).map((V,$)=>(b+$)%7).map(V=>xs(new Date,V,o.weekStartsOn)).map(C)}),d=(b,v,C,V)=>V?.dates?.some($=>Nn(b,$))||V?.predicate?.(b)?!1:!v&&!C?!0:!(v&&an(b,Ut(v))||C&&sn(b,ln(C))),h=e.computed(()=>{const b=new Date,v=n.value(o.format);return ys(s.value).map(C=>({value:C,display:v(C),selected:!!o.selected&&Nn(o.selected,C),current:Nn(b,C),disabled:!o.allowOutsideInterval&&!_s(C,l.value)||!d(C,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(C)}))}),y=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),p=e.computed(()=>o.lowerLimit&&(bo(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),m=e.computed(()=>o.upperLimit&&(bo(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{weekDays:i,days:h,heading:y,leftDisabled:p,rightDisabled:m,previousPage:()=>t("update:pageDate",fs(o.pageDate)),nextPage:()=>t("update:pageDate",go(o.pageDate,1))}}});function Ws(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.days,showButtonBar:!0,viewMode:"day",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c)),onToday:t[2]||(t[2]=c=>o.$emit("today")),onClear:t[3]||(t[3]=c=>o.$emit("clear"))},e.createSlots({heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.weekDays,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),3))),128))]),_:2},[o.$slots["after-calendar"]?{name:"after-calendar",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Ks=Be(qs,[["render",Ws]]),Gs=e.defineComponent({components:{PickerPopup:Fn,ChevronUp:X.ChevronUp,ChevronDown:X.ChevronDown},emits:{select:o=>Ye(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1},embedded:{type:Boolean,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>o.pageDate??o.selected),r=e.ref(n.value.getHours()),a=e.ref(n.value.getMinutes());e.watch(()=>o.selected,m=>{let f=0,w=0;m&&(f=m.getHours(),w=m.getMinutes()),r.value=f,a.value=w});const l=(m,f)=>{const w=Bs(new Date(n.value.getTime()),{hours:m,minutes:f,seconds:0});y(w)&&(r.value=m,a.value=f,t("select",w))},s=(m,f)=>m<0?f:m>f?0:m,c=()=>l(s(r.value+1,23),a.value),i=()=>l(s(r.value-1,23),a.value),d=()=>l(r.value,s(a.value+1,59)),h=()=>l(r.value,s(a.value-1,59)),y=m=>!(o.disabledTime?.dates?.some(f=>lr(m,f)&&vs(m,f))||o.disabledTime?.predicate?.(m));return{hours:r,minutes:a,padStartZero:m=>`0${m}`.substr(-2),isEnabled:y,incrementHours:c,decrementHours:i,incrementMinutes:d,decrementMinutes:h}}}),Ys={key:0,class:"p-datepicker-time-picker mt-2 pt-2 border-t border-slate-200 flex items-center justify-center gap-2 py-1"},Xs={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Zs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Js={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Qs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},ei={class:"col-span-2"},ti={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},ni={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},oi={class:"min-w-8 text-center text-sm font-medium text-slate-700"},ri={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},li={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function ai(o,t,n,r,a,l){const s=e.resolveComponent("ChevronUp"),c=e.resolveComponent("ChevronDown"),i=e.resolveComponent("picker-popup");return o.embedded?(e.openBlock(),e.createElementBlock("div",Ys,[e.createElementVNode("div",Xs,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[0]||(t[0]=e.withModifiers((...d)=>o.incrementHours&&o.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Zs,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[1]||(t[1]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[8]||(t[8]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Js,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[2]||(t[2]=e.withModifiers((...d)=>o.incrementMinutes&&o.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Qs,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[3]||(t[3]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(i,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",ei,[e.createElementVNode("div",ti,[e.createElementVNode("div",ni,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[4]||(t[4]=e.withModifiers((...d)=>o.incrementHours&&o.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",oi,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[5]||(t[5]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[9]||(t[9]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",ri,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[6]||(t[6]=e.withModifiers((...d)=>o.incrementMinutes&&o.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",li,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[7]||(t[7]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const si=Be(Gs,[["render",ai]]),Dn=["time","day","month","year"],ii=(o,t,n=void 0)=>{let r=n||new Date;const a=Cs([o,r]);a&&(r=a);const l=Es([t,r]);return l&&(r=l),r},ci=e.defineComponent({components:{YearPicker:zs,MonthPicker:Hs,DayPicker:Ks,TimePicker:si,CalendarDays:X.CalendarDays,Clock3:X.Clock3,X:X.X},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Dn.includes(o)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>[0,1,2,3,4,5,6].includes(o)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Dn.includes(o)}},emits:{"update:modelValue":o=>o==null||Ye(o),decadePageChanged:o=>!0,yearPageChanged:o=>!0,monthPageChanged:o=>!0,opened:()=>!0,closed:()=>!0},setup(o,{emit:t}){const n=e.ref("none"),r=e.ref(o.startingViewDate),a=e.ref(null),l=e.ref(null),s=e.ref(null),c=e.ref({}),i=e.ref(!1),d=e.ref(!1);let h=null;const y=e.ref(""),p=se=>{const ie=se.replace(/[a-zA-Z]/g,"0");return/0/.test(ie)?ie:""},m=e.computed(()=>p(o.inputFormat));let f=null,w=null;const b=()=>{f?.destroy(),f=null},v=async()=>{if(!w){const{default:se}=await Promise.resolve().then(()=>Jn);w=se}return w},C=()=>{f&&f.value!==y.value&&(f.value=y.value??"")},V=se=>{const ie=se&&Ye(se)?cn(se,o.inputFormat):"";y.value!==ie&&(y.value=ie),C()},$=async()=>{if(b(),!l.value||!m.value)return;f=(await v())(l.value,{mask:m.value,lazy:!0,overwrite:!1}),C()};e.watch(()=>o.modelValue,se=>{d.value&&o.typeable||V(se)},{immediate:!0}),e.watch(()=>o.inputFormat,()=>{d.value&&o.typeable||V(o.modelValue)}),e.onMounted(()=>{m.value&&e.nextTick(()=>{$()})}),e.onBeforeUnmount(()=>{b()}),e.watch(m,se=>{se?e.nextTick(()=>{$()}):b()});const U=e.computed(()=>n.value!=="none"),Z=e.computed(()=>o.startingView==="time"&&o.minimumView==="time"),O=e.computed(()=>o.startingView==="day"&&o.minimumView==="time"),E=se=>{o.disabled||(U.value||(r.value=o.modelValue||ii(o.lowerLimit,o.upperLimit,r.value),t("opened")),n.value=se,e.nextTick(()=>Fe()))},S=()=>{U.value&&(h!==null&&(cancelAnimationFrame(h),h=null),n.value="none",t("closed"))},_=(se="none")=>{se==="none"?S():E(se)};e.watchEffect(()=>{o.disabled&&S()});const T=(se,ie)=>{r.value=ie,se==="year"?t("decadePageChanged",ie):se==="month"?t("yearPageChanged",ie):se==="day"&&t("monthPageChanged",ie)},j=se=>{r.value=se,o.minimumView==="year"?(S(),V(se),t("update:modelValue",se)):E("month")},oe=se=>{r.value=se,o.minimumView==="month"?(S(),V(se),t("update:modelValue",se)):E("day")},A=se=>{const ie=O.value?(()=>{const ve=o.modelValue||r.value||new Date,Se=new Date(se);return Se.setHours(ve.getHours(),ve.getMinutes(),0,0),Se})():se;r.value=ie,o.minimumView==="day"?(S(),V(ie),t("update:modelValue",ie)):O.value?(V(ie),t("update:modelValue",ie),E("day")):E("time")},P=se=>{V(se),t("update:modelValue",se)},Y=()=>{A(new Date)},q=()=>{o.clearable&&(S(),V(null),t("update:modelValue",null),r.value=o.startingViewDate)},I=()=>{U.value||E(Q.value)},J=()=>{d.value=!0,i.value=!1,E(Q.value)},te=()=>{d.value=!1,o.typeable&&M({closeOnSuccess:!1,revertOnInvalid:!0})},L=se=>{const ie=se.target;if(y.value=ie?.value??"",!o.typeable)return;const ve=sr(y.value,o.inputFormat);ve&&y.value===cn(ve,o.inputFormat)&&(r.value=ve)},M=({closeOnSuccess:se,revertOnInvalid:ie})=>{const ve=l.value?.value??y.value,Se=sr(ve,o.inputFormat);return!!Se&&ve===cn(Se,o.inputFormat)&&Se?(r.value=Se,V(Se),t("update:modelValue",Se),se&&S(),!0):(V(o.modelValue),!1)},N=se=>{const ie=se.keyCode?se.keyCode:se.which,ve=ie===27,Se=ie===13;if(ve){S(),l.value?.blur();return}o.typeable&&Se&&(M({closeOnSuccess:!0,revertOnInvalid:!0})||l.value?.focus())},Q=e.computed(()=>{const se=Dn.indexOf(o.startingView),ie=Dn.indexOf(o.minimumView);return se<ie?o.minimumView:o.startingView}),ae=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0),ee=()=>o.startingView==="time"&&o.minimumView==="time"?null:E("day"),he=()=>{if(!l.value||!s.value)return;const se=4,ie=8,ve=l.value.getBoundingClientRect(),Se=s.value.getBoundingClientRect(),qe=s.value.firstElementChild?.getBoundingClientRect(),z=window.innerWidth,ne=window.innerHeight,le=window.scrollX||window.pageXOffset,ue=window.scrollY||window.pageYOffset,ke=Math.max(160,ne-ie*2),Ae=Math.min(Se.height||0,ke),De=ne-ve.bottom-se-ie,Te=ve.top-se-ie,W=De<Ae&&Te>De;let x=W?ve.top-se-Ae:ve.bottom+se;x=Math.max(ie,Math.min(x,ne-ie-Ae));const D=qe?.width||Se.width||268;let R=ve.left;R+D>z-ie&&(R=z-ie-D),R<ie&&(R=ie);const de=W?Math.max(120,ve.top-se-ie):Math.max(120,ne-ve.bottom-se-ie);c.value={position:"absolute",top:`${Math.round(x+ue)}px`,left:`${Math.round(R+le)}px`,maxHeight:`${Math.round(Math.min(ke,de))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},O.value&&n.value==="day"&&(c.value.minWidth="345px")},we=(se,ie)=>se.bottom>ie.top&&se.top<ie.bottom&&se.right>ie.left&&se.left<ie.right,be=se=>{const ie=[];let ve=se.parentElement;for(;ve;){const Se=window.getComputedStyle(ve),Le=Se.overflowY,qe=Se.overflowX,z=["auto","scroll","hidden","clip"].includes(Le),ne=["auto","scroll","hidden","clip"].includes(qe);(z||ne)&&ie.push(ve),ve=ve.parentElement}return ie},$e=()=>{if(!l.value)return!1;const se=l.value.getBoundingClientRect(),ie=new DOMRect(0,0,window.innerWidth,window.innerHeight);return we(se,ie)?be(l.value).every(Se=>we(se,Se.getBoundingClientRect())):!1},Me=()=>{if(U.value){if(!$e()){i.value=!0,S();return}Fe();return}i.value&&document.activeElement===l.value&&$e()&&(i.value=!1,E(Q.value))};e.watch(n,()=>{U.value&&e.nextTick(()=>Fe())});const Fe=()=>{he(),h!==null&&cancelAnimationFrame(h),h=requestAnimationFrame(()=>{he(),h=null})};e.onMounted(()=>{window.addEventListener("resize",Me),window.addEventListener("scroll",Me,!0),document.addEventListener("pointerdown",Re,!0)}),e.onBeforeUnmount(()=>{h!==null&&(cancelAnimationFrame(h),h=null),window.removeEventListener("resize",Me),window.removeEventListener("scroll",Me,!0),document.removeEventListener("pointerdown",Re,!0)});const Re=se=>{if(n.value==="none")return;const ie=se.target;if(!ie)return;const ve=!!a.value?.contains(ie),Se=!!s.value?.contains(ie);!ve&&!Se&&(i.value=!1,S())};return{rootRef:a,blur:te,focus:J,click:I,input:y,inputRef:l,pageDate:r,renderView:_,updatePageDate:T,selectYear:j,selectMonth:oe,selectDay:A,selectToday:Y,selectTime:P,keyUp:N,onInput:L,isTimeOnlyMode:Z,isDateTimeMode:O,normalizedWeekdayNames:ae,viewShown:n,goBackFromTimepicker:ee,clearModelValue:q,initialView:Q,log:se=>console.log(se),popupAnchorStyle:c,popupRef:s}}}),di={ref:"rootRef",class:"relative"},ui={class:"p-datepicker p-component p-inputwrapper relative"},pi=["readonly","value","placeholder","disabled","tabindex"],mi={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},fi={class:"absolute right-8 top-1/2 -translate-y-1/2"};function hi(o,t,n,r,a,l){const s=e.resolveComponent("Clock3"),c=e.resolveComponent("CalendarDays"),i=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),h=e.resolveComponent("month-picker"),y=e.resolveComponent("time-picker"),p=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",di,[e.createElementVNode("div",ui,[e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",class:"p-inputtext p-component p-datepicker-input",readonly:!o.typeable,value:o.input},o.$attrs,{placeholder:o.placeholder,disabled:o.disabled,tabindex:o.disabled?-1:0,onInput:t[0]||(t[0]=(...m)=>o.onInput&&o.onInput(...m)),onKeyup:t[1]||(t[1]=(...m)=>o.keyUp&&o.keyUp(...m)),onBlur:t[2]||(t[2]=(...m)=>o.blur&&o.blur(...m)),onFocus:t[3]||(t[3]=(...m)=>o.focus&&o.focus(...m)),onClick:t[4]||(t[4]=(...m)=>o.click&&o.click(...m))}),null,16,pi),e.createElementVNode("span",mi,[o.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(c,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",fi,[e.renderSlot(o.$slots,"clear",{onClear:o.clearModelValue},()=>[e.createElementVNode("button",{type:"button",class:"inline-flex h-5 w-5 items-center justify-center rounded-full text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600 focus:outline-none focus:ring-2 focus:ring-blue-500/30","aria-label":"Очистити дату",onClick:t[5]||(t[5]=m=>o.clearModelValue())},[e.createVNode(i,{class:"h-3 w-3"})])])],512),[[e.vShow,o.clearable&&o.modelValue]])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{ref:"popupRef",style:e.normalizeStyle(o.popupAnchorStyle)},[e.withDirectives(e.createVNode(d,{pageDate:o.pageDate,"onUpdate:pageDate":t[6]||(t[6]=m=>o.updatePageDate("year",m)),selected:o.modelValue,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,onSelect:o.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,o.viewShown==="year"]]),e.withDirectives(e.createVNode(h,{pageDate:o.pageDate,"onUpdate:pageDate":t[7]||(t[7]=m=>o.updatePageDate("month",m)),selected:o.modelValue,onSelect:o.selectMonth,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,format:o.monthListFormat,onBack:t[8]||(t[8]=m=>o.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,o.viewShown==="month"]]),e.withDirectives(e.createVNode(p,{pageDate:o.pageDate,"onUpdate:pageDate":t[9]||(t[9]=m=>o.updatePageDate("day",m)),selected:o.modelValue,weekStartsOn:o.weekStartsOn,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,headingFormat:o.dayPickerHeadingFormat,disabledDates:o.disabledDates,weekdayFormat:o.weekdayFormat,"allow-outside-interval":o.allowOutsideInterval,format:o.dayFormat,"custom-weekdays":o.normalizedWeekdayNames,onSelect:o.selectDay,onToday:o.selectToday,onClear:o.clearModelValue,onBack:t[10]||(t[10]=m=>o.viewShown="month")},e.createSlots({_:2},[o.isDateTimeMode?{name:"after-calendar",fn:e.withCtx(()=>[e.createVNode(y,{embedded:!0,pageDate:o.pageDate,visible:o.viewShown==="day"&&o.isDateTimeMode,selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"])]),key:"0"}:void 0]),1032,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect","onToday","onClear"]),[[e.vShow,o.viewShown==="day"]]),e.withDirectives(e.createVNode(y,{pageDate:o.pageDate,visible:o.viewShown==="time",selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,o.viewShown==="time"&&!o.isDateTimeMode]])],4),[[e.vShow,o.viewShown!=="none"]])]))],512)}const gi=Be(ci,[["render",hi]]),ir=Be(e.defineComponent({__name:"vs-input-date2",props:{clearable:{type:Boolean,default:!0},now:{type:Boolean},editable:{type:Boolean,default:!0},time:{type:Boolean},isInfinity:{type:Boolean},dateFormat:{},mode:{default:"date"},weekStart:{},dayNames:{},maxDaysFromNow:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,{inputClass:a}=et(n.style),l=e.getCurrentInstance(),s=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),c=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",a.value,n.customClass,{"!border-red-600":n.error}]),i=e.computed(()=>!n.modelValue&&n.now?new Date:null),d=e.computed({get:()=>E(n.modelValue??i.value,s.value)||void 0,set:L=>r("update:modelValue",S(L,s.value))}),h=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],y=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:h}),p=e.computed(()=>{const L=n.weekStart,M=typeof L=="string"?Number(L):L;return M===void 0||Number.isNaN(M)?1:Math.min(6,Math.max(0,M))}),m=e.computed(()=>{const L=n.maxDaysFromNow;if(L==null||L==="")return;const M=typeof L=="string"?Number(L):L;if(!Number.isFinite(M)||M<0)return;const N=new Date;return N.setHours(0,0,0,0),N.setDate(N.getDate()+M),N.setHours(23,59,59,999),N}),f=e.computed(()=>{switch(s.value){case"time":return{startingView:"time",minimumView:"time"};case"month":return{startingView:"month",minimumView:"month"};case"year":return{startingView:"year",minimumView:"year"};case"datetime":return{startingView:"day",minimumView:"time"};default:return{startingView:"day",minimumView:"day"}}}),w={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"};function b(){const L=l?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof L=="string"&&L)return L;if(L&&typeof L=="object"&&"value"in L&&L.value)return String(L.value);if(typeof localStorage<"u"){const M=localStorage.getItem("locale")||localStorage.getItem("language");if(M)return M}return"uk"}function v(){const M=l?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!M)return"";if(typeof M=="string")return M;if(typeof M=="object"){const N=b();return M[N]||M[N.split("-")[0]]||M.uk||M.en||""}return""}function C(L){return L?L.replaceAll("dd","__DAY2__").replaceAll("d","__DAY1__").replaceAll("mm","__MONTH2__").replaceAll("m","__MONTH1__").replaceAll("yy","__YEAR2__").replaceAll("y","__YEAR1__").replaceAll("__DAY2__","dd").replaceAll("__DAY1__","d").replaceAll("__MONTH2__","MM").replaceAll("__MONTH1__","M").replaceAll("__YEAR2__","yy").replaceAll("__YEAR1__","yyyy"):""}const V=e.computed(()=>{const L=w[s.value]||"dd.MM.yyyy";if(s.value==="time")return L;const M=n.dateFormat||v();if(!M)return L;const N=C(M);return N?s.value==="datetime"?`${N} HH:mm`:N:L});function $(L,M){return L?M==="week"?"рррр-тиждень":L.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",M==="time"||M==="datetime"?"хх":"мм"):""}const U={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},Z=e.computed(()=>{if(n.placeholder)return n.placeholder;const L=s.value;return $(V.value,L)||U[L]||""}),O=e.ref(!1);e.watch(()=>n.modelValue,L=>{L?O.value=!0:n.now||(O.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!O.value&&(r("update:modelValue",S(new Date,s.value)),O.value=!0)}),e.watch(V,()=>{r("update:modelValue",S(d.value,s.value))});function E(L,M){if(!L)return null;if(L instanceof Date&&!Number.isNaN(L.getTime()))return L;if(typeof L!="string")return null;switch(M){case"datetime":return oe(L);case"time":return Y(L);case"month":return A(L);case"year":return P(L);case"week":return q(L);case"date":default:return j(L)}}function S(L,M){if(!L)return null;const N=L instanceof Date?L:E(L,M);if(!N)return null;switch(M){case"datetime":return`${_(N)}T${T(N)}`;case"time":return T(N);case"month":return`${N.getFullYear()}-${te(N.getMonth()+1)}`;case"year":return`${N.getFullYear()}`;case"week":{const{year:Q,week:ae}=I(N);return`${Q}-W${te(ae)}`}case"date":default:return _(N)}}function _(L){return`${L.getFullYear()}-${te(L.getMonth()+1)}-${te(L.getDate())}`}function T(L){return`${te(L.getHours())}:${te(L.getMinutes())}`}function j(L){const M=L.split("-");if(M.length<3)return null;const[N,Q,ae]=M.map(Number);return!N||!Q||!ae?null:new Date(N,Q-1,ae)}function oe(L){const M=L.includes("T")?L:L.replace(" ","T"),N=new Date(M);return Number.isNaN(N.getTime())?null:N}function A(L){const[M,N]=L.split("-").map(Number);return!M||Number.isNaN(N)?null:new Date(M,(N||1)-1,1)}function P(L){const M=Number(L);return M?new Date(M,0,1):null}function Y(L){const M=L.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!M)return null;const[,N,Q,ae]=M,ee=new Date;return ee.setHours(Number(N),Number(Q),Number(ae||0),0),ee}function q(L){const M=L.match(/^(\d{4})-W(\d{2})$/);if(!M)return null;const[,N,Q]=M,ae=Number(Q);return J(Number(N),ae)}function I(L){const M=new Date(Date.UTC(L.getFullYear(),L.getMonth(),L.getDate())),N=M.getUTCDay()||7;M.setUTCDate(M.getUTCDate()+4-N);const Q=new Date(Date.UTC(M.getUTCFullYear(),0,1)),ae=Math.ceil(((M.getTime()-Q.getTime())/864e5+1)/7);return{year:M.getUTCFullYear(),week:ae}}function J(L,M){if(!L||!M)return null;const N=new Date(L,0,1+(M-1)*7),Q=N.getDay(),ae=N;return Q<=4?ae.setDate(N.getDate()-N.getDay()+1):ae.setDate(N.getDate()+8-N.getDay()),ae}function te(L){return String(L).padStart(2,"0")}return(L,M)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass])},[e.createVNode(gi,{modelValue:d.value,"onUpdate:modelValue":M[0]||(M[0]=N=>d.value=N),placeholder:Z.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":y.value,"week-starts-on":p.value,"starting-view":f.value.startingView,"minimum-view":f.value.minimumView,"input-format":V.value,"upper-limit":m.value,name:n.name,class:e.normalizeClass(c.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","upper-limit","name","class"])],2))}}),[["__scopeId","data-v-fb3e8176"]]),yi=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),a=new URLSearchParams(r);Object.entries(t).forEach(([s,c])=>{c==null||c===""||a.set(s,String(c))});const l=a.toString();return l?`${n}?${l}`:n},bi=(o,t,n)=>new Promise((r,a)=>{const l=new FormData;l.append("unique","true"),l.append("file",o);const s=new XMLHttpRequest;s.open("POST",t),s.upload.addEventListener("progress",c=>{if(n){if(c.lengthComputable&&c.total>0){n(Math.min(100,Math.round(c.loaded/c.total*100)));return}n(0)}}),s.addEventListener("load",()=>{try{const c=s.responseText?JSON.parse(s.responseText):{};if(s.status>=200&&s.status<300){r(c?.result??null);return}a(new Error(c?.message||c?.error||`Код помилки: ${s.status}`))}catch(c){a(c)}}),s.addEventListener("error",()=>a(new Error("Помилка мережі під час завантаження файлу"))),s.addEventListener("abort",()=>a(new Error("Завантаження файлу скасовано"))),s.send(l)}),ki=async(o,t={})=>{try{const{api:n,id:r="1",form:a="form",table:l="table",customParams:s,onProgress:c}=t,i=n||`/file/upload/uploads?id=${r||""}&form=${a||""}&table=${l||""}`,d=yi(i,s);if(o instanceof File)return await bi(o,d,c);const h=new FormData;return h.append("unique","true"),h.append("file",o),(await fetch(d,{method:"POST",body:h}).then(p=>p.json()))?.result}catch(n){return ge.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},wi=async o=>{try{return await fetch(`file/delete/${o}`),!0}catch(t){return console.error(t),!1}},cr=async o=>{try{const t=await fetch(`/file/download/${o}`);if(!t.ok)throw new Error(`Download failed with status ${t.status}`);const n=await t.blob(),a=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),l=a?.[1]?decodeURIComponent(a[1].replace(/"/g,"").trim()):"",s=o.split("/").filter(Boolean).pop()||"download",c=l||s,i=document.createElement("a");i.setAttribute("download",c),i.href=window.URL.createObjectURL(n),i.click(),window.URL.revokeObjectURL(i.href)}catch(t){console.error(t.message)}},xi=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},dr=o=>{const t=xi(o),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?X.Table:n.textsFormat.includes(t)?X.FileCode:n.documentsFormat.includes(t)?X.FileText:n.archivesFormat.includes(t)?X.FileArchive:X.FileText},vi=["title"],_i={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 px-2 text-center text-xs font-medium text-slate-600"},Ci=["title"],Ei={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},ht=Be(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},action:{type:Boolean,default:!1},isUploading:{type:Boolean,default:!1},progressPercent:{default:0},title:{default:""}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:e.mergeModels(["click"],["update:value","update:item"]),setup(o,{emit:t}){const n=e.useModel(o,"value"),r=e.useModel(o,"item"),a=t,l=o,s=e.computed(()=>l.action),c=e.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),i=e.computed(()=>l.disabled?"opacity-50 cursor-not-allowed":l.isUploading?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),d=e.computed(()=>l.progressPercent>0?`${l.progressPercent}%`:"Завантаження..."),h=f=>typeof f=="string"?f:f?.file_path||"",y=()=>{const f=c.value;wi(f),l.multiple&&Array.isArray(n.value)?n.value=n.value.filter(w=>h(w)!==f):n.value=""},p=()=>{c.value&&window.open(c.value,"_blank")},m=()=>{l.disabled||l.isUploading||a("click")};return(f,w)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,title:f.title,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",i.value]),onClick:m},[f.isUploading?(e.openBlock(),e.createElementBlock("div",_i,[w[2]||(w[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(d.value),1)])):(e.openBlock(),e.createBlock(e.unref(X.Plus),{key:1,class:"h-4 w-4"}))],10,vi)):(e.openBlock(),e.createElementBlock("div",{key:1,title:c.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(dr)(c.value)),{src:`${e.unref(dr)(c.value)} === 'img'`?`/file/resize?filepath=${c.value}&format=webp`:c.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:w[0]||(w[0]=b=>e.unref(cr)(c.value))},null,8,["src"])),e.createElementVNode("div",Ei,[e.createElementVNode("button",{type:"button",onClick:y,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(X.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:p,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-emerald-600"},[e.createVNode(e.unref(X.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:w[1]||(w[1]=b=>e.unref(cr)(c.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(X.Download),{class:"w-4 h-4"})])])],8,Ci))}}),[["__scopeId","data-v-b03cac5c"]]),ur=o=>o?o.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean).map(t=>t.startsWith(".")?t.slice(1):t):[],pr=(o,t)=>!t||o.size<=t*1024*1024?!0:(ge.notify({type:"error",title:"Помилка!",message:`Файл "${o.name}" занадто великий. Максимальний розмір: ${t} МБ`,position:"right-bottom"}),!1),mr=(o,t)=>{if(!t.length)return!0;const n=o.name.split(".").pop()?.toLowerCase()||"";return t.includes(n)?!0:(ge.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${o.name}". Дозволені формати: ${t.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},fr=(o,t)=>{const n={},r=[];if(!o?.length)return{ok:!0,params:n,missingSources:r};const a=t?.value??{};return o.forEach(l=>{if(!l)return;const[s,c]=l.split("="),i=s?.trim(),d=c?.trim();if(!i||!d)return;const h=a[d];if(h==null||h===""){r.push(d);return}n[i]=h}),r.length?(ge.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:n,missingSources:r}):{ok:!0,params:n,missingSources:r}},hr=(o,t)=>!t||!Array.isArray(o)?[]:o,gr=(o,t)=>t||Array.isArray(o)?null:o,yr=o=>{if(!o)return"";const t=o.split(/[/\\]/).pop()||"",n=t.lastIndexOf(".");return n<=0||n===t.length-1?"":t.slice(n+1).toLowerCase()},Bi={class:"flex items-center flex-wrap gap-2"},Vi=["accept","multiple","disabled"],br=e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),a=t,l=e.ref(null),s=e.ref(!1),c=e.ref([]),i=e.inject("values"),d=e.inject("map-file-import-uploading",null),h=e.computed(()=>hr(r.value,!!n.multiple)),y=e.computed(()=>gr(r.value,!!n.multiple)),p=e.computed(()=>ur(n.format)),m=e.computed(()=>fr(n.customParams,i)),f=Z=>{ge.notify({type:"error",title:"Помилка завантаження",message:Z||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},w=()=>{n.disabled||s.value||m.value.ok&&l.value?.click()},b=async(Z,O)=>{const E={api:n.api,customParams:Object.keys(m.value.params).length?m.value.params:void 0,onProgress:_=>{O&&(O.status="uploading",O.progressPercent=_)}},S=await ki(Z,E);return S?.file_path?S.file_path:null};e.watch(s,Z=>{d&&(d.value=Z)},{immediate:!0});const v=e.computed(()=>c.value.filter(Z=>Z.status!=="done")),C=e.computed(()=>v.value[0]||null),V=Z=>typeof Z=="string"?Z:Z?.file_path||"",$=(Z,O)=>({key:`${Date.now()}-${O}-${Z.name}`,file:Z,size:Z.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),U=async Z=>{const{files:O}=Z.target;if(!O||O.length===0)return;if(!m.value.ok){l.value&&(l.value.value="");return}const E=Array.from(O);if(n.max_size&&E.filter(T=>!pr(T,n.max_size)).length>0){l.value&&(l.value.value="");return}if(E.filter(_=>!mr(_,p.value)).length>0){l.value&&(l.value.value="");return}s.value=!0,c.value=E.map((_,T)=>$(_,T));try{if(n.multiple){const oe=await Promise.all(E.map(async(q,I)=>{const J=c.value[I];J.status="uploading",J.progressPercent=0;const te=await b(q,J);return te?(J.status="done",J.path=te,J.uploaded=J.size,J.progressPercent=100):(J.status="error",J.error="Помилка при завантаженні"),te})),A=oe.filter(q=>!!q);if(A.length===0){f();return}A.length<oe.length&&f("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const P=A,Y=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...Y,...P],a("change",r.value);return}const _=E[0],T=c.value[0];T.status="uploading",T.progressPercent=0;const j=await b(_,T);if(!j){T.status="error",T.error="Помилка при завантаженні",f();return}T.status="done",T.path=j,T.uploaded=T.size,T.progressPercent=100,r.value=j,a("change",j)}catch(_){f(_?.message||void 0)}finally{s.value=!1,c.value=[],l.value&&(l.value.value="")}};return(Z,O)=>(e.openBlock(),e.createElementBlock("div",Bi,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:l,type:"file",accept:n.format,multiple:n.multiple,onChange:U,disabled:s.value||Z.disabled},null,40,Vi),y.value?(e.openBlock(),e.createBlock(ht,{key:0,item:y.value,value:r.value,"onUpdate:value":O[0]||(O[0]=E=>r.value=E)},null,8,["item","value"])):e.createCommentVNode("",!0),n.multiple?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(E,S)=>(e.openBlock(),e.createBlock(ht,{key:`${S}-${V(E)}`,multiple:!0,item:E,value:r.value,"onUpdate:value":O[1]||(O[1]=_=>r.value=_)},null,8,["item","value"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,E=>(e.openBlock(),e.createBlock(ht,{key:E.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":E.progressPercent,title:E.file.name},null,8,["progress-percent","title"]))),128)),e.createVNode(ht,{action:"","is-uploading":!1,disabled:Z.disabled||s.value,title:"Добавить файлы",onClick:w},null,8,["disabled"])],64)):!n.multiple&&!C.value?(e.openBlock(),e.createBlock(ht,{key:2,action:"","is-uploading":!1,disabled:Z.disabled||s.value,title:"Обновить файл",onClick:w},null,8,["disabled"])):C.value?(e.openBlock(),e.createBlock(ht,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":C.value.progressPercent,title:C.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0)]))}}),Si={class:"vs-input-file2 flex flex-col gap-4"},$i={class:"flex items-center flex-wrap gap-2"},Ai=["multiple","accept","disabled"],Ni={key:0,class:"text-sm text-rose-600"},Tn=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},multiple:{type:Boolean,default:!1},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),a=e.ref(!1),l=e.ref(""),s=e.ref([]),c=e.inject("values"),i=e.computed(()=>!!t.multiple),d=e.computed(()=>ur(t.format)),h=e.computed(()=>{if(d.value.length)return d.value.map(E=>`.${E}`).join(",")}),y=e.computed(()=>hr(n.value,i.value)),p=e.computed(()=>gr(n.value,i.value)),m=e.computed(()=>fr(t.customParams,c)),f=e.computed(()=>s.value.filter(E=>E.status!=="done")),w=e.computed(()=>i.value?null:f.value[0]||null),b=e.computed(()=>{const E=f.value,S=E.reduce((T,j)=>T+j.size,0);if(!S)return 0;const _=E.reduce((T,j)=>T+Math.min(j.uploaded,j.size),0);return Math.min(100,Math.round(_/S*100))}),v=()=>{t.disabled||a.value||m.value.ok&&r.value?.click()},C=async(E,S)=>{const _=S||Z(E,0);try{_.status="uploading";const T={id:"",fileName:_.file.name,subdir:t.subdir,size:_.file.size,...m.value.params},j=await fetch(`${t.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T)});if(!j.ok)throw new Error("Не вдалося ініціалізувати завантаження");const oe=await j.json().catch(()=>({}));_.uploadId=oe.id||"",_.uploaded=Number(oe.uploaded)||0,_.progressPercent=_.size?Math.min(100,Math.round(_.uploaded/_.size*100)):0;const A=t.chunkSize??5*1024*1024;for(;_.uploaded<_.size;){const q=_.uploaded,I=Math.min(q+A,_.size),te=await _.file.slice(q,I).arrayBuffer(),L=await fetch(`${t.api||"/file/upload2"}/${_.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${q}-${I-1}/${_.size}`,"Content-Type":"application/octet-stream"},body:te});if(!L.ok)throw new Error("Помилка завантаження частини");const M=await L.json().catch(()=>({})),N=M.uploaded!=null?Number(M.uploaded):I;if(_.uploaded=N,_.progressPercent=_.size?Math.min(100,Math.round(_.uploaded/_.size*100)):0,M.finished||N>=_.size){const Q=yr(_.file.name),ae=M.file_path||M.filepath||M.url||(Q?`/files/uploads/${_.uploadId}.${Q}`:`/files/uploads/${_.uploadId}`);return _.path=ae,_.status="done",U(ae),ae}}const P=yr(_.file.name),Y=`/files/uploads/${_.uploadId}${P?`.${P}`:""}`;return _.path=Y,_.status="done",U(Y),Y}catch(T){return _.status="error",_.error=T?.message||"Помилка при завантаженні",l.value=T?.message||"Помилка при завантаженні",null}},V=E=>typeof E=="string"?E:E?.file_path||"",$=E=>!E||E.length===0?[]:Array.from(E),U=E=>{if(i.value){const S=Array.isArray(n.value)?[...n.value]:n.value?[n.value]:[];S.push(E),n.value=S;return}n.value=E},Z=(E,S)=>({key:`${Date.now()}-${S}-${E.name}`,file:E,size:E.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),O=async E=>{const S=E.target,_=$(S.files);if(!_.length)return;if(!m.value.ok){S.value="";return}const T=_.filter(j=>pr(j,t.max_size)&&mr(j,d.value));if(!T.length){S.value="";return}try{a.value=!0,l.value="",s.value=T.map((P,Y)=>Z(P,Y));const oe=(await Promise.allSettled(s.value.map(P=>C(P.file,P)))).filter(P=>P.status==="fulfilled").map(P=>P.value).filter(P=>!!P),A=s.value.filter(P=>P.status==="error").map(P=>P.file.name);if(oe.length===0){l.value="Не вдалося завантажити файл";return}A.length>0?ge.notify({type:"warning",title:"Частина файлів не завантажилась",message:A.join(", "),position:"right-bottom"}):ge.notify({type:"success",title:"Файл завантажено",message:T.length>1?`Завантажено ${oe.length} файлів`:T[0].name,position:"right-bottom"})}finally{a.value=!1,s.value=[],S.value=""}};return(E,S)=>(e.openBlock(),e.createElementBlock("div",Si,[e.createElementVNode("div",$i,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:i.value,accept:h.value,disabled:a.value||t.disabled,onChange:O},null,40,Ai),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(y.value,(_,T)=>(e.openBlock(),e.createBlock(ht,{key:`${T}-${V(_)}`,multiple:!0,item:_,value:n.value,"onUpdate:value":S[0]||(S[0]=j=>n.value=j)},null,8,["item","value"]))),128)):p.value?(e.openBlock(),e.createBlock(ht,{key:1,item:p.value,value:n.value,"onUpdate:value":S[1]||(S[1]=_=>n.value=_)},null,8,["item","value"])):e.createCommentVNode("",!0),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(f.value,_=>(e.openBlock(),e.createBlock(ht,{key:_.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":_.progressPercent,title:_.file.name},null,8,["progress-percent","title"]))),128)):w.value?(e.openBlock(),e.createBlock(ht,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":w.value.progressPercent,title:w.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0),e.createVNode(ht,{action:"","is-uploading":!1,disabled:t.disabled||a.value,"progress-percent":b.value,title:i.value?"Добавить файлы":"Обновить файл",onClick:v},null,8,["disabled","progress-percent","title"])]),l.value?(e.openBlock(),e.createElementBlock("p",Ni,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)]))}}),Mi={class:"flex items-center justify-center h-[30px] w-[30px]"},Fi={class:"max-w-[55vw]"},Di={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},Ti={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},Li={class:"px-[5px]"},Ii={class:""},Ln=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(o){const t=o,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(a){if(a<1024)return`${a} B`;const l=a/1024;return l<1024?`${l.toFixed(2)} KB`:`${(l/1024).toFixed(2)} MB`}return(a,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Mi,[e.createVNode(e.unref(X.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Fi,[e.createElementVNode("p",Di,e.toDisplayString(a.item?.uploaded_name),1),e.createElementVNode("p",Ti,[e.createElementVNode("span",null,e.toDisplayString(a.item?.username),1),e.withDirectives(e.createElementVNode("span",Li,"|",512),[[e.vShow,a.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),l[0]||(l[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",Ii,e.toDisplayString(r(a.item?.size)),1)])])],64))}}),Oi={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Pi={key:0,class:"flex w-full gap-x-3 items-center"},Ri={key:1,class:"flex gap-x-3 w-full items-center"},zi={key:2,class:"flex gap-x-3 w-full items-center"},ji=["href"],Ui={key:3,class:"flex gap-x-3 w-full items-center"},Hi={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},qi={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"},Wi={class:"inline-block"},Ki={class:"inline-block"},Gi={class:"inline-block"},Yi=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(o,{emit:t}){const n=o,r=t;function a(y){return["pdf","json"].includes(y.ext)}function l(y){return["ppt","pptx","doc","docx","xls","xlsx"].includes(y.ext)}function s(y){const p=document.createElement("a");p.setAttribute("download",y?.uploaded_name),p.href=y?.file_path,p.click()}function c(y){y?.file_path&&window.open(y.file_path,"_blank")}async function i(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),r("update")}catch(y){console.error(y)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:i,updateListOnConfirm:!0})}function h(y){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:y})}return(y,p)=>(e.openBlock(),e.createElementBlock("div",Oi,[y.item.ext==="jpg"||y.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Pi,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=m=>h(y.index))},[e.createVNode(Ln,{item:y.item},null,8,["item"])])])):a(y.item)?(e.openBlock(),e.createElementBlock("div",Ri,[e.createVNode(Ln,{item:y.item},null,8,["item"])])):l(y.item)?(e.openBlock(),e.createElementBlock("div",zi,[e.createElementVNode("a",{href:`/api/file-preview?id=${y.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Ln,{item:y.item},null,8,["item"])],8,ji)])):(e.openBlock(),e.createElementBlock("div",Ui,[e.createVNode(Ln,{item:y.item},null,8,["item"])])),e.createElementVNode("div",Hi,[e.createElementVNode("div",qi,[e.createElementVNode("div",Wi,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:p[1]||(p[1]=m=>c(y.item))},[e.createVNode(e.unref(X.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",Ki,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:p[2]||(p[2]=m=>s(y.item))},[e.createVNode(e.unref(X.Download),{class:"h-4 w-4"})])]),p[4]||(p[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",Gi,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:p[3]||(p[3]=m=>d())},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})])])])])]))}}),Xi={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},Zi={class:"flex w-full mb-[12px] items-center gap-x-2"},Ji={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Qi={class1:"ml-auto"},ec={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"},tc={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},nc={class:"relative"},oc={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},rc={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"},lc={key:0},kr=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(o,{emit:t}){const n=o,r=e.inject("form"),a=e.computed(()=>r.value.formId),l=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),h=e.ref([]),y=e.ref(""),p=e.computed(()=>Array.isArray(h.value)?h.value.filter(V=>V.ext==="jpg"||V.ext==="png").map(V=>V?.file_path):[]),m=e.computed(()=>y.value===""?h.value:h.value.filter(V=>V?.uploaded_name?.includes(y.value))),f=V=>{const $=p.value.findIndex(U=>U===V.item.file_path);$!==-1&&(l.value=!0,s.value=$)},w=async()=>{try{const V=await fetch(`${n.prefix}/widget/file/${a.value}`).then($=>$.json());h.value=V?.rows}catch(V){console.error(V)}},b=async V=>{await Promise.all(Array.from(V.target.files).map(async $=>{const U=new FormData;U.append("file",$);try{const Z=`${n.prefix}/widget/file/${a.value}`,O=await fetch(Z,{method:"POST",body:U});return O.ok?(c("update","file-list"),$):(ge.notify({type:O.status>=400&&O.status<500?"warning":"error",title:"Error",message:`Error code: ${O.status}`}),null)}catch(Z){return ge.notify({type:"error",title:"Error",message:Z.message||"Unknown error"}),console.error(Z),null}})),await w()},v=V=>{const $={...V};return V.cancel||($.cancel=()=>{i.value=!1}),V.updateListOnConfirm&&($.confirm=async()=>{await V.confirm(),i.value=!1,w()}),$},C=V=>{d.value=v(V),i.value=!0};return e.watch(a,V=>{V&&w()}),e.onMounted(()=>{a.value&&w()}),(V,$)=>{const U=e.resolveComponent("Lightbox"),Z=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",Xi,[e.createElementVNode("div",Zi,[e.createElementVNode("h2",Ji," Файлів: "+e.toDisplayString(h.value?.length),1),e.createElementVNode("div",Qi,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:$[0]||($[0]=O=>b(O))},null,32),e.createElementVNode("div",ec,[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4"})])])])]),h.value?.length>4?(e.openBlock(),e.createElementBlock("div",tc,[e.createElementVNode("div",null,[e.createElementVNode("div",nc,[e.createElementVNode("div",oc,[e.createVNode(e.unref(X.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":$[1]||($[1]=O=>y.value=O),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,y.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),h.value?.length?(e.openBlock(),e.createElementBlock("div",rc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(O,E)=>(e.openBlock(),e.createBlock(Yi,{key:E,prefix:V.prefix,item:O,index:E,onUpdate:$[2]||($[2]=S=>V.$emit("update","file-list")),onOpenModal:$[3]||($[3]=S=>C(S)),onOpenLightbox:$[4]||($[4]=S=>f(S))},null,8,["prefix","item","index"]))),128)),m.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",lc,$[8]||($[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(U,{modelValue:l.value,"onUpdate:modelValue":$[5]||($[5]=O=>l.value=O),startIndex:s.value,"onUpdate:index":$[6]||($[6]=O=>s.value=O),images:p.value},null,8,["modelValue","startIndex","images"]),e.createVNode(Z,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":$[7]||($[7]=O=>i.value=O),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),ac={class:"flex items-center justify-between"},sc={class:"text-[16px] text-gray-900 font-medium"},ic={class:"grid gap-3"},cc=Be(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ac,[e.createElementVNode("p",sc,e.toDisplayString(o.title),1),e.createVNode(io,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",ic,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),dc={class:"text-[16px] text-gray-900 font-medium"},uc={class:"grid gap-3"},pc=Be(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:a[0]||(a[0]=l=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",dc,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",uc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),mc={class:"flex items-center justify-between"},fc={switcher:cc,accordion:pc,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",mc,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},dt={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},hc=(o,t)=>String(o)===String(t),gc=(o,t)=>String(o)!==String(t),yc=(o,t)=>o>t,bc=(o,t)=>o>=t,kc=(o,t)=>o<t,wc=(o,t)=>o<=t,xc=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,vc=(o,t)=>String(o).startsWith(String(t)),_c=(o,t)=>String(o).endsWith(String(t)),Cc=(o,t)=>String(o).includes(String(t)),Ec=(o,t)=>Array.isArray(t)?t.includes(o):!1,Bc=(o,t)=>Array.isArray(t)?!t.includes(o):!0,Vc=(o,t)=>{if(!t)return!0;switch(t?.[1]){case dt.Equal:return hc(o,t?.[2]);case dt.Inequal:return gc(o,t?.[2]);case dt.Higer:return yc(o,t?.[2]);case dt.HigerOrEqual:return bc(o,t?.[2]);case dt.Lower:return kc(o,t?.[2]);case dt.LowerOrEqual:return wc(o,t?.[2]);case dt.Between:return xc(o,t?.[2]);case dt.StartWith:return vc(o,t?.[2]);case dt.EndWith:return _c(o,t?.[2]);case dt.Contain:return Cc(o,t?.[2]);case dt.In:return Ec(o,t?.[2]);case dt.NotIn:return Bc(o,t?.[2]);default:return!0}};function wr(o,t,n){return t==null||!Array.isArray(t)||t.length===0?!0:(Array.isArray(t[0])?t:[t]).every(a=>{if(!Array.isArray(a)||a.length<2)return!0;const l=a[0],s=n?o?.[n]?.[l]??o?.[l]:o?.[l];return Vc(s,a)})}const xr=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(o){const t=o,n=e.inject("values",e.ref({})),r=e.inject("form"),a=e.computed(()=>t.schema?.filter(c=>wr(n.value,c?.conditions,t.name||void 0))),l=e.computed(()=>fc[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const c=n.value[t.name];if(c)return c;const i={};return n.value={...n.value,[t.name]:i},i});return(c,i)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,d=>(e.openBlock(),e.createBlock(Kr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":h=>s.value[d.name]=h,style:o.style,error:e.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),vr=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:a,onCreated:l})=>{const s=e.ref(!1),c=e.ref({}),i=e.ref([]),d=e.ref(null),h=e.computed(()=>o.add?.title||"Додати"),y=e.computed(()=>o.add?.token||o.add?.model||""),p=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:c,addSchema:i,addForm:d,addTitle:h,addOption:async()=>{if(!(!y.value||d?.value.validate()))try{const b=o.add?.api??`/api/table/${y.value}`,v=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c.value)}),C=await v.json().catch(()=>({})),V=C?.error||C?.message,$=Number(C?.code)>=400;if(!v.ok||$){ge.notify({title:"Помилка",type:"error",message:V||`Код помилки: ${C?.code||v.status}`});return}const U=C?.rows?.[0],Z=C?.[p.value]??C?.id??U?.[p.value]??U?.id;if(!Z){ge.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const O=await t(Z);O&&(n.value.some(S=>String(S?.id)===String(O.id))||n.value.push(O)),l?await l(O,Z):O&&(r.value=O,a.value=Z),s.value=!1,ge.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(b){ge.notify({title:"Помилка",type:"error",message:b?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!o.add)return null;const w=await fetch(`/api/template/form/${o.add.form}`).then(b=>b.json());return i.value=w.schema,c.value={},s.value=!0,null}}},Sc=["aria-expanded","data-focus"],$c={class:"vs-input-select__value-area relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},Ac={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Nc={class:"flex items-center gap-1 min-w-0"},Mc=["title"],Fc=["innerHTML"],Dc=["onClick"],Tc={class:"flex-1 min-w-[2px]"},Lc=["placeholder"],Ic=["title"],Oc=["innerHTML"],Pc={key:3,class:"truncate flex-1 min-w-0"},Rc={key:2,class:"flex-1 min-w-[2px]"},zc=["placeholder"],jc={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Uc={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},Hc=["disabled"],qc={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Wc=["disabled","title"],Kc=e.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(o,{emit:t}){const n=o,r=t,a=e.computed({get:()=>n.keyWord,set:l=>r("update:keyWord",l)});return(l,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",l.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":l.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...c)=>l.onControlKeydown&&l.onControlKeydown(...c)),onClick:s[11]||(s[11]=(...c)=>l.onControlClick&&l.onControlClick(...c)),"data-focus":l.isOpen||l.inputFocus?"true":"false",ref:l.setTriggerRef},[e.createElementVNode("div",$c,[l.isMulti?(e.openBlock(),e.createElementBlock("div",Ac,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.selectedOptions,c=>(e.openBlock(),e.createElementBlock("div",{key:c.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Nc,[l.shouldShowColorDot(c)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:c?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(c)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(c)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(c)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:l.getLabel(c)},[l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:l.renderTemplate(c)},null,8,Fc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c.text),1)],64))],8,Mc)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(i=>l.onRemoveSelected(c.id),["stop"])},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Dc)]))),128)),e.createElementVNode("div",Tc,[!l.disabled&&l.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:l.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:l.selectedIds.length?" ":l.placeholder,"onUpdate:modelValue":s[0]||(s[0]=c=>a.value=c),onFocus:s[1]||(s[1]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[2]||(s[2]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[3]||(s[3]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,Lc)),[[e.vModelText,a.value]]):e.createCommentVNode("",!0)])])):!l.isMulti&&l.selectedOptionLabel&&a.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",l.disabled||!l.search?"relative z-0 flex-1 min-h-[30px] py-0.5 text-inherit":"absolute inset-x-0 top-0 bottom-0 z-[1] text-gray-900 pointer-events-none"]),title:l.selectedOptionLabel},[l.shouldShowColorDot(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:l.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(l.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(l.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:l.renderTemplate(l.selectedOption)},null,8,Oc)):(e.openBlock(),e.createElementBlock("span",Pc,e.toDisplayString(l.selectedOption?.text),1))],10,Ic)):e.createCommentVNode("",!0),!l.isMulti&&!l.disabled&&l.search?(e.openBlock(),e.createElementBlock("div",Rc,[e.withDirectives(e.createElementVNode("input",{ref:l.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:l.selectedOptionLabel?" ":l.placeholder,"onUpdate:modelValue":s[4]||(s[4]=c=>a.value=c),onFocus:s[5]||(s[5]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[6]||(s[6]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[7]||(s[7]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,zc),[[e.vModelText,a.value]])])):!l.isMulti&&l.disabled&&(!l.selectedOptionLabel||a.value!=="")?(e.openBlock(),e.createElementBlock("div",jc,e.toDisplayString(l.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Uc,[l.showClear?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:l.disabled,onClick:s[8]||(s[8]=e.withModifiers((...c)=>l.onClearSelected&&l.onClearSelected(...c),["stop"]))},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Hc)):e.createCommentVNode("",!0),l.showClear?(e.openBlock(),e.createElementBlock("div",qc)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:l.disabled,onClick:s[9]||(s[9]=e.withModifiers((...c)=>l.onToggleSelect&&l.onToggleSelect(...c),["stop"])),title:l.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],8,Wc)])],42,Sc))}}),Gc=["aria-disabled","onMousedown"],Yc={class:"leading-[19px]"},Xc=["innerHTML"],Zc={key:1,class:"px-3 py-2 text-center text-gray-500"},Jc=e.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(o){return(t,n)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,ref:t.setDropdownRef,class:"fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:e.normalizeStyle(t.dropdownStyle),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:t.dropdownStyle.maxHeight||"300px"}),ref:t.setListRef},[t.filteredOptionsList.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.filteredOptionsList,(r,a)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:l=>t.setItemRef(l,a),class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",t.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",t.selectedNavIndex===a&&!t.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":t.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(l=>t.onOptionClick(r),["prevent","stop"])},[t.shouldShowColorDot(r)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:r?.color})},null,4)):e.createCommentVNode("",!0),!t.optionTemplate&&t.optionHasIcon(r)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.iconWrapperClass),style:e.normalizeStyle(t.getIconColorStyle(r)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",Yc,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,Xc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,Gc))),128)):(e.openBlock(),e.createElementBlock("div",Zc," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),Qc={class:"flex justify-end items-center gap-x-2 py-3 px-4 border-t border-gray-200 w-full"},ed=["onClick"],td=["disabled"],nd="__autoMeta",_r="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",ko=Be(e.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t,a=e.computed(()=>n.multiple),l=e.computed(()=>n.disabled),s=e.computed(()=>n.search);et(n.style);const c=e.computed({get:()=>n.modelValue,set:H=>r("update:modelValue",H)});!c.value&&n.defaultValue&&(c.value=n.defaultValue);const i=e.ref(null),d=e.ref(null),h=e.ref(null),y=e.ref(null),p=e.ref(!1),m=e.ref(!1),f=e.ref(null),w=e.ref(-1),b=e.ref([]),v=e.ref(""),C=e.ref(null),V=H=>{d.value=H},$=H=>{C.value=H},U=H=>{y.value=H},Z=H=>{h.value=H},O=(H,re)=>{b.value[re]=H},E=e.ref({}),S=e.ref([]),_=e.computed(()=>{if(!S.value.length)return[];const H=be.value,re=new Map(H.map(me=>[me.id?.toString(),me]));return S.value.map(me=>re.get(me?.toString())).filter(me=>!!me)}),T=e.computed(()=>n.placeholder||"Select..."),j=e.computed(()=>te(f.value)),oe=e.computed(()=>l.value?!1:a.value?S.value.length>0:!!c.value),A=H=>a.value?S.value.some(re=>re?.toString()===H?.toString()):c.value?.toString()===H?.toString(),P=e.computed(()=>{let H=be.value??[];if(!n.data&&v.value.trim()!==""){const re=v.value.toLowerCase();H=H.filter(me=>{const Ne=te(me).toLowerCase(),ze=me.text?.toLowerCase?.()||"";return Ne.includes(re)||ze.includes(re)})}if(a.value&&S.value.length){const re=new Set(S.value.map(me=>me?.toString()));H=H.filter(me=>!re.has(me.id?.toString()))}return H}),Y=e.inject("values"),q=e.inject("field-props"),I=e.computed(()=>n.slot??n?.optionTemplate??""),J=H=>Vn(H,I.value),te=H=>Sn(H,I.value),L=e.computed(()=>Cn(I.value)),M=H=>rn(H),N=H=>!!(!L.value&&Dt(H)&&!M(H)),Q=H=>{const re=Dt(H);return re?{color:re}:void 0},ae=H=>!!(!L.value&&(on(H)||M(H))),ee=(H,re,me)=>{if(!q)return!1;const Ne=q.value?.[H]??{},ze=(je,Qe,xt)=>{if(!Qe.length)return je;const[pt,...vt]=Qe,mt={...je};if(!vt.length)return mt[pt]=xt,mt;const zt=typeof je[pt]=="object"&&je[pt]!==null?je[pt]:{};return mt[pt]=ze(zt,vt,xt),mt},Je=ze(Ne,re,me);return q.value={...q.value||{},[H]:Je},!0},he=H=>{if(!q||!n.name)return;const re=q.value?.[n.name]??{};q.value={...q.value||{},[n.name]:{...re,[nd]:H}}},we=H=>{if(!n.set)return;const re=Y?.value;!re&&!q||Object.entries(n.set).forEach(([me,Ne])=>{if(!me)return;const ze=H?H[Ne]:null,Je=me.split(".").map(xt=>xt.trim()).filter(Boolean);if(!Je.length)return;const[je,...Qe]=Je;Qe.length&&ee(je,Qe,ze??null)||re&&(re[je]=ze??null)})},{optionsList:be,parentValue:$e,fetchOptions:Me,fetchOptionByValue:Fe,loadOptions:Re}=Bn({props:n,formValues:Y,watchParent:!1}),se=H=>H==null?"":String(H),ie=H=>{if(a.value){if(!S.value.length){be.value=H;return}}else if(!f.value){be.value=H;return}const re=new Set(H.map(Ne=>se(Ne.id)).filter(Boolean));if(a.value){const Ne=new Set(S.value.map(Je=>se(Je)).filter(Boolean)),ze=(be.value??[]).filter(Je=>{const je=se(Je.id);return!je||!Ne.has(je)?!1:!re.has(je)});be.value=[...ze,...H];return}const me=se(f.value?.id);if(me&&!re.has(me)){be.value=[f.value,...H];return}be.value=H},ve=e.ref(0),Se=async H=>{const re=++ve.value,me=await Me(H);return re!==ve.value?null:me},Le=async()=>{if(n.data){const H=await Se(v.value);return H&&ie(H),be.value}return Re()},qe=async H=>{if(H==null||H==="")return null;const re=be.value?.find(me=>me?.id?.toString()===String(H));return re||Fe(H)},z=async H=>{const re=new Set(be.value.map(Ne=>Ne.id?.toString())),me=H.filter(Ne=>!re.has(Ne?.toString()));me.length&&await me.reduce(async(Ne,ze)=>{await Ne;const Je=await qe(ze);Je&&be.value.push(Je)},Promise.resolve())},ne=()=>{if(!P.value.length){w.value=-1;return}let H=0;if(!a.value&&f.value){const re=f.value.id?.toString(),me=P.value.findIndex(Ne=>Ne.id?.toString()===re);me>=0&&(H=me)}w.value=H,e.nextTick(()=>{R(b.value[H],h.value)})},le=async()=>{l.value||(p.value=!0,await e.nextTick(()=>{_e()}),await Le(),await e.nextTick(()=>{_e(),C.value?.focus()}),ne())},ue=()=>{p.value=!1,w.value=-1,e.nextTick(()=>{C.value?.blur()})},ke=async H=>{if(l.value)return;(H!==void 0?H:!p.value)?await le():ue()},Ae=async()=>{if(!l.value){if(p.value){ue();return}await le()}},De=()=>{a.value?(S.value=[],c.value=[],r("change",[]),W(null,[])):(f.value=null,c.value=null,r("change",null),W(null,null)),we(null),he(null),v.value="",ue(),e.nextTick(()=>{C.value?.focus()})},Te=H=>{a.value&&(S.value=S.value.filter(re=>re?.toString()!==H?.toString()),c.value=[...S.value],r("change",c.value),W(null),e.nextTick(()=>C.value?.focus()))},W=(H,re)=>{const me=re??(a.value?[...S.value]:H?.id??null);r("value-selected",{name:n.name,value:me,option:H})},x=(H,re="manual")=>{a.value?(A(H.id)||(S.value=[...S.value,H.id],c.value=[...S.value],r("change",c.value),W(H)),v.value="",e.nextTick(()=>{C.value?.focus(),w.value=Math.min(w.value,P.value.length-1)}),we(null)):(f.value=H,c.value=H.id,r("change",c.value),W(H),v.value="",ue(),we(H),re==="parent-auto"&&he({source:re,parentField:n.parent??null,parentValue:$e.value??null}))},D=H=>{if(A(H.id)){a.value||ue();return}x(H)},R=(H,re)=>{if(!H||!re)return;const me=H.offsetTop,Ne=me+H.offsetHeight,ze=re.scrollTop,Je=ze+re.clientHeight;let je=re.scrollTop;me<ze?je=me-80:Ne>Je&&(je=Ne-re.clientHeight+4);const Qe=re;Qe.scrollTop=je},de=H=>{let re=H.parentElement;for(;re;){if(re.classList.contains("ui-dialog__content"))return re;const me=window.getComputedStyle(re),Ne=me.overflow+me.overflowY+me.overflowX;if(Ne.includes("auto")||Ne.includes("scroll")||re===document.body||re===document.documentElement)return re;re=re.parentElement}return document.body},_e=()=>{if(!d.value)return;const H=d.value.getBoundingClientRect(),re=window.innerHeight||document.documentElement.clientHeight,me=window.innerWidth||document.documentElement.clientWidth,Ne=8,ze=8,Je=n.maxHeight||300,je=re-H.bottom-ze-Ne,Qe=H.top-ze-Ne,xt=je>=Qe,pt=Math.max(me-Ne*2,0);let{width:vt}=H;pt>0&&vt>pt&&(vt=pt);let{left:mt}=H;mt+vt+Ne>me&&(mt=me-vt-Ne),mt=Math.max(mt,Ne);const zt=Math.min(Je,Math.max(xt?je:Qe,50));E.value={position:"fixed",left:`${mt}px`,width:`${vt}px`,maxHeight:`${zt}px`,transform:xt?"none":"translateY(-100%)",top:xt?`${H.bottom+ze}px`:`${H.top-ze}px`}},Oe=async H=>{l.value||!p.value&&(H.key==="ArrowDown"||H.key==="ArrowUp")&&(H.preventDefault(),await le())},Ie=H=>{if(!p.value)return;const{key:re}=H;if(re==="ArrowDown")H.preventDefault(),w.value+1<P.value.length&&(w.value+=1,R(b.value[w.value],h.value));else if(re==="ArrowUp")H.preventDefault(),w.value>0&&(w.value-=1,R(b.value[w.value],h.value));else if(re==="Enter"){H.preventDefault();const me=P.value[w.value];me&&x(me),C.value?.blur()}else re==="Escape"?(H.preventDefault(),ue()):re==="Backspace"?a.value&&v.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),c.value=[...S.value],r("change",c.value)):re==="Home"?(w.value=0,R(b.value[0],h.value)):re==="End"?(w.value=P.value.length-1,R(b.value[w.value],h.value)):re==="Tab"&&ue()},Ue=()=>{l.value||(m.value=!0)},We=()=>{m.value=!1,v.value=""},ut=H=>{H.key==="Escape"&&p.value&&ue()},Ke=H=>{const re=H.target;i.value?.contains(re)||y.value?.contains(re)||ue()},ct=H=>{p.value&&h.value&&!h.value.contains(H.target)&&_e()},Pt=()=>{p.value&&_e()},eo=()=>{p.value&&_e()};async function Qt(){if(a.value)Array.isArray(c.value)?S.value=[...c.value]:(S.value=c.value==null?[]:[c.value],c.value=[...S.value]),n.data&&S.value.length&&(await z(S.value),await e.nextTick());else{if(Array.isArray(c.value)){const H=c.value[0]??null;c.value=H??null}c.value!=null&&c.value!==""?f.value=await qe(c.value):f.value=null,we(f.value??null)}}e.watch(c,()=>{Qt()}),e.onMounted(async()=>{if(addEventListener("keydown",ut),addEventListener("scroll",ct,!0),addEventListener("resize",Pt),document.addEventListener("click",Ke,!0),d.value&&de(d.value).addEventListener("scroll",eo,!0),n.options?.length&&!n.data)be.value=[...n.options];else if(n.data){const H=await Se("");H&&ie(H)}await Qt(),Gt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",ut),removeEventListener("scroll",ct,!0),removeEventListener("resize",Pt),document.removeEventListener("click",Ke,!0),d.value&&de(d.value).removeEventListener("scroll",eo,!0)});const{isOpenAdd:$t,addData:Rt,addSchema:K,addForm:fe,addTitle:nt,addOption:At,onAddValue:wt}=vr({props:n,fetchOptionByValue:Fe,optionsList:be,selectedOption:f,modelValue:c});function Ge(H,re=200){let me;return(...Ne)=>{me&&clearTimeout(me),me=window.setTimeout(()=>H(...Ne),re)}}const en=Ge(async H=>{const re=await Se(H);re&&ie(re)},200);e.watch(v,H=>{n.data&&en(H.trim())}),e.watch(()=>n.options,H=>{!n.data&&H?.length&&(be.value=[...H],Qt())},{immediate:!0});const Gt=e.ref(!0);return e.watch($e,async()=>{if(n.data&&(Gt.value||(a.value?(S.value=[],c.value=[],r("change",[])):(f.value=null,c.value=null,r("change",null))),await Le(),n.auto===1&&$e.value&&be.value.length>0)){const H=be.value[0];H&&x(H,"parent-auto")}}),(H,re)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:e.unref($t),"onUpdate:visible":re[2]||(re[2]=me=>e.isRef($t)?$t.value=me:null),class:"z-[1000]",title:e.unref(nt),teleport:H.teleport},{footer:e.withCtx(({handleClose:me})=>[e.createElementVNode("div",Qc,[e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 hover:bg-gray-50",onClick:me}," Скасувати ",8,ed),e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700",onClick:re[1]||(re[1]=(...Ne)=>e.unref(At)&&e.unref(At)(...Ne))}," Додати ")])]),default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(K),modelValue:e.unref(Rt),"onUpdate:modelValue":re[0]||(re[0]=me=>e.isRef(Rt)?Rt.value=me:null),ref_key:"addForm",ref:fe},null,8,["schema","modelValue"])]),_:1},8,["visible","title","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:i,onClick:re[5]||(re[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[re[6]||(re[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),re[7]||(re[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(Kc,{keyWord:v.value,"onUpdate:keyWord":re[3]||(re[3]=me=>v.value=me),disabled:l.value,"is-open":p.value,"input-focus":m.value,"is-multi":a.value,"selected-options":_.value,"selected-ids":S.value,placeholder:T.value,search:s.value,"option-template":I.value,"icon-wrapper-class":_r,"selected-option-label":j.value,"selected-option":f.value,"show-clear":oe.value,"set-trigger-ref":V,"set-input-ref":$,"should-show-color-dot":N,"option-has-icon":ae,"get-icon-color-style":Q,"resolve-option-icon":M,"render-template":J,"get-label":te,"on-control-keydown":Oe,"on-control-click":Ae,"on-input-focus":Ue,"on-input-blur":We,"on-input-keydown":Ie,"on-remove-selected":Te,"on-clear-selected":De,"on-toggle-select":ke},null,8,["keyWord","disabled","is-open","input-focus","is-multi","selected-options","selected-ids","placeholder","search","option-template","selected-option-label","selected-option","show-clear"]),e.createVNode(Jc,{"is-open":p.value,"dropdown-style":E.value,"filtered-options-list":P.value,"selected-nav-index":w.value,"option-template":I.value,"icon-wrapper-class":_r,"set-dropdown-ref":U,"set-list-ref":Z,"set-item-ref":O,"is-selected":A,"on-option-click":D,"should-show-color-dot":N,"option-has-icon":ae,"get-icon-color-style":Q,"resolve-option-icon":M,"render-template":J},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:re[4]||(re[4]=(...me)=>e.unref(wt)&&e.unref(wt)(...me)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:l.value,type:"button"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),re[8]||(re[8]=e.createElementVNode("span",null,"Додати",-1))],8,td)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-49a64961"]]),wo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,od=["disabled","aria-expanded"],rd={class:"truncate"},ld={class:"py-2 px-4"},ad={class:"block font-medium text-[13px] text-foreground"},sd={class:"truncate"},id={class:"p-1 border-t border-gray-200"},cd={class:"space-y-0.5 max-h-48 overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-none [&::-webkit-scrollbar-track]:bg-scrollbar-track [&::-webkit-scrollbar-thumb]:bg-scrollbar-thumb"},dd=["onClick"],ud=["checked"],pd={class:"shrink-0 size-3.5 flex justify-center items-center"},md={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},fd={class:"truncate"},hd={key:0,class:"px-3 py-2 text-xs text-stone-500"},In=e.defineComponent({__name:"vs-input-inline-select",props:{multiple:{type:Boolean},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t;et(n.style);const a=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:ee=>r("update:modelValue",ee)});a.value==null&&n.defaultValue!=null&&(a.value=n.defaultValue);const l=e.inject("values"),s=e.inject("field-props"),c=e.computed(()=>!!n.disabled),i=e.ref(null),d=e.ref(!1),h=e.ref(null),y=e.ref(null),p=e.ref(null),m=e.ref({}),f=`vs-input-inline-select-${wo()}`,w=e.computed(()=>n.placeholder||"Оберіть значення"),b=e.computed(()=>U(i.value)||n.placeholder||"Оберіть значення"),v=e.computed(()=>n.slot??""),C=e.computed(()=>Cn(v.value)),V=e.computed(()=>n.teleport||"body"),$=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,U=ee=>Sn(ee,v.value),Z=ee=>!!(!C.value&&Dt(ee)),O=e.computed(()=>{const ee=Dt(i.value).trim();return ee?$.test(ee)?`bg-[${ee}] border-[${ee}]`:`bg-${ee.toLowerCase()}-500 border-${ee.toLowerCase()}-500`:""}),{optionsList:E,parentValue:S,fetchOptions:_,fetchOptionByValue:T,loadOptions:j}=Bn({props:n,formValues:l,watchParent:!1}),oe=(ee,he,we)=>{if(!s)return!1;const be=s.value?.[ee]??{},$e=(Fe,Re,se)=>{if(!Re.length)return Fe;const[ie,...ve]=Re,Se={...Fe};if(!ve.length)return Se[ie]=se,Se;const Le=typeof Fe[ie]=="object"&&Fe[ie]!==null?Fe[ie]:{};return Se[ie]=$e(Le,ve,se),Se},Me=$e(be,he,we);return s.value={...s.value||{},[ee]:Me},!0},A=ee=>{if(!n.set)return;const he=l?.value;!he&&!s||Object.entries(n.set).forEach(([we,be])=>{if(!we)return;const $e=ee?ee[be]:null,Me=we.split(".").map(se=>se.trim()).filter(Boolean);if(!Me.length)return;const[Fe,...Re]=Me;Re.length&&oe(Fe,Re,$e??null)||he&&(he[Fe]=$e??null)})},P=ee=>a.value?.toString?.()===ee?.toString?.(),Y=()=>{if(!y.value||typeof window>"u")return;const ee=y.value.getBoundingClientRect(),he=8,we=8,be=window.innerHeight||document.documentElement.clientHeight,$e=window.innerWidth||document.documentElement.clientWidth,Me=p.value?.offsetHeight||260,Fe=Math.max(ee.width,176),Re=Math.max($e-he*2,120),se=Math.min(Fe,Re);let ie=ee.left;ie+se+he>$e&&(ie=$e-se-he),ie=Math.max(ie,he);const ve=be-ee.bottom-we-he,Se=ee.top-we-he,Le=ve<Math.min(Me,260)&&Se>ve,qe=Math.max(120,Math.min(320,Le?Se:ve));m.value={position:"fixed",left:`${ie}px`,top:Le?`${ee.top-we}px`:`${ee.bottom+we}px`,transform:Le?"translateY(-100%)":"none",width:`${se}px`,maxHeight:`${qe}px`}},q=async()=>{if(n.data){E.value=await _("");return}await j()},I=async()=>{if(a.value==null||a.value===""){i.value=null,A(null);return}const ee=E.value.find(he=>he.id?.toString()===String(a.value));if(ee){i.value=ee,A(ee);return}i.value=await T(a.value),A(i.value??null)},J=async()=>{c.value||(d.value=!0,await e.nextTick(),Y(),await q(),await e.nextTick(),Y())},te=()=>{d.value=!1},L=async()=>{if(d.value){te();return}await J()},M=ee=>{r("value-selected",{name:n.name,value:ee?.id??null,option:ee})},N=ee=>{i.value=ee,a.value=ee.id,r("change",ee.id),M(ee),A(ee),te()},Q=ee=>{const he=ee.target;h.value?.contains(he)||p.value?.contains(he)||te()},ae=()=>{d.value&&Y()};return e.watch(()=>n.options,ee=>{n.data||(E.value=ee?[...ee]:[],I())},{immediate:!0,deep:!0}),e.watch(a,()=>{I()}),e.watch(S,async()=>{n.data&&(await q(),i.value&&!E.value.some(ee=>ee.id?.toString()===i.value?.id?.toString())&&(i.value=null,a.value=null,r("change",null),M(null),A(null)))}),e.onMounted(async()=>{document.addEventListener("click",Q,!0),window.addEventListener("resize",ae),window.addEventListener("scroll",ae,!0),await q(),await I()}),e.onUnmounted(()=>{document.removeEventListener("click",Q,!0),window.removeEventListener("resize",ae),window.removeEventListener("scroll",ae,!0)}),(ee,he)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:h,onClick:he[0]||(he[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:y,type:"button",disabled:c.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:e.normalizeClass(["py-1.5 px-2.5 inline-flex items-center gap-2 text-nowrap text-xs sm:text-[13px] rounded-lg focus:outline-hidden disabled:opacity-50 disabled:pointer-events-none max-w-full border",O.value?`${O.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:L},[e.createElementVNode("span",rd,e.toDisplayString(b.value),1)],10,od),(e.openBlock(),e.createBlock(e.Teleport,{to:V.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:p,class:"z-[3000] w-44 transition-[opacity,margin] duration-150 bg-white text-gray-900 border border-gray-200 rounded-xl shadow-lg",style:e.normalizeStyle(m.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",ld,[e.createElementVNode("span",ad,[e.createElementVNode("span",sd,e.toDisplayString(w.value),1)])]),e.createElementVNode("div",id,[e.createElementVNode("div",cd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),we=>(e.openBlock(),e.createElementBlock("label",{key:we.id,class:"py-1.5 px-3 group flex items-center gap-x-3 rounded-lg cursor-pointer text-[13px] text-gray-800 hover:bg-gray-100",onClick:e.withModifiers(be=>N(we),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:f,checked:P(we.id),tabindex:"-1"},null,8,ud),e.createElementVNode("span",pd,[Z(we)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:we.color})},null,4)):(e.openBlock(),e.createElementBlock("span",md))]),e.createElementVNode("span",fd,e.toDisplayString(U(we)),1),e.createVNode(e.unref(X.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",P(we.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,dd))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",hd,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),gd=["placeholder","disabled"],Cr=e.defineComponent({__name:"vs-input-textarea",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value,disabled:a.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,gd)),[[e.vModelText,r.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(o){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>j0)),n=o,r=e.useModel(o,"modelValue"),a=e.computed(()=>!!n.disabled),l=e.computed(()=>n.placeholder??""),s=e.computed(()=>({height:n.richtextProps.height||"300px",format:n.format,...n.richtextProps}));return(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full overflow-hidden rounded-md border border-solid border-stone-200 disabled:opacity-50 disabled:cursor-not-allowed",c.customClass]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value},s.value),null,16,["modelValue","placeholder"])],6))}}),yd={},bd={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function kd(o,t){return e.openBlock(),e.createElementBlock("svg",bd,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 wd=Be(yd,[["render",kd]]),xd={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},vd={key:0,class:"flex flex-col gap-2 !p-4 border-b border-gray-200 md:flex-row md:items-center md:justify-between bg-gray-50"},_d={key:0,class:"relative flex-1 min-w-0"},Cd={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},Ed={class:"w-full overflow-x-auto"},Bd={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Vd={class:"bg-gray-50"},Sd={class:"border-b border-gray-200"},$d={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Ad=["onClick"],Nd={key:0,class:"text-gray-400"},Md={key:0,colspan:"100%",class:"text-center"},Fd={class:"w-full"},Dd={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Td=["data-row-index","onDragstart","onDragover","onDrop"],Ld=["onPointerdown"],Id={class:"flex items-center justify-center"},Od=["innerHTML"],Pd={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Rd={key:0},zd=["src"],jd={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Ud={key:1,class:"flex items-center justify-center"},Hd={key:2,class:"text-sm font-medium text-gray-900"},qd={class:"px-4 py-3 text-right whitespace-nowrap"},Wd={class:"flex items-center justify-end gap-2"},Kd=["onClick"],Gd=["onClick"],Yd={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},Br=e.defineComponent({__name:"vs-input-datatable",props:e.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useSlots(),r=z=>t.actions===void 0?!0:t.actions.includes(z),a=["search","import","export","add"],l=e.computed(()=>a.some(z=>r(z))),s=e.useModel(o,"modelValue"),c=e.ref({}),i=e.ref(""),d=e.ref(null),h=e.ref("asc"),y=e.computed(()=>{const z=s.value??[],ne=i.value?z.filter(ke=>p.value?.some(Ae=>{const De=Ae.key||Ae.name;if(!De)return!1;const Te=ke[De];return Te?Array.isArray(Te)?Te.join(", ").toLowerCase().includes(i.value.toLowerCase()):String(Te).toLowerCase().includes(i.value.toLowerCase()):!1})):z;if(!d.value)return ne;const le=d.value,ue=[...ne].sort((ke,Ae)=>{const De=$e(ke?.[le]),Te=$e(Ae?.[le]);return typeof De=="number"&&typeof Te=="number"?De-Te:String(De).localeCompare(String(Te))});return h.value==="asc"?ue:ue.reverse()}),p=e.computed(()=>(t.colModel??[]).filter(z=>!z.tableHidden)),m=e.ref(null),f=e.ref(null),w=e.ref(null);function b(z){return z.pointerType==="touch"||z.pointerType==="pen"}function v(z,ne){const ue=document.elementFromPoint(z,ne)?.closest?.("[data-row-index]")??null;if(!ue)return null;const ke=ue.getAttribute("data-row-index");if(ke==null)return null;const Ae=Number.parseInt(ke,10);return Number.isNaN(Ae)?null:Ae}function C(z,ne){b(z)&&(z.preventDefault(),z.currentTarget.setPointerCapture(z.pointerId),m.value=ne,f.value=ne)}function V(z){if(m.value===null||!b(z))return;z.preventDefault();const ne=v(z.clientX,z.clientY);ne!==null&&(f.value=ne)}function $(z){if(m.value===null||!b(z))return;z.preventDefault();const ne=v(z.clientX,z.clientY);E(ne??m.value);try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}function U(z){if(b(z)){m.value=null,f.value=null;try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}}const Z=z=>{m.value=z},O=z=>{f.value=z},E=z=>{if(m.value===null||m.value===z){m.value=null,f.value=null;return}const ne=[...s.value],[le]=ne.splice(m.value,1);ne.splice(z,0,le),s.value=ne,m.value=null,f.value=null},S=()=>{w.value&&w.value.click()},_=z=>{const ne=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],le=z.toLowerCase();return ne.some(ue=>le.endsWith(ue))},T=z=>{const le=z.target.files?.[0];if(!le)return;const ue=new FileReader;ue.onload=ke=>{try{const Ae=ke.target?.result;if(typeof Ae=="string"){const De=JSON.parse(Ae);Array.isArray(De)&&s.value.push(...De)}}catch(Ae){console.error("Error parsing file:",Ae)}},ue.readAsText(le)},j=()=>{const z=JSON.stringify(s.value,null,2),ne=new Blob([z],{type:"application/json"}),le=URL.createObjectURL(ne),ue=document.createElement("a");ue.href=le,ue.download="data.json",ue.click(),URL.revokeObjectURL(le)},oe=new Set(["autocomplete","select","radio","checkbox","combobox"]),A=new Map,P=(z,ne)=>{const le=`/api/suggest/${z}`,ue=le.includes("?")?"&":"?",ke=ne?`&val=${ne}`:"";return`${le}${ue}json=1${ke}`},Y=z=>z==null||z===""?null:typeof z=="object"?z?.id!==void 0&&z.id!==null&&z.id!==""?z.id:null:z,q=z=>{const ne=new Set;return Array.isArray(s.value)&&s.value.forEach(le=>{const ue=le?.[z];if(ue==null||ue==="")return;if(Array.isArray(ue)){ue.forEach(Ae=>{const De=Y(Ae);De!==null&&ne.add(De)});return}const ke=Y(ue);ke!==null&&ne.add(ke)}),ne},I=async()=>{if(!t.colModel?.length)return;const z=t.colModel.filter(ne=>ne.data&&oe.has(ne.type?.toLowerCase()||""));z.length&&await Promise.all(z.map(async ne=>{const le=ne.key||ne.name;if(!le)return;const ue=q(le),ke=Array.from(ue).map(Te=>String(Te)).sort(),Ae=ke.join(",");if(!ke.length||A.get(le)===Ae)return;A.set(le,Ae);const De=ke.map(encodeURIComponent).join(",");try{const W=await(await fetch(P(ne.data,De))).json();c.value[le]=W?.data??W}catch(Te){console.error("Failed to fetch column values",Te)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{I()},{immediate:!0,deep:!0});const J=e.ref(""),te=e.ref(!1);let L="edit",M=0;const N=z=>(z?.format||z?.type||"").toString().toLowerCase(),Q=e.computed(()=>(t.colModel?.filter(ne=>N(ne)!=="slot")??[]).map(ne=>{const le=ne.key||ne.name;return le?{...ne,name:le,key:le}:ne})),ae=e.ref({}),ee=e.ref({}),he=z=>typeof z!="string"?!1:!!n[z],we=(z,ne)=>ne?ne.split(".").reduce((le,ue)=>le==null?le:le[ue.trim()],z):z,be=(z,ne)=>typeof z!="string"?"":z.replace(/{{\s*([^}]+)\s*}}/g,(le,ue)=>{const ke=we(ne,ue.trim());return ke??""}),$e=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(ne=>$e(ne)).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()},Me=z=>{const ne=z.key||z.name;if(ne){if(d.value===ne){h.value=h.value==="asc"?"desc":"asc";return}d.value=ne,h.value="asc"}};async function Fe(){J.value="Додати",te.value=!0,L="add",ae.value={}}function Re(z,ne){if(!z?.length)return null;const le=typeof ne=="object"?ne?.id:ne;return le==null||le===""?null:z.find(ue=>ue?.id?.toString()===le.toString())?.text??null}function se(z){return z==null||z===""?"-":Array.isArray(z)?z.map(ne=>typeof ne=="object"?ne?.text??ne?.id??"-":ne).join(", "):typeof z=="object"?z?.text??z?.id??"-":z}function ie(z,ne){const le=ne.key||ne.name,ue=z?.[le],ke=c.value[le];if(!ue)return"-";if(Array.isArray(ue)){const De=ue.map(Te=>Re(ke,Te)).filter(Boolean);return De.length?De.join(", "):se(ue)}const Ae=Re(ke,ue);return Ae||se(ue)}async function ve(z,ne){J.value="Редагувати",te.value=!0,L="edit",M=ne,ae.value={...z}}function Se(){const z=ee.value.validate();if(z){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(z).map(([ne,le])=>`${ne}: ${le}`).join(`
|
|
2
|
+
`)});return}L==="add"?Array.isArray(s.value)?s.value=[...s.value,ae.value]:s.value=[ae.value]:s.value=s.value.map((ne,le)=>le===M?ae.value:ne),te.value=!1}function Le(z){s.value=s.value.filter((ne,le)=>le!==z)}function qe(){te.value=!1}return(z,ne)=>(e.openBlock(),e.createElementBlock("div",xd,[l.value?(e.openBlock(),e.createElementBlock("div",vd,[r("search")?(e.openBlock(),e.createElementBlock("div",_d,[e.createVNode(e.unref(X.Search),{class:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"}),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":ne[0]||(ne[0]=le=>i.value=le),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",Cd,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:w,onChange:T,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),r("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:S,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4 text-gray-700"}),ne[4]||(ne[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),r("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:j,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(X.Download),{class:"h-4 w-4 text-gray-700"}),ne[5]||(ne[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),r("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:Fe,type:"button",class:"inline-flex items-center gap-2 rounded-md bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-600 transition-colors"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4 text-white"}),ne[6]||(ne[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ed,[e.createElementVNode("table",Bd,[e.createElementVNode("thead",Vd,[e.createElementVNode("tr",Sd,[e.createElementVNode("th",$d,[e.createVNode(e.unref(X.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,le=>(e.openBlock(),e.createElementBlock("th",{key:le.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:ue=>Me(le),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(le.ua||le.label),1),d.value===(le.key||le.name)?(e.openBlock(),e.createElementBlock("span",Nd,e.toDisplayString(h.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,Ad)]))),128)),ne[7]||(ne[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":!f.value}])},[y.value.length===0?(e.openBlock(),e.createElementBlock("td",Md,[e.createElementVNode("div",Fd,[e.createElementVNode("div",Dd,[e.createVNode(wd,{class:"w-48 mx-auto"}),ne[8]||(ne[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(y.value,(le,ue)=>(e.openBlock(),e.createElementBlock("tr",{key:le.id,"data-row-index":ue,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":m.value===ue,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":f.value===ue}]),draggable:"true",onDragstart:ke=>Z(ue),onDragover:e.withModifiers(ke=>O(ue),["prevent"]),onDrop:ke=>E(ue)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:ke=>C(ke,ue),onPointermove:V,onPointerup:$,onPointercancel:U},[e.createElementVNode("div",Id,[e.createVNode(e.unref(X.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,Ld),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,ke=>(e.openBlock(),e.createElementBlock("td",{key:ke.key,class:"px-4 py-3 align-middle"},[N(ke)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[he(ke.slot)?e.renderSlot(z.$slots,ke.slot,{key:0,row:le,value:le[ke.key],column:ke}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:be(ke.slot,le)},null,8,Od))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[N(ke)==="file"?(e.openBlock(),e.createElementBlock("div",Pd,[_(ie(le,ke))?(e.openBlock(),e.createElementBlock("div",Rd,[e.createElementVNode("img",{src:`/file/resize?filepath=${ie(le,ke)}&format=webp`,alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,zd)])):(e.openBlock(),e.createElementBlock("div",jd,[e.createVNode(e.unref(X.FileText),{class:"h-4 w-4 min-w-4"})]))])):N(ke)==="color"?(e.openBlock(),e.createElementBlock("div",Ud,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:ie(le,ke)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Hd,e.toDisplayString(ie(le,ke)),1))],64))]))),128)),e.createElementVNode("td",qd,[e.createElementVNode("div",Wd,[e.createElementVNode("button",{onClick:ke=>ve(le,ue),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(X.Pencil),{class:"h-4 w-4"})],8,Kd),e.createElementVNode("button",{onClick:ke=>Le(ue),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,Gd)])])],42,Td))),128))],2)])]),e.createVNode(e.unref(ge.VsModal),{visible:te.value,title:J.value,size:"lg",onClose:qe,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(rt,{schema:Q.value,"allow-id-field":"",values:ae.value,"onUpdate:values":ne[1]||(ne[1]=le=>ae.value=le),form:ee.value,"onUpdate:form":ne[2]||(ne[2]=le=>ee.value=le)},null,8,["schema","values","form"]),e.createElementVNode("div",Yd,[e.createElementVNode("button",{type:"button",onClick:ne[3]||(ne[3]=le=>te.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"])]))}}),Xd={},Zd={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 Jd(o,t){return e.openBlock(),e.createElementBlock("svg",Zd,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M18 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M7.5 16.5l9 -9"},null,-1)]))}const Qd=Be(Xd,[["render",Jd]]),eu={},tu={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 nu(o,t){return e.openBlock(),e.createElementBlock("svg",tu,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 ou=Be(eu,[["render",nu]]),ru={},lu={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 au(o,t){return e.openBlock(),e.createElementBlock("svg",lu,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 su=Be(ru,[["render",au]]);function iu(o,t,n){const r=Math.max(0,Math.min(22,Math.floor(n))),a=2**r,l=Math.floor((o+180)/360*a),s=t*Math.PI/180,c=Math.floor((1-Math.log(Math.tan(s)+1/Math.cos(s))/Math.PI)/2*a);return{z:r,x:l,y:c}}function cu(o,t){if(typeof o!="string"||!o.trim()||!/\{z\}/i.test(o))return;const n={"{z}":t.z,"{x}":t.x,"{y}":t.y,"{-y}":2**t.z-t.y-1,"{s}":"a"};let r=o;return Object.entries(n).forEach(([a,l])=>{r=r.replace(new RegExp(a.replace(/[{}-]/g,"\\$&"),"gi"),String(l))}),r}const Vr=/\/(\d+)\/(\d+)\/(\d+)(\.(?:png|jpe?g|webp))(?:\?.*)?$/i;function Sr(o,t){if(typeof o!="string"||!o.trim()||!Vr.test(o))return;const n=o.replace(Vr,`/${t.z}/${t.x}/${t.y}$4`);return n!==o?n:void 0}function du(o,t){if(o?.url){const n=cu(o.url,t);if(n)return n;const r=Sr(o.url,t);if(r)return r}if(o?.preview){const n=Sr(o.preview,t);return n||o.preview}}const uu=["title","aria-expanded"],pu=["src"],mu={class:"map-layers__header"},fu={class:"map-layers__body"},hu={key:0,class:"map-layers__section"},gu={class:"map-layers__grid map-layers__grid--4"},yu=["disabled","title","onClick"],bu={class:"map-layers__thumb"},ku=["src"],wu={class:"map-layers__option-label"},xu={key:1,class:"map-layers__section"},vu={class:"map-layers__grid map-layers__grid--4"},_u=["title","onClick"],Cu={class:"map-layers__thumb"},Eu=["src"],Bu={class:"map-layers__option-label"},Vu={key:2,class:"map-layers__section map-layers__section--vector"},Su={class:"map-layers__vector-list"},$u=["checked","disabled","onChange"],On=.8,Au=Be(e.defineComponent({__name:"map-layers",props:{basemaps:{},activeBaseKey:{},tileOverlays:{},activeTileOverlayKeys:{},vectorOverlays:{},previewTile:{},disabled:{type:Boolean},compact:{type:Boolean}},emits:["onLayerChange","onOverlayToggle","onVectorOverlayToggle"],setup(o,{emit:t}){const n=o,r=t,a=10*On,l=400*On,s=400*On,c=320*On,i=e.ref(null),d=e.ref(null),h=e.ref(null),y=e.ref(!1),p=e.ref({}),m=e.computed(()=>Object.keys(n.basemaps||{}).length>0),f=e.computed(()=>Object.keys(n.tileOverlays||{}).length>0),w=e.computed(()=>n.vectorOverlays??[]),b=e.computed(()=>w.value.length>0),v=e.computed(()=>m.value||f.value||b.value),C=e.computed(()=>n.basemaps?.[n.activeBaseKey]?.name||n.activeBaseKey||"Шари"),V=e.computed(()=>U(n.basemaps)),$=e.computed(()=>U(n.tileOverlays||{}));function U(I){const J=n.previewTile;return J?Object.fromEntries(Object.entries(I).map(([te,L])=>[String(te),du(L,J)??L.preview??""])):{}}function Z(I){return V.value[I]||n.basemaps?.[I]?.preview||""}function O(I){return $.value[I]||n.tileOverlays?.[I]?.preview||""}const E=e.computed(()=>Z(n.activeBaseKey));function S(I){return Array.isArray(n.activeTileOverlayKeys)&&n.activeTileOverlayKeys.includes(I)}function _(){const I=d.value;if(!I)return;const J=I.getBoundingClientRect(),te=Math.min(l,window.innerWidth-16);let L=J.left;L+te>window.innerWidth-8&&(L=window.innerWidth-te-8),L=Math.max(8,L);const M=J.top-a-8,N=n.compact?c:s,Q=Math.min(N,Math.max(96,M));p.value={position:"fixed",left:`${L}px`,bottom:`${window.innerHeight-J.top+a}px`,width:`${te}px`,maxHeight:`${Q}px`,zIndex:"10050"}}async function T(){y.value=!y.value,y.value&&(await e.nextTick(),_())}function j(){y.value=!1}function oe(I){I!==n.activeBaseKey&&r("onLayerChange",I)}function A(I){n.disabled||r("onOverlayToggle",I)}function P(I){n.disabled||r("onVectorOverlayToggle",I)}function Y(I){if(!y.value)return;const J=I.target;i.value?.contains(J)||h.value?.contains(J)||j()}function q(I){I.key==="Escape"&&j()}return e.watch(y,async I=>{I&&(await e.nextTick(),_())}),e.onMounted(()=>{document.addEventListener("click",Y),document.addEventListener("keydown",q),window.addEventListener("resize",_),window.addEventListener("scroll",_,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",Y),document.removeEventListener("keydown",q),window.removeEventListener("resize",_),window.removeEventListener("scroll",_,!0)}),(I,J)=>v.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"rootRef",ref:i,class:e.normalizeClass(["map-layers relative",{"map-layers--compact":I.compact}])},[e.createElementVNode("button",{ref_key:"triggerRef",ref:d,type:"button",class:"map-layers__trigger",title:C.value,"aria-haspopup":"dialog","aria-expanded":y.value,onClick:e.withModifiers(T,["stop"])},[E.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:E.value,alt:"",class:"map-layers__trigger-img"},null,8,pu)):e.createCommentVNode("",!0)],8,uu),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"map-layers-panel"},{default:e.withCtx(()=>[y.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panelRef",ref:h,class:"map-layers__panel",style:e.normalizeStyle(p.value),role:"dialog","aria-label":"Шари карти"},[e.createElementVNode("header",mu,[J[0]||(J[0]=e.createElementVNode("h3",{class:"map-layers__title"},"Шари карти",-1)),e.createElementVNode("button",{type:"button",class:"map-layers__close","aria-label":"Закрити",onClick:j},[e.createVNode(e.unref(X.X),{class:"map-layers__close-icon"})])]),e.createElementVNode("div",fu,[f.value?(e.openBlock(),e.createElementBlock("section",hu,[J[1]||(J[1]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Додаткові шари",-1)),e.createElementVNode("div",gu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.tileOverlays,(te,L)=>(e.openBlock(),e.createElementBlock("button",{key:`tile-${L}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":S(String(L))}]),disabled:I.disabled,title:te.name||String(L),onClick:M=>A(String(L))},[e.createElementVNode("span",bu,[e.createElementVNode("img",{src:O(String(L)),alt:""},null,8,ku)]),e.createElementVNode("span",wu,e.toDisplayString(te.name||L),1)],10,yu))),128))])])):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("section",xu,[J[2]||(J[2]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Базові шари",-1)),e.createElementVNode("div",vu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(I.basemaps,(te,L)=>(e.openBlock(),e.createElementBlock("button",{key:`base-${L}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":I.activeBaseKey===String(L)}]),title:te.name||String(L),onClick:M=>oe(String(L))},[e.createElementVNode("span",Cu,[e.createElementVNode("img",{src:Z(String(L)),alt:""},null,8,Eu)]),e.createElementVNode("span",Bu,e.toDisplayString(te.name||L),1)],10,_u))),128))])])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("section",Vu,[J[3]||(J[3]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Дані",-1)),e.createElementVNode("div",Su,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,te=>(e.openBlock(),e.createElementBlock("label",{key:te.id,class:"map-layers__vector-item"},[e.createElementVNode("input",{type:"checkbox",class:"map-layers__checkbox",checked:te.visible,disabled:I.disabled,onChange:L=>P(te.id)},null,40,$u),e.createElementVNode("span",null,e.toDisplayString(te.label),1)]))),128))])])):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))],2)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-c1206d48"]]),Ht=1e-10,Pn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,Nu=/^[+-]?\d+(?:\.\d+)?$/;function Mu(o,t,n){const r=o.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(r.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(r.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const a=[],l=[];if(r.forEach((d,h)=>{const y=h+1,p=t==="decimal"?Fu(d,y,n):Ar(d,y,n);if(!p.ok){a.push(...p.errors);return}const m=l[l.length-1];if(m&&Mr(m,p.point)){a.push({line:y,message:"Послідовні точки не повинні дублюватися."});return}l.push(p.point)}),a.length)return{ok:!1,errors:a};if(new Set(l.map(Tu)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const c=[...l];let i=!1;return Mr(c[0],c[c.length-1])||(c.push(c[0]),i=!0),Lu(c)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:c,wasClosedAutomatically:i}}function Fu(o,t,n){return $r(o,"decimal",n,t)}function $r(o,t,n,r=1){return t==="decimal"?Du(o,r,n):Ar(o,r,n)}function Du(o,t,n){const r=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(o))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const a=o.split(/[\s,;]+/).filter(Boolean);if(a.length<2)return{ok:!1,errors:[{line:t,message:"Кожен рядок має містити дві координати."}]};if(a.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(!a.every(d=>Nu.test(d)))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const l=Number(a[0]),s=Number(a[1]);if(!Number.isFinite(l)||!Number.isFinite(s))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const c=n==="lat-lon"?l:s,i=n==="lat-lon"?s:l;return(c<-90||c>90)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(i<-180||i>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[i,c]}}function Ar(o,t,n){Pn.lastIndex=0;const r=[...o.matchAll(Pn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Pn.lastIndex=0,o.replace(Pn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const l=Nr(r[0],t,n==="lat-lon"?"lat":"lon"),s=Nr(r[1],t,n==="lat-lon"?"lon":"lat"),c=[];if(l.ok||c.push(l.error),s.ok||c.push(s.error),c.length)return{ok:!1,errors:c};const i=n==="lat-lon"?l.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:l.value,i]}}function Nr(o,t,n){const r=Number(o[1]),a=Number(o[2]),l=Number(o[3]),s=String(o[4]).toUpperCase();if(!Number.isFinite(r)||!Number.isFinite(a)||!Number.isFinite(l))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(n==="lat"&&!(s==="N"||s==="S")||n==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:n==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(a<0||a>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(l<0||l>60)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..60."}};const d=Math.abs(r),h=n==="lat"?90:180;if(d>h)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===h&&(a!==0||l!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const y=d+a/60+l/3600;return{ok:!0,value:s==="S"||s==="W"?-y:y}}function Tu(o){return`${o[0].toFixed(12)}:${o[1].toFixed(12)}`}function Mr(o,t){return Math.abs(o[0]-t[0])<Ht&&Math.abs(o[1]-t[1])<Ht}function Lu(o){if(o.length<4)return!1;for(let t=0;t<o.length-1;t+=1){const n=o[t],r=o[t+1];for(let a=t+1;a<o.length-1;a+=1){if(Math.abs(t-a)<=1||t===0&&a===o.length-2)continue;const l=o[a],s=o[a+1];if(Iu(n,r,l,s))return!0}}return!1}function Iu(o,t,n,r){const a=Rn(o,t,n),l=Rn(o,t,r),s=Rn(n,r,o),c=Rn(n,r,t);return!!(a!==l&&s!==c||a===0&&zn(o,n,t)||l===0&&zn(o,r,t)||s===0&&zn(n,o,r)||c===0&&zn(n,t,r))}function Rn(o,t,n){const r=(t[1]-o[1])*(n[0]-t[0])-(t[0]-o[0])*(n[1]-t[1]);return Math.abs(r)<Ht?0:r>0?1:2}function zn(o,t,n){return t[0]<=Math.max(o[0],n[0])+Ht&&t[0]+Ht>=Math.min(o[0],n[0])&&t[1]<=Math.max(o[1],n[1])+Ht&&t[1]+Ht>=Math.min(o[1],n[1])}const Ou=["title"],Pu={key:0,class:"vs-select__options absolute z-50 mt-1 w-auto min-w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm text-gray-900"},Ru=["onClick"],zu=["placeholder"],ju={class:"absolute inset-y-0 right-2 flex items-center gap-1"},Uu={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},Hu={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},qu={class:"max-h-[260px] overflow-auto"},Wu={key:0,class:"divide-y divide-gray-100"},Ku=["onClick"],Gu={key:1,class:"px-3 py-3 text-xs text-gray-500"},Fr="formMapSearchAddressHistory",Yu=12,Xu="https://geo.rv.ua/api-user/dzk.api",Zu="https://nominatim.openstreetmap.org/search",Ju=Be(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(o,{emit:t}){const n={mounted(W,x){if(typeof document>"u")return;let D=null;const R=8,de=()=>{const Oe=String(x?.value??"");if(!Oe)return;D=document.createElement("div"),D.textContent=Oe,Object.assign(D.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(D);const Ie=W.getBoundingClientRect();D.style.left=`${Ie.right+window.scrollX+R}px`,D.style.top=`${Ie.top+window.scrollY+(Ie.height-D.offsetHeight)/2}px`},_e=()=>{D?.parentNode&&D.parentNode.removeChild(D),D=null};W.addEventListener("mouseenter",de),W.addEventListener("mouseleave",_e),Object.assign(W,{tooltipRightHandlers:{show:de,hide:_e}})},unmounted(W){if(typeof document>"u")return;const x=W.tooltipRightHandlers;x&&(W.removeEventListener("mouseenter",x.show),W.removeEventListener("mouseleave",x.hide))}},r=o,a=t,l=e.getCurrentInstance();function s(){return typeof globalThis<"u"&&globalThis.proxy?globalThis.proxy:typeof window<"u"&&window.proxy?window.proxy:null}function c(){const x=l?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(x)return Array.isArray(x)?x.join(","):String(x);const R=s()?.map?.searchViewbox;if(R)return Array.isArray(R)?R.join(","):String(R)}function i(){const x=l?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof x=="string"&&x.trim())return x.trim();const R=s()?.map?.addressSuggest;if(typeof R=="string"&&R.trim())return R.trim()}function d(){if(typeof r.config?.cadastreSuggest=="string"&&r.config.cadastreSuggest.trim())return r.config.cadastreSuggest.trim();const W=l?.appContext.config.globalProperties?.$settings,x=W?.map?.cadastreSuggest??W?.map?.parcelSuggest??W?.map?.parcelSearch;if(typeof x=="string"&&x.trim())return x.trim();const D=s(),R=D?.map?.cadastreSuggest??D?.map?.parcelSuggest??D?.map?.parcelSearch;if(typeof R=="string"&&R.trim())return R.trim()}const h=!!i(),y=!!c(),p=e.computed(()=>{const W=["nominatim","xy","parcel"];return h&&W.unshift("address"),y?W:W.filter(x=>x!=="nominatim")}),m=e.computed(()=>{const W=p.value,x=r.config?.tools?.filter(D=>W.includes(D));return x&&x.length?x:W}),f=e.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),w=e.ref(m.value[0]);e.watch(m,W=>{W.includes(w.value)||(w.value=W[0])});const b=e.ref(""),v=e.ref(!1),C=e.ref(null),V=e.ref(null),$=e.ref(null),U=e.ref(null),Z=e.ref([]),O=e.ref(null),E=e.ref(!1),S=e.ref([]),_=e.computed(()=>(w.value==="address"||w.value==="nominatim")&&E.value),T=e.computed(()=>r.config?.addressDebounceMs??1e3);let j=null;const oe=e.ref(!1),A=e.computed(()=>b.value.trim().length>0?Z.value:S.value),P=e.computed(()=>b.value.trim().length?`Знайдено ${Z.value.length}`:"Історія пошуку"),Y=e.computed(()=>b.value.trim().length?"Нічого не знайдено":"Історія порожня");function q(){if(typeof window>"u")return[];try{const W=window.localStorage?.getItem?.(Fr);if(!W)return[];const x=JSON.parse(W);return Array.isArray(x)?x:[]}catch{return[]}}function I(W){typeof window>"u"||window.localStorage?.setItem?.(Fr,JSON.stringify(W))}function J(W){const D=[W,...S.value.filter(R=>R.id!==W.id)].slice(0,10);S.value=D,I(D)}const te=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function L(){if(!U.value)return;const W=U.value.getBoundingClientRect(),x=$.value?.getBoundingClientRect(),D=x?.width??W.width,R=(x?.left??W.left)+window.scrollX,de=W.bottom+window.scrollY+Yu;te.left=`${R}px`,te.top=`${de}px`,te.width=`${D}px`,te.display="block"}const M=()=>{_.value&&L()};function N(){j&&(clearTimeout(j),j=null)}e.watch(w,()=>{b.value="",v.value=!1,Z.value=[],E.value=!1,N(),oe.value=!1}),e.watch(_,W=>{W?e.nextTick(()=>{L()}):te.display="none"}),e.watch(b,W=>{if(w.value!=="address"&&w.value!=="nominatim"){Z.value=[],N();return}if(!W.trim()){Z.value=[],E.value=S.value.length>0,N();return}N(),E.value=!0,j=window.setTimeout(()=>{le(W).catch(x=>{const D=x?.message||"Помилка пошуку адреси";ge.notify({type:"error",title:"Пошук адреси",message:D})})},T.value)});function Q(W){const x=[];V.value&&x.push(V.value),W instanceof HTMLElement&&x.push(W),C.value?.querySelectorAll("li")?.forEach(R=>{x.push(R)}),x.forEach(R=>{R.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function ae(W){v.value&&Q(W.target),v.value=!v.value}function ee(W,x){Q(x?.target),w.value=W}function he(){b.value="",Z.value=[],E.value=!1,oe.value=!1}function we(W){const x=W.target;if(v.value){const D=C.value;D&&!D.contains(x)&&(Q(x),v.value=!1)}if(_.value){const D=O.value,R=U.value;D&&!D.contains(x)&&(!R||!R.contains(x))&&(E.value=!1)}}e.onMounted(()=>{S.value=q(),window.addEventListener("click",we,!0),window.addEventListener("scroll",M,!0),window.addEventListener("resize",M)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",we,!0),window.removeEventListener("scroll",M,!0),window.removeEventListener("resize",M),N()});function be(W){return W==="xy"?"Координати":W==="parcel"?"Кадастр":W==="nominatim"?"Адреса":"Адресний"}function $e(W){switch(W){case"xy":return"Пошук за географічними координатами. Введіть широту і довготу через пробіл або кому (lat lng або lng lat).";case"parcel":return"Пошук земельної ділянки за кадастровим номером у форматі 0000000000:00:000:0000.";case"nominatim":return"Пошук адрес та обʼєктів через Nominatim.";case"address":return"Пошук адрес через локальний сервіс addressSuggest.";default:return""}}function Me(W){const x=$r(W.trim(),"dms","lat-lon");if(x.ok){const[Ke,ct]=x.point;return{lat:ct,lng:Ke}}const D=W.replace(/[,]+/g," ").trim();if(!D)return null;const R=D.split(/\s+/).filter(Boolean);if(R.length<2)return null;const de=R.slice(0,2).map(Number);if(!de.every(Ke=>Number.isFinite(Ke)))return null;let[_e,Oe]=de,Ie=_e,Ue=Oe;const We=Ke=>Math.abs(Ke)<=90,ut=Ke=>Math.abs(Ke)<=180;if(!We(Ie)||!ut(Ue))if(We(Ue)&&ut(Ie))Ie=Oe,Ue=_e;else return null;return{lat:Ie,lng:Ue}}function Fe(W){const x=W?.result||W?.data||W;return(Array.isArray(x)?x:x?[x]:[]).map((R,de)=>{const _e=R?.geom_centroid,Oe=Array.isArray(_e?.coordinates)?_e.coordinates:null;if(!Oe||Oe.length<2)return null;const Ie=Number(Oe[0]),Ue=Number(Oe[1]);return!Number.isFinite(Ue)||!Number.isFinite(Ie)?null:{id:String(R?.parcel_id??R?.cad_num??de),title:R?.cadnum||R?.cad_num||"Земельна ділянка",lat:Ue,lng:Ie}}).filter(R=>!!R)}function Re(W){return(Array.isArray(W?.features)?W.features:[]).map((D,R)=>{const de=D?.geometry?.coordinates,_e=Number(de?.[0]),Oe=Number(de?.[1]);if(!Number.isFinite(Oe)||!Number.isFinite(_e))return null;const Ie=D?.properties||{},Ue=Ie?.geocoding?.label||Ie?.display_name||Ie?.label||"Адреса";return{id:String(Ie?.geocoding?.place_id||Ie?.place_id||R),title:Ue,lat:Oe,lng:_e}}).filter(D=>!!D)}function se(W){return Number.isFinite(W.lat)&&Number.isFinite(W.lng)}function ie(W){if(W==null||typeof W=="string"&&!W.trim())return null;const x=Number(W);return Number.isFinite(x)?x:null}function ve(W){const x=ie(W.lng)??ie(W.lon)??ie(W.longitude)??ie(W.x),D=ie(W.lat)??ie(W.latitude)??ie(W.y);if(x!=null&&D!=null)return{lat:D,lng:x};const R=W?.geometry?.coordinates??W?.geom_centroid?.coordinates??W?.centroid?.coordinates??W?.geojson?.geometry?.coordinates??W?.geom?.coordinates;if(Array.isArray(R)&&R.length>=2){const de=ie(R[0]),_e=ie(R[1]);if(de!=null&&_e!=null)return{lat:_e,lng:de}}return null}function Se(W){return(Array.isArray(W?.data)?W.data:[]).map((D,R)=>{const de=ve(D),_e=String(D.text??D.title??D.label??D.name??D.address??D.display_name??D.id??"Адреса"),Oe=String(D.id??D.code??D.value??R);return de?{id:Oe,title:_e,...de}:{id:Oe,title:_e}}).filter(D=>!!D?.title)}function Le(W){const x=d()||Xu;if(x.includes(":id"))return x.replace(":id",encodeURIComponent(W));if(x.includes(":name"))return x.replace(":name",encodeURIComponent(W));try{const D=new URL(x,window.location.origin),R=r.config?.parcelQueryParam?.trim()||"cad_num";return D.searchParams.set(R,W),D.toString()}catch{return x}}function qe(W){const x=i();if(!x)return null;if(x.includes(":name"))return x.replace(":name",encodeURIComponent(W));try{const D=new URL(x,window.location.origin);return W.trim()&&D.searchParams.set("q",W),D.toString()}catch{return x}}async function z(W){const x=qe(W);if(!x)return[];const D=await fetch(x);if(!D.ok)throw new Error(`HTTP ${D.status}`);const R=await D.json();return Se(R)}async function ne(W){const x=new URL(Zu);x.searchParams.set("format","geojson"),x.searchParams.set("q",W),x.searchParams.set("addressdetails","1"),x.searchParams.set("bounded","1");const D=c();D&&x.searchParams.set("viewbox",D);const R=await fetch(x.toString());if(!R.ok)throw new Error(`HTTP ${R.status}`);const de=await R.json();return Re(de)}async function le(W){if(Z.value=[],N(),w.value==="address"){if(!i()){ge.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const R=await z(W);if(!R.length){ge.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=R;return}const x=await ne(W);if(!x.length){ge.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=x}async function ue(W){if(se(W)){De(W),J(W);return}ge.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function ke(){w.value!=="address"&&w.value!=="nominatim"||(E.value=!0,e.nextTick(()=>{L()}))}function Ae(W){const D=W.replace(/\s+/g,"").split(":");if(D.length!==4)return!1;const R=[10,2,3,4];return D.every((de,_e)=>de.length===R[_e]&&/^\d+$/.test(de))}function De(W){a("goToCoordinates",[W.lat,W.lng]),oe.value=!0}async function Te(){const W=b.value.trim();if(W){if(w.value==="xy"){const x=Me(W);if(!x){ge.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}De(x);return}if(w.value==="address"||w.value==="nominatim"){try{await le(W)}catch(x){const D=x?.message||"Помилка пошуку адреси";ge.notify({type:"error",title:"Пошук адреси",message:D})}return}try{if(!Ae(W)){ge.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const x=await fetch(Le(W));if(!x.ok)throw new Error(`HTTP ${x.status}`);const D=await x.json(),R=Fe(D);if(!R.length)ge.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const de=R.find(se);if(!de){ge.notify({type:"warning",title:"Пошук",message:"Геометрія ділянки відсутня"});return}De(de)}}catch(x){const D=x?.message||"Помилка пошуку";ge.notify({type:"error",title:"Пошук",message:D})}}}return(W,x)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"widgetRef",ref:$,class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},[e.createElementVNode("form",{class:"flex gap-2 text-gray-900",onSubmit:e.withModifiers(Te,["prevent"])},[m.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:C,class:"relative search-type w-[100px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:ae},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:V,class:"block w-full truncate",title:be(w.value)},[e.createTextVNode(e.toDisplayString(be(w.value)),1)],8,Ou)),[[n,$e(w.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":v.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},x[3]||(x[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]),2))]),v.value?(e.openBlock(),e.createElementBlock("div",Pu,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,D=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:D,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:R=>ee(D,R)},[e.createTextVNode(e.toDisplayString(be(D)),1)],8,Ru)),[[n,$e(D)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:U,class:"relative flex-1 min-w-[140px]"},[w.value==="parcel"?(e.openBlock(),e.createBlock(En,{key:0,modelValue:b.value,"onUpdate:modelValue":x[0]||(x[0]=D=>b.value=D),mask:"0000000000:00:000:0000",class:e.normalizeClass(["vs-input !h-[34px] transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",oe.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":x[1]||(x[1]=D=>b.value=D),placeholder:f.value,type:"text",class:e.normalizeClass(["vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",oe.value?"!pr-14":"!pr-8"]),onFocus:ke},null,42,zu)),[[e.vModelText,b.value,void 0,{trim:!0}]]),e.createElementVNode("div",ju,[oe.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Очистити",onClick:he},x[4]||(x[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)]))):e.createCommentVNode("",!0),x[5]||(x[5]=e.createElementVNode("button",{type:"submit",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-4.35-4.35m0 0A7.5 7.5 0 1 0 5 5a7.5 7.5 0 0 0 11.65 11.65Z"})])],-1))]),_.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref:O,class:"vs-select__options mt-1 bg-white border border-gray-300 rounded-lg shadow-lg text-sm text-gray-900 z-50",style:e.normalizeStyle(te)},[e.createElementVNode("div",Uu,[e.createElementVNode("span",Hu,e.toDisplayString(P.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:x[2]||(x[2]=D=>E.value=!1)}," ✕ ")]),e.createElementVNode("div",qu,[A.value.length?(e.openBlock(),e.createElementBlock("ul",Wu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,D=>(e.openBlock(),e.createElementBlock("li",{key:D.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:R=>ue(D)},e.toDisplayString(D.title),9,Ku))),128))])):(e.openBlock(),e.createElementBlock("div",Gu,e.toDisplayString(Y.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-4d528cf7"]]),Qu={class:"pt-1 border-t border-gray-100"},ep={class:"space-y-1"},tp=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(o,{emit:t}){const n=t,r=e.ref(null),a=e.ref(null),l=(i,d,h)=>Math.min(Math.max(i,d),h),s=()=>{if(r.value===null||a.value===null||!Number.isFinite(r.value)||!Number.isFinite(a.value))return;const i=l(r.value,-90,90),d=l(a.value,-180,180);n("submit",{lat:i,lng:d}),r.value=null,a.value=null},c=()=>{r.value=null,a.value=null,n("cancel")};return(i,d)=>(e.openBlock(),e.createElementBlock("div",Qu,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",ep,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=h=>r.value=h),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта (50.4501)"},null,512),[[e.vModelText,r.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=h=>a.value=h),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота (30.5234)"},null,512),[[e.vModelText,a.value,void 0,{number:!0}]]),e.createElementVNode("div",{class:"flex gap-1.5"},[e.createElementVNode("button",{class:"flex-1 px-2 py-1 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors",type:"button",onClick:s}," Додати "),e.createElementVNode("button",{class:"px-2 py-1 bg-gray-200 hover:bg-gray-300 text-gray-700 text-xs font-medium rounded transition-colors",type:"button",onClick:c}," Скасувати ")])])]))}}),np=e.defineComponent({__name:"BtnAdd",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(X.Plus),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Додати ",-1))]))}}),op=e.defineComponent({__name:"BtnClear",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"w-full px-2 py-1.5 bg-rose-500 hover:bg-rose-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(X.Trash2),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Очистити ",-1))]))}}),rp=e.defineComponent({__name:"BtnComplete",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-emerald-500 hover:bg-emerald-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(X.Circle),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode("Замкнути ",-1))]))}}),lp=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function qt(o){return lp.format(o)}function Dr(o){return o>=1e3?`${qt(o/1e3)} км`:`${qt(o)} м`}const ap={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},sp={key:0,class:"flex-1 flex gap-1"},ip={key:1,class:"flex-1 font-mono text-gray-700"},cp=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(o,{emit:t}){const n=o,r=t,a=e.computed(()=>`${n.coords.lat.toFixed(4)}°, ${n.coords.lng.toFixed(4)}°`),l=e.ref(!1),s=e.ref(n.coords.lat),c=e.ref(n.coords.lng);e.watch(()=>n.coords,p=>{s.value=p.lat,c.value=p.lng},{deep:!0,immediate:!0});const i=(p,m,f)=>Math.min(Math.max(p,m),f),d=()=>{l.value=!0},h=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(c.value))return;const p=i(s.value,-90,90),m=i(c.value,-180,180);r("update",{id:n.id,coords:{lat:p,lng:m}}),l.value=!1},y=()=>{r("delete",n.id)};return(p,m)=>(e.openBlock(),e.createElementBlock("div",ap,[e.createVNode(e.unref(X.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),l.value?(e.openBlock(),e.createElementBlock("div",sp,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[0]||(m[0]=f=>s.value=f),type:"number",step:"0.0001",min:"-90",max:"90",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта"},null,512),[[e.vModelText,s.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":m[1]||(m[1]=f=>c.value=f),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[e.vModelText,c.value,void 0,{number:!0}]]),e.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:h}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",ip,e.toDisplayString(a.value),1)),l.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:2,class:"text-blue-500 hover:text-blue-600 px-0.5",type:"button",onClick:d}," ✎ ")),e.createElementVNode("button",{class:"text-rose-500 hover:text-rose-600 px-0.5",type:"button",onClick:y}," ✕ ")]))}}),dp={class:"ruler-control px-3 py-2.5 space-y-2"},up={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},pp={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Сумарна довжина всіх відрізків","aria-hidden":"true"},mp={class:"text-sm font-semibold text-slate-700"},fp={class:"ruler-row"},hp={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},gp={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Площа замкнутого контуру","aria-hidden":"true"},yp={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},bp=["onClick"],kp={class:"flex items-center gap-2 mt-0.5 pl-7"},wp={key:0,class:"text-base font-semibold text-green-600"},xp={key:1,class:"text-xs text-gray-400"},vp={class:"ruler-row flex items-center gap-2 cursor-pointer"},_p={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Список точок","aria-hidden":"true"},Cp={class:"text-xs font-medium text-gray-600 flex-1"},Ep={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},Bp=e.defineComponent({__name:"ControlPanel",props:{points:{},isShapeClosed:{type:Boolean}},emits:["update-point","delete-point"],setup(o){const t=o,n=e.ref(!1),r=e.ref("km2"),a=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],l=()=>{n.value=!n.value},s=(f,w)=>{const b=S=>S*Math.PI/180,v=b(w.lat-f.lat),C=b(w.lng-f.lng),V=b(f.lat),$=b(w.lat),U=Math.sin(v/2),Z=Math.sin(C/2);return 6371e3*(2*Math.asin(Math.sqrt(U*U+Math.cos(V)*Math.cos($)*Z*Z)))},c=e.computed(()=>{if(t.points.length<2)return 0;let f=0;for(let w=1;w<t.points.length;w+=1)f+=s(t.points[w-1].coords,t.points[w].coords);return t.isShapeClosed&&t.points.length>=2&&(f+=s(t.points[t.points.length-1].coords,t.points[0].coords)),f}),i=e.computed(()=>c.value>=1e3?`${qt(c.value/1e3)} км`:`${qt(c.value)} м`);function d(f){if(f.length<3)return 0;const w=f[0].lat,b=f[0].lng,v=(V,$)=>{const U=(V-w)*110574;return{x:($-b)*111320*Math.cos(w*Math.PI/180),y:U}};let C=0;for(let V=0;V<f.length;V++){const $=(V+1)%f.length,U=v(f[V].lat,f[V].lng),Z=v(f[$].lat,f[$].lng);C+=U.x*Z.y-U.y*Z.x}return Math.abs(C)*.5}const h=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const f=t.points.map(w=>w.coords);return d(f)}),y=e.computed(()=>h.value>0),p=e.computed(()=>{const f=h.value;if(f===0)return"—";if(r.value==="km2"){const b=f/1e6;return`${qt(b)} км²`}if(r.value==="ha"){const b=f/1e4;return`${qt(b)} га`}const w=f>=1?Math.round(f):f;return`${qt(w)} м²`}),m=e.computed(()=>{const f=t.points.length;return f===1?"1 точка":f>=2&&f<=4?`${f} точки`:`${f} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(f,w)=>(e.openBlock(),e.createElementBlock("div",dp,[e.createElementVNode("button",up,[e.createElementVNode("span",pp,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),w[1]||(w[1]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),e.createElementVNode("span",mp,e.toDisplayString(i.value),1)]),e.createElementVNode("div",fp,[e.createElementVNode("button",hp,[e.createElementVNode("span",gp,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),w[2]||(w[2]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),e.createElementVNode("div",yp,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,(b,v)=>e.createElementVNode("button",{key:b.id,type:"button",class:e.normalizeClass(["px-2.5 py-1 text-xs font-medium transition-colors border-r border-gray-200 last:border-r-0",v===0&&"rounded-l-md",v===a.length-1&&"rounded-r-md",r.value===b.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(C=>r.value=b.id,["stop"])},e.toDisplayString(b.label),11,bp)),64))])]),e.createElementVNode("div",kp,[y.value?(e.openBlock(),e.createElementBlock("span",wp,e.toDisplayString(p.value),1)):(e.openBlock(),e.createElementBlock("span",xp,"—"))])]),e.createElementVNode("div",vp,[e.createElementVNode("span",_p,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",Cp,e.toDisplayString(m.value),1),e.createElementVNode("button",{type:"button",class:"text-xs text-blue-500 hover:text-blue-600 font-medium transition-colors",onClick:e.withModifiers(l,["stop"])}," Координати ")]),n.value?(e.openBlock(),e.createElementBlock("div",Ep,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.points,(b,v)=>(e.openBlock(),e.createBlock(cp,{key:b.id,id:b.id,index:v+1,coords:b.coords,onUpdate:w[0]||(w[0]=C=>f.$emit("update-point",C)),onDelete:C=>f.$emit("delete-point",b.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),Vp={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},Sp={class:"flex items-start gap-2"},$p=e.defineComponent({__name:"InfoHint",setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Vp,[e.createElementVNode("div",Sp,[e.createVNode(e.unref(X.Info),{size:16,"stroke-width":2,class:"text-blue-600 flex-shrink-0 mt-0.5"}),n[0]||(n[0]=e.createElementVNode("div",{class:"space-y-1"},[e.createElementVNode("p",{class:"text-xs font-medium text-blue-900"}," Натискайте на карту, щоб додати точки вимірювання "),e.createElementVNode("p",{class:"text-[10px] text-blue-700"},' Або скористайтесь кнопкою "Додати" внизу для введення координат вручну ')],-1))])]))}}),Ap={class:"space-y-1.5"},Np={class:"space-y-1 max-h-40 overflow-y-auto"},Mp={class:"text-gray-700"},Fp={class:"font-semibold text-slate-800"},Dp=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(o){const t=o;function n(l,s){const c=m=>m*Math.PI/180,i=c(s.lat-l.lat),d=c(s.lng-l.lng),h=c(l.lat),y=c(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(i/2)**2+Math.cos(h)*Math.cos(y)*Math.sin(d/2)**2)))}function r(l){return Dr(l)}const a=e.computed(()=>{const l=[],s=t.points;if(s.length<2)return l;for(let c=0;c<s.length;c++){const i=c===s.length-1&&t.isShapeClosed?0:c+1;if(i>=s.length)break;const d=n(s[c].coords,s[i].coords);l.push({from:c+1,to:i+1,label:r(d)})}return l});return(l,s)=>(e.openBlock(),e.createElementBlock("div",Ap,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",Np,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(c,i)=>(e.openBlock(),e.createElementBlock("div",{key:i,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[e.createElementVNode("span",Mp,"Точка "+e.toDisplayString(c.from)+" → Точка "+e.toDisplayString(c.to),1),e.createElementVNode("span",Fp,e.toDisplayString(c.label),1)]))),128))])]))}}),Tp={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},Lp={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},Ip={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},Op={class:"flex items-center gap-2"},Pp={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},Rp={class:"flex border-b border-gray-200"},zp={key:1,class:"px-3 py-2.5"},jp={key:1,class:"text-xs text-gray-500"},Up={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},Hp={class:"flex gap-1.5"},qp=e.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(o,{expose:t,emit:n}){const r=n,a=e.ref([]),l=e.computed(()=>a.value.length>0),s=e.ref(!1),c=e.ref(!1),i=e.ref("general");function d(_){i.value=_,r("tab-change",_)}e.onMounted(()=>{r("tab-change",i.value)});const h=e.computed(()=>a.value.length>=3&&!c.value);let y=1;const p=()=>a.value.map(_=>({id:_.id,coords:{..._.coords}})),m=()=>{a.value.length<3&&c.value&&(c.value=!1,r("shape-closed-change",!1)),r("points-change",p())},f=()=>{const _=y;return y+=1,_},w=_=>{a.value=[...a.value,{id:f(),coords:{lat:_.lat,lng:_.lng}}],m()},b=({id:_,coords:T})=>{const j=a.value.findIndex(A=>A.id===_);if(j===-1)return;const oe=[...a.value];oe[j]={id:_,coords:{...T}},a.value=oe,m()},v=_=>{a.value=a.value.filter(T=>T.id!==_),m()},C=()=>{a.value=[],c.value&&(c.value=!1,r("shape-closed-change",!1)),m()},V=_=>{b(_)},$=_=>{v(_)},U=()=>{s.value=!0,r("add-request")},Z=_=>{w(_),s.value=!1},O=()=>{s.value=!1},E=()=>{h.value&&(c.value=!0,r("complete"),r("shape-closed-change",!0))},S=()=>{C(),s.value=!1,r("close")};return t({addPoint:w,clearPoints:C}),(_,T)=>(e.openBlock(),e.createElementBlock("div",Tp,[e.createElementVNode("div",Lp,[e.createElementVNode("div",Ip,[e.createElementVNode("div",Op,[e.createElementVNode("div",Pp,[e.createVNode(e.unref(X.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),T[2]||(T[2]=e.createElementVNode("h3",{class:"text-white font-semibold text-xs"},"Вимірювання",-1))]),e.createElementVNode("button",{class:"w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors","aria-label":"Закрити",onClick:S},[e.createVNode(e.unref(X.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",Rp,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[0]||(T[0]=j=>d("general"))}," Загальна ",2),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[1]||(T[1]=j=>d("topoint"))}," До точки ",2)]),i.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[l.value?(e.openBlock(),e.createBlock(Bp,{key:1,points:a.value,"is-shape-closed":c.value,onUpdatePoint:V,onDeletePoint:$},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock($p,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",zp,[l.value?(e.openBlock(),e.createBlock(Dp,{key:0,points:a.value,"is-shape-closed":c.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",jp,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",Up,[e.createElementVNode("div",Hp,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(np,{key:0,onClick:U})),h.value?(e.openBlock(),e.createBlock(rp,{key:1,onClick:E})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(tp,{key:0,onSubmit:Z,onCancel:O})):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(op,{key:1,onClick:C})):e.createCommentVNode("",!0)])])]))}}),ot="ruler-points",Bt="ruler-line",Vt="ruler-polygon",St="ruler-segments",Wp=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(o){function t(f,w){const b=Z=>Z*Math.PI/180,v=b(w.lat-f.lat),C=b(w.lng-f.lng),V=b(f.lat),$=b(w.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(v/2)**2+Math.cos(V)*Math.cos($)*Math.sin(C/2)**2)))}function n(f){return Dr(f)}const r=o;function a(){return{type:"FeatureCollection",features:[]}}function l(f,w,b){const v=b??"general",C=[];let V=0;C.push(0);for(let $=1;$<f.length;$++)V+=t(f[$-1].coords,f[$].coords),C.push(V);return w&&f.length>=2&&(V+=t(f[f.length-1].coords,f[0].coords)),{type:"FeatureCollection",features:f.map(($,U)=>{const Z=v==="general"?U===0?"0":n(C[U]):U===0?"0":n(t(f[U-1].coords,f[U].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[$.coords.lng,$.coords.lat]},properties:{id:$.id,index:U+1,label:Z}}})}}function s(f,w){if(f.length<2)return a();const b=[];for(let v=0;v<f.length;v++){const C=v===f.length-1&&w?0:v+1;if(C>=f.length)break;const V=f[v].coords,$=f[C].coords,U=t(V,$);b.push({type:"Feature",geometry:{type:"LineString",coordinates:[[V.lng,V.lat],[$.lng,$.lat]]},properties:{distance:n(U)}})}return{type:"FeatureCollection",features:b}}function c(f,w){if(f.length<2)return a();const b=f.map(v=>[v.coords.lng,v.coords.lat]);return w&&b.push(b[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:b},properties:{}}]}}function i(f){if(f.length<3)return a();const w=f.map(b=>[b.coords.lng,b.coords.lat]);return w.push(w[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[w]},properties:{}}]}}let d=!1;function h(f){f.getSource(ot)||(f.addSource(ot,{type:"geojson",data:a()}),f.addLayer({id:`${ot}-circle`,type:"circle",source:ot,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),f.addLayer({id:`${ot}-labels`,type:"symbol",source:ot,layout:{"text-field":["get","label"],"text-size":14,"text-offset":[0,1.3]},paint:{"text-color":"#0f172a","text-halo-color":"#ffffff","text-halo-width":1}})),f.getSource(St)||(f.addSource(St,{type:"geojson",data:a()}),f.addLayer({id:`${St}-labels`,type:"symbol",source:St,layout:{"text-field":["get","distance"],"text-size":13,"symbol-placement":"line-center","text-rotation-alignment":"map","text-pitch-alignment":"map"},paint:{"text-color":"#1e293b","text-halo-color":"#ffffff","text-halo-width":1.5}})),f.getSource(Bt)||(f.addSource(Bt,{type:"geojson",data:a()}),f.addLayer({id:`${Bt}-layer`,type:"line",source:Bt,paint:{"line-color":"#3b82f6","line-width":2}})),f.getSource(Vt)||(f.addSource(Vt,{type:"geojson",data:a()}),f.addLayer({id:`${Vt}-layer`,type:"fill",source:Vt,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function y(f){if(f){try{f.getLayer(`${Vt}-layer`)&&f.removeLayer(`${Vt}-layer`),f.getSource(Vt)&&f.removeSource(Vt),f.getLayer(`${Bt}-layer`)&&f.removeLayer(`${Bt}-layer`),f.getSource(Bt)&&f.removeSource(Bt),f.getLayer(`${St}-labels`)&&f.removeLayer(`${St}-labels`),f.getSource(St)&&f.removeSource(St),f.getLayer(`${ot}-labels`)&&f.removeLayer(`${ot}-labels`),f.getLayer(`${ot}-circle`)&&f.removeLayer(`${ot}-circle`),f.getSource(ot)&&f.removeSource(ot)}catch{}d=!1}}function p(f){if(!f)return;const w=f.getSource(ot),b=f.getSource(Bt),v=f.getSource(Vt),C=f.getSource(St),V=r.points,$=r.labelMode??"general";w&&w.setData(l(V,r.isShapeClosed,$)),b&&b.setData(c(V,r.isShapeClosed)),v&&v.setData(i(V)),C&&C.setData($==="topoint"?s(V,r.isShapeClosed):a())}function m(){const f=r.map;f&&(d||h(f),p(f))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>m(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>m(),{immediate:!0}),e.onBeforeUnmount(()=>{y(r.map)}),(f,w)=>null}});function Kp(o={}){const t=e.ref(!1),n=e.ref([]),r=e.ref(!1),a=e.ref("general"),l=e.ref(null);function s(){t.value?c():(t.value=!0,o.onActivate?.())}function c(){t.value=!1,n.value=[],r.value=!1,l.value?.clearPoints(),o.onDeactivate?.()}function i(m){n.value=m}function d(m){a.value=m}function h(m){r.value=m}function y(m){t.value&&l.value?.addPoint({lat:m.lat,lng:m.lng})}const p=e.computed(()=>n.value.length>0);return{isRulerActive:t,rulerPoints:n,rulerShapeClosed:r,rulerActiveTab:a,rulerPanelRef:l,hasRulerPoints:p,toggleRuler:s,closeRuler:c,onRulerPointsChange:i,onRulerTabChange:d,onRulerShapeClosedChange:h,handleRulerMapClick:y}}const xo="vs-safe-raster",dn=new ArrayBuffer(0);let vo=!1;function Gp(o){const t=`${xo}://`;return typeof o!="string"||!o.startsWith(t)?o:o.slice(t.length)}function Yp(o){if(!o||o.byteLength<4)return!1;const t=new Uint8Array(o);return t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71||t[0]===255&&t[1]===216&&t[2]===255||t[0]===82&&t[1]===73&&t[2]===70&&t[3]===70&&o.byteLength>=12&&String.fromCharCode(t[8],t[9],t[10],t[11])==="WEBP"}async function Xp(o,t){try{const n=await fetch(o,{signal:t});if(!n.ok||n.status===204)return dn;const r=await n.arrayBuffer();return!r.byteLength||!Yp(r)?dn:r}catch{return dn}}function Zp(o){vo||!o?.addProtocol||(vo=!0,o.addProtocol(xo,(t,n)=>{const r=Gp(String(t?.url??""));if(!r)return n(null,{data:dn}),{cancel:()=>{}};const a=new AbortController;return Xp(r,a.signal).then(l=>n(null,{data:l})).catch(()=>n(null,{data:dn})),{cancel:()=>a.abort()}}))}function Jp(o){const t=typeof o=="string"?o.trim():"";if(!t)return t;const n=`${xo}://`;return t.startsWith(n)?t:`${n}${t}`}function Qp(o,t){const n=typeof o=="string"?o.trim():"";return n?t&&vo?[Jp(n)]:[n]:[]}function _o(o,t,n){const r={type:"raster",tiles:Qp(o,!!n?.safe),tileSize:typeof t?.tileSize=="number"?t.tileSize:256};return typeof t?.minzoom=="number"&&(r.minzoom=t.minzoom),typeof t?.maxzoom=="number"&&(r.maxzoom=t.maxzoom),Array.isArray(t?.bounds)&&t.bounds.length===4&&(r.bounds=t.bounds),r}function em(o){const t=String(o??"").toLowerCase();return t.includes("could not be decoded")||t.includes("source image could not be decoded")||t.includes("unsupported image type")}const tm={class:"vs-map-body"},nm={key:0,class:"absolute top-2 left-2 z-[1000] w-[calc(100%-16px)] sm:w-[320px]"},om={key:1,class:"form-geom__panel flex items-center gap-1 mt-1"},rm={class:"flex items-center gap-1"},lm=["disabled"],am={key:0,class:"absolute z-[1600] left-0 top-full mt-1 w-full min-w-[140px] bg-white border border-gray-200 shadow-lg rounded-lg text-sm overflow-hidden"},sm=["disabled"],im={key:0,class:"mb-3 flex items-center gap-2 rounded-md border border-blue-100 bg-blue-50 px-3 py-2 text-sm text-blue-700"},cm={class:"mt-4 flex justify-end gap-2"},dm=["disabled"],um=["disabled"],pm={class:"mt-4 flex justify-end gap-2"},mm=["disabled"],fm={class:"vs-map-controls vs-map-controls--tr"},hm={class:"vs-map-toolbar"},gm=["disabled"],ym=["disabled"],bm=["disabled"],km=["disabled"],wm={key:1,class:"vs-map-toolbar__divider"},xm=["title"],vm={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"},_m={class:"space-y-0.5"},Cm={class:"text-gray-500"},Em={class:"text-gray-900 text-right break-all"},Bm={class:"absolute left-2 bottom-2 z-[1000]"},Vm={key:0,class:"vs-map-status"},Sm={class:"form-geom__feature vs-map-status__inner"},$m={class:"vs-map-status__type"},Am={class:"vs-map-status__values"},Nm=["onClick","disabled"],Mm={key:1,class:"vs-map-status__chip"},Fm={key:2,class:"vs-map-status__sep"},Dm={key:1,class:"vs-map-status__chip"},Tm={class:"vs-map-status__meta"},Lm={class:"vs-map-status__coords"},Im={key:0,class:"vs-map-status__value"},Om={key:1,class:"vs-map-status__value"},Pm={key:0,class:"vs-map-status__area"},Rm={class:"vs-map-status__value"},zm={class:"vs-map-status__actions"},jm=["disabled"],Um=["disabled"],Hm=11,qm=15,Wm=.7,Km="vs-tile-ov-src-",Gm="vs-tile-ov-raster-",jn="__vs_form_maplibre_loader__",Ym="https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",Un="vs-global-bounds-src",Zt="vs-global-bounds-line",Tr="rasterLayer",Lr=Be(e.defineComponent({__name:"vs-input-map",props:{tools:{},multi:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},handleZoom:{type:Boolean,default:!0},ctrlZoom:{type:Boolean,default:!0},geomType:{default:()=>[]},prefix:{default:""},katottg:{default:""},layers:{default:()=>[]},bounds:{},api:{},center:{default:void 0},zoom:{default:void 0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue","valueSelected"],setup(o,{emit:t}){const n=o,r=t,a=e.useAttrs(),l=e.inject("values",e.ref({})),s=typeof document<"u"&&document.querySelector("#modal")?"#modal":"body",c=e.computed(()=>{const u=a?.multiple,g=a?.multi,k=B=>B===""||B===!0||B==="true"||B===1||B==="1";return!!n.multi||!!n.multiple||k(g)||k(u)}),i=e.computed(()=>!!n.disabled),d=e.ref(!1),h=e.ref(null),y=e.ref(0),p=e.ref(""),m=e.ref(null),f=e.ref([]),w=e.ref(null),b=e.ref(null),v=Kp({onActivate(){if(fe)try{fe.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""},onDeactivate(){}});function C(){v.toggleRuler()}const V=e.getCurrentInstance(),$=V?.appContext?.config?.globalProperties?.$settings??{},U=$?.map??{},Z=e.computed(()=>{const u=U.layerPresets;return Array.isArray(u)?u:[]}),O=V?.vnode?.props??{};function E(u){return Object.prototype.hasOwnProperty.call(O,u)||Object.prototype.hasOwnProperty.call(O,u.replace(/[A-Z]/g,g=>`-${g.toLowerCase()}`))}const S=Array.isArray(U.center)&&U.center.length===2?U.center:Array.isArray($.center)&&$.center.length===2?$.center:[30,50],_=typeof U.zoom=="number"?U.zoom:typeof $.zoom=="number"?$.zoom:typeof $.defaultZoom=="number"?$.defaultZoom:10;function T(u){if(u!=null){if(Array.isArray(u)&&u.length>=2){const g=Number(u[0]),k=Number(u[1]);return!Number.isFinite(g)||!Number.isFinite(k)?void 0:[g,k]}if(typeof u=="object"){const g=u,k=g.geom;if(g.type==="Point"&&Array.isArray(g.coordinates)){const G=g.coordinates,ce=Number(G[0]),pe=Number(G[1]);if(Number.isFinite(ce)&&Number.isFinite(pe))return[ce,pe]}if(k?.type==="Point"&&Array.isArray(k.coordinates)){const G=k.coordinates,ce=Number(G[0]),pe=Number(G[1]);if(Number.isFinite(ce)&&Number.isFinite(pe))return[ce,pe]}const B=Number(g.lat),F=Number(g.lng??g.lon);if(Number.isFinite(B)&&Number.isFinite(F))return[F,B]}}}const j=e.computed(()=>{const u=T(n.center);if(u)return u;if(!E("center"))return T(U.center)??T($.center)}),oe=e.computed(()=>E("zoom")?n.zoom:U.zoom??n.zoom),A=e.computed(()=>E("katottg")?String(n.katottg??""):String(U.katottg??n.katottg??"")),P=e.computed(()=>E("layers")?n.layers??[]:U.layers??n.layers??[]),Y=e.computed(()=>E("bounds")?n.bounds:U.bounds??n.bounds),q=e.ref(Array.isArray(j.value)&&j.value.length===2?[...j.value]:S),I=e.ref(typeof oe.value=="number"?oe.value:_),J=e.ref(null);let te=null;function L(u){const g=typeof u=="number"&&Number.isFinite(u)?u:I.value;return Math.min(qm,Math.max(Hm,Math.round(g)))}function M(u,g,k){if(!Number.isFinite(u)||!Number.isFinite(g))return;const B=iu(u,g,L(k)),F=J.value;F&&F.z===B.z&&F.x===B.x&&F.y===B.y||(J.value=B)}function N(){if(K){const u=K.getCenter?.(),g=K.getZoom?.();if(u&&Number.isFinite(g)){M(u.lng,u.lat,g);return}}Array.isArray(q.value)&&q.value.length===2&&M(q.value[0],q.value[1])}function Q(){te&&clearTimeout(te),te=setTimeout(()=>{te=null,N()},120)}M(q.value[0],q.value[1]);const ae=e.ref(n.modelValue),ee=e.ref(null),he=e.ref([]),we=e.ref(!1),be=e.ref(!1),$e=e.ref(!1),Me=e.ref(!1),Fe=e.ref(!1);e.provide("map-file-import-uploading",Fe);const Re=e.computed(()=>Fe.value?"Завантаження файлу на сервер...":Me.value?"Конвертація геометрії...":""),se=e.ref([]),ie=e.ref({srid:"",encoding:"UTF-8",file:""}),ve=e.computed(()=>{const u=l.value??{},g=u.id??a.id??"1",k=a.form??u.form??"form",B=a.table??u.table??"table",F=n.name??a.field??"geom";return`/file/upload/temp?${new URLSearchParams({id:String(g),form:String(k),table:String(B),field:String(F)}).toString()}`}),Se=e.computed(()=>({srid:{type:"Autocomplete",label:"Система координат",info:"Оберіть одну із систем координат в якій знаходяться ваші геодані",data:"gis.srid_from_setting",placeholder:"Обрати",rules:["required"]},encoding:{type:"Select",label:"Кодування файлу",info:"Вкажіть кодування в якому зберігається інформація в ваших файлах. Зазвичай це UTF-8",options:[{id:"UTF-8",text:"UTF-8"},{id:"CP1251",text:"CP1251"},{id:"LATIN-1",text:"LATIN-1"}],default:"UTF-8",rules:["required"]},file:{type:"File",label:"Файл",info:"Завантажте файл із геоданими у форматі GeoJson або Zip (Shapefiles)",format:".geojson,.zip",api:ve.value,rules:["required"]}})),Le=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),qe={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
|
|
3
3
|
50.4510, 30.5242
|
|
4
|
-
50.4494, 30.5260`},format:{type:"Radio",label:"Формат координат",options:[{id:"decimal",text:"Десяткові (Decimal)"},{id:"dms",text:"Градуси-хвилини-секунди (DMS)"}]},order:{type:"Radio",label:"Порядок координат",options:[{id:"lat-lon",text:"lat, lon"},{id:"lon-lat",text:"lon, lat"}]}};let z=!1,ne=!1;const le=e.reactive({}),ue=e.ref([]),ke=e.computed(()=>ue.value.map(u=>le[u]).filter(Boolean)),Ae=e.ref(null),De=e.computed(()=>Ae.value?.entries??[]),Te=e.computed(()=>{if(Ae.value)return{left:`${Ae.value.point.x+12}px`,top:`${Ae.value.point.y+12}px`}}),W=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const u=a?.tools;return Array.isArray(u)?u.map(g=>String(g)):typeof u=="string"?u.split(",").map(g=>g.trim()).filter(Boolean):[]}),x=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!W.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const g=new Set(W.value.map(k=>k.toLowerCase()));return{search:g.has("search"),import:g.has("import"),export:g.has("export"),point:g.has("point"),line:g.has("line"),polygon:g.has("polygon"),rectangle:g.has("rectangle"),ruler:g.has("ruler")}});function D(u){const g=typeof u=="string"?u.trim():"";if(!g)return"";if(/^https?:\/\//i.test(g))return g;const k=window?.location?.origin??"",B=g.replace(/^\/+/,"");return B?k?`${k}/${B}`:`/${B}`:k}function R(){const u=Array.isArray(U.basemaps)&&U.basemaps.length?U.basemaps:$.basemaps;if(Array.isArray(u)&&u.length){const k=u.map((B,F)=>{const G=String(B?.key??B?.id??B?.name??`b${F}`),ce=D(String(B?.url??""));if(!ce)return null;const pe=typeof B?.preview=="string"&&B.preview?D(B.preview):"";return[G,{...B,url:ce,preview:pe}]}).filter(B=>Array.isArray(B)&&B.length===2).reduce((B,[F,G])=>(B[F]=G,B),{});if(Object.keys(k).length)return k}return{voyager:{name:"Оглядова карта",url:"https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/voyager/ua/13/4790/2762.png"},orto10:{name:"Ортофото 1:10K",url:"https://data.gki.com.ua/api-user/rtile/orto10/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/orto10/ua/13/4790/2762.png"},osmb:{name:"Open Street Maps",url:"https://tile.openstreetmap.org.ua/styles/osm-bright/{z}/{x}/{y}.png",preview:"https://tile.openstreetmap.org.ua/styles/osm-bright/13/4790/2762.png"}}}const de=R(),_e=Object.keys(de),Oe=e.ref(_e.length?_e[0]:"");function Ie(){const u=Array.isArray(U.overlays)&&U.overlays.length?U.overlays:$.overlays;return!Array.isArray(u)||!u.length?{}:u.map((k,B)=>{const G=(typeof k?.name=="string"?k.name.trim():"")||`o${B}`,ce=D(String(k?.url??""));if(!ce)return null;const pe=typeof k?.preview=="string"&&k.preview?D(k.preview):"";return[G,{...k,name:G,url:ce,preview:pe}]}).filter(k=>Array.isArray(k)&&k.length===2).reduce((k,[B,F])=>(k[B]=F,k),{})}const Ue=Ie(),We=e.ref(Object.keys(Ue).filter(u=>!!Ue[u]?.visible)),ut=e.computed(()=>x.value.point||x.value.line||x.value.polygon||x.value.rectangle),Ke=e.computed(()=>ke.value.filter(u=>u.config?.overlay!==!1).map(u=>({id:u.id,label:String(u.config.title||u.config.name||u.id),visible:u.visible})));function ct(u){return`${Km}${u}`}function Pt(u){return`${Gm}${u}`}async function eo(){if(typeof window>"u")return null;const u=window;if(u[jn])return u[jn];const g=G=>{if(Array.from(document.styleSheets).some(Ee=>Ee?.href?.includes(G)))return;const pe=document.createElement("link");pe.rel="stylesheet",pe.href=G,document.head.appendChild(pe)},k=async()=>{const G=new Function("u","return import(u)"),ce=await G("https://esm.sh/maplibre-gl@3.6.2"),pe=ce?.default??ce;if(!pe)throw new Error("maplibre esm fallback failed");window.maplibregl=pe,window.mapboxgl=pe;const Ee=await G("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),Pe=Ee?.default??Ee;if(!Pe)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=Pe},F=(async()=>{g("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),g("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await k();const G=window.maplibregl,ce=window.MapboxDraw;if(!G)throw new Error("maplibregl not available after load");if(!ce)throw new Error("MapboxDraw not available after load");return Zp(G),{maplibregl:G,MapboxDraw:ce}})().catch(G=>{throw delete u[jn],G});return u[jn]=F,F}function Qt(u){return{version:8,glyphs:Ym,sources:{rasterSource:_o(u,void 0,{safe:!1})},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let $t=null,Rt=null,K=null,fe=null,nt=[],At=null,wt=null,Ge=null,en=!1,Gt=!1,H=!1,re=null;function me(){return{onSetup(){const u=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(u),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:u,startPoint:null,hasCoordinates:!1}},onMouseMove(u,g){if(!u.startPoint)return;const[k,B]=u.startPoint,F=g.lngLat.lng,G=g.lngLat.lat;u.rectangle.setCoordinates([[[k,B],[F,B],[F,G],[k,G],[k,B]]])},onClick(u,g){if(!u.startPoint){u.startPoint=[g.lngLat.lng,g.lngLat.lat],u.hasCoordinates=!0,u.rectangle.setCoordinates([[[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat]]]);return}const[k,B]=u.startPoint,F=g.lngLat.lng,G=g.lngLat.lat;return Math.abs(k-F)>0&&Math.abs(B-G)>0?(u.rectangle.setCoordinates([[[k,B],[F,B],[F,G],[k,G],[k,B]]]),this.map.fire("draw.create",{features:[u.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[u.rectangle.id]})):(this.deleteFeature([u.rectangle.id],{silent:!0}),u.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(u){this.deleteFeature([u.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(u,g,k){const B=g.properties.id===u.rectangle.id;B&&!u.hasCoordinates||(g.properties.active=B?"true":"false",k(g))}}}const Ne=[{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 ze(){const u=Oe.value;return!u||!de[u]?.url?"":de[u].url}function Je(u,g){return u?.id?String(u.id):u?.url?`${u.url}-${g}`:`layer-${g}`}function je(u){const g=String(u?.url??"").trim();if(!g)return"";if(/^https?:\/\//i.test(g))return g;const k=window.location?.origin??"",B=g.replace(/^\/+/,"");return`${k}/${B}`}function Qe(u){u&&Ae.value?.layerId!==u||(Ae.value=null)}function xt(u,g={}){if(u.popup===!1)return[];const k=Number(g?.point_count);if(Number.isFinite(k)&&k>1)return[{key:"Об'єктів у кластері",value:String(k)}];const B=je(u),F=_n(u,B,Z.value);return Array.isArray(u.popup)?u.popup.length?u.popup.map(G=>{const ce=G?.field||G?.name;if(!ce)return null;const pe=g[ce];if(pe==null||pe==="")return null;const Ee=F?.formatPopupValue?F.formatPopupValue(ce,pe):String(pe);return{key:G.label||ce,value:Ee}}).filter(Boolean):[]:Object.entries(g).slice(0,5).map(([G,ce])=>({key:G,value:ce==null?"—":String(ce)}))}function pt(u){if(!Array.isArray(u))return[];const g=B=>Array.isArray(B)&&B.length>=2&&Number.isFinite(Number(B[0]))&&Number.isFinite(Number(B[1])),k=B=>{if(!B.length)return B;const F=B[0],G=B[B.length-1];return!G||F[0]!==G[0]||F[1]!==G[1]?[...B,F]:B};if(u.length&&g(u[0])){const B=u.map(F=>[Number(F[0]),Number(F[1])]).filter(g);return B.length?[k(B)]:[]}return u.length&&Array.isArray(u[0])&&g(u[0][0])?u.map(F=>Array.isArray(F)?F.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(F=>F.length).map(k):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&g(u[0][0][0])?u.flatMap(F=>Array.isArray(F)?F:[]).map(F=>Array.isArray(F)?F.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(F=>F.length).map(k):[]}function vt(u){const g=u.style??{},k=g.color??"#3b82f6";if(!g.colorAttr||!g.colorSet)return k;const B=Object.keys(g.colorSet);if(!B.length)return k;const F=["match",["to-string",["get",g.colorAttr]]];return B.forEach(G=>{F.push(String(G),g.colorSet?.[G]??k)}),F.push(k),F}function mt(u){if(!K)return;const g=K.getStyle()?.layers;Array.isArray(g)&&[...g].reverse().forEach(k=>{k.source===u&&K.getLayer(k.id)&&K.removeLayer(k.id)})}function zt(u){if(!K)return;u.handlers.forEach(B=>{try{K.off(B.type,B.layerId,B.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(B=>{K.getLayer(B)&&K.removeLayer(B)}),mt(u.sourceId),K.getSource(u.sourceId)&&K.removeSource(u.sourceId);const g=`vs-ov-bounds-src-${u.id}`,k=`vs-ov-bounds-line-${u.id}`;K.getLayer(k)&&K.removeLayer(k),K.getSource(g)&&K.removeSource(g),Qe(u.id)}function U0(u,g){if(!K)return[];const k=`vs-ov-bounds-src-${g}`,B=`vs-ov-bounds-line-${g}`,F=u.bounds??Y.value??he.value,G=pt(F);if(!G.length)return[];const ce={type:"FeatureCollection",features:G.map(pe=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:pe}}))};return K.getLayer(B)&&K.removeLayer(B),K.getSource(k)&&K.removeSource(k),K.addSource(k,{type:"geojson",data:ce}),K.addLayer({id:B,type:"line",source:k,paint:{"line-color":u.style?.stroke??u.style?.color??"#2563eb","line-width":u.style?.width??2,"line-opacity":u.style?.opacity??.8,"line-dasharray":[2,2]}}),[B]}function Io(){return H||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"}function H0(u,g){if(!K)return;u.handlers.forEach(B=>{try{K.off(B.type,B.layerId,B.handler)}catch{}});const k=[];g.forEach(B=>{const F=ce=>{if(Io())return;if(!ce?.features?.length){Qe(u.id);return}const pe=ce.features[0]?.properties??{},Ee=xt(u.config,pe);if(!Ee.length){Qe(u.id);return}Ae.value={layerId:u.id,entries:Ee,point:{x:ce.point.x,y:ce.point.y}}},G=()=>Qe(u.id);K.on("mousemove",B,F),K.on("mouseleave",B,G),k.push({layerId:B,type:"mousemove",handler:F},{layerId:B,type:"mouseleave",handler:G})}),u.handlers=k}function Oo(u,g){if(!K)return;u.layerIds=g,u.boundsIds=U0(u.config,u.id),H0(u,g);const k=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(B=>{K.getLayer(B)&&K.setLayoutProperty(B,"visibility",k)}),_t()}function tn(u){if(!K)return;zt(u),u.renderToken=(u.renderToken??0)+1;const g=u.renderToken,k=u.config,B=je(k);if(!B)return;const F=[],G=/\.v(?:m)?t(?:\?|$|\/)/i.test(B)||/\.pbf(?:\?|$)/i.test(B)||/\/vtile(?:\/|\?|$)/i.test(B)||String(k?.service??"").toLowerCase()==="vector"||String(k?.format??"").toLowerCase()==="mvt",ce=_n(k,B,Z.value);if(G&&ce){const pe=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;K.addSource(u.sourceId,{type:"vector",tiles:[B],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22}),(async()=>{try{if(!K||!K.getSource(u.sourceId)||u.renderToken!==g)return;const Ee=await ce.render({map:K,overlayId:u.id,sourceId:u.sourceId,sourceLayer:pe,url:B,config:k});if(!K||!K.getSource(u.sourceId)||u.renderToken!==g){Ee.forEach(Pe=>{K.getLayer(Pe)&&K.removeLayer(Pe)});return}Oo(u,Ee)}catch(Ee){u.renderToken===g&&console.error(`Failed to render map layer preset "${ce.id}"`,Ee)}})();return}if(G){const pe=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;K.addSource(u.sourceId,{type:"vector",tiles:[B],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22});const Ee=Array.isArray(k.style?.types)?k.style.types.map(Ft=>String(Ft).toLowerCase()):[String(k.style?.type??"polygon").toLowerCase()],Pe=vt(k),Mt=k.style?.opacity??.5,Go=Ft=>{if(Ft==="point"){const vn=`vs-ov-point-${u.id}`;K.addLayer({id:vn,type:"circle",source:u.sourceId,"source-layer":pe,paint:{"circle-color":Pe,"circle-radius":k.style?.radius??5,"circle-opacity":Mt}}),F.push(vn);return}if(Ft==="polyline"||Ft==="line"){const vn=`vs-ov-line-${u.id}`;K.addLayer({id:vn,type:"line",source:u.sourceId,"source-layer":pe,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":Pe,"line-width":k.style?.width??2,"line-opacity":Mt}}),F.push(vn);return}const Ul=`vs-ov-fill-${u.id}`,Hl=`vs-ov-border-${u.id}`;K.addLayer({id:Ul,type:"fill",source:u.sourceId,"source-layer":pe,paint:{"fill-color":Pe,"fill-opacity":Mt}}),K.addLayer({id:Hl,type:"line",source:u.sourceId,"source-layer":pe,paint:{"line-color":k.style?.stroke??k.style?.color??"#2563eb","line-width":k.style?.width??1,"line-opacity":Mt}}),F.push(Ul,Hl)};[...new Set(Ee)].forEach(Ft=>Go(Ft)),Oo(u,F);return}else{K.addSource(u.sourceId,_o(B,k,{safe:!1}));const pe=`vs-ov-raster-${u.id}`;K.addLayer({id:pe,type:"raster",source:u.sourceId,paint:{"raster-opacity":k.style?.opacity??1}}),F.push(pe)}Oo(u,F)}function wn(){if(!K)return;const g={type:"FeatureCollection",features:pt(Y.value??he.value).map(k=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:k}}))};K.getSource(Un)?K.getSource(Un).setData(g):K.addSource(Un,{type:"geojson",data:g}),K.getLayer(Zt)||K.addLayer({id:Zt,type:"line",source:Un,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function q0(u){if(!K||i.value)return;const g=le[u];if(!g)return;g.visible=!g.visible;const k=g.visible?"visible":"none";[...g.layerIds,...g.boundsIds].forEach(B=>{K.getLayer(B)&&K.setLayoutProperty(B,"visibility",k)}),_t(),g.visible||Qe(u)}function Sl(u){if(!K)return;const g=Ue[u];if(!g?.url)return;const k=ct(u),B=Pt(u);K.getLayer(B)&&K.removeLayer(B),K.getSource(k)&&K.removeSource(k),K.addSource(k,_o(g.url,g,{safe:!0}));const F=g?.opacity??g?.style?.opacity,G=typeof F=="number"?F:Wm;K.addLayer({id:B,type:"raster",source:k,paint:{"raster-opacity":G}})}function W0(u){if(!K)return;const g=ct(u),k=Pt(u);K.getLayer(k)&&K.removeLayer(k),K.getSource(g)&&K.removeSource(g)}function $l(){K&&We.value.forEach(u=>Sl(u))}function K0(u){if(!K||i.value||!Ue[u])return;We.value.includes(u)?(We.value=We.value.filter(k=>k!==u),W0(u)):(We.value=[...We.value,u],Sl(u)),_t()}function _t(){if(!K)return;const u=We.value.map(Ee=>Pt(Ee)).filter(Ee=>K.getLayer(Ee)),g=[],k=[],B=[],F=[];ue.value.forEach(Ee=>{const Pe=le[Ee];if(!Pe)return;const Mt=String(Pe.config?.url??""),Go=/\.v(?:m)?t(?:\?|$|\/)/i.test(Mt)||/\/vtile(?:\/|\?|$)/i.test(Mt)||Yo(Pe.config,Mt,Z.value),Ft=/\.png(?:\?|$)/i.test(Mt);Go?B.push(...Pe.layerIds):Ft?g.push(...Pe.layerIds):k.push(...Pe.layerIds),F.push(...Pe.boundsIds)});const G=[...u,...g,...k,...B,...F];G.forEach(Ee=>{K.getLayer(Ee)&&K.moveLayer(Ee)}),K.getLayer(Zt)&&K.moveLayer(Zt);const pe=(K.getStyle?.()?.layers??[]).map(Ee=>String(Ee?.id??"")).filter(Ee=>Ee.startsWith("gl-draw-"));if(pe.forEach(Ee=>{K.getLayer(Ee)&&K.moveLayer(Ee)}),K.getLayer(Dr)){const Ee=G.find(Pe=>K.getLayer(Pe))??(K.getLayer(Zt)?Zt:null)??pe.find(Pe=>K.getLayer(Pe));Ee&&K.moveLayer(Dr,Ee)}}function G0(u){if(!de[u]||(Oe.value=u,!K))return;const g=ze();if(!g)return;const k=K.getSource("rasterSource");if(k&&typeof k.setTiles=="function"){k.setTiles([g]),_t();return}const B=K.getCenter?.(),F=K.getZoom?.(),G=fe?.getAll?.();K.setStyle(Qt(g)),K.once("style.load",()=>{if(K&&(B&&Number.isFinite(F)&&K.jumpTo({center:[B.lng,B.lat],zoom:F}),wn(),$l(),ue.value.forEach(ce=>{const pe=le[ce];pe&&tn(pe)}),_t(),G?.features?.length&&fe))try{G.features.forEach(ce=>fe.add(ce)),y.value=G.features.length}catch{y.value=0}})}function Po(u){return{type:"Feature",properties:{},geometry:u}}function Ct(u){if(!u)return null;try{return JSON.parse(JSON.stringify(u))}catch{return null}}function Ro(u){if(!u)return null;const g=Ct(u.geometry);return g?{...u.id!==void 0?{id:u.id}:{},type:"Feature",properties:{...u.properties??{}},geometry:g}:null}function to(u){if(!u)return[];const g=(F,G)=>{if(!F?.type)return[];const ce={...G??{}};return F.type==="MultiPoint"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Po({type:"Point",coordinates:pe})).map(pe=>({...pe,properties:ce})):F.type==="MultiLineString"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Po({type:"LineString",coordinates:pe})).map(pe=>({...pe,properties:ce})):F.type==="MultiPolygon"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Po({type:"Polygon",coordinates:pe})).map(pe=>({...pe,properties:ce})):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?F.geometries.flatMap(pe=>g(pe,ce)):[{type:"Feature",properties:ce,geometry:Ct(F)}]},k=F=>{if(!F)return null;if(F.type==="Feature"){const G=Ro(F);return G?g(G.geometry,G.properties):null}return F.geom?.type&&Array.isArray(F.geom.coordinates)?g({type:F.geom.type,coordinates:F.geom.coordinates},F.properties??{}):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?g(F,F.properties??{}):typeof F.type=="string"&&Array.isArray(F.coordinates)?g(Ct(F),F.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(k).filter(Boolean);if(Array.isArray(u))return u.flatMap(F=>F?.type==="FeatureCollection"?to(F):[k(F)]).flat().filter(Boolean);const B=k(u);return B?Array.isArray(B)?B:[B]:[]}function Al(u){if(!u.length)return null;if(!c.value)return Ct(u[0]?.geometry??null);const g=u.map(G=>Ct(G?.geometry)).filter(Boolean);return g.every(G=>G?.type==="Point")?{type:"MultiPoint",coordinates:g.map(G=>G.coordinates)}:g.every(G=>G?.type==="LineString")?{type:"MultiLineString",coordinates:g.map(G=>G.coordinates)}:g.every(G=>G?.type==="Polygon")?{type:"MultiPolygon",coordinates:g.map(G=>G.coordinates)}:{type:"GeometryCollection",geometries:g}}function Nl(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function Y0(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length<2||g.length<2)return!1;const k=1e-12;return Math.abs(Number(u[0])-Number(g[0]))<k&&Math.abs(Number(u[1])-Number(g[1]))<k}function Ml(u,g){if(!Array.isArray(u)||u.length<4)return null;const B=Y0(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(g)||g<0||g>=B.length||B.length<=3||(B.splice(g,1),B.length<3)?null:[...B,[...B[0]]]}function Fl(u,g){if(!Array.isArray(u)||u.length<2||!Number.isInteger(g)||g<0||g>=u.length||u.length<=2)return null;const k=u.slice();return k.splice(g,1),k.length<2?null:k}function X0(u,g){const k=Ct(u);if(!k||!Array.isArray(g))return null;if(k.type==="LineString"){const[B]=g,F=Fl(k.coordinates,B);return F?(k.coordinates=F,k):null}if(k.type==="MultiLineString"){const[B,F]=g,G=k.coordinates?.[B],ce=Fl(G,F);return ce?(k.coordinates[B]=ce,k):null}if(k.type==="Polygon"){const[B,F]=g,G=k.coordinates?.[B],ce=Ml(G,F);return ce?(k.coordinates[B]=ce,k):null}if(k.type==="MultiPolygon"){const[B,F,G]=g,ce=k.coordinates?.[B]?.[F],pe=Ml(ce,G);return pe?(k.coordinates[B][F]=pe,k):null}return null}function Z0(u){return u?u.split(".").map(g=>Number(g)).filter(g=>Number.isInteger(g)&&g>=0):[]}function Dl(u){return!fe||!u?null:typeof fe.get=="function"?fe.get(u)??null:fe.getAll?.()?.features?.find(k=>String(k?.id??"")===u)??null}function Tl(u){const g=u?.properties?.id??u?.id;return g==null||g===""?null:String(g)}function J0(u){if(!K||!u)return null;const g=[[u.x-8,u.y-8],[u.x+8,u.y+8]],B=K.queryRenderedFeatures(g).find(F=>{const G=String(F?.properties?.meta??"");return G&&G!=="feature"?!1:!!Tl(F)});return Tl(B)}function Q0(u,g){if(!fe||!u||!g.length)return;const k=Dl(u);if(!k?.geometry)return;const B=X0(k.geometry,g);if(!B)return;const F={...k,id:k.id??u,geometry:B};ne=!0,z=!0;try{fe.delete(u),fe.add(F)}finally{z=!1,ne=!1}jt(),Nt()}function eb(u){if(!K||!fe||i.value||v.isRulerActive.value||p.value!=="edit")return;const g=u?.point;if(!g)return;const k=[[g.x-8,g.y-8],[g.x+8,g.y+8]],F=K.queryRenderedFeatures(k).find(ce=>ce?.properties?.meta==="vertex"&&ce?.properties?.parent&&ce?.properties?.coord_path);if(!F)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const G=Z0(String(F.properties.coord_path));G.length&&Q0(String(F.properties.parent),G)}function tb(u){const g=Ol(u);if(!g)return null;const[[k,B],[F,G]]=g;return{lat:(B+G)/2,lng:(k+F)/2}}function Ll(u){if(!Array.isArray(u)||u.length<3)return 0;const g=(B,F)=>{const G=B*2003750834e-2/180,ce=Math.log(Math.tan((90+F)*Math.PI/360))/(Math.PI/180);return[G,ce*2003750834e-2/180]};let k=0;for(let B=0;B<u.length-1;B+=1){const[F,G]=g(Number(u[B][0]),Number(u[B][1])),[ce,pe]=g(Number(u[B+1][0]),Number(u[B+1][1]));k+=F*pe-ce*G}return Math.abs(k/2)/1e6}function nb(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const g=u.coordinates?.[0];return Array.isArray(g)?Ll(g):null}return u.type==="MultiPolygon"?u.coordinates.reduce((g,k)=>{const B=k?.[0];return Array.isArray(B)?g+Ll(B):g},0):null}function zo(u){if(!u){m.value=null;return}const g=tb(u);if(!g){m.value=null;return}m.value={type:String(u.type??"Feature"),center:g,areaKm2:nb(u)}}function jo(u){if(!u){const B=nt[nt.length-1],F=Ct(B?.geometry??null);At=F,zo(F);return}const g=nt.find(B=>String(B?.id??"")===String(u))??null,k=Ct(g?.geometry??null);At=k,zo(k)}function Uo(u){f.value=(u??[]).map((g,k)=>{const B=String(g?.id??`feature-${k+1}`),F=Ho(String(g?.geometry?.type??"Feature"));return{id:B,label:`${F} ${k+1}`}})}function Ho(u){switch(String(u)){case"Point":return"Точка";case"MultiPoint":return"Мультиточка";case"LineString":return"Лінія";case"MultiLineString":return"Мультилінія";case"Polygon":return"Полігон";case"MultiPolygon":return"Мультиполігон";case"GeometryCollection":return"Колекція геометрій";default:return String(u||"Невідомо")}}function Il(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length!==2||g.length!==2)return!1;const k=1e-9;return Math.abs(Number(u[0])-Number(g[0]))<k&&Math.abs(Number(u[1])-Number(g[1]))<k}function Ol(u){if(!u)return null;let g=1/0,k=1/0,B=-1/0,F=-1/0;const G=ce=>{if(Array.isArray(ce)){if(ce.length>=2&&Number.isFinite(ce[0])&&Number.isFinite(ce[1])){const pe=Number(ce[0]),Ee=Number(ce[1]);g=Math.min(g,pe),k=Math.min(k,Ee),B=Math.max(B,pe),F=Math.max(F,Ee);return}ce.forEach(G)}};return G(u.coordinates),!Number.isFinite(g)||!Number.isFinite(k)?null:[[g,k],[B,F]]}function Pl(u){if(!K||!u)return;const g=Ol(u);if(!g)return;const[[k,B],[F,G]]=g;if(k===F&&B===G){K.easeTo({center:[k,B],zoom:Math.max(I.value,14)}),Q();return}K.fitBounds(g,{padding:30,duration:250,maxZoom:18}),Q()}function qo(){if(!fe){y.value=0;return}const u=fe.getAll();y.value=u?.features?.length??0}function xn(){if(!fe)return null;const g=fe.getAll?.()?.features??[],k=G=>!!G&&g.some(ce=>String(ce?.id??"")===String(G??"")),B=fe.getSelectedIds?.();if(Array.isArray(B)&&B.length>0){const G=B[0];return G!=null?String(G):null}if(k(Ge))return String(Ge);if(!g.length)return null;const F=c.value?g[g.length-1]:g[0];return F?.id!==void 0&&F?.id!==null?String(F.id):null}function jt(){if(!fe)return;const u=fe.getAll();if(y.value=u?.features?.length??0,!u?.features?.length){nt=[],f.value=[],At=null,Ge=null,m.value=null,z||(wt="__null__",r("update:modelValue",null));return}const g=(u.features??[]).map(Ro).filter(Boolean);if(nt=g,Uo(g),Ge=xn(),jo(Ge),!z){const k=Al(g);wt=Nl(k),r("update:modelValue",k)}}function no(){if(!fe)return;(fe.getAll()?.features||[]).forEach(g=>fe.delete(g.id)),f.value=[],qo()}function oo(u){if(!fe)return;const g=to(u),k=c.value?g:g.slice(0,1);z=!0,no(),k.forEach(G=>{try{fe.add(G)}catch{}}),z=!1,nt=(fe.getAll?.()?.features??k).map(Ro).filter(Boolean),Uo(nt),Ge=null;const F=Ct(nt[nt.length-1]?.geometry??null);At=Ct(F),qo(),zo(F),F&&(Pl(F),i.value||Nt())}function ob(){fe&&(z=!0,no(),nt.forEach(u=>{try{fe.add(u)}catch{}}),z=!1,Uo(nt),qo(),jo(Ge))}function nn(){if(fe){try{fe.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""}}function ro(u){if(i.value||!fe)return;v.isRulerActive.value&&v.closeRuler(),H=!0,nn(),p.value=u;const g=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";c.value||(z=!0,no(),z=!1);try{fe.changeMode(g)}catch{p.value=""}finally{requestAnimationFrame(()=>{H=!1})}}function Nt(u){if(i.value||!fe||!fe.getAll()?.features?.length)return;const k=u||xn();if(k)try{fe.changeMode("direct_select",{featureId:k}),Ge=k,jo(Ge),p.value="edit"}catch{p.value=""}}function rb(u){i.value||!fe||!u||Nt(u)}function lb(){if(!(i.value||!fe)){if(c.value){const u=xn();if(u)try{en=!0,fe.delete(u),en=!1,jt();const g=xn();g?Nt(g):nn();return}catch{en=!1}}nn(),no(),nt=[],f.value=[],Ge=null,wt="__null__",m.value=null,r("update:modelValue",null)}}function ab(){i.value||!At||Pl(At)}function sb(u){if(!K||!$t)return;const g=[u[1],u[0]];re||(re=new $t.Marker({color:"#2563eb"})),re.setLngLat(g).addTo(K),K.easeTo({center:g,zoom:13,duration:250})}function ib(){i.value||(we.value=!we.value)}function Rl(u){if(!we.value)return;const g=ee.value;g&&!g.contains(u.target)&&(we.value=!1)}function cb(){db()}function db(){i.value||(we.value=!1,ie.value={srid:"",encoding:"UTF-8",file:""},$e.value=!0)}function ub(){$e.value=!1,Me.value=!1,Fe.value=!1}function pb(u){return u?typeof u=="string"?u:typeof u=="object"&&u&&"file_path"in u?String(u.file_path??""):"":""}function mb(u){const B=((Array.isArray(u)?u[0]:u)?.features??[]).map(F=>Array.isArray(F)?F[0]:F).filter(Boolean).map(F=>F?.type==="Feature"?F:{type:"Feature",properties:{},geometry:F});return B.length?{type:"FeatureCollection",features:B}:null}async function fb(){if(i.value||!fe||Me.value)return;const u=pb(ie.value.file);if(!u){ge.notify({type:"warning",title:"Імпорт геометрії",message:"Оберіть файл для імпорту."});return}Me.value=!0;try{const g=await fetch("/api/gis-convert",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({srid:ie.value.srid,encoding:ie.value.encoding||"UTF-8",filepath:u,limit:!0})}),k=await g.json().catch(()=>null);if(!g.ok)throw new Error(k?.message||k?.error||`Код помилки: ${g.status}`);const B=mb(k);if(!B){ge.notify({type:"warning",title:"Імпорт геометрії",message:"Файл не містить коректні геодані."});return}oo(B),jt(),$e.value=!1,ge.notify({type:"success",title:"Успіх",message:"Геометрію успішно імпортовано."})}catch(g){ge.notify({type:"error",title:"Помилка",message:g?.message||"Помилка імпорту файла геометрії"})}finally{Me.value=!1}}function hb(){i.value||(se.value=[],we.value=!1,be.value=!0)}function gb(){be.value=!1,se.value=[]}function yb(){if(i.value||!fe)return;const u=Mu(Le.value.coordinates??"",Le.value.format||"decimal",Le.value.order||"lat-lon");if(!u.ok){se.value=u.errors,bb(u.errors);return}se.value=[],oo({type:"Polygon",coordinates:[u.ring]}),jt(),be.value=!1,u.wasClosedAutomatically&&ge.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function bb(u){if(!u.length)return;const g=5;u.slice(0,g).forEach(k=>{const B=k.line>0?`Рядок ${k.line}`:"Загальна помилка";ge.notify({type:"warning",title:"Імпорт координат",message:`${B} — ${k.message}`})}),u.length>g&&ge.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-g}`})}function kb(){if(i.value||!fe)return;const u=fe.getAll(),g=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),k=URL.createObjectURL(g),B=document.createElement("a");B.href=k,B.download="data.geojson",B.click(),URL.revokeObjectURL(k)}e.onMounted(async()=>{if(window.addEventListener("click",Rl,!0),!h.value)return;const u=await eo();$t=u.maplibregl,Rt=u.MapboxDraw;const g=ze();g&&(K=new $t.Map({container:h.value,style:Qt(g),center:[q.value[0],q.value[1]],zoom:I.value,attributionControl:!1}),w.value=K,K.addControl(new $t.NavigationControl({showCompass:!0}),"bottom-right"),K.on("error",k=>{const B=k?.error?.message??k?.message??"";em(B)}),K.on("load",()=>{if(!(!Rt||!K)){if(fe=new Rt({displayControlsDefault:!1,modes:{...Rt.modes,draw_rectangle:me()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Ne}),K.addControl(fe),K.on("click",k=>{if(v.isRulerActive.value){const F=k?.lngLat;if(!F)return;b.value?.addPoint?.({lat:F.lat,lng:F.lng});return}if(!fe||i.value||p.value!=="edit")return;const B=J0(k?.point);!B||B===Ge||requestAnimationFrame(()=>{!fe||i.value||Nt(B)})}),K.on("draw.create",()=>{if(fe&&!v.isRulerActive.value){if(!c.value){const k=fe.getAll();if(k.features.length>1){const B=k.features[k.features.length-1];z=!0,k.features.slice(0,-1).forEach(F=>fe.delete(F.id)),z=!1,B&&(z=!0,fe.add(B),z=!1)}}jt(),Nt()}}),K.on("draw.update",k=>{if(Gt||v.isRulerActive.value||Io())return;const B=Array.isArray(k?.features)?k.features:[],F=k?.action==="move"&&B.length>0&&B.every(G=>G?.geometry?.type==="Point");if(k?.action==="move"){if(F){jt();return}if(Gt=!0,ob(),Gt=!1,p.value==="edit"){const G=xn(),ce=G?Dl(G):fe?.getAll?.()?.features?.[0];if(ce?.id)try{fe.changeMode("direct_select",{featureId:ce.id}),Ge=String(ce.id)}catch{p.value=""}}return}jt()}),K.on("draw.delete",()=>{ne||en||v.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"||(jt(),fe?.getAll?.()?.features?.length||(Ge=null),p.value="",nn())}),K.on("draw.selectionchange",k=>{if(!fe||Gt||v.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle")return;const B=k?.features?.[0]?.id!==void 0&&k?.features?.[0]?.id!==null?String(k.features[0].id):null;if(!i.value&&B){if(p.value==="edit"&&Ge===B)return;requestAnimationFrame(()=>{!fe||i.value||Nt(B)});return}const F=fe.getSelectedIds?.(),G=Array.isArray(F)&&F.length>0?String(F[0]):null;if(!i.value&&G){if(p.value==="edit"&&Ge===G)return;requestAnimationFrame(()=>{!fe||i.value||Nt(G)});return}try{fe.changeMode("simple_select",{featureIds:[]})}catch{}}),ae.value!==void 0){const k=ae.value;ae.value=void 0,requestAnimationFrame(()=>{fe&&oo(k)})}wn(),$l(),ue.value.forEach(k=>{const B=le[k];B&&tn(B)}),_t(),N()}}),K.on("contextmenu",eb),K.on("moveend",Q),K.on("zoomend",()=>{K&&(I.value=K.getZoom())}))}),e.onUnmounted(()=>{typeof document<"u"&&(document.body.style.overflow=""),typeof window<"u"&&window.removeEventListener("keydown",Ko),te&&(clearTimeout(te),te=null),v.isRulerActive.value&&v.closeRuler(),window.removeEventListener("click",Rl,!0),Object.values(le).forEach(u=>{K&&zt(u)}),Qe(),re?.remove&&re.remove(),re=null,K?.remove&&K.remove(),K=null,fe=null,w.value=null}),e.watch(()=>n.modelValue,u=>{if(!fe){ae.value=u;return}if(Io())return;const g=Al((c.value?to(u):to(u).slice(0,1))||[]),k=Nl(g);if(wt&&k===wt){wt=null;return}wt=null,oo(u)},{deep:!0}),e.watch(()=>P.value,u=>{const g=Array.isArray(u)?u:[],k=[],B=new Set;g.forEach((F,G)=>{if(!F)return;const ce=Je(F,G);k.push(ce),B.add(ce);const pe={...F,id:ce},Ee=le[ce],Pe=Ee?.visible??!!pe.visible;Ee&&K&&zt(Ee),le[ce]={id:ce,config:pe,visible:Pe,sourceId:`vs-ov-src-${ce}`,layerIds:[],boundsIds:[],handlers:[],renderToken:Ee?.renderToken??0}}),Object.keys(le).forEach(F=>{if(B.has(F))return;const G=le[F];G&&K&&zt(G),delete le[F]}),ue.value=k,K&&(ue.value.forEach(F=>{const G=le[F];G&&tn(G)}),_t())},{immediate:!0,deep:!0}),e.watch(()=>Y.value,()=>{K&&(wn(),ue.value.forEach(u=>{const g=le[u];g&&tn(g)}),_t())},{deep:!0}),e.watch(()=>A.value,async u=>{if(he.value=[],!u){K&&(wn(),ue.value.forEach(g=>{const k=le[g];k&&tn(k)}),_t());return}try{const g=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!g?.ok)return;const B=(await g.json())?.geometry?.coordinates;Array.isArray(B)&&B.length&&(he.value=B)}catch(g){console.error("Failed to fetch KATOTTG bounds",g)}finally{if(!K)return;wn(),ue.value.forEach(g=>{const k=le[g];k&&tn(k)}),_t()}},{immediate:!0}),e.watch(()=>j.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const g=[Number(u[0]),Number(u[1])];if(Il(q.value,g)||(q.value=[...g],!K))return;const k=K.getCenter?.();k&&Il([k.lng,k.lat],q.value)||K.easeTo({center:[q.value[0],q.value[1]]})},{deep:!0}),e.watch(()=>oe.value,u=>{typeof u=="number"&&(I.value=u,K&&K.setZoom(u))}),e.watch(()=>m.value?.center,u=>{u&&M(u.lng,u.lat,K?.getZoom?.())},{deep:!0}),e.watch(i,u=>{u&&nn()}),e.watch(y,u=>{if(u>0){i.value||Nt();return}H||nn()});const zl=e.computed(()=>f.value.length>0||!!m.value),Wo=e.computed(()=>{const u=f.value,g=u.length>1;return u.length?u.map(k=>({id:k.id,label:g?k.label:m.value?.type?Ho(m.value.type):k.label,interactive:g})):m.value?.type?[{id:"__feature",label:Ho(m.value.type),interactive:!1}]:[]});function jl(){setTimeout(()=>{K?.resize&&K.resize()},50)}function Ko(u){u.key==="Escape"&&d.value&&(d.value=!1)}return e.watch(d,u=>{typeof document<"u"&&(document.body.style.overflow=u?"hidden":""),typeof window<"u"&&(u?window.addEventListener("keydown",Ko):window.removeEventListener("keydown",Ko)),jl()}),e.watch(zl,jl),(u,g)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!d.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:d.value}])},[e.createElementVNode("div",tm,[e.createElementVNode("div",{ref_key:"mapContainer",ref:h,class:"vs-map-canvas"},null,512),x.value.search||x.value.import||x.value.export?(e.openBlock(),e.createElementBlock("div",nm,[x.value.search?(e.openBlock(),e.createBlock(Ju,{key:0,onGoToCoordinates:sb})):e.createCommentVNode("",!0),x.value.import||x.value.export?(e.openBlock(),e.createElementBlock("div",om,[e.createElementVNode("div",rm,[x.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:ee,class:"relative"},[e.createElementVNode("button",{type:"button",class:"vs-map-action-btn",onClick:ib,disabled:i.value},[g[10]||(g[10]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":we.value}])},null,8,["class"])],8,lm),we.value?(e.openBlock(),e.createElementBlock("div",am,[x.value.import?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:cb}," З файлу ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:hb}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),x.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:kb,disabled:i.value||y.value===0}," Експорт ",8,sm)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(ge.VsModal),{visible:$e.value,"onUpdate:visible":g[1]||(g[1]=k=>$e.value=k),title:"Імпорт геометрії",size:"lg",teleport:e.unref(s)},{default:e.withCtx(()=>[Fe.value||Me.value?(e.openBlock(),e.createElementBlock("div",im,[e.createVNode(e.unref(X.LoaderCircle),{class:"h-4 w-4 shrink-0 animate-spin"}),e.createElementVNode("span",null,e.toDisplayString(Re.value),1)])):e.createCommentVNode("",!0),e.createVNode(rt,{schema:Se.value,values:ie.value,"onUpdate:values":g[0]||(g[0]=k=>ie.value=k)},null,8,["schema","values"]),e.createElementVNode("div",cm,[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:ub,disabled:Fe.value||Me.value}," Скасувати ",8,dm),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 inline-flex items-center gap-2",onClick:fb,disabled:i.value||Fe.value||Me.value||!ie.value.file},[Me.value?(e.openBlock(),e.createBlock(e.unref(X.LoaderCircle),{key:0,class:"h-4 w-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(Me.value?"Обробка...":"Додати"),1)],8,um)])]),_:1},8,["visible","teleport"]),e.createVNode(e.unref(ge.VsModal),{visible:be.value,"onUpdate:visible":g[3]||(g[3]=k=>be.value=k),title:"Імпорт координат полігону",size:"lg",teleport:e.unref(s)},{default:e.withCtx(()=>[e.createVNode(rt,{schema:qe,values:Le.value,"onUpdate:values":g[2]||(g[2]=k=>Le.value=k)},null,8,["values"]),e.createElementVNode("div",pm,[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:gb}," Скасувати "),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:yb,disabled:i.value}," Побудувати ",8,mm)])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",fm,[e.createElementVNode("div",hm,[ut.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[x.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="marker"}]),title:"Точка",onClick:g[4]||(g[4]=k=>ro("marker")),disabled:i.value},[e.createVNode(e.unref(X.MapPin),{class:"vs-btn-icon"})],10,gm)):e.createCommentVNode("",!0),x.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polyline"}]),title:"Лінія",onClick:g[5]||(g[5]=k=>ro("polyline")),disabled:i.value},[e.createVNode(Qd,{class:"vs-btn-icon"})],10,ym)):e.createCommentVNode("",!0),x.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polygon"}]),title:"Полігон",onClick:g[6]||(g[6]=k=>ro("polygon")),disabled:i.value},[e.createVNode(ou,{class:"vs-btn-icon"})],10,bm)):e.createCommentVNode("",!0),x.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="rectangle"}]),title:"Прямокутник",onClick:g[7]||(g[7]=k=>ro("rectangle")),disabled:i.value},[e.createVNode(su,{class:"vs-btn-icon"})],10,km)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),ut.value?(e.openBlock(),e.createElementBlock("div",wm)):e.createCommentVNode("",!0),x.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(v).isRulerActive.value}]),title:"Лінійка",onClick:C},[e.createVNode(e.unref(X.Ruler),{class:"vs-btn-icon"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn",onClick:g[8]||(g[8]=k=>d.value=!d.value),title:d.value?"Згорнути":"На весь екран"},[d.value?(e.openBlock(),e.createBlock(e.unref(X.Minimize),{key:0,class:"vs-btn-icon"})):(e.openBlock(),e.createBlock(e.unref(X.Maximize),{key:1,class:"vs-btn-icon"}))],8,xm)])]),x.value.ruler&&e.unref(v).isRulerActive.value?(e.openBlock(),e.createBlock(qp,{key:1,ref_key:"rulerPanelRefEl",ref:b,onClose:g[9]||(g[9]=k=>e.unref(v).closeRuler()),onTabChange:e.unref(v).onRulerTabChange,onPointsChange:e.unref(v).onRulerPointsChange,onShapeClosedChange:e.unref(v).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),x.value.ruler&&e.unref(v).isRulerActive.value&&e.unref(v).hasRulerPoints.value?(e.openBlock(),e.createBlock(Wp,{key:2,map:w.value,points:e.unref(v).rulerPoints.value,"is-shape-closed":e.unref(v).rulerShapeClosed.value,"label-mode":e.unref(v).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),De.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(Te.value)},[e.createElementVNode("div",vm,[e.createElementVNode("dl",_m,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(De.value,k=>(e.openBlock(),e.createElementBlock("div",{key:`${k.key}-${k.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Cm,e.toDisplayString(k.key),1),e.createElementVNode("dd",Em,e.toDisplayString(k.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",Bm,[e.createVNode(Au,{compact:"",basemaps:e.unref(de),"active-base-key":Oe.value,"tile-overlays":e.unref(Ue),"active-tile-overlay-keys":We.value,"vector-overlays":Ke.value,"preview-tile":J.value,disabled:i.value,onOnLayerChange:G0,onOnOverlayToggle:K0,onOnVectorOverlayToggle:q0},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),zl.value?(e.openBlock(),e.createElementBlock("div",Vm,[e.createElementVNode("div",Sm,[e.createElementVNode("div",$m,[g[11]||(g[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",Am,[Wo.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Wo.value,(k,B)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k.id},[k.interactive?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(["vs-map-status__chip",{"vs-map-status__chip--active":k.id===e.unref(Ge)}]),onClick:F=>rb(k.id),disabled:i.value},e.toDisplayString(k.label),11,Nm)):(e.openBlock(),e.createElementBlock("span",Mm,e.toDisplayString(k.label),1)),B<Wo.value.length-1?(e.openBlock(),e.createElementBlock("span",Fm,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",Dm,"—"))])]),e.createElementVNode("div",Tm,[e.createElementVNode("span",Lm,[g[12]||(g[12]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),m.value?(e.openBlock(),e.createElementBlock("span",Im,e.toDisplayString(m.value.center.lng.toFixed(5))+", "+e.toDisplayString(m.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",Om,"—"))]),m.value&&m.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",Pm,[g[13]||(g[13]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",Rm,e.toDisplayString(m.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",zm,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:ab,disabled:i.value},[e.createVNode(e.unref(X.ZoomIn),{class:"vs-status-btn__icon"})],8,jm),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:lb,disabled:i.value},[e.createVNode(e.unref(X.Trash2),{class:"vs-status-btn__icon"})],8,Um)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-780ba2d7"]]),Xm=["data-focus"],Zm={class:"flex items-center"},Jm={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},Qm=["onClick","aria-label"],ef={key:0,class:"absolute text-gray-500 truncate pl-2"},tf={class:"flex-1 min-w-[2px]"},nf=["placeholder"],of={class:"flex items-center shrink-0"},rf=["disabled"],Lr=e.defineComponent({__name:"vs-input-tag",props:e.mergeModels({unique:{type:Boolean,default:!0},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:"Введіть тег"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t;et(n.style);const a=e.ref(null),l=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref(""),d=e.useModel(o,"modelValue"),h=e.computed(()=>n.placeholder||"Add tag…"),y=e.computed(()=>d.value?.length===0&&i.value===""),p=e.computed(()=>!n.disabled&&d.value?.length>0),m=e.computed(()=>n.disabled),f=async()=>{m.value||await e.nextTick(()=>s.value?.focus())},w=Z=>{const O=Z.trim();O!==""&&(!d.value||!Array.isArray(d.value)?d.value=[O]:n.unique?d.value.includes(O)||(d.value=[...d.value,O]):d.value=[...d.value,O],i.value="")},b=()=>{const Z=i.value;Z.trim()!==""&&w(Z),i.value=""},v=Z=>{const O=d.value.slice();O.splice(Z,1),r("update:modelValue",O)},C=()=>{r("update:modelValue",[])},V=()=>{m.value||(c.value=!0)},$=()=>{c.value=!1,!m.value&&b()},U=Z=>{const{key:O}=Z;O==="Enter"?(Z.preventDefault(),b()):O==="Backspace"&&i.value===""&&d.value.length>0&&v(d.value.length-1)};return(Z,O)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:a,onClick:O[1]||(O[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":"",m.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.value?"true":"false",onClick:f},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:l},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(E,S)=>(e.openBlock(),e.createElementBlock("div",{key:S,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",Zm,[e.createElementVNode("div",Jm,e.toDisplayString(E),1)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:e.withModifiers(_=>v(S),["stop"]),"aria-label":`Remove ${E}`},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Qm)]))),128)),y.value?(e.openBlock(),e.createElementBlock("div",ef,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",tf,[m.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:s,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":O[0]||(O[0]=E=>i.value=E),onFocus:V,onBlur:$,onKeydown:U,placeholder:d.value&&d.value.length?"":void 0},null,40,nf)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",of,[p.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:m.value,onClick:e.withModifiers(C,["stop"])},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,rf)):e.createCommentVNode("",!0)])],10,Xm)],2)],512))}}),lf={class:"relative flex gap-1 bg-white w-full"},af=["disabled","placeholder"],Ir=Be(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.inject("values"),n=o,r=e.useModel(o,"modelValue");function a(s){const 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 l=()=>{const s=t?.value?.[n.parent||""]?.toString(),c=a(s);r.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",lf,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:s.disabled,placeholder:s.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,af),[[e.vModelText,r.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:l}," Gen ")]))}}),[["__scopeId","data-v-b0eba370"]]),sf={class:"relative flex gap-1 bg-white w-full"},cf=["disabled","placeholder"],df=["disabled"],uf={key:0},pf={key:1},Or=Be(e.defineComponent({__name:"vs-input-codegen",props:e.mergeModels({table:{},code:{},init:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(!1),a=e.computed(()=>t.init!==!1),l=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!l.value)return"";const d=encodeURIComponent(String(t.table)),h=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${h}`},c=async()=>{if(!l.value||r.value)return;const d=s();if(d){r.value=!0;try{const y=await(await fetch(d)).text();n.value=y}finally{r.value=!1}}},i=()=>{a.value&&(n.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,h)=>(e.openBlock(),e.createElementBlock("div",sf,[e.withDirectives(e.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":h[0]||(h[0]=y=>n.value=y),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,cf),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",disabled:r.value||d.disabled||!l.value,onClick:c},[r.value?(e.openBlock(),e.createElementBlock("span",pf,"...")):(e.openBlock(),e.createElementBlock("span",uf,"Gen"))],8,df)]))}}),[["__scopeId","data-v-6ee5237d"]]),mf={class:"w-full"},ff={ref:"sortableContainer",class:"flex flex-col gap-1"},hf=["onDragstart","onDrop"],gf={class:"cursor-move",type:"button"},yf={class:"w-1/3"},bf={class:"w-2/3"},kf=["onClick"],wf={key:0,class:"text-[14px] text-gray-700"},xf={class:"mt-2 w-full flex items-center"},vf=["disabled"],Pr=Be(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,r=e.inject("values"),a=o,l=t,s=a.addButtonText??"Додати",c=a.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const b=a.parent&&r?.value?.[a.parent]||a.modelValue||{};i.value=Object.entries(b).filter(([v])=>!c.includes(v)).map(([v,C])=>({id:n("key-value-"),key:v,value:C}))})();function y(b){d.value=b}function p(b){if(d.value===null||d.value===b)return;const v=i.value.splice(d.value,1)[0];i.value.splice(b,0,v),d.value=null}const m=e.computed(()=>i.value.some(b=>b.key&&!b.value||!b.key&&b.value)),f=()=>{i.value.push({id:n("key-value-"),key:"",value:""})},w=b=>{i.value=i.value.filter(v=>v.id!==b)};return e.watch(i,b=>{const v={};b.forEach(V=>{V.key&&V.value!==void 0&&(v[V.key]=V.value)});const C={};c.length&&c.forEach(V=>{C[V]=a.parent?r?.value?.[a.parent]?.[V]:void 0}),r?.value&&a.parent&&(r.value[a.parent]={...C,...v}),l("update:modelValue",v)},{deep:!0}),(b,v)=>(e.openBlock(),e.createElementBlock("div",mf,[e.createElementVNode("div",ff,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(C,V)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===V}]),draggable:"true",onDragstart:$=>y(V),onDragover:v[0]||(v[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>p(V)},[e.createElementVNode("button",gf,[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",yf,[e.createVNode(Yt,{modelValue:C.key,"onUpdate:modelValue":$=>C.key=$,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",bf,[e.createVNode(Yt,{modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:$=>w(C.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,kf)],42,hf))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",wf," Дані для відображення відсутні ")),e.createElementVNode("div",xf,[e.createElementVNode("button",{type:"button",onClick:f,disabled:m.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,vf)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),_f={class:"w-full"},Cf={ref:"sortableContainer",class:"flex flex-col gap-1"},Ef=["onDragstart","onDrop"],Bf=["disabled"],Vf={class:"flex-1"},Sf=["onClick","disabled"],$f={key:0,class:"text-[14px] text-gray-700"},Af={class:"mt-2 w-full flex items-center"},Nf=["disabled"],Rr=Be(e.defineComponent({__name:"vs-input-text-array",props:e.mergeModels({addButtonText:{default:"Додати"},inputType:{default:"text"},placeholder:{default:"Значення"},mask:{default:""},disabled:{type:Boolean,default:!1}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),a=e.ref(null),l=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),c=e.computed(()=>t.addButtonText??"Додати");let i=!1;const d=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,h=b=>{const v=b??n.value??[];r.value=v.map((C,V)=>({id:r.value[V]?.id??d("text-array"),value:C??""}))};h(),e.watch(()=>n.value,b=>{if(i){i=!1;return}h(b||[])},{deep:!0}),e.watch(r,b=>{i=!0,n.value=b.map(v=>v.value).filter(v=>v!=null&&v!=="")},{deep:!0});const y=e.computed(()=>l.value||r.value.some(b=>!b.value));function p(){y.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function m(b){l.value||(r.value=r.value.filter(v=>v.id!==b))}function f(b){l.value||(a.value=b)}function w(b){if(l.value||a.value===null||a.value===b)return;const v=[...r.value],[C]=v.splice(a.value,1);v.splice(b,0,C),r.value=v,a.value=null}return(b,v)=>(e.openBlock(),e.createElementBlock("div",_f,[e.createElementVNode("div",Cf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,V)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":a.value===V}]),draggable:"true",onDragstart:$=>f(V),onDragover:v[0]||(v[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>w(V)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:l.value},[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})],8,Bf),e.createElementVNode("div",Vf,[b.inputType==="text"?(e.openBlock(),e.createBlock(Yt,{key:0,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="tel"?(e.openBlock(),e.createBlock(po,{key:1,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="email"?(e.openBlock(),e.createBlock(uo,{key:2,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="mask"?(e.openBlock(),e.createBlock(En,{key:3,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,mask:b.mask,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:$=>m(C.id),disabled:l.value,class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200 disabled:opacity-50"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Sf)],42,Ef))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",$f," Дані для відображення відсутні ")),e.createElementVNode("div",Af,[e.createElementVNode("button",{type:"button",onClick:p,disabled:y.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,Nf)])]))}}),[["__scopeId","data-v-2c229b1f"]]),Mf={class:"flex items-center gap-2 w-full"},Ff=["disabled"],Df=["disabled"],zr=e.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,{inputClass:r}=et(n.style),a=t,l=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",Mf,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),disabled:s.value,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[c.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Ff),[[e.vModelText,l.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":i[1]||(i[1]=d=>l.value=d),disabled:s.value},null,8,Df),[[e.vModelText,l.value]])]))}}),Tf={class:"flex items-center gap-2 w-full"},Lf=["min","max","step","disabled"],If=["value","min","max","step","disabled"],jr=e.defineComponent({__name:"vs-input-range",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},min:{default:0},max:{default:100},step:{default:1}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,{inputClass:r}=et(n.style),a=t,l=h=>{const y=Number(h),p=Number(n.min),m=Number(n.max);return Number.isNaN(y)?p:Math.min(m,Math.max(p,y))},s=e.computed({get:()=>l(n.modelValue??n.min),set:h=>a("update:modelValue",l(h))}),c=h=>{const y=h.target,p=l(y.value);y.value=String(p),a("update:modelValue",p)},i=h=>{Number(n.min)>=0&&h.key==="-"&&h.preventDefault()},d=e.computed(()=>!!n.disabled);return(h,y)=>(e.openBlock(),e.createElementBlock("div",Tf,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":y[0]||(y[0]=p=>s.value=p),min:h.min,max:h.max,step:h.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[h.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,Lf),[[e.vModelText,s.value]]),e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number",value:s.value,min:h.min,max:h.max,step:h.step,onInput:c,onKeydown:i,disabled:d.value},null,40,If)]))}}),Of=["placeholder","disabled","name"],Pf=["type","value","onInput","placeholder","disabled"],Rf=["onClick"],Ur=e.defineComponent({__name:"vs-input-array",props:e.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.ref(t.count),r=e.computed(()=>t.limit),{inputClass:a}=et(t.style),l=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const w=l.value?.length??0;w<n.value&&(l.value=[...l.value??[],...Array(n.value-w)])});const i=e.ref({}),d=e.ref({});function h(w,b){w&&(i.value[b]=w)}async function y(w,b){if(!w||t.inputType!=="mask")return;const{default:v}=await Promise.resolve().then(()=>Jn);d.value[b]&&d.value[b].destroy(),d.value[b]=v(w,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[b].on("accept",()=>{const C=[...l.value||[]];C[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,l.value=C}),d.value[b].on("complete",()=>{const C=[...l.value||[]];C[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,l.value=C}),l.value?.[b]&&(d.value[b].value=l.value[b])}function p(w,b){if(s.value)return;const v=w.target.value??null,C=[...l.value];C[b]=t.inputType==="text"?v:Number(v),l.value=C}function m(){n.value+=1;const w=t.inputType==="text"||t.inputType==="mask"?null:0;l.value=[...l.value,w],t.inputType==="mask"&&setTimeout(()=>{const b=n.value-1;i.value[b]&&y(i.value[b],b)},0)}function f(w){if(n.value>1){d.value[w]&&(d.value[w].destroy(),delete d.value[w]),n.value-=1,l.value=l.value.filter((v,C)=>C!==w);const b={};Object.keys(d.value).forEach(v=>{const C=parseInt(v,10);C>w?b[C-1]=d.value[C]:C<w&&(b[C]=d.value[C])}),d.value=b}}return e.onMounted(()=>{if(t.inputType==="mask")for(let w=0;w<n.value;w+=1)i.value[w]&&y(i.value[w],w)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(w=>{w&&w.destroy()})}),e.watch(()=>t.mask,w=>{t.inputType==="mask"&&Object.values(d.value).forEach(b=>{b&&b.updateOptions({mask:w,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(l,w=>{t.inputType==="mask"&&w&&w.forEach((b,v)=>{d.value[v]&&d.value[v].value!==b&&(d.value[v].value=b||"")})},{deep:!0}),(w,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${r.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,v=>(e.openBlock(),e.createElementBlock("div",{key:v,class:"flex items-center gap-2 w-full"},[w.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:C=>h(C,v-1),placeholder:w.placeholder,disabled:w.disabled,name:`${w.name}[${v-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":w.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Of)):(e.openBlock(),e.createElementBlock("input",{key:1,type:w.inputType,value:l.value?.[v-1],onInput:C=>p(C,v-1),placeholder:c.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":w.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Pf)),!w.disabled&&v===n.value&&w.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(m,["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-green-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!w.disabled&&n.value>1&&w.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(C=>f(v-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Rf)):e.createCommentVNode("",!0)]))),128))],2))}}),zf={class:"flex gap-1 w-full"},jf=["aria-expanded","data-focus"],Uf=["placeholder","disabled","readonly"],Hf={class:"max-h-full"},qf=["onClick","disabled"],Wf={key:0,class:"px-3 py-2 text-sm text-stone-500"},Kf=["disabled"],Gf={class:"flex flex-col gap-1"},Yf=["onDragstart","onDrop"],Xf=["disabled"],Zf=["title"],Jf=["disabled","onClick","aria-label"],Qf={key:0,class:"text-xs text-stone-500"},Hn=Be(e.defineComponent({__name:"vs-input-array-select",props:e.mergeModels({options:{default:()=>[]},data:{default:""},api:{default:""},prefix:{default:"api"},host:{default:""},parent:{},search:{type:Boolean,default:!0},maxHeight:{default:280},start:{default:0},slot:{},disabled:{type:Boolean,default:!1},add:{},style:{},customClass:{},modelValue:{},error:{},name:{},placeholder:{default:"Оберіть значення"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t,a=e.useModel(o,"modelValue"),l=e.ref([]),s=e.ref(n.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),h=e.ref(""),y=e.ref(!1),p=e.ref(null),m=e.ref(null),f=e.ref(null),w=e.ref(null),b=e.ref(null),v=e.ref({});let C=!1,V=!1;const $=e.inject("values"),U=e.computed(()=>!!n.disabled),Z=e.computed(()=>n.placeholder??"Оберіть значення"),O=e.computed(()=>n.search!==!1),E=e.computed(()=>{const x=n.parent??n.parentValue;return x?String(x):""}),S=e.computed(()=>E.value?$?.value?.[E.value]??null:null),_=x=>x==null?"__null__":String(x),T=x=>{if(!x)return"";const D=x.label??x.text??x.name??x.ua??x.en;return D?String(D):x.id!==void 0&&x.id!==null?String(x.id):""},j=x=>{const D=_(x);return i.value[D]||(i.value[D]=`array-select-${D}-${Math.random().toString(36).slice(2,8)}`),i.value[D]},oe=e.computed(()=>new Set(l.value.map(x=>_(x.id)))),A=e.computed(()=>{const x=oe.value;let D=[...s.value];if(!n.data&&h.value.trim()){const R=h.value.toLowerCase();D=D.filter(de=>T(de).toLowerCase().includes(R))}return D.filter(R=>!x.has(_(R.id)))}),P=()=>{if(!n.data)return"";const x=n.prefix??"api",D=n.api??`/${x}/suggest/${n.data}`;return`${n.host??""}${D}`},Y=()=>{l.value.length&&(C=!0,l.value=l.value.map(x=>({...x,text:c.value[_(x.id)]??x.text})))},q=x=>{const D=_(x.id),R=T(x);R&&(c.value[D]=R)},I=x=>{s.value=x?[...x]:[],x?.forEach(q),Y()},J=x=>{if(!x.length)return;const D=new Map(s.value.map(R=>[_(R.id),R]));x.forEach(R=>{const de=_(R.id);D.set(de,R),q(R)}),s.value=Array.from(D.values()),Y()},te=async(x="")=>{if(!n.data)return[];const D=P();if(!D)return[];const R=new URLSearchParams;R.set("json","1"),x&&R.set("key",x),n.start===1&&R.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&R.set("parent",String(S.value));try{return(await(await fetch(`${D}?${R.toString()}`)).json())?.data??[]}catch{return[]}},L=async x=>{if(!n.data||!x.length)return[];const D=P();if(!D)return[];const R=Array.from(new Set(x.map(_e=>_(_e)))),de=new URLSearchParams;de.set("json","1"),de.set("val",R.join(",")),n.start===1&&de.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&de.set("parent",String(S.value));try{const Ie=(await(await fetch(`${D}?${de.toString()}`)).json())?.data??[];return J(Ie),Ie}catch{return[]}},M=async x=>{if(x==null||x==="")return null;const D=_(x),R=s.value.find(_e=>_(_e.id)===D);if(R)return R;const[de]=await L([x]);return de??null},N=async(x="",{force:D=!1}={})=>{if(!n.data)return;const R=S.value??null;if(!D&&d.value.keyword===x&&d.value.parent===R&&s.value.length>0)return;d.value={keyword:x,parent:R};const _e=await te(x);I(_e)},ae=((x,D=200)=>{let R;return(...de)=>{R&&clearTimeout(R),R=setTimeout(()=>x(...de),D)}})(async x=>{n.data&&await N(x,{force:!0})},250),ee=e.ref(null),he=()=>{if(!f.value)return;const x=f.value.getBoundingClientRect(),D=window.innerHeight??document.documentElement.clientHeight,R=window.innerWidth??document.documentElement.clientWidth,de=8,_e=8,Oe=n.maxHeight??280,Ie=D-x.bottom-_e-de,Ue=x.top-_e-de,We=Ie>=Ue,ut=Math.max(R-de*2,0);let{width:Ke}=x;ut>0&&Ke>ut&&(Ke=ut);let{left:ct}=x;ct+Ke+de>R&&(ct=R-Ke-de),ct=Math.max(ct,de);const Pt=Math.min(Oe,Math.max(We?Ie:Ue,50));v.value={position:"fixed",left:`${ct}px`,width:`${Ke}px`,maxHeight:`${Pt}px`,transform:We?"none":"translateY(-100%)",top:We?`${x.bottom+_e}px`:`${x.top-_e}px`}},we=async(x="click")=>{U.value||y.value||(ee.value=x,await N(h.value.trim()),y.value=!0,await e.nextTick(),he(),b.value?.focus())},be=()=>{y.value=!1,ee.value=null,e.nextTick(()=>{b.value?.blur()})},$e=async x=>{if(x.stopPropagation(),!U.value){if(y.value){if(ee.value==="focus"){ee.value=null;return}be();return}await we("click")}},Me=x=>{x.key==="Escape"&&be()},Fe=x=>{if(!y.value)return;const D=x.target;w.value?.contains(D)||be()},Re=x=>{const D=x.target;m.value?.contains(D)||w.value?.contains(D)||be()},se=x=>{if(x.key==="Escape"){x.preventDefault(),be();return}if(x.key==="Enter"){x.preventDefault();const D=A.value[0];D&&ie(D)}},ie=x=>{if(!x)return;const D=_(x.id);if(oe.value.has(D))return;q(x);const R={id:x.id,text:T(x)||String(x.id??""),key:j(x.id)};l.value=[...l.value,R],ve(x),h.value="",e.nextTick(()=>{b.value?.focus()})},ve=x=>{const D=l.value.map(R=>R.id);r("value-selected",{name:n.name,value:D,option:x})},Se=x=>{if(U.value)return;const D=l.value.filter(R=>_(R.id)!==_(x));l.value=D},{isOpenAdd:Le,addData:qe,addSchema:z,addForm:ne,addTitle:le,addOption:ue,onAddValue:ke}=xr({props:n,fetchOptionByValue:M,optionsList:s,selectedOption:e.ref(null),modelValue:a,onCreated:async(x,D)=>{const R=x??await M(D),de=R?.id??D;oe.value.has(_(de))||(R&&q(R),l.value=[...l.value,{id:de,text:R?T(R):String(de),key:j(de)}],ve(R??null))}}),Ae=x=>{U.value||(p.value=x)},De=x=>{if(U.value||p.value===null||p.value===x)return;const D=[...l.value],[R]=D.splice(p.value,1);D.splice(x,0,R),p.value=null,l.value=D},Te=async()=>{const D=(Array.isArray(a.value)?[...a.value]:[]).filter(de=>de!=null);if(n.data&&D.length){const de=D.filter(_e=>!c.value[_(_e)]);de.length&&await L(de)}const R=D.map(de=>({id:de,text:c.value[_(de)]??String(de),key:j(de)}));C=!0,l.value=R};e.watch(l,x=>{if(C){C=!1;return}const D=x.map(R=>R.id);V=!0,a.value=D,r("change",D)},{deep:!0}),e.watch(a,()=>{if(V){V=!1;return}Te()},{deep:!0}),e.watch(h,x=>{!n.data||!y.value||ae(x.trim())}),e.watch(U,x=>{x&&be()}),e.watch(()=>n.options,async x=>{n.data||(I(x??[]),await Te())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async x=>{x&&(await N(h.value.trim()),await Te())},{immediate:!0});const W=e.ref(!1);return e.watch(S,async()=>{if(n.data){if(!W.value){W.value=!0;return}l.value=[],await N(h.value.trim()),await Te()}}),e.onMounted(async()=>{document.addEventListener("click",Re,!0),window.addEventListener("keydown",Me),window.addEventListener("scroll",Fe,!0),await Te()}),e.onUnmounted(()=>{document.removeEventListener("click",Re,!0),window.removeEventListener("keydown",Me),window.removeEventListener("scroll",Fe,!0)}),(x,D)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:e.unref(Le),"onUpdate:visible":D[1]||(D[1]=R=>e.isRef(Le)?Le.value=R:null),class:"z-[1000]",title:e.unref(le),buttonText:"Додати",onDone:e.unref(ue)},{default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(z),modelValue:e.unref(qe),"onUpdate:modelValue":D[0]||(D[0]=R=>e.isRef(qe)?qe.value=R:null),ref_key:"addForm",ref:ne},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),e.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:m},[e.createElementVNode("div",zf,[e.createElementVNode("div",{class:"relative flex-1",onClick:D[4]||(D[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:f,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]",y.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",U.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":y.value,"aria-haspopup":"listbox","data-focus":y.value?"true":"false",onClick:$e},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:b,"onUpdate:modelValue":D[2]||(D[2]=R=>h.value=R),placeholder:Z.value,disabled:U.value,readonly:!O.value,onFocus:D[3]||(D[3]=()=>we("focus")),onKeydown:se,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,Uf),[[e.vModelText,h.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",y.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],2)],10,jf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[y.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:w,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(v.value)},[e.createElementVNode("div",Hf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,R=>(e.openBlock(),e.createElementBlock("button",{key:_(R.id),type:"button",class:"w-full px-3 py-2 text-left text-sm text-stone-900 hover:bg-stone-100 disabled:opacity-50",onClick:e.withModifiers(de=>ie(R),["stop"]),disabled:U.value},e.toDisplayString(T(R)),9,qf))),128)),A.value.length===0?(e.openBlock(),e.createElementBlock("p",Wf," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:D[5]||(D[5]=(...R)=>e.unref(ke)&&e.unref(ke)(...R)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:U.value,type:"button"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),D[8]||(D[8]=e.createElementVNode("span",null,"Додати",-1))],8,Kf)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Gf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(R,de)=>(e.openBlock(),e.createElementBlock("div",{key:R.key,class:e.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":p.value===de}]),draggable:"true",onDragstart:_e=>Ae(de),onDragover:D[6]||(D[6]=e.withModifiers(()=>{},["prevent"])),onDrop:_e=>De(de),onDragend:D[7]||(D[7]=_e=>p.value=null)},[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-500 hover:text-stone-900",disabled:U.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})],8,Xf),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:R.text},e.toDisplayString(R.text),9,Zf),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-400 hover:text-stone-900",disabled:U.value,onClick:e.withModifiers(_e=>Se(R.id),["stop"]),"aria-label":`Видалити ${R.text}`},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Jf)],42,Yf))),128)),l.value.length===0?(e.openBlock(),e.createElementBlock("p",Qf,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),eh={class:"flex items-center gap-2 w-full"},th={class:"relative flex-1"},nh=["placeholder","disabled","onKeydown"],oh=["disabled"],rh={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},lh={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},ah={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},sh=["onClick"],ih={key:0,class:"p-4 text-sm text-gray-500"},Hr=e.defineComponent({__name:"vs-input-address",props:e.mergeModels({api:{default:""},geom:{default:""},includes:{default:()=>[]},bbox:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","update:geom"],["update:modelValue"]),setup(o,{emit:t}){const n=/{{\s*([^}]+?)\s*}}/g,r=o,a=t,{inputClass:l}=et(r.style),s=e.useModel(o,"modelValue"),c=e.computed({get:()=>s.value,set:O=>{s.value=O}}),i=e.ref(!1),d=e.ref([]),h=e.ref(!1),y=e.ref(null);e.watch(h,O=>{typeof document>"u"||(O?(y.value=document.body.style.overflow,document.body.style.overflow="hidden"):y.value!=null?(document.body.style.overflow=y.value,y.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(y.value!=null?document.body.style.overflow=y.value:document.body.style.removeProperty("overflow"))});const p=e.computed(()=>r.placeholder??""),m=e.computed(()=>!!r.disabled),f=O=>{if(!O)return null;if(Array.isArray(O))return O;if(typeof O=="string"){const E=O.split(",").map(S=>S.trim()).filter(Boolean);return E.length!==4?null:E.map(Number)}return null},w=e.computed(()=>{const O=f(r.bbox);if(!O||O.length!==4)return null;const E=O.map(Number);return E.some(S=>Number.isNaN(S))?null:E}),b=e.computed(()=>{const O=w.value;if(!O)return"";const[E,S,_,T]=O;return`${E},${Math.max(S,T)},${_},${Math.min(S,T)}`});e.computed(()=>b.value?"1":"0");const v=e.inject("values");function C(){!m.value&&c.value.trim()&&V()}async function V(){const O=(c.value||"").trim();if(!O)return;let E=O;if(r.includes?.length&&v?.value){const _=r.includes.map(T=>v.value?.[T]).filter(Boolean);_.length&&(E=`${_.join(", ")}, ${O}`)}const S=Z(E);if(S){i.value=!0;try{const T=await(await fetch(S)).json();d.value=Array.isArray(T)?T:[],h.value=!0}catch(_){console.error("Address search error:",_)}finally{i.value=!1}}}function $(){h.value=!h.value}function U(O){if(!O)return;h.value=!1;const E=parseFloat(O.lat),_={type:"Point",coordinates:[parseFloat(O.lon),E]};r.geom&&v?.value&&(v.value[r.geom]=_),a("update:geom",_)}function Z(O){if(!r.api)return"";const E={value:encodeURIComponent(O),bbox:w.value?w.value.join(","):""};return r.api.replace(n,(S,_)=>E[_.trim()]??"")}return(O,E)=>(e.openBlock(),e.createElementBlock("div",eh,[e.createElementVNode("div",th,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=S=>c.value=S),placeholder:p.value,disabled:m.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white border rounded-md placeholder:text-gray-400 focus:ring-2 focus:ring-blue-500",[e.unref(l),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(C,["prevent"]),["enter"])},null,42,nh),[[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:$,title:"Show search results"},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:V,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(X.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(X.Search),{key:0,class:"h-4 w-4"}))],8,oh),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[h.value?(e.openBlock(),e.createElementBlock("div",rh,[e.createElementVNode("div",lh,[e.createElementVNode("div",ah,[E[2]||(E[2]=e.createElementVNode("span",null,"Результати пошуку",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:E[1]||(E[1]=S=>h.value=!1),title:"Close"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(S,_)=>(e.openBlock(),e.createElementBlock("li",{key:_,onClick:T=>U(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,sh))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ih," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),ch={class:"vs-datalist space-y-3"},dh={class:"space-y-3"},uh=["onClick","disabled"],ph={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},mh=["disabled"],fh=Be(e.defineComponent({__name:"vs-input-datalist",props:e.mergeModels({schema:{default:()=>[]},minItems:{default:0},maxItems:{default:void 0},addButtonText:{default:"Додати позицію"},emptyLabel:{default:"Немає рядків"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>Array.isArray(n.value)?n.value:[]),a=e.ref([]),l=e.computed(()=>t.schema?.map(b=>({...b,disabled:t.disabled||b.disabled}))??[]),s=e.computed(()=>l.value.map(b=>w(b))),c=e.computed(()=>l.value.reduce((v,C)=>{const V=Number(C?.col??12);return v+(Number.isFinite(V)&&V>0?V:12)},0)>12),i=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),d=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{h(),y()},{immediate:!0}),e.watch(()=>t.schema,y,{immediate:!0,deep:!0});function h(){const b=r.value.length;a.value.length<b?a.value=[...a.value,...Array.from({length:b-a.value.length},()=>wo())]:a.value.length>b&&a.value.splice(b)}function y(){if(!t.minItems||r.value.length>=t.minItems)return;const b=t.minItems-r.value.length,v=Array.from({length:b},p);n.value=[...r.value,...v]}function p(){const b={};return l.value.forEach(v=>{b[v.name]=v?.default??null}),b}function m(){i.value&&(n.value=[...r.value,p()],h())}function f(b){d.value||(n.value=r.value.filter((v,C)=>C!==b),h(),y())}function w(b){return{...b}}return(b,v)=>(e.openBlock(),e.createElementBlock("div",ch,[e.createElementVNode("div",dh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,V)=>(e.openBlock(),e.createElementBlock("div",{key:a.value[V],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":c.value}])},[e.createVNode(rt,{schema:s.value,layout:"inline",navigation:!1,values:r.value[V],"onUpdate:values":$=>r.value[V]=$,"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:$=>f(V),disabled:d.value},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,uh)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",ph,e.toDisplayString(t.emptyLabel),1)):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:m,disabled:!i.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,mh)]))}}),[["__scopeId","data-v-d0065868"]]),hh={class:"vs-dataform space-y-4"},gh=["draggable","onDragstart","onDragover","onDragenter","onDrop"],yh={class:"flex items-center gap-2"},bh=["onClick"],kh={class:"text-sm font-medium text-gray-700"},wh={class:"flex items-center gap-2"},xh=["title","onClick","disabled"],vh=["title","onClick","disabled"],_h={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Ch=["disabled"],Eh=Be(e.defineComponent({__name:"vs-input-dataform",props:e.mergeModels({schema:{default:()=>[]},minGroups:{default:0},maxGroups:{default:void 0},addButtonText:{default:"Додати групу фільтрів"},groupLabel:{default:void 0},duplicateTitle:{default:"Дублювати групу"},removeTitle:{default:"Видалити групу"},emptyLabel:{},view:{default:"default"},collapsible:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),a=e.ref([]),l=e.ref(0),s=e.ref(null),c=e.ref(null),i=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),h=e.computed(()=>t.emptyLabel??"Ще немає груп"),y=e.computed(()=>t.schema?.map(N=>({...N,disabled:t.disabled||N.disabled}))??[]),p=e.computed(()=>y.value.map(N=>S(N))),m=e.computed(()=>t.view==="accordion"),f=e.computed(()=>!!(t.collapsible||m.value)),w=e.computed(()=>t.draggable!==!1),b=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),v=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{C(),V(),$()},{immediate:!0}),e.watch(()=>t.schema,$,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{V()},{immediate:!0});function C(){const N=n.value.length;r.value.length<N?r.value=[...r.value,...Array.from({length:N-r.value.length},()=>wo())]:r.value.length>N&&r.value.splice(N)}function V(){const N=n.value.length;m.value?N===0?l.value=-1:l.value>=N?l.value=N-1:l.value<0&&(l.value=0):a.value.length<N?a.value=[...a.value,...Array.from({length:N-a.value.length},()=>!1)]:a.value.length>N&&a.value.splice(N)}function $(){if(!t.minGroups||n.value.length>=t.minGroups)return;const N=t.minGroups-n.value.length,Q=Array.from({length:N},U);n.value=[...n.value,...Q],V()}function U(){const N={};return y.value.forEach(Q=>{N[Q.name]=Q?.default??null}),N}function Z(){b.value&&(n.value=[...n.value,U()],C(),V())}function O(N){v.value||(n.value=n.value.filter((Q,ae)=>ae!==N),C(),m.value?l.value>=n.value.length&&(l.value=n.value.length-1):a.value.splice(N,1),$())}function E(N){if(t.disabled)return;const Q=JSON.parse(JSON.stringify(n.value[N]??{}));n.value=[...n.value.slice(0,N+1),Q,...n.value.slice(N+1)],C(),m.value?l.value>N&&(l.value+=1):a.value.splice(N+1,0,a.value[N]??!1)}function S(N){return{...N}}function _(N){return m.value?l.value===-1&&N===0?!1:l.value!==N:!!a.value[N]}function T(N){if(f.value){if(m.value){l.value=N;return}a.value[N]=!a.value[N]}}function j(N,Q){if(!w.value||t.disabled){Q.preventDefault();return}s.value=N,c.value=N,i.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...a.value]},Q.dataTransfer?.setData("text/plain",String(N)),Q.dataTransfer?.setDragImage?.(Q.currentTarget,0,0)}function oe(N,Q){!w.value||t.disabled||s.value!==null&&J(N,Q)}function A(N,Q){J(N,Q)}function P(N){!w.value||t.disabled||M()}function Y(){i.value&&I(),s.value=null,c.value=null,i.value=null}function q(N,Q){const ae=[...n.value],[ee]=ae.splice(N,1);ae.splice(Q,0,ee),n.value=ae;const he=[...r.value],[we]=he.splice(N,1);if(he.splice(Q,0,we),r.value=he,m.value)l.value===N&&(l.value=Q);else{const be=[...a.value],[$e]=be.splice(N,1);be.splice(Q,0,$e),a.value=be}}function I(){i.value&&(n.value=i.value.groups,r.value=i.value.keys,a.value=i.value.states,i.value=null,c.value=null)}function J(N,Q){if(s.value===null)return;const ae=te(N,Q);c.value=ae,L(ae)}function te(N,Q){if(!Q?.currentTarget)return N;const ae=Q.currentTarget.getBoundingClientRect(),he=Q.clientY-ae.top>ae.height/2?N+1:N;return Math.max(0,Math.min(he,n.value.length))}function L(N){const Q=s.value;if(Q===null)return;let ae=N;if(ae>n.value.length&&(ae=n.value.length),ae===Q||ae===Q+1)return;const ee=ae>Q?ae-1:ae;q(Q,ee),s.value=ee,c.value=ae>Q?ee+1:ee}function M(){i.value=null,s.value=null,c.value=null}return(N,Q)=>(e.openBlock(),e.createElementBlock("div",hh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(ae,ee)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[ee],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":_(ee)?"pt-6 px-6":"p-6"]]),draggable:w.value&&!t.disabled,onDragstart:he=>j(ee,he),onDragend:Y,onDragover:e.withModifiers(he=>oe(ee,he),["prevent"]),onDragenter:e.withModifiers(he=>A(ee,he),["prevent"]),onDrop:e.withModifiers(he=>P(),["prevent"])},[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center justify-between gap-2 border-b border-gray-100 px-4 py-3",[t.view!=="accordion"?"-mx-6 -mt-6 px-6":"",t.view!=="accordion"&&!_(ee)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",yh,[w.value?(e.openBlock(),e.createBlock(e.unref(X.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:he=>T(ee)},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",_(ee)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,bh)):e.createCommentVNode("",!0),e.createElementVNode("div",kh,e.toDisplayString(`${d.value} (${ee+1})`),1)]),e.createElementVNode("div",wh,[e.createElementVNode("button",{type:"button",class:"p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",title:t.duplicateTitle,onClick:he=>E(ee),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(X.Copy),{class:"h-4 w-4"})],8,xh),e.createElementVNode("button",{type:"button",class:"p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",title:t.removeTitle,onClick:he=>O(ee),disabled:v.value,draggable:"false"},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,vh)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(rt,{class:"vs-dataform__form",schema:p.value,layout:"inline",navigation:!1,values:n.value[ee],"onUpdate:values":he=>n.value[ee]=he,"form-id":r.value[ee],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!_(ee)]])],42,gh))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",_h,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:Z,disabled:!b.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Ch)]))}}),[["__scopeId","data-v-cfbcfed8"]]),qn="__vs_form_monaco_loader__",Wt="__vs_form_monaco_script_loader__",Wn="__vs_form_monaco_editor_loader__",Co=e.defineComponent({__name:"vs-input-monaco",props:e.mergeModels({syntax:{default:"xml"},theme:{default:"vs-light"},height:{default:280},minimap:{type:Boolean,default:!1},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:t}){const n=o,r=e.useModel(o,"modelValue"),a=e.ref(null),l=e.computed(()=>typeof n.height=="number"?`${n.height}px`:n.height||"280px");let s=null,c=null,i=!1;const d=()=>{if(c)return Promise.resolve(c);if(typeof window>"u")return Promise.resolve(null);const f=window;if(f.monaco?.editor?.create)return c=f.monaco,Promise.resolve(c);if(f[qn])return f[qn];const b=(async()=>{const v=$=>{if(Array.from(document.styleSheets||[]).some(O=>O?.href?.includes($)))return;const Z=document.createElement("link");Z.rel="stylesheet",Z.href=$,document.head.appendChild(Z)},C=$=>{if(f[Wt]?.[$])return f[Wt][$];f[Wt]||={};const U=Array.from(document.scripts).find(Z=>Z.src===$);return U?(f[Wt][$]=new Promise((Z,O)=>{const E=U.readyState;if(U.dataset.loaded==="true"||E==="loaded"||E==="complete"){Z();return}U.addEventListener("load",()=>{U.dataset.loaded="true",Z()},{once:!0}),U.addEventListener("error",S=>O(S),{once:!0})}),f[Wt][$]):(f[Wt][$]=new Promise((Z,O)=>{const E=document.createElement("script");E.src=$,E.async=!0,E.onload=()=>{E.dataset.loaded="true",Z()},E.onerror=S=>O(S),document.body.appendChild(E)}),f[Wt][$])},V="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return v(`${V}/editor/editor.main.min.css`),await C(`${V}/loader.min.js`),f[Wn]||(f[Wn]=new Promise(($,U)=>{window.require.config({paths:{vs:V}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,f.monaco=c,$(c)},Z=>U(Z))}).catch($=>{throw delete f[Wn],$})),f[Wn]})().catch(v=>{throw delete f[qn],v});return f[qn]=b,b},h=()=>{!a.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(a.value,{value:r.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{i||(r.value=s.getValue())}))},y=()=>{s?.focus()},p=()=>s,m=()=>c;return e.watch(()=>r.value,f=>{if(!s)return;const w=s.getValue();f!==w&&(i=!0,s.setValue(f||""),i=!1)}),e.watch(()=>n.syntax,f=>{!s||!c||c.editor.setModelLanguage(s.getModel(),f||"xml")}),e.watch(()=>n.theme,f=>{c&&c.editor.setTheme(f||"vs-light")}),e.watch(()=>n.disabled,f=>{s&&s.updateOptions({readOnly:!!f})}),e.watch(()=>n.minimap,f=>{s&&s.updateOptions({minimap:{enabled:!!f}})}),e.onMounted(async()=>{try{const f=await d();if(!f||!f.editor)return;c=f,h()}catch(f){console.error("Failed to load Monaco editor",f)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:y,getEditor:p,getMonaco:m}),(f,w)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:l.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:a,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),qr={VsInputText:Yt,VsInputRadio:mo,VsInputInlineSelect:In,"vs-input-text":Yt,"vs-input-password":fa,"vs-input-textarea":_r,"vs-input-richtext":Cr,"vs-input-mask":En,"vs-input-number":Zo,"vs-input-radio":mo,"vs-input-select":ko,"vs-input-inline-select":In,"inline-select":In,"vs-input-switcher":io,"vs-input-static":co,"vs-input-container":wr,"vs-input-date":ir,"vs-input-checkbox":er,"vs-input-file":yr,"vs-input-file2":Tn,file2:Tn,File2:Tn,"vs-input-html":co,"vs-input-email":uo,"vs-input-tel":po,"vs-input-datatable":Er,"vs-input-map":Tr,"vs-input-file-list":br,"vs-input-tags":Lr,"vs-input-slug":Ir,"vs-input-codegen":Or,"vs-input-key-value":Pr,"vs-input-text[]":Rr,"vs-input-range":jr,"vs-input-color":zr,"vs-input-native-select":ko,VsInputArraySelect:Hn,"vs-input-array":Ur,"vs-input-array-select":Hn,"array-select":Hn,"vs-input-address":Hr,"vs-input-datalist":fh,"vs-input-dataform":Eh,"vs-input-monaco":Co},Bh=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(o){const t=o,n=e.inject("values");function r(l,s){const c=s?.result||s?.message||s?.error||s?.detail;return l.status===400&&typeof c=="string"&&c.trim().toLowerCase()==="not found"?"Дані не знайдено.":l.status===500?"Помилка на сервері.":typeof c=="string"&&c.trim()?c:"При спробі завантажити дані виникла помилка."}async function a(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),s=await fetch(l);if(!s.ok){let i=null;try{i=await s.json()}catch{try{i=await s.text()}catch{i=null}}ge.notify({type:"warning",title:"Validation",message:r(s,i)});return}const c=await s.json();if(!t.set||!n)return;for(const[i,d]of Object.entries(t.set))n.value[i]=c.result[d]}catch(l){console.error(t.error,l)}}return(l,s)=>(e.openBlock(),e.createElementBlock("button",{onClick:a,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(l.button),1))}}),Vh={class:"flex flex-col gap-1 w-full"},Sh={class:"w-full"},$h=["disabled"],Ah=["innerHTML"],Nh=2e3,Mh=10,Wr=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]},columns:{default:()=>({container:12,label:3})}},{modelValue:{default:null},modelModifiers:{}}),emits:e.mergeModels(["value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),a=t,l=e.computed(()=>pa[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(j()),i=e.computed(()=>S(n.item,c.value)),d=e.computed(()=>{const A={...i.value??{}},P=n.item?.name;return P&&y?.value?.[P]&&Object.assign(A,y.value[P]),A.__locale=c.value,A}),h=e.computed(()=>qr?.[`vs-input-${n.item.type}`]),y=e.inject("field-props"),p=e.computed(()=>{const A=e.unref(h);if(!A)return new Set;const P=A.props??A.__vccOpts?.props;if(!P)return new Set;const Y=Array.isArray(P)?P:Object.keys(P);return new Set(Y)}),f=[...["min","max","step"],"api","set","mask","layers"],w=new Set(["name","type","label","ua","col","rules","validators","conditions","schema","hidden","behavior","default","columns","layout","multiple","data","info","description","text","html","view","groupLabel","emptyLabel","minGroups","maxGroups","collapsible","draggable","props","__locale","slot","slots","component"]);function b(A){const P={};Object.entries(A).forEach(([q,I])=>{w.has(q)||q.includes(":")||I!==void 0&&(P[q]=I)});const Y=A.props;return Y&&typeof Y=="object"&&!Array.isArray(Y)&&Object.entries(Y).forEach(([q,I])=>{I!==void 0&&(P[q]=I)}),P}const v=e.computed(()=>{const A={...i.value??{}},P=n.item?.name;P&&y?.value?.[P]&&Object.assign(A,y.value[P]);const Y=p.value;let q;return Y.size?q=Object.fromEntries(Object.entries(A).filter(([I])=>Y.has(I))):q={...A},Object.assign(q,b(A)),f.forEach(I=>{const J=A[I];J!=null&&(q[I]=J)}),q}),C=A=>{const P=typeof A=="object"&&A!==null?A:{value:A};a("value-selected",{...P,name:P.name??n.item?.name})},V=/{{\s*([^}]+?)\s*}}/g,$=e.inject("values"),U=e.ref(!1),Z=e.computed(()=>{const A=n.item?.api,P=n.item?.type?.toLowerCase();return typeof A=="string"&&A.trim().length>0&&(P==="text"||P==="mask")});function O(A,P){if(!(A==null||!P))return P.split(".").reduce((Y,q)=>Y?.[q.trim()],A)}async function E(){const A=String(r.value??"").trim();if(!A)return;const P=(n.item?.api??"").trim();if(!P)return;const Y=P.replace(V,(q,I)=>I.trim()==="value"?encodeURIComponent(A):"");U.value=!0;try{let q=await fetch(Y),I=0;for(;q.status===202&&I<Mh;)I+=1,await new Promise(N=>{setTimeout(N,Nh)}),q=await fetch(Y);if(q.status===202){ge.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!q.ok){ge.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const J=await q.json(),te=J?.result!==void 0?J.result:J,L=n.item?.set;if(!L||!$?.value)return;const M=n.item?.name;Object.entries(L).forEach(([N,Q])=>{if(!N)return;let ae=Q;M&&ae.startsWith(`${M}.`)&&(ae=ae.slice(M.length+1));const ee=O(te,ae);$.value[N]=ee??null})}catch(q){console.error("API lookup error:",q),ge.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{U.value=!1}}e.onMounted(()=>{c.value=j(),window.addEventListener("storage",oe)}),e.onUnmounted(()=>{window.removeEventListener("storage",oe)});function S(A,P){if(!A)return{};const Y={...A};return s.forEach(q=>{const I=T(A,q,P);I!=null&&(Y[q]=I)}),Array.isArray(A.options)&&(Y.options=A.options.map(q=>_(q,P))),Y}function _(A,P){if(!A)return A;const Y={...A},q=T(A,"label",P),I=T(A,"text",P);return q!=null&&(Y.label=q),I!=null?Y.text=I:q!=null&&(Y.text=q),Y}function T(A,P,Y){const q=`${P}:${Y}`;if(A?.[q]!=null)return A[q];if(P==="label"&&A?.[Y]!=null)return A[Y];if(A?.[P]!=null)return A[P];if(P==="label"){if(A?.ua!=null)return A.ua;if(A?.en!=null)return A.en}if(P==="text"||P==="html"){if(A?.ua!=null)return A.ua;if(A?.en!=null)return A.en}return null}function j(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function oe(){c.value=j()}return(A,P)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{ua:d.value.ua,error:n.error||"",item:d.value,columns:n.columns,label:d.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${n.item.type}-component`])},[e.createElementVNode("div",Vh,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":Z.value}])},[e.createElementVNode("div",Sh,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value),e.mergeProps(v.value,{modelValue:r.value,"onUpdate:modelValue":P[0]||(P[0]=Y=>r.value=Y),onValueSelected:C}),null,16,["modelValue"]))]),Z.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px] shrink-0",disabled:U.value||!r.value?.toString().trim(),onClick:E},[U.value?(e.openBlock(),e.createBlock(e.unref(X.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(X.Search),{key:0,class:"h-4 w-4"}))],8,$h)):e.createCommentVNode("",!0)],2),d.value.description&&n.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:d.value.description},null,8,Ah)):e.createCommentVNode("",!0)]),d.value.behavior?.api&&d.value.behavior?.button?(e.openBlock(),e.createBlock(Bh,e.mergeProps({key:0},d.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),Fh={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},Dh={class:"vs-compact-form-navigation__rail mt-[6px]"},Th=["onClick"],Lh=Be(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(o,{expose:t}){const n=o,r=e.ref([]),a=e.ref(""),l=e.ref(""),s=e.computed(()=>!!n.enabled),c=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),i=e.computed(()=>{const T=n.width;if(T==null)return{};const j=typeof T=="number"?`${T}px`:`${T}`;return{width:j,minWidth:j}});let d=null,h=0,y=0,p=null,m=null,f=null;const w=()=>S(),b=()=>C();e.watch(()=>n.target,async T=>{if(Z(),!T){p=null,r.value=[],a.value="";return}p=T,s.value&&(await e.nextTick(),U(T),C())},{immediate:!0}),e.watch(()=>n.scrollContainer,T=>{if(!s.value){m=T??null;return}v(T??null),e.nextTick(()=>C())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||v(null),C()}),e.onBeforeUnmount(()=>{Z(),v(null,!0),p=null,typeof window<"u"&&(h&&window.cancelAnimationFrame(h),y&&window.cancelAnimationFrame(y))});function v(T,j=!1){if(f&&(f(),f=null),j){m=null;return}if(m=T??null,typeof window>"u")return;const oe=T??window,A=window;oe.addEventListener("scroll",w,{passive:!0}),A.addEventListener("resize",b),f=()=>{oe.removeEventListener("scroll",w),A.removeEventListener("resize",b)}}function C(){if(!s.value||!p)return;h&&typeof window<"u"&&window.cancelAnimationFrame(h);const T=()=>{V(),h=0};typeof window>"u"?T():h=window.requestAnimationFrame(T)}function V(){if(!s.value||!p)return;const T=Array.from(p.querySelectorAll("h1, h2")),j=new Set,oe=[];T.forEach((A,P)=>{const Y=A.textContent?.trim()??"";if(!Y)return;let q=(A.getAttribute("id")??"").trim();q||(q=$(Y)||`heading-${P+1}`);let I=q,J=1;for(;j.has(I);)I=`${q}-${J+=1}`;A.id!==I&&Object.assign(A,{id:I}),j.add(I),oe.push({id:I,text:Y,level:A.tagName.toLowerCase()==="h1"?1:2})}),r.value=oe,oe.length||(a.value=""),E()}function $(T){return T.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function U(T){!T||!s.value||typeof MutationObserver>"u"||(Z(),d=new MutationObserver(()=>C()),d.observe(T,{childList:!0,subtree:!0}))}function Z(){d&&(d.disconnect(),d=null)}function O(T){const j=m;if(!j)return typeof window>"u"?T.offsetTop:T.getBoundingClientRect().top+window.scrollY;const oe=T.getBoundingClientRect(),A=j.getBoundingClientRect();return oe.top-A.top+j.scrollTop}function E(){if(!s.value||!r.value.length)return;const T=m,j=(T?T.scrollTop:null)||(typeof window<"u"?window.scrollY:0),oe=(T?T.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),A=j+oe;let P=null;for(let q=0;q<r.value.length;q+=1){const I=r.value[q],J=document.getElementById(I.id);if(J){const te=O(J);te+J.offsetHeight>j&&te<A&&(P=I.id)}}!P&&l.value&&(P=l.value),P&&(l.value=P);const Y=T?T.scrollHeight-T.clientHeight:document.documentElement.scrollHeight-window.innerHeight;j+5>=Y&&(P=r.value[r.value.length-1].id),P&&(a.value=P)}function S(){s.value&&(y&&window.cancelAnimationFrame(y),y=window.requestAnimationFrame(()=>{E(),y=0}))}function _(T){if(!s.value)return;const j=document.getElementById(T);if(!j)return;const oe=m,A=Math.max(0,O(j));oe?oe.scrollTo({top:A,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:A,behavior:"smooth"})}return t({refresh:C}),(T,j)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",Fh,e.toDisplayString(T.title),1),e.createElementVNode("div",Dh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,oe=>(e.openBlock(),e.createElementBlock("div",{key:oe.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",oe.level===2?"vs-compact-form-navigation__item--nested":"",oe.id===a.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:A=>_(oe.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",oe.level===2?"pl-[15px]":"pl-[18px]",oe.id===a.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(oe.text),1)],10,Th)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),gt={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},Ih=o=>typeof o=="string"?o.trim()?!1:gt.required:Array.isArray(o)?o.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:gt.required:typeof o=="number"?Number?.isNaN(o)?gt?.required:!1:o?!1:gt.required,Oh=o=>{const t=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;return o?t.test(o)?!1:gt.email:!1},Ph=(o,t)=>{if(!o)return!1;const n=String(o).trim();if(!/^\+[1-9]\d{1,14}$/.test(n))return gt.tel;const l=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:Tt(Et))||Tt(Et);return n.length-1!==l?gt.tel:!1},Kr=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,Rh=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Kr(o)<n?t?.message||gt.minlength(n):!1},zh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Kr(o)>n?t?.message||gt.maxlength(n):!1},Kn=o=>{if(typeof o=="number")return o;if(typeof o=="string"){const t=o.trim().replace(",",".");return t?Number(t):Number.NaN}return Number(o)},jh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Kn(o);return Number.isFinite(r)&&r<n?t?.message||gt.min(n):!1},Uh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Kn(o);return Number.isFinite(r)&&r>n?t?.message||gt.max(n):!1},Hh=(o,t,n)=>{if(o==null||o==="")return!1;const r=t?.field;if(!r||!n)return!1;const a=n[r];if(a==null||a==="")return!1;const l=Kn(o),s=Kn(a);return!Number.isFinite(l)||!Number.isFinite(s)?!1:l>s?t?.message||`Значення має бути не більше ${s}`:!1},qh=(o,t)=>{const n=t.pattern??t.regexp,r=typeof n=="string"?new RegExp(n):n;if(Array.isArray(o)){const a=o.filter(Boolean);return a.length===0||a.every(l=>r.test(l))?!1:t.message}return!r.test(o)&&o?t.message:!1},Wh=(o,t)=>!1,Kh=(o,t,n)=>{switch(typeof t=="string"?t:t.type){case"required":return Ih(o);case"email":return Oh(o);case"tel":return Ph(o,typeof t=="object"?t:void 0);case"regexp":return qh(o,t);case"minlength":return Rh(o,t);case"maxlength":return zh(o,t);case"min":return jh(o,t);case"max":return Uh(o,t);case"maxField":return Hh(o,t,n);case"custom":return Wh();default:return!1}},Gh={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function Gr(o){const t=o?.toLowerCase();return Gh[t]||t}function Eo(o,t=!1){if(Array.isArray(o)){const r=[];return o.forEach(a=>{const l={...a};if(l.name=(a.name||a.id||a.key||"").toString(),l.type=Gr(a.type),l.label=a.label||a.ua,l.rules=a.rules||a.validators,l.type==="email"&&!l.rules&&(l.rules=["email"]),l.type==="tel"&&!l.rules){const s=l.mask||Et,c=Tt(s)||Tt(Et);l.rules=[{type:"tel",digits:c}]}a.data&&(l.api=`/api/suggest/${a.data}`),l.disabled=l.disabled??t,Array.isArray(l.schema)&&(l.schema=Eo(l.schema,l.disabled)),r.push(l)}),r}const n=[];return Object.entries(o).forEach(r=>{const a={name:r[0],...r[1],type:Gr(r[1].type),label:r[1].label||r[1].ua,rules:r[1].rules||r[1].validators,disabled:r[1].disabled??t};if(a.type==="email"&&!a.rules&&(a.rules=["email"]),a.type==="tel"&&!a.rules){const l=a.mask||Et,s=Tt(l)||Tt(Et);a.rules=[{type:"tel",digits:s}]}r[1].type?.includes("list")&&(a.multiple=!0),!a.api&&r[1].data&&(a.api=`/api/suggest/${r[1].data}`),Array.isArray(a.schema)&&(a.schema=Eo(a.schema,a.disabled)),n.push(a)}),n}function Yh(o,t,n=!1){const r=e.computed(()=>Eo((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),a=e.ref({});function l(p){return kr(o?.value,p?.conditions)}const s=new Set(["maxField"]);function c(p){return typeof p.maxField=="string"&&p.maxField?!0:(p.rules||[]).some(m=>{const f=typeof m=="string"?m:m.type;return f?s.has(f):!1})}function i(p){const m=[],f=Number(p?.minlength),w=Number(p?.maxlength),b=Number(p?.min),v=Number(p?.max);!Number.isNaN(f)&&Number.isFinite(f)&&m.push({type:"minlength",value:f}),!Number.isNaN(w)&&Number.isFinite(w)&&m.push({type:"maxlength",value:w}),!Number.isNaN(b)&&Number.isFinite(b)&&m.push({type:"min",value:b}),!Number.isNaN(v)&&Number.isFinite(v)&&m.push({type:"max",value:v}),typeof p?.maxField=="string"&&p.maxField&&m.push({type:"maxField",field:p.maxField,message:p.maxFieldMessage});const C=[...m,...p.rules||[]];if(!C.length)return;if(!l(p)){delete a.value[p.name];return}let V=!1,$=null;C.forEach(U=>{const Z=Kh(o.value[p.name],U,o.value);Z&&(V=!0,!$&&typeof Z=="string"&&($=Z))}),V&&$?a.value[p.name]=$:delete a.value[p.name]}const d=(p=r.value,m=!0)=>(p.forEach(f=>{i(f),f.schema&&d(f.schema,!1)}),m&&Object.values(a.value).some(Boolean)?a.value:null);e.watch(o,()=>{const p=[],m=f=>{f.forEach(w=>{c(w)&&p.push(w),w.schema&&m(w.schema)})};m(r.value),p.forEach(i)},{deep:!0});const h=e.computed(()=>r.value?.filter(p=>p.hidden!==!0&&l(p)));return{errors:a,validate:d,reset:()=>{o.value={},a.value={}},visibleSchema:h}}const Xh={class:"flex w-full h-full min-h-0 gap-6"},Zh={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},rt=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},allowIdField:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(o,{expose:t,emit:n}){const r=n,a=o,l=e.computed(()=>!!a.formId||a.allowIdField),s=e.useModel(o,"form"),c=e.useModel(o,"modelValue"),i=e.useModel(o,"values"),d=e.computed({get:()=>i.value??c.value,set:Y=>{c.value=Y,i.value=Y}}),{errors:h,validate:y,reset:p,visibleSchema:m}=Yh(d,a.schema,e.toRef(a,"disabled")),f=e.ref(null),w=e.ref(null),b=e.ref({}),v=e.computed(()=>a.navigation),C=e.computed(()=>a.navWidth),V=e.computed(()=>a.style?.columns),$=Object.freeze({container:12,label:3}),U=e.computed(()=>a.columns??V.value??$),Z=e.computed(()=>a.columns!=null||V.value!=null),O=e.computed(()=>Z.value?"horizontal":a.layout),E=Y=>Y?.columns?"horizontal":O.value,S=Y=>Y?.columns??U.value,_=e.computed(()=>{const Y={},q=I=>{if(!I)return;(Array.isArray(I)?I.map((te,L)=>({key:String(L),entry:te})):typeof I=="object"?Object.entries(I).map(([te,L])=>({key:te,entry:L})):[]).forEach(({key:te,entry:L})=>{if(!L||typeof L!="object")return;const M=L.name?String(L.name):te;M&&(Y[M]={...L,name:M}),Array.isArray(L.schema)&&q(L.schema)})};return q(a.schema),Y}),T=()=>{!l.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),y(),r("handle-submit",d.value)},j=Y=>{r("value-selected",Y)};t({validate:y,reset:p,errors:h}),e.onMounted(()=>{s.value={value:d.value,errors:h.value,reset:p,validate:y,formId:a.formId}});function oe(Y,q){if(Y===q)return!0;if(typeof Y!="object"||typeof q!="object"||!Y||!q)return!1;const I=Object.keys(Y),J=Object.keys(q);return I.length!==J.length?!1:I.every(te=>Y[te]===q[te])}function A(Y){return Array.isArray(Y)?[...Y]:Y&&typeof Y=="object"?{...Y}:Y}function P(Y){Array.isArray(Y)&&Y.forEach(q=>{if(!q)return;const I=q.name,J=q.default!==void 0;I&&J&&d.value[I]===void 0&&(d.value[I]=A(q.default)),Array.isArray(q.schema)&&P(q.schema)})}return e.watch(m,Y=>{P(Y)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.provide("field-props",b),e.provide("schema-by-name",_),(Y,q)=>(e.openBlock(),e.createElementBlock("div",Xh,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:w},[e.createElementVNode("form",{ref_key:"formRef",ref:f,onSubmit:e.withModifiers(T,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",O.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),(I,J)=>(e.openBlock(),e.createElementBlock("div",{key:I.name,class:e.normalizeClass(E(I)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${I.col||12}`)},[e.createVNode(Wr,{style:e.normalizeStyle(Y.style),item:I,layout:E(I),columns:S(I),"model-value":d.value[I.name],"onUpdate:modelValue":te=>{if(I.name==="id"&&!l.value)return;const L=d.value[I.name];oe(L,te)||(d.value[I.name]=te)},error:e.unref(h)[I.name],onValueSelected:j},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),E(I)==="settings"&&J+1!==e.unref(m).length?(e.openBlock(),e.createElementBlock("div",Zh)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(Lh,{target:f.value,"scroll-container":w.value,enabled:v.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),Jh={class:"relative"},Qh={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},eg={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"},tg={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},ng={class:"font-medium text-gray-800 dark:text-[#ffffff]"},og={class:"p-4 mim-h-0 h-full overflow-auto"},Yr=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(o,{emit:t}){const n=o,r=t,a=e.ref(n.schema),l=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),c=e.ref(n.token||""),i=e.ref(n.token||""),d=e.ref(n.mode),h=()=>{const b=n.method?.trim().toUpperCase();return b==="GET"||b==="POST"||b==="PUT"?b:d.value==="add"?"POST":"PUT"},y=()=>{ge.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},p=b=>{const v={};b.id!==void 0&&b.id!==null&&(v.id=b.id,i.value=b.id.toString()),b.obj&&typeof b.obj=="object"&&Object.assign(v,b.obj),Object.keys(v).length&&(l.value={...l.value,...v})},m=async b=>{if(console.log(b),b.ok){await b.json().catch(()=>({})),y(),r("save",l.value);return}const v=await b.json().catch(()=>({})),C=v.message||v.error;if(b.status===400){ge.notify({type:"warning",title:"Помилка валідації",message:C||"Некоректні дані (400)"});return}if(b.status===403){ge.notify({type:"warning",title:"Доступ заборонено",message:C||"Доступ заборонено (403)"});return}if(b.status===500){ge.notify({type:"error",title:"Серверна помилка",message:C||"Виникла помилка на сервері (500)"});return}ge.notify({type:"error",title:"Помилка",message:`Статус: ${b.status}`})};async function f(){const b=s.value.validate();if(b){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(b).map(([C,V])=>`${C}: ${V}`).join(`
|
|
5
|
-
`)});return}d.value==="add"&&l.value&&delete l.value.id;const v=n.api?.trim();if(v){const C=h();try{const V=await fetch(v,{method:C,headers:C==="GET"?void 0:{"Content-Type":"application/json"},body:C==="GET"?void 0:JSON.stringify(l.value)});await m(V)}catch(V){ge.notify({type:"error",title:"Помилка з’єднання",message:V.message||"Не вдалося виконати запит"})}return}if(c.value)try{const C=await fetch(`/api/table/${c.value}`,{method:d.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l.value)});await m(C)}catch(C){ge.notify({type:"error",title:"Помилка з’єднання",message:C.message||"Не вдалося виконати запит"})}else r("edit",l.value),w()}function w(){r("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const b=await fetch(`/api/template/form/${n.form}`);if(!b.ok){ge.notify({type:b.status>=400&&b.status<500?"warning":"error",title:"Error",message:`Error code: ${b.status}`});return}const v=await b.json();a.value=v.schema,v.id&&(i.value=v.id),v.token&&(c.value=v.token,i.value||(i.value=v.token))}else if(n.token&&!n.defaultValue){c.value=n.token;const b=await fetch(`/api/form/${c.value}`);if(!b.ok){ge.notify({type:b.status>=400&&b.status<500?"warning":"error",title:"Error",message:`Error code: ${b.status}`});return}const v=await b.json();a.value=v.schema,v.data?l.value=v.data:d.value="add",p({id:v.id,obj:v.obj})}}catch(b){ge.notify({type:"error",title:"Error",message:b.message||"Unexpected error"}),console.error(b)}}),(b,v)=>(e.openBlock(),e.createElementBlock("div",Jh,[e.createElementVNode("div",Qh,[e.createElementVNode("div",eg,[e.createElementVNode("div",tg,[e.createElementVNode("h3",ng,e.toDisplayString(d.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:w,type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"},[v[2]||(v[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(X.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",og,[a.value?(e.openBlock(),e.createBlock(rt,{key:0,schema:a.value,values:l.value,"onUpdate:values":v[0]||(v[0]=C=>l.value=C),form:s.value,"onUpdate:form":v[1]||(v[1]=C=>s.value=C),formId:i.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:w,class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:f,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"}," Зберегти ")])])])]))}}),Xr=lo.form.richtext,Zr=ao.form.richtext,Bo={en:{form:{richtext:Xr}},uk:{form:{richtext:Zr}}},Jr=(o={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=ge.modal({title:o.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:Yr,contentProps:{...o,onClose:()=>{t(null),n()},onSave:r=>{t(r),n()}}})});rt.install=function(t){t.component("VForm",rt),Object.assign(t.config.globalProperties,{$form:Jr}),t.provide("form",Jr),window.v3plugin||(window.v3plugin={})};function Lt(o){return typeof o=="string"||o instanceof String}function Qr(o){var t;return typeof o=="object"&&o!=null&&(o==null||(t=o.constructor)==null?void 0:t.name)==="Object"}function el(o,t){return Array.isArray(t)?el(o,(n,r)=>t.includes(r)):Object.entries(o).reduce((n,r)=>{let[a,l]=r;return t(l,a)&&(n[a]=l),n},{})}const ye={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function tl(o){switch(o){case ye.LEFT:return ye.FORCE_LEFT;case ye.RIGHT:return ye.FORCE_RIGHT;default:return o}}function Vo(o){return o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function Gn(o,t){if(t===o)return!0;const n=Array.isArray(t),r=Array.isArray(o);let a;if(n&&r){if(t.length!=o.length)return!1;for(a=0;a<t.length;a++)if(!Gn(t[a],o[a]))return!1;return!0}if(n!=r)return!1;if(t&&o&&typeof t=="object"&&typeof o=="object"){const l=t instanceof Date,s=o instanceof Date;if(l&&s)return t.getTime()==o.getTime();if(l!=s)return!1;const c=t instanceof RegExp,i=o instanceof RegExp;if(c&&i)return t.toString()==o.toString();if(c!=i)return!1;const d=Object.keys(t);for(a=0;a<d.length;a++)if(!Object.prototype.hasOwnProperty.call(o,d[a]))return!1;for(a=0;a<d.length;a++)if(!Gn(o[d[a]],t[d[a]]))return!1;return!0}else if(t&&o&&typeof t=="function"&&typeof o=="function")return t.toString()===o.toString();return!1}class rg{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?ye.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?ye.RIGHT:ye.LEFT}}function Ce(o,t){return new Ce.InputMask(o,t)}function nl(o){if(o==null)throw new Error("mask property should be defined");return o instanceof RegExp?Ce.MaskedRegExp:Lt(o)?Ce.MaskedPattern:o===Date?Ce.MaskedDate:o===Number?Ce.MaskedNumber:Array.isArray(o)||o===Array?Ce.MaskedDynamic:Ce.Masked&&o.prototype instanceof Ce.Masked?o:Ce.Masked&&o instanceof Ce.Masked?o.constructor:o instanceof Function?Ce.MaskedFunction:(console.warn("Mask not found for mask",o),Ce.Masked)}function Jt(o){if(!o)throw new Error("Options in not defined");if(Ce.Masked){if(o.prototype instanceof Ce.Masked)return{mask:o};const{mask:t=void 0,...n}=o instanceof Ce.Masked?{mask:o}:Qr(o)&&o.mask instanceof Ce.Masked?o:{};if(t){const r=t.mask;return{...el(t,(a,l)=>!l.startsWith("_")),mask:t.constructor,_mask:r,...n}}}return Qr(o)?{...o}:{mask:o}}function yt(o){if(Ce.Masked&&o instanceof Ce.Masked)return o;const t=Jt(o),n=nl(t.mask);if(!n)throw new Error("Masked class is not found for provided mask "+t.mask+", appropriate module needs to be imported manually before creating mask.");return t.mask===n&&delete t.mask,t._mask&&(t.mask=t._mask,delete t._mask),new n(t)}Ce.createMask=yt;class Yn{get selectionStart(){let t;try{t=this._unsafeSelectionStart}catch{}return t??this.value.length}get selectionEnd(){let t;try{t=this._unsafeSelectionEnd}catch{}return t??this.value.length}select(t,n){if(!(t==null||n==null||t===this.selectionStart&&n===this.selectionEnd))try{this._unsafeSelect(t,n)}catch{}}get isActive(){return!1}}Ce.MaskElement=Yn;const ol=90,lg=89;class un extends Yn{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,n,r;return(t=(n=(r=this.input).getRootNode)==null?void 0:n.call(r))!=null?t:document}get isActive(){return this.input===this.rootElement.activeElement}bindEvents(t){this.input.addEventListener("keydown",this._onKeydown),this.input.addEventListener("input",this._onInput),this.input.addEventListener("beforeinput",this._onBeforeinput),this.input.addEventListener("compositionend",this._onCompositionEnd),this.input.addEventListener("drop",t.drop),this.input.addEventListener("click",t.click),this.input.addEventListener("focus",t.focus),this.input.addEventListener("blur",t.commit),this._handlers=t}_onKeydown(t){if(this._handlers.redo&&(t.keyCode===ol&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===lg&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===ol&&(t.metaKey||t.ctrlKey))return t.preventDefault(),this._handlers.undo(t);t.isComposing||this._handlers.selectionChange(t)}_onBeforeinput(t){if(t.inputType==="historyUndo"&&this._handlers.undo)return t.preventDefault(),this._handlers.undo(t);if(t.inputType==="historyRedo"&&this._handlers.redo)return t.preventDefault(),this._handlers.redo(t)}_onCompositionEnd(t){this._handlers.input(t)}_onInput(t){t.isComposing||this._handlers.input(t)}unbindEvents(){this.input.removeEventListener("keydown",this._onKeydown),this.input.removeEventListener("input",this._onInput),this.input.removeEventListener("beforeinput",this._onBeforeinput),this.input.removeEventListener("compositionend",this._onCompositionEnd),this.input.removeEventListener("drop",this._handlers.drop),this.input.removeEventListener("click",this._handlers.click),this.input.removeEventListener("focus",this._handlers.focus),this.input.removeEventListener("blur",this._handlers.commit),this._handlers={}}}Ce.HTMLMaskElement=un;class rl extends un{constructor(t){super(t),this.input=t}get _unsafeSelectionStart(){return this.input.selectionStart!=null?this.input.selectionStart:this.value.length}get _unsafeSelectionEnd(){return this.input.selectionEnd}_unsafeSelect(t,n){this.input.setSelectionRange(t,n)}get value(){return this.input.value}set value(t){this.input.value=t}}Ce.HTMLMaskElement=un;class So extends un{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||r==null||r<a?r:a}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||r==null||r>a?r:a}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const r=this.rootElement.createRange();r.setStart(this.input.firstChild||this.input,t),r.setEnd(this.input.lastChild||this.input,n);const a=this.rootElement,l=a.getSelection&&a.getSelection();l&&(l.removeAllRanges(),l.addRange(r))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}Ce.HTMLContenteditableMaskElement=So;class Xn{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>Xn.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}}Xn.MAX_LENGTH=100;class ll{constructor(t,n){this.el=t instanceof Yn?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new So(t):new rl(t),this.masked=yt(n),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new Xn,this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this._onUndo=this._onUndo.bind(this),this._onRedo=this._onRedo.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}maskEquals(t){var n;return t==null||((n=this.masked)==null?void 0:n.maskEquals(t))}get mask(){return this.masked.mask}set mask(t){if(this.maskEquals(t))return;if(!(t instanceof Ce.Masked)&&this.masked.constructor===nl(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof Ce.Masked?t:yt({mask:t});n.unmaskedValue=this.masked.unmaskedValue,this.masked=n}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,n){const r=this._listeners[t];r&&r.forEach(a=>a(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,r=this.masked.value,a=this.masked.rawInputValue,l=this.displayValue,s=this.unmaskedValue!==n||this.value!==r||this._rawInputValue!==a;this._unmaskedValue=n,this._value=r,this._rawInputValue=a,this.el.value!==l&&(this.el.value=l),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:n,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:n,...r}=t,a=!this.maskEquals(n),l=this.masked.optionsIsChanged(r);a&&(this.mask=n),l&&this.masked.updateOptions(r),(a||l)&&this.updateControl()}updateCursor(t){t!=null&&(this.cursorPos=t,this._delayUpdateCursor(t))}_delayUpdateCursor(t){this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(()=>{this.el&&(this.cursorPos=this._changingCursorPos,this._abortUpdateCursor())},10)}_fireChangeEvents(){this._fireEvent("accept",this._inputEvent),this.masked.isComplete&&this._fireEvent("complete",this._inputEvent)}_abortUpdateCursor(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)}alignCursor(){this.cursorPos=this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos,ye.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,n){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(n),this}off(t,n){if(!this._listeners[t])return this;if(!n)return delete this._listeners[t],this;const r=this._listeners[t].indexOf(n);return r>=0&&this._listeners[t].splice(r,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new rg({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),r=this.masked.rawInputValue,a=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,l=r===this.masked.rawInputValue?n.removeDirection:ye.NONE;let s=this.masked.nearestInputPos(n.startChangePos+a,l);l!==ye.NONE&&(s=this.masked.nearestInputPos(s,ye.NONE)),this.updateControl(s),delete this._inputEvent}_onChange(){this.displayValue!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}_onDrop(t){t.preventDefault(),t.stopPropagation()}_onFocus(t){this.alignCursorFriendly()}_onClick(t){this.alignCursorFriendly()}_onUndo(){this._applyHistoryState(this.history.undo())}_onRedo(){this._applyHistoryState(this.history.redo())}_applyHistoryState(t){t&&(this._historyChanging=!0,this.unmaskedValue=t.unmaskedValue,this.el.select(t.selection.start,t.selection.end),this._saveSelection(),this._historyChanging=!1)}destroy(){this._unbindEvents(),this._listeners.length=0,delete this.el}}Ce.InputMask=ll;class Ve{static normalize(t){return Array.isArray(t)?t:[t,new Ve]}constructor(t){Object.assign(this,{inserted:"",rawInserted:"",tailShift:0,skip:!1},t)}aggregate(t){return this.inserted+=t.inserted,this.rawInserted+=t.rawInserted,this.tailShift+=t.tailShift,this.skip=this.skip||t.skip,this}get offset(){return this.tailShift+this.inserted.length}get consumed(){return!!this.rawInserted||this.skip}equals(t){return this.inserted===t.inserted&&this.tailShift===t.tailShift&&this.rawInserted===t.rawInserted&&this.skip===t.skip}}Ce.ChangeDetails=Ve;class bt{constructor(t,n,r){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=r}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const n=this.value[0];return this.value=this.value.slice(1),n}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class Xe{constructor(t){this._value="",this._update({...Xe.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,n){n===void 0&&(n={input:!0}),this.reset(),this.append(t,n,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,n){return t}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),Math.min(this.displayValue.length,n-t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this.displayValue.slice(t,n)}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new bt(this.extractInput(t,n),t)}appendTail(t){return Lt(t)&&(t=new bt(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new Ve({inserted:t,rawInserted:t})):new Ve}_appendChar(t,n,r){n===void 0&&(n={});const a=this.state;let l;if([t,l]=this.doPrepareChar(t,n),t&&(l=l.aggregate(this._appendCharRaw(t,n)),!l.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=a;let c=this.pad(n);const i=this._appendCharRaw(t,n);c=c.aggregate(i),i.rawInserted||c.equals(l)?l=c:this.state=s}if(l.inserted){let s,c=this.doValidate(n)!==!1;if(c&&r!=null){const i=this.state;if(this.overwrite===!0){s=r.state;for(let h=0;h<l.rawInserted.length;++h)r.unshift(this.displayValue.length-l.tailShift)}let d=this.appendTail(r);if(c=d.rawInserted.length===r.toString().length,!(c&&d.inserted)&&this.overwrite==="shift"){this.state=i,s=r.state;for(let h=0;h<l.rawInserted.length;++h)r.shift();d=this.appendTail(r),c=d.rawInserted.length===r.toString().length}c&&d.inserted&&(this.state=i)}c||(l=new Ve,this.state=a,r&&s&&(r.state=s))}return l}_appendPlaceholder(){return new Ve}_appendEager(){return new Ve}append(t,n,r){if(!Lt(t))throw new Error("value should be string");const a=Lt(r)?new bt(String(r)):r;n!=null&&n.tail&&(n._beforeTailState=this.state);let l;[t,l]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const c=this._appendChar(t[s],n,a);if(!c.rawInserted&&!this.doSkipInvalid(t[s],n,a))break;l.aggregate(c)}return(this.eager===!0||this.eager==="append")&&n!=null&&n.input&&t&&l.aggregate(this._appendEager()),a!=null&&(l.tailShift+=this.appendTail(a).tailShift),l}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(n),new Ve}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,r=this.value,a=t();return this.rawInputValue=n,this.value&&this.value!==r&&r.indexOf(this.value)===0&&(this.append(r.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,a}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,r=t(this);return this.state=n,delete this._isolated,r}doSkipInvalid(t,n,r){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),Ve.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),Ve.normalize(this.prepareChar?this.prepareChar(t,this,n):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,n,r,a,l){r===void 0&&(r=""),a===void 0&&(a=ye.NONE),l===void 0&&(l={input:!0});const s=t+n,c=this.extractTail(s),i=this.eager===!0||this.eager==="remove";let d;i&&(a=tl(a),d=this.extractInput(0,s,{raw:!0}));let h=t;const y=new Ve;if(a!==ye.NONE&&(h=this.nearestInputPos(t,n>1&&t!==0&&!i?ye.NONE:a),y.tailShift=h-t),y.aggregate(this.remove(h)),i&&a!==ye.NONE&&d===this.rawInputValue)if(a===ye.FORCE_LEFT){let p;for(;d===this.rawInputValue&&(p=this.displayValue.length);)y.aggregate(new Ve({tailShift:-1})).aggregate(this.remove(p-1))}else a===ye.FORCE_RIGHT&&c.unshift();return y.aggregate(this.append(r,l,c))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!Gn(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||Xe.EMPTY_VALUES.includes(t)&&Xe.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new Ve}}Xe.DEFAULTS={skipInvalid:!0},Xe.EMPTY_VALUES=[void 0,null,""],Ce.Masked=Xe;class It{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=Lt(t)?new bt(String(t)):t;const n=this.chunks[this.chunks.length-1],r=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof bt)r?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof It){if(t.stop==null){let a;for(;t.chunks.length&&t.chunks[0].stop==null;)a=t.chunks.shift(),a.from+=t.from,this.extend(a)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof Ce.MaskedPattern))return new bt(this.toString()).appendTo(t);const n=new Ve;for(let r=0;r<this.chunks.length;++r){const a=this.chunks[r],l=t._mapPosToBlock(t.displayValue.length),s=a.stop;let c;if(s!=null&&(!l||l.index<=s)&&((a instanceof It||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),c=a instanceof It&&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,...r}=t;Object.assign(this,r),this.chunks=n.map(a=>{const l="chunks"in a?new It:new bt;return l.state=a,l})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let r=0;for(;r<this.chunks.length;){const a=this.chunks[r],l=a.unshift(n);if(a.toString()){if(!l)break;++r}else this.chunks.splice(r,1);if(l)return l}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],r=n.shift();if(n.toString()){if(!r)break;--t}else this.chunks.splice(t,1);if(r)return r}return""}}class ag{constructor(t,n){this.masked=t,this._log=[];const{offset:r,index:a}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=r,this.index=a,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ye.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,ye.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ye.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ye.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,ye.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ye.NONE),!0})}}class $o{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(n),this._value||(this._isRawInput=!1),new Ve}nearestInputPos(t,n){n===void 0&&(n=ye.NONE);const r=0,a=this._value.length;switch(n){case ye.LEFT:case ye.FORCE_LEFT:return r;case ye.NONE:case ye.RIGHT:case ye.FORCE_RIGHT:default:return a}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),r===void 0&&(r={}),r.raw&&this._isRawInput&&this._value.slice(t,n)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Ve;const r=this.eager===!0||this.eager==="append",l=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!r)&&!n.tail,s=new Ve({inserted:this.char,rawInserted:l?this.char:""});return this._value=this.char,this._isRawInput=l&&(n.raw||n.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new Ve;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new bt("")}appendTail(t){return Lt(t)&&(t=new bt(String(t))),t.appendTo(this)}append(t,n,r){const a=this._appendChar(t[0],n);return r!=null&&(a.tailShift+=this.appendTail(r).tailShift),a}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class pn{constructor(t){const{parent:n,isOptional:r,placeholderChar:a,displayChar:l,lazy:s,eager:c,...i}=t;this.masked=yt(i),Object.assign(this,{parent:n,isOptional:r,placeholderChar:a,displayChar:l,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 Ve}get value(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}get unmaskedValue(){return this.masked.unmaskedValue}get rawInputValue(){return this.masked.rawInputValue}get displayValue(){return this.masked.value&&this.displayChar||this.value}get isComplete(){return!!this.masked.value||this.isOptional}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Ve;const r=this.masked.state;let a=this.masked._appendChar(t,this.currentMaskFlags(n));return a.inserted&&this.doValidate(n)===!1&&(a=new Ve,this.masked.state=r),!a.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(a.inserted=this.placeholderChar),a.skip=!a.inserted&&!this.isOptional,this.isFilled=!!a.inserted,a}append(t,n,r){return this.masked.append(t,this.currentMaskFlags(n),r)}_appendPlaceholder(){return this.isFilled||this.isOptional?new Ve:(this.isFilled=!0,new Ve({inserted:this.placeholderChar}))}_appendEager(){return new Ve}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,r)}nearestInputPos(t,n){n===void 0&&(n=ye.NONE);const r=0,a=this.value.length,l=Math.min(Math.max(t,r),a);switch(n){case ye.LEFT:case ye.FORCE_LEFT:return this.isComplete?l:r;case ye.RIGHT:case ye.FORCE_RIGHT:return this.isComplete?l:a;case ye.NONE:default:return l}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.value.slice(t,n).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var n;return{...t,_beforeTailState:(t==null||(n=t._beforeTailState)==null?void 0:n.masked)||t?._beforeTailState}}pad(t){return new Ve}}pn.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 al extends Xe{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=r=>r.search(n)>=0),super._update(t)}}Ce.MaskedRegExp=al;class Ze extends Xe{constructor(t){super({...Ze.DEFAULTS,...t,definitions:Object.assign({},pn.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const n=this.mask;if(!n||!t)return;let r=!1,a=!1;for(let l=0;l<n.length;++l){if(this.blocks){const d=n.slice(l),h=Object.keys(this.blocks).filter(p=>d.indexOf(p)===0);h.sort((p,m)=>m.length-p.length);const y=h[0];if(y){const{expose:p,repeat:m,...f}=Jt(this.blocks[y]),w={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...f,repeat:m,parent:this},b=m!=null?new Ce.RepeatBlock(w):yt(w);b&&(this._blocks.push(b),p&&(this.exposeBlock=b),this._maskedBlocks[y]||(this._maskedBlocks[y]=[]),this._maskedBlocks[y].push(this._blocks.length-1)),l+=y.length-1;continue}}let s=n[l],c=s in t;if(s===Ze.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){r=!r;continue}if(s==="["||s==="]"){a=!a;continue}if(s===Ze.ESCAPE_CHAR){if(++l,s=n[l],!s)break;c=!1}const i=c?new pn({isOptional:a,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...Jt(t[s]),parent:this}):new $o({char:s,eager:this.eager,isUnmasking:r});this._blocks.push(i)}}get state(){return{...super.state,_blocks:this._blocks.map(t=>t.state)}}set state(t){if(!t){this.reset();return}const{_blocks:n,...r}=t;this._blocks.forEach((a,l)=>a.state=n[l]),super.state=r}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,n)=>t+=n.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(n),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,n)=>t+=n.value,"")}set value(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(n),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(n),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,n)=>t+=n.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const n=new Ve;let r=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(r==null)return n;this._blocks[r].isFilled&&++r;for(let a=r;a<this._blocks.length;++a){const l=this._blocks[a]._appendEager();if(!l.inserted)break;n.aggregate(l)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._mapPosToBlock(this.displayValue.length),a=new Ve;if(!r)return a;for(let s=r.index,c;c=this._blocks[s];++s){var l;const i=c._appendChar(t,{...n,_beforeTailState:(l=n._beforeTailState)==null||(l=l._blocks)==null?void 0:l[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 r=new It;return t===n||this._forEachBlocksInRange(t,n,(a,l,s,c)=>{const i=a.extractTail(s,c);i.stop=this._findStopBefore(l),i.from=this._blockStartPos(l),i instanceof It&&(i.blockIndex=l),r.extend(i)}),r}extractInput(t,n,r){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),r===void 0&&(r={}),t===n)return"";let a="";return this._forEachBlocksInRange(t,n,(l,s,c,i)=>{a+=l.extractInput(c,i,r)}),a}_findStopBefore(t){let n;for(let r=0;r<this._stops.length;++r){const a=this._stops[r];if(a<=t)n=a;else break}return n}_appendPlaceholder(t){const n=new Ve;if(this.lazy&&t==null)return n;const r=this._mapPosToBlock(this.displayValue.length);if(!r)return n;const a=r.index,l=t??this._blocks.length;return this._blocks.slice(a,l).forEach(s=>{if(!s.lazy||t!=null){var c;n.aggregate(s._appendPlaceholder((c=s._blocks)==null?void 0:c.length))}}),n}_mapPosToBlock(t){let n="";for(let r=0;r<this._blocks.length;++r){const a=this._blocks[r],l=n.length;if(n+=a.displayValue,t<=n.length)return{index:r,offset:t-l}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,r)=>n+=r.displayValue.length,0)}_forEachBlocksInRange(t,n,r){n===void 0&&(n=this.displayValue.length);const a=this._mapPosToBlock(t);if(a){const l=this._mapPosToBlock(n),s=l&&a.index===l.index,c=a.offset,i=l&&s?l.offset:this._blocks[a.index].displayValue.length;if(r(this._blocks[a.index],a.index,c,i),l&&!s){for(let d=a.index+1;d<l.index;++d)r(this._blocks[d],d,0,this._blocks[d].displayValue.length);r(this._blocks[l.index],l.index,0,l.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._forEachBlocksInRange(t,n,(a,l,s,c)=>{r.aggregate(a.remove(s,c))}),r}nearestInputPos(t,n){if(n===void 0&&(n=ye.NONE),!this._blocks.length)return 0;const r=new ag(this,t);if(n===ye.NONE)return r.pushRightBeforeInput()||(r.popState(),r.pushLeftBeforeInput())?r.pos:this.displayValue.length;if(n===ye.LEFT||n===ye.FORCE_LEFT){if(n===ye.LEFT){if(r.pushRightBeforeFilled(),r.ok&&r.pos===t)return t;r.popState()}if(r.pushLeftBeforeInput(),r.pushLeftBeforeRequired(),r.pushLeftBeforeFilled(),n===ye.LEFT){if(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.ok&&r.pos<=t||(r.popState(),r.ok&&r.pos<=t))return r.pos;r.popState()}return r.ok?r.pos:n===ye.FORCE_LEFT?0:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:0)}return n===ye.RIGHT||n===ye.FORCE_RIGHT?(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.pushRightBeforeFilled()?r.pos:n===ye.FORCE_RIGHT?this.displayValue.length:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:this.nearestInputPos(t,ye.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let r=0;return this._forEachBlocksInRange(t,n,(a,l,s,c)=>{r+=a.totalInputPositions(s,c)}),r}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(r=>this._blocks[r]):[]}pad(t){const n=new Ve;return this._forEachBlocksInRange(0,this.displayValue.length,r=>n.aggregate(r.pad(t))),n}}Ze.DEFAULTS={...Xe.DEFAULTS,lazy:!0,placeholderChar:"_"},Ze.STOP_CHAR="`",Ze.ESCAPE_CHAR="\\",Ze.InputDefinition=pn,Ze.FixedDefinition=$o,Ce.MaskedPattern=Ze;class mn extends Ze{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:n=this.to||0,from:r=this.from||0,maxLength:a=this.maxLength||0,autofix:l=this.autofix,...s}=t;this.to=n,this.from=r,this.maxLength=Math.max(String(n).length,a),this.autofix=l;const c=String(this.from).padStart(this.maxLength,"0"),i=String(this.to).padStart(this.maxLength,"0");let d=0;for(;d<i.length&&i[d]===c[d];)++d;s.mask=i.slice(0,d).replace(/0/g,"\\0")+"0".repeat(this.maxLength-d),super._update(s)}get isComplete(){return super.isComplete&&!!this.value}boundaries(t){let n="",r="";const[,a,l]=t.match(/^(\D*)(\d*)(\D*)/)||[];return l&&(n="0".repeat(a.length)+l,r="9".repeat(a.length)+l),n=n.padEnd(this.maxLength,"0"),r=r.padEnd(this.maxLength,"9"),[n,r]}doPrepareChar(t,n){n===void 0&&(n={});let r;return[t,r]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(r.skip=!this.isComplete),[t,r]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const r=String(this.from).padStart(this.maxLength,"0"),a=String(this.to).padStart(this.maxLength,"0"),[l,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(r[this.value.length],n):Number(l)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(r[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(a[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[a,l]=this.boundaries(n);return this.from<=Number(l)&&Number(a)<=this.to&&super.doValidate(t)}pad(t){const n=new Ve;if(this.value.length===this.maxLength)return n;const r=this.value,a=this.maxLength-this.value.length;if(a){this.reset();for(let l=0;l<a;++l)n.aggregate(super._appendCharRaw("0",t));r.split("").forEach(l=>this._appendCharRaw(l))}return n}}Ce.MaskedRange=mn;const sg="d{.}`m{.}`Y";class kt extends Ze{static extractPatternOptions(t){const{mask:n,pattern:r,...a}=t;return{...a,mask:Lt(n)?n:r}}constructor(t){super(kt.extractPatternOptions({...kt.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:r,blocks:a,...l}={...kt.DEFAULTS,...t},s=Object.assign({},kt.GET_DEFAULT_BLOCKS());t.min&&(s.Y.from=t.min.getFullYear()),t.max&&(s.Y.to=t.max.getFullYear()),t.min&&t.max&&s.Y.from===s.Y.to&&(s.m.from=t.min.getMonth()+1,s.m.to=t.max.getMonth()+1,s.m.from===s.m.to&&(s.d.from=t.min.getDate(),s.d.to=t.max.getDate())),Object.assign(s,this.blocks,a),super._update({...l,mask:Lt(n)?n:r,blocks:s})}doValidate(t){const n=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&n!=null&&(this.min==null||this.min<=n)&&(this.max==null||n<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(kt.extractPatternOptions(t))}}kt.GET_DEFAULT_BLOCKS=()=>({d:{mask:mn,from:1,to:31,maxLength:2},m:{mask:mn,from:1,to:12,maxLength:2},Y:{mask:mn,from:1900,to:9999}}),kt.DEFAULTS={...Ze.DEFAULTS,mask:Date,pattern:sg,format:(o,t)=>{if(!o)return"";const n=String(o.getDate()).padStart(2,"0"),r=String(o.getMonth()+1).padStart(2,"0"),a=o.getFullYear();return[n,r,a].join(".")},parse:(o,t)=>{const[n,r,a]=o.split(".").map(Number);return new Date(a,r-1,n)}},Ce.MaskedDate=kt;class fn extends Xe{constructor(t){super({...fn.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(n=>{const{expose:r,...a}=Jt(n),l=yt({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...a});return r&&(this.exposeMask=l),l}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._applyDispatch(t,n);return this.currentMask&&r.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),r}_applyDispatch(t,n,r){t===void 0&&(t=""),n===void 0&&(n={}),r===void 0&&(r="");const a=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,l=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:l,c=l.slice(s.length),i=this.currentMask,d=new Ve,h=i?.state;return this.currentMask=this.doDispatch(t,{...n},r),this.currentMask&&(this.currentMask!==i?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-a.length),c&&(d.tailShift+=this.currentMask.append(c,{raw:!0,tail:!0}).tailShift)):h&&(this.currentMask.state=h)),d}_appendPlaceholder(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}_appendEager(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}appendTail(t){const n=new Ve;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,r;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((r=t._beforeTailState)==null?void 0:r.currentMask)||t._beforeTailState}}doDispatch(t,n,r){return n===void 0&&(n={}),r===void 0&&(r=""),this.dispatch(t,this,n,r)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[r,a]=super.doPrepare(t,n);if(this.currentMask){let l;[r,l]=super.doPrepare(r,this.currentMaskFlags(n)),a=a.aggregate(l)}return[r,a]}doPrepareChar(t,n){n===void 0&&(n={});let[r,a]=super.doPrepareChar(t,n);if(this.currentMask){let l;[r,l]=super.doPrepareChar(r,this.currentMaskFlags(n)),a=a.aggregate(l)}return[r,a]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const r=new Ve;return this.currentMask&&r.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),r}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(n=>n.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:n,currentMaskRef:r,currentMask:a,...l}=t;n&&this.compiledMasks.forEach((s,c)=>s.state=n[c]),r!=null&&(this.currentMask=r,this.currentMask.state=a),super.state=l}extractInput(t,n,r){return this.currentMask?this.currentMask.extractInput(t,n,r):""}extractTail(t,n){return this.currentMask?this.currentMask.extractTail(t,n):super.extractTail(t,n)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,n){return this.currentMask?this.currentMask.nearestInputPos(t,n):super.nearestInputPos(t,n)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((n,r)=>{if(!t[r])return;const{mask:a,...l}=t[r];return Gn(n,l)&&n.maskEquals(a)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}fn.DEFAULTS={...Xe.DEFAULTS,dispatch:(o,t,n,r)=>{if(!t.compiledMasks.length)return;const a=t.rawInputValue,l=t.compiledMasks.map((s,c)=>{const i=t.currentMask===s,d=i?s.displayValue.length:s.nearestInputPos(s.displayValue.length,ye.FORCE_LEFT);return s.rawInputValue!==a?(s.reset(),s.append(a,{raw:!0})):i||s.remove(d),s.append(o,t.currentMaskFlags(n)),s.appendTail(r),{index:c,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,ye.FORCE_LEFT)))}});return l.sort((s,c)=>c.weight-s.weight||c.totalInputPositions-s.totalInputPositions),t.compiledMasks[l[0].index]}},Ce.MaskedDynamic=fn;class hn extends Ze{constructor(t){super({...hn.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...r}=t;if(n){const a=n.map(c=>c.length),l=Math.min(...a),s=Math.max(...a)-l;r.mask="*".repeat(l),s&&(r.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(r)}_appendCharRaw(t,n){n===void 0&&(n={});const r=Math.min(this.nearestInputPos(0,ye.FORCE_RIGHT),this.value.length),a=this.enum.filter(l=>this.matchValue(l,this.unmaskedValue+t,r));if(a.length){a.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,c)=>{const i=a[0][c];c>=this.value.length||i===s.value||(s.reset(),s._appendChar(i,n))});const l=super._appendCharRaw(a[0][this.value.length],n);return a.length===1&&a[0].slice(this.unmaskedValue.length).split("").forEach(s=>l.aggregate(super._appendCharRaw(s))),l}return new Ve({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new bt("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new Ve;const r=Math.min(super.nearestInputPos(0,ye.FORCE_RIGHT),this.value.length);let a;for(a=t;a>=0&&!(this.enum.filter(c=>this.matchValue(c,this.value.slice(r,a),r)).length>1);--a);const l=super.remove(a,n);return l.tailShift+=a-t,l}get isComplete(){return this.enum.indexOf(this.value)>=0}}hn.DEFAULTS={...Ze.DEFAULTS,matchValue:(o,t,n)=>o.indexOf(t,n)===n},Ce.MaskedEnum=hn;class sl extends Xe{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}Ce.MaskedFunction=sl;var il;class tt extends Xe{constructor(t){super({...tt.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",r=(this.scale?"("+Vo(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+r),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(Vo).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(Vo(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const n=t.split(this.radix);return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),n.join(this.radix)}doPrepareChar(t,n){n===void 0&&(n={});const[r,a]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!r&&(a.skip=!0),r&&!this.allowPositive&&!this.value&&r!=="-"&&a.aggregate(this._appendChar("-")),[r,a]}_separatorsCount(t,n){n===void 0&&(n=!1);let r=0;for(let a=0;a<t;++a)this._value.indexOf(this.thousandsSeparator,a)===a&&(++r,n&&(t+=this.thousandsSeparator.length));return r}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n),this._removeThousandsSeparators(super.extractInput(t,n,r))}_appendCharRaw(t,n){n===void 0&&(n={});const r=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,a=this._separatorsCountFromSlice(r);this._value=this._removeThousandsSeparators(this.value);const l=this._value;this._value+=t;const s=this.number;let c=!isNaN(s),i=!1;if(c){let p;this.min!=null&&this.min<0&&this.number<this.min&&(p=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(p=this.max),p!=null&&(this.autofix?(this._value=this.format(p,this).replace(tt.UNMASKED_RADIX,this.radix),i||(i=l===this._value&&!n.tail)):c=!1),c&&(c=!!this._value.match(this._numberRegExp))}let d;c?d=new Ve({inserted:this._value.slice(l.length),rawInserted:i?"":t,skip:i}):(this._value=l,d=new Ve),this._value=this._insertThousandsSeparators(this._value);const h=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,y=this._separatorsCountFromSlice(h);return d.tailShift+=(y-a)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,r=this.value.indexOf(this.thousandsSeparator,n);if(r<=t)return r}return-1}_adjustRangeWithSeparators(t,n){const r=this._findSeparatorAround(t);r>=0&&(t=r);const a=this._findSeparatorAround(n);return a>=0&&(n=a+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const r=this.value.slice(0,t),a=this.value.slice(n),l=this._separatorsCount(r.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(r+a));const s=this._separatorsCountFromSlice(r);return new Ve({tailShift:(s-l)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case ye.NONE:case ye.LEFT:case ye.FORCE_LEFT:{const r=this._findSeparatorAround(t-1);if(r>=0){const a=r+this.thousandsSeparator.length;if(t<a||this.value.length<=a||n===ye.FORCE_LEFT)return r}break}case ye.RIGHT:case ye.FORCE_RIGHT:{const r=this._findSeparatorAround(t);if(r>=0)return r+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let n=t;this.min!=null&&(n=Math.max(n,this.min)),this.max!=null&&(n=Math.min(n,this.max)),n!==t&&(this.unmaskedValue=this.format(n,this));let r=this.value;this.normalizeZeros&&(r=this._normalizeZeros(r)),this.padFractionalZeros&&this.scale>0&&(r=this._padFractionalZeros(r)),this._value=r}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(r,a,l,s)=>a+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,r){n===void 0&&(n={});const a=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===tt.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,r)&&!a}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,tt.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(tt.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)||tt.EMPTY_VALUES.includes(t)&&tt.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}il=tt,tt.UNMASKED_RADIX=".",tt.EMPTY_VALUES=[...Xe.EMPTY_VALUES,0],tt.DEFAULTS={...Xe.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[il.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:o=>o.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},Ce.MaskedNumber=tt;const Zn={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function Ao(o,t,n){t===void 0&&(t=Zn.MASKED),n===void 0&&(n=Zn.MASKED);const r=yt(o);return a=>r.runIsolated(l=>(l[t]=a,l[n]))}function cl(o,t,n,r){return Ao(t,n,r)(o)}Ce.PIPE_TYPE=Zn,Ce.createPipe=Ao,Ce.pipe=cl;class dl extends Ze{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var n,r,a;const{repeat:l,...s}=Jt(t);this._blockOpts=Object.assign({},this._blockOpts,s);const c=yt(this._blockOpts);this.repeat=(n=(r=l??c.repeat)!=null?r:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((a=this._blocks)==null?void 0:a.length)||0,this.repeatFrom)),blocks:{m:c},eager:c.eager,overwrite:c.overwrite,skipInvalid:c.skipInvalid,lazy:c.lazy,placeholderChar:c.placeholderChar,displayChar:c.displayChar})}_allocateBlock(t){if(t<this._blocks.length)return this._blocks[t];if(this.repeatTo===1/0||this._blocks.length<this.repeatTo)return this._blocks.push(yt(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const r=new Ve;for(let i=(a=(l=this._mapPosToBlock(this.displayValue.length))==null?void 0:l.index)!=null?a:Math.max(this._blocks.length-1,0),d,h;d=(s=this._blocks[i])!=null?s:h=!h&&this._allocateBlock(i);++i){var a,l,s,c;const y=d._appendChar(t,{...n,_beforeTailState:(c=n._beforeTailState)==null||(c=c._blocks)==null?void 0:c[i]});if(y.skip&&h){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(r.aggregate(y),y.consumed)break}return r}_trimEmptyTail(t,n){var r,a;t===void 0&&(t=0);const l=Math.max(((r=this._mapPosToBlock(t))==null?void 0:r.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(a=this._mapPosToBlock(n))==null?void 0:a.index),s==null&&(s=this._blocks.length-1);let c=0;for(let i=s;l<=i&&!this._blocks[i].unmaskedValue;--i,++c);c&&(this._blocks.splice(s-c+1,c),this.mask=this.mask.slice(c))}reset(){super.reset(),this._trimEmptyTail()}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._trimEmptyTail(t,n),r}totalInputPositions(t,n){return t===void 0&&(t=0),n==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,n)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}Ce.RepeatBlock=dl;try{globalThis.IMask=Ce}catch{}const Jn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:Ve,ChunksTailDetails:It,DIRECTION:ye,HTMLContenteditableMaskElement:So,HTMLInputMaskElement:rl,HTMLMaskElement:un,InputMask:ll,MaskElement:Yn,Masked:Xe,MaskedDate:kt,MaskedDynamic:fn,MaskedEnum:hn,MaskedFunction:sl,MaskedNumber:tt,MaskedPattern:Ze,MaskedRange:mn,MaskedRegExp:al,PIPE_TYPE:Zn,PatternFixedDefinition:$o,PatternInputDefinition:pn,RepeatBlock:dl,createMask:yt,createPipe:Ao,default:Ce,forceDirection:tl,normalizeOpts:Jt,pipe:cl},Symbol.toStringTag,{value:"Module"}));function ig(){const o=e.ref(!1);return{isFullscreen:o,toggleFullscreen:()=>{o.value=!o.value}}}const cg="https://esm.sh",lt="3.7.2",ul="3.7.2",dg=`?deps=@tiptap/core@${lt},@tiptap/pm@${ul}`,at=o=>`${cg}/${o}${dg}`,st={core:at(`@tiptap/core@${lt}`),starterKit:at(`@tiptap/starter-kit@${lt}`),textStyle:at(`@tiptap/extension-text-style@${lt}`),table:at(`@tiptap/extension-table@${lt}`),highlight:at(`@tiptap/extension-highlight@${lt}`),subscript:at(`@tiptap/extension-subscript@${lt}`),superscript:at(`@tiptap/extension-superscript@${lt}`),link:at(`@tiptap/extension-link@${lt}`),image:at(`@tiptap/extension-image@${lt}`),textAlign:at(`@tiptap/extension-text-align@${lt}`),heading:at(`@tiptap/extension-heading@${lt}`),paragraph:at(`@tiptap/extension-paragraph@${lt}`),pmModel:at(`@tiptap/pm@${ul}/model`)},gn="__vs_form_tiptap_loader__",it=o=>import(o),He=(o,t)=>o?.[t]||o?.default?.[t]||o?.default?.default?.[t]||o?.default||o,ug=o=>o&&o.split(";").map(n=>n.trim()).filter(n=>n&&!/^text-align\s*:/i.test(n)).join("; ")||null,pg=o=>o.style?{style:String(o.style).replace(/;\s*$/,"")}:{},pl=({stripTextAlign:o=!1}={})=>({default:null,parseHTML:t=>{const n=t.getAttribute("style");return o?ug(n):n||null},renderHTML:t=>pg(t)}),mg=o=>o.extend({addAttributes(){return{...this.parent?.(),style:pl({stripTextAlign:!0})}}}),fg=o=>o.extend({addAttributes(){return{...this.parent?.(),style:pl()}}}),hg=o=>o.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}),gg=(o,t,n,r,a)=>{const l=t.extend({addAttributes(){return{...this.parent?.(),border:{default:null,parseHTML:s=>s.getAttribute("border"),renderHTML:s=>s.border?{border:s.border}:{}},cellpadding:{default:null,parseHTML:s=>s.getAttribute("cellpadding"),renderHTML:s=>s.cellpadding?{cellpadding:s.cellpadding}:{}},cellspacing:{default:null,parseHTML:s=>s.getAttribute("cellspacing"),renderHTML:s=>s.cellspacing?{cellspacing:s.cellspacing}:{}},style:{default:null,parseHTML:s=>s.getAttribute("style"),renderHTML:s=>s.style?{style:s.style}:{}},width:{default:null,parseHTML:s=>s.getAttribute("width"),renderHTML:s=>s.width?{width:s.width}:{}}}},parseHTML(){return[{tag:"div.tableWrapper table",priority:100},{tag:"table"}]}});return o.extend({addExtensions(){return[l.configure({resizable:!0}),n,r,a]}})},yg=o=>o.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),bg=o=>o.create({name:"iframe",group:"block",inline:!1,atom:!0,selectable:!0,addAttributes(){return{src:{default:null},width:{default:"100%"},height:{default:"280"},frameborder:{default:"0"},allow:{default:null},allowfullscreen:{default:null},referrerpolicy:{default:null},loading:{default:null},class:{default:null},title:{default:null},style:{default:null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["iframe",t]}});async function kg(){if(typeof window>"u")return null;const o=window;return o[gn]||(o[gn]=Promise.all([it(st.core),it(st.starterKit),it(st.textStyle),it(st.table),it(st.highlight),it(st.subscript),it(st.superscript),it(st.link),it(st.image),it(st.textAlign),it(st.heading),it(st.paragraph),it(st.pmModel)]).then(([t,n,r,a,l,s,c,i,d,h,y,p,m])=>{const f=He(t,"Editor"),w=He(t,"Node"),b=He(n,"StarterKit"),v=He(r,"TextStyle"),C=He(a,"TableKit"),V=He(a,"Table"),$=He(a,"TableRow"),U=He(a,"TableCell"),Z=He(a,"TableHeader"),O=He(l,"Highlight"),E=He(s,"Subscript"),S=He(c,"Superscript"),_=He(i,"Link"),T=He(d,"Image"),j=He(h,"TextAlign"),oe=He(y,"Heading"),A=He(p,"Paragraph"),P=He(m,"DOMParser");if(!f||!w||!b||!v||!C||!V||!$||!U||!Z||!O||!E||!S||!_||!T||!j||!oe||!A||!P)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:f,ProseMirrorDOMParser:P,StarterKit:b,ExtendedTextStyle:yg(v),Highlight:O,Subscript:E,Superscript:S,CustomLink:fg(_),Image:T,TextAlign:j,CustomHeading:hg(oe),CustomParagraph:mg(A),CustomTableKit:gg(C,V,$,U,Z),Iframe:bg(w)}}).catch(t=>{throw delete o[gn],t})),o[gn]}const Ot=o=>o.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),yn=o=>{let t=Ot(o||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,a,l)=>{const s=l?` title="${Ot(l)}"`:"";return`<img src="${Ot(a)}" alt="${Ot(r)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,a,l)=>{const s=l?` title="${Ot(l)}"`:"";return`<a href="${Ot(a)}"${s} target="_blank" rel="noopener noreferrer">${r}</a>`}),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_\n]+)_/g,"<em>$1</em>"),t},bn=o=>/^\s*\d+\.\s+/.test(o),No=o=>/^\s*[-*+]\s+/.test(o),ml=o=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(o),Mo=o=>/^\s*>\s?/.test(o),Fo=o=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(o),fl=o=>o.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>yn(t.trim())),wg=(o,t)=>{const n=o[t],r=o[t+1];if(!n||!r||!n.includes("|")||!Fo(r))return null;const a=fl(n),l=[];let s=t+2;for(;s<o.length&&o[s].includes("|")&&o[s].trim()!=="";){const d=fl(o[s]);l.push(`<tr>${d.map(h=>`<td>${h}</td>`).join("")}</tr>`),s+=1}const c=`<thead><tr>${a.map(d=>`<th>${d}</th>`).join("")}</tr></thead>`,i=l.length?`<tbody>${l.join("")}</tbody>`:"";return{html:`<table>${c}${i}</table>`,nextIndex:s}},xg=(o,t)=>{const n=bn(o[t]),r=n?"ol":"ul",a=[];let l=t;for(;l<o.length;){const s=o[l];if(s.trim()===""||!(n?bn(s):(No(s)||ml(s))&&!bn(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":""}> ${yn(i[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");a.push(`<li>${yn(d)}</li>`)}l+=1}return{html:`<${r}>${a.join("")}</${r}>`,nextIndex:l}},vg=(o,t)=>{const r=o[t].replace(/^```/,"").trim(),a=[];let l=t+1;for(;l<o.length&&!o[l].startsWith("```");)a.push(o[l]),l+=1;return{html:`<pre><code${r?` class="language-${Ot(r)}"`:""}>${Ot(a.join(`
|
|
6
|
-
`))}</code></pre>`,nextIndex:l<o.length?l+1:l}},_g=(o,t)=>{const n=[];let r=t;for(;r<o.length;){const a=o[r];if(a.trim()===""||a.startsWith("```")||/^#{1,6}\s+/.test(a)||/^---+$/.test(a.trim())||/^\*\*\*+$/.test(a.trim())||Mo(a)||bn(a)||No(a)||r+1<o.length&&a.includes("|")&&Fo(o[r+1]))break;n.push(a.trim()),r+=1}return{html:`<p>${yn(n.join(" "))}</p>`,nextIndex:r}},
|
|
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 z=!1,ne=!1;const le=e.reactive({}),ue=e.ref([]),ke=e.computed(()=>ue.value.map(u=>le[u]).filter(Boolean)),Ae=e.ref(null),De=e.computed(()=>Ae.value?.entries??[]),Te=e.computed(()=>{if(Ae.value)return{left:`${Ae.value.point.x+12}px`,top:`${Ae.value.point.y+12}px`}}),W=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const u=a?.tools;return Array.isArray(u)?u.map(g=>String(g)):typeof u=="string"?u.split(",").map(g=>g.trim()).filter(Boolean):[]}),x=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!W.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const g=new Set(W.value.map(k=>k.toLowerCase()));return{search:g.has("search"),import:g.has("import"),export:g.has("export"),point:g.has("point"),line:g.has("line"),polygon:g.has("polygon"),rectangle:g.has("rectangle"),ruler:g.has("ruler")}});function D(u){const g=typeof u=="string"?u.trim():"";if(!g)return"";if(/^https?:\/\//i.test(g))return g;const k=window?.location?.origin??"",B=g.replace(/^\/+/,"");return B?k?`${k}/${B}`:`/${B}`:k}function R(){const u=Array.isArray(U.basemaps)&&U.basemaps.length?U.basemaps:$.basemaps;if(Array.isArray(u)&&u.length){const k=u.map((B,F)=>{const G=String(B?.key??B?.id??B?.name??`b${F}`),ce=D(String(B?.url??""));if(!ce)return null;const pe=typeof B?.preview=="string"&&B.preview?D(B.preview):"";return[G,{...B,url:ce,preview:pe}]}).filter(B=>Array.isArray(B)&&B.length===2).reduce((B,[F,G])=>(B[F]=G,B),{});if(Object.keys(k).length)return k}return{voyager:{name:"Оглядова карта",url:"https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/voyager/ua/13/4790/2762.png"},orto10:{name:"Ортофото 1:10K",url:"https://data.gki.com.ua/api-user/rtile/orto10/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/orto10/ua/13/4790/2762.png"},osmb:{name:"Open Street Maps",url:"https://tile.openstreetmap.org.ua/styles/osm-bright/{z}/{x}/{y}.png",preview:"https://tile.openstreetmap.org.ua/styles/osm-bright/13/4790/2762.png"}}}const de=R(),_e=Object.keys(de),Oe=e.ref(_e.length?_e[0]:"");function Ie(){const u=Array.isArray(U.overlays)&&U.overlays.length?U.overlays:$.overlays;return!Array.isArray(u)||!u.length?{}:u.map((k,B)=>{const G=(typeof k?.name=="string"?k.name.trim():"")||`o${B}`,ce=D(String(k?.url??""));if(!ce)return null;const pe=typeof k?.preview=="string"&&k.preview?D(k.preview):"";return[G,{...k,name:G,url:ce,preview:pe}]}).filter(k=>Array.isArray(k)&&k.length===2).reduce((k,[B,F])=>(k[B]=F,k),{})}const Ue=Ie(),We=e.ref(Object.keys(Ue).filter(u=>!!Ue[u]?.visible)),ut=e.computed(()=>x.value.point||x.value.line||x.value.polygon||x.value.rectangle),Ke=e.computed(()=>ke.value.filter(u=>u.config?.overlay!==!1).map(u=>({id:u.id,label:String(u.config.title||u.config.name||u.id),visible:u.visible})));function ct(u){return`${Km}${u}`}function Pt(u){return`${Gm}${u}`}async function eo(){if(typeof window>"u")return null;const u=window;if(u[jn])return u[jn];const g=G=>{if(Array.from(document.styleSheets).some(Ee=>Ee?.href?.includes(G)))return;const pe=document.createElement("link");pe.rel="stylesheet",pe.href=G,document.head.appendChild(pe)},k=async()=>{const G=new Function("u","return import(u)"),ce=await G("https://esm.sh/maplibre-gl@3.6.2"),pe=ce?.default??ce;if(!pe)throw new Error("maplibre esm fallback failed");window.maplibregl=pe,window.mapboxgl=pe;const Ee=await G("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),Pe=Ee?.default??Ee;if(!Pe)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=Pe},F=(async()=>{g("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),g("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await k();const G=window.maplibregl,ce=window.MapboxDraw;if(!G)throw new Error("maplibregl not available after load");if(!ce)throw new Error("MapboxDraw not available after load");return Zp(G),{maplibregl:G,MapboxDraw:ce}})().catch(G=>{throw delete u[jn],G});return u[jn]=F,F}function Qt(u){return{version:8,glyphs:Ym,sources:{rasterSource:_o(u,void 0,{safe:!1})},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let $t=null,Rt=null,K=null,fe=null,nt=[],At=null,wt=null,Ge=null,en=!1,Gt=!1,H=!1,re=null;function me(){return{onSetup(){const u=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(u),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:u,startPoint:null,hasCoordinates:!1}},onMouseMove(u,g){if(!u.startPoint)return;const[k,B]=u.startPoint,F=g.lngLat.lng,G=g.lngLat.lat;u.rectangle.setCoordinates([[[k,B],[F,B],[F,G],[k,G],[k,B]]])},onClick(u,g){if(!u.startPoint){u.startPoint=[g.lngLat.lng,g.lngLat.lat],u.hasCoordinates=!0,u.rectangle.setCoordinates([[[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat]]]);return}const[k,B]=u.startPoint,F=g.lngLat.lng,G=g.lngLat.lat;return Math.abs(k-F)>0&&Math.abs(B-G)>0?(u.rectangle.setCoordinates([[[k,B],[F,B],[F,G],[k,G],[k,B]]]),this.map.fire("draw.create",{features:[u.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[u.rectangle.id]})):(this.deleteFeature([u.rectangle.id],{silent:!0}),u.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(u){this.deleteFeature([u.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(u,g,k){const B=g.properties.id===u.rectangle.id;B&&!u.hasCoordinates||(g.properties.active=B?"true":"false",k(g))}}}const Ne=[{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 ze(){const u=Oe.value;return!u||!de[u]?.url?"":de[u].url}function Je(u,g){return u?.id?String(u.id):u?.url?`${u.url}-${g}`:`layer-${g}`}function je(u){const g=String(u?.url??"").trim();if(!g)return"";if(/^https?:\/\//i.test(g))return g;const k=window.location?.origin??"",B=g.replace(/^\/+/,"");return`${k}/${B}`}function Qe(u){u&&Ae.value?.layerId!==u||(Ae.value=null)}function xt(u,g={}){if(u.popup===!1)return[];const k=Number(g?.point_count);if(Number.isFinite(k)&&k>1)return[{key:"Об'єктів у кластері",value:String(k)}];const B=je(u),F=_n(u,B,Z.value);return Array.isArray(u.popup)?u.popup.length?u.popup.map(G=>{const ce=G?.field||G?.name;if(!ce)return null;const pe=g[ce];if(pe==null||pe==="")return null;const Ee=F?.formatPopupValue?F.formatPopupValue(ce,pe):String(pe);return{key:G.label||ce,value:Ee}}).filter(Boolean):[]:Object.entries(g).slice(0,5).map(([G,ce])=>({key:G,value:ce==null?"—":String(ce)}))}function pt(u){if(!Array.isArray(u))return[];const g=B=>Array.isArray(B)&&B.length>=2&&Number.isFinite(Number(B[0]))&&Number.isFinite(Number(B[1])),k=B=>{if(!B.length)return B;const F=B[0],G=B[B.length-1];return!G||F[0]!==G[0]||F[1]!==G[1]?[...B,F]:B};if(u.length&&g(u[0])){const B=u.map(F=>[Number(F[0]),Number(F[1])]).filter(g);return B.length?[k(B)]:[]}return u.length&&Array.isArray(u[0])&&g(u[0][0])?u.map(F=>Array.isArray(F)?F.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(F=>F.length).map(k):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&g(u[0][0][0])?u.flatMap(F=>Array.isArray(F)?F:[]).map(F=>Array.isArray(F)?F.map(G=>[Number(G[0]),Number(G[1])]):[]).filter(F=>F.length).map(k):[]}function vt(u){const g=u.style??{},k=g.color??"#3b82f6";if(!g.colorAttr||!g.colorSet)return k;const B=Object.keys(g.colorSet);if(!B.length)return k;const F=["match",["to-string",["get",g.colorAttr]]];return B.forEach(G=>{F.push(String(G),g.colorSet?.[G]??k)}),F.push(k),F}function mt(u){if(!K)return;const g=K.getStyle()?.layers;Array.isArray(g)&&[...g].reverse().forEach(k=>{k.source===u&&K.getLayer(k.id)&&K.removeLayer(k.id)})}function zt(u){if(!K)return;u.handlers.forEach(B=>{try{K.off(B.type,B.layerId,B.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(B=>{K.getLayer(B)&&K.removeLayer(B)}),mt(u.sourceId),K.getSource(u.sourceId)&&K.removeSource(u.sourceId);const g=`vs-ov-bounds-src-${u.id}`,k=`vs-ov-bounds-line-${u.id}`;K.getLayer(k)&&K.removeLayer(k),K.getSource(g)&&K.removeSource(g),Qe(u.id)}function U0(u,g){if(!K)return[];const k=`vs-ov-bounds-src-${g}`,B=`vs-ov-bounds-line-${g}`,F=u.bounds??Y.value??he.value,G=pt(F);if(!G.length)return[];const ce={type:"FeatureCollection",features:G.map(pe=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:pe}}))};return K.getLayer(B)&&K.removeLayer(B),K.getSource(k)&&K.removeSource(k),K.addSource(k,{type:"geojson",data:ce}),K.addLayer({id:B,type:"line",source:k,paint:{"line-color":u.style?.stroke??u.style?.color??"#2563eb","line-width":u.style?.width??2,"line-opacity":u.style?.opacity??.8,"line-dasharray":[2,2]}}),[B]}function Io(){return H||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"}function H0(u,g){if(!K)return;u.handlers.forEach(B=>{try{K.off(B.type,B.layerId,B.handler)}catch{}});const k=[];g.forEach(B=>{const F=ce=>{if(Io())return;if(!ce?.features?.length){Qe(u.id);return}const pe=ce.features[0]?.properties??{},Ee=xt(u.config,pe);if(!Ee.length){Qe(u.id);return}Ae.value={layerId:u.id,entries:Ee,point:{x:ce.point.x,y:ce.point.y}}},G=()=>Qe(u.id);K.on("mousemove",B,F),K.on("mouseleave",B,G),k.push({layerId:B,type:"mousemove",handler:F},{layerId:B,type:"mouseleave",handler:G})}),u.handlers=k}function Oo(u,g){if(!K)return;u.layerIds=g,u.boundsIds=U0(u.config,u.id),H0(u,g);const k=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(B=>{K.getLayer(B)&&K.setLayoutProperty(B,"visibility",k)}),_t()}function tn(u){if(!K)return;zt(u),u.renderToken=(u.renderToken??0)+1;const g=u.renderToken,k=u.config,B=je(k);if(!B)return;const F=[],G=/\.v(?:m)?t(?:\?|$|\/)/i.test(B)||/\.pbf(?:\?|$)/i.test(B)||/\/vtile(?:\/|\?|$)/i.test(B)||String(k?.service??"").toLowerCase()==="vector"||String(k?.format??"").toLowerCase()==="mvt",ce=_n(k,B,Z.value);if(G&&ce){const pe=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;K.addSource(u.sourceId,{type:"vector",tiles:[B],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22}),(async()=>{try{if(!K||!K.getSource(u.sourceId)||u.renderToken!==g)return;const Ee=await ce.render({map:K,overlayId:u.id,sourceId:u.sourceId,sourceLayer:pe,url:B,config:k});if(!K||!K.getSource(u.sourceId)||u.renderToken!==g){Ee.forEach(Pe=>{K.getLayer(Pe)&&K.removeLayer(Pe)});return}Oo(u,Ee)}catch(Ee){u.renderToken===g&&console.error(`Failed to render map layer preset "${ce.id}"`,Ee)}})();return}if(G){const pe=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;K.addSource(u.sourceId,{type:"vector",tiles:[B],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22});const Ee=Array.isArray(k.style?.types)?k.style.types.map(Ft=>String(Ft).toLowerCase()):[String(k.style?.type??"polygon").toLowerCase()],Pe=vt(k),Mt=k.style?.opacity??.5,Go=Ft=>{if(Ft==="point"){const vn=`vs-ov-point-${u.id}`;K.addLayer({id:vn,type:"circle",source:u.sourceId,"source-layer":pe,paint:{"circle-color":Pe,"circle-radius":k.style?.radius??5,"circle-opacity":Mt}}),F.push(vn);return}if(Ft==="polyline"||Ft==="line"){const vn=`vs-ov-line-${u.id}`;K.addLayer({id:vn,type:"line",source:u.sourceId,"source-layer":pe,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":Pe,"line-width":k.style?.width??2,"line-opacity":Mt}}),F.push(vn);return}const Hl=`vs-ov-fill-${u.id}`,ql=`vs-ov-border-${u.id}`;K.addLayer({id:Hl,type:"fill",source:u.sourceId,"source-layer":pe,paint:{"fill-color":Pe,"fill-opacity":Mt}}),K.addLayer({id:ql,type:"line",source:u.sourceId,"source-layer":pe,paint:{"line-color":k.style?.stroke??k.style?.color??"#2563eb","line-width":k.style?.width??1,"line-opacity":Mt}}),F.push(Hl,ql)};[...new Set(Ee)].forEach(Ft=>Go(Ft)),Oo(u,F);return}else{K.addSource(u.sourceId,_o(B,k,{safe:!1}));const pe=`vs-ov-raster-${u.id}`;K.addLayer({id:pe,type:"raster",source:u.sourceId,paint:{"raster-opacity":k.style?.opacity??1}}),F.push(pe)}Oo(u,F)}function wn(){if(!K)return;const g={type:"FeatureCollection",features:pt(Y.value??he.value).map(k=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:k}}))};K.getSource(Un)?K.getSource(Un).setData(g):K.addSource(Un,{type:"geojson",data:g}),K.getLayer(Zt)||K.addLayer({id:Zt,type:"line",source:Un,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function q0(u){if(!K||i.value)return;const g=le[u];if(!g)return;g.visible=!g.visible;const k=g.visible?"visible":"none";[...g.layerIds,...g.boundsIds].forEach(B=>{K.getLayer(B)&&K.setLayoutProperty(B,"visibility",k)}),_t(),g.visible||Qe(u)}function $l(u){if(!K)return;const g=Ue[u];if(!g?.url)return;const k=ct(u),B=Pt(u);K.getLayer(B)&&K.removeLayer(B),K.getSource(k)&&K.removeSource(k),K.addSource(k,_o(g.url,g,{safe:!0}));const F=g?.opacity??g?.style?.opacity,G=typeof F=="number"?F:Wm;K.addLayer({id:B,type:"raster",source:k,paint:{"raster-opacity":G}})}function W0(u){if(!K)return;const g=ct(u),k=Pt(u);K.getLayer(k)&&K.removeLayer(k),K.getSource(g)&&K.removeSource(g)}function Al(){K&&We.value.forEach(u=>$l(u))}function K0(u){if(!K||i.value||!Ue[u])return;We.value.includes(u)?(We.value=We.value.filter(k=>k!==u),W0(u)):(We.value=[...We.value,u],$l(u)),_t()}function _t(){if(!K)return;const u=We.value.map(Ee=>Pt(Ee)).filter(Ee=>K.getLayer(Ee)),g=[],k=[],B=[],F=[];ue.value.forEach(Ee=>{const Pe=le[Ee];if(!Pe)return;const Mt=String(Pe.config?.url??""),Go=/\.v(?:m)?t(?:\?|$|\/)/i.test(Mt)||/\/vtile(?:\/|\?|$)/i.test(Mt)||Yo(Pe.config,Mt,Z.value),Ft=/\.png(?:\?|$)/i.test(Mt);Go?B.push(...Pe.layerIds):Ft?g.push(...Pe.layerIds):k.push(...Pe.layerIds),F.push(...Pe.boundsIds)});const G=[...u,...g,...k,...B,...F];G.forEach(Ee=>{K.getLayer(Ee)&&K.moveLayer(Ee)}),K.getLayer(Zt)&&K.moveLayer(Zt);const pe=(K.getStyle?.()?.layers??[]).map(Ee=>String(Ee?.id??"")).filter(Ee=>Ee.startsWith("gl-draw-"));if(pe.forEach(Ee=>{K.getLayer(Ee)&&K.moveLayer(Ee)}),K.getLayer(Tr)){const Ee=G.find(Pe=>K.getLayer(Pe))??(K.getLayer(Zt)?Zt:null)??pe.find(Pe=>K.getLayer(Pe));Ee&&K.moveLayer(Tr,Ee)}}function G0(u){if(!de[u]||(Oe.value=u,!K))return;const g=ze();if(!g)return;const k=K.getSource("rasterSource");if(k&&typeof k.setTiles=="function"){k.setTiles([g]),_t();return}const B=K.getCenter?.(),F=K.getZoom?.(),G=fe?.getAll?.();K.setStyle(Qt(g)),K.once("style.load",()=>{if(K&&(B&&Number.isFinite(F)&&K.jumpTo({center:[B.lng,B.lat],zoom:F}),wn(),Al(),ue.value.forEach(ce=>{const pe=le[ce];pe&&tn(pe)}),_t(),G?.features?.length&&fe))try{G.features.forEach(ce=>fe.add(ce)),y.value=G.features.length}catch{y.value=0}})}function Po(u){return{type:"Feature",properties:{},geometry:u}}function Ct(u){if(!u)return null;try{return JSON.parse(JSON.stringify(u))}catch{return null}}function Ro(u){if(!u)return null;const g=Ct(u.geometry);return g?{...u.id!==void 0?{id:u.id}:{},type:"Feature",properties:{...u.properties??{}},geometry:g}:null}function to(u){if(!u)return[];const g=(F,G)=>{if(!F?.type)return[];const ce={...G??{}};return F.type==="MultiPoint"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Po({type:"Point",coordinates:pe})).map(pe=>({...pe,properties:ce})):F.type==="MultiLineString"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Po({type:"LineString",coordinates:pe})).map(pe=>({...pe,properties:ce})):F.type==="MultiPolygon"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Po({type:"Polygon",coordinates:pe})).map(pe=>({...pe,properties:ce})):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?F.geometries.flatMap(pe=>g(pe,ce)):[{type:"Feature",properties:ce,geometry:Ct(F)}]},k=F=>{if(!F)return null;if(F.type==="Feature"){const G=Ro(F);return G?g(G.geometry,G.properties):null}return F.geom?.type&&Array.isArray(F.geom.coordinates)?g({type:F.geom.type,coordinates:F.geom.coordinates},F.properties??{}):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?g(F,F.properties??{}):typeof F.type=="string"&&Array.isArray(F.coordinates)?g(Ct(F),F.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(k).filter(Boolean);if(Array.isArray(u))return u.flatMap(F=>F?.type==="FeatureCollection"?to(F):[k(F)]).flat().filter(Boolean);const B=k(u);return B?Array.isArray(B)?B:[B]:[]}function Nl(u){if(!u.length)return null;if(!c.value)return Ct(u[0]?.geometry??null);const g=u.map(G=>Ct(G?.geometry)).filter(Boolean);return g.every(G=>G?.type==="Point")?{type:"MultiPoint",coordinates:g.map(G=>G.coordinates)}:g.every(G=>G?.type==="LineString")?{type:"MultiLineString",coordinates:g.map(G=>G.coordinates)}:g.every(G=>G?.type==="Polygon")?{type:"MultiPolygon",coordinates:g.map(G=>G.coordinates)}:{type:"GeometryCollection",geometries:g}}function Ml(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function Y0(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length<2||g.length<2)return!1;const k=1e-12;return Math.abs(Number(u[0])-Number(g[0]))<k&&Math.abs(Number(u[1])-Number(g[1]))<k}function Fl(u,g){if(!Array.isArray(u)||u.length<4)return null;const B=Y0(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(g)||g<0||g>=B.length||B.length<=3||(B.splice(g,1),B.length<3)?null:[...B,[...B[0]]]}function Dl(u,g){if(!Array.isArray(u)||u.length<2||!Number.isInteger(g)||g<0||g>=u.length||u.length<=2)return null;const k=u.slice();return k.splice(g,1),k.length<2?null:k}function X0(u,g){const k=Ct(u);if(!k||!Array.isArray(g))return null;if(k.type==="LineString"){const[B]=g,F=Dl(k.coordinates,B);return F?(k.coordinates=F,k):null}if(k.type==="MultiLineString"){const[B,F]=g,G=k.coordinates?.[B],ce=Dl(G,F);return ce?(k.coordinates[B]=ce,k):null}if(k.type==="Polygon"){const[B,F]=g,G=k.coordinates?.[B],ce=Fl(G,F);return ce?(k.coordinates[B]=ce,k):null}if(k.type==="MultiPolygon"){const[B,F,G]=g,ce=k.coordinates?.[B]?.[F],pe=Fl(ce,G);return pe?(k.coordinates[B][F]=pe,k):null}return null}function Z0(u){return u?u.split(".").map(g=>Number(g)).filter(g=>Number.isInteger(g)&&g>=0):[]}function Tl(u){return!fe||!u?null:typeof fe.get=="function"?fe.get(u)??null:fe.getAll?.()?.features?.find(k=>String(k?.id??"")===u)??null}function Ll(u){const g=u?.properties?.id??u?.id;return g==null||g===""?null:String(g)}function J0(u){if(!K||!u)return null;const g=[[u.x-8,u.y-8],[u.x+8,u.y+8]],B=K.queryRenderedFeatures(g).find(F=>{const G=String(F?.properties?.meta??"");return G&&G!=="feature"?!1:!!Ll(F)});return Ll(B)}function Q0(u,g){if(!fe||!u||!g.length)return;const k=Tl(u);if(!k?.geometry)return;const B=X0(k.geometry,g);if(!B)return;const F={...k,id:k.id??u,geometry:B};ne=!0,z=!0;try{fe.delete(u),fe.add(F)}finally{z=!1,ne=!1}jt(),Nt()}function eb(u){if(!K||!fe||i.value||v.isRulerActive.value||p.value!=="edit")return;const g=u?.point;if(!g)return;const k=[[g.x-8,g.y-8],[g.x+8,g.y+8]],F=K.queryRenderedFeatures(k).find(ce=>ce?.properties?.meta==="vertex"&&ce?.properties?.parent&&ce?.properties?.coord_path);if(!F)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const G=Z0(String(F.properties.coord_path));G.length&&Q0(String(F.properties.parent),G)}function tb(u){const g=Pl(u);if(!g)return null;const[[k,B],[F,G]]=g;return{lat:(B+G)/2,lng:(k+F)/2}}function Il(u){if(!Array.isArray(u)||u.length<3)return 0;const g=(B,F)=>{const G=B*2003750834e-2/180,ce=Math.log(Math.tan((90+F)*Math.PI/360))/(Math.PI/180);return[G,ce*2003750834e-2/180]};let k=0;for(let B=0;B<u.length-1;B+=1){const[F,G]=g(Number(u[B][0]),Number(u[B][1])),[ce,pe]=g(Number(u[B+1][0]),Number(u[B+1][1]));k+=F*pe-ce*G}return Math.abs(k/2)/1e6}function nb(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const g=u.coordinates?.[0];return Array.isArray(g)?Il(g):null}return u.type==="MultiPolygon"?u.coordinates.reduce((g,k)=>{const B=k?.[0];return Array.isArray(B)?g+Il(B):g},0):null}function zo(u){if(!u){m.value=null;return}const g=tb(u);if(!g){m.value=null;return}m.value={type:String(u.type??"Feature"),center:g,areaKm2:nb(u)}}function jo(u){if(!u){const B=nt[nt.length-1],F=Ct(B?.geometry??null);At=F,zo(F);return}const g=nt.find(B=>String(B?.id??"")===String(u))??null,k=Ct(g?.geometry??null);At=k,zo(k)}function Uo(u){f.value=(u??[]).map((g,k)=>{const B=String(g?.id??`feature-${k+1}`),F=Ho(String(g?.geometry?.type??"Feature"));return{id:B,label:`${F} ${k+1}`}})}function Ho(u){switch(String(u)){case"Point":return"Точка";case"MultiPoint":return"Мультиточка";case"LineString":return"Лінія";case"MultiLineString":return"Мультилінія";case"Polygon":return"Полігон";case"MultiPolygon":return"Мультиполігон";case"GeometryCollection":return"Колекція геометрій";default:return String(u||"Невідомо")}}function Ol(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length!==2||g.length!==2)return!1;const k=1e-9;return Math.abs(Number(u[0])-Number(g[0]))<k&&Math.abs(Number(u[1])-Number(g[1]))<k}function Pl(u){if(!u)return null;let g=1/0,k=1/0,B=-1/0,F=-1/0;const G=ce=>{if(Array.isArray(ce)){if(ce.length>=2&&Number.isFinite(ce[0])&&Number.isFinite(ce[1])){const pe=Number(ce[0]),Ee=Number(ce[1]);g=Math.min(g,pe),k=Math.min(k,Ee),B=Math.max(B,pe),F=Math.max(F,Ee);return}ce.forEach(G)}};return G(u.coordinates),!Number.isFinite(g)||!Number.isFinite(k)?null:[[g,k],[B,F]]}function Rl(u){if(!K||!u)return;const g=Pl(u);if(!g)return;const[[k,B],[F,G]]=g;if(k===F&&B===G){K.easeTo({center:[k,B],zoom:Math.max(I.value,14)}),Q();return}K.fitBounds(g,{padding:30,duration:250,maxZoom:18}),Q()}function qo(){if(!fe){y.value=0;return}const u=fe.getAll();y.value=u?.features?.length??0}function xn(){if(!fe)return null;const g=fe.getAll?.()?.features??[],k=G=>!!G&&g.some(ce=>String(ce?.id??"")===String(G??"")),B=fe.getSelectedIds?.();if(Array.isArray(B)&&B.length>0){const G=B[0];return G!=null?String(G):null}if(k(Ge))return String(Ge);if(!g.length)return null;const F=c.value?g[g.length-1]:g[0];return F?.id!==void 0&&F?.id!==null?String(F.id):null}function jt(){if(!fe)return;const u=fe.getAll();if(y.value=u?.features?.length??0,!u?.features?.length){nt=[],f.value=[],At=null,Ge=null,m.value=null,z||(wt="__null__",r("update:modelValue",null));return}const g=(u.features??[]).map(Ro).filter(Boolean);if(nt=g,Uo(g),Ge=xn(),jo(Ge),!z){const k=Nl(g);wt=Ml(k),r("update:modelValue",k)}}function no(){if(!fe)return;(fe.getAll()?.features||[]).forEach(g=>fe.delete(g.id)),f.value=[],qo()}function oo(u){if(!fe)return;const g=to(u),k=c.value?g:g.slice(0,1);z=!0,no(),k.forEach(G=>{try{fe.add(G)}catch{}}),z=!1,nt=(fe.getAll?.()?.features??k).map(Ro).filter(Boolean),Uo(nt),Ge=null;const F=Ct(nt[nt.length-1]?.geometry??null);At=Ct(F),qo(),zo(F),F&&(Rl(F),i.value||Nt())}function ob(){fe&&(z=!0,no(),nt.forEach(u=>{try{fe.add(u)}catch{}}),z=!1,Uo(nt),qo(),jo(Ge))}function nn(){if(fe){try{fe.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""}}function ro(u){if(i.value||!fe)return;v.isRulerActive.value&&v.closeRuler(),H=!0,nn(),p.value=u;const g=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";c.value||(z=!0,no(),z=!1);try{fe.changeMode(g)}catch{p.value=""}finally{requestAnimationFrame(()=>{H=!1})}}function Nt(u){if(i.value||!fe||!fe.getAll()?.features?.length)return;const k=u||xn();if(k)try{fe.changeMode("direct_select",{featureId:k}),Ge=k,jo(Ge),p.value="edit"}catch{p.value=""}}function rb(u){i.value||!fe||!u||Nt(u)}function lb(){if(!(i.value||!fe)){if(c.value){const u=xn();if(u)try{en=!0,fe.delete(u),en=!1,jt();const g=xn();g?Nt(g):nn();return}catch{en=!1}}nn(),no(),nt=[],f.value=[],Ge=null,wt="__null__",m.value=null,r("update:modelValue",null)}}function ab(){i.value||!At||Rl(At)}function sb(u){if(!K||!$t)return;const g=[u[1],u[0]];re||(re=new $t.Marker({color:"#2563eb"})),re.setLngLat(g).addTo(K),K.easeTo({center:g,zoom:13,duration:250})}function ib(){i.value||(we.value=!we.value)}function zl(u){if(!we.value)return;const g=ee.value;g&&!g.contains(u.target)&&(we.value=!1)}function cb(){db()}function db(){i.value||(we.value=!1,ie.value={srid:"",encoding:"UTF-8",file:""},$e.value=!0)}function ub(){$e.value=!1,Me.value=!1,Fe.value=!1}function pb(u){return u?typeof u=="string"?u:typeof u=="object"&&u&&"file_path"in u?String(u.file_path??""):"":""}function mb(u){const B=((Array.isArray(u)?u[0]:u)?.features??[]).map(F=>Array.isArray(F)?F[0]:F).filter(Boolean).map(F=>F?.type==="Feature"?F:{type:"Feature",properties:{},geometry:F});return B.length?{type:"FeatureCollection",features:B}:null}async function fb(){if(i.value||!fe||Me.value)return;const u=pb(ie.value.file);if(!u){ge.notify({type:"warning",title:"Імпорт геометрії",message:"Оберіть файл для імпорту."});return}Me.value=!0;try{const g=await fetch("/api/gis-convert",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({srid:ie.value.srid,encoding:ie.value.encoding||"UTF-8",filepath:u,limit:!0})}),k=await g.json().catch(()=>null);if(!g.ok)throw new Error(k?.message||k?.error||`Код помилки: ${g.status}`);const B=mb(k);if(!B){ge.notify({type:"warning",title:"Імпорт геометрії",message:"Файл не містить коректні геодані."});return}oo(B),jt(),$e.value=!1,ge.notify({type:"success",title:"Успіх",message:"Геометрію успішно імпортовано."})}catch(g){ge.notify({type:"error",title:"Помилка",message:g?.message||"Помилка імпорту файла геометрії"})}finally{Me.value=!1}}function hb(){i.value||(se.value=[],we.value=!1,be.value=!0)}function gb(){be.value=!1,se.value=[]}function yb(){if(i.value||!fe)return;const u=Mu(Le.value.coordinates??"",Le.value.format||"decimal",Le.value.order||"lat-lon");if(!u.ok){se.value=u.errors,bb(u.errors);return}se.value=[],oo({type:"Polygon",coordinates:[u.ring]}),jt(),be.value=!1,u.wasClosedAutomatically&&ge.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function bb(u){if(!u.length)return;const g=5;u.slice(0,g).forEach(k=>{const B=k.line>0?`Рядок ${k.line}`:"Загальна помилка";ge.notify({type:"warning",title:"Імпорт координат",message:`${B} — ${k.message}`})}),u.length>g&&ge.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-g}`})}function kb(){if(i.value||!fe)return;const u=fe.getAll(),g=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),k=URL.createObjectURL(g),B=document.createElement("a");B.href=k,B.download="data.geojson",B.click(),URL.revokeObjectURL(k)}e.onMounted(async()=>{if(window.addEventListener("click",zl,!0),!h.value)return;const u=await eo();$t=u.maplibregl,Rt=u.MapboxDraw;const g=ze();g&&(K=new $t.Map({container:h.value,style:Qt(g),center:[q.value[0],q.value[1]],zoom:I.value,attributionControl:!1}),w.value=K,K.addControl(new $t.NavigationControl({showCompass:!0}),"bottom-right"),K.on("error",k=>{const B=k?.error?.message??k?.message??"";em(B)}),K.on("load",()=>{if(!(!Rt||!K)){if(fe=new Rt({displayControlsDefault:!1,modes:{...Rt.modes,draw_rectangle:me()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Ne}),K.addControl(fe),K.on("click",k=>{if(v.isRulerActive.value){const F=k?.lngLat;if(!F)return;b.value?.addPoint?.({lat:F.lat,lng:F.lng});return}if(!fe||i.value||p.value!=="edit")return;const B=J0(k?.point);!B||B===Ge||requestAnimationFrame(()=>{!fe||i.value||Nt(B)})}),K.on("draw.create",()=>{if(fe&&!v.isRulerActive.value){if(!c.value){const k=fe.getAll();if(k.features.length>1){const B=k.features[k.features.length-1];z=!0,k.features.slice(0,-1).forEach(F=>fe.delete(F.id)),z=!1,B&&(z=!0,fe.add(B),z=!1)}}jt(),Nt()}}),K.on("draw.update",k=>{if(Gt||v.isRulerActive.value||Io())return;const B=Array.isArray(k?.features)?k.features:[],F=k?.action==="move"&&B.length>0&&B.every(G=>G?.geometry?.type==="Point");if(k?.action==="move"){if(F){jt();return}if(Gt=!0,ob(),Gt=!1,p.value==="edit"){const G=xn(),ce=G?Tl(G):fe?.getAll?.()?.features?.[0];if(ce?.id)try{fe.changeMode("direct_select",{featureId:ce.id}),Ge=String(ce.id)}catch{p.value=""}}return}jt()}),K.on("draw.delete",()=>{ne||en||v.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"||(jt(),fe?.getAll?.()?.features?.length||(Ge=null),p.value="",nn())}),K.on("draw.selectionchange",k=>{if(!fe||Gt||v.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle")return;const B=k?.features?.[0]?.id!==void 0&&k?.features?.[0]?.id!==null?String(k.features[0].id):null;if(!i.value&&B){if(p.value==="edit"&&Ge===B)return;requestAnimationFrame(()=>{!fe||i.value||Nt(B)});return}const F=fe.getSelectedIds?.(),G=Array.isArray(F)&&F.length>0?String(F[0]):null;if(!i.value&&G){if(p.value==="edit"&&Ge===G)return;requestAnimationFrame(()=>{!fe||i.value||Nt(G)});return}try{fe.changeMode("simple_select",{featureIds:[]})}catch{}}),ae.value!==void 0){const k=ae.value;ae.value=void 0,requestAnimationFrame(()=>{fe&&oo(k)})}wn(),Al(),ue.value.forEach(k=>{const B=le[k];B&&tn(B)}),_t(),N()}}),K.on("contextmenu",eb),K.on("moveend",Q),K.on("zoomend",()=>{K&&(I.value=K.getZoom())}))}),e.onUnmounted(()=>{typeof document<"u"&&(document.body.style.overflow=""),typeof window<"u"&&window.removeEventListener("keydown",Ko),te&&(clearTimeout(te),te=null),v.isRulerActive.value&&v.closeRuler(),window.removeEventListener("click",zl,!0),Object.values(le).forEach(u=>{K&&zt(u)}),Qe(),re?.remove&&re.remove(),re=null,K?.remove&&K.remove(),K=null,fe=null,w.value=null}),e.watch(()=>n.modelValue,u=>{if(!fe){ae.value=u;return}if(Io())return;const g=Nl((c.value?to(u):to(u).slice(0,1))||[]),k=Ml(g);if(wt&&k===wt){wt=null;return}wt=null,oo(u)},{deep:!0}),e.watch(()=>P.value,u=>{const g=Array.isArray(u)?u:[],k=[],B=new Set;g.forEach((F,G)=>{if(!F)return;const ce=Je(F,G);k.push(ce),B.add(ce);const pe={...F,id:ce},Ee=le[ce],Pe=Ee?.visible??!!pe.visible;Ee&&K&&zt(Ee),le[ce]={id:ce,config:pe,visible:Pe,sourceId:`vs-ov-src-${ce}`,layerIds:[],boundsIds:[],handlers:[],renderToken:Ee?.renderToken??0}}),Object.keys(le).forEach(F=>{if(B.has(F))return;const G=le[F];G&&K&&zt(G),delete le[F]}),ue.value=k,K&&(ue.value.forEach(F=>{const G=le[F];G&&tn(G)}),_t())},{immediate:!0,deep:!0}),e.watch(()=>Y.value,()=>{K&&(wn(),ue.value.forEach(u=>{const g=le[u];g&&tn(g)}),_t())},{deep:!0}),e.watch(()=>A.value,async u=>{if(he.value=[],!u){K&&(wn(),ue.value.forEach(g=>{const k=le[g];k&&tn(k)}),_t());return}try{const g=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!g?.ok)return;const B=(await g.json())?.geometry?.coordinates;Array.isArray(B)&&B.length&&(he.value=B)}catch(g){console.error("Failed to fetch KATOTTG bounds",g)}finally{if(!K)return;wn(),ue.value.forEach(g=>{const k=le[g];k&&tn(k)}),_t()}},{immediate:!0}),e.watch(()=>j.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const g=[Number(u[0]),Number(u[1])];if(Ol(q.value,g)||(q.value=[...g],!K))return;const k=K.getCenter?.();k&&Ol([k.lng,k.lat],q.value)||K.easeTo({center:[q.value[0],q.value[1]]})},{deep:!0}),e.watch(()=>oe.value,u=>{typeof u=="number"&&(I.value=u,K&&K.setZoom(u))}),e.watch(()=>m.value?.center,u=>{u&&M(u.lng,u.lat,K?.getZoom?.())},{deep:!0}),e.watch(i,u=>{u&&nn()}),e.watch(y,u=>{if(u>0){i.value||Nt();return}H||nn()});const jl=e.computed(()=>f.value.length>0||!!m.value),Wo=e.computed(()=>{const u=f.value,g=u.length>1;return u.length?u.map(k=>({id:k.id,label:g?k.label:m.value?.type?Ho(m.value.type):k.label,interactive:g})):m.value?.type?[{id:"__feature",label:Ho(m.value.type),interactive:!1}]:[]});function Ul(){setTimeout(()=>{K?.resize&&K.resize()},50)}function Ko(u){u.key==="Escape"&&d.value&&(d.value=!1)}return e.watch(d,u=>{typeof document<"u"&&(document.body.style.overflow=u?"hidden":""),typeof window<"u"&&(u?window.addEventListener("keydown",Ko):window.removeEventListener("keydown",Ko)),Ul()}),e.watch(jl,Ul),(u,g)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!d.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:d.value}])},[e.createElementVNode("div",tm,[e.createElementVNode("div",{ref_key:"mapContainer",ref:h,class:"vs-map-canvas"},null,512),x.value.search||x.value.import||x.value.export?(e.openBlock(),e.createElementBlock("div",nm,[x.value.search?(e.openBlock(),e.createBlock(Ju,{key:0,onGoToCoordinates:sb})):e.createCommentVNode("",!0),x.value.import||x.value.export?(e.openBlock(),e.createElementBlock("div",om,[e.createElementVNode("div",rm,[x.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:ee,class:"relative"},[e.createElementVNode("button",{type:"button",class:"vs-map-action-btn",onClick:ib,disabled:i.value},[g[10]||(g[10]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":we.value}])},null,8,["class"])],8,lm),we.value?(e.openBlock(),e.createElementBlock("div",am,[x.value.import?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:cb}," З файлу ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:hb}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),x.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:kb,disabled:i.value||y.value===0}," Експорт ",8,sm)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(ge.VsModal),{visible:$e.value,"onUpdate:visible":g[1]||(g[1]=k=>$e.value=k),title:"Імпорт геометрії",size:"lg",teleport:e.unref(s)},{default:e.withCtx(()=>[Fe.value||Me.value?(e.openBlock(),e.createElementBlock("div",im,[e.createVNode(e.unref(X.LoaderCircle),{class:"h-4 w-4 shrink-0 animate-spin"}),e.createElementVNode("span",null,e.toDisplayString(Re.value),1)])):e.createCommentVNode("",!0),e.createVNode(rt,{schema:Se.value,values:ie.value,"onUpdate:values":g[0]||(g[0]=k=>ie.value=k)},null,8,["schema","values"]),e.createElementVNode("div",cm,[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:ub,disabled:Fe.value||Me.value}," Скасувати ",8,dm),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 inline-flex items-center gap-2",onClick:fb,disabled:i.value||Fe.value||Me.value||!ie.value.file},[Me.value?(e.openBlock(),e.createBlock(e.unref(X.LoaderCircle),{key:0,class:"h-4 w-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(Me.value?"Обробка...":"Додати"),1)],8,um)])]),_:1},8,["visible","teleport"]),e.createVNode(e.unref(ge.VsModal),{visible:be.value,"onUpdate:visible":g[3]||(g[3]=k=>be.value=k),title:"Імпорт координат полігону",size:"lg",teleport:e.unref(s)},{default:e.withCtx(()=>[e.createVNode(rt,{schema:qe,values:Le.value,"onUpdate:values":g[2]||(g[2]=k=>Le.value=k)},null,8,["values"]),e.createElementVNode("div",pm,[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:gb}," Скасувати "),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:yb,disabled:i.value}," Побудувати ",8,mm)])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",fm,[e.createElementVNode("div",hm,[ut.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[x.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="marker"}]),title:"Точка",onClick:g[4]||(g[4]=k=>ro("marker")),disabled:i.value},[e.createVNode(e.unref(X.MapPin),{class:"vs-btn-icon"})],10,gm)):e.createCommentVNode("",!0),x.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polyline"}]),title:"Лінія",onClick:g[5]||(g[5]=k=>ro("polyline")),disabled:i.value},[e.createVNode(Qd,{class:"vs-btn-icon"})],10,ym)):e.createCommentVNode("",!0),x.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polygon"}]),title:"Полігон",onClick:g[6]||(g[6]=k=>ro("polygon")),disabled:i.value},[e.createVNode(ou,{class:"vs-btn-icon"})],10,bm)):e.createCommentVNode("",!0),x.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="rectangle"}]),title:"Прямокутник",onClick:g[7]||(g[7]=k=>ro("rectangle")),disabled:i.value},[e.createVNode(su,{class:"vs-btn-icon"})],10,km)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),ut.value?(e.openBlock(),e.createElementBlock("div",wm)):e.createCommentVNode("",!0),x.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(v).isRulerActive.value}]),title:"Лінійка",onClick:C},[e.createVNode(e.unref(X.Ruler),{class:"vs-btn-icon"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn",onClick:g[8]||(g[8]=k=>d.value=!d.value),title:d.value?"Згорнути":"На весь екран"},[d.value?(e.openBlock(),e.createBlock(e.unref(X.Minimize),{key:0,class:"vs-btn-icon"})):(e.openBlock(),e.createBlock(e.unref(X.Maximize),{key:1,class:"vs-btn-icon"}))],8,xm)])]),x.value.ruler&&e.unref(v).isRulerActive.value?(e.openBlock(),e.createBlock(qp,{key:1,ref_key:"rulerPanelRefEl",ref:b,onClose:g[9]||(g[9]=k=>e.unref(v).closeRuler()),onTabChange:e.unref(v).onRulerTabChange,onPointsChange:e.unref(v).onRulerPointsChange,onShapeClosedChange:e.unref(v).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),x.value.ruler&&e.unref(v).isRulerActive.value&&e.unref(v).hasRulerPoints.value?(e.openBlock(),e.createBlock(Wp,{key:2,map:w.value,points:e.unref(v).rulerPoints.value,"is-shape-closed":e.unref(v).rulerShapeClosed.value,"label-mode":e.unref(v).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),De.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(Te.value)},[e.createElementVNode("div",vm,[e.createElementVNode("dl",_m,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(De.value,k=>(e.openBlock(),e.createElementBlock("div",{key:`${k.key}-${k.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Cm,e.toDisplayString(k.key),1),e.createElementVNode("dd",Em,e.toDisplayString(k.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",Bm,[e.createVNode(Au,{compact:"",basemaps:e.unref(de),"active-base-key":Oe.value,"tile-overlays":e.unref(Ue),"active-tile-overlay-keys":We.value,"vector-overlays":Ke.value,"preview-tile":J.value,disabled:i.value,onOnLayerChange:G0,onOnOverlayToggle:K0,onOnVectorOverlayToggle:q0},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),jl.value?(e.openBlock(),e.createElementBlock("div",Vm,[e.createElementVNode("div",Sm,[e.createElementVNode("div",$m,[g[11]||(g[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",Am,[Wo.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Wo.value,(k,B)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k.id},[k.interactive?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(["vs-map-status__chip",{"vs-map-status__chip--active":k.id===e.unref(Ge)}]),onClick:F=>rb(k.id),disabled:i.value},e.toDisplayString(k.label),11,Nm)):(e.openBlock(),e.createElementBlock("span",Mm,e.toDisplayString(k.label),1)),B<Wo.value.length-1?(e.openBlock(),e.createElementBlock("span",Fm,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",Dm,"—"))])]),e.createElementVNode("div",Tm,[e.createElementVNode("span",Lm,[g[12]||(g[12]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),m.value?(e.openBlock(),e.createElementBlock("span",Im,e.toDisplayString(m.value.center.lng.toFixed(5))+", "+e.toDisplayString(m.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",Om,"—"))]),m.value&&m.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",Pm,[g[13]||(g[13]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",Rm,e.toDisplayString(m.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",zm,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:ab,disabled:i.value},[e.createVNode(e.unref(X.ZoomIn),{class:"vs-status-btn__icon"})],8,jm),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:lb,disabled:i.value},[e.createVNode(e.unref(X.Trash2),{class:"vs-status-btn__icon"})],8,Um)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-780ba2d7"]]),Xm=["data-focus"],Zm={class:"flex items-center"},Jm={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},Qm=["onClick","aria-label"],ef={key:0,class:"absolute text-gray-500 truncate pl-2"},tf={class:"flex-1 min-w-[2px]"},nf=["placeholder"],of={class:"flex items-center shrink-0"},rf=["disabled"],Ir=e.defineComponent({__name:"vs-input-tag",props:e.mergeModels({unique:{type:Boolean,default:!0},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:"Введіть тег"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t;et(n.style);const a=e.ref(null),l=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref(""),d=e.useModel(o,"modelValue"),h=e.computed(()=>n.placeholder||"Add tag…"),y=e.computed(()=>d.value?.length===0&&i.value===""),p=e.computed(()=>!n.disabled&&d.value?.length>0),m=e.computed(()=>n.disabled),f=async()=>{m.value||await e.nextTick(()=>s.value?.focus())},w=Z=>{const O=Z.trim();O!==""&&(!d.value||!Array.isArray(d.value)?d.value=[O]:n.unique?d.value.includes(O)||(d.value=[...d.value,O]):d.value=[...d.value,O],i.value="")},b=()=>{const Z=i.value;Z.trim()!==""&&w(Z),i.value=""},v=Z=>{const O=d.value.slice();O.splice(Z,1),r("update:modelValue",O)},C=()=>{r("update:modelValue",[])},V=()=>{m.value||(c.value=!0)},$=()=>{c.value=!1,!m.value&&b()},U=Z=>{const{key:O}=Z;O==="Enter"?(Z.preventDefault(),b()):O==="Backspace"&&i.value===""&&d.value.length>0&&v(d.value.length-1)};return(Z,O)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:a,onClick:O[1]||(O[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":"",m.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.value?"true":"false",onClick:f},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:l},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(E,S)=>(e.openBlock(),e.createElementBlock("div",{key:S,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",Zm,[e.createElementVNode("div",Jm,e.toDisplayString(E),1)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:e.withModifiers(_=>v(S),["stop"]),"aria-label":`Remove ${E}`},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Qm)]))),128)),y.value?(e.openBlock(),e.createElementBlock("div",ef,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",tf,[m.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:s,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":O[0]||(O[0]=E=>i.value=E),onFocus:V,onBlur:$,onKeydown:U,placeholder:d.value&&d.value.length?"":void 0},null,40,nf)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",of,[p.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:m.value,onClick:e.withModifiers(C,["stop"])},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,rf)):e.createCommentVNode("",!0)])],10,Xm)],2)],512))}}),lf={class:"relative flex gap-1 bg-white w-full"},af=["disabled","placeholder"],Or=Be(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.inject("values"),n=o,r=e.useModel(o,"modelValue");function a(s){const 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 l=()=>{const s=t?.value?.[n.parent||""]?.toString(),c=a(s);r.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",lf,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:s.disabled,placeholder:s.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,af),[[e.vModelText,r.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:l}," Gen ")]))}}),[["__scopeId","data-v-b0eba370"]]),sf={class:"relative flex gap-1 bg-white w-full"},cf=["disabled","placeholder"],df=["disabled"],uf={key:0},pf={key:1},Pr=Be(e.defineComponent({__name:"vs-input-codegen",props:e.mergeModels({table:{},code:{},init:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(!1),a=e.computed(()=>t.init!==!1),l=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!l.value)return"";const d=encodeURIComponent(String(t.table)),h=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${h}`},c=async()=>{if(!l.value||r.value)return;const d=s();if(d){r.value=!0;try{const y=await(await fetch(d)).text();n.value=y}finally{r.value=!1}}},i=()=>{a.value&&(n.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,h)=>(e.openBlock(),e.createElementBlock("div",sf,[e.withDirectives(e.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":h[0]||(h[0]=y=>n.value=y),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,cf),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",disabled:r.value||d.disabled||!l.value,onClick:c},[r.value?(e.openBlock(),e.createElementBlock("span",pf,"...")):(e.openBlock(),e.createElementBlock("span",uf,"Gen"))],8,df)]))}}),[["__scopeId","data-v-6ee5237d"]]),mf={class:"w-full"},ff={ref:"sortableContainer",class:"flex flex-col gap-1"},hf=["onDragstart","onDrop"],gf={class:"cursor-move",type:"button"},yf={class:"w-1/3"},bf={class:"w-2/3"},kf=["onClick"],wf={key:0,class:"text-[14px] text-gray-700"},xf={class:"mt-2 w-full flex items-center"},vf=["disabled"],Rr=Be(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,r=e.inject("values"),a=o,l=t,s=a.addButtonText??"Додати",c=a.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const b=a.parent&&r?.value?.[a.parent]||a.modelValue||{};i.value=Object.entries(b).filter(([v])=>!c.includes(v)).map(([v,C])=>({id:n("key-value-"),key:v,value:C}))})();function y(b){d.value=b}function p(b){if(d.value===null||d.value===b)return;const v=i.value.splice(d.value,1)[0];i.value.splice(b,0,v),d.value=null}const m=e.computed(()=>i.value.some(b=>b.key&&!b.value||!b.key&&b.value)),f=()=>{i.value.push({id:n("key-value-"),key:"",value:""})},w=b=>{i.value=i.value.filter(v=>v.id!==b)};return e.watch(i,b=>{const v={};b.forEach(V=>{V.key&&V.value!==void 0&&(v[V.key]=V.value)});const C={};c.length&&c.forEach(V=>{C[V]=a.parent?r?.value?.[a.parent]?.[V]:void 0}),r?.value&&a.parent&&(r.value[a.parent]={...C,...v}),l("update:modelValue",v)},{deep:!0}),(b,v)=>(e.openBlock(),e.createElementBlock("div",mf,[e.createElementVNode("div",ff,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(C,V)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===V}]),draggable:"true",onDragstart:$=>y(V),onDragover:v[0]||(v[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>p(V)},[e.createElementVNode("button",gf,[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",yf,[e.createVNode(Yt,{modelValue:C.key,"onUpdate:modelValue":$=>C.key=$,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",bf,[e.createVNode(Yt,{modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:$=>w(C.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,kf)],42,hf))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",wf," Дані для відображення відсутні ")),e.createElementVNode("div",xf,[e.createElementVNode("button",{type:"button",onClick:f,disabled:m.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,vf)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),_f={class:"w-full"},Cf={ref:"sortableContainer",class:"flex flex-col gap-1"},Ef=["onDragstart","onDrop"],Bf=["disabled"],Vf={class:"flex-1"},Sf=["onClick","disabled"],$f={key:0,class:"text-[14px] text-gray-700"},Af={class:"mt-2 w-full flex items-center"},Nf=["disabled"],zr=Be(e.defineComponent({__name:"vs-input-text-array",props:e.mergeModels({addButtonText:{default:"Додати"},inputType:{default:"text"},placeholder:{default:"Значення"},mask:{default:""},disabled:{type:Boolean,default:!1}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),a=e.ref(null),l=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),c=e.computed(()=>t.addButtonText??"Додати");let i=!1;const d=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,h=b=>{const v=b??n.value??[];r.value=v.map((C,V)=>({id:r.value[V]?.id??d("text-array"),value:C??""}))};h(),e.watch(()=>n.value,b=>{if(i){i=!1;return}h(b||[])},{deep:!0}),e.watch(r,b=>{i=!0,n.value=b.map(v=>v.value).filter(v=>v!=null&&v!=="")},{deep:!0});const y=e.computed(()=>l.value||r.value.some(b=>!b.value));function p(){y.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function m(b){l.value||(r.value=r.value.filter(v=>v.id!==b))}function f(b){l.value||(a.value=b)}function w(b){if(l.value||a.value===null||a.value===b)return;const v=[...r.value],[C]=v.splice(a.value,1);v.splice(b,0,C),r.value=v,a.value=null}return(b,v)=>(e.openBlock(),e.createElementBlock("div",_f,[e.createElementVNode("div",Cf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,V)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":a.value===V}]),draggable:"true",onDragstart:$=>f(V),onDragover:v[0]||(v[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>w(V)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:l.value},[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})],8,Bf),e.createElementVNode("div",Vf,[b.inputType==="text"?(e.openBlock(),e.createBlock(Yt,{key:0,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="tel"?(e.openBlock(),e.createBlock(po,{key:1,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="email"?(e.openBlock(),e.createBlock(uo,{key:2,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="mask"?(e.openBlock(),e.createBlock(En,{key:3,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,mask:b.mask,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:$=>m(C.id),disabled:l.value,class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200 disabled:opacity-50"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Sf)],42,Ef))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",$f," Дані для відображення відсутні ")),e.createElementVNode("div",Af,[e.createElementVNode("button",{type:"button",onClick:p,disabled:y.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,Nf)])]))}}),[["__scopeId","data-v-2c229b1f"]]),Mf={class:"flex items-center gap-2 w-full"},Ff=["disabled"],Df=["disabled"],jr=e.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,{inputClass:r}=et(n.style),a=t,l=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",Mf,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),disabled:s.value,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[c.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Ff),[[e.vModelText,l.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":i[1]||(i[1]=d=>l.value=d),disabled:s.value},null,8,Df),[[e.vModelText,l.value]])]))}}),Tf={class:"flex items-center gap-2 w-full"},Lf=["min","max","step","disabled"],If=["value","min","max","step","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(o,{emit:t}){const n=o,{inputClass:r}=et(n.style),a=t,l=h=>{const y=Number(h),p=Number(n.min),m=Number(n.max);return Number.isNaN(y)?p:Math.min(m,Math.max(p,y))},s=e.computed({get:()=>l(n.modelValue??n.min),set:h=>a("update:modelValue",l(h))}),c=h=>{const y=h.target,p=l(y.value);y.value=String(p),a("update:modelValue",p)},i=h=>{Number(n.min)>=0&&h.key==="-"&&h.preventDefault()},d=e.computed(()=>!!n.disabled);return(h,y)=>(e.openBlock(),e.createElementBlock("div",Tf,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":y[0]||(y[0]=p=>s.value=p),min:h.min,max:h.max,step:h.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[h.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,Lf),[[e.vModelText,s.value]]),e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number",value:s.value,min:h.min,max:h.max,step:h.step,onInput:c,onKeydown:i,disabled:d.value},null,40,If)]))}}),Of=["placeholder","disabled","name"],Pf=["type","value","onInput","placeholder","disabled"],Rf=["onClick"],Hr=e.defineComponent({__name:"vs-input-array",props:e.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.ref(t.count),r=e.computed(()=>t.limit),{inputClass:a}=et(t.style),l=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const w=l.value?.length??0;w<n.value&&(l.value=[...l.value??[],...Array(n.value-w)])});const i=e.ref({}),d=e.ref({});function h(w,b){w&&(i.value[b]=w)}async function y(w,b){if(!w||t.inputType!=="mask")return;const{default:v}=await Promise.resolve().then(()=>Jn);d.value[b]&&d.value[b].destroy(),d.value[b]=v(w,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[b].on("accept",()=>{const C=[...l.value||[]];C[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,l.value=C}),d.value[b].on("complete",()=>{const C=[...l.value||[]];C[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,l.value=C}),l.value?.[b]&&(d.value[b].value=l.value[b])}function p(w,b){if(s.value)return;const v=w.target.value??null,C=[...l.value];C[b]=t.inputType==="text"?v:Number(v),l.value=C}function m(){n.value+=1;const w=t.inputType==="text"||t.inputType==="mask"?null:0;l.value=[...l.value,w],t.inputType==="mask"&&setTimeout(()=>{const b=n.value-1;i.value[b]&&y(i.value[b],b)},0)}function f(w){if(n.value>1){d.value[w]&&(d.value[w].destroy(),delete d.value[w]),n.value-=1,l.value=l.value.filter((v,C)=>C!==w);const b={};Object.keys(d.value).forEach(v=>{const C=parseInt(v,10);C>w?b[C-1]=d.value[C]:C<w&&(b[C]=d.value[C])}),d.value=b}}return e.onMounted(()=>{if(t.inputType==="mask")for(let w=0;w<n.value;w+=1)i.value[w]&&y(i.value[w],w)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(w=>{w&&w.destroy()})}),e.watch(()=>t.mask,w=>{t.inputType==="mask"&&Object.values(d.value).forEach(b=>{b&&b.updateOptions({mask:w,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(l,w=>{t.inputType==="mask"&&w&&w.forEach((b,v)=>{d.value[v]&&d.value[v].value!==b&&(d.value[v].value=b||"")})},{deep:!0}),(w,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${r.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,v=>(e.openBlock(),e.createElementBlock("div",{key:v,class:"flex items-center gap-2 w-full"},[w.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:C=>h(C,v-1),placeholder:w.placeholder,disabled:w.disabled,name:`${w.name}[${v-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":w.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Of)):(e.openBlock(),e.createElementBlock("input",{key:1,type:w.inputType,value:l.value?.[v-1],onInput:C=>p(C,v-1),placeholder:c.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":w.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Pf)),!w.disabled&&v===n.value&&w.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(m,["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-green-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!w.disabled&&n.value>1&&w.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(C=>f(v-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Rf)):e.createCommentVNode("",!0)]))),128))],2))}}),zf={class:"flex gap-1 w-full"},jf=["aria-expanded","data-focus"],Uf=["placeholder","disabled","readonly"],Hf={class:"max-h-full"},qf=["onClick","disabled"],Wf={key:0,class:"px-3 py-2 text-sm text-stone-500"},Kf=["disabled"],Gf={class:"flex flex-col gap-1"},Yf=["onDragstart","onDrop"],Xf=["disabled"],Zf=["title"],Jf=["disabled","onClick","aria-label"],Qf={key:0,class:"text-xs text-stone-500"},Hn=Be(e.defineComponent({__name:"vs-input-array-select",props:e.mergeModels({options:{default:()=>[]},data:{default:""},api:{default:""},prefix:{default:"api"},host:{default:""},parent:{},search:{type:Boolean,default:!0},maxHeight:{default:280},start:{default:0},slot:{},disabled:{type:Boolean,default:!1},add:{},style:{},customClass:{},modelValue:{},error:{},name:{},placeholder:{default:"Оберіть значення"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t,a=e.useModel(o,"modelValue"),l=e.ref([]),s=e.ref(n.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),h=e.ref(""),y=e.ref(!1),p=e.ref(null),m=e.ref(null),f=e.ref(null),w=e.ref(null),b=e.ref(null),v=e.ref({});let C=!1,V=!1;const $=e.inject("values"),U=e.computed(()=>!!n.disabled),Z=e.computed(()=>n.placeholder??"Оберіть значення"),O=e.computed(()=>n.search!==!1),E=e.computed(()=>{const x=n.parent??n.parentValue;return x?String(x):""}),S=e.computed(()=>E.value?$?.value?.[E.value]??null:null),_=x=>x==null?"__null__":String(x),T=x=>{if(!x)return"";const D=x.label??x.text??x.name??x.ua??x.en;return D?String(D):x.id!==void 0&&x.id!==null?String(x.id):""},j=x=>{const D=_(x);return i.value[D]||(i.value[D]=`array-select-${D}-${Math.random().toString(36).slice(2,8)}`),i.value[D]},oe=e.computed(()=>new Set(l.value.map(x=>_(x.id)))),A=e.computed(()=>{const x=oe.value;let D=[...s.value];if(!n.data&&h.value.trim()){const R=h.value.toLowerCase();D=D.filter(de=>T(de).toLowerCase().includes(R))}return D.filter(R=>!x.has(_(R.id)))}),P=()=>{if(!n.data)return"";const x=n.prefix??"api",D=n.api??`/${x}/suggest/${n.data}`;return`${n.host??""}${D}`},Y=()=>{l.value.length&&(C=!0,l.value=l.value.map(x=>({...x,text:c.value[_(x.id)]??x.text})))},q=x=>{const D=_(x.id),R=T(x);R&&(c.value[D]=R)},I=x=>{s.value=x?[...x]:[],x?.forEach(q),Y()},J=x=>{if(!x.length)return;const D=new Map(s.value.map(R=>[_(R.id),R]));x.forEach(R=>{const de=_(R.id);D.set(de,R),q(R)}),s.value=Array.from(D.values()),Y()},te=async(x="")=>{if(!n.data)return[];const D=P();if(!D)return[];const R=new URLSearchParams;R.set("json","1"),x&&R.set("key",x),n.start===1&&R.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&R.set("parent",String(S.value));try{return(await(await fetch(`${D}?${R.toString()}`)).json())?.data??[]}catch{return[]}},L=async x=>{if(!n.data||!x.length)return[];const D=P();if(!D)return[];const R=Array.from(new Set(x.map(_e=>_(_e)))),de=new URLSearchParams;de.set("json","1"),de.set("val",R.join(",")),n.start===1&&de.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&de.set("parent",String(S.value));try{const Ie=(await(await fetch(`${D}?${de.toString()}`)).json())?.data??[];return J(Ie),Ie}catch{return[]}},M=async x=>{if(x==null||x==="")return null;const D=_(x),R=s.value.find(_e=>_(_e.id)===D);if(R)return R;const[de]=await L([x]);return de??null},N=async(x="",{force:D=!1}={})=>{if(!n.data)return;const R=S.value??null;if(!D&&d.value.keyword===x&&d.value.parent===R&&s.value.length>0)return;d.value={keyword:x,parent:R};const _e=await te(x);I(_e)},ae=((x,D=200)=>{let R;return(...de)=>{R&&clearTimeout(R),R=setTimeout(()=>x(...de),D)}})(async x=>{n.data&&await N(x,{force:!0})},250),ee=e.ref(null),he=()=>{if(!f.value)return;const x=f.value.getBoundingClientRect(),D=window.innerHeight??document.documentElement.clientHeight,R=window.innerWidth??document.documentElement.clientWidth,de=8,_e=8,Oe=n.maxHeight??280,Ie=D-x.bottom-_e-de,Ue=x.top-_e-de,We=Ie>=Ue,ut=Math.max(R-de*2,0);let{width:Ke}=x;ut>0&&Ke>ut&&(Ke=ut);let{left:ct}=x;ct+Ke+de>R&&(ct=R-Ke-de),ct=Math.max(ct,de);const Pt=Math.min(Oe,Math.max(We?Ie:Ue,50));v.value={position:"fixed",left:`${ct}px`,width:`${Ke}px`,maxHeight:`${Pt}px`,transform:We?"none":"translateY(-100%)",top:We?`${x.bottom+_e}px`:`${x.top-_e}px`}},we=async(x="click")=>{U.value||y.value||(ee.value=x,await N(h.value.trim()),y.value=!0,await e.nextTick(),he(),b.value?.focus())},be=()=>{y.value=!1,ee.value=null,e.nextTick(()=>{b.value?.blur()})},$e=async x=>{if(x.stopPropagation(),!U.value){if(y.value){if(ee.value==="focus"){ee.value=null;return}be();return}await we("click")}},Me=x=>{x.key==="Escape"&&be()},Fe=x=>{if(!y.value)return;const D=x.target;w.value?.contains(D)||be()},Re=x=>{const D=x.target;m.value?.contains(D)||w.value?.contains(D)||be()},se=x=>{if(x.key==="Escape"){x.preventDefault(),be();return}if(x.key==="Enter"){x.preventDefault();const D=A.value[0];D&&ie(D)}},ie=x=>{if(!x)return;const D=_(x.id);if(oe.value.has(D))return;q(x);const R={id:x.id,text:T(x)||String(x.id??""),key:j(x.id)};l.value=[...l.value,R],ve(x),h.value="",e.nextTick(()=>{b.value?.focus()})},ve=x=>{const D=l.value.map(R=>R.id);r("value-selected",{name:n.name,value:D,option:x})},Se=x=>{if(U.value)return;const D=l.value.filter(R=>_(R.id)!==_(x));l.value=D},{isOpenAdd:Le,addData:qe,addSchema:z,addForm:ne,addTitle:le,addOption:ue,onAddValue:ke}=vr({props:n,fetchOptionByValue:M,optionsList:s,selectedOption:e.ref(null),modelValue:a,onCreated:async(x,D)=>{const R=x??await M(D),de=R?.id??D;oe.value.has(_(de))||(R&&q(R),l.value=[...l.value,{id:de,text:R?T(R):String(de),key:j(de)}],ve(R??null))}}),Ae=x=>{U.value||(p.value=x)},De=x=>{if(U.value||p.value===null||p.value===x)return;const D=[...l.value],[R]=D.splice(p.value,1);D.splice(x,0,R),p.value=null,l.value=D},Te=async()=>{const D=(Array.isArray(a.value)?[...a.value]:[]).filter(de=>de!=null);if(n.data&&D.length){const de=D.filter(_e=>!c.value[_(_e)]);de.length&&await L(de)}const R=D.map(de=>({id:de,text:c.value[_(de)]??String(de),key:j(de)}));C=!0,l.value=R};e.watch(l,x=>{if(C){C=!1;return}const D=x.map(R=>R.id);V=!0,a.value=D,r("change",D)},{deep:!0}),e.watch(a,()=>{if(V){V=!1;return}Te()},{deep:!0}),e.watch(h,x=>{!n.data||!y.value||ae(x.trim())}),e.watch(U,x=>{x&&be()}),e.watch(()=>n.options,async x=>{n.data||(I(x??[]),await Te())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async x=>{x&&(await N(h.value.trim()),await Te())},{immediate:!0});const W=e.ref(!1);return e.watch(S,async()=>{if(n.data){if(!W.value){W.value=!0;return}l.value=[],await N(h.value.trim()),await Te()}}),e.onMounted(async()=>{document.addEventListener("click",Re,!0),window.addEventListener("keydown",Me),window.addEventListener("scroll",Fe,!0),await Te()}),e.onUnmounted(()=>{document.removeEventListener("click",Re,!0),window.removeEventListener("keydown",Me),window.removeEventListener("scroll",Fe,!0)}),(x,D)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(ge.VsModal),{visible:e.unref(Le),"onUpdate:visible":D[1]||(D[1]=R=>e.isRef(Le)?Le.value=R:null),class:"z-[1000]",title:e.unref(le),buttonText:"Додати",onDone:e.unref(ue)},{default:e.withCtx(()=>[e.createVNode(rt,{schema:e.unref(z),modelValue:e.unref(qe),"onUpdate:modelValue":D[0]||(D[0]=R=>e.isRef(qe)?qe.value=R:null),ref_key:"addForm",ref:ne},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),e.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:m},[e.createElementVNode("div",zf,[e.createElementVNode("div",{class:"relative flex-1",onClick:D[4]||(D[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:f,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]",y.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",U.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":y.value,"aria-haspopup":"listbox","data-focus":y.value?"true":"false",onClick:$e},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:b,"onUpdate:modelValue":D[2]||(D[2]=R=>h.value=R),placeholder:Z.value,disabled:U.value,readonly:!O.value,onFocus:D[3]||(D[3]=()=>we("focus")),onKeydown:se,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,Uf),[[e.vModelText,h.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",y.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],2)],10,jf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[y.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:w,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(v.value)},[e.createElementVNode("div",Hf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,R=>(e.openBlock(),e.createElementBlock("button",{key:_(R.id),type:"button",class:"w-full px-3 py-2 text-left text-sm text-stone-900 hover:bg-stone-100 disabled:opacity-50",onClick:e.withModifiers(de=>ie(R),["stop"]),disabled:U.value},e.toDisplayString(T(R)),9,qf))),128)),A.value.length===0?(e.openBlock(),e.createElementBlock("p",Wf," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:D[5]||(D[5]=(...R)=>e.unref(ke)&&e.unref(ke)(...R)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:U.value,type:"button"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),D[8]||(D[8]=e.createElementVNode("span",null,"Додати",-1))],8,Kf)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Gf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(R,de)=>(e.openBlock(),e.createElementBlock("div",{key:R.key,class:e.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":p.value===de}]),draggable:"true",onDragstart:_e=>Ae(de),onDragover:D[6]||(D[6]=e.withModifiers(()=>{},["prevent"])),onDrop:_e=>De(de),onDragend:D[7]||(D[7]=_e=>p.value=null)},[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-500 hover:text-stone-900",disabled:U.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})],8,Xf),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:R.text},e.toDisplayString(R.text),9,Zf),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-400 hover:text-stone-900",disabled:U.value,onClick:e.withModifiers(_e=>Se(R.id),["stop"]),"aria-label":`Видалити ${R.text}`},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Jf)],42,Yf))),128)),l.value.length===0?(e.openBlock(),e.createElementBlock("p",Qf,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),eh={class:"flex items-center gap-2 w-full"},th={class:"relative flex-1"},nh=["placeholder","disabled","onKeydown"],oh=["disabled"],rh={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},lh={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},ah={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},sh=["onClick"],ih={key:0,class:"p-4 text-sm text-gray-500"},qr=e.defineComponent({__name:"vs-input-address",props:e.mergeModels({api:{default:""},geom:{default:""},includes:{default:()=>[]},bbox:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","update:geom"],["update:modelValue"]),setup(o,{emit:t}){const n=/{{\s*([^}]+?)\s*}}/g,r=o,a=t,{inputClass:l}=et(r.style),s=e.useModel(o,"modelValue"),c=e.computed({get:()=>s.value,set:O=>{s.value=O}}),i=e.ref(!1),d=e.ref([]),h=e.ref(!1),y=e.ref(null);e.watch(h,O=>{typeof document>"u"||(O?(y.value=document.body.style.overflow,document.body.style.overflow="hidden"):y.value!=null?(document.body.style.overflow=y.value,y.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(y.value!=null?document.body.style.overflow=y.value:document.body.style.removeProperty("overflow"))});const p=e.computed(()=>r.placeholder??""),m=e.computed(()=>!!r.disabled),f=O=>{if(!O)return null;if(Array.isArray(O))return O;if(typeof O=="string"){const E=O.split(",").map(S=>S.trim()).filter(Boolean);return E.length!==4?null:E.map(Number)}return null},w=e.computed(()=>{const O=f(r.bbox);if(!O||O.length!==4)return null;const E=O.map(Number);return E.some(S=>Number.isNaN(S))?null:E}),b=e.computed(()=>{const O=w.value;if(!O)return"";const[E,S,_,T]=O;return`${E},${Math.max(S,T)},${_},${Math.min(S,T)}`});e.computed(()=>b.value?"1":"0");const v=e.inject("values");function C(){!m.value&&c.value.trim()&&V()}async function V(){const O=(c.value||"").trim();if(!O)return;let E=O;if(r.includes?.length&&v?.value){const _=r.includes.map(T=>v.value?.[T]).filter(Boolean);_.length&&(E=`${_.join(", ")}, ${O}`)}const S=Z(E);if(S){i.value=!0;try{const T=await(await fetch(S)).json();d.value=Array.isArray(T)?T:[],h.value=!0}catch(_){console.error("Address search error:",_)}finally{i.value=!1}}}function $(){h.value=!h.value}function U(O){if(!O)return;h.value=!1;const E=parseFloat(O.lat),_={type:"Point",coordinates:[parseFloat(O.lon),E]};r.geom&&v?.value&&(v.value[r.geom]=_),a("update:geom",_)}function Z(O){if(!r.api)return"";const E={value:encodeURIComponent(O),bbox:w.value?w.value.join(","):""};return r.api.replace(n,(S,_)=>E[_.trim()]??"")}return(O,E)=>(e.openBlock(),e.createElementBlock("div",eh,[e.createElementVNode("div",th,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=S=>c.value=S),placeholder:p.value,disabled:m.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white border rounded-md placeholder:text-gray-400 focus:ring-2 focus:ring-blue-500",[e.unref(l),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(C,["prevent"]),["enter"])},null,42,nh),[[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:$,title:"Show search results"},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:V,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(X.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(X.Search),{key:0,class:"h-4 w-4"}))],8,oh),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[h.value?(e.openBlock(),e.createElementBlock("div",rh,[e.createElementVNode("div",lh,[e.createElementVNode("div",ah,[E[2]||(E[2]=e.createElementVNode("span",null,"Результати пошуку",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:E[1]||(E[1]=S=>h.value=!1),title:"Close"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(S,_)=>(e.openBlock(),e.createElementBlock("li",{key:_,onClick:T=>U(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,sh))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ih," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),ch={class:"vs-datalist space-y-3"},dh={class:"space-y-3"},uh=["onClick","disabled"],ph={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},mh=["disabled"],fh=Be(e.defineComponent({__name:"vs-input-datalist",props:e.mergeModels({schema:{default:()=>[]},minItems:{default:0},maxItems:{default:void 0},addButtonText:{default:"Додати позицію"},emptyLabel:{default:"Немає рядків"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>Array.isArray(n.value)?n.value:[]),a=e.ref([]),l=e.computed(()=>t.schema?.map(b=>({...b,disabled:t.disabled||b.disabled}))??[]),s=e.computed(()=>l.value.map(b=>w(b))),c=e.computed(()=>l.value.reduce((v,C)=>{const V=Number(C?.col??12);return v+(Number.isFinite(V)&&V>0?V:12)},0)>12),i=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),d=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{h(),y()},{immediate:!0}),e.watch(()=>t.schema,y,{immediate:!0,deep:!0});function h(){const b=r.value.length;a.value.length<b?a.value=[...a.value,...Array.from({length:b-a.value.length},()=>wo())]:a.value.length>b&&a.value.splice(b)}function y(){if(!t.minItems||r.value.length>=t.minItems)return;const b=t.minItems-r.value.length,v=Array.from({length:b},p);n.value=[...r.value,...v]}function p(){const b={};return l.value.forEach(v=>{b[v.name]=v?.default??null}),b}function m(){i.value&&(n.value=[...r.value,p()],h())}function f(b){d.value||(n.value=r.value.filter((v,C)=>C!==b),h(),y())}function w(b){return{...b}}return(b,v)=>(e.openBlock(),e.createElementBlock("div",ch,[e.createElementVNode("div",dh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,V)=>(e.openBlock(),e.createElementBlock("div",{key:a.value[V],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":c.value}])},[e.createVNode(rt,{schema:s.value,layout:"inline",navigation:!1,values:r.value[V],"onUpdate:values":$=>r.value[V]=$,"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:$=>f(V),disabled:d.value},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,uh)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",ph,e.toDisplayString(t.emptyLabel),1)):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:m,disabled:!i.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,mh)]))}}),[["__scopeId","data-v-d0065868"]]),hh={class:"vs-dataform space-y-4"},gh=["draggable","onDragstart","onDragover","onDragenter","onDrop"],yh={class:"flex items-center gap-2"},bh=["onClick"],kh={class:"text-sm font-medium text-gray-700"},wh={class:"flex items-center gap-2"},xh=["title","onClick","disabled"],vh=["title","onClick","disabled"],_h={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Ch=["disabled"],Eh=Be(e.defineComponent({__name:"vs-input-dataform",props:e.mergeModels({schema:{default:()=>[]},minGroups:{default:0},maxGroups:{default:void 0},addButtonText:{default:"Додати групу фільтрів"},groupLabel:{default:void 0},duplicateTitle:{default:"Дублювати групу"},removeTitle:{default:"Видалити групу"},emptyLabel:{},view:{default:"default"},collapsible:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),a=e.ref([]),l=e.ref(0),s=e.ref(null),c=e.ref(null),i=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),h=e.computed(()=>t.emptyLabel??"Ще немає груп"),y=e.computed(()=>t.schema?.map(N=>({...N,disabled:t.disabled||N.disabled}))??[]),p=e.computed(()=>y.value.map(N=>S(N))),m=e.computed(()=>t.view==="accordion"),f=e.computed(()=>!!(t.collapsible||m.value)),w=e.computed(()=>t.draggable!==!1),b=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),v=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{C(),V(),$()},{immediate:!0}),e.watch(()=>t.schema,$,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{V()},{immediate:!0});function C(){const N=n.value.length;r.value.length<N?r.value=[...r.value,...Array.from({length:N-r.value.length},()=>wo())]:r.value.length>N&&r.value.splice(N)}function V(){const N=n.value.length;m.value?N===0?l.value=-1:l.value>=N?l.value=N-1:l.value<0&&(l.value=0):a.value.length<N?a.value=[...a.value,...Array.from({length:N-a.value.length},()=>!1)]:a.value.length>N&&a.value.splice(N)}function $(){if(!t.minGroups||n.value.length>=t.minGroups)return;const N=t.minGroups-n.value.length,Q=Array.from({length:N},U);n.value=[...n.value,...Q],V()}function U(){const N={};return y.value.forEach(Q=>{N[Q.name]=Q?.default??null}),N}function Z(){b.value&&(n.value=[...n.value,U()],C(),V())}function O(N){v.value||(n.value=n.value.filter((Q,ae)=>ae!==N),C(),m.value?l.value>=n.value.length&&(l.value=n.value.length-1):a.value.splice(N,1),$())}function E(N){if(t.disabled)return;const Q=JSON.parse(JSON.stringify(n.value[N]??{}));n.value=[...n.value.slice(0,N+1),Q,...n.value.slice(N+1)],C(),m.value?l.value>N&&(l.value+=1):a.value.splice(N+1,0,a.value[N]??!1)}function S(N){return{...N}}function _(N){return m.value?l.value===-1&&N===0?!1:l.value!==N:!!a.value[N]}function T(N){if(f.value){if(m.value){l.value=N;return}a.value[N]=!a.value[N]}}function j(N,Q){if(!w.value||t.disabled){Q.preventDefault();return}s.value=N,c.value=N,i.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...a.value]},Q.dataTransfer?.setData("text/plain",String(N)),Q.dataTransfer?.setDragImage?.(Q.currentTarget,0,0)}function oe(N,Q){!w.value||t.disabled||s.value!==null&&J(N,Q)}function A(N,Q){J(N,Q)}function P(N){!w.value||t.disabled||M()}function Y(){i.value&&I(),s.value=null,c.value=null,i.value=null}function q(N,Q){const ae=[...n.value],[ee]=ae.splice(N,1);ae.splice(Q,0,ee),n.value=ae;const he=[...r.value],[we]=he.splice(N,1);if(he.splice(Q,0,we),r.value=he,m.value)l.value===N&&(l.value=Q);else{const be=[...a.value],[$e]=be.splice(N,1);be.splice(Q,0,$e),a.value=be}}function I(){i.value&&(n.value=i.value.groups,r.value=i.value.keys,a.value=i.value.states,i.value=null,c.value=null)}function J(N,Q){if(s.value===null)return;const ae=te(N,Q);c.value=ae,L(ae)}function te(N,Q){if(!Q?.currentTarget)return N;const ae=Q.currentTarget.getBoundingClientRect(),he=Q.clientY-ae.top>ae.height/2?N+1:N;return Math.max(0,Math.min(he,n.value.length))}function L(N){const Q=s.value;if(Q===null)return;let ae=N;if(ae>n.value.length&&(ae=n.value.length),ae===Q||ae===Q+1)return;const ee=ae>Q?ae-1:ae;q(Q,ee),s.value=ee,c.value=ae>Q?ee+1:ee}function M(){i.value=null,s.value=null,c.value=null}return(N,Q)=>(e.openBlock(),e.createElementBlock("div",hh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(ae,ee)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[ee],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":_(ee)?"pt-6 px-6":"p-6"]]),draggable:w.value&&!t.disabled,onDragstart:he=>j(ee,he),onDragend:Y,onDragover:e.withModifiers(he=>oe(ee,he),["prevent"]),onDragenter:e.withModifiers(he=>A(ee,he),["prevent"]),onDrop:e.withModifiers(he=>P(),["prevent"])},[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center justify-between gap-2 border-b border-gray-100 px-4 py-3",[t.view!=="accordion"?"-mx-6 -mt-6 px-6":"",t.view!=="accordion"&&!_(ee)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",yh,[w.value?(e.openBlock(),e.createBlock(e.unref(X.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:he=>T(ee)},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",_(ee)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,bh)):e.createCommentVNode("",!0),e.createElementVNode("div",kh,e.toDisplayString(`${d.value} (${ee+1})`),1)]),e.createElementVNode("div",wh,[e.createElementVNode("button",{type:"button",class:"p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",title:t.duplicateTitle,onClick:he=>E(ee),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(X.Copy),{class:"h-4 w-4"})],8,xh),e.createElementVNode("button",{type:"button",class:"p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",title:t.removeTitle,onClick:he=>O(ee),disabled:v.value,draggable:"false"},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,vh)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(rt,{class:"vs-dataform__form",schema:p.value,layout:"inline",navigation:!1,values:n.value[ee],"onUpdate:values":he=>n.value[ee]=he,"form-id":r.value[ee],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!_(ee)]])],42,gh))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",_h,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:Z,disabled:!b.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Ch)]))}}),[["__scopeId","data-v-cfbcfed8"]]),qn="__vs_form_monaco_loader__",Wt="__vs_form_monaco_script_loader__",Wn="__vs_form_monaco_editor_loader__",Co=e.defineComponent({__name:"vs-input-monaco",props:e.mergeModels({syntax:{default:"xml"},theme:{default:"vs-light"},height:{default:280},minimap:{type:Boolean,default:!1},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:t}){const n=o,r=e.useModel(o,"modelValue"),a=e.ref(null),l=e.computed(()=>typeof n.height=="number"?`${n.height}px`:n.height||"280px");let s=null,c=null,i=!1;const d=()=>{if(c)return Promise.resolve(c);if(typeof window>"u")return Promise.resolve(null);const f=window;if(f.monaco?.editor?.create)return c=f.monaco,Promise.resolve(c);if(f[qn])return f[qn];const b=(async()=>{const v=$=>{if(Array.from(document.styleSheets||[]).some(O=>O?.href?.includes($)))return;const Z=document.createElement("link");Z.rel="stylesheet",Z.href=$,document.head.appendChild(Z)},C=$=>{if(f[Wt]?.[$])return f[Wt][$];f[Wt]||={};const U=Array.from(document.scripts).find(Z=>Z.src===$);return U?(f[Wt][$]=new Promise((Z,O)=>{const E=U.readyState;if(U.dataset.loaded==="true"||E==="loaded"||E==="complete"){Z();return}U.addEventListener("load",()=>{U.dataset.loaded="true",Z()},{once:!0}),U.addEventListener("error",S=>O(S),{once:!0})}),f[Wt][$]):(f[Wt][$]=new Promise((Z,O)=>{const E=document.createElement("script");E.src=$,E.async=!0,E.onload=()=>{E.dataset.loaded="true",Z()},E.onerror=S=>O(S),document.body.appendChild(E)}),f[Wt][$])},V="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return v(`${V}/editor/editor.main.min.css`),await C(`${V}/loader.min.js`),f[Wn]||(f[Wn]=new Promise(($,U)=>{window.require.config({paths:{vs:V}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,f.monaco=c,$(c)},Z=>U(Z))}).catch($=>{throw delete f[Wn],$})),f[Wn]})().catch(v=>{throw delete f[qn],v});return f[qn]=b,b},h=()=>{!a.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(a.value,{value:r.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{i||(r.value=s.getValue())}))},y=()=>{s?.focus()},p=()=>s,m=()=>c;return e.watch(()=>r.value,f=>{if(!s)return;const w=s.getValue();f!==w&&(i=!0,s.setValue(f||""),i=!1)}),e.watch(()=>n.syntax,f=>{!s||!c||c.editor.setModelLanguage(s.getModel(),f||"xml")}),e.watch(()=>n.theme,f=>{c&&c.editor.setTheme(f||"vs-light")}),e.watch(()=>n.disabled,f=>{s&&s.updateOptions({readOnly:!!f})}),e.watch(()=>n.minimap,f=>{s&&s.updateOptions({minimap:{enabled:!!f}})}),e.onMounted(async()=>{try{const f=await d();if(!f||!f.editor)return;c=f,h()}catch(f){console.error("Failed to load Monaco editor",f)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:y,getEditor:p,getMonaco:m}),(f,w)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:l.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:a,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),Wr={VsInputText:Yt,VsInputRadio:mo,VsInputInlineSelect:In,"vs-input-text":Yt,"vs-input-password":ha,"vs-input-textarea":Cr,"vs-input-richtext":Er,"vs-input-mask":En,"vs-input-number":Zo,"vs-input-radio":mo,"vs-input-select":ko,"vs-input-inline-select":In,"inline-select":In,"vs-input-switcher":io,"vs-input-static":co,"vs-input-container":xr,"vs-input-date":ir,"vs-input-checkbox":er,"vs-input-file":br,"vs-input-file2":Tn,file2:Tn,File2:Tn,"vs-input-html":co,"vs-input-email":uo,"vs-input-tel":po,"vs-input-datatable":Br,"vs-input-map":Lr,"vs-input-file-list":kr,"vs-input-tags":Ir,"vs-input-slug":Or,"vs-input-codegen":Pr,"vs-input-key-value":Rr,"vs-input-text[]":zr,"vs-input-range":Ur,"vs-input-color":jr,"vs-input-native-select":ko,VsInputArraySelect:Hn,"vs-input-array":Hr,"vs-input-array-select":Hn,"array-select":Hn,"vs-input-address":qr,"vs-input-datalist":fh,"vs-input-dataform":Eh,"vs-input-monaco":Co},Bh=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(o){const t=o,n=e.inject("values");function r(l,s){const c=s?.result||s?.message||s?.error||s?.detail;return l.status===400&&typeof c=="string"&&c.trim().toLowerCase()==="not found"?"Дані не знайдено.":l.status===500?"Помилка на сервері.":typeof c=="string"&&c.trim()?c:"При спробі завантажити дані виникла помилка."}async function a(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),s=await fetch(l);if(!s.ok){let i=null;try{i=await s.json()}catch{try{i=await s.text()}catch{i=null}}ge.notify({type:"warning",title:"Validation",message:r(s,i)});return}const c=await s.json();if(!t.set||!n)return;for(const[i,d]of Object.entries(t.set))n.value[i]=c.result[d]}catch(l){console.error(t.error,l)}}return(l,s)=>(e.openBlock(),e.createElementBlock("button",{onClick:a,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(l.button),1))}}),Vh={class:"flex flex-col gap-1 w-full"},Sh={class:"w-full"},$h=["disabled"],Ah=["innerHTML"],Nh=2e3,Mh=10,Kr=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]},columns:{default:()=>({container:12,label:3})}},{modelValue:{default:null},modelModifiers:{}}),emits:e.mergeModels(["value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),a=t,l=e.computed(()=>ma[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(j()),i=e.computed(()=>S(n.item,c.value)),d=e.computed(()=>{const A={...i.value??{}},P=n.item?.name;return P&&y?.value?.[P]&&Object.assign(A,y.value[P]),A.__locale=c.value,A}),h=e.computed(()=>Wr?.[`vs-input-${n.item.type}`]),y=e.inject("field-props"),p=e.computed(()=>{const A=e.unref(h);if(!A)return new Set;const P=A.props??A.__vccOpts?.props;if(!P)return new Set;const Y=Array.isArray(P)?P:Object.keys(P);return new Set(Y)}),f=[...["min","max","step"],"api","set","mask","layers"],w=new Set(["name","type","label","ua","col","rules","validators","conditions","schema","hidden","behavior","default","columns","layout","multiple","data","info","description","text","html","view","groupLabel","emptyLabel","minGroups","maxGroups","collapsible","draggable","props","__locale","slot","slots","component"]);function b(A){const P={};Object.entries(A).forEach(([q,I])=>{w.has(q)||q.includes(":")||I!==void 0&&(P[q]=I)});const Y=A.props;return Y&&typeof Y=="object"&&!Array.isArray(Y)&&Object.entries(Y).forEach(([q,I])=>{I!==void 0&&(P[q]=I)}),P}const v=e.computed(()=>{const A={...i.value??{}},P=n.item?.name;P&&y?.value?.[P]&&Object.assign(A,y.value[P]);const Y=p.value;let q;return Y.size?q=Object.fromEntries(Object.entries(A).filter(([I])=>Y.has(I))):q={...A},Object.assign(q,b(A)),f.forEach(I=>{const J=A[I];J!=null&&(q[I]=J)}),q}),C=A=>{const P=typeof A=="object"&&A!==null?A:{value:A};a("value-selected",{...P,name:P.name??n.item?.name})},V=/{{\s*([^}]+?)\s*}}/g,$=e.inject("values"),U=e.ref(!1),Z=e.computed(()=>{const A=n.item?.api,P=n.item?.type?.toLowerCase();return typeof A=="string"&&A.trim().length>0&&(P==="text"||P==="mask")});function O(A,P){if(!(A==null||!P))return P.split(".").reduce((Y,q)=>Y?.[q.trim()],A)}async function E(){const A=String(r.value??"").trim();if(!A)return;const P=(n.item?.api??"").trim();if(!P)return;const Y=P.replace(V,(q,I)=>I.trim()==="value"?encodeURIComponent(A):"");U.value=!0;try{let q=await fetch(Y),I=0;for(;q.status===202&&I<Mh;)I+=1,await new Promise(N=>{setTimeout(N,Nh)}),q=await fetch(Y);if(q.status===202){ge.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!q.ok){ge.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const J=await q.json(),te=J?.result!==void 0?J.result:J,L=n.item?.set;if(!L||!$?.value)return;const M=n.item?.name;Object.entries(L).forEach(([N,Q])=>{if(!N)return;let ae=Q;M&&ae.startsWith(`${M}.`)&&(ae=ae.slice(M.length+1));const ee=O(te,ae);$.value[N]=ee??null})}catch(q){console.error("API lookup error:",q),ge.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{U.value=!1}}e.onMounted(()=>{c.value=j(),window.addEventListener("storage",oe)}),e.onUnmounted(()=>{window.removeEventListener("storage",oe)});function S(A,P){if(!A)return{};const Y={...A};return s.forEach(q=>{const I=T(A,q,P);I!=null&&(Y[q]=I)}),Array.isArray(A.options)&&(Y.options=A.options.map(q=>_(q,P))),Y}function _(A,P){if(!A)return A;const Y={...A},q=T(A,"label",P),I=T(A,"text",P);return q!=null&&(Y.label=q),I!=null?Y.text=I:q!=null&&(Y.text=q),Y}function T(A,P,Y){const q=`${P}:${Y}`;if(A?.[q]!=null)return A[q];if(P==="label"&&A?.[Y]!=null)return A[Y];if(A?.[P]!=null)return A[P];if(P==="label"){if(A?.ua!=null)return A.ua;if(A?.en!=null)return A.en}if(P==="text"||P==="html"){if(A?.ua!=null)return A.ua;if(A?.en!=null)return A.en}return null}function j(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function oe(){c.value=j()}return(A,P)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{ua:d.value.ua,error:n.error||"",item:d.value,columns:n.columns,label:d.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${n.item.type}-component`])},[e.createElementVNode("div",Vh,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":Z.value}])},[e.createElementVNode("div",Sh,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value),e.mergeProps(v.value,{modelValue:r.value,"onUpdate:modelValue":P[0]||(P[0]=Y=>r.value=Y),onValueSelected:C}),null,16,["modelValue"]))]),Z.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px] shrink-0",disabled:U.value||!r.value?.toString().trim(),onClick:E},[U.value?(e.openBlock(),e.createBlock(e.unref(X.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(X.Search),{key:0,class:"h-4 w-4"}))],8,$h)):e.createCommentVNode("",!0)],2),d.value.description&&n.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:d.value.description},null,8,Ah)):e.createCommentVNode("",!0)]),d.value.behavior?.api&&d.value.behavior?.button?(e.openBlock(),e.createBlock(Bh,e.mergeProps({key:0},d.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),Fh={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},Dh={class:"vs-compact-form-navigation__rail mt-[6px]"},Th=["onClick"],Lh=Be(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(o,{expose:t}){const n=o,r=e.ref([]),a=e.ref(""),l=e.ref(""),s=e.computed(()=>!!n.enabled),c=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),i=e.computed(()=>{const T=n.width;if(T==null)return{};const j=typeof T=="number"?`${T}px`:`${T}`;return{width:j,minWidth:j}});let d=null,h=0,y=0,p=null,m=null,f=null;const w=()=>S(),b=()=>C();e.watch(()=>n.target,async T=>{if(Z(),!T){p=null,r.value=[],a.value="";return}p=T,s.value&&(await e.nextTick(),U(T),C())},{immediate:!0}),e.watch(()=>n.scrollContainer,T=>{if(!s.value){m=T??null;return}v(T??null),e.nextTick(()=>C())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||v(null),C()}),e.onBeforeUnmount(()=>{Z(),v(null,!0),p=null,typeof window<"u"&&(h&&window.cancelAnimationFrame(h),y&&window.cancelAnimationFrame(y))});function v(T,j=!1){if(f&&(f(),f=null),j){m=null;return}if(m=T??null,typeof window>"u")return;const oe=T??window,A=window;oe.addEventListener("scroll",w,{passive:!0}),A.addEventListener("resize",b),f=()=>{oe.removeEventListener("scroll",w),A.removeEventListener("resize",b)}}function C(){if(!s.value||!p)return;h&&typeof window<"u"&&window.cancelAnimationFrame(h);const T=()=>{V(),h=0};typeof window>"u"?T():h=window.requestAnimationFrame(T)}function V(){if(!s.value||!p)return;const T=Array.from(p.querySelectorAll("h1, h2")),j=new Set,oe=[];T.forEach((A,P)=>{const Y=A.textContent?.trim()??"";if(!Y)return;let q=(A.getAttribute("id")??"").trim();q||(q=$(Y)||`heading-${P+1}`);let I=q,J=1;for(;j.has(I);)I=`${q}-${J+=1}`;A.id!==I&&Object.assign(A,{id:I}),j.add(I),oe.push({id:I,text:Y,level:A.tagName.toLowerCase()==="h1"?1:2})}),r.value=oe,oe.length||(a.value=""),E()}function $(T){return T.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function U(T){!T||!s.value||typeof MutationObserver>"u"||(Z(),d=new MutationObserver(()=>C()),d.observe(T,{childList:!0,subtree:!0}))}function Z(){d&&(d.disconnect(),d=null)}function O(T){const j=m;if(!j)return typeof window>"u"?T.offsetTop:T.getBoundingClientRect().top+window.scrollY;const oe=T.getBoundingClientRect(),A=j.getBoundingClientRect();return oe.top-A.top+j.scrollTop}function E(){if(!s.value||!r.value.length)return;const T=m,j=(T?T.scrollTop:null)||(typeof window<"u"?window.scrollY:0),oe=(T?T.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),A=j+oe;let P=null;for(let q=0;q<r.value.length;q+=1){const I=r.value[q],J=document.getElementById(I.id);if(J){const te=O(J);te+J.offsetHeight>j&&te<A&&(P=I.id)}}!P&&l.value&&(P=l.value),P&&(l.value=P);const Y=T?T.scrollHeight-T.clientHeight:document.documentElement.scrollHeight-window.innerHeight;j+5>=Y&&(P=r.value[r.value.length-1].id),P&&(a.value=P)}function S(){s.value&&(y&&window.cancelAnimationFrame(y),y=window.requestAnimationFrame(()=>{E(),y=0}))}function _(T){if(!s.value)return;const j=document.getElementById(T);if(!j)return;const oe=m,A=Math.max(0,O(j));oe?oe.scrollTo({top:A,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:A,behavior:"smooth"})}return t({refresh:C}),(T,j)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",Fh,e.toDisplayString(T.title),1),e.createElementVNode("div",Dh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,oe=>(e.openBlock(),e.createElementBlock("div",{key:oe.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",oe.level===2?"vs-compact-form-navigation__item--nested":"",oe.id===a.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:A=>_(oe.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",oe.level===2?"pl-[15px]":"pl-[18px]",oe.id===a.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(oe.text),1)],10,Th)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),gt={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},Ih=o=>typeof o=="string"?o.trim()?!1:gt.required:Array.isArray(o)?o.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:gt.required:typeof o=="number"?Number?.isNaN(o)?gt?.required:!1:o?!1:gt.required,Oh=o=>{const t=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;return o?t.test(o)?!1:gt.email:!1},Ph=(o,t)=>{if(!o)return!1;const n=String(o).trim();if(!/^\+[1-9]\d{1,14}$/.test(n))return gt.tel;const l=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:Tt(Et))||Tt(Et);return n.length-1!==l?gt.tel:!1},Gr=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,Rh=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Gr(o)<n?t?.message||gt.minlength(n):!1},zh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Gr(o)>n?t?.message||gt.maxlength(n):!1},Kn=o=>{if(typeof o=="number")return o;if(typeof o=="string"){const t=o.trim().replace(",",".");return t?Number(t):Number.NaN}return Number(o)},jh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Kn(o);return Number.isFinite(r)&&r<n?t?.message||gt.min(n):!1},Uh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Kn(o);return Number.isFinite(r)&&r>n?t?.message||gt.max(n):!1},Hh=(o,t,n)=>{if(o==null||o==="")return!1;const r=t?.field;if(!r||!n)return!1;const a=n[r];if(a==null||a==="")return!1;const l=Kn(o),s=Kn(a);return!Number.isFinite(l)||!Number.isFinite(s)?!1:l>s?t?.message||`Значення має бути не більше ${s}`:!1},qh=(o,t)=>{const n=t.pattern??t.regexp,r=typeof n=="string"?new RegExp(n):n;if(Array.isArray(o)){const a=o.filter(Boolean);return a.length===0||a.every(l=>r.test(l))?!1:t.message}return!r.test(o)&&o?t.message:!1},Wh=(o,t)=>!1,Kh=(o,t,n)=>{switch(typeof t=="string"?t:t.type){case"required":return Ih(o);case"email":return Oh(o);case"tel":return Ph(o,typeof t=="object"?t:void 0);case"regexp":return qh(o,t);case"minlength":return Rh(o,t);case"maxlength":return zh(o,t);case"min":return jh(o,t);case"max":return Uh(o,t);case"maxField":return Hh(o,t,n);case"custom":return Wh();default:return!1}},Gh={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function Yr(o){const t=o?.toLowerCase();return Gh[t]||t}function Eo(o,t=!1){if(Array.isArray(o)){const r=[];return o.forEach(a=>{const l={...a};if(l.name=(a.name||a.id||a.key||"").toString(),l.type=Yr(a.type),l.label=a.label||a.ua,l.rules=a.rules||a.validators,l.type==="email"&&!l.rules&&(l.rules=["email"]),l.type==="tel"&&!l.rules){const s=l.mask||Et,c=Tt(s)||Tt(Et);l.rules=[{type:"tel",digits:c}]}a.data&&(l.api=`/api/suggest/${a.data}`),l.disabled=l.disabled??t,Array.isArray(l.schema)&&(l.schema=Eo(l.schema,l.disabled)),r.push(l)}),r}const n=[];return Object.entries(o).forEach(r=>{const a={name:r[0],...r[1],type:Yr(r[1].type),label:r[1].label||r[1].ua,rules:r[1].rules||r[1].validators,disabled:r[1].disabled??t};if(a.type==="email"&&!a.rules&&(a.rules=["email"]),a.type==="tel"&&!a.rules){const l=a.mask||Et,s=Tt(l)||Tt(Et);a.rules=[{type:"tel",digits:s}]}r[1].type?.includes("list")&&(a.multiple=!0),!a.api&&r[1].data&&(a.api=`/api/suggest/${r[1].data}`),Array.isArray(a.schema)&&(a.schema=Eo(a.schema,a.disabled)),n.push(a)}),n}function Yh(o,t,n=!1){const r=e.computed(()=>Eo((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),a=e.ref({});function l(p){return wr(o?.value,p?.conditions)}const s=new Set(["maxField"]);function c(p){return typeof p.maxField=="string"&&p.maxField?!0:(p.rules||[]).some(m=>{const f=typeof m=="string"?m:m.type;return f?s.has(f):!1})}function i(p){const m=[],f=Number(p?.minlength),w=Number(p?.maxlength),b=Number(p?.min),v=Number(p?.max);!Number.isNaN(f)&&Number.isFinite(f)&&m.push({type:"minlength",value:f}),!Number.isNaN(w)&&Number.isFinite(w)&&m.push({type:"maxlength",value:w}),!Number.isNaN(b)&&Number.isFinite(b)&&m.push({type:"min",value:b}),!Number.isNaN(v)&&Number.isFinite(v)&&m.push({type:"max",value:v}),typeof p?.maxField=="string"&&p.maxField&&m.push({type:"maxField",field:p.maxField,message:p.maxFieldMessage});const C=[...m,...p.rules||[]];if(!C.length)return;if(!l(p)){delete a.value[p.name];return}let V=!1,$=null;C.forEach(U=>{const Z=Kh(o.value[p.name],U,o.value);Z&&(V=!0,!$&&typeof Z=="string"&&($=Z))}),V&&$?a.value[p.name]=$:delete a.value[p.name]}const d=(p=r.value,m=!0)=>(p.forEach(f=>{i(f),f.schema&&d(f.schema,!1)}),m&&Object.values(a.value).some(Boolean)?a.value:null);e.watch(o,()=>{const p=[],m=f=>{f.forEach(w=>{c(w)&&p.push(w),w.schema&&m(w.schema)})};m(r.value),p.forEach(i)},{deep:!0});const h=e.computed(()=>r.value?.filter(p=>p.hidden!==!0&&l(p)));return{errors:a,validate:d,reset:()=>{o.value={},a.value={}},visibleSchema:h}}const Xh={class:"flex w-full h-full min-h-0 gap-6"},Zh={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},rt=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},allowIdField:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(o,{expose:t,emit:n}){const r=n,a=o,l=e.computed(()=>!!a.formId||a.allowIdField),s=e.useModel(o,"form"),c=e.useModel(o,"modelValue"),i=e.useModel(o,"values"),d=e.computed({get:()=>i.value??c.value,set:Y=>{c.value=Y,i.value=Y}}),{errors:h,validate:y,reset:p,visibleSchema:m}=Yh(d,a.schema,e.toRef(a,"disabled")),f=e.ref(null),w=e.ref(null),b=e.ref({}),v=e.computed(()=>a.navigation),C=e.computed(()=>a.navWidth),V=e.computed(()=>a.style?.columns),$=Object.freeze({container:12,label:3}),U=e.computed(()=>a.columns??V.value??$),Z=e.computed(()=>a.columns!=null||V.value!=null),O=e.computed(()=>Z.value?"horizontal":a.layout),E=Y=>Y?.columns?"horizontal":O.value,S=Y=>Y?.columns??U.value,_=e.computed(()=>{const Y={},q=I=>{if(!I)return;(Array.isArray(I)?I.map((te,L)=>({key:String(L),entry:te})):typeof I=="object"?Object.entries(I).map(([te,L])=>({key:te,entry:L})):[]).forEach(({key:te,entry:L})=>{if(!L||typeof L!="object")return;const M=L.name?String(L.name):te;M&&(Y[M]={...L,name:M}),Array.isArray(L.schema)&&q(L.schema)})};return q(a.schema),Y}),T=()=>{!l.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),y(),r("handle-submit",d.value)},j=Y=>{r("value-selected",Y)};t({validate:y,reset:p,errors:h}),e.onMounted(()=>{s.value={value:d.value,errors:h.value,reset:p,validate:y,formId:a.formId}});function oe(Y,q){if(Y===q)return!0;if(typeof Y!="object"||typeof q!="object"||!Y||!q)return!1;const I=Object.keys(Y),J=Object.keys(q);return I.length!==J.length?!1:I.every(te=>Y[te]===q[te])}function A(Y){return Array.isArray(Y)?[...Y]:Y&&typeof Y=="object"?{...Y}:Y}function P(Y){Array.isArray(Y)&&Y.forEach(q=>{if(!q)return;const I=q.name,J=q.default!==void 0;I&&J&&d.value[I]===void 0&&(d.value[I]=A(q.default)),Array.isArray(q.schema)&&P(q.schema)})}return e.watch(m,Y=>{P(Y)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.provide("field-props",b),e.provide("schema-by-name",_),(Y,q)=>(e.openBlock(),e.createElementBlock("div",Xh,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:w},[e.createElementVNode("form",{ref_key:"formRef",ref:f,onSubmit:e.withModifiers(T,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",O.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),(I,J)=>(e.openBlock(),e.createElementBlock("div",{key:I.name,class:e.normalizeClass(E(I)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${I.col||12}`)},[e.createVNode(Kr,{style:e.normalizeStyle(Y.style),item:I,layout:E(I),columns:S(I),"model-value":d.value[I.name],"onUpdate:modelValue":te=>{if(I.name==="id"&&!l.value)return;const L=d.value[I.name];oe(L,te)||(d.value[I.name]=te)},error:e.unref(h)[I.name],onValueSelected:j},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),E(I)==="settings"&&J+1!==e.unref(m).length?(e.openBlock(),e.createElementBlock("div",Zh)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(Lh,{target:f.value,"scroll-container":w.value,enabled:v.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),Jh={class:"relative"},Qh={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},eg={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"},tg={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},ng={class:"font-medium text-gray-800 dark:text-[#ffffff]"},og={class:"p-4 mim-h-0 h-full overflow-auto"},Xr=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(o,{emit:t}){const n=o,r=t,a=e.ref(n.schema),l=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),c=e.ref(n.token||""),i=e.ref(n.token||""),d=e.ref(n.mode),h=()=>{const b=n.method?.trim().toUpperCase();return b==="GET"||b==="POST"||b==="PUT"?b:d.value==="add"?"POST":"PUT"},y=()=>{ge.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},p=b=>{const v={};b.id!==void 0&&b.id!==null&&(v.id=b.id,i.value=b.id.toString()),b.obj&&typeof b.obj=="object"&&Object.assign(v,b.obj),Object.keys(v).length&&(l.value={...l.value,...v})},m=async b=>{if(console.log(b),b.ok){await b.json().catch(()=>({})),y(),r("save",l.value);return}const v=await b.json().catch(()=>({})),C=v.message||v.error;if(b.status===400){ge.notify({type:"warning",title:"Помилка валідації",message:C||"Некоректні дані (400)"});return}if(b.status===403){ge.notify({type:"warning",title:"Доступ заборонено",message:C||"Доступ заборонено (403)"});return}if(b.status===500){ge.notify({type:"error",title:"Серверна помилка",message:C||"Виникла помилка на сервері (500)"});return}ge.notify({type:"error",title:"Помилка",message:C||`Статус: ${b.status}`})};async function f(){const b=s.value.validate();if(b){ge.notify({type:"warning",title:"Помилка валідації",message:Object.entries(b).map(([C,V])=>`${C}: ${V}`).join(`
|
|
5
|
+
`)});return}d.value==="add"&&l.value&&delete l.value.id;const v=n.api?.trim();if(v){const C=h();try{const V=await fetch(v,{method:C,headers:C==="GET"?void 0:{"Content-Type":"application/json"},body:C==="GET"?void 0:JSON.stringify(l.value)});await m(V)}catch(V){ge.notify({type:"error",title:"Помилка з’єднання",message:V.message||"Не вдалося виконати запит"})}return}if(c.value)try{const C=await fetch(`/api/table/${c.value}`,{method:d.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(l.value)});await m(C)}catch(C){ge.notify({type:"error",title:"Помилка з’єднання",message:C.message||"Не вдалося виконати запит"})}else r("edit",l.value),w()}function w(){r("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const b=await fetch(`/api/template/form/${n.form}`);if(!b.ok){ge.notify({type:b.status>=400&&b.status<500?"warning":"error",title:"Error",message:`Error code: ${b.status}`});return}const v=await b.json();a.value=v.schema,v.id&&(i.value=v.id),v.token&&(c.value=v.token,i.value||(i.value=v.token))}else if(n.token&&!n.defaultValue){c.value=n.token;const b=await fetch(`/api/form/${c.value}`);if(!b.ok){ge.notify({type:b.status>=400&&b.status<500?"warning":"error",title:"Error",message:`Error code: ${b.status}`});return}const v=await b.json();a.value=v.schema,v.data?l.value=v.data:d.value="add",p({id:v.id,obj:v.obj})}}catch(b){ge.notify({type:"error",title:"Error",message:b.message||"Unexpected error"}),console.error(b)}}),(b,v)=>(e.openBlock(),e.createElementBlock("div",Jh,[e.createElementVNode("div",Qh,[e.createElementVNode("div",eg,[e.createElementVNode("div",tg,[e.createElementVNode("h3",ng,e.toDisplayString(d.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:w,type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"},[v[2]||(v[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(X.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",og,[a.value?(e.openBlock(),e.createBlock(rt,{key:0,schema:a.value,values:l.value,"onUpdate:values":v[0]||(v[0]=C=>l.value=C),form:s.value,"onUpdate:form":v[1]||(v[1]=C=>s.value=C),formId:i.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:w,class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:f,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"}," Зберегти ")])])])]))}}),Zr=lo.form.richtext,Jr=ao.form.richtext,Bo={en:{form:{richtext:Zr}},uk:{form:{richtext:Jr}}},Qr=(o={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=ge.modal({title:o.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:Xr,contentProps:{...o,onClose:()=>{t(null),n()},onSave:r=>{t(r),n()}}})});rt.install=function(t){t.component("VForm",rt),Object.assign(t.config.globalProperties,{$form:Qr}),t.provide("form",Qr),window.v3plugin||(window.v3plugin={})};function Lt(o){return typeof o=="string"||o instanceof String}function el(o){var t;return typeof o=="object"&&o!=null&&(o==null||(t=o.constructor)==null?void 0:t.name)==="Object"}function tl(o,t){return Array.isArray(t)?tl(o,(n,r)=>t.includes(r)):Object.entries(o).reduce((n,r)=>{let[a,l]=r;return t(l,a)&&(n[a]=l),n},{})}const ye={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function nl(o){switch(o){case ye.LEFT:return ye.FORCE_LEFT;case ye.RIGHT:return ye.FORCE_RIGHT;default:return o}}function Vo(o){return o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function Gn(o,t){if(t===o)return!0;const n=Array.isArray(t),r=Array.isArray(o);let a;if(n&&r){if(t.length!=o.length)return!1;for(a=0;a<t.length;a++)if(!Gn(t[a],o[a]))return!1;return!0}if(n!=r)return!1;if(t&&o&&typeof t=="object"&&typeof o=="object"){const l=t instanceof Date,s=o instanceof Date;if(l&&s)return t.getTime()==o.getTime();if(l!=s)return!1;const c=t instanceof RegExp,i=o instanceof RegExp;if(c&&i)return t.toString()==o.toString();if(c!=i)return!1;const d=Object.keys(t);for(a=0;a<d.length;a++)if(!Object.prototype.hasOwnProperty.call(o,d[a]))return!1;for(a=0;a<d.length;a++)if(!Gn(o[d[a]],t[d[a]]))return!1;return!0}else if(t&&o&&typeof t=="function"&&typeof o=="function")return t.toString()===o.toString();return!1}class rg{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?ye.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?ye.RIGHT:ye.LEFT}}function Ce(o,t){return new Ce.InputMask(o,t)}function ol(o){if(o==null)throw new Error("mask property should be defined");return o instanceof RegExp?Ce.MaskedRegExp:Lt(o)?Ce.MaskedPattern:o===Date?Ce.MaskedDate:o===Number?Ce.MaskedNumber:Array.isArray(o)||o===Array?Ce.MaskedDynamic:Ce.Masked&&o.prototype instanceof Ce.Masked?o:Ce.Masked&&o instanceof Ce.Masked?o.constructor:o instanceof Function?Ce.MaskedFunction:(console.warn("Mask not found for mask",o),Ce.Masked)}function Jt(o){if(!o)throw new Error("Options in not defined");if(Ce.Masked){if(o.prototype instanceof Ce.Masked)return{mask:o};const{mask:t=void 0,...n}=o instanceof Ce.Masked?{mask:o}:el(o)&&o.mask instanceof Ce.Masked?o:{};if(t){const r=t.mask;return{...tl(t,(a,l)=>!l.startsWith("_")),mask:t.constructor,_mask:r,...n}}}return el(o)?{...o}:{mask:o}}function yt(o){if(Ce.Masked&&o instanceof Ce.Masked)return o;const t=Jt(o),n=ol(t.mask);if(!n)throw new Error("Masked class is not found for provided mask "+t.mask+", appropriate module needs to be imported manually before creating mask.");return t.mask===n&&delete t.mask,t._mask&&(t.mask=t._mask,delete t._mask),new n(t)}Ce.createMask=yt;class Yn{get selectionStart(){let t;try{t=this._unsafeSelectionStart}catch{}return t??this.value.length}get selectionEnd(){let t;try{t=this._unsafeSelectionEnd}catch{}return t??this.value.length}select(t,n){if(!(t==null||n==null||t===this.selectionStart&&n===this.selectionEnd))try{this._unsafeSelect(t,n)}catch{}}get isActive(){return!1}}Ce.MaskElement=Yn;const rl=90,lg=89;class un extends Yn{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,n,r;return(t=(n=(r=this.input).getRootNode)==null?void 0:n.call(r))!=null?t:document}get isActive(){return this.input===this.rootElement.activeElement}bindEvents(t){this.input.addEventListener("keydown",this._onKeydown),this.input.addEventListener("input",this._onInput),this.input.addEventListener("beforeinput",this._onBeforeinput),this.input.addEventListener("compositionend",this._onCompositionEnd),this.input.addEventListener("drop",t.drop),this.input.addEventListener("click",t.click),this.input.addEventListener("focus",t.focus),this.input.addEventListener("blur",t.commit),this._handlers=t}_onKeydown(t){if(this._handlers.redo&&(t.keyCode===rl&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===lg&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===rl&&(t.metaKey||t.ctrlKey))return t.preventDefault(),this._handlers.undo(t);t.isComposing||this._handlers.selectionChange(t)}_onBeforeinput(t){if(t.inputType==="historyUndo"&&this._handlers.undo)return t.preventDefault(),this._handlers.undo(t);if(t.inputType==="historyRedo"&&this._handlers.redo)return t.preventDefault(),this._handlers.redo(t)}_onCompositionEnd(t){this._handlers.input(t)}_onInput(t){t.isComposing||this._handlers.input(t)}unbindEvents(){this.input.removeEventListener("keydown",this._onKeydown),this.input.removeEventListener("input",this._onInput),this.input.removeEventListener("beforeinput",this._onBeforeinput),this.input.removeEventListener("compositionend",this._onCompositionEnd),this.input.removeEventListener("drop",this._handlers.drop),this.input.removeEventListener("click",this._handlers.click),this.input.removeEventListener("focus",this._handlers.focus),this.input.removeEventListener("blur",this._handlers.commit),this._handlers={}}}Ce.HTMLMaskElement=un;class ll extends un{constructor(t){super(t),this.input=t}get _unsafeSelectionStart(){return this.input.selectionStart!=null?this.input.selectionStart:this.value.length}get _unsafeSelectionEnd(){return this.input.selectionEnd}_unsafeSelect(t,n){this.input.setSelectionRange(t,n)}get value(){return this.input.value}set value(t){this.input.value=t}}Ce.HTMLMaskElement=un;class So extends un{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||r==null||r<a?r:a}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,a=n&&n.focusOffset;return a==null||r==null||r>a?r:a}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const r=this.rootElement.createRange();r.setStart(this.input.firstChild||this.input,t),r.setEnd(this.input.lastChild||this.input,n);const a=this.rootElement,l=a.getSelection&&a.getSelection();l&&(l.removeAllRanges(),l.addRange(r))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}Ce.HTMLContenteditableMaskElement=So;class Xn{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>Xn.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}}Xn.MAX_LENGTH=100;class al{constructor(t,n){this.el=t instanceof Yn?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new So(t):new ll(t),this.masked=yt(n),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new Xn,this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this._onUndo=this._onUndo.bind(this),this._onRedo=this._onRedo.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}maskEquals(t){var n;return t==null||((n=this.masked)==null?void 0:n.maskEquals(t))}get mask(){return this.masked.mask}set mask(t){if(this.maskEquals(t))return;if(!(t instanceof Ce.Masked)&&this.masked.constructor===ol(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof Ce.Masked?t:yt({mask:t});n.unmaskedValue=this.masked.unmaskedValue,this.masked=n}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,n){const r=this._listeners[t];r&&r.forEach(a=>a(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,r=this.masked.value,a=this.masked.rawInputValue,l=this.displayValue,s=this.unmaskedValue!==n||this.value!==r||this._rawInputValue!==a;this._unmaskedValue=n,this._value=r,this._rawInputValue=a,this.el.value!==l&&(this.el.value=l),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:n,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:n,...r}=t,a=!this.maskEquals(n),l=this.masked.optionsIsChanged(r);a&&(this.mask=n),l&&this.masked.updateOptions(r),(a||l)&&this.updateControl()}updateCursor(t){t!=null&&(this.cursorPos=t,this._delayUpdateCursor(t))}_delayUpdateCursor(t){this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(()=>{this.el&&(this.cursorPos=this._changingCursorPos,this._abortUpdateCursor())},10)}_fireChangeEvents(){this._fireEvent("accept",this._inputEvent),this.masked.isComplete&&this._fireEvent("complete",this._inputEvent)}_abortUpdateCursor(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)}alignCursor(){this.cursorPos=this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos,ye.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,n){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(n),this}off(t,n){if(!this._listeners[t])return this;if(!n)return delete this._listeners[t],this;const r=this._listeners[t].indexOf(n);return r>=0&&this._listeners[t].splice(r,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new rg({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),r=this.masked.rawInputValue,a=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,l=r===this.masked.rawInputValue?n.removeDirection:ye.NONE;let s=this.masked.nearestInputPos(n.startChangePos+a,l);l!==ye.NONE&&(s=this.masked.nearestInputPos(s,ye.NONE)),this.updateControl(s),delete this._inputEvent}_onChange(){this.displayValue!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}_onDrop(t){t.preventDefault(),t.stopPropagation()}_onFocus(t){this.alignCursorFriendly()}_onClick(t){this.alignCursorFriendly()}_onUndo(){this._applyHistoryState(this.history.undo())}_onRedo(){this._applyHistoryState(this.history.redo())}_applyHistoryState(t){t&&(this._historyChanging=!0,this.unmaskedValue=t.unmaskedValue,this.el.select(t.selection.start,t.selection.end),this._saveSelection(),this._historyChanging=!1)}destroy(){this._unbindEvents(),this._listeners.length=0,delete this.el}}Ce.InputMask=al;class Ve{static normalize(t){return Array.isArray(t)?t:[t,new Ve]}constructor(t){Object.assign(this,{inserted:"",rawInserted:"",tailShift:0,skip:!1},t)}aggregate(t){return this.inserted+=t.inserted,this.rawInserted+=t.rawInserted,this.tailShift+=t.tailShift,this.skip=this.skip||t.skip,this}get offset(){return this.tailShift+this.inserted.length}get consumed(){return!!this.rawInserted||this.skip}equals(t){return this.inserted===t.inserted&&this.tailShift===t.tailShift&&this.rawInserted===t.rawInserted&&this.skip===t.skip}}Ce.ChangeDetails=Ve;class bt{constructor(t,n,r){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=r}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const n=this.value[0];return this.value=this.value.slice(1),n}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class Xe{constructor(t){this._value="",this._update({...Xe.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,n){n===void 0&&(n={input:!0}),this.reset(),this.append(t,n,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,n){return t}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),Math.min(this.displayValue.length,n-t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this.displayValue.slice(t,n)}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new bt(this.extractInput(t,n),t)}appendTail(t){return Lt(t)&&(t=new bt(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new Ve({inserted:t,rawInserted:t})):new Ve}_appendChar(t,n,r){n===void 0&&(n={});const a=this.state;let l;if([t,l]=this.doPrepareChar(t,n),t&&(l=l.aggregate(this._appendCharRaw(t,n)),!l.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=a;let c=this.pad(n);const i=this._appendCharRaw(t,n);c=c.aggregate(i),i.rawInserted||c.equals(l)?l=c:this.state=s}if(l.inserted){let s,c=this.doValidate(n)!==!1;if(c&&r!=null){const i=this.state;if(this.overwrite===!0){s=r.state;for(let h=0;h<l.rawInserted.length;++h)r.unshift(this.displayValue.length-l.tailShift)}let d=this.appendTail(r);if(c=d.rawInserted.length===r.toString().length,!(c&&d.inserted)&&this.overwrite==="shift"){this.state=i,s=r.state;for(let h=0;h<l.rawInserted.length;++h)r.shift();d=this.appendTail(r),c=d.rawInserted.length===r.toString().length}c&&d.inserted&&(this.state=i)}c||(l=new Ve,this.state=a,r&&s&&(r.state=s))}return l}_appendPlaceholder(){return new Ve}_appendEager(){return new Ve}append(t,n,r){if(!Lt(t))throw new Error("value should be string");const a=Lt(r)?new bt(String(r)):r;n!=null&&n.tail&&(n._beforeTailState=this.state);let l;[t,l]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const c=this._appendChar(t[s],n,a);if(!c.rawInserted&&!this.doSkipInvalid(t[s],n,a))break;l.aggregate(c)}return(this.eager===!0||this.eager==="append")&&n!=null&&n.input&&t&&l.aggregate(this._appendEager()),a!=null&&(l.tailShift+=this.appendTail(a).tailShift),l}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(n),new Ve}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,r=this.value,a=t();return this.rawInputValue=n,this.value&&this.value!==r&&r.indexOf(this.value)===0&&(this.append(r.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,a}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,r=t(this);return this.state=n,delete this._isolated,r}doSkipInvalid(t,n,r){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),Ve.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),Ve.normalize(this.prepareChar?this.prepareChar(t,this,n):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,n,r,a,l){r===void 0&&(r=""),a===void 0&&(a=ye.NONE),l===void 0&&(l={input:!0});const s=t+n,c=this.extractTail(s),i=this.eager===!0||this.eager==="remove";let d;i&&(a=nl(a),d=this.extractInput(0,s,{raw:!0}));let h=t;const y=new Ve;if(a!==ye.NONE&&(h=this.nearestInputPos(t,n>1&&t!==0&&!i?ye.NONE:a),y.tailShift=h-t),y.aggregate(this.remove(h)),i&&a!==ye.NONE&&d===this.rawInputValue)if(a===ye.FORCE_LEFT){let p;for(;d===this.rawInputValue&&(p=this.displayValue.length);)y.aggregate(new Ve({tailShift:-1})).aggregate(this.remove(p-1))}else a===ye.FORCE_RIGHT&&c.unshift();return y.aggregate(this.append(r,l,c))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!Gn(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||Xe.EMPTY_VALUES.includes(t)&&Xe.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new Ve}}Xe.DEFAULTS={skipInvalid:!0},Xe.EMPTY_VALUES=[void 0,null,""],Ce.Masked=Xe;class It{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=Lt(t)?new bt(String(t)):t;const n=this.chunks[this.chunks.length-1],r=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof bt)r?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof It){if(t.stop==null){let a;for(;t.chunks.length&&t.chunks[0].stop==null;)a=t.chunks.shift(),a.from+=t.from,this.extend(a)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof Ce.MaskedPattern))return new bt(this.toString()).appendTo(t);const n=new Ve;for(let r=0;r<this.chunks.length;++r){const a=this.chunks[r],l=t._mapPosToBlock(t.displayValue.length),s=a.stop;let c;if(s!=null&&(!l||l.index<=s)&&((a instanceof It||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),c=a instanceof It&&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,...r}=t;Object.assign(this,r),this.chunks=n.map(a=>{const l="chunks"in a?new It:new bt;return l.state=a,l})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let r=0;for(;r<this.chunks.length;){const a=this.chunks[r],l=a.unshift(n);if(a.toString()){if(!l)break;++r}else this.chunks.splice(r,1);if(l)return l}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],r=n.shift();if(n.toString()){if(!r)break;--t}else this.chunks.splice(t,1);if(r)return r}return""}}class ag{constructor(t,n){this.masked=t,this._log=[];const{offset:r,index:a}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=r,this.index=a,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ye.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,ye.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ye.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ye.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,ye.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ye.NONE),!0})}}class $o{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(n),this._value||(this._isRawInput=!1),new Ve}nearestInputPos(t,n){n===void 0&&(n=ye.NONE);const r=0,a=this._value.length;switch(n){case ye.LEFT:case ye.FORCE_LEFT:return r;case ye.NONE:case ye.RIGHT:case ye.FORCE_RIGHT:default:return a}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),r===void 0&&(r={}),r.raw&&this._isRawInput&&this._value.slice(t,n)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Ve;const r=this.eager===!0||this.eager==="append",l=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!r)&&!n.tail,s=new Ve({inserted:this.char,rawInserted:l?this.char:""});return this._value=this.char,this._isRawInput=l&&(n.raw||n.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new Ve;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new bt("")}appendTail(t){return Lt(t)&&(t=new bt(String(t))),t.appendTo(this)}append(t,n,r){const a=this._appendChar(t[0],n);return r!=null&&(a.tailShift+=this.appendTail(r).tailShift),a}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class pn{constructor(t){const{parent:n,isOptional:r,placeholderChar:a,displayChar:l,lazy:s,eager:c,...i}=t;this.masked=yt(i),Object.assign(this,{parent:n,isOptional:r,placeholderChar:a,displayChar:l,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 Ve}get value(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}get unmaskedValue(){return this.masked.unmaskedValue}get rawInputValue(){return this.masked.rawInputValue}get displayValue(){return this.masked.value&&this.displayChar||this.value}get isComplete(){return!!this.masked.value||this.isOptional}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Ve;const r=this.masked.state;let a=this.masked._appendChar(t,this.currentMaskFlags(n));return a.inserted&&this.doValidate(n)===!1&&(a=new Ve,this.masked.state=r),!a.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(a.inserted=this.placeholderChar),a.skip=!a.inserted&&!this.isOptional,this.isFilled=!!a.inserted,a}append(t,n,r){return this.masked.append(t,this.currentMaskFlags(n),r)}_appendPlaceholder(){return this.isFilled||this.isOptional?new Ve:(this.isFilled=!0,new Ve({inserted:this.placeholderChar}))}_appendEager(){return new Ve}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,r)}nearestInputPos(t,n){n===void 0&&(n=ye.NONE);const r=0,a=this.value.length,l=Math.min(Math.max(t,r),a);switch(n){case ye.LEFT:case ye.FORCE_LEFT:return this.isComplete?l:r;case ye.RIGHT:case ye.FORCE_RIGHT:return this.isComplete?l:a;case ye.NONE:default:return l}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.value.slice(t,n).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var n;return{...t,_beforeTailState:(t==null||(n=t._beforeTailState)==null?void 0:n.masked)||t?._beforeTailState}}pad(t){return new Ve}}pn.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 sl extends Xe{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=r=>r.search(n)>=0),super._update(t)}}Ce.MaskedRegExp=sl;class Ze extends Xe{constructor(t){super({...Ze.DEFAULTS,...t,definitions:Object.assign({},pn.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const n=this.mask;if(!n||!t)return;let r=!1,a=!1;for(let l=0;l<n.length;++l){if(this.blocks){const d=n.slice(l),h=Object.keys(this.blocks).filter(p=>d.indexOf(p)===0);h.sort((p,m)=>m.length-p.length);const y=h[0];if(y){const{expose:p,repeat:m,...f}=Jt(this.blocks[y]),w={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...f,repeat:m,parent:this},b=m!=null?new Ce.RepeatBlock(w):yt(w);b&&(this._blocks.push(b),p&&(this.exposeBlock=b),this._maskedBlocks[y]||(this._maskedBlocks[y]=[]),this._maskedBlocks[y].push(this._blocks.length-1)),l+=y.length-1;continue}}let s=n[l],c=s in t;if(s===Ze.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){r=!r;continue}if(s==="["||s==="]"){a=!a;continue}if(s===Ze.ESCAPE_CHAR){if(++l,s=n[l],!s)break;c=!1}const i=c?new pn({isOptional:a,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...Jt(t[s]),parent:this}):new $o({char:s,eager:this.eager,isUnmasking:r});this._blocks.push(i)}}get state(){return{...super.state,_blocks:this._blocks.map(t=>t.state)}}set state(t){if(!t){this.reset();return}const{_blocks:n,...r}=t;this._blocks.forEach((a,l)=>a.state=n[l]),super.state=r}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,n)=>t+=n.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(n),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,n)=>t+=n.value,"")}set value(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(n),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(n),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,n)=>t+=n.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const n=new Ve;let r=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(r==null)return n;this._blocks[r].isFilled&&++r;for(let a=r;a<this._blocks.length;++a){const l=this._blocks[a]._appendEager();if(!l.inserted)break;n.aggregate(l)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._mapPosToBlock(this.displayValue.length),a=new Ve;if(!r)return a;for(let s=r.index,c;c=this._blocks[s];++s){var l;const i=c._appendChar(t,{...n,_beforeTailState:(l=n._beforeTailState)==null||(l=l._blocks)==null?void 0:l[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 r=new It;return t===n||this._forEachBlocksInRange(t,n,(a,l,s,c)=>{const i=a.extractTail(s,c);i.stop=this._findStopBefore(l),i.from=this._blockStartPos(l),i instanceof It&&(i.blockIndex=l),r.extend(i)}),r}extractInput(t,n,r){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),r===void 0&&(r={}),t===n)return"";let a="";return this._forEachBlocksInRange(t,n,(l,s,c,i)=>{a+=l.extractInput(c,i,r)}),a}_findStopBefore(t){let n;for(let r=0;r<this._stops.length;++r){const a=this._stops[r];if(a<=t)n=a;else break}return n}_appendPlaceholder(t){const n=new Ve;if(this.lazy&&t==null)return n;const r=this._mapPosToBlock(this.displayValue.length);if(!r)return n;const a=r.index,l=t??this._blocks.length;return this._blocks.slice(a,l).forEach(s=>{if(!s.lazy||t!=null){var c;n.aggregate(s._appendPlaceholder((c=s._blocks)==null?void 0:c.length))}}),n}_mapPosToBlock(t){let n="";for(let r=0;r<this._blocks.length;++r){const a=this._blocks[r],l=n.length;if(n+=a.displayValue,t<=n.length)return{index:r,offset:t-l}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,r)=>n+=r.displayValue.length,0)}_forEachBlocksInRange(t,n,r){n===void 0&&(n=this.displayValue.length);const a=this._mapPosToBlock(t);if(a){const l=this._mapPosToBlock(n),s=l&&a.index===l.index,c=a.offset,i=l&&s?l.offset:this._blocks[a.index].displayValue.length;if(r(this._blocks[a.index],a.index,c,i),l&&!s){for(let d=a.index+1;d<l.index;++d)r(this._blocks[d],d,0,this._blocks[d].displayValue.length);r(this._blocks[l.index],l.index,0,l.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._forEachBlocksInRange(t,n,(a,l,s,c)=>{r.aggregate(a.remove(s,c))}),r}nearestInputPos(t,n){if(n===void 0&&(n=ye.NONE),!this._blocks.length)return 0;const r=new ag(this,t);if(n===ye.NONE)return r.pushRightBeforeInput()||(r.popState(),r.pushLeftBeforeInput())?r.pos:this.displayValue.length;if(n===ye.LEFT||n===ye.FORCE_LEFT){if(n===ye.LEFT){if(r.pushRightBeforeFilled(),r.ok&&r.pos===t)return t;r.popState()}if(r.pushLeftBeforeInput(),r.pushLeftBeforeRequired(),r.pushLeftBeforeFilled(),n===ye.LEFT){if(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.ok&&r.pos<=t||(r.popState(),r.ok&&r.pos<=t))return r.pos;r.popState()}return r.ok?r.pos:n===ye.FORCE_LEFT?0:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:0)}return n===ye.RIGHT||n===ye.FORCE_RIGHT?(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.pushRightBeforeFilled()?r.pos:n===ye.FORCE_RIGHT?this.displayValue.length:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:this.nearestInputPos(t,ye.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let r=0;return this._forEachBlocksInRange(t,n,(a,l,s,c)=>{r+=a.totalInputPositions(s,c)}),r}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(r=>this._blocks[r]):[]}pad(t){const n=new Ve;return this._forEachBlocksInRange(0,this.displayValue.length,r=>n.aggregate(r.pad(t))),n}}Ze.DEFAULTS={...Xe.DEFAULTS,lazy:!0,placeholderChar:"_"},Ze.STOP_CHAR="`",Ze.ESCAPE_CHAR="\\",Ze.InputDefinition=pn,Ze.FixedDefinition=$o,Ce.MaskedPattern=Ze;class mn extends Ze{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:n=this.to||0,from:r=this.from||0,maxLength:a=this.maxLength||0,autofix:l=this.autofix,...s}=t;this.to=n,this.from=r,this.maxLength=Math.max(String(n).length,a),this.autofix=l;const c=String(this.from).padStart(this.maxLength,"0"),i=String(this.to).padStart(this.maxLength,"0");let d=0;for(;d<i.length&&i[d]===c[d];)++d;s.mask=i.slice(0,d).replace(/0/g,"\\0")+"0".repeat(this.maxLength-d),super._update(s)}get isComplete(){return super.isComplete&&!!this.value}boundaries(t){let n="",r="";const[,a,l]=t.match(/^(\D*)(\d*)(\D*)/)||[];return l&&(n="0".repeat(a.length)+l,r="9".repeat(a.length)+l),n=n.padEnd(this.maxLength,"0"),r=r.padEnd(this.maxLength,"9"),[n,r]}doPrepareChar(t,n){n===void 0&&(n={});let r;return[t,r]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(r.skip=!this.isComplete),[t,r]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const r=String(this.from).padStart(this.maxLength,"0"),a=String(this.to).padStart(this.maxLength,"0"),[l,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(r[this.value.length],n):Number(l)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(r[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(a[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[a,l]=this.boundaries(n);return this.from<=Number(l)&&Number(a)<=this.to&&super.doValidate(t)}pad(t){const n=new Ve;if(this.value.length===this.maxLength)return n;const r=this.value,a=this.maxLength-this.value.length;if(a){this.reset();for(let l=0;l<a;++l)n.aggregate(super._appendCharRaw("0",t));r.split("").forEach(l=>this._appendCharRaw(l))}return n}}Ce.MaskedRange=mn;const sg="d{.}`m{.}`Y";class kt extends Ze{static extractPatternOptions(t){const{mask:n,pattern:r,...a}=t;return{...a,mask:Lt(n)?n:r}}constructor(t){super(kt.extractPatternOptions({...kt.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:r,blocks:a,...l}={...kt.DEFAULTS,...t},s=Object.assign({},kt.GET_DEFAULT_BLOCKS());t.min&&(s.Y.from=t.min.getFullYear()),t.max&&(s.Y.to=t.max.getFullYear()),t.min&&t.max&&s.Y.from===s.Y.to&&(s.m.from=t.min.getMonth()+1,s.m.to=t.max.getMonth()+1,s.m.from===s.m.to&&(s.d.from=t.min.getDate(),s.d.to=t.max.getDate())),Object.assign(s,this.blocks,a),super._update({...l,mask:Lt(n)?n:r,blocks:s})}doValidate(t){const n=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&n!=null&&(this.min==null||this.min<=n)&&(this.max==null||n<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(kt.extractPatternOptions(t))}}kt.GET_DEFAULT_BLOCKS=()=>({d:{mask:mn,from:1,to:31,maxLength:2},m:{mask:mn,from:1,to:12,maxLength:2},Y:{mask:mn,from:1900,to:9999}}),kt.DEFAULTS={...Ze.DEFAULTS,mask:Date,pattern:sg,format:(o,t)=>{if(!o)return"";const n=String(o.getDate()).padStart(2,"0"),r=String(o.getMonth()+1).padStart(2,"0"),a=o.getFullYear();return[n,r,a].join(".")},parse:(o,t)=>{const[n,r,a]=o.split(".").map(Number);return new Date(a,r-1,n)}},Ce.MaskedDate=kt;class fn extends Xe{constructor(t){super({...fn.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(n=>{const{expose:r,...a}=Jt(n),l=yt({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...a});return r&&(this.exposeMask=l),l}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._applyDispatch(t,n);return this.currentMask&&r.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),r}_applyDispatch(t,n,r){t===void 0&&(t=""),n===void 0&&(n={}),r===void 0&&(r="");const a=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,l=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:l,c=l.slice(s.length),i=this.currentMask,d=new Ve,h=i?.state;return this.currentMask=this.doDispatch(t,{...n},r),this.currentMask&&(this.currentMask!==i?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-a.length),c&&(d.tailShift+=this.currentMask.append(c,{raw:!0,tail:!0}).tailShift)):h&&(this.currentMask.state=h)),d}_appendPlaceholder(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}_appendEager(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}appendTail(t){const n=new Ve;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,r;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((r=t._beforeTailState)==null?void 0:r.currentMask)||t._beforeTailState}}doDispatch(t,n,r){return n===void 0&&(n={}),r===void 0&&(r=""),this.dispatch(t,this,n,r)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[r,a]=super.doPrepare(t,n);if(this.currentMask){let l;[r,l]=super.doPrepare(r,this.currentMaskFlags(n)),a=a.aggregate(l)}return[r,a]}doPrepareChar(t,n){n===void 0&&(n={});let[r,a]=super.doPrepareChar(t,n);if(this.currentMask){let l;[r,l]=super.doPrepareChar(r,this.currentMaskFlags(n)),a=a.aggregate(l)}return[r,a]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const r=new Ve;return this.currentMask&&r.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),r}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(n=>n.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:n,currentMaskRef:r,currentMask:a,...l}=t;n&&this.compiledMasks.forEach((s,c)=>s.state=n[c]),r!=null&&(this.currentMask=r,this.currentMask.state=a),super.state=l}extractInput(t,n,r){return this.currentMask?this.currentMask.extractInput(t,n,r):""}extractTail(t,n){return this.currentMask?this.currentMask.extractTail(t,n):super.extractTail(t,n)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,n){return this.currentMask?this.currentMask.nearestInputPos(t,n):super.nearestInputPos(t,n)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((n,r)=>{if(!t[r])return;const{mask:a,...l}=t[r];return Gn(n,l)&&n.maskEquals(a)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}fn.DEFAULTS={...Xe.DEFAULTS,dispatch:(o,t,n,r)=>{if(!t.compiledMasks.length)return;const a=t.rawInputValue,l=t.compiledMasks.map((s,c)=>{const i=t.currentMask===s,d=i?s.displayValue.length:s.nearestInputPos(s.displayValue.length,ye.FORCE_LEFT);return s.rawInputValue!==a?(s.reset(),s.append(a,{raw:!0})):i||s.remove(d),s.append(o,t.currentMaskFlags(n)),s.appendTail(r),{index:c,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,ye.FORCE_LEFT)))}});return l.sort((s,c)=>c.weight-s.weight||c.totalInputPositions-s.totalInputPositions),t.compiledMasks[l[0].index]}},Ce.MaskedDynamic=fn;class hn extends Ze{constructor(t){super({...hn.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...r}=t;if(n){const a=n.map(c=>c.length),l=Math.min(...a),s=Math.max(...a)-l;r.mask="*".repeat(l),s&&(r.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(r)}_appendCharRaw(t,n){n===void 0&&(n={});const r=Math.min(this.nearestInputPos(0,ye.FORCE_RIGHT),this.value.length),a=this.enum.filter(l=>this.matchValue(l,this.unmaskedValue+t,r));if(a.length){a.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,c)=>{const i=a[0][c];c>=this.value.length||i===s.value||(s.reset(),s._appendChar(i,n))});const l=super._appendCharRaw(a[0][this.value.length],n);return a.length===1&&a[0].slice(this.unmaskedValue.length).split("").forEach(s=>l.aggregate(super._appendCharRaw(s))),l}return new Ve({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new bt("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new Ve;const r=Math.min(super.nearestInputPos(0,ye.FORCE_RIGHT),this.value.length);let a;for(a=t;a>=0&&!(this.enum.filter(c=>this.matchValue(c,this.value.slice(r,a),r)).length>1);--a);const l=super.remove(a,n);return l.tailShift+=a-t,l}get isComplete(){return this.enum.indexOf(this.value)>=0}}hn.DEFAULTS={...Ze.DEFAULTS,matchValue:(o,t,n)=>o.indexOf(t,n)===n},Ce.MaskedEnum=hn;class il extends Xe{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}Ce.MaskedFunction=il;var cl;class tt extends Xe{constructor(t){super({...tt.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",r=(this.scale?"("+Vo(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+r),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(Vo).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(Vo(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const n=t.split(this.radix);return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),n.join(this.radix)}doPrepareChar(t,n){n===void 0&&(n={});const[r,a]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!r&&(a.skip=!0),r&&!this.allowPositive&&!this.value&&r!=="-"&&a.aggregate(this._appendChar("-")),[r,a]}_separatorsCount(t,n){n===void 0&&(n=!1);let r=0;for(let a=0;a<t;++a)this._value.indexOf(this.thousandsSeparator,a)===a&&(++r,n&&(t+=this.thousandsSeparator.length));return r}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n),this._removeThousandsSeparators(super.extractInput(t,n,r))}_appendCharRaw(t,n){n===void 0&&(n={});const r=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,a=this._separatorsCountFromSlice(r);this._value=this._removeThousandsSeparators(this.value);const l=this._value;this._value+=t;const s=this.number;let c=!isNaN(s),i=!1;if(c){let p;this.min!=null&&this.min<0&&this.number<this.min&&(p=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(p=this.max),p!=null&&(this.autofix?(this._value=this.format(p,this).replace(tt.UNMASKED_RADIX,this.radix),i||(i=l===this._value&&!n.tail)):c=!1),c&&(c=!!this._value.match(this._numberRegExp))}let d;c?d=new Ve({inserted:this._value.slice(l.length),rawInserted:i?"":t,skip:i}):(this._value=l,d=new Ve),this._value=this._insertThousandsSeparators(this._value);const h=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,y=this._separatorsCountFromSlice(h);return d.tailShift+=(y-a)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,r=this.value.indexOf(this.thousandsSeparator,n);if(r<=t)return r}return-1}_adjustRangeWithSeparators(t,n){const r=this._findSeparatorAround(t);r>=0&&(t=r);const a=this._findSeparatorAround(n);return a>=0&&(n=a+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const r=this.value.slice(0,t),a=this.value.slice(n),l=this._separatorsCount(r.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(r+a));const s=this._separatorsCountFromSlice(r);return new Ve({tailShift:(s-l)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case ye.NONE:case ye.LEFT:case ye.FORCE_LEFT:{const r=this._findSeparatorAround(t-1);if(r>=0){const a=r+this.thousandsSeparator.length;if(t<a||this.value.length<=a||n===ye.FORCE_LEFT)return r}break}case ye.RIGHT:case ye.FORCE_RIGHT:{const r=this._findSeparatorAround(t);if(r>=0)return r+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let n=t;this.min!=null&&(n=Math.max(n,this.min)),this.max!=null&&(n=Math.min(n,this.max)),n!==t&&(this.unmaskedValue=this.format(n,this));let r=this.value;this.normalizeZeros&&(r=this._normalizeZeros(r)),this.padFractionalZeros&&this.scale>0&&(r=this._padFractionalZeros(r)),this._value=r}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(r,a,l,s)=>a+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,r){n===void 0&&(n={});const a=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===tt.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,r)&&!a}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,tt.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(tt.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)||tt.EMPTY_VALUES.includes(t)&&tt.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}cl=tt,tt.UNMASKED_RADIX=".",tt.EMPTY_VALUES=[...Xe.EMPTY_VALUES,0],tt.DEFAULTS={...Xe.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[cl.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:o=>o.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},Ce.MaskedNumber=tt;const Zn={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function Ao(o,t,n){t===void 0&&(t=Zn.MASKED),n===void 0&&(n=Zn.MASKED);const r=yt(o);return a=>r.runIsolated(l=>(l[t]=a,l[n]))}function dl(o,t,n,r){return Ao(t,n,r)(o)}Ce.PIPE_TYPE=Zn,Ce.createPipe=Ao,Ce.pipe=dl;class ul extends Ze{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var n,r,a;const{repeat:l,...s}=Jt(t);this._blockOpts=Object.assign({},this._blockOpts,s);const c=yt(this._blockOpts);this.repeat=(n=(r=l??c.repeat)!=null?r:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((a=this._blocks)==null?void 0:a.length)||0,this.repeatFrom)),blocks:{m:c},eager:c.eager,overwrite:c.overwrite,skipInvalid:c.skipInvalid,lazy:c.lazy,placeholderChar:c.placeholderChar,displayChar:c.displayChar})}_allocateBlock(t){if(t<this._blocks.length)return this._blocks[t];if(this.repeatTo===1/0||this._blocks.length<this.repeatTo)return this._blocks.push(yt(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const r=new Ve;for(let i=(a=(l=this._mapPosToBlock(this.displayValue.length))==null?void 0:l.index)!=null?a:Math.max(this._blocks.length-1,0),d,h;d=(s=this._blocks[i])!=null?s:h=!h&&this._allocateBlock(i);++i){var a,l,s,c;const y=d._appendChar(t,{...n,_beforeTailState:(c=n._beforeTailState)==null||(c=c._blocks)==null?void 0:c[i]});if(y.skip&&h){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(r.aggregate(y),y.consumed)break}return r}_trimEmptyTail(t,n){var r,a;t===void 0&&(t=0);const l=Math.max(((r=this._mapPosToBlock(t))==null?void 0:r.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(a=this._mapPosToBlock(n))==null?void 0:a.index),s==null&&(s=this._blocks.length-1);let c=0;for(let i=s;l<=i&&!this._blocks[i].unmaskedValue;--i,++c);c&&(this._blocks.splice(s-c+1,c),this.mask=this.mask.slice(c))}reset(){super.reset(),this._trimEmptyTail()}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._trimEmptyTail(t,n),r}totalInputPositions(t,n){return t===void 0&&(t=0),n==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,n)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}Ce.RepeatBlock=ul;try{globalThis.IMask=Ce}catch{}const Jn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:Ve,ChunksTailDetails:It,DIRECTION:ye,HTMLContenteditableMaskElement:So,HTMLInputMaskElement:ll,HTMLMaskElement:un,InputMask:al,MaskElement:Yn,Masked:Xe,MaskedDate:kt,MaskedDynamic:fn,MaskedEnum:hn,MaskedFunction:il,MaskedNumber:tt,MaskedPattern:Ze,MaskedRange:mn,MaskedRegExp:sl,PIPE_TYPE:Zn,PatternFixedDefinition:$o,PatternInputDefinition:pn,RepeatBlock:ul,createMask:yt,createPipe:Ao,default:Ce,forceDirection:nl,normalizeOpts:Jt,pipe:dl},Symbol.toStringTag,{value:"Module"}));function ig(){const o=e.ref(!1);return{isFullscreen:o,toggleFullscreen:()=>{o.value=!o.value}}}const cg="https://esm.sh",lt="3.7.2",pl="3.7.2",dg=`?deps=@tiptap/core@${lt},@tiptap/pm@${pl}`,at=o=>`${cg}/${o}${dg}`,st={core:at(`@tiptap/core@${lt}`),starterKit:at(`@tiptap/starter-kit@${lt}`),textStyle:at(`@tiptap/extension-text-style@${lt}`),table:at(`@tiptap/extension-table@${lt}`),highlight:at(`@tiptap/extension-highlight@${lt}`),subscript:at(`@tiptap/extension-subscript@${lt}`),superscript:at(`@tiptap/extension-superscript@${lt}`),link:at(`@tiptap/extension-link@${lt}`),image:at(`@tiptap/extension-image@${lt}`),textAlign:at(`@tiptap/extension-text-align@${lt}`),heading:at(`@tiptap/extension-heading@${lt}`),paragraph:at(`@tiptap/extension-paragraph@${lt}`),pmModel:at(`@tiptap/pm@${pl}/model`)},gn="__vs_form_tiptap_loader__",it=o=>import(o),He=(o,t)=>o?.[t]||o?.default?.[t]||o?.default?.default?.[t]||o?.default||o,ug=o=>o&&o.split(";").map(n=>n.trim()).filter(n=>n&&!/^text-align\s*:/i.test(n)).join("; ")||null,pg=o=>o.style?{style:String(o.style).replace(/;\s*$/,"")}:{},ml=({stripTextAlign:o=!1}={})=>({default:null,parseHTML:t=>{const n=t.getAttribute("style");return o?ug(n):n||null},renderHTML:t=>pg(t)}),mg=o=>o.extend({addAttributes(){return{...this.parent?.(),style:ml({stripTextAlign:!0})}}}),fg=o=>o.extend({addAttributes(){return{...this.parent?.(),style:ml()}}}),hg=o=>o.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}),gg=(o,t,n,r,a)=>{const l=t.extend({addAttributes(){return{...this.parent?.(),border:{default:null,parseHTML:s=>s.getAttribute("border"),renderHTML:s=>s.border?{border:s.border}:{}},cellpadding:{default:null,parseHTML:s=>s.getAttribute("cellpadding"),renderHTML:s=>s.cellpadding?{cellpadding:s.cellpadding}:{}},cellspacing:{default:null,parseHTML:s=>s.getAttribute("cellspacing"),renderHTML:s=>s.cellspacing?{cellspacing:s.cellspacing}:{}},style:{default:null,parseHTML:s=>s.getAttribute("style"),renderHTML:s=>s.style?{style:s.style}:{}},width:{default:null,parseHTML:s=>s.getAttribute("width"),renderHTML:s=>s.width?{width:s.width}:{}}}},parseHTML(){return[{tag:"div.tableWrapper table",priority:100},{tag:"table"}]}});return o.extend({addExtensions(){return[l.configure({resizable:!0}),n,r,a]}})},yg=o=>o.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),bg=o=>o.create({name:"iframe",group:"block",inline:!1,atom:!0,selectable:!0,addAttributes(){return{src:{default:null},width:{default:"100%"},height:{default:"280"},frameborder:{default:"0"},allow:{default:null},allowfullscreen:{default:null},referrerpolicy:{default:null},loading:{default:null},class:{default:null},title:{default:null},style:{default:null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["iframe",t]}});async function kg(){if(typeof window>"u")return null;const o=window;return o[gn]||(o[gn]=Promise.all([it(st.core),it(st.starterKit),it(st.textStyle),it(st.table),it(st.highlight),it(st.subscript),it(st.superscript),it(st.link),it(st.image),it(st.textAlign),it(st.heading),it(st.paragraph),it(st.pmModel)]).then(([t,n,r,a,l,s,c,i,d,h,y,p,m])=>{const f=He(t,"Editor"),w=He(t,"Node"),b=He(n,"StarterKit"),v=He(r,"TextStyle"),C=He(a,"TableKit"),V=He(a,"Table"),$=He(a,"TableRow"),U=He(a,"TableCell"),Z=He(a,"TableHeader"),O=He(l,"Highlight"),E=He(s,"Subscript"),S=He(c,"Superscript"),_=He(i,"Link"),T=He(d,"Image"),j=He(h,"TextAlign"),oe=He(y,"Heading"),A=He(p,"Paragraph"),P=He(m,"DOMParser");if(!f||!w||!b||!v||!C||!V||!$||!U||!Z||!O||!E||!S||!_||!T||!j||!oe||!A||!P)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:f,ProseMirrorDOMParser:P,StarterKit:b,ExtendedTextStyle:yg(v),Highlight:O,Subscript:E,Superscript:S,CustomLink:fg(_),Image:T,TextAlign:j,CustomHeading:hg(oe),CustomParagraph:mg(A),CustomTableKit:gg(C,V,$,U,Z),Iframe:bg(w)}}).catch(t=>{throw delete o[gn],t})),o[gn]}const Ot=o=>o.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),yn=o=>{let t=Ot(o||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,a,l)=>{const s=l?` title="${Ot(l)}"`:"";return`<img src="${Ot(a)}" alt="${Ot(r)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,a,l)=>{const s=l?` title="${Ot(l)}"`:"";return`<a href="${Ot(a)}"${s} target="_blank" rel="noopener noreferrer">${r}</a>`}),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_\n]+)_/g,"<em>$1</em>"),t},bn=o=>/^\s*\d+\.\s+/.test(o),No=o=>/^\s*[-*+]\s+/.test(o),fl=o=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(o),Mo=o=>/^\s*>\s?/.test(o),Fo=o=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(o),hl=o=>o.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>yn(t.trim())),wg=(o,t)=>{const n=o[t],r=o[t+1];if(!n||!r||!n.includes("|")||!Fo(r))return null;const a=hl(n),l=[];let s=t+2;for(;s<o.length&&o[s].includes("|")&&o[s].trim()!=="";){const d=hl(o[s]);l.push(`<tr>${d.map(h=>`<td>${h}</td>`).join("")}</tr>`),s+=1}const c=`<thead><tr>${a.map(d=>`<th>${d}</th>`).join("")}</tr></thead>`,i=l.length?`<tbody>${l.join("")}</tbody>`:"";return{html:`<table>${c}${i}</table>`,nextIndex:s}},xg=(o,t)=>{const n=bn(o[t]),r=n?"ol":"ul",a=[];let l=t;for(;l<o.length;){const s=o[l];if(s.trim()===""||!(n?bn(s):(No(s)||fl(s))&&!bn(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":""}> ${yn(i[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");a.push(`<li>${yn(d)}</li>`)}l+=1}return{html:`<${r}>${a.join("")}</${r}>`,nextIndex:l}},vg=(o,t)=>{const r=o[t].replace(/^```/,"").trim(),a=[];let l=t+1;for(;l<o.length&&!o[l].startsWith("```");)a.push(o[l]),l+=1;return{html:`<pre><code${r?` class="language-${Ot(r)}"`:""}>${Ot(a.join(`
|
|
6
|
+
`))}</code></pre>`,nextIndex:l<o.length?l+1:l}},_g=(o,t)=>{const n=[];let r=t;for(;r<o.length;){const a=o[r];if(a.trim()===""||a.startsWith("```")||/^#{1,6}\s+/.test(a)||/^---+$/.test(a.trim())||/^\*\*\*+$/.test(a.trim())||Mo(a)||bn(a)||No(a)||r+1<o.length&&a.includes("|")&&Fo(o[r+1]))break;n.push(a.trim()),r+=1}return{html:`<p>${yn(n.join(" "))}</p>`,nextIndex:r}},gl=o=>{const n=(o||"").replace(/\r\n/g,`
|
|
7
7
|
`).split(`
|
|
8
|
-
`),r=[];let a=0;for(;a<n.length;){const l=n[a],s=l.trim();if(!s){a+=1;continue}if(l.startsWith("```")){const d=vg(n,a);r.push(d.html),a=d.nextIndex;continue}const c=l.match(/^(#{1,6})\s+(.*)$/);if(c){const d=c[1].length;r.push(`<h${d}>${yn(c[2])}</h${d}>`),a+=1;continue}if(/^---+$/.test(s)||/^\*\*\*+$/.test(s)){r.push("<hr>"),a+=1;continue}if(l.includes("|")&&a+1<n.length&&Fo(n[a+1])){const d=wg(n,a);if(d){r.push(d.html),a=d.nextIndex;continue}}if(Mo(l)){const d=[];for(;a<n.length&&Mo(n[a]);)d.push(n[a].replace(/^\s*>\s?/,"")),a+=1;r.push(`<blockquote>${
|
|
9
|
-
`))}</blockquote>`);continue}if(bn(l)||No(l)||
|
|
10
|
-
`)},
|
|
11
|
-
`);function To(o){if(o.nodeType===Node.TEXT_NODE)return Do(o);if(o.nodeType!==Node.ELEMENT_NODE)return"";const t=o,n=t.tagName.toLowerCase(),r=
|
|
8
|
+
`),r=[];let a=0;for(;a<n.length;){const l=n[a],s=l.trim();if(!s){a+=1;continue}if(l.startsWith("```")){const d=vg(n,a);r.push(d.html),a=d.nextIndex;continue}const c=l.match(/^(#{1,6})\s+(.*)$/);if(c){const d=c[1].length;r.push(`<h${d}>${yn(c[2])}</h${d}>`),a+=1;continue}if(/^---+$/.test(s)||/^\*\*\*+$/.test(s)){r.push("<hr>"),a+=1;continue}if(l.includes("|")&&a+1<n.length&&Fo(n[a+1])){const d=wg(n,a);if(d){r.push(d.html),a=d.nextIndex;continue}}if(Mo(l)){const d=[];for(;a<n.length&&Mo(n[a]);)d.push(n[a].replace(/^\s*>\s?/,"")),a+=1;r.push(`<blockquote>${gl(d.join(`
|
|
9
|
+
`))}</blockquote>`);continue}if(bn(l)||No(l)||fl(l)){const d=xg(n,a);r.push(d.html),a=d.nextIndex;continue}const i=_g(n,a);r.push(i.html),a=i.nextIndex}return r.join("")},Do=o=>(o.textContent||"").replace(/\u00a0/g," "),yl=o=>Array.from(o.childNodes).map(t=>To(t)).join(""),Cg=o=>{const t=Array.from(o.querySelectorAll("tr"));if(!t.length)return"";const n=c=>`| ${Array.from(c.children).map(d=>yl(d).trim()).join(" | ")} |`,r=t[0],a=r?Array.from(r.children).length:0,l=`| ${Array(Math.max(a,1)).fill("---").join(" | ")} |`,s=t.slice(1).map(c=>n(c));return[n(r),l,...s].join(`
|
|
10
|
+
`)},bl=(o,t=!1)=>Array.from(o.children).filter(n=>n.nodeType===Node.ELEMENT_NODE).map((n,r)=>{const a=n,l=a.querySelector('input[type="checkbox"]'),s=Array.from(a.childNodes).filter(c=>!(c instanceof HTMLInputElement)).map(c=>To(c)).join("").trim();return l?`- [${l.checked?"x":" "}] ${s}`:t?`${r+1}. ${s}`:`- ${s}`}).join(`
|
|
11
|
+
`);function To(o){if(o.nodeType===Node.TEXT_NODE)return Do(o);if(o.nodeType!==Node.ELEMENT_NODE)return"";const t=o,n=t.tagName.toLowerCase(),r=yl(t);switch(n){case"br":return`
|
|
12
12
|
`;case"p":return`${r.trim()}
|
|
13
13
|
|
|
14
14
|
`;case"strong":case"b":return`**${r}**`;case"em":case"i":return`*${r}*`;case"del":case"s":return`~~${r}~~`;case"code":return t.parentElement?.tagName.toLowerCase()==="pre"?r:`\`${r}\``;case"pre":{const a=t.querySelector("code"),c=(a?.className||"").match(/language-([a-z0-9_-]+)/i)?.[1]||"",i=Do(a||t);return`\`\`\`${c}
|
|
@@ -21,18 +21,18 @@ ${i}
|
|
|
21
21
|
|
|
22
22
|
`;case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":{const a=Number(n[1]);return`${"#".repeat(a)} ${r.trim()}
|
|
23
23
|
|
|
24
|
-
`}case"ul":return`${
|
|
24
|
+
`}case"ul":return`${bl(t,!1)}
|
|
25
25
|
|
|
26
|
-
`;case"ol":return`${
|
|
26
|
+
`;case"ol":return`${bl(t,!0)}
|
|
27
27
|
|
|
28
28
|
`;case"a":{const a=t.getAttribute("href")||"";return`[${r||a}](${a})`}case"img":{const a=t.getAttribute("alt")||"",l=t.getAttribute("src")||"";return l?``:""}case"hr":return`---
|
|
29
29
|
|
|
30
30
|
`;case"table":return`${Cg(t)}
|
|
31
31
|
|
|
32
|
-
`;default:return r}}const
|
|
32
|
+
`;default:return r}}const kl=o=>{if(!o)return"";if(typeof window>"u"||typeof DOMParser>"u")return o;const n=new DOMParser().parseFromString(o,"text/html");return Array.from(n.body.childNodes).map(r=>To(r)).join("").replace(/\n{3,}/g,`
|
|
33
33
|
|
|
34
34
|
`).trim()},Eg=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),Bg=o=>{if(!o)return"";if(typeof window>"u"||typeof DOMParser>"u")return o;const n=new DOMParser().parseFromString(o,"text/html"),r=" ",a=(l,s)=>{if(l.nodeType===Node.TEXT_NODE){const m=(l.textContent||"").replace(/\s+/g," ").trim();return m?[`${r.repeat(s)}${m}`]:[]}if(l.nodeType!==Node.ELEMENT_NODE)return[];const c=l,i=c.tagName.toLowerCase(),d=Array.from(c.attributes).map(m=>`${m.name}="${m.value}"`).join(" "),h=d?`<${i} ${d}>`:`<${i}>`,y=`</${i}>`;if(Eg.has(i))return[`${r.repeat(s)}${h}`];const p=Array.from(c.childNodes).flatMap(m=>a(m,s+1));if(!p.length)return[`${r.repeat(s)}${h}${y}`];if(c.childNodes.length===1&&c.firstChild?.nodeType===Node.TEXT_NODE&&p.length===1){const m=p[0].trim();return[`${r.repeat(s)}${h}${m}${y}`]}return[`${r.repeat(s)}${h}`,...p,`${r.repeat(s)}${y}`]};return Array.from(n.body.childNodes).flatMap(l=>a(l,0)).join(`
|
|
35
|
-
`)},Vg=o=>o.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),Qn=o=>{if(!o)return"";if(typeof window>"u"||typeof DOMParser>"u")return o.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"");const n=new DOMParser().parseFromString(o,"text/html");return n.querySelectorAll("script").forEach(r=>r.remove()),n.body.innerHTML},kl=o=>{if(!o)return{wrapper:null,bodyHtml:""};if(typeof window>"u"||typeof DOMParser>"u")return{wrapper:null,bodyHtml:o};const n=new DOMParser().parseFromString(o,"text/html"),{body:r}=n;if(r.childElementCount!==1)return{wrapper:null,bodyHtml:o};const a=r.firstElementChild;return!a||a.tagName.toLowerCase()!=="div"?{wrapper:null,bodyHtml:o}:{wrapper:{tag:a.tagName.toLowerCase(),attributes:Array.from(a.attributes).map(l=>({name:l.name,value:l.value}))},bodyHtml:a.innerHTML}},wl=(o,t)=>{if(!t)return o||"";const n=(t.attributes||[]).map(({name:a,value:l})=>`${a}="${Vg(l)}"`).join(" ");return`${n?`<${t.tag} ${n}>`:`<${t.tag}>`}${o||""}</${t.tag}>`},xl=async(o,t)=>t!=="md"?o||"":hl(o||""),vl=async(o,t)=>t!=="md"?Bg(o||""):bl(o||""),Sg=async(o,t)=>t!=="md"?o||"":bl(o||""),$g=async o=>{try{const t=new FormData;return t.append("unique","true"),t.append("file",o),(await(await fetch("/file/upload/uploads?id=&form=&table=",{method:"POST",body:t})).json())?.result}catch(t){console.error(t)}},Ag=async(o,t,n)=>{const r=t.clipboardData?.items;if(r){const a=t.clipboardData?.getData("text/html"),l=t.clipboardData?.getData("text/plain");if(a){const{state:s,dispatch:c}=o,{tr:i}=s,d=n.fromSchema(o.state.schema),h=new DOMParser().parseFromString(a,"text/html").body,y=d.parse(h),p=i.replaceSelectionWith(y);return c(p),t.preventDefault(),!0}if(l){const{state:s,dispatch:c}=o,{tr:i}=s,d=i.insertText(l,s.selection.from,s.selection.to);return c(d),t.preventDefault(),!0}for(let s=0;s<r.length;s++){const c=r[s];if(c.type.startsWith("image/")){const i=c.getAsFile();if(i){const d=await $g(i),{schema:h}=o.state,y=h.nodes.image.create({src:d?.file_path}),p=o.state.tr.replaceSelectionWith(y);return o.dispatch(p),t.preventDefault(),!0}}}}return!1},Ng=o=>String(o).trim().toLowerCase().split("-")[0],Mg=()=>typeof window>"u"?"uk":Ng(localStorage.getItem("language")||localStorage.getItem("locale")||navigator.language||"uk"),Fg=(o,t)=>{const n=t.replace(/^form\.richtext\./,"");return Bo?.[o]?.form?.richtext?.[n]||Bo?.uk?.form?.richtext?.[n]||t},_l=o=>o.startsWith("form.richtext.")?o:`form.richtext.${o}`;function Lo(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties,n=t?.$i18n;return{t:a=>{const l=t?.$t,s=t?.$te,c=typeof n?.te=="function"?n.te.bind(n):null;if(typeof l=="function"){const i=_l(a);if((typeof s=="function"?s(i):typeof c=="function"?c(i):null)!==!1){const h=l(i);if(h&&h!==i)return h}}return Fg(Mg(),_l(a))}}}const Dg={components:{Quote:X.Quote},props:{editor:Object},methods:{toggleBlockquote(){this.editor&&this.editor.chain().toggleBlockquote().run()}}};function Tg(o,t,n,r,a,l){const s=e.resolveComponent("Quote");return e.openBlock(),e.createElementBlock("button",{title:"Blockquote",onClick:t[0]||(t[0]=(...c)=>l.toggleBlockquote&&l.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 Lg=Be(Dg,[["render",Tg]]),Ig={components:{List:X.List},props:{editor:Object},methods:{toggleBulletList(){this.editor&&this.editor.chain().focus().toggleBulletList().run()}}};function Og(o,t,n,r,a,l){const s=e.resolveComponent("List");return e.openBlock(),e.createElementBlock("button",{title:"Bullet List",onClick:t[0]||(t[0]=(...c)=>l.toggleBulletList&&l.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 Pg=Be(Ig,[["render",Og]]),Rg={components:{ListOrdered:X.ListOrdered},props:{editor:Object},methods:{toggleOrderedList(){this.editor&&this.editor.chain().focus().toggleOrderedList().run()}}};function zg(o,t,n,r,a,l){const s=e.resolveComponent("ListOrdered");return e.openBlock(),e.createElementBlock("button",{title:"Ordered List",onClick:t[0]||(t[0]=(...c)=>l.toggleOrderedList&&l.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 jg=Be(Rg,[["render",zg]]),Ug={components:{CodeXml:X.CodeXml},props:{editor:Object},methods:{toggleCodeBlock(){this.editor&&this.editor.chain().focus().toggleCodeBlock().run()}}};function Hg(o,t,n,r,a,l){const s=e.resolveComponent("CodeXml");return e.openBlock(),e.createElementBlock("button",{title:"Code Block",onClick:t[0]||(t[0]=(...c)=>l.toggleCodeBlock&&l.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 qg=Be(Ug,[["render",Hg]]),Wg={components:{Bold:X.Bold},props:{editor:Object},methods:{toggleBold(){this.editor&&this.editor.commands.toggleBold()}}};function Kg(o,t,n,r,a,l){const s=e.resolveComponent("Bold");return e.openBlock(),e.createElementBlock("button",{title:"Bold Text",onClick:t[0]||(t[0]=(...c)=>l.toggleBold&&l.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 Gg=Be(Wg,[["render",Kg]]),Yg={components:{Italic:X.Italic},props:{editor:Object},methods:{toggleItalic(){this.editor&&this.editor.chain().toggleItalic().run()}}};function Xg(o,t,n,r,a,l){const s=e.resolveComponent("Italic");return e.openBlock(),e.createElementBlock("button",{title:"Italic Text",onClick:t[0]||(t[0]=(...c)=>l.toggleItalic&&l.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 Zg=Be(Yg,[["render",Xg]]),Jg={__name:"vs-editor-underline",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().toggleUnderline().run()};return(r,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",[o.editor?.isActive("underline")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(X.Underline),{class:"h-4 w-4"})],2))}},Qg={__name:"vs-editor-strike",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().toggleStrike().run()};return(r,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",[o.editor?.isActive("strike")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(X.Strikethrough),{class:"h-4 w-4"})],2))}},ey={components:{X:X.X},props:{visible:{type:Boolean,default:()=>!1},modelValue:{type:Boolean,default:()=>!1},title:{type:String,default:()=>""},size:{type:String,default:()=>""},closeClickBack:{type:Boolean,default:()=>!1}},emits:["update:visible","update:modelValue","onClose","confirm","cancel"],inheritAttrs:!1,name:"vs-dialog",mounted(){window.addEventListener("keydown",this.checkKey)},unmounted(){window.removeEventListener("keydown",this.checkKey)},computed:{hasSlot(){return!!this.$slots?.footer},checkSize(){return this.size==="small"?"md:w-5/12 w-9/12":this.size==="medium"?"md:w-6/12 w-9/12":"lg:w-7/12 w-11/12"}},methods:{checkKey({key:o}){o==="Escape"&&this.handleClose()},handleClose(){this.$emit("update:visible",!1),this.$emit("update:modelValue",!1),this.$emit("onClose")},handleConfirm(){this.$emit("confirm"),this.handleClose()},handleCancel(){this.$emit("cancel"),this.handleClose()},closeByClickBack(o,t){t&&o.target.classList.contains("vs-dialog-overlay")&&this.handleClose()}}},ty={key:0,class:"vsTailwind ui-dialog__wrapper"},ny={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},oy={class:"font-medium text-gray-800 dark:text-[#ffffff]"},ry={class:"ui-dialog__content p-4"},ly={key:0,class:"flex justify-end gap-x-2"};function ay(o,t,n,r,a,l){const s=e.resolveComponent("X");return e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.visible||n.modelValue?(e.openBlock(),e.createElementBlock("div",ty,[e.createElementVNode("div",{onMousedown:t[1]||(t[1]=c=>l.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",[l.checkSize]])},[e.createElementVNode("div",ny,[e.createElementVNode("h3",oy,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)=>l.handleClose&&l.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",ry,[e.renderSlot(o.$slots,"default",{},void 0,!0)]),l.hasSlot?(e.openBlock(),e.createElementBlock("div",ly,[e.renderSlot(o.$slots,"footer",{handleClose:l.handleClose,handleConfirm:l.handleConfirm,handleCancel:l.handleCancel},void 0,!0)])):e.createCommentVNode("",!0)],2)]),_:3})],32)])):e.createCommentVNode("",!0)])}const Cl=Be(ey,[["render",ay],["__scopeId","data-v-56ad9010"]]),sy=e.defineComponent({components:{IconClose:X.X,IconSearch:X.Search,IconEmail:X.Mail},inheritAttrs:!1,props:{icon:{type:String,default:()=>""},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},modelValue:{type:String,default:()=>""},placeholder:{type:String,default:()=>""},iconPosition:{type:String,default:()=>"right"},type:{type:String,default:()=>"text"},style:{type:Object,default:()=>null},size:{type:String,default:()=>"md"},attrs:{type:Object,default:()=>{}}},emits:["onInput","update:modelValue","blur","focus"],computed:{checkSize(){return(this.style?.size||this.size)==="xs"?"h-[32px] text-sm":(this.style?.size||this.size)==="md"?"h-[38px] text-sm":(this.style?.size||this.size)==="lg"?"h-[46px] text-[20px]":"h-[38px] text-sm"},value:{get(){return this.modelValue},set(o){this.$emit("update:modelValue",o.trim())}},clearIconStyle(){return[{"right-8":this.icon&&this.iconPosition==="right","right-3":!this.icon||this.iconPosition!=="right","pointer-events-none":this.disabled}]},iconStylePosition(){return[{"left-3":this.icon&&this.iconPosition==="left","right-3":this.icon&&this.iconPosition==="right"}]},inputStyle(){return[{"!pr-8":this.clearable&&!this.icon,"!pr-7":this.clearable,"!pr-16":this.clearable&&this.icon&&this.iconPosition==="right","!pl-8":this.icon&&this.iconPosition==="left","!pr-[50px]":this.clearable&&this.value&&this.icon&&this.iconPosition==="right","!cursor-not-allowed bg-slate-100":this.disabled,"bg-white":!this.disabled}]}},methods:{handleInput(){this.$emit("onInput",this.modelValue)},handleBlur(){this.$emit("blur")},handleFocus(){this.$emit("focus")},clearInput(){this.$emit("update:modelValue",""),this.$emit("onInput","")},async inputFocus(){await this.$refs.vsText?.focus()}}}),iy={class:"vs-form-text relative bg-white rounded-lg"},cy={key:2,class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},dy=["disabled","type","placeholder"];function uy(o,t,n,r,a,l){const s=e.resolveComponent("IconClose"),c=e.resolveComponent("IconSearch"),i=e.resolveComponent("IconEmail");return e.openBlock(),e.createElementBlock("div",iy,[o.clearable&&o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[0]||(t[0]=(...d)=>o.clearInput&&o.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),o.icon&&o.icon==="search"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 cursor-pointer",o.iconStylePosition])},[e.createVNode(c,{class:"h-4 w-4 stroke-gray-500 transition-all"})],2)):o.icon&&o.icon==="email"?(e.openBlock(),e.createElementBlock("div",cy,[e.createVNode(i,{class:"h-4 w-4 stroke-gray-500 transition-all"})])):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 text-gray-500 cursor-pointer",["ti "+o.icon,o.iconStylePosition]])},null,2)),o.clearable&&o.value?(e.openBlock(),e.createElementBlock("div",{key:4,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[1]||(t[1]=(...d)=>o.clearInput&&o.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",e.mergeProps({ref:"vsText",disabled:o.disabled,type:o.type,onInput:t[2]||(t[2]=(...d)=>o.handleInput&&o.handleInput(...d)),placeholder:o.placeholder,"onUpdate:modelValue":t[3]||(t[3]=d=>o.value=d)},o.style?.attrs||o.attrs||{},{onFocus:t[4]||(t[4]=(...d)=>o.handleFocus&&o.handleFocus(...d)),onBlur:t[5]||(t[5]=(...d)=>o.handleBlur&&o.handleBlur(...d)),class:[[o.inputStyle,o.checkSize],"py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-sm text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"]}),null,16,dy),[[e.vModelDynamic,o.value]])])}const El=Be(sy,[["render",uy],["__scopeId","data-v-eb21a54f"]]),py=["title"],my={class:"flex flex-col gap-3 p-[20px]"},fy={class:"relative flex items-center gap-2"},hy={class:"flex-1"},gy={key:0,class:"flex items-center gap-2 flex-shrink-0"},yy=["title"],by=["title"],ky={class:"flex items-center gap-2"},wy={for:"openInNewTab",class:"text-sm text-gray-700 cursor-pointer"},xy={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},vy=Object.assign({inheritAttrs:!1},{__name:"vs-editor-link",props:{editor:Object},setup(o){const{t}=Lo(),n=o,r=e.ref(!1),a=e.ref(""),l=e.ref(!1),s=e.ref(!1),c=()=>{if(!n.editor)return;n.editor.chain().focus().extendMarkRange("link").run();const p=n.editor.getAttributes("link");p.href?(l.value=!0,a.value=p.href,s.value=p.target==="_blank"):(l.value=!1,a.value="",s.value=!1),r.value=!0},i=()=>{r.value=!1,a.value="",l.value=!1,s.value=!1},d=()=>{if(!n.editor||!a.value.trim())return;let p=a.value.trim();p.match(/^https?:\/\//i)||(p="https://"+p),n.editor.chain().focus().setLink({href:p,target:s.value?"_blank":null}).run(),i()},h=()=>{n.editor&&(n.editor.chain().focus().unsetLink().run(),i())},y=()=>{if(!a.value)return;let p=a.value.trim();p.match(/^https?:\/\//i)||(p="https://"+p),window.open(p,"_blank","noopener,noreferrer")};return(p,m)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("button",{title:e.unref(t)("form.richtext.link")||"Посилання",onClick:c,class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":o.editor?.isActive("link")}])},[e.createVNode(e.unref(X.Link2),{class:"h-4 w-4"})],10,py),e.createVNode(Cl,{title:l.value?e.unref(t)("form.richtext.editLink")||"Редагувати посилання":e.unref(t)("form.richtext.linkTitle")||"Додати посилання",visible:r.value,"onUpdate:visible":m[2]||(m[2]=f=>r.value=f),size:"small"},{footer:e.withCtx(()=>[e.createElementVNode("div",xy,[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(l.value?e.unref(t)("form.richtext.update")||"Оновити":e.unref(t)("form.richtext.create")||"Створити"),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",my,[e.createElementVNode("div",fy,[e.createElementVNode("div",hy,[e.createVNode(El,{modelValue:a.value,"onUpdate:modelValue":m[0]||(m[0]=f=>a.value=f),placeholder:e.unref(t)("form.richtext.linkUrl")||"Введіть URL",class:"w-full"},null,8,["modelValue","placeholder"])]),l.value?(e.openBlock(),e.createElementBlock("div",gy,[e.createElementVNode("button",{onClick:y,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(X.ExternalLink),{class:"h-4 w-4"})],8,yy),e.createElementVNode("button",{onClick:h,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(X.Trash2),{class:"h-4 w-4"})],8,by)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ky,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"openInNewTab","onUpdate:modelValue":m[1]||(m[1]=f=>s.value=f),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",wy,e.toDisplayString(e.unref(t)("form.richtext.openInNewTab")||"Відкривати в новій вкладці"),1)])])]),_:1},8,["title","visible"])],64))}}),kn=async(o,t,n,r=10)=>{if(!t||!n)return;await e.nextTick();const a=await n?.getBoundingClientRect(),l=await t?.getBoundingClientRect();if(!l||!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),h=await window.innerHeight,y=await window.innerWidth;let p=0,m=0;const f=l.bottom+r+i;switch(o){case"top":l.top-a.height-r<0?p=l.top-a.height+r+i+s:p=l.top-a.height-r,y>d+l.right+30?m=l.left-a.width/2+l.width/2:m=y-30-d;break;case"bottom":h>f?p=l.bottom+r:p=l.bottom-r-i-s,m=l.left-a.width/2+l.width/2;break;case"left":p=l.top-a.height/2+l.height/2,l.left-a.width-r>0?m=l.left-a.width-r:m=10;break;case"right":p=l.top-a.height/2+l.height/2,y-c>d?m=l.right+r:m=y-30-d;break;case"top-right":l.top-a.height-r<0?p=l.top-a.height+r+i+s:p=l.top-a.height-r,y-c>d?m=l.right+r:m=y-30-d;break;case"top-left":l.top-a.height-r<0?p=l.top-a.height+r+i+s:p=l.top-a.height-r,l.left-a.width-r>0?m=l.left-a.width-r:m=10;break;case"top-start":l.top-a.height-r<0?p=l.top-a.height+r+i+s:p=l.top-a.height-r,l.left>0?m=l.left:m=10;break;case"bottom-right":h>f?p=l.bottom+r:p=l.bottom-r-i-s,y-c>d?m=l.left:m=y-30-d;break;case"bottom-left":h>f?p=l.bottom+r:p=l.bottom-r-i-s,l.left>0?m=l.right-d:m=10;break;case"bottom-start":h>f?p=l.bottom+r:p=l.bottom-r-i-s,l.left>0?m=l.left:m=10;break}p+i>h?p=h-i-r:p<0&&(p=r),m+d>y?m=y-d-r:m<0&&(m=r),n instanceof HTMLElement&&(n.style.top=`${p}px`,n.style.left=`${m}px`,n.style.position="fixed")},_y={class:"text-center"},Cy={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"},Kt=Object.assign({inheritAttrs:!1},{__name:"vs-popover",props:{isOpen:{type:Boolean,default:()=>!1},placement:{type:String,default:"top"},gap:{type:Number,default:8},width:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},trigger:{type:String,default:"click"},teleport:{type:String,default:"body"}},emits:["isvisible"],setup(o,{expose:t,emit:n}){const r=o,a=n,l=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref(null),d=e.ref(null);e.watch(l,V=>{V?(h(),window.addEventListener("resize",()=>kn(r.placement,i.value,d.value)),kn(r.placement,i.value,d.value)):window.removeEventListener("resize",()=>kn(r.placement,i.value,d.value)),a("isvisible",V)}),e.onMounted(()=>{window.addEventListener("click",b),window.addEventListener("popstate",v),window.addEventListener("scroll",C,!0),h()}),e.onBeforeUnmount(()=>{window.removeEventListener("click",b),window.removeEventListener("popstate",v),y()});const h=()=>{let V=c.value;for(;V&&V!==document.body;)(V.scrollHeight>V.clientHeight||V.scrollWidth>V.clientWidth)&&(V.addEventListener("scroll",w),s.value.push(V)),V=V.parentElement;document.body&&(document.body.addEventListener("scroll",w),s.value.push(document.body))},y=()=>{s.value.forEach(V=>{V.removeEventListener("scroll",w)}),s.value=[]},p=()=>{l.value=!0,kn(r.placement,i.value,d.value)},m=()=>{l.value=!1},f=async()=>{await kn(r.placement,i.value,d.value),l.value=!l.value},w=()=>{l.value=!1},b=V=>{if(!V){l.value=!1;return}i.value?.contains(V.target)||d.value?.contains(V.target)||(l.value=!1)},v=()=>{l.value&&(l.value=!1)},C=V=>{l.value&&d.value&&!d.value.contains(V.target)&&(l.value=!1)};return t({togglePopover:f}),(V,$)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"popover",ref:c,class:"vs-popover inline-block"},[e.createElementVNode("div",_y,[o.trigger==="click"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverRef",ref:i,onClick:f,class:e.normalizeClass({"pointer-events-none":o.disabled})},[e.renderSlot(V.$slots,"reference",{},()=>[$[0]||($[0]=e.createElementVNode("button",null,"Click me!",-1))])],2)):e.createCommentVNode("",!0),o.trigger==="hover"?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"popoverRef",ref:i,onMouseover:p,onMouseleave:m,class:e.normalizeClass({"pointer-events-none":o.disabled})},[e.renderSlot(V.$slots,"reference",{},()=>[$[1]||($[1]=e.createElementVNode("button",null,"Click me!",-1))])],34)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:o.teleport},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content",o.placement]),ref_key:"contentPop",ref:d,style:e.normalizeStyle({width:o.width?o.width+"px":"fit-content",zIndex:100001})},[e.createElementVNode("div",Cy,[e.renderSlot(V.$slots,"default",{},()=>[$[2]||($[2]=e.createElementVNode("span",null,"Popover content",-1))])])],6),[[e.vShow,l.value]])]),_:3})],8,["to"]))])],512))}}),Ey={class:"flex flex-col gap-[2px] p-[2px]"},By=["onClick"],Vy={__name:"vs-editor-table",props:{editor:Object},setup(o){const{t}=Lo(),n=o,r=e.ref(!1),a=e.ref("popover"),l=()=>{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())},h=()=>{n.editor&&(n.editor.chain().focus().deleteTable().run(),a.value.togglePopover())},y=()=>{n.editor&&(n.editor.chain().focus().mergeCells().run(),a.value.togglePopover())},p=()=>{n.editor&&(n.editor.chain().focus().splitCell().run(),a.value.togglePopover())},m=e.computed(()=>[{text:t("form.richtext.createTable"),function:l},{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:h},{text:t("form.richtext.mergeCells"),function:y},{text:t("form.richtext.splitCells"),function:p}]);return(f,w)=>(e.openBlock(),e.createBlock(Kt,{ref_key:"popover",ref:a,placement:"bottom",onIsvisible:w[0]||(w[0]=b=>r.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",[r.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(X.Table2),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Ey,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(b,v)=>(e.openBlock(),e.createElementBlock("button",{key:v,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,By))),128))])]),_:1},512))}},Sy={class:"flex gap-[4px] p-1"},$y=["title","onClick"],Ay={__name:"vs-editor-align",props:{editor:Object},setup(o){const t=o,n={left:X.AlignLeft,center:X.AlignCenter,right:X.AlignRight,justify:X.AlignJustify},r=e.ref(!1),a=e.ref("popover"),l=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),h=e.computed(()=>s.value||c.value||i.value||d.value),y=()=>{c.value?l.value="right":i.value?l.value="center":d.value?l.value="justify":l.value="left"};e.watch([s,c,i,d],()=>{y()},{immediate:!0}),e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",y),t.editor.on("update",y))}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",y),t.editor.off("update",y))});const p=f=>{t.editor&&(t.editor.chain().focus().setTextAlign(f).run(),l.value=f)},m=e.ref([{id:"left",isActive:s},{id:"center",isActive:i},{id:"right",isActive:c},{id:"justify",isActive:d}]);return(f,w)=>(e.openBlock(),e.createBlock(Kt,{ref_key:"popover",ref:a,placement:"bottom",onIsvisible:w[0]||(w[0]=b=>r.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",[h.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[l.value]),{height:"16",width:"16"}))],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Sy,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.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:v=>p(b?.id)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[b?.id]),{height:"16",width:"16"}))],10,$y))),128))])]),_:1},512))}},Ny={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(o){this.$emit("update:modelValue",o)}}}},My={class:"flex items-center w-full max-w-[182px]"},Fy=["disabled"];function Dy(o,t,n,r,a,l){const s=e.resolveComponent("vs-text");return e.openBlock(),e.createElementBlock("div",My,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=c=>l.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,Fy),[[e.vModelText,l.value]]),n.isTextInputShown?(e.openBlock(),e.createBlock(s,{key:0,modelValue:l.value,"onUpdate:modelValue":t[1]||(t[1]=c=>l.value=c),class:"ml-2 w-full",disabled:n.disabled,clearable:n.clearable},null,8,["modelValue","disabled","clearable"])):e.createCommentVNode("",!0)])}const Bl=Be(Ny,[["render",Dy]]),Ty={class:"flex gap-[4px] mb-[8px]"},Ly={class:"grid grid-rows-3 grid-cols-7"},Iy={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},Oy=["onClick","title"],Py={__name:"vs-editor-color",props:{editor:Object},setup(o){const t=o,n=e.ref(null),r=e.ref("#000000"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").color||"#000000"),l=e.computed(()=>a.value!=="#000000"),s=()=>{t.editor&&(r.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=y=>{t.editor&&(t.editor.chain().focus().setColor(y).run(),r.value=y,n.value&&n.value.togglePopover())},d=()=>{i(r.value)},h=y=>({"#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"})[y]||y;return(y,p)=>(e.openBlock(),e.createBlock(Kt,{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":l.value}])},[p[1]||(p[1]=e.createElementVNode("span",{class:"leading-none"},"A",-1)),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",Ty,[e.createVNode(Bl,{modelValue:r.value,"onUpdate:modelValue":p[0]||(p[0]=m=>r.value=m)},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(X.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",Ly,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",Iy,[e.createElementVNode("button",{class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:m}),onClick:f=>i(m),title:h(m)},[r.value===m?(e.openBlock(),e.createBlock(e.unref(X.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,Oy)])]))),128))])])]),_:1},512))}},Ry={class:"flex gap-[4px] mb-[8px]"},zy={class:"grid grid-rows-3 grid-cols-7"},jy={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},Uy=["onClick","title"],Hy=["onClick","title"],qy={__name:"vs-editor-background-color",props:{editor:Object},setup(o){const t=o,n=e.ref(null),r=e.ref("transparent"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").backgroundColor||"transparent"),l=e.computed(()=>a.value!=="transparent"&&a.value!==""),s=()=>{t.editor&&(r.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=y=>{t.editor&&(t.editor.chain().focus().setBackgroundColor(y).run(),r.value=y,n.value&&n.value.togglePopover())},d=()=>{i(r.value)},h=y=>({"#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"})[y]||y;return(y,p)=>(e.openBlock(),e.createBlock(Kt,{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":l.value}])},[e.createVNode(e.unref(X.PaintBucket),{class:"h-4 w-4"}),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",Ry,[e.createVNode(Bl,{modelValue:r.value,"onUpdate:modelValue":p[0]||(p[0]=m=>r.value=m)},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(X.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",zy,[e.createElementVNode("button",{onClick:p[1]||(p[1]=m=>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(X.Eraser),{class:"h-4 w-4"}),p[2]||(p[2]=e.createElementVNode("p",null,"no color",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",jy,[m!=="transparent"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:m}),onClick:f=>i(m),title:h(m)},[r.value===m?(e.openBlock(),e.createBlock(e.unref(X.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,Uy)):e.createCommentVNode("",!0),m==="transparent"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"flex items-center justify-center w-full h-full",onClick:f=>i(m),title:h(m)},[r.value===m?(e.openBlock(),e.createBlock(e.unref(X.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],8,Hy)):e.createCommentVNode("",!0)])]))),128))])])]),_:1},512))}},Wy={__name:"vs-editor-highlight",props:{editor:Object},setup(o){const t=o,n=e.computed(()=>t.editor?.isActive("highlight")),r=()=>{t.editor&&t.editor.chain().focus().toggleHighlight().run()};return(a,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Highlight",onClick:r,class:e.normalizeClass(["flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-200":n.value}])},[e.createVNode(e.unref(X.Highlighter),{class:"h-4 w-4"})],2))}},Ky={class:"truncate"},Gy={class:"w-[200px]"},Yy={class:"max-h-[200px] overflow-y-auto"},Xy=["onClick"],Zy={__name:"vs-editor-font-family",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=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"}]),l=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(h=>h.value===l.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,h)=>(e.openBlock(),e.createBlock(Kt,{ref_key:"popover",ref:n,placement:"bottom",onIsvisible:h[0]||(h[0]=y=>r.value=y)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Font Family",class:e.normalizeClass(["h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm",[r.value?"bg-gray-100 text-gray-900":"text-gray-700"]]),style:e.normalizeStyle({fontFamily:l.value})},[e.createElementVNode("span",Ky,e.toDisplayString(s.value),1),e.createVNode(e.unref(X.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})],6)]),default:e.withCtx(()=>[e.createElementVNode("div",Gy,[e.createElementVNode("ul",Yy,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,y=>(e.openBlock(),e.createElementBlock("li",{key:y.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",{"bg-gray-100":c(y.value)}]),style:e.normalizeStyle({fontFamily:y.value}),onClick:p=>i(y.value)},e.toDisplayString(y.label),15,Xy))),128))])])]),_:1},512))}},Jy={class:"w-[120px]"},Qy={class:"max-h-[200px] overflow-y-auto"},e0=["onClick"],t0={__name:"vs-editor-font-size",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=e.ref("14px"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").fontSize||"14px"),l=e.computed(()=>a.value!=="14px"),s=()=>{t.editor&&(r.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(),r.value=d,n.value&&n.value.togglePopover())};return(d,h)=>(e.openBlock(),e.createBlock(Kt,{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":l.value}])},[e.createVNode(e.unref(X.ALargeSmall),{class:"h-4 w-4"}),e.createVNode(e.unref(X.ChevronDown),{class:"h-3 w-3 text-gray-400"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Jy,[e.createElementVNode("ul",Qy,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,y=>(e.openBlock(),e.createElementBlock("li",{key:y.value,class:"px-3 py-2 hover:bg-gray-100 cursor-pointer",onClick:p=>i(y.value)},e.toDisplayString(y.label),9,e0))),128))])])]),_:1},512))}},n0={components:{Superscript:X.Superscript},props:{editor:Object},methods:{toggleSuperscript(){this.editor&&this.editor.commands.toggleSuperscript()}}};function o0(o,t,n,r,a,l){const s=e.resolveComponent("Superscript");return e.openBlock(),e.createElementBlock("button",{title:"Superscript",onClick:t[0]||(t[0]=(...c)=>l.toggleSuperscript&&l.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 r0=Be(n0,[["render",o0]]),l0={components:{Subscript:X.Subscript},props:{editor:Object},methods:{toggleSubscript(){this.editor&&this.editor.commands.toggleSubscript()}}};function a0(o,t,n,r,a,l){const s=e.resolveComponent("Subscript");return e.openBlock(),e.createElementBlock("button",{title:"Subscript",onClick:t[0]||(t[0]=(...c)=>l.toggleSubscript&&l.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 s0=Be(l0,[["render",a0]]),i0={title:"Heading",class:"h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700"},c0={class:"truncate"},d0={class:"max-h-[200px] overflow-y-auto"},u0=["onClick"],p0=Be({__name:"vs-editor-heading",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=e.ref([{label:"Heading 1",value:1},{label:"Heading 2",value:2},{label:"Heading 3",value:3},{label:"Heading 4",value:4},{label:"Heading 5",value:5},{label:"Heading 6",value:6}]),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"}),l=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(Kt,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",i0,[e.createElementVNode("span",c0,e.toDisplayString(a.value),1),e.createVNode(e.unref(X.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})])]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("ul",d0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,h=>(e.openBlock(),e.createElementBlock("li",{key:h.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",`heading-level-${h.value}`]),style:e.normalizeStyle(l(h.value)),onClick:y=>s(h.value)},e.toDisplayString(h.label),15,u0))),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"]]),m0={components:{RemoveFormatting:X.RemoveFormatting},props:{editor:Object},methods:{clearFormatting(){this.editor&&this.editor.commands.unsetAllMarks()}}};function f0(o,t,n,r,a,l){const s=e.resolveComponent("RemoveFormatting");return e.openBlock(),e.createElementBlock("button",{title:"Clear Formatting",onClick:t[0]||(t[0]=(...c)=>l.clearFormatting&&l.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 h0=Be(m0,[["render",f0]]),g0={class:"relative"},y0={key:0,class:"mt-4"},b0=["src","alt","title"],k0={key:0,class:"text-sm text-red-500"},w0={key:1,class:"mt-4"},x0={class:"text-sm text-gray-600 mb-2"},v0={class:"flex flex-wrap gap-2"},_0=["src","alt","onError"],C0=["onClick"],E0={class:"flex justify-end gap-x-2 p-[20px]"},B0=Object.assign({inheritAttrs:!1},{__name:"vs-editor-image",props:{editor:{type:Object,required:!0}},setup(o){const t=o,n=e.ref(!1),r=e.ref(!1),a=e.ref({}),l=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 E=i.value.file.filter(T=>T instanceof File),S=i.value.file.filter(T=>typeof T=="string"&&T.trim()!=="");return E.length+S.length>1}return i.value.file instanceof FileList?i.value.file.length>1:!1}),h=e.computed(()=>Array.isArray(i.value.file)?i.value.file.filter(E=>E instanceof File).length===1:i.value.file instanceof FileList?i.value.file.length===1:i.value.file instanceof File),y=e.computed(()=>{if(d.value)return"";if(i.value.src)return i.value.src;if(h.value){let E=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?E=i.value.file[0]:i.value.file instanceof File&&(E=i.value.file),E instanceof File){const S=s.value.find(_=>_.file===E);return S?S.preview:""}else if(typeof E=="string")return E}return""}),p=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}]),m=()=>{if(!t.editor)return;if(t.editor.isActive("image")){const{state:S}=t.editor,{selection:_}=S,{$from:T}=_;let j=null,oe=null;if(T.parent.type.name==="image")j=T.before(T.depth),oe=T.parent;else for(let te=T.depth;te>0;te--){const L=T.node(te),M=T.before(te);L.type.name==="paragraph"&&L.forEach((N,Q)=>{if(N.type.name==="image"){const ae=M+Q+1;(j===null||Math.abs(ae-_.$from.pos)<Math.abs(j-_.$from.pos))&&(j=ae,oe=N)}})}if(j!==null&&oe){try{t.editor.chain().focus().setNodeSelection(j).run()}catch{t.editor.chain().focus().setTextSelection(j).run()}c.value=j}else{t.editor.chain().focus().selectParentNode().run();const{state:te}=t.editor;c.value=te.selection.$from.pos}const A=oe?oe.attrs:t.editor.getAttributes("image");l.value=!0;let P="",Y=!1;const q=t.editor.getAttributes("link");q&&q.href&&(P=q.href,Y=q.target==="_blank");const I=A.src||"",J=I?[I]:[];i.value={src:I,file:J,alt:A.alt||"",title:A.title||"",width:A.width||"",height:A.height||"",link:P,openInNewTab:Y}}else l.value=!1,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1};r.value=!1,n.value=!0},f=()=>{n.value=!1,r.value=!1,l.value=!1,s.value=[],c.value=null,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}},w=async E=>{if(!E||E.length===0)return;const S=[];for(const _ of E)if(_&&_.type&&_.type.startsWith("image/")&&!s.value.some(j=>j.file===_)){const j=new Promise((oe,A)=>{const P=new FileReader;P.onload=Y=>{s.value.push({file:_,preview:Y.target.result,error:!1}),oe()},P.onerror=A,P.readAsDataURL(_)});S.push(j)}await Promise.all(S)},b=E=>{s.value.splice(E,1),Array.isArray(i.value.file)&&i.value.file.splice(E,1)},v=()=>{const E=i.value.width!==null&&i.value.width!==void 0&&i.value.width!==""&&String(i.value.width).trim()!==""?String(i.value.width).trim():"",S=i.value.height!==null&&i.value.height!==void 0&&i.value.height!==""&&String(i.value.height).trim()!==""?String(i.value.height).trim():"",_={};return E&&S?(_.width=E,_.height=S,_.style=`width: ${E}px; height: ${S}px; object-fit: fill;`):E?(_.width=E,_.height=void 0):S?(_.height=S,_.width=void 0):(_.width=void 0,_.height=void 0),_},C=(E,S=null,_=50)=>{const T=()=>{const{view:A}=E;if(!A||!A.dom)return;A.dom.querySelectorAll("img.editor-image[width][height]").forEach(q=>{if(q instanceof HTMLImageElement){const I=q.getAttribute("width"),J=q.getAttribute("height");I&&J&&I!=="auto"&&J!=="auto"&&I!==""&&J!==""&&!isNaN(Number(I))&&!isNaN(Number(J))&&(q.style.cssText=`
|
|
35
|
+
`)},Vg=o=>o.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),Qn=o=>{if(!o)return"";if(typeof window>"u"||typeof DOMParser>"u")return o.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"");const n=new DOMParser().parseFromString(o,"text/html");return n.querySelectorAll("script").forEach(r=>r.remove()),n.body.innerHTML},wl=o=>{if(!o)return{wrapper:null,bodyHtml:""};if(typeof window>"u"||typeof DOMParser>"u")return{wrapper:null,bodyHtml:o};const n=new DOMParser().parseFromString(o,"text/html"),{body:r}=n;if(r.childElementCount!==1)return{wrapper:null,bodyHtml:o};const a=r.firstElementChild;return!a||a.tagName.toLowerCase()!=="div"?{wrapper:null,bodyHtml:o}:{wrapper:{tag:a.tagName.toLowerCase(),attributes:Array.from(a.attributes).map(l=>({name:l.name,value:l.value}))},bodyHtml:a.innerHTML}},xl=(o,t)=>{if(!t)return o||"";const n=(t.attributes||[]).map(({name:a,value:l})=>`${a}="${Vg(l)}"`).join(" ");return`${n?`<${t.tag} ${n}>`:`<${t.tag}>`}${o||""}</${t.tag}>`},vl=async(o,t)=>t!=="md"?o||"":gl(o||""),_l=async(o,t)=>t!=="md"?Bg(o||""):kl(o||""),Sg=async(o,t)=>t!=="md"?o||"":kl(o||""),$g=async o=>{try{const t=new FormData;return t.append("unique","true"),t.append("file",o),(await(await fetch("/file/upload/uploads?id=&form=&table=",{method:"POST",body:t})).json())?.result}catch(t){console.error(t)}},Ag=async(o,t,n)=>{const r=t.clipboardData?.items;if(r){const a=t.clipboardData?.getData("text/html"),l=t.clipboardData?.getData("text/plain");if(a){const{state:s,dispatch:c}=o,{tr:i}=s,d=n.fromSchema(o.state.schema),h=new DOMParser().parseFromString(a,"text/html").body,y=d.parse(h),p=i.replaceSelectionWith(y);return c(p),t.preventDefault(),!0}if(l){const{state:s,dispatch:c}=o,{tr:i}=s,d=i.insertText(l,s.selection.from,s.selection.to);return c(d),t.preventDefault(),!0}for(let s=0;s<r.length;s++){const c=r[s];if(c.type.startsWith("image/")){const i=c.getAsFile();if(i){const d=await $g(i),{schema:h}=o.state,y=h.nodes.image.create({src:d?.file_path}),p=o.state.tr.replaceSelectionWith(y);return o.dispatch(p),t.preventDefault(),!0}}}}return!1},Ng=o=>String(o).trim().toLowerCase().split("-")[0],Mg=()=>typeof window>"u"?"uk":Ng(localStorage.getItem("language")||localStorage.getItem("locale")||navigator.language||"uk"),Fg=(o,t)=>{const n=t.replace(/^form\.richtext\./,"");return Bo?.[o]?.form?.richtext?.[n]||Bo?.uk?.form?.richtext?.[n]||t},Cl=o=>o.startsWith("form.richtext.")?o:`form.richtext.${o}`;function Lo(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties,n=t?.$i18n;return{t:a=>{const l=t?.$t,s=t?.$te,c=typeof n?.te=="function"?n.te.bind(n):null;if(typeof l=="function"){const i=Cl(a);if((typeof s=="function"?s(i):typeof c=="function"?c(i):null)!==!1){const h=l(i);if(h&&h!==i)return h}}return Fg(Mg(),Cl(a))}}}const Dg={components:{Quote:X.Quote},props:{editor:Object},methods:{toggleBlockquote(){this.editor&&this.editor.chain().toggleBlockquote().run()}}};function Tg(o,t,n,r,a,l){const s=e.resolveComponent("Quote");return e.openBlock(),e.createElementBlock("button",{title:"Blockquote",onClick:t[0]||(t[0]=(...c)=>l.toggleBlockquote&&l.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 Lg=Be(Dg,[["render",Tg]]),Ig={components:{List:X.List},props:{editor:Object},methods:{toggleBulletList(){this.editor&&this.editor.chain().focus().toggleBulletList().run()}}};function Og(o,t,n,r,a,l){const s=e.resolveComponent("List");return e.openBlock(),e.createElementBlock("button",{title:"Bullet List",onClick:t[0]||(t[0]=(...c)=>l.toggleBulletList&&l.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 Pg=Be(Ig,[["render",Og]]),Rg={components:{ListOrdered:X.ListOrdered},props:{editor:Object},methods:{toggleOrderedList(){this.editor&&this.editor.chain().focus().toggleOrderedList().run()}}};function zg(o,t,n,r,a,l){const s=e.resolveComponent("ListOrdered");return e.openBlock(),e.createElementBlock("button",{title:"Ordered List",onClick:t[0]||(t[0]=(...c)=>l.toggleOrderedList&&l.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 jg=Be(Rg,[["render",zg]]),Ug={components:{CodeXml:X.CodeXml},props:{editor:Object},methods:{toggleCodeBlock(){this.editor&&this.editor.chain().focus().toggleCodeBlock().run()}}};function Hg(o,t,n,r,a,l){const s=e.resolveComponent("CodeXml");return e.openBlock(),e.createElementBlock("button",{title:"Code Block",onClick:t[0]||(t[0]=(...c)=>l.toggleCodeBlock&&l.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 qg=Be(Ug,[["render",Hg]]),Wg={components:{Bold:X.Bold},props:{editor:Object},methods:{toggleBold(){this.editor&&this.editor.commands.toggleBold()}}};function Kg(o,t,n,r,a,l){const s=e.resolveComponent("Bold");return e.openBlock(),e.createElementBlock("button",{title:"Bold Text",onClick:t[0]||(t[0]=(...c)=>l.toggleBold&&l.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 Gg=Be(Wg,[["render",Kg]]),Yg={components:{Italic:X.Italic},props:{editor:Object},methods:{toggleItalic(){this.editor&&this.editor.chain().toggleItalic().run()}}};function Xg(o,t,n,r,a,l){const s=e.resolveComponent("Italic");return e.openBlock(),e.createElementBlock("button",{title:"Italic Text",onClick:t[0]||(t[0]=(...c)=>l.toggleItalic&&l.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 Zg=Be(Yg,[["render",Xg]]),Jg={__name:"vs-editor-underline",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().toggleUnderline().run()};return(r,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",[o.editor?.isActive("underline")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(X.Underline),{class:"h-4 w-4"})],2))}},Qg={__name:"vs-editor-strike",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().toggleStrike().run()};return(r,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",[o.editor?.isActive("strike")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(X.Strikethrough),{class:"h-4 w-4"})],2))}},ey={components:{X:X.X},props:{visible:{type:Boolean,default:()=>!1},modelValue:{type:Boolean,default:()=>!1},title:{type:String,default:()=>""},size:{type:String,default:()=>""},closeClickBack:{type:Boolean,default:()=>!1}},emits:["update:visible","update:modelValue","onClose","confirm","cancel"],inheritAttrs:!1,name:"vs-dialog",mounted(){window.addEventListener("keydown",this.checkKey)},unmounted(){window.removeEventListener("keydown",this.checkKey)},computed:{hasSlot(){return!!this.$slots?.footer},checkSize(){return this.size==="small"?"md:w-5/12 w-9/12":this.size==="medium"?"md:w-6/12 w-9/12":"lg:w-7/12 w-11/12"}},methods:{checkKey({key:o}){o==="Escape"&&this.handleClose()},handleClose(){this.$emit("update:visible",!1),this.$emit("update:modelValue",!1),this.$emit("onClose")},handleConfirm(){this.$emit("confirm"),this.handleClose()},handleCancel(){this.$emit("cancel"),this.handleClose()},closeByClickBack(o,t){t&&o.target.classList.contains("vs-dialog-overlay")&&this.handleClose()}}},ty={key:0,class:"vsTailwind ui-dialog__wrapper"},ny={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},oy={class:"font-medium text-gray-800 dark:text-[#ffffff]"},ry={class:"ui-dialog__content p-4"},ly={key:0,class:"flex justify-end gap-x-2"};function ay(o,t,n,r,a,l){const s=e.resolveComponent("X");return e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.visible||n.modelValue?(e.openBlock(),e.createElementBlock("div",ty,[e.createElementVNode("div",{onMousedown:t[1]||(t[1]=c=>l.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",[l.checkSize]])},[e.createElementVNode("div",ny,[e.createElementVNode("h3",oy,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)=>l.handleClose&&l.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",ry,[e.renderSlot(o.$slots,"default",{},void 0,!0)]),l.hasSlot?(e.openBlock(),e.createElementBlock("div",ly,[e.renderSlot(o.$slots,"footer",{handleClose:l.handleClose,handleConfirm:l.handleConfirm,handleCancel:l.handleCancel},void 0,!0)])):e.createCommentVNode("",!0)],2)]),_:3})],32)])):e.createCommentVNode("",!0)])}const El=Be(ey,[["render",ay],["__scopeId","data-v-56ad9010"]]),sy=e.defineComponent({components:{IconClose:X.X,IconSearch:X.Search,IconEmail:X.Mail},inheritAttrs:!1,props:{icon:{type:String,default:()=>""},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},modelValue:{type:String,default:()=>""},placeholder:{type:String,default:()=>""},iconPosition:{type:String,default:()=>"right"},type:{type:String,default:()=>"text"},style:{type:Object,default:()=>null},size:{type:String,default:()=>"md"},attrs:{type:Object,default:()=>{}}},emits:["onInput","update:modelValue","blur","focus"],computed:{checkSize(){return(this.style?.size||this.size)==="xs"?"h-[32px] text-sm":(this.style?.size||this.size)==="md"?"h-[38px] text-sm":(this.style?.size||this.size)==="lg"?"h-[46px] text-[20px]":"h-[38px] text-sm"},value:{get(){return this.modelValue},set(o){this.$emit("update:modelValue",o.trim())}},clearIconStyle(){return[{"right-8":this.icon&&this.iconPosition==="right","right-3":!this.icon||this.iconPosition!=="right","pointer-events-none":this.disabled}]},iconStylePosition(){return[{"left-3":this.icon&&this.iconPosition==="left","right-3":this.icon&&this.iconPosition==="right"}]},inputStyle(){return[{"!pr-8":this.clearable&&!this.icon,"!pr-7":this.clearable,"!pr-16":this.clearable&&this.icon&&this.iconPosition==="right","!pl-8":this.icon&&this.iconPosition==="left","!pr-[50px]":this.clearable&&this.value&&this.icon&&this.iconPosition==="right","!cursor-not-allowed bg-slate-100":this.disabled,"bg-white":!this.disabled}]}},methods:{handleInput(){this.$emit("onInput",this.modelValue)},handleBlur(){this.$emit("blur")},handleFocus(){this.$emit("focus")},clearInput(){this.$emit("update:modelValue",""),this.$emit("onInput","")},async inputFocus(){await this.$refs.vsText?.focus()}}}),iy={class:"vs-form-text relative bg-white rounded-lg"},cy={key:2,class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},dy=["disabled","type","placeholder"];function uy(o,t,n,r,a,l){const s=e.resolveComponent("IconClose"),c=e.resolveComponent("IconSearch"),i=e.resolveComponent("IconEmail");return e.openBlock(),e.createElementBlock("div",iy,[o.clearable&&o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[0]||(t[0]=(...d)=>o.clearInput&&o.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),o.icon&&o.icon==="search"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 cursor-pointer",o.iconStylePosition])},[e.createVNode(c,{class:"h-4 w-4 stroke-gray-500 transition-all"})],2)):o.icon&&o.icon==="email"?(e.openBlock(),e.createElementBlock("div",cy,[e.createVNode(i,{class:"h-4 w-4 stroke-gray-500 transition-all"})])):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 text-gray-500 cursor-pointer",["ti "+o.icon,o.iconStylePosition]])},null,2)),o.clearable&&o.value?(e.openBlock(),e.createElementBlock("div",{key:4,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[1]||(t[1]=(...d)=>o.clearInput&&o.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",e.mergeProps({ref:"vsText",disabled:o.disabled,type:o.type,onInput:t[2]||(t[2]=(...d)=>o.handleInput&&o.handleInput(...d)),placeholder:o.placeholder,"onUpdate:modelValue":t[3]||(t[3]=d=>o.value=d)},o.style?.attrs||o.attrs||{},{onFocus:t[4]||(t[4]=(...d)=>o.handleFocus&&o.handleFocus(...d)),onBlur:t[5]||(t[5]=(...d)=>o.handleBlur&&o.handleBlur(...d)),class:[[o.inputStyle,o.checkSize],"py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-sm text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"]}),null,16,dy),[[e.vModelDynamic,o.value]])])}const Bl=Be(sy,[["render",uy],["__scopeId","data-v-eb21a54f"]]),py=["title"],my={class:"flex flex-col gap-3 p-[20px]"},fy={class:"relative flex items-center gap-2"},hy={class:"flex-1"},gy={key:0,class:"flex items-center gap-2 flex-shrink-0"},yy=["title"],by=["title"],ky={class:"flex items-center gap-2"},wy={for:"openInNewTab",class:"text-sm text-gray-700 cursor-pointer"},xy={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},vy=Object.assign({inheritAttrs:!1},{__name:"vs-editor-link",props:{editor:Object},setup(o){const{t}=Lo(),n=o,r=e.ref(!1),a=e.ref(""),l=e.ref(!1),s=e.ref(!1),c=()=>{if(!n.editor)return;n.editor.chain().focus().extendMarkRange("link").run();const p=n.editor.getAttributes("link");p.href?(l.value=!0,a.value=p.href,s.value=p.target==="_blank"):(l.value=!1,a.value="",s.value=!1),r.value=!0},i=()=>{r.value=!1,a.value="",l.value=!1,s.value=!1},d=()=>{if(!n.editor||!a.value.trim())return;let p=a.value.trim();p.match(/^https?:\/\//i)||(p="https://"+p),n.editor.chain().focus().setLink({href:p,target:s.value?"_blank":null}).run(),i()},h=()=>{n.editor&&(n.editor.chain().focus().unsetLink().run(),i())},y=()=>{if(!a.value)return;let p=a.value.trim();p.match(/^https?:\/\//i)||(p="https://"+p),window.open(p,"_blank","noopener,noreferrer")};return(p,m)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("button",{title:e.unref(t)("form.richtext.link")||"Посилання",onClick:c,class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":o.editor?.isActive("link")}])},[e.createVNode(e.unref(X.Link2),{class:"h-4 w-4"})],10,py),e.createVNode(El,{title:l.value?e.unref(t)("form.richtext.editLink")||"Редагувати посилання":e.unref(t)("form.richtext.linkTitle")||"Додати посилання",visible:r.value,"onUpdate:visible":m[2]||(m[2]=f=>r.value=f),size:"small"},{footer:e.withCtx(()=>[e.createElementVNode("div",xy,[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(l.value?e.unref(t)("form.richtext.update")||"Оновити":e.unref(t)("form.richtext.create")||"Створити"),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",my,[e.createElementVNode("div",fy,[e.createElementVNode("div",hy,[e.createVNode(Bl,{modelValue:a.value,"onUpdate:modelValue":m[0]||(m[0]=f=>a.value=f),placeholder:e.unref(t)("form.richtext.linkUrl")||"Введіть URL",class:"w-full"},null,8,["modelValue","placeholder"])]),l.value?(e.openBlock(),e.createElementBlock("div",gy,[e.createElementVNode("button",{onClick:y,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(X.ExternalLink),{class:"h-4 w-4"})],8,yy),e.createElementVNode("button",{onClick:h,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(X.Trash2),{class:"h-4 w-4"})],8,by)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",ky,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"openInNewTab","onUpdate:modelValue":m[1]||(m[1]=f=>s.value=f),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",wy,e.toDisplayString(e.unref(t)("form.richtext.openInNewTab")||"Відкривати в новій вкладці"),1)])])]),_:1},8,["title","visible"])],64))}}),kn=async(o,t,n,r=10)=>{if(!t||!n)return;await e.nextTick();const a=await n?.getBoundingClientRect(),l=await t?.getBoundingClientRect();if(!l||!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),h=await window.innerHeight,y=await window.innerWidth;let p=0,m=0;const f=l.bottom+r+i;switch(o){case"top":l.top-a.height-r<0?p=l.top-a.height+r+i+s:p=l.top-a.height-r,y>d+l.right+30?m=l.left-a.width/2+l.width/2:m=y-30-d;break;case"bottom":h>f?p=l.bottom+r:p=l.bottom-r-i-s,m=l.left-a.width/2+l.width/2;break;case"left":p=l.top-a.height/2+l.height/2,l.left-a.width-r>0?m=l.left-a.width-r:m=10;break;case"right":p=l.top-a.height/2+l.height/2,y-c>d?m=l.right+r:m=y-30-d;break;case"top-right":l.top-a.height-r<0?p=l.top-a.height+r+i+s:p=l.top-a.height-r,y-c>d?m=l.right+r:m=y-30-d;break;case"top-left":l.top-a.height-r<0?p=l.top-a.height+r+i+s:p=l.top-a.height-r,l.left-a.width-r>0?m=l.left-a.width-r:m=10;break;case"top-start":l.top-a.height-r<0?p=l.top-a.height+r+i+s:p=l.top-a.height-r,l.left>0?m=l.left:m=10;break;case"bottom-right":h>f?p=l.bottom+r:p=l.bottom-r-i-s,y-c>d?m=l.left:m=y-30-d;break;case"bottom-left":h>f?p=l.bottom+r:p=l.bottom-r-i-s,l.left>0?m=l.right-d:m=10;break;case"bottom-start":h>f?p=l.bottom+r:p=l.bottom-r-i-s,l.left>0?m=l.left:m=10;break}p+i>h?p=h-i-r:p<0&&(p=r),m+d>y?m=y-d-r:m<0&&(m=r),n instanceof HTMLElement&&(n.style.top=`${p}px`,n.style.left=`${m}px`,n.style.position="fixed")},_y={class:"text-center"},Cy={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"},Kt=Object.assign({inheritAttrs:!1},{__name:"vs-popover",props:{isOpen:{type:Boolean,default:()=>!1},placement:{type:String,default:"top"},gap:{type:Number,default:8},width:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},trigger:{type:String,default:"click"},teleport:{type:String,default:"body"}},emits:["isvisible"],setup(o,{expose:t,emit:n}){const r=o,a=n,l=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref(null),d=e.ref(null);e.watch(l,V=>{V?(h(),window.addEventListener("resize",()=>kn(r.placement,i.value,d.value)),kn(r.placement,i.value,d.value)):window.removeEventListener("resize",()=>kn(r.placement,i.value,d.value)),a("isvisible",V)}),e.onMounted(()=>{window.addEventListener("click",b),window.addEventListener("popstate",v),window.addEventListener("scroll",C,!0),h()}),e.onBeforeUnmount(()=>{window.removeEventListener("click",b),window.removeEventListener("popstate",v),y()});const h=()=>{let V=c.value;for(;V&&V!==document.body;)(V.scrollHeight>V.clientHeight||V.scrollWidth>V.clientWidth)&&(V.addEventListener("scroll",w),s.value.push(V)),V=V.parentElement;document.body&&(document.body.addEventListener("scroll",w),s.value.push(document.body))},y=()=>{s.value.forEach(V=>{V.removeEventListener("scroll",w)}),s.value=[]},p=()=>{l.value=!0,kn(r.placement,i.value,d.value)},m=()=>{l.value=!1},f=async()=>{await kn(r.placement,i.value,d.value),l.value=!l.value},w=()=>{l.value=!1},b=V=>{if(!V){l.value=!1;return}i.value?.contains(V.target)||d.value?.contains(V.target)||(l.value=!1)},v=()=>{l.value&&(l.value=!1)},C=V=>{l.value&&d.value&&!d.value.contains(V.target)&&(l.value=!1)};return t({togglePopover:f}),(V,$)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"popover",ref:c,class:"vs-popover inline-block"},[e.createElementVNode("div",_y,[o.trigger==="click"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverRef",ref:i,onClick:f,class:e.normalizeClass({"pointer-events-none":o.disabled})},[e.renderSlot(V.$slots,"reference",{},()=>[$[0]||($[0]=e.createElementVNode("button",null,"Click me!",-1))])],2)):e.createCommentVNode("",!0),o.trigger==="hover"?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"popoverRef",ref:i,onMouseover:p,onMouseleave:m,class:e.normalizeClass({"pointer-events-none":o.disabled})},[e.renderSlot(V.$slots,"reference",{},()=>[$[1]||($[1]=e.createElementVNode("button",null,"Click me!",-1))])],34)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:o.teleport},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content",o.placement]),ref_key:"contentPop",ref:d,style:e.normalizeStyle({width:o.width?o.width+"px":"fit-content",zIndex:100001})},[e.createElementVNode("div",Cy,[e.renderSlot(V.$slots,"default",{},()=>[$[2]||($[2]=e.createElementVNode("span",null,"Popover content",-1))])])],6),[[e.vShow,l.value]])]),_:3})],8,["to"]))])],512))}}),Ey={class:"flex flex-col gap-[2px] p-[2px]"},By=["onClick"],Vy={__name:"vs-editor-table",props:{editor:Object},setup(o){const{t}=Lo(),n=o,r=e.ref(!1),a=e.ref("popover"),l=()=>{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())},h=()=>{n.editor&&(n.editor.chain().focus().deleteTable().run(),a.value.togglePopover())},y=()=>{n.editor&&(n.editor.chain().focus().mergeCells().run(),a.value.togglePopover())},p=()=>{n.editor&&(n.editor.chain().focus().splitCell().run(),a.value.togglePopover())},m=e.computed(()=>[{text:t("form.richtext.createTable"),function:l},{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:h},{text:t("form.richtext.mergeCells"),function:y},{text:t("form.richtext.splitCells"),function:p}]);return(f,w)=>(e.openBlock(),e.createBlock(Kt,{ref_key:"popover",ref:a,placement:"bottom",onIsvisible:w[0]||(w[0]=b=>r.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",[r.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(X.Table2),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Ey,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(b,v)=>(e.openBlock(),e.createElementBlock("button",{key:v,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,By))),128))])]),_:1},512))}},Sy={class:"flex gap-[4px] p-1"},$y=["title","onClick"],Ay={__name:"vs-editor-align",props:{editor:Object},setup(o){const t=o,n={left:X.AlignLeft,center:X.AlignCenter,right:X.AlignRight,justify:X.AlignJustify},r=e.ref(!1),a=e.ref("popover"),l=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),h=e.computed(()=>s.value||c.value||i.value||d.value),y=()=>{c.value?l.value="right":i.value?l.value="center":d.value?l.value="justify":l.value="left"};e.watch([s,c,i,d],()=>{y()},{immediate:!0}),e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",y),t.editor.on("update",y))}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",y),t.editor.off("update",y))});const p=f=>{t.editor&&(t.editor.chain().focus().setTextAlign(f).run(),l.value=f)},m=e.ref([{id:"left",isActive:s},{id:"center",isActive:i},{id:"right",isActive:c},{id:"justify",isActive:d}]);return(f,w)=>(e.openBlock(),e.createBlock(Kt,{ref_key:"popover",ref:a,placement:"bottom",onIsvisible:w[0]||(w[0]=b=>r.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",[h.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[l.value]),{height:"16",width:"16"}))],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Sy,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.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:v=>p(b?.id)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[b?.id]),{height:"16",width:"16"}))],10,$y))),128))])]),_:1},512))}},Ny={components:{VsText:Bl},inheritAttrs:!1,events:["update:modelValue"],props:{modelValue:{type:String},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},isTextInputShown:{type:Boolean,default:()=>!0}},computed:{value:{get(){return this.modelValue??""},set(o){this.$emit("update:modelValue",o)}}}},My={class:"flex items-center w-full max-w-[182px]"},Fy=["disabled"];function Dy(o,t,n,r,a,l){const s=e.resolveComponent("vs-text");return e.openBlock(),e.createElementBlock("div",My,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=c=>l.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,Fy),[[e.vModelText,l.value]]),n.isTextInputShown?(e.openBlock(),e.createBlock(s,{key:0,modelValue:l.value,"onUpdate:modelValue":t[1]||(t[1]=c=>l.value=c),class:"ml-2 w-full",disabled:n.disabled,clearable:n.clearable},null,8,["modelValue","disabled","clearable"])):e.createCommentVNode("",!0)])}const Vl=Be(Ny,[["render",Dy]]),Ty={class:"flex gap-[4px] mb-[8px]"},Ly={class:"grid grid-rows-3 grid-cols-7"},Iy={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},Oy=["onClick","title"],Py={__name:"vs-editor-color",props:{editor:Object},setup(o){const t=o,n=e.ref(null),r=e.ref("#000000"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").color||"#000000"),l=e.computed(()=>a.value!=="#000000"),s=()=>{t.editor&&(r.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=y=>{t.editor&&(t.editor.chain().focus().setColor(y).run(),r.value=y,n.value&&n.value.togglePopover())},d=()=>{i(r.value)},h=y=>({"#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"})[y]||y;return(y,p)=>(e.openBlock(),e.createBlock(Kt,{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":l.value}])},[p[1]||(p[1]=e.createElementVNode("span",{class:"leading-none"},"A",-1)),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",Ty,[e.createVNode(Vl,{modelValue:r.value,"onUpdate:modelValue":p[0]||(p[0]=m=>r.value=m)},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(X.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",Ly,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",Iy,[e.createElementVNode("button",{class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:m}),onClick:f=>i(m),title:h(m)},[r.value===m?(e.openBlock(),e.createBlock(e.unref(X.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,Oy)])]))),128))])])]),_:1},512))}},Ry={class:"flex gap-[4px] mb-[8px]"},zy={class:"grid grid-rows-3 grid-cols-7"},jy={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},Uy=["onClick","title"],Hy=["onClick","title"],qy={__name:"vs-editor-background-color",props:{editor:Object},setup(o){const t=o,n=e.ref(null),r=e.ref("transparent"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").backgroundColor||"transparent"),l=e.computed(()=>a.value!=="transparent"&&a.value!==""),s=()=>{t.editor&&(r.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=y=>{t.editor&&(t.editor.chain().focus().setBackgroundColor(y).run(),r.value=y,n.value&&n.value.togglePopover())},d=()=>{i(r.value)},h=y=>({"#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"})[y]||y;return(y,p)=>(e.openBlock(),e.createBlock(Kt,{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":l.value}])},[e.createVNode(e.unref(X.PaintBucket),{class:"h-4 w-4"}),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",Ry,[e.createVNode(Vl,{modelValue:r.value,"onUpdate:modelValue":p[0]||(p[0]=m=>r.value=m)},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(X.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",zy,[e.createElementVNode("button",{onClick:p[1]||(p[1]=m=>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(X.Eraser),{class:"h-4 w-4"}),p[2]||(p[2]=e.createElementVNode("p",null,"no color",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",jy,[m!=="transparent"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:m}),onClick:f=>i(m),title:h(m)},[r.value===m?(e.openBlock(),e.createBlock(e.unref(X.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,Uy)):e.createCommentVNode("",!0),m==="transparent"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"flex items-center justify-center w-full h-full",onClick:f=>i(m),title:h(m)},[r.value===m?(e.openBlock(),e.createBlock(e.unref(X.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],8,Hy)):e.createCommentVNode("",!0)])]))),128))])])]),_:1},512))}},Wy={__name:"vs-editor-highlight",props:{editor:Object},setup(o){const t=o,n=e.computed(()=>t.editor?.isActive("highlight")),r=()=>{t.editor&&t.editor.chain().focus().toggleHighlight().run()};return(a,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Highlight",onClick:r,class:e.normalizeClass(["flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-200":n.value}])},[e.createVNode(e.unref(X.Highlighter),{class:"h-4 w-4"})],2))}},Ky={class:"truncate"},Gy={class:"w-[200px]"},Yy={class:"max-h-[200px] overflow-y-auto"},Xy=["onClick"],Zy={__name:"vs-editor-font-family",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=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"}]),l=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(h=>h.value===l.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,h)=>(e.openBlock(),e.createBlock(Kt,{ref_key:"popover",ref:n,placement:"bottom",onIsvisible:h[0]||(h[0]=y=>r.value=y)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Font Family",class:e.normalizeClass(["h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm",[r.value?"bg-gray-100 text-gray-900":"text-gray-700"]]),style:e.normalizeStyle({fontFamily:l.value})},[e.createElementVNode("span",Ky,e.toDisplayString(s.value),1),e.createVNode(e.unref(X.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})],6)]),default:e.withCtx(()=>[e.createElementVNode("div",Gy,[e.createElementVNode("ul",Yy,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,y=>(e.openBlock(),e.createElementBlock("li",{key:y.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",{"bg-gray-100":c(y.value)}]),style:e.normalizeStyle({fontFamily:y.value}),onClick:p=>i(y.value)},e.toDisplayString(y.label),15,Xy))),128))])])]),_:1},512))}},Jy={class:"w-[120px]"},Qy={class:"max-h-[200px] overflow-y-auto"},e0=["onClick"],t0={__name:"vs-editor-font-size",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=e.ref("14px"),a=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").fontSize||"14px"),l=e.computed(()=>a.value!=="14px"),s=()=>{t.editor&&(r.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(),r.value=d,n.value&&n.value.togglePopover())};return(d,h)=>(e.openBlock(),e.createBlock(Kt,{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":l.value}])},[e.createVNode(e.unref(X.ALargeSmall),{class:"h-4 w-4"}),e.createVNode(e.unref(X.ChevronDown),{class:"h-3 w-3 text-gray-400"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Jy,[e.createElementVNode("ul",Qy,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,y=>(e.openBlock(),e.createElementBlock("li",{key:y.value,class:"px-3 py-2 hover:bg-gray-100 cursor-pointer",onClick:p=>i(y.value)},e.toDisplayString(y.label),9,e0))),128))])])]),_:1},512))}},n0={components:{Superscript:X.Superscript},props:{editor:Object},methods:{toggleSuperscript(){this.editor&&this.editor.commands.toggleSuperscript()}}};function o0(o,t,n,r,a,l){const s=e.resolveComponent("Superscript");return e.openBlock(),e.createElementBlock("button",{title:"Superscript",onClick:t[0]||(t[0]=(...c)=>l.toggleSuperscript&&l.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 r0=Be(n0,[["render",o0]]),l0={components:{Subscript:X.Subscript},props:{editor:Object},methods:{toggleSubscript(){this.editor&&this.editor.commands.toggleSubscript()}}};function a0(o,t,n,r,a,l){const s=e.resolveComponent("Subscript");return e.openBlock(),e.createElementBlock("button",{title:"Subscript",onClick:t[0]||(t[0]=(...c)=>l.toggleSubscript&&l.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 s0=Be(l0,[["render",a0]]),i0={title:"Heading",class:"h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700"},c0={class:"truncate"},d0={class:"max-h-[200px] overflow-y-auto"},u0=["onClick"],p0=Be({__name:"vs-editor-heading",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=e.ref([{label:"Heading 1",value:1},{label:"Heading 2",value:2},{label:"Heading 3",value:3},{label:"Heading 4",value:4},{label:"Heading 5",value:5},{label:"Heading 6",value:6}]),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"}),l=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(Kt,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",i0,[e.createElementVNode("span",c0,e.toDisplayString(a.value),1),e.createVNode(e.unref(X.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})])]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("ul",d0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,h=>(e.openBlock(),e.createElementBlock("li",{key:h.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",`heading-level-${h.value}`]),style:e.normalizeStyle(l(h.value)),onClick:y=>s(h.value)},e.toDisplayString(h.label),15,u0))),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"]]),m0={components:{RemoveFormatting:X.RemoveFormatting},props:{editor:Object},methods:{clearFormatting(){this.editor&&this.editor.commands.unsetAllMarks()}}};function f0(o,t,n,r,a,l){const s=e.resolveComponent("RemoveFormatting");return e.openBlock(),e.createElementBlock("button",{title:"Clear Formatting",onClick:t[0]||(t[0]=(...c)=>l.clearFormatting&&l.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 h0=Be(m0,[["render",f0]]),g0={class:"relative"},y0={key:0,class:"mt-4"},b0=["src","alt","title"],k0={key:0,class:"text-sm text-red-500"},w0={key:1,class:"mt-4"},x0={class:"text-sm text-gray-600 mb-2"},v0={class:"flex flex-wrap gap-2"},_0=["src","alt","onError"],C0=["onClick"],E0={class:"flex justify-end gap-x-2 p-[20px]"},B0=Object.assign({inheritAttrs:!1},{__name:"vs-editor-image",props:{editor:{type:Object,required:!0}},setup(o){const t=o,n=e.ref(!1),r=e.ref(!1),a=e.ref({}),l=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 E=i.value.file.filter(T=>T instanceof File),S=i.value.file.filter(T=>typeof T=="string"&&T.trim()!=="");return E.length+S.length>1}return i.value.file instanceof FileList?i.value.file.length>1:!1}),h=e.computed(()=>Array.isArray(i.value.file)?i.value.file.filter(E=>E instanceof File).length===1:i.value.file instanceof FileList?i.value.file.length===1:i.value.file instanceof File),y=e.computed(()=>{if(d.value)return"";if(i.value.src)return i.value.src;if(h.value){let E=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?E=i.value.file[0]:i.value.file instanceof File&&(E=i.value.file),E instanceof File){const S=s.value.find(_=>_.file===E);return S?S.preview:""}else if(typeof E=="string")return E}return""}),p=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}]),m=()=>{if(!t.editor)return;if(t.editor.isActive("image")){const{state:S}=t.editor,{selection:_}=S,{$from:T}=_;let j=null,oe=null;if(T.parent.type.name==="image")j=T.before(T.depth),oe=T.parent;else for(let te=T.depth;te>0;te--){const L=T.node(te),M=T.before(te);L.type.name==="paragraph"&&L.forEach((N,Q)=>{if(N.type.name==="image"){const ae=M+Q+1;(j===null||Math.abs(ae-_.$from.pos)<Math.abs(j-_.$from.pos))&&(j=ae,oe=N)}})}if(j!==null&&oe){try{t.editor.chain().focus().setNodeSelection(j).run()}catch{t.editor.chain().focus().setTextSelection(j).run()}c.value=j}else{t.editor.chain().focus().selectParentNode().run();const{state:te}=t.editor;c.value=te.selection.$from.pos}const A=oe?oe.attrs:t.editor.getAttributes("image");l.value=!0;let P="",Y=!1;const q=t.editor.getAttributes("link");q&&q.href&&(P=q.href,Y=q.target==="_blank");const I=A.src||"",J=I?[I]:[];i.value={src:I,file:J,alt:A.alt||"",title:A.title||"",width:A.width||"",height:A.height||"",link:P,openInNewTab:Y}}else l.value=!1,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1};r.value=!1,n.value=!0},f=()=>{n.value=!1,r.value=!1,l.value=!1,s.value=[],c.value=null,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}},w=async E=>{if(!E||E.length===0)return;const S=[];for(const _ of E)if(_&&_.type&&_.type.startsWith("image/")&&!s.value.some(j=>j.file===_)){const j=new Promise((oe,A)=>{const P=new FileReader;P.onload=Y=>{s.value.push({file:_,preview:Y.target.result,error:!1}),oe()},P.onerror=A,P.readAsDataURL(_)});S.push(j)}await Promise.all(S)},b=E=>{s.value.splice(E,1),Array.isArray(i.value.file)&&i.value.file.splice(E,1)},v=()=>{const E=i.value.width!==null&&i.value.width!==void 0&&i.value.width!==""&&String(i.value.width).trim()!==""?String(i.value.width).trim():"",S=i.value.height!==null&&i.value.height!==void 0&&i.value.height!==""&&String(i.value.height).trim()!==""?String(i.value.height).trim():"",_={};return E&&S?(_.width=E,_.height=S,_.style=`width: ${E}px; height: ${S}px; object-fit: fill;`):E?(_.width=E,_.height=void 0):S?(_.height=S,_.width=void 0):(_.width=void 0,_.height=void 0),_},C=(E,S=null,_=50)=>{const T=()=>{const{view:A}=E;if(!A||!A.dom)return;A.dom.querySelectorAll("img.editor-image[width][height]").forEach(q=>{if(q instanceof HTMLImageElement){const I=q.getAttribute("width"),J=q.getAttribute("height");I&&J&&I!=="auto"&&J!=="auto"&&I!==""&&J!==""&&!isNaN(Number(I))&&!isNaN(Number(J))&&(q.style.cssText=`
|
|
36
36
|
width: ${I}px !important;
|
|
37
37
|
height: ${J}px !important;
|
|
38
38
|
max-width: none !important;
|
|
@@ -40,7 +40,7 @@ ${i}
|
|
|
40
40
|
min-width: auto !important;
|
|
41
41
|
min-height: auto !important;
|
|
42
42
|
object-fit: fill !important;
|
|
43
|
-
`.replace(/\s+/g," ").trim())}})},j=i.value.width,oe=i.value.height;j&&oe&&j!==""&&oe!==""?[0,_,_*2,_*3,_*4].forEach(P=>{setTimeout(T,P)}):(T(),setTimeout(T,_))},V=async()=>{let E=[],S=[];if(Array.isArray(i.value.file)?(E=i.value.file.filter(A=>A instanceof File),S=i.value.file.filter(A=>typeof A=="string"&&A.trim()!=="")):i.value.file instanceof FileList?E=Array.from(i.value.file):i.value.file instanceof File?E=[i.value.file]:typeof i.value.file=="string"&&i.value.file.trim()!==""&&(S=[i.value.file]),E.length===0&&S.length===0&&a.value&&a.value.file){const A=a.value.file;Array.isArray(A)?(E=A.filter(P=>P instanceof File),S=A.filter(P=>typeof P=="string"&&P.trim()!=="")):A instanceof FileList?E=Array.from(A):A instanceof File?E=[A]:typeof A=="string"&&A.trim()!==""&&(S=[A])}if(S.length>0&&!l.value){for(const A of S)s.value.some(P=>P.url===A)||s.value.push({url:A,preview:A,error:!1});if(E.length===0&&s.value.length>0){await U();return}}const _=E.length,T=_+S.length;if(!(l.value&&_<=1)){if(_>0){const A=E.filter(P=>!s.value.some(Y=>Y.file===P));A.length>0&&await w(A)}}if(!l.value){if(T>1||d.value||s.value.length>1){if(s.value.length>0){await U();return}else if(_>0){if(await w(E),s.value.length>0){await U();return}}else if(S.length>0){await U();return}}else if(s.value.length>1){await U();return}}let j=i.value.src;if(h.value){let A=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?A=i.value.file[0]:(i.value.file instanceof File||typeof i.value.file=="string")&&(A=i.value.file),A instanceof File)try{const P=new FileReader,Y=await new Promise((q,I)=>{P.onload=J=>q(J.target.result),P.onerror=I,P.readAsDataURL(A)});j=Y,l.value&&(i.value.src=Y)}catch(P){console.error("Помилка при читанні файлу:",P),ge.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof A=="string"&&A.trim()!==""&&(j=A.trim(),l.value&&A.trim()!==i.value.src&&(i.value.src=A.trim(),j=A.trim()))}else if(Array.isArray(i.value.file)&&i.value.file.length===1){const A=i.value.file[0];typeof A=="string"&&A.trim()!==""&&(j=A.trim(),(!i.value.src||i.value.src!==A.trim())&&(i.value.src=A.trim()))}else typeof i.value.file=="string"&&i.value.file.trim()!==""&&(j=i.value.file.trim(),(!i.value.src||i.value.src!==i.value.file.trim())&&(i.value.src=i.value.file.trim()));const oe=j||Array.isArray(i.value.file)&&i.value.file.length>0&&(i.value.file.some(A=>A instanceof File)||i.value.file.some(A=>typeof A=="string"&&A.trim()!==""))||i.value.file instanceof FileList&&i.value.file.length>0||typeof i.value.file=="string"&&i.value.file.trim()!=="";if(!j&&!oe){ge.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!oe&&await a.value.validate()){ge.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&j)if(l.value&&c.value!==null){const{state:A}=t.editor;try{t.editor.chain().focus().setNodeSelection(c.value).run()}catch{t.editor.chain().focus().setTextSelection(c.value).run()}const P=t.editor.getAttributes("link"),Y=P&&P.href,q=v(),I={src:j,alt:i.value.alt||"",title:i.value.title||"",...q};if((!i.value.width||i.value.width==="")&&(I.width=void 0),(!i.value.height||i.value.height==="")&&(I.height=void 0),t.editor.chain().focus().updateAttributes("image",I).run(),setTimeout(()=>{const{view:J}=t.editor;if(!J||!J.dom)return;J.dom.querySelectorAll("img.editor-image").forEach(M=>{if(M instanceof HTMLImageElement){const N=M.getAttribute("src")||M.src;(N===j||N.includes(j.split("/").pop()))&&(i.value.width&&i.value.height?(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")):(M.style.removeProperty("width"),M.style.removeProperty("height"),M.style.removeProperty("object-fit"),M.style.removeProperty("max-width"),M.style.removeProperty("max-height")))}})},20),i.value.link&&i.value.link.trim()!==""){let J=i.value.link.trim();J.match(/^https?:\/\//i)||(J="https://"+J),Y?t.editor.chain().focus().extendMarkRange("link").setLink({href:J,target:i.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:J,target:i.value.openInNewTab?"_blank":null}).run()}else Y&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:A}=t.editor,{selection:P}=A,{$anchor:Y}=P;let q=null;for(let J=Y.depth;J>0;J--){const te=Y.node(J);if(te&&te.type.name==="paragraph"){q=te;break}}if(q&&q.content.content.some(J=>J.type.name==="image")){const J=$(q,Y.before(Y.depth));if(J!==null){const te=v(),L=A.schema.nodes.image.create({src:j,alt:i.value.alt||"",title:i.value.title||"",...te});if(i.value.link&&i.value.link.trim()!==""){let M=i.value.link.trim();M.match(/^https?:\/\//i)||(M="https://"+M);const N=A.schema.marks.link.create({href:M,target:i.value.openInNewTab?"_blank":null}),Q=L.type.create(L.attrs,L.content,[N]);t.editor.chain().focus().insertContentAt(J+1,Q).run(),C(t.editor,j)}else t.editor.chain().focus().insertContentAt(J+1,L).run(),C(t.editor,j)}else if(i.value.link&&i.value.link.trim()!==""){const te=v();t.editor.chain().focus().setImage({src:j,alt:i.value.alt||"",title:i.value.title||"",...te}).run(),setTimeout(()=>{let L=i.value.link.trim();L.match(/^https?:\/\//i)||(L="https://"+L),t.editor.chain().focus().selectParentNode().setLink({href:L,target:i.value.openInNewTab?"_blank":null}).run(),C(t.editor,j,20)},10)}else{const te=v();t.editor.chain().focus().setImage({src:j,alt:i.value.alt||"",title:i.value.title||"",...te}).run(),C(t.editor,j)}}else if(i.value.link&&i.value.link.trim()!==""){const J=v();t.editor.chain().focus().setImage({src:j,alt:i.value.alt||"",title:i.value.title||"",...J}).run(),setTimeout(()=>{let te=i.value.link.trim();te.match(/^https?:\/\//i)||(te="https://"+te),t.editor.chain().focus().selectParentNode().setLink({href:te,target:i.value.openInNewTab?"_blank":null}).run(),C(t.editor,j,20)},10)}else{const J=v();t.editor.chain().focus().setImage({src:j,alt:i.value.alt||"",title:i.value.title||"",...J}).run(),C(t.editor,j)}}f()},$=(E,S)=>{let _=null;return E.forEach((T,j)=>{T.type.name==="image"&&(_=S+j+1)}),_},U=async()=>{if(t.editor){if(s.value.length===0)if(Array.isArray(i.value.file)&&i.value.file.length>0){const E=i.value.file.filter(_=>typeof _=="string"&&_.trim()!==""),S=i.value.file.filter(_=>_ instanceof File);for(const _ of E)s.value.some(T=>T.url===_||T.preview===_)||s.value.push({url:_,preview:_,error:!1});S.length>0&&await w(S)}else d.value&&await w(i.value.file);if(s.value.length!==0)try{const E=[],S=v();for(const _ of s.value){const T=_.url||_.preview||"";if(!T)continue;const j=t.editor.schema.nodes.image.create({src:T,alt:i.value.alt||"",title:i.value.title||"",...S});E.push(j)}E.length>0&&(t.editor.chain().focus().command(({tr:_,dispatch:T})=>{if(T){const{selection:j}=_,{$anchor:oe}=j;let A=j.$anchor.pos,P=null,Y=null;for(let I=oe.depth;I>0;I--){const J=oe.node(I);if(J&&J.type.name==="paragraph"){P=J,Y=oe.start(I);break}}if(P){let I=null;P.forEach((J,te)=>{J.type.name==="image"&&(I=Y+te+1)}),I!==null?A=I+1:A=Y+P.content.size}let q=A;return E.forEach(I=>{_.insert(q,I),q+=I.nodeSize}),!0}return!1}).run(),i.value.width&&i.value.height&&setTimeout(()=>{const{view:_}=t.editor;_&&_.dom&&_.dom.querySelectorAll("img.editor-image").forEach(oe=>{oe instanceof HTMLImageElement&&Array.from(s.value).some(P=>{const Y=P.url||P.preview||"",q=oe.src||oe.getAttribute("src")||"";return q===Y||q.includes(Y.split("/").pop())})&&(oe.style.setProperty("width",`${i.value.width}px`,"important"),oe.style.setProperty("height",`${i.value.height}px`,"important"),oe.style.setProperty("object-fit","fill","important"),oe.style.setProperty("max-width","none","important"),oe.style.setProperty("max-height","none","important"))})},50)),f()}catch(E){console.error("Помилка при додаванні зображень:",E),ge.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},Z=async()=>{await V()},O=()=>{f()};return e.watch(()=>i.value.file,async(E,S)=>{if(r.value=!1,!(l.value&&Array.isArray(E)&&E.length===1&&typeof E[0]=="string"&&!E.some(T=>T instanceof File)))if(Array.isArray(E)&&E.length>0){const _=E.filter(j=>j instanceof File),T=E.filter(j=>typeof j=="string"&&j.trim()!=="");if(_.length>0&&(l.value?l.value&&_.length===1&&T.length===0&&(s.value=[]):s.value=[],(!l.value||_.length>1||T.length>0)&&await w(_),l.value&&_.length===1&&T.length===0)){const j=new FileReader;j.onload=oe=>{i.value.src=oe.target.result},j.readAsDataURL(_[0])}if(T.length>0)if(l.value)l.value&&T.length===1&&_.length===0&&(i.value.src=T[0]);else{_.length===0&&(s.value=[]);for(const j of T)s.value.some(oe=>oe.url===j||oe.preview===j)||s.value.push({url:j,preview:j,error:!1})}}else E&&typeof E=="object"&&E instanceof FileList?(l.value||(s.value=[]),await w(Array.from(E))):E&&typeof E=="object"&&!Array.isArray(E)&&E instanceof File?(l.value||(s.value=[]),await w([E])):l.value||(s.value=[])},{immediate:!1}),e.watch(()=>i.value.src,()=>{r.value=!1}),(E,S)=>(e.openBlock(),e.createElementBlock("div",g0,[e.createElementVNode("button",{onClick:m,class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",o.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(X.Image),{class:"h-4 w-4"}),S[4]||(S[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(Cl,{modelValue:n.value,"onUpdate:modelValue":S[3]||(S[3]=_=>n.value=_),title:l.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",E0,[e.createElementVNode("button",{onClick:O,type:"button",class:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500"}," Скасувати "),e.createElementVNode("button",{onClick:Z,type:"button",class:"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500"},e.toDisplayString(l.value?"Оновити зображення":"Додати зображення"),1)])]),default:e.withCtx(()=>[e.createVNode(rt,{modelValue:i.value,"onUpdate:modelValue":S[0]||(S[0]=_=>i.value=_),schema:p.value,form:a.value,"onUpdate:form":S[1]||(S[1]=_=>a.value=_)},null,8,["modelValue","schema","form"]),y.value&&!d.value?(e.openBlock(),e.createElementBlock("div",y0,[S[5]||(S[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:y.value,alt:i.value.alt||"Попередній перегляд зображення",title:i.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:S[2]||(S[2]=_=>r.value=!0)},null,40,b0),[[e.vShow,!r.value]]),r.value?(e.openBlock(),e.createElementBlock("p",k0," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",w0,[e.createElementVNode("p",x0,"Попередній перегляд ("+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",v0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(_,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:_.preview,alt:`Попередній перегляд ${T+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:j=>_.error=!0},null,40,_0),[[e.vShow,!_.error]]),e.createElementVNode("button",{onClick:j=>b(T),class:"absolute -top-2 -right-2 bg-red-500 text-white rounded-full w-5 h-5 flex items-center justify-center text-xs hover:bg-red-600",type:"button"}," × ",8,C0)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),V0={class:"flex items-center"},S0=["disabled"],$0=["disabled"],A0=Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},r=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(a,l)=>(e.openBlock(),e.createElementBlock("div",V0,[e.createElementVNode("button",{onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[o.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(X.Undo2),{class:"h-4 w-4"})],10,S0),e.createElementVNode("button",{onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[o.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(X.Redo2),{class:"h-4 w-4"})],10,$0)]))}}),[["__scopeId","data-v-6a87fc55"]]),N0={class:"relative"},M0={class:"p-6"},F0={class:"flex justify-between items-center mb-4"},D0={bold:Gg,italic:Zg,color:Py,background_color:qy,highlight:Wy,bullet_list:Pg,ordered_list:jg,blockquote:Lg,codeblock:qg,underline:Jg,strike:Qg,link:vy,table:Vy,text_align:Ay,font_family:Zy,font_size:t0,superscript:r0,subscript:s0,heading:p0,clear_formatting:h0,image:B0,history:A0,help:Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(o){const t=e.ref(!1),n=e.ref(null),r=()=>{t.value=!t.value},a=()=>{t.value=!1};return(l,s)=>(e.openBlock(),e.createElementBlock("div",N0,[e.createElementVNode("button",{ref_key:"helpButton",ref:n,onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 text-gray-500",[t.value?"bg-gray-100 text-gray-900":"text-gray-500"]]),title:"Markdown Shortcuts Help"},[e.createVNode(e.unref(X.CircleHelp),{class:"h-4 w-4"})],2),t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[100001]",onClick:a},[e.createElementVNode("div",{class:"bg-white rounded-lg shadow-xl max-w-2xl w-full mx-4 max-h-[80vh] overflow-y-auto",onClick:s[0]||(s[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",M0,[e.createElementVNode("div",F0,[s[1]||(s[1]=e.createElementVNode("h2",{class:"text-xl font-semibold text-gray-900"},"Common Markdown Syntax & Shortcuts",-1)),e.createElementVNode("button",{onClick:a,class:"text-gray-400 hover:text-gray-600 transition-colors"},[e.createVNode(e.unref(X.X),{class:"h-6 w-6"})])]),s[2]||(s[2]=e.createStaticVNode('<div class="space-y-6" data-v-92c21275><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Markdown Syntax</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Element</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Example</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Bold</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>**bold text**</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>__bold text__</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Italics</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>*italic text*</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>_italic text_</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Strikethrough</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>~strikethrough text~</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Headings</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275># Heading 1</code>, <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>## Heading 2</code>, etc., up to <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>###### Heading 6</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Unordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use an asterisk (*), dash (-), or plus sign (+) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Ordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use a number followed by a period and a space (e.g., <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>1. First item</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Blockquotes</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Start with a greater-than sign (>) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Inline Code</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Surround with backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>`</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Code Blocks</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Enclose with three backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>```</code>) before and after the code. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Images</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275></code> syntax. </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Links</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>[Link Text](url)</code> syntax. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Checklists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Create a list item with <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [ ]</code> for an incomplete task or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [x]</code> for a completed one. </td></tr></tbody></table></div></div><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Common Editing Shortcuts</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Shortcut</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Action</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+A</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Select all text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+B</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply bold formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+C</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Copy selected text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+I</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply italic formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+K</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Open the insert link dialog</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+S</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Save the current document</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+V</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Paste copied text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+X</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Cut selected text</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Y</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Shift+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Z</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr></tbody></table></div></div></div>',1))])])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-92c21275"]]),horizontal_rule:{__name:"vs-editor-horizontal-rule",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(r,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:n,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(X.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(o,{emit:t}){const n=t,r=()=>{n("toggle-fullscreen")};return(a,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:r,class:"w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(e.unref(X.Maximize),{class:"h-4 w-4"})]))}}},Vl={basic:["history","font_family","font_size","bold","italic","underline","strike","text_align","bullet_list","ordered_list","link","image","clear_formatting","help"],default:["history","heading","font_family","font_size","bold","italic","underline","strike","superscript","subscript","color","background_color","highlight","text_align","bullet_list","ordered_list","blockquote","codeblock","table","link","image","horizontal_rule","clear_formatting","fullscreen","help"],full:["history","heading","font_family","font_size","bold","italic","underline","strike","color","background_color","highlight","text_align","bullet_list","ordered_list","blockquote","codeblock","table","link","image","horizontal_rule","superscript","subscript","clear_formatting","fullscreen","help"]},T0={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},L0={class:"editor-body"},I0={key:0,class:"richtext-loading text-sm text-gray-500"},O0={key:1,class:"richtext-error text-sm text-red-600"},P0={class:"html-source-editor"},R0={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},z0={class:"inline-flex items-stretch -mt-px"},j0=Object.freeze(Object.defineProperty({__proto__:null,default:Object.assign({inheritAttrs:!1},{__name:"vs-richtext",props:e.mergeModels({modelValue:{type:String,default:()=>""},height:{type:String,default:()=>"300px"},format:{type:String,default:()=>"html"},toolbar:{type:[Array,String],default:()=>"default"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),a=e.ref(null),l=e.shallowRef(null),s=e.ref(!1),c=e.ref(""),i=e.ref(!1),d=e.ref(null),h=e.ref(""),y=e.ref(""),p=e.ref(null),m=e.ref(!1),f=e.ref(!1),{isFullscreen:w,toggleFullscreen:b}=ig(),{t:v}=Lo(),C=e.computed(()=>t.format==="md"?"markdown":"html"),V=e.computed(()=>t.format==="md"?v("form.richtext.markdown"):v("form.richtext.html")),$=e.computed(()=>l.value||null),U=e.computed(()=>typeof t.toolbar=="string"?Vl[t.toolbar]||Vl.default:t.toolbar),Z=e.computed(()=>U.value.map(M=>D0[M]).filter(Boolean)),O=e.computed(()=>(d.value?.attributes||[]).find(N=>N.name==="class")?.value||""),E=e.computed(()=>{const N=(d.value?.attributes||[]).find(ae=>ae.name==="style")?.value||"",Q={};return N.split(";").forEach(ae=>{const[ee,...he]=ae.split(":"),we=ee?.trim(),be=he.join(":").trim();!we||!be||we!=="height"&&(Q[we.replace(/-([a-z])/g,($e,Me)=>Me.toUpperCase())]=be)}),Q}),S=M=>{const N=(M||"").trim();return N?/^<p(?:\s+[^>]*)?>(?:\s|<br[^>]*>)*<\/p>$/i.test(N):!0},_=M=>S(M)?"":M||"",T=M=>{const N=M||"";p.value=N,n.value=N},j=M=>{if(!M||!M.view||!M.view.dom)return;M.view.dom.querySelectorAll("img.editor-image[width][height]").forEach(Q=>{if(Q instanceof HTMLImageElement){const ae=Q.getAttribute("width"),ee=Q.getAttribute("height");ae&&ee&&ae!=="auto"&&ee!=="auto"&&ae!==""&&ee!==""&&!isNaN(Number(ae))&&!isNaN(Number(ee))&&(Q.style.cssText=`
|
|
43
|
+
`.replace(/\s+/g," ").trim())}})},j=i.value.width,oe=i.value.height;j&&oe&&j!==""&&oe!==""?[0,_,_*2,_*3,_*4].forEach(P=>{setTimeout(T,P)}):(T(),setTimeout(T,_))},V=async()=>{let E=[],S=[];if(Array.isArray(i.value.file)?(E=i.value.file.filter(A=>A instanceof File),S=i.value.file.filter(A=>typeof A=="string"&&A.trim()!=="")):i.value.file instanceof FileList?E=Array.from(i.value.file):i.value.file instanceof File?E=[i.value.file]:typeof i.value.file=="string"&&i.value.file.trim()!==""&&(S=[i.value.file]),E.length===0&&S.length===0&&a.value&&a.value.file){const A=a.value.file;Array.isArray(A)?(E=A.filter(P=>P instanceof File),S=A.filter(P=>typeof P=="string"&&P.trim()!=="")):A instanceof FileList?E=Array.from(A):A instanceof File?E=[A]:typeof A=="string"&&A.trim()!==""&&(S=[A])}if(S.length>0&&!l.value){for(const A of S)s.value.some(P=>P.url===A)||s.value.push({url:A,preview:A,error:!1});if(E.length===0&&s.value.length>0){await U();return}}const _=E.length,T=_+S.length;if(!(l.value&&_<=1)){if(_>0){const A=E.filter(P=>!s.value.some(Y=>Y.file===P));A.length>0&&await w(A)}}if(!l.value){if(T>1||d.value||s.value.length>1){if(s.value.length>0){await U();return}else if(_>0){if(await w(E),s.value.length>0){await U();return}}else if(S.length>0){await U();return}}else if(s.value.length>1){await U();return}}let j=i.value.src;if(h.value){let A=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?A=i.value.file[0]:(i.value.file instanceof File||typeof i.value.file=="string")&&(A=i.value.file),A instanceof File)try{const P=new FileReader,Y=await new Promise((q,I)=>{P.onload=J=>q(J.target.result),P.onerror=I,P.readAsDataURL(A)});j=Y,l.value&&(i.value.src=Y)}catch(P){console.error("Помилка при читанні файлу:",P),ge.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof A=="string"&&A.trim()!==""&&(j=A.trim(),l.value&&A.trim()!==i.value.src&&(i.value.src=A.trim(),j=A.trim()))}else if(Array.isArray(i.value.file)&&i.value.file.length===1){const A=i.value.file[0];typeof A=="string"&&A.trim()!==""&&(j=A.trim(),(!i.value.src||i.value.src!==A.trim())&&(i.value.src=A.trim()))}else typeof i.value.file=="string"&&i.value.file.trim()!==""&&(j=i.value.file.trim(),(!i.value.src||i.value.src!==i.value.file.trim())&&(i.value.src=i.value.file.trim()));const oe=j||Array.isArray(i.value.file)&&i.value.file.length>0&&(i.value.file.some(A=>A instanceof File)||i.value.file.some(A=>typeof A=="string"&&A.trim()!==""))||i.value.file instanceof FileList&&i.value.file.length>0||typeof i.value.file=="string"&&i.value.file.trim()!=="";if(!j&&!oe){ge.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!oe&&await a.value.validate()){ge.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&j)if(l.value&&c.value!==null){const{state:A}=t.editor;try{t.editor.chain().focus().setNodeSelection(c.value).run()}catch{t.editor.chain().focus().setTextSelection(c.value).run()}const P=t.editor.getAttributes("link"),Y=P&&P.href,q=v(),I={src:j,alt:i.value.alt||"",title:i.value.title||"",...q};if((!i.value.width||i.value.width==="")&&(I.width=void 0),(!i.value.height||i.value.height==="")&&(I.height=void 0),t.editor.chain().focus().updateAttributes("image",I).run(),setTimeout(()=>{const{view:J}=t.editor;if(!J||!J.dom)return;J.dom.querySelectorAll("img.editor-image").forEach(M=>{if(M instanceof HTMLImageElement){const N=M.getAttribute("src")||M.src;(N===j||N.includes(j.split("/").pop()))&&(i.value.width&&i.value.height?(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")):(M.style.removeProperty("width"),M.style.removeProperty("height"),M.style.removeProperty("object-fit"),M.style.removeProperty("max-width"),M.style.removeProperty("max-height")))}})},20),i.value.link&&i.value.link.trim()!==""){let J=i.value.link.trim();J.match(/^https?:\/\//i)||(J="https://"+J),Y?t.editor.chain().focus().extendMarkRange("link").setLink({href:J,target:i.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:J,target:i.value.openInNewTab?"_blank":null}).run()}else Y&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:A}=t.editor,{selection:P}=A,{$anchor:Y}=P;let q=null;for(let J=Y.depth;J>0;J--){const te=Y.node(J);if(te&&te.type.name==="paragraph"){q=te;break}}if(q&&q.content.content.some(J=>J.type.name==="image")){const J=$(q,Y.before(Y.depth));if(J!==null){const te=v(),L=A.schema.nodes.image.create({src:j,alt:i.value.alt||"",title:i.value.title||"",...te});if(i.value.link&&i.value.link.trim()!==""){let M=i.value.link.trim();M.match(/^https?:\/\//i)||(M="https://"+M);const N=A.schema.marks.link.create({href:M,target:i.value.openInNewTab?"_blank":null}),Q=L.type.create(L.attrs,L.content,[N]);t.editor.chain().focus().insertContentAt(J+1,Q).run(),C(t.editor,j)}else t.editor.chain().focus().insertContentAt(J+1,L).run(),C(t.editor,j)}else if(i.value.link&&i.value.link.trim()!==""){const te=v();t.editor.chain().focus().setImage({src:j,alt:i.value.alt||"",title:i.value.title||"",...te}).run(),setTimeout(()=>{let L=i.value.link.trim();L.match(/^https?:\/\//i)||(L="https://"+L),t.editor.chain().focus().selectParentNode().setLink({href:L,target:i.value.openInNewTab?"_blank":null}).run(),C(t.editor,j,20)},10)}else{const te=v();t.editor.chain().focus().setImage({src:j,alt:i.value.alt||"",title:i.value.title||"",...te}).run(),C(t.editor,j)}}else if(i.value.link&&i.value.link.trim()!==""){const J=v();t.editor.chain().focus().setImage({src:j,alt:i.value.alt||"",title:i.value.title||"",...J}).run(),setTimeout(()=>{let te=i.value.link.trim();te.match(/^https?:\/\//i)||(te="https://"+te),t.editor.chain().focus().selectParentNode().setLink({href:te,target:i.value.openInNewTab?"_blank":null}).run(),C(t.editor,j,20)},10)}else{const J=v();t.editor.chain().focus().setImage({src:j,alt:i.value.alt||"",title:i.value.title||"",...J}).run(),C(t.editor,j)}}f()},$=(E,S)=>{let _=null;return E.forEach((T,j)=>{T.type.name==="image"&&(_=S+j+1)}),_},U=async()=>{if(t.editor){if(s.value.length===0)if(Array.isArray(i.value.file)&&i.value.file.length>0){const E=i.value.file.filter(_=>typeof _=="string"&&_.trim()!==""),S=i.value.file.filter(_=>_ instanceof File);for(const _ of E)s.value.some(T=>T.url===_||T.preview===_)||s.value.push({url:_,preview:_,error:!1});S.length>0&&await w(S)}else d.value&&await w(i.value.file);if(s.value.length!==0)try{const E=[],S=v();for(const _ of s.value){const T=_.url||_.preview||"";if(!T)continue;const j=t.editor.schema.nodes.image.create({src:T,alt:i.value.alt||"",title:i.value.title||"",...S});E.push(j)}E.length>0&&(t.editor.chain().focus().command(({tr:_,dispatch:T})=>{if(T){const{selection:j}=_,{$anchor:oe}=j;let A=j.$anchor.pos,P=null,Y=null;for(let I=oe.depth;I>0;I--){const J=oe.node(I);if(J&&J.type.name==="paragraph"){P=J,Y=oe.start(I);break}}if(P){let I=null;P.forEach((J,te)=>{J.type.name==="image"&&(I=Y+te+1)}),I!==null?A=I+1:A=Y+P.content.size}let q=A;return E.forEach(I=>{_.insert(q,I),q+=I.nodeSize}),!0}return!1}).run(),i.value.width&&i.value.height&&setTimeout(()=>{const{view:_}=t.editor;_&&_.dom&&_.dom.querySelectorAll("img.editor-image").forEach(oe=>{oe instanceof HTMLImageElement&&Array.from(s.value).some(P=>{const Y=P.url||P.preview||"",q=oe.src||oe.getAttribute("src")||"";return q===Y||q.includes(Y.split("/").pop())})&&(oe.style.setProperty("width",`${i.value.width}px`,"important"),oe.style.setProperty("height",`${i.value.height}px`,"important"),oe.style.setProperty("object-fit","fill","important"),oe.style.setProperty("max-width","none","important"),oe.style.setProperty("max-height","none","important"))})},50)),f()}catch(E){console.error("Помилка при додаванні зображень:",E),ge.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},Z=async()=>{await V()},O=()=>{f()};return e.watch(()=>i.value.file,async(E,S)=>{if(r.value=!1,!(l.value&&Array.isArray(E)&&E.length===1&&typeof E[0]=="string"&&!E.some(T=>T instanceof File)))if(Array.isArray(E)&&E.length>0){const _=E.filter(j=>j instanceof File),T=E.filter(j=>typeof j=="string"&&j.trim()!=="");if(_.length>0&&(l.value?l.value&&_.length===1&&T.length===0&&(s.value=[]):s.value=[],(!l.value||_.length>1||T.length>0)&&await w(_),l.value&&_.length===1&&T.length===0)){const j=new FileReader;j.onload=oe=>{i.value.src=oe.target.result},j.readAsDataURL(_[0])}if(T.length>0)if(l.value)l.value&&T.length===1&&_.length===0&&(i.value.src=T[0]);else{_.length===0&&(s.value=[]);for(const j of T)s.value.some(oe=>oe.url===j||oe.preview===j)||s.value.push({url:j,preview:j,error:!1})}}else E&&typeof E=="object"&&E instanceof FileList?(l.value||(s.value=[]),await w(Array.from(E))):E&&typeof E=="object"&&!Array.isArray(E)&&E instanceof File?(l.value||(s.value=[]),await w([E])):l.value||(s.value=[])},{immediate:!1}),e.watch(()=>i.value.src,()=>{r.value=!1}),(E,S)=>(e.openBlock(),e.createElementBlock("div",g0,[e.createElementVNode("button",{onClick:m,class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",o.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(X.Image),{class:"h-4 w-4"}),S[4]||(S[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(El,{modelValue:n.value,"onUpdate:modelValue":S[3]||(S[3]=_=>n.value=_),title:l.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",E0,[e.createElementVNode("button",{onClick:O,type:"button",class:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500"}," Скасувати "),e.createElementVNode("button",{onClick:Z,type:"button",class:"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500"},e.toDisplayString(l.value?"Оновити зображення":"Додати зображення"),1)])]),default:e.withCtx(()=>[e.createVNode(rt,{modelValue:i.value,"onUpdate:modelValue":S[0]||(S[0]=_=>i.value=_),schema:p.value,form:a.value,"onUpdate:form":S[1]||(S[1]=_=>a.value=_)},null,8,["modelValue","schema","form"]),y.value&&!d.value?(e.openBlock(),e.createElementBlock("div",y0,[S[5]||(S[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:y.value,alt:i.value.alt||"Попередній перегляд зображення",title:i.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:S[2]||(S[2]=_=>r.value=!0)},null,40,b0),[[e.vShow,!r.value]]),r.value?(e.openBlock(),e.createElementBlock("p",k0," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",w0,[e.createElementVNode("p",x0,"Попередній перегляд ("+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",v0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(_,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:_.preview,alt:`Попередній перегляд ${T+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:j=>_.error=!0},null,40,_0),[[e.vShow,!_.error]]),e.createElementVNode("button",{onClick:j=>b(T),class:"absolute -top-2 -right-2 bg-red-500 text-white rounded-full w-5 h-5 flex items-center justify-center text-xs hover:bg-red-600",type:"button"}," × ",8,C0)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),V0={class:"flex items-center"},S0=["disabled"],$0=["disabled"],A0=Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},r=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(a,l)=>(e.openBlock(),e.createElementBlock("div",V0,[e.createElementVNode("button",{onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[o.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(X.Undo2),{class:"h-4 w-4"})],10,S0),e.createElementVNode("button",{onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[o.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(X.Redo2),{class:"h-4 w-4"})],10,$0)]))}}),[["__scopeId","data-v-6a87fc55"]]),N0={class:"relative"},M0={class:"p-6"},F0={class:"flex justify-between items-center mb-4"},D0={bold:Gg,italic:Zg,color:Py,background_color:qy,highlight:Wy,bullet_list:Pg,ordered_list:jg,blockquote:Lg,codeblock:qg,underline:Jg,strike:Qg,link:vy,table:Vy,text_align:Ay,font_family:Zy,font_size:t0,superscript:r0,subscript:s0,heading:p0,clear_formatting:h0,image:B0,history:A0,help:Be(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(o){const t=e.ref(!1),n=e.ref(null),r=()=>{t.value=!t.value},a=()=>{t.value=!1};return(l,s)=>(e.openBlock(),e.createElementBlock("div",N0,[e.createElementVNode("button",{ref_key:"helpButton",ref:n,onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 text-gray-500",[t.value?"bg-gray-100 text-gray-900":"text-gray-500"]]),title:"Markdown Shortcuts Help"},[e.createVNode(e.unref(X.CircleHelp),{class:"h-4 w-4"})],2),t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[100001]",onClick:a},[e.createElementVNode("div",{class:"bg-white rounded-lg shadow-xl max-w-2xl w-full mx-4 max-h-[80vh] overflow-y-auto",onClick:s[0]||(s[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",M0,[e.createElementVNode("div",F0,[s[1]||(s[1]=e.createElementVNode("h2",{class:"text-xl font-semibold text-gray-900"},"Common Markdown Syntax & Shortcuts",-1)),e.createElementVNode("button",{onClick:a,class:"text-gray-400 hover:text-gray-600 transition-colors"},[e.createVNode(e.unref(X.X),{class:"h-6 w-6"})])]),s[2]||(s[2]=e.createStaticVNode('<div class="space-y-6" data-v-92c21275><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Markdown Syntax</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Element</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Example</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Bold</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>**bold text**</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>__bold text__</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Italics</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>*italic text*</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>_italic text_</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Strikethrough</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>~strikethrough text~</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Headings</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275># Heading 1</code>, <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>## Heading 2</code>, etc., up to <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>###### Heading 6</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Unordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use an asterisk (*), dash (-), or plus sign (+) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Ordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use a number followed by a period and a space (e.g., <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>1. First item</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Blockquotes</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Start with a greater-than sign (>) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Inline Code</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Surround with backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>`</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Code Blocks</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Enclose with three backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>```</code>) before and after the code. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Images</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275></code> syntax. </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Links</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>[Link Text](url)</code> syntax. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Checklists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Create a list item with <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [ ]</code> for an incomplete task or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [x]</code> for a completed one. </td></tr></tbody></table></div></div><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Common Editing Shortcuts</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Shortcut</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Action</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+A</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Select all text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+B</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply bold formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+C</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Copy selected text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+I</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply italic formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+K</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Open the insert link dialog</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+S</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Save the current document</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+V</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Paste copied text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+X</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Cut selected text</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Y</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Shift+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Z</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr></tbody></table></div></div></div>',1))])])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-92c21275"]]),horizontal_rule:{__name:"vs-editor-horizontal-rule",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(r,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:n,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(X.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(o,{emit:t}){const n=t,r=()=>{n("toggle-fullscreen")};return(a,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:r,class:"w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(e.unref(X.Maximize),{class:"h-4 w-4"})]))}}},Sl={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"]},T0={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},L0={class:"editor-body"},I0={key:0,class:"richtext-loading text-sm text-gray-500"},O0={key:1,class:"richtext-error text-sm text-red-600"},P0={class:"html-source-editor"},R0={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},z0={class:"inline-flex items-stretch -mt-px"},j0=Object.freeze(Object.defineProperty({__proto__:null,default:Object.assign({inheritAttrs:!1},{__name:"vs-richtext",props:e.mergeModels({modelValue:{type:String,default:()=>""},height:{type:String,default:()=>"300px"},format:{type:String,default:()=>"html"},toolbar:{type:[Array,String],default:()=>"default"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),a=e.ref(null),l=e.shallowRef(null),s=e.ref(!1),c=e.ref(""),i=e.ref(!1),d=e.ref(null),h=e.ref(""),y=e.ref(""),p=e.ref(null),m=e.ref(!1),f=e.ref(!1),{isFullscreen:w,toggleFullscreen:b}=ig(),{t:v}=Lo(),C=e.computed(()=>t.format==="md"?"markdown":"html"),V=e.computed(()=>t.format==="md"?v("form.richtext.markdown"):v("form.richtext.html")),$=e.computed(()=>l.value||null),U=e.computed(()=>typeof t.toolbar=="string"?Sl[t.toolbar]||Sl.default:t.toolbar),Z=e.computed(()=>U.value.map(M=>D0[M]).filter(Boolean)),O=e.computed(()=>(d.value?.attributes||[]).find(N=>N.name==="class")?.value||""),E=e.computed(()=>{const N=(d.value?.attributes||[]).find(ae=>ae.name==="style")?.value||"",Q={};return N.split(";").forEach(ae=>{const[ee,...he]=ae.split(":"),we=ee?.trim(),be=he.join(":").trim();!we||!be||we!=="height"&&(Q[we.replace(/-([a-z])/g,($e,Me)=>Me.toUpperCase())]=be)}),Q}),S=M=>{const N=(M||"").trim();return N?/^<p(?:\s+[^>]*)?>(?:\s|<br[^>]*>)*<\/p>$/i.test(N):!0},_=M=>S(M)?"":M||"",T=M=>{const N=M||"";p.value=N,n.value=N},j=M=>{if(!M||!M.view||!M.view.dom)return;M.view.dom.querySelectorAll("img.editor-image[width][height]").forEach(Q=>{if(Q instanceof HTMLImageElement){const ae=Q.getAttribute("width"),ee=Q.getAttribute("height");ae&&ee&&ae!=="auto"&&ee!=="auto"&&ae!==""&&ee!==""&&!isNaN(Number(ae))&&!isNaN(Number(ee))&&(Q.style.cssText=`
|
|
44
44
|
width: ${ae}px !important;
|
|
45
45
|
height: ${ee}px !important;
|
|
46
46
|
max-width: none !important;
|
|
@@ -48,4 +48,4 @@ ${i}
|
|
|
48
48
|
min-width: auto !important;
|
|
49
49
|
min-height: auto !important;
|
|
50
50
|
object-fit: fill !important;
|
|
51
|
-
`.replace(/\s+/g," ").trim())}})},oe=async(M,{force:N=!1}={})=>{if(h.value=M||"",!l.value||i.value&&!N)return;_(l.value.getHTML())!==(M||"")&&(l.value.commands.setContent(M||"",!1),e.nextTick(()=>{j(l.value)}))},A=async M=>{f.value=!0,y.value=M||"",await e.nextTick(),f.value=!1},P=async M=>t.format==="html"?Qn(M||""):M||"",Y=async()=>{const M=await P(y.value);M!==(n.value||"")?T(M):p.value=M},q=async M=>{const N=M||"";if(t.format==="html"){const Q=Qn(N),ae=
|
|
51
|
+
`.replace(/\s+/g," ").trim())}})},oe=async(M,{force:N=!1}={})=>{if(h.value=M||"",!l.value||i.value&&!N)return;_(l.value.getHTML())!==(M||"")&&(l.value.commands.setContent(M||"",!1),e.nextTick(()=>{j(l.value)}))},A=async M=>{f.value=!0,y.value=M||"",await e.nextTick(),f.value=!1},P=async M=>t.format==="html"?Qn(M||""):M||"",Y=async()=>{const M=await P(y.value);M!==(n.value||"")?T(M):p.value=M},q=async M=>{const N=M||"";if(t.format==="html"){const Q=Qn(N),ae=wl(Q);d.value=ae.wrapper,await oe(ae.bodyHtml||""),p.value=Q;return}else{d.value=null;const Q=await vl(N,t.format);await oe(Q||""),i.value&&await A(N)}p.value=N},I=async()=>{if(t.format==="html"){const N=_(l.value?.getHTML()||h.value||""),Q=xl(N,d.value);return _l(Qn(Q),"html")}const M=_(l.value?.getHTML()||h.value||"");return _l(M,t.format)},J=async M=>{if(i.value!==M){if(M){m.value=!0,i.value=!0,await A(await I()),e.nextTick(()=>{a.value?.focus?.()});return}if(await Y(),t.format==="html"){const N=Qn(y.value||""),Q=wl(N);d.value=Q.wrapper,await oe(Q.bodyHtml||"",{force:!0})}else{const N=await vl(y.value||"",t.format);await oe(N||"",{force:!0})}i.value=!1,m.value=!1,e.nextTick(()=>{l.value?.commands?.focus?.()})}},te=()=>{i.value||l.value?.commands?.focus?.()},L=async()=>{if(!r.value)return null;s.value=!0,c.value="";try{const M=await kg();if(!M)return null;const N=new M.Editor({element:r.value,content:h.value||"",extensions:[M.StarterKit.configure({history:{depth:100,newGroupDelay:500},code:{HTMLAttributes:{class:"editor-code"}},codeBlock:{HTMLAttributes:{class:"editor-codeblock"}},paragraph:!1,heading:!1,link:!1}),M.Superscript,M.Subscript,M.ExtendedTextStyle,M.CustomParagraph,M.CustomHeading,M.Highlight,M.Image.configure({inline:!0,allowBase64:!0,HTMLAttributes:{class:"editor-image"}}),M.TextAlign.configure({types:["heading","paragraph"]}),M.CustomLink.configure({HTMLAttributes:{class:"editor-link"},openOnClick:!1,autolink:!0}),M.CustomTableKit,M.Iframe],editorProps:{handlePaste:(Q,ae)=>Ag(Q,ae,M.ProseMirrorDOMParser),handleKeyDown:(Q,ae)=>{if(ae.key==="Tab"){const ee=Q.state,{$anchor:he}=ee.selection;let we=!1;for(let be=he.depth;be>0;be--){const $e=he.node(be);if($e&&($e.type.name==="bulletList"||$e.type.name==="orderedList")){we=!0;break}}return we?!1:(ae.preventDefault(),!0)}return!1}}});return l.value=e.markRaw(N),l.value.on("update",async({editor:Q})=>{if(i.value)return;const ae=_(Q.getHTML());if(h.value=ae,t.format==="html"){const ee=xl(ae,d.value);ee!==n.value&&T(ee)}else{const ee=await Sg(ae,t.format);ee!==n.value&&T(ee)}setTimeout(()=>{j(Q)},10)}),e.nextTick(()=>{j(l.value)}),N}catch(M){return c.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",M),null}finally{s.value=!1}};return e.watch(()=>t.modelValue,async M=>{if(m.value)return;const N=M||"";N!==p.value&&await q(N)},{immediate:!0}),e.watch(y,async()=>{!i.value||!m.value||f.value||await Y()}),e.onMounted(async()=>{await L(),e.nextTick(()=>{l.value&&setTimeout(()=>{j(l.value)},100)})}),e.onBeforeUnmount(async()=>{i.value&&m.value&&await Y(),l.value?.destroy?.(),l.value=null}),(M,N)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["bg-white rounded-md w-full",{"fixed left-0 right-0 top-0 bottom-0 z-[100000]":e.unref(w)}])},[e.createElementVNode("div",T0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Z.value,Q=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:Q},[l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(Q),{key:0,editor:$.value,onToggleFullscreen:e.unref(b)},null,40,["editor","onToggleFullscreen"])):e.createCommentVNode("",!0)],64))),128))]),e.createElementVNode("div",{onClick:te,class:"relative w-full px-4 py-2 bg-white rounded-b-lg editor-content",style:e.normalizeStyle({height:e.unref(w)?"calc(95vh - 44px)":o.height})},[e.createElementVNode("div",L0,[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["rich-text-scroll-wrapper",O.value]),style:e.normalizeStyle(E.value)},[e.createElementVNode("div",{ref_key:"editorElement",ref:r,class:"relative w-full"},null,512),s.value?(e.openBlock(),e.createElementBlock("div",I0,"Loading editor...")):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("div",O0,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0)],6),[[e.vShow,!i.value]]),e.withDirectives(e.createElementVNode("div",P0,[e.createVNode(Co,{ref_key:"htmlTextarea",ref:a,modelValue:y.value,"onUpdate:modelValue":N[0]||(N[0]=Q=>y.value=Q),height:"100%",syntax:C.value,theme:"vs-light"},null,8,["modelValue","syntax"])],512),[[e.vShow,i.value]])])],4),e.createElementVNode("div",R0,[e.createElementVNode("div",z0,[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]",i.value?"text-[#8f99aa]":"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]"]),onClick:N[1]||(N[1]=Q=>J(!1))},e.toDisplayString(e.unref(v)("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]",i.value?"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]":"text-[#8f99aa]"]),onClick:N[2]||(N[2]=Q=>J(!0))},e.toDisplayString(V.value),3)])])],2))}})},Symbol.toStringTag,{value:"Module"}));xe.ModalEdit=Xr,xe.VForm=rt,xe.VsInputAddress=qr,xe.VsInputArray=Hr,xe.VsInputArraySelect=Hn,xe.VsInputCheckbox=er,xe.VsInputCodegen=Pr,xe.VsInputColor=jr,xe.VsInputContainer=xr,xe.VsInputDate=ir,xe.VsInputEmail=uo,xe.VsInputFile=br,xe.VsInputFile2=Tn,xe.VsInputFileList=kr,xe.VsInputInlineSelect=In,xe.VsInputKeyValue=Rr,xe.VsInputMask=En,xe.VsInputMonaco=Co,xe.VsInputNumber=Zo,xe.VsInputRadio=mo,xe.VsInputRange=Ur,xe.VsInputRichtext=Er,xe.VsInputSelect=ko,xe.VsInputSlug=Or,xe.VsInputStatic=co,xe.VsInputSwitcher=io,xe.VsInputTag=Ir,xe.VsInputTel=po,xe.VsInputText=Yt,xe.VsInputTextArray=zr,xe.VsInputTextarea=Cr,xe.default=rt,xe.hasMapLayerPreset=Yo,xe.inputs=Wr,xe.resolveMapLayerPreset=_n,xe.richtextLocaleEn=Zr,xe.richtextLocaleUk=Jr,xe.richtextMessages=Bo,xe.vsInputDatatable=Br,xe.vsInputMap=Lr,Object.defineProperties(xe,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|