@opengis/form 0.1.34 → 0.1.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- (function(Se,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue"),require("@opengis/core"),require("lucide-vue-next")):typeof define=="function"&&define.amd?define(["exports","vue","@opengis/core","lucide-vue-next"],s):(Se=typeof globalThis<"u"?globalThis:Se||self,s(Se.FormBuilder={},Se.Vue,Se.OpenGISCore,Se.lucide))})(this,function(Se,s,ke,Y){"use strict";function Ws(n,e,t){if(!Array.isArray(t)||!t.length)return null;const r=String(n?.preset??n?.renderer??"").trim().toLowerCase();if(r){const o=t.find(i=>String(i.id).trim().toLowerCase()===r);if(o)return o}return t.find(o=>typeof o.match=="function"&&o.match(n,e))??null}function Bu(n,e,t){return!!Ws(n,e,t)}const Ks=6,An=8,Nu=s.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(n){const e=n,t=s.ref(!1),r=s.ref(null),o=s.ref(null),i=s.ref({top:"0px",left:"0px",visibility:"hidden"});let l=null;const a=()=>typeof window<"u";function c(m,g){if(!a())return null;const y=window.innerWidth,b=window.innerHeight,{top:w,bottom:v,left:S,right:N}=m,{width:F,height:T}=g,E=b-v-Ks-An,_=w-Ks-An;let I=E>=T||E>=_?v+Ks:w-Ks-T,U=S;return U+F>y-An&&(U=N-F),U<An&&(U=An),U+F>y-An&&(U=y-An-F),I=Math.max(An,Math.min(I,b-An-T)),{top:I,left:U}}function d(){if(!a())return;const m=r.value,g=o.value;if(!m||!g)return;const y=m.getBoundingClientRect(),b=g.getBoundingClientRect(),w=c(y,b);if(!w)return;const{top:v,left:S}=w;i.value={top:`${Math.round(v)}px`,left:`${Math.round(S)}px`,visibility:"visible"}}function u(){a()&&(l!==null&&cancelAnimationFrame(l),l=requestAnimationFrame(()=>{d(),l=null}))}async function f(){!e.text||!a()||(i.value={top:"0px",left:"0px",visibility:"hidden"},t.value=!0,await s.nextTick(),u())}function p(){t.value=!1,i.value={top:"0px",left:"0px",visibility:"hidden"}}function h(){t.value&&u()}return s.onMounted(()=>{window.addEventListener("scroll",h,!0),window.addEventListener("resize",h)}),s.onBeforeUnmount(()=>{l!==null&&(cancelAnimationFrame(l),l=null),window.removeEventListener("scroll",h,!0),window.removeEventListener("resize",h)}),(m,g)=>(s.openBlock(),s.createElementBlock(s.Fragment,null,[s.createElementVNode("span",{ref_key:"triggerRef",ref:r,class:"inline-flex items-center",onMouseenter:f,onMouseleave:p},[s.renderSlot(m.$slots,"default",{},()=>[s.createVNode(s.unref(Y.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],544),(s.openBlock(),s.createBlock(s.Teleport,{to:"body"},[t.value&&m.text?(s.openBlock(),s.createElementBlock("div",{key:0,ref_key:"tooltipRef",ref:o,style:s.normalizeStyle(i.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none",role:"tooltip"},s.toDisplayString(m.text),5)):s.createCommentVNode("",!0)]))],64))}}),ha={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"}}},ma={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:"Скасувати"}}},gb={class:"w-full relative"},yb={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},bb={class:"opacity-100"},kb={key:0,class:"text-red-500 text-[14px]"},wb={key:2,class:"text-[11px] text-slate-500 font-normal"},xb={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},vb=s.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(n){const e=n,t=s.computed(()=>typeof e.item?.label=="string"&&e.item.label?e.item.label:e.item?.ua||e.label||e.ua),r=s.computed(()=>!!t.value),o=s.computed(()=>!!e.item?.rules?.includes("required")),i=s.computed(()=>e.item?.info||""),l=s.inject("schema-by-name"),a={en:ha?.form?.autofillFrom,uk:ma?.form?.autofillFrom},c=s.computed(()=>{const d=e.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const u=String(e.item?.__locale||"uk"),f=String(d.parentField),p=l?.value?.[f],h=p?.[`label:${u}`]||(u!=="uk"?p?.[u]:void 0)||p?.label||p?.ua||p?.en||f;return`${a[u]||a.uk}: ${h}`});return(d,u)=>(s.openBlock(),s.createElementBlock("div",gb,[r.value?(s.openBlock(),s.createElementBlock("div",yb,[s.createElementVNode("span",bb,s.toDisplayString(t.value),1),o.value?(s.openBlock(),s.createElementBlock("span",kb,"*")):s.createCommentVNode("",!0),i.value?(s.openBlock(),s.createBlock(Nu,{key:1,text:i.value},null,8,["text"])):s.createCommentVNode("",!0),c.value?(s.openBlock(),s.createElementBlock("span",wb," ("+s.toDisplayString(c.value)+") ",1)):s.createCommentVNode("",!0)])):s.createCommentVNode("",!0),s.renderSlot(d.$slots,"default",s.mergeProps(d.$attrs,{class:{"opacity-60":d.item.disabled}})),d.error?(s.openBlock(),s.createElementBlock("span",xb,s.toDisplayString(d.error),1)):s.createCommentVNode("",!0)]))}}),Cb={class:"w-full relative flex flex-row items-center gap-2"},Sb={key:0,class:"text-red-500 text-[14px]"},Eb={key:2,class:"text-[11px] text-slate-500 font-normal"},Mb={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Ab=s.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(n){const e=n,t=s.computed(()=>e.item?.label||e.label||e.ua),r=s.computed(()=>e.item?.info||""),o=s.inject("schema-by-name"),i={en:ha?.form?.autofillFrom,uk:ma?.form?.autofillFrom},l=s.computed(()=>{const p=e.item?.__autoMeta;if(!p||p?.source!=="parent-auto"||!p?.parentField)return"";const h=String(e.item?.__locale||"uk"),m=String(p.parentField),g=o?.value?.[m],y=g?.[`label:${h}`]||(h!=="uk"?g?.[h]:void 0)||g?.label||g?.ua||g?.en||m;return`${i[h]||i.uk}: ${y}`}),a=s.computed(()=>e.columns??{container:12,label:3}),c=s.computed(()=>{const{container:p,label:h}=a.value;return!p||p<=0?0:Math.min(Math.max(h??0,0),p)/p}),d=s.computed(()=>e.item?.type==="html"||c.value<=0?!1:!!t.value),u=s.computed(()=>{if(!d.value)return{};const p=`${c.value*100}%`;return{flexBasis:p,maxWidth:p}}),f=s.computed(()=>{const{container:p,label:h}=a.value;if(!p||p<=0)return{};if(e.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const m=Math.max(p-Math.max(h??0,0),0)/p;if(!m)return{};const g=`${m*100}%`;return{flexBasis:g,maxWidth:g}});return(p,h)=>(s.openBlock(),s.createElementBlock("div",Cb,[d.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:s.normalizeStyle(u.value)},[s.createTextVNode(s.toDisplayString(t.value)+" ",1),p.item?.rules?.includes("required")&&t.value?(s.openBlock(),s.createElementBlock("span",Sb,"*")):s.createCommentVNode("",!0),r.value?(s.openBlock(),s.createBlock(Nu,{key:1,text:r.value},null,8,["text"])):s.createCommentVNode("",!0),l.value?(s.openBlock(),s.createElementBlock("span",Eb," ("+s.toDisplayString(l.value)+") ",1)):s.createCommentVNode("",!0)],4)):s.createCommentVNode("",!0),s.createElementVNode("div",{class:"flex-1 min-w-0",style:s.normalizeStyle(f.value)},[s.renderSlot(p.$slots,"default",s.normalizeProps(s.guardReactiveProps(p.$attrs)))],4),p.error?(s.openBlock(),s.createElementBlock("span",Mb,s.toDisplayString(p.error),1)):s.createCommentVNode("",!0)]))}}),_b={class:"w-full relative"},Tb={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Bb=s.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(n){return(e,t)=>(s.openBlock(),s.createElementBlock("div",_b,[s.renderSlot(e.$slots,"default",s.normalizeProps(s.guardReactiveProps(e.$attrs))),e.error?(s.openBlock(),s.createElementBlock("span",Tb,s.toDisplayString(e.error),1)):s.createCommentVNode("",!0)]))}}),Nb={class:"flex-1 min-w-0"},Db={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},Vb={class:"truncate"},$b={key:0,class:"text-red-500 text-[14px]"},Lb=["innerHTML"],Ib={key:0,class:"mt-1 text-xs text-red-500"},Ob={default:vb,horizontal:Ab,inline:Bb,settings:s.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(n){const e=n,t=s.ref("uk");s.computed(()=>(e.item??{})?.[t.value]??e.ua??e.label??"");const r=s.computed(()=>e.item?.description??""),o=s.computed(()=>Array.isArray(e.item?.rules)&&e.item.rules.includes("required")),i=s.computed(()=>(typeof e.error=="string"?e.error:"")??""),l=()=>{const a=typeof localStorage<"u"?localStorage.getItem("locale"):null;t.value=a||"uk"};return s.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(t.value=localStorage.locale)}catch{}window.addEventListener("storage",l)}),s.onUnmounted(()=>{window.removeEventListener("storage",l)}),(a,c)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["w-full relative",{"opacity-60":a.item?.disabled}])},[s.createElementVNode("div",{class:s.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(a.item.type)?"flex flex-col":""]])},[s.createElementVNode("div",Nb,[a.ua||a.label?(s.openBlock(),s.createElementBlock("p",Db,[s.createElementVNode("span",Vb,s.toDisplayString(a.item[t.value]||a.ua||a.label),1),o.value?(s.openBlock(),s.createElementBlock("span",$b,"*")):s.createCommentVNode("",!0)])):s.createCommentVNode("",!0),r.value?(s.openBlock(),s.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:r.value},null,8,Lb)):s.createCommentVNode("",!0)]),s.createElementVNode("div",{class:s.normalizeClass(["w-full",["select","native-select"].includes(a.item.type)?"md:w-[30%]":"md:w-auto"])},[s.renderSlot(a.$slots,"default",s.normalizeProps(s.guardReactiveProps(a.$attrs)))],2)],2),i.value?(s.openBlock(),s.createElementBlock("p",Ib,s.toDisplayString(i.value),1)):s.createCommentVNode("",!0)],2))}})};function Bt(n){return{inputClass:s.computed(()=>{const t=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${n?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return n?.size==="sm"?`${t}h-[32px]`:`${t}h-[38px]`})}}const Rb=["placeholder","disabled"],Fb=s.defineComponent({__name:"vs-input-password",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useModel(n,"modelValue"),o=s.computed(()=>!!e.disabled),i=s.computed(()=>e.placeholder??"");return(l,a)=>s.withDirectives((s.openBlock(),s.createElementBlock("input",{type:"password","onUpdate:modelValue":a[0]||(a[0]=c=>r.value=c),placeholder:i.value,disabled:o.value,class:s.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[s.unref(t),{"!border-red-600":l.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Rb)),[[s.vModelText,r.value]])}}),Pb=["placeholder","disabled","maxlength","minlength"],Yr=s.defineComponent({__name:"vs-input-text",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useModel(n,"modelValue"),o=s.computed({get:()=>r.value??"",set:u=>{r.value=u===""?null:u}}),i=s.computed(()=>!!e.disabled),l=s.computed(()=>e.placeholder??""),a=s.computed(()=>e.maxlength??void 0),c=s.computed(()=>e.minlength??void 0);function d(){if(typeof r.value=="string"){const u=r.value.trim();r.value=u===""?null:u}}return(u,f)=>s.withDirectives((s.openBlock(),s.createElementBlock("input",{type:"text","onUpdate:modelValue":f[0]||(f[0]=p=>o.value=p),placeholder:l.value,disabled:i.value,maxlength:a.value,minlength:c.value,onBlur:d,class:s.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[u.customClass,s.unref(t),{"!border-red-600":u.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Pb)),[[s.vModelText,o.value]])}}),zb=["step","placeholder","disabled","min","max"],Du=s.defineComponent({__name:"vs-input-number",props:s.mergeModels({style:{type:Object,default:()=>({})},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:[Number,String],default:void 0}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useAttrs(),o=s.useModel(n,"modelValue"),i=s.computed(()=>!!e.disabled),l=u=>{if(u==null||u==="")return;const f=typeof u=="string"?u.trim().replace(",","."):u,p=Number(f);return Number.isFinite(p)?p:void 0},a=s.computed(()=>l(e.min??r.min)),c=s.computed(()=>l(e.max??r.max)),d=s.computed(()=>{if(e.step!==void 0&&e.step!==null&&e.step!=="")return e.step;const u=r.step;return typeof u=="number"||typeof u=="string"?u:"any"});return(u,f)=>s.withDirectives((s.openBlock(),s.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":f[0]||(f[0]=p=>o.value=p),placeholder:n.placeholder,disabled:i.value,class:s.normalizeClass(["py-1.5 px-3 block w-full bg-white",[s.unref(t)]]),style:{border:"1px solid #CFD9E0"},min:a.value,max:c.value},null,10,zb)),[[s.vModelText,o.value]])}}),qs=n=>!!String(n??"").trim(),Kn=n=>n?.color?String(n.color):"",Mo=n=>{const e=n?.icon;if(typeof e=="string")return e;const t=n?.imgUrl;return typeof t=="string"?t:""},Ao=n=>{const e=n?.icon;return e&&typeof e!="string"?e:null},Hb={class:"flex items-center gap-[4px]"},jb=["value","id","disabled"],Ub=["for"],Wb=["innerHTML"],Kb={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},qb=["src"],Gb=s.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(n,{emit:e}){const t=e,r=n,o=s.computed({get:()=>r.modelValue,set:h=>t("update:modelValue",h)}),i=s.computed(()=>!!r.disabled),l=s.computed(()=>Mo(r.option)),a=s.computed(()=>Ao(r.option)),c=s.computed(()=>Kn(r.option)),d=s.computed(()=>!!(c.value&&!l.value&&!a.value)),u=s.computed(()=>!!(l.value&&c.value)),f=s.computed(()=>c.value?{color:c.value}:void 0),p=s.computed(()=>{if(!(!l.value||!c.value))return{backgroundColor:c.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(h,m)=>(s.openBlock(),s.createElementBlock("div",Hb,[s.withDirectives(s.createElementVNode("input",{type:"checkbox",value:h.value,"onUpdate:modelValue":m[0]||(m[0]=g=>o.value=g),class:s.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":i.value}]),id:h.id,disabled:i.value},null,10,jb),[[s.vModelCheckbox,o.value]]),s.createElementVNode("label",{for:h.id,class:s.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":i.value}])},[s.createElementVNode("div",{class:s.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[o.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",h.error?"border-red-600":""]])},[s.createVNode(s.unref(Y.Check),{class:"h-4 w-4"})],2),h.html?(s.openBlock(),s.createElementBlock("div",{key:0,class:"w-full",innerHTML:h.html},null,8,Wb)):(s.openBlock(),s.createElementBlock("span",Kb,[d.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:s.normalizeStyle({background:c.value})},null,4)):s.createCommentVNode("",!0),u.value?(s.openBlock(),s.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:s.normalizeStyle(p.value)},null,4)):l.value?(s.openBlock(),s.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,qb)):a.value?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:s.normalizeStyle(f.value)},null,8,["style"])):s.createCommentVNode("",!0),s.renderSlot(h.$slots,"default",{},()=>[s.createTextVNode(s.toDisplayString(h.label),1)])]))],10,Ub)]))}}),Jb=["name","value","disabled"],Yb=["innerHTML"],Xb={key:1,class:"flex items-center gap-[6px] text-[14px]"},Zb={key:2,class:"text-[16px] inline-flex items-center justify-center"},Qb=["src"],ek=s.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,r=e,o=s.computed({get:()=>t.modelValue,set:g=>{r("update:modelValue",g)}}),i=s.computed(()=>Array.isArray(o.value)?o.value.includes(t.value):o.value===!0||o.value===t.value),l=s.computed(()=>t.style?.size==="xs"?"p-1.5 text-xs":t.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),a=s.computed(()=>({...t.option??{},icon:t.option?.icon??t.icon,imgUrl:t.option?.imgUrl??t.imgUrl,color:t.option?.color})),c=s.computed(()=>Mo(a.value)),d=s.computed(()=>Ao(a.value)),u=s.computed(()=>Kn(a.value)),f=s.computed(()=>!!(u.value&&!c.value&&!d.value)),p=s.computed(()=>!!(c.value&&u.value)),h=s.computed(()=>u.value?{color:u.value}:void 0),m=s.computed(()=>{if(!(!c.value||!u.value))return{backgroundColor:u.value,WebkitMaskImage:`url(${c.value})`,maskImage:`url(${c.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(g,y)=>(s.openBlock(),s.createElementBlock("label",{class:s.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",[l.value,i.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[s.withDirectives(s.createElementVNode("input",{type:"checkbox",class:"hidden",name:g.id,value:g.value,"onUpdate:modelValue":y[0]||(y[0]=b=>o.value=b),disabled:g.disabled},null,8,Jb),[[s.vModelCheckbox,o.value]]),g.html?(s.openBlock(),s.createElementBlock("span",{key:0,class:"w-full",innerHTML:g.html},null,8,Yb)):(s.openBlock(),s.createElementBlock("span",Xb,[f.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:s.normalizeStyle({background:u.value})},null,4)):s.createCommentVNode("",!0),p.value?(s.openBlock(),s.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:s.normalizeStyle(m.value)},null,4)):c.value||d.value?(s.openBlock(),s.createElementBlock("span",Zb,[c.value?(s.openBlock(),s.createElementBlock("img",{key:0,src:c.value,width:"16",height:"16",alt:"icon"},null,8,Qb)):d.value?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:s.normalizeStyle(h.value)},null,8,["style"])):s.createCommentVNode("",!0)])):s.createCommentVNode("",!0),s.renderSlot(g.$slots,"default",{},()=>[s.createTextVNode(s.toDisplayString(g.label),1)])]))],2))}}),tk={class:"flex items-center"},ga=s.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,r=e,o=`radio-${Math.floor(Math.random()*1e4)}`,i=s.computed({get:()=>Array.isArray(t.modelValue)?Array.isArray(t.modelValue)&&t.modelValue.includes(t.value):t.modelValue,set:a=>{if(Array.isArray(t.modelValue)){let c=[...t.modelValue];a?c.includes(t.value)||c.push(t.value):c=c.filter(d=>d!==t.value),r("update:modelValue",c)}else r("update:modelValue",a)}}),l=s.ref(`vs-checkbox-${t.view||"default"}`);return(a,c)=>(s.openBlock(),s.createElementBlock("div",tk,[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(l.value==="vs-checkbox-buttons"?s.unref(ek):s.unref(Gb)),{value:a.value,label:a.label,html:a.labelHtml,info:a.option?.info,disabled:a.disabled,modelValue:i.value,"onUpdate:modelValue":c[0]||(c[0]=d=>i.value=d),id:o,icon:a.icon,imgUrl:a.imgUrl,option:a.option,style:s.normalizeStyle(a.style),error:a.error},{default:s.withCtx(()=>[s.createTextVNode(s.toDisplayString(a.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),nk={key:0,class:"flex items-start gap-x-1"},rk={key:0,class:"text-red-500 text-[14px]"},ok=["title"],sk=["disabled"],ya=s.defineComponent({__name:"vs-input-switcher",props:s.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue");return(r,o)=>e.view==="checkbox"?(s.openBlock(),s.createElementBlock("div",nk,[s.createVNode(ga,{modelValue:t.value,"onUpdate:modelValue":o[0]||(o[0]=i=>t.value=i),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(s.openBlock(),s.createElementBlock("span",rk,"*")):s.createCommentVNode("",!0),r.i?(s.openBlock(),s.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:o[1]||(o[1]=s.withModifiers(()=>{},["prevent"]))},[s.createVNode(s.unref(Y.Info),{class:"h-4 w-4 text-gray-500"})],8,ok)):s.createCommentVNode("",!0)])):(s.openBlock(),s.createElementBlock("button",{key:1,type:"button",class:s.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",[t.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:o[2]||(o[2]=i=>t.value=!t.value)},[s.createElementVNode("span",{"data-state":"checked",class:s.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[t.value?"translate-x-4":"translate-x-0"]])},null,2)],10,sk))}}),ik=["id","innerHTML"],ba=s.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(n){return(e,t)=>(s.openBlock(),s.createElementBlock("div",{id:e.name,class:s.normalizeClass(["text-gray-900",e.customClass]),innerHTML:e.html?e.html:e.text},null,10,ik))}}),lk=["placeholder","disabled","name"],Gs=s.defineComponent({__name:"vs-input-mask",props:s.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useModel(n,"modelValue"),o=s.ref(null);let i=null;function l(a){const c=a==null?"":String(a),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},u=new Set;let f=!1;for(let h=0;h<c.length;h+=1){const m=c[h];m==="{"?f=!0:m==="}"?f=!1:f&&u.add(m)}const p={};return Object.keys(d).forEach(h=>{u.has(h)||(p[h]=d[h])}),{mask:c,definitions:p,lazy:!1}}return s.onMounted(async()=>{if(o.value){const{default:a}=await Promise.resolve().then(()=>vi),c=l(e.mask||"");i=a(o.value,c),i.on("accept",()=>{r.value=e.unmask?i.unmaskedValue:i.value}),i.on("complete",()=>{r.value=e.unmask?i.unmaskedValue:i.value}),i.value=r.value!=null?String(r.value):""}}),s.onBeforeUnmount(()=>{i?.destroy()}),s.watch(()=>e.mask,a=>{if(i){const c=l(a||"");i.updateOptions(c)}}),s.watch(r,a=>{i&&i.unmaskedValue!==a&&(i.value=a!=null?String(a):"")}),(a,c)=>(s.openBlock(),s.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:o,placeholder:a.placeholder,disabled:a.disabled,name:a.name,class:s.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[s.unref(t)]]),style:{border:"1px solid #CFD9E0"}},null,10,lk))}}),ak={class:"relative w-full bg-white rounded-lg"},ck={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},dk=["placeholder","disabled"],ka=s.defineComponent({__name:"vs-input-email",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useModel(n,"modelValue");return(o,i)=>(s.openBlock(),s.createElementBlock("div",ak,[s.createElementVNode("div",ck,[s.createVNode(s.unref(Y.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),s.withDirectives(s.createElementVNode("input",{type:"email","onUpdate:modelValue":i[0]||(i[0]=l=>r.value=l),placeholder:o.placeholder,disabled:o.disabled,class:s.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[s.unref(t),{"!border-red-600":o.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,dk),[[s.vModelText,r.value]])]))}}),_n="+99(999)-999-99-99";function qn(n){if(!n?.trim())return 0;const e=new Set(["9","0","a","A","*"]);let t=!1,r=0;for(let o=0;o<n.length;o+=1){const i=n[o];if(i==="{"){t=!0;continue}if(i==="}"){t=!1;continue}!t&&e.has(i)&&(r+=1)}return r}const uk={class:"relative w-full bg-white rounded-lg"},fk={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},pk=["name","placeholder","disabled","pattern"],wa=s.defineComponent({__name:"vs-input-tel",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:_n}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.computed(()=>`^\\+[1-9]\\d{${(qn(e.mask||_n)||qn(_n))-1}}$`),{inputClass:r}=Bt(e.style),o=s.useModel(n,"modelValue"),i=s.ref(null);let l=null;function a(u){const f={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let h=!1;for(let g=0;g<u.length;g+=1){const y=u[g];y==="{"?h=!0:y==="}"?h=!1:h&&p.add(y)}const m={};return Object.keys(f).forEach(g=>{p.has(g)||(m[g]=f[g])}),{mask:u,definitions:m,lazy:!1,disabled:e.disabled}}function c(u){if(u==null||u==="")return"";const f=String(u).trim();return f?f.replace(/\D/g,""):""}function d(){if(!l)return;const u=l.unmaskedValue??"";o.value=u?`+${u}`:""}return s.onMounted(async()=>{if(!i.value)return;const{default:u}=await Promise.resolve().then(()=>vi),f=a(e.mask||"");l=u(i.value,f),l.on("accept",d),l.on("complete",d);const p=c(o.value);l.unmaskedValue=p}),s.onBeforeUnmount(()=>{l?.destroy(),l=null}),s.watch(()=>e.mask,u=>{l&&l.updateOptions(a(u||""))}),s.watch(()=>e.disabled,u=>{l&&l.updateOptions({disabled:u})}),s.watch(o,u=>{if(!l)return;const f=c(u);l.unmaskedValue!==f&&(l.unmaskedValue=f)}),(u,f)=>(s.openBlock(),s.createElementBlock("div",uk,[s.createElementVNode("div",fk,[s.createVNode(s.unref(Y.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),s.createElementVNode("input",{ref_key:"inputEl",ref:i,type:"tel",name:u.name,placeholder:u.placeholder,disabled:u.disabled,pattern:t.value,title:"Міжнародний номер (E.164), наприклад +380XXXXXXXXX",autocomplete:"tel",class:s.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[s.unref(r),{"!border-red-600":u.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,pk)]))}}),hk=["value","disabled"],mk=["innerHTML"],gk={key:1,class:"flex items-center gap-2"},yk=["src"],bk={class:"text-[13px] text-gray-700"},kk=s.defineComponent({__name:"vs-input-radio-default",props:s.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.computed(()=>!!e.disabled),o=s.computed(()=>Mo(e.option)),i=s.computed(()=>Ao(e.option)),l=s.computed(()=>Kn(e.option)),a=s.computed(()=>!!(l.value&&!o.value&&!i.value)),c=s.computed(()=>!!(o.value&&l.value)),d=s.computed(()=>l.value?{color:l.value}:void 0),u=s.computed(()=>{if(!(!o.value||!l.value))return{backgroundColor:l.value,WebkitMaskImage:`url(${o.value})`,maskImage:`url(${o.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(f,p)=>(s.openBlock(),s.createElementBlock("label",{class:s.normalizeClass(["flex items-center gap-0",[e.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=h=>t.value=h),type:"radio",value:e.value,disabled:r.value,class:"hidden"},null,8,hk),[[s.vModelRadio,t.value]]),s.createElementVNode("span",{class:s.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${e.style?.primaryColor||"blue"}-500`,r.value?"opacity-50 cursor-not-allowed":""]])},[t.value==e.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:s.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${e.style?.primaryColor||"blue"}-500`]])},null,2)):s.createCommentVNode("",!0)],2),e.html?(s.openBlock(),s.createElementBlock("div",{key:0,class:"w-full",innerHTML:e.html},null,8,mk)):(s.openBlock(),s.createElementBlock("div",gk,[a.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:s.normalizeStyle({background:l.value})},null,4)):s.createCommentVNode("",!0),c.value?(s.openBlock(),s.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:s.normalizeStyle(u.value)},null,4)):o.value?(s.openBlock(),s.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:o.value,alt:"icon"},null,8,yk)):i.value?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.value),{key:3,class:"h-4 w-4",style:s.normalizeStyle(d.value)},null,8,["style"])):s.createCommentVNode("",!0),s.createElementVNode("span",bk,s.toDisplayString(e.text),1)]))],2))}}),wk=["value","disabled"],xk=["innerHTML"],vk={key:1,class:"flex items-center gap-2"},Ck=["src"],Sk={class:"text-[13px] text-gray-700"},Ek={"vs-input-radio-default":kk,"vs-input-radio-buttons":s.defineComponent({__name:"vs-input-radio-buttons",props:s.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.computed(()=>!!e.disabled),o=s.computed(()=>Mo(e.option)),i=s.computed(()=>Ao(e.option)),l=s.computed(()=>Kn(e.option)),a=s.computed(()=>!!(l.value&&!o.value&&!i.value)),c=s.computed(()=>!!(o.value&&l.value)),d=s.computed(()=>l.value?{color:l.value}:void 0),u=s.computed(()=>{if(!(!o.value||!l.value))return{backgroundColor:l.value,WebkitMaskImage:`url(${o.value})`,maskImage:`url(${o.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(f,p)=>(s.openBlock(),s.createElementBlock("label",{class:s.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[t.value==e.value?`ring-2 ring-ring ring-${e.style?.primaryColor||"blue"}-500`:"",e.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=h=>t.value=h),type:"radio",value:e.value,disabled:r.value,class:"hidden"},null,8,wk),[[s.vModelRadio,t.value]]),e.html?(s.openBlock(),s.createElementBlock("div",{key:0,class:"w-full",innerHTML:e.html},null,8,xk)):(s.openBlock(),s.createElementBlock("div",vk,[a.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:s.normalizeStyle({background:l.value})},null,4)):s.createCommentVNode("",!0),c.value?(s.openBlock(),s.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:s.normalizeStyle(u.value)},null,4)):o.value?(s.openBlock(),s.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:o.value,alt:"icon"},null,8,Ck)):i.value?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.value),{key:3,class:"h-4 w-4",style:s.normalizeStyle(d.value)},null,8,["style"])):s.createCommentVNode("",!0),s.createElementVNode("span",Sk,s.toDisplayString(e.text),1)]))],2))}})},Xr=n=>n.filter(e=>e&&typeof e=="object").map(e=>({...e,id:e.value??e.id})).filter(e=>e.id!==void 0&&e.id!==null),Vu=n=>Array.isArray(n)?Xr(n):Array.isArray(n?.data)?Xr(n.data):[],$u=n=>{const e=n.host??"",t=n.prefix??"api",r=n.api??`/${t}/suggest/${n.data}`;return`${e}${r}`},Mk=n=>({fetchOptions:async(r="")=>{const o=n();if(!o.data)return o.options?Xr(o.options):[];try{const i=new URLSearchParams;r&&i.set("key",r),o.parentValue!==void 0&&o.parentValue!==null&&o.parentValue!==""&&i.set("parent",String(o.parentValue)),o.start===1&&i.set("start","1");const a=await(await fetch(`${$u(o)}?${i.toString()}`)).json();return Vu(a)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const o=n();if(!o.data){const i=o.options??[];return Xr(i).find(l=>l.id?.toString()===String(r))??null}try{const i=new URLSearchParams;i.set("val",String(r)),o.parentValue!==void 0&&o.parentValue!==null&&o.parentValue!==""&&i.set("parent",String(o.parentValue)),o.start===1&&i.set("start","1");const a=await(await fetch(`${$u(o)}?${i.toString()}`)).json();return Vu(a)[0]??null}catch{return null}}}),Js=({props:n,formValues:e=null,watchParent:t=!0})=>{const r=s.ref([]),o=s.computed(()=>n.parent?e?.value?.[n.parent]?.toString?.()??null:null),{fetchOptions:i,fetchOptionByValue:l}=Mk(()=>({data:n.data,options:n.options,api:n.api,prefix:n.prefix,host:n.host,start:n.start,parentValue:o.value})),a=async(c="")=>{const d=n.data?await i(c):n.options?Xr(n.options):[];return r.value=d,r.value};return s.watch(()=>n.options,()=>{n.data||(r.value=n.options?Xr(n.options):[])},{immediate:!0,deep:!0}),t&&s.watch(o,async()=>{n.data&&(r.value=await i())},{immediate:!1}),{optionsList:r,parentValue:o,fetchOptions:i,fetchOptionByValue:l,loadOptions:a}},Ak=/\{\{\s*([^}]+?)\s*\}\}/g,_k=n=>(n?String(n):"").replace(/<[^>]*>/g,"").trim(),Tk=(n,e)=>e.split(".").reduce((t,r)=>t==null?t:t[r.trim()],n),Ys=(n,e)=>{if(!n)return"";const t=(e??"").trim();return t?t.replace(Ak,(r,o)=>{const i=String(o).trim(),l=n,c=(i.includes(".")?Tk(l,i):void 0)??l[i];return c!=null?String(c):""}):n.text??""},Xs=(n,e)=>{if(!n)return"";const t=Ys(n,e);return _k(t)||n.text||""},xa=s.defineComponent({__name:"vs-input-radio",props:s.mergeModels({options:{},slot:{},data:{},api:{},prefix:{},host:{},start:{},parent:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.computed(()=>Ek[`vs-input-radio-${e.view}`]),o=s.computed(()=>e.slot??e?.optionTemplate??""),i=s.computed(()=>qs(o.value)),l=m=>Ys(m,o.value),a=m=>Xs(m,o.value),c=s.computed(()=>e.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=s.computed(()=>{if(e.position==="horizontal"&&e.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),u=s.inject("values",null),{optionsList:f,loadOptions:p}=Js({props:e,formValues:u}),h=m=>m.value??m.id;return s.onMounted(async()=>{await p()}),(m,g)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(c.value)},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(f),y=>(s.openBlock(),s.createElementBlock("div",{key:h(y),class:s.normalizeClass(["flex items-stretch",m.position==="horizontal"?e.customClass:""]),style:s.normalizeStyle(d.value)},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(r.value),s.mergeProps({text:a(y),html:i.value?l(y):"",option:y,value:h(y).toString(),checked:t.value?.toString?.()===h(y).toString(),"custom-class":m.position==="horizontal"?"":e.customClass,modelValue:t.value,"onUpdate:modelValue":g[0]||(g[0]=b=>t.value=b)},{ref_for:!0},m.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),Bk={key:1,class:"w-full flex flex-col gap-4"},Nk={key:0,class:"text-sm font-medium text-muted-foreground my-2"},Dk="Без категорії",Vk=s.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,r=e,o=s.reactive({}),i=s.inject("values",null),{optionsList:l,loadOptions:a}=Js({props:{...t,options:t.options},formValues:i}),c=s.computed(()=>l.value),d=w=>w?.value??w?.id??w?.text??w,u=s.computed(()=>t.slot??t?.optionTemplate??""),f=s.computed(()=>qs(u.value)),p=w=>Ys(w,u.value),h=w=>Xs(w,u.value),m=w=>`lg:col-span-${w||12}`,g=s.computed(()=>[t.position==="vertical"?"flex flex-col":"",t.colSpan?"grid":"flex justify-start"]),y=w=>w==null||w===""?null:typeof w=="string"||typeof w=="number"?w:String(w),b=s.computed(()=>{if(!t.group)return[];const w=new Map;c.value.forEach(T=>{const E=T[t.group],_=y(E);w.has(_)||w.set(_,[]),w.get(_)?.push(T)});const v=[];t.values?.length&&t.values.forEach(T=>{const E=y(T);v.push(E)});const S=new Set,N=T=>{const E=w.get(T)||[];if(!E.length)return null;const _=T===null?"group-null":`group-${String(T)}`,A=T===null?Dk:String(T);return S.add(T),{key:_,label:A,options:E}},F=[];return v.forEach(T=>{const E=N(T);E&&F.push(E)}),w.forEach((T,E)=>{if(S.has(E))return;const _=N(E);_&&F.push(_)}),F});return s.watch(()=>t.modelValue,w=>{if(typeof w=="boolean"&&c.value.length===1){const v=d(c.value[0]);o[v]=w}else if(Array.isArray(w)){const v=new Set(w);c.value.forEach(S=>{if(!S.disabled){const N=d(S);o[N]=v.has(N)}})}},{immediate:!0}),s.watch(o,()=>{if(!c.value.length){r("update:modelValue",null);return}const w=Object.entries(o).filter(([,v])=>v).map(([v])=>v);r("update:modelValue",w.length===0?[]:w)},{deep:!0}),s.onMounted(async()=>{if(await a(),typeof t.modelValue=="boolean"&&c.value.length===1){const w=d(c.value[0]);o[w]=t.modelValue}else if(Array.isArray(t.modelValue)){const w=new Set(t.modelValue);c.value.forEach(v=>{if(!v.disabled){const S=d(v);o[S]=w.has(S)}})}}),(w,v)=>t.group?(s.openBlock(),s.createElementBlock("div",Bk,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(b.value,S=>(s.openBlock(),s.createElementBlock("div",{key:S.key,class:"flex flex-col gap-2"},[S.label?(s.openBlock(),s.createElementBlock("span",Nk,s.toDisplayString(S.label),1)):s.createCommentVNode("",!0),s.createElementVNode("div",{class:s.normalizeClass(["p-0 w-full gap-[12px]",g.value])},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(S.options,N=>(s.openBlock(),s.createBlock(ga,{modelValue:o[d(N)],"onUpdate:modelValue":F=>o[d(N)]=F,value:d(N),class:s.normalizeClass(m(w.colSpan)),disabled:t.disabled||N.disabled,label:h(N),labelHtml:f.value?p(N):"",key:`${S.key}-${d(N)}`,icon:N?.icon,imgUrl:N?.imgUrl,option:N,view:w.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(s.openBlock(),s.createElementBlock("div",{key:0,class:s.normalizeClass(["p-0 w-full gap-[10px]",g.value])},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(c.value,S=>(s.openBlock(),s.createBlock(ga,{modelValue:o[d(S)],"onUpdate:modelValue":N=>o[d(S)]=N,value:d(S),class:s.normalizeClass(m(w.colSpan)),disabled:t.disabled||S.disabled,label:h(S),labelHtml:f.value?p(S):"",key:d(S),icon:S?.icon,imgUrl:S?.imgUrl,option:S,view:w.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),Be=(n,e)=>{const t=n.__vccOpts||n;for(const[r,o]of e)t[r]=o;return t},Lu=Be(Vk,[["__scopeId","data-v-acc5167c"]]),$k=1440*60*1e3,Lk=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],Ik=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],Ok=["нд","пн","вт","ср","чт","пт","сб"];function gt(n){return n instanceof Date&&!Number.isNaN(n.getTime())}const Zr=n=>new Date(n.getTime());function yr(n){const e=Zr(n);return e.setHours(0,0,0,0),e}function _o(n){const e=Zr(n);return e.setHours(23,59,59,999),e}function va(n){return yr(new Date(n.getFullYear(),n.getMonth(),1))}function Ca(n){return _o(new Date(n.getFullYear(),n.getMonth()+1,0))}function Sa(n,e){const t=new Date(n),r=t.getDate();t.setDate(1),t.setMonth(t.getMonth()+e);const o=new Date(t.getFullYear(),t.getMonth()+1,0).getDate();return t.setDate(Math.min(r,o)),t}function Rk(n,e){return Sa(n,-1)}function Zs(n,e){const t=new Date(n);return t.setFullYear(t.getFullYear()+e),t}function Iu(n,e){return Zs(n,-e)}function Ou(n){return yr(new Date(n.getFullYear(),0,1))}function Ru(n){return _o(new Date(n.getFullYear(),11,31))}function Fk(n){const e=Math.floor(n.getFullYear()/10)*10;return yr(new Date(e,0,1))}function Pk(n){const e=Math.floor(n.getFullYear()/10)*10+9;return _o(new Date(e,11,31))}const nn=n=>n.getFullYear(),Qs=n=>Math.floor(n.getFullYear()/10)*10;function zk(n){const e=[];let t=yr(n.start);const r=yr(n.end);for(;t<=r;)e.push(Zr(t)),t=new Date(t.getTime()+$k);return e}function Hk(n){const e=[];let t=va(n.start);const r=Ca(n.end);for(;t<=r;)e.push(Zr(t)),t=Sa(t,1);return e}function jk(n){const e=[];let t=Ou(n.start);const r=Ru(n.end);for(;t<=r;)e.push(Zr(t)),t=Zs(t,1);return e}function Ea(n,e=1){const t=yr(n),r=(t.getDay()-e+7)%7;return t.setDate(t.getDate()-r),t}function Uk(n,e=1){const t=Ea(n,e);return t.setDate(t.getDate()+6),_o(t)}function Wk(n,e,t=0){const r=Ea(n,t),o=(e-t+7)%7;return r.setDate(r.getDate()+o),r}const ei=(n,e)=>!!n&&!!e&&n.getFullYear()===e.getFullYear()&&n.getMonth()===e.getMonth()&&n.getDate()===e.getDate(),Ma=(n,e)=>!!n&&!!e&&n.getFullYear()===e.getFullYear()&&n.getMonth()===e.getMonth(),Fu=(n,e)=>!!n&&!!e&&n.getFullYear()===e.getFullYear(),Pu=(n,e)=>!!n&&!!e&&ei(n,e)&&n.getHours()===e.getHours(),Kk=(n,e)=>!!n&&!!e&&Pu(n,e)&&n.getMinutes()===e.getMinutes();function qk(n,e){const t=n.getTime();return t>=e.start.getTime()&&t<=e.end.getTime()}const To=(n,e)=>!!n&&!!e&&n.getTime()<e.getTime(),Bo=(n,e)=>!!n&&!!e&&n.getTime()>e.getTime();function Gk(n){const e=n.filter(t=>gt(t));if(e.length)return e.reduce((t,r)=>t.getTime()>=r.getTime()?t:r)}function Jk(n){const e=n.filter(t=>gt(t));if(e.length)return e.reduce((t,r)=>t.getTime()<=r.getTime()?t:r)}function Yk(n,e){const t=Zr(n);return typeof e.year=="number"&&t.setFullYear(e.year),typeof e.month=="number"&&t.setMonth(e.month),typeof e.date=="number"&&t.setDate(e.date),typeof e.hours=="number"&&t.setHours(e.hours),typeof e.minutes=="number"&&t.setMinutes(e.minutes),typeof e.seconds=="number"&&t.setSeconds(e.seconds),typeof e.milliseconds=="number"&&t.setMilliseconds(e.milliseconds),t}const ti=(n,e=2)=>String(n).padStart(e,"0");function zu(n,e){return e==="wide"?Lk[n]:Ik[n]}function Xk(n){return Ok[n]}const Zk=[{token:"LLLL",format:n=>zu(n.getMonth(),"wide")},{token:"LLL",format:n=>zu(n.getMonth(),"abbreviated")},{token:"EE",format:n=>Xk(n.getDay())},{token:"yyyy",format:n=>String(n.getFullYear())},{token:"MM",format:n=>ti(n.getMonth()+1)},{token:"dd",format:n=>ti(n.getDate())},{token:"HH",format:n=>ti(n.getHours())},{token:"mm",format:n=>ti(n.getMinutes())}];function No(n,e){if(!gt(n))return"";let t="",r=0;for(;r<e.length;){const o=Zk.find(i=>e.startsWith(i.token,r));o?(t+=o.format(n),r+=o.token.length):(t+=e[r],r+=1)}return t}const Qk={"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 Hu(n,e){const t=Qk[e];if(!t){const o=new Date(n);return gt(o)?o:null}const r=n.match(t);if(!r)return null;switch(e){case"yyyy-MM-dd":{const[,o,i,l]=r,a=new Date(Number(o),Number(i)-1,Number(l));return gt(a)?a:null}case"dd.MM.yyyy":{const[,o,i,l]=r,a=new Date(Number(l),Number(i)-1,Number(o));return gt(a)?a:null}case"dd.MM.yyyy HH:mm":{const[,o,i,l,a,c,d]=r,u=new Date(Number(l),Number(i)-1,Number(o),Number(a),Number(c),Number(d||0));return gt(u)?u:null}case"HH:mm":{const[,o,i,l]=r,a=new Date;return a.setHours(Number(o),Number(i),Number(l||0),0),a}case"MM.yyyy":{const[,o,i]=r;return new Date(Number(i),Number(o)-1,1)}case"yyyy":{const[,o]=r;return new Date(Number(o),0,1)}default:return null}}const ew=["year","month","day","time","custom"],tw=s.defineComponent({components:{ChevronLeft:Y.ChevronLeft,ChevronRight:Y.ChevronRight},emits:{elementClick:n=>gt(n),left:()=>!0,right:()=>!0,heading:()=>!0,today:()=>!0,clear:()=>!0},props:{headingClickable:{type:Boolean,default:!1},leftDisabled:{type:Boolean,default:!1},rightDisabled:{type:Boolean,default:!1},columnCount:{type:Number,default:7},items:{type:Array,default:()=>[]},viewMode:{type:String,required:!0,validate:n=>typeof n=="string"&&ew.includes(n)},showButtonBar:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1}},setup(){const e=s.getCurrentInstance()?.appContext?.config?.globalProperties?.$t,t=s.computed(()=>{const o=e?.("form.date.today");return o&&o!=="form.date.today"?o:"Сьогодні"}),r=s.computed(()=>{const o=e?.("form.date.clear");return o&&o!=="form.date.clear"?o:"Очистити"});return{todayLabel:t,clearLabel:r}}}),nw={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},rw=["disabled"],ow=["disabled"],sw={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},iw=["disabled","onClick"],lw={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function aw(n,e,t,r,o,i){const l=s.resolveComponent("ChevronLeft"),a=s.resolveComponent("ChevronRight");return s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",n.viewMode==="month"||n.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:s.normalizeStyle({"--popout-column-definition":`repeat(${n.columnCount}, 1fr)`}),onMousedown:e[5]||(e[5]=s.withModifiers(()=>{},["prevent"]))},[n.hideHeader?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",nw,[s.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:n.leftDisabled,onClick:e[0]||(e[0]=s.withModifiers(c=>n.$emit("left"),["stop","prevent"]))},[s.renderSlot(n.$slots,"arrow-left",{},()=>[s.createVNode(l,{class:"h-3.5 w-3.5"})])],8,rw),(s.openBlock(),s.createBlock(s.resolveDynamicComponent(n.headingClickable?"button":"span"),{class:s.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",n.headingClickable?"hover:bg-slate-100":"",n.viewMode==="month"?"p-datepicker-select-year":"",n.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:e[1]||(e[1]=s.withModifiers(c=>n.$emit("heading"),["stop","prevent"]))},{default:s.withCtx(()=>[s.renderSlot(n.$slots,"heading")]),_:3},8,["class"])),s.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:n.rightDisabled,onClick:e[2]||(e[2]=s.withModifiers(c=>n.$emit("right"),["stop","prevent"]))},[s.renderSlot(n.$slots,"arrow-right",{},()=>[s.createVNode(a,{class:"h-3.5 w-3.5"})])],8,ow)])),s.createElementVNode("div",null,["subheading"in n.$slots?(s.openBlock(),s.createElementBlock("div",sw,[s.renderSlot(n.$slots,"subheading")])):s.createCommentVNode("",!0),s.createElementVNode("div",{class:s.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",n.viewMode==="month"?"p-datepicker-month-view":"",n.viewMode==="year"?"p-datepicker-year-view":"",n.viewMode==="month"?"gap-y-1":""])},[s.renderSlot(n.$slots,"body",{},()=>[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(n.items,c=>(s.openBlock(),s.createElementBlock("button",{key:c.key,disabled:c.disabled,class:s.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:s.withModifiers(d=>n.$emit("elementClick",c.value),["stop","prevent"])},[s.createElementVNode("span",{class:s.normalizeClass([n.viewMode==="month"||n.viewMode==="year"?"inline-flex w-full h-8 items-center justify-center rounded-md text-[13px] font-normal transition-colors":"inline-flex w-8 h-8 items-center justify-center rounded-full text-[13px] font-normal transition-colors",n.viewMode==="month"?"p-datepicker-month":"",n.viewMode==="year"?"p-datepicker-year":"",n.viewMode==="day"?"p-datepicker-day":"",c.selected?"bg-blue-500 text-white font-semibold":"",c.current&&!c.selected&&n.viewMode!=="month"&&n.viewMode!=="year"?"border border-slate-300 font-medium":"",!c.disabled&&!c.selected?"hover:bg-slate-100 hover:text-slate-700":"",!c.current&&!c.selected&&c.disabled?"text-slate-300":""])},s.toDisplayString(c.display),3)],8,iw))),128))])],2),s.renderSlot(n.$slots,"after-calendar"),n.showButtonBar?(s.openBlock(),s.createElementBlock("div",lw,[s.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:e[3]||(e[3]=s.withModifiers(c=>n.$emit("today"),["stop","prevent"]))},s.toDisplayString(n.todayLabel),1),s.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:e[4]||(e[4]=s.withModifiers(c=>n.$emit("clear"),["stop","prevent"]))},s.toDisplayString(n.clearLabel),1)])):s.createCommentVNode("",!0)])],38)}const ni=Be(tw,[["render",aw]]),cw=s.defineComponent({components:{PickerPopup:ni},emits:{"update:pageDate":n=>gt(n),select:n=>gt(n)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(n,{emit:e}){const t=s.computed(()=>Fk(n.pageDate)),r=s.computed(()=>Pk(n.pageDate)),o=(f,p,h)=>!p&&!h?!0:!(p&&nn(f)<nn(p)||h&&nn(f)>nn(h)),i=s.computed(()=>jk({start:t.value,end:r.value}).map(f=>({value:f,key:String(nn(f)),display:nn(f),selected:!!n.selected&&nn(f)===nn(n.selected),disabled:!o(f,n.lowerLimit,n.upperLimit)}))),l=s.computed(()=>{const f=nn(t.value),p=nn(r.value);return`${f} - ${p}`}),a=s.computed(()=>n.lowerLimit&&(Qs(n.lowerLimit)===Qs(n.pageDate)||To(n.pageDate,n.lowerLimit))),c=s.computed(()=>n.upperLimit&&(Qs(n.upperLimit)===Qs(n.pageDate)||Bo(n.pageDate,n.upperLimit)));return{years:i,heading:l,leftDisabled:a,rightDisabled:c,previousPage:()=>e("update:pageDate",Iu(n.pageDate,10)),nextPage:()=>e("update:pageDate",Zs(n.pageDate,10))}}});function dw(n,e,t,r,o,i){const l=s.resolveComponent("picker-popup");return s.openBlock(),s.createBlock(l,{columnCount:2,leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,items:n.years,viewMode:"year",onLeft:n.previousPage,onRight:n.nextPage,onElementClick:e[0]||(e[0]=a=>n.$emit("select",a))},{heading:s.withCtx(()=>[s.createTextVNode(s.toDisplayString(n.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const uw=Be(cw,[["render",dw]]),fw=s.defineComponent({components:{PickerPopup:ni},emits:{"update:pageDate":n=>gt(n),select:n=>gt(n),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(n,{emit:e}){const t=s.computed(()=>Ou(n.pageDate)),r=s.computed(()=>Ru(n.pageDate)),o=s.computed(()=>p=>No(p,n.format)),i=(p,h,m)=>!h&&!m?!0:!(h&&To(p,va(h))||m&&Bo(p,Ca(m))),l=s.computed(()=>Hk({start:t.value,end:r.value}).map(p=>({value:p,display:o.value(p),key:o.value(p),selected:!!n.selected&&Ma(n.selected,p),disabled:!i(p,n.lowerLimit,n.upperLimit)}))),a=s.computed(()=>nn(t.value)),c=s.computed(()=>n.lowerLimit&&(Fu(n.lowerLimit,n.pageDate)||To(n.pageDate,n.lowerLimit))),d=s.computed(()=>n.upperLimit&&(Fu(n.upperLimit,n.pageDate)||Bo(n.pageDate,n.upperLimit)));return{months:l,heading:a,leftDisabled:c,rightDisabled:d,previousPage:()=>e("update:pageDate",Iu(n.pageDate,1)),nextPage:()=>e("update:pageDate",Zs(n.pageDate,1))}}});function pw(n,e,t,r,o,i){const l=s.resolveComponent("picker-popup");return s.openBlock(),s.createBlock(l,{headingClickable:"",columnCount:3,items:n.months,leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,viewMode:"month",onLeft:n.previousPage,onRight:n.nextPage,onHeading:e[0]||(e[0]=a=>n.$emit("back")),onElementClick:e[1]||(e[1]=a=>n.$emit("select",a))},{heading:s.withCtx(()=>[s.createTextVNode(s.toDisplayString(n.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const hw=Be(fw,[["render",pw]]),mw=s.defineComponent({components:{PickerPopup:ni},emits:{"update:pageDate":n=>gt(n),select:n=>gt(n),back:()=>!0,today:()=>!0,clear:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"dd"},headingFormat:{type:String,required:!1,default:"LLLL yyyy"},weekdayFormat:{type:String,required:!1,default:"EE"},weekStartsOn:{type:Number,required:!1,default:1,validator:n=>typeof n=="number"&&Number.isInteger(n)&&n>=0&&n<=6},customWeekdays:{type:Array,required:!1},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1}},setup(n,{emit:e}){const t=s.computed(()=>y=>b=>No(b,y)),r=s.computed(()=>va(n.pageDate)),o=s.computed(()=>Ca(n.pageDate)),i=s.computed(()=>({start:r.value,end:o.value})),l=s.computed(()=>({start:Ea(r.value,n.weekStartsOn),end:Uk(o.value,n.weekStartsOn)})),a=s.computed(()=>n.customWeekdays?.length===7?n.customWeekdays:null),c=s.computed(()=>{const y=n.weekStartsOn,b=a.value;if(b)return Array.from({length:7}).map((v,S)=>b[(y+S)%7]);const w=t.value(n.weekdayFormat);return Array.from(Array(7)).map((v,S)=>(y+S)%7).map(v=>Wk(new Date,v,n.weekStartsOn)).map(w)}),d=(y,b,w,v)=>v?.dates?.some(S=>ei(y,S))||v?.predicate?.(y)?!1:!b&&!w?!0:!(b&&To(y,yr(b))||w&&Bo(y,_o(w))),u=s.computed(()=>{const y=new Date,b=t.value(n.format);return zk(l.value).map(w=>({value:w,display:b(w),selected:!!n.selected&&ei(n.selected,w),current:ei(y,w),disabled:!n.allowOutsideInterval&&!qk(w,i.value)||!d(w,n.lowerLimit,n.upperLimit,n.disabledDates),key:t.value("yyyy-MM-dd")(w)}))}),f=s.computed(()=>t.value(n.headingFormat)(n.pageDate)),p=s.computed(()=>n.lowerLimit&&(Ma(n.lowerLimit,n.pageDate)||To(n.pageDate,n.lowerLimit))),h=s.computed(()=>n.upperLimit&&(Ma(n.upperLimit,n.pageDate)||Bo(n.pageDate,n.upperLimit)));return{weekDays:c,days:u,heading:f,leftDisabled:p,rightDisabled:h,previousPage:()=>e("update:pageDate",Rk(n.pageDate)),nextPage:()=>e("update:pageDate",Sa(n.pageDate,1))}}});function gw(n,e,t,r,o,i){const l=s.resolveComponent("picker-popup");return s.openBlock(),s.createBlock(l,{headingClickable:"",leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,items:n.days,showButtonBar:!0,viewMode:"day",onLeft:n.previousPage,onRight:n.nextPage,onHeading:e[0]||(e[0]=a=>n.$emit("back")),onElementClick:e[1]||(e[1]=a=>n.$emit("select",a)),onToday:e[2]||(e[2]=a=>n.$emit("today")),onClear:e[3]||(e[3]=a=>n.$emit("clear"))},s.createSlots({heading:s.withCtx(()=>[s.createTextVNode(s.toDisplayString(n.heading),1)]),subheading:s.withCtx(()=>[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(n.weekDays,(a,c)=>(s.openBlock(),s.createElementBlock("span",{key:a,class:s.normalizeClass(`v3dp__subheading__weekday__${c}`)},s.toDisplayString(a),3))),128))]),_:2},[n.$slots["after-calendar"]?{name:"after-calendar",fn:s.withCtx(()=>[s.renderSlot(n.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const yw=Be(mw,[["render",gw]]),bw=s.defineComponent({components:{PickerPopup:ni,ChevronUp:Y.ChevronUp,ChevronDown:Y.ChevronDown},emits:{select:n=>gt(n),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1},embedded:{type:Boolean,default:!1}},setup(n,{emit:e}){const t=s.computed(()=>n.pageDate??n.selected),r=s.ref(t.value.getHours()),o=s.ref(t.value.getMinutes());s.watch(()=>n.selected,h=>{let m=0,g=0;h&&(m=h.getHours(),g=h.getMinutes()),r.value=m,o.value=g});const i=(h,m)=>{const g=Yk(new Date(t.value.getTime()),{hours:h,minutes:m,seconds:0});f(g)&&(r.value=h,o.value=m,e("select",g))},l=(h,m)=>h<0?m:h>m?0:h,a=()=>i(l(r.value+1,23),o.value),c=()=>i(l(r.value-1,23),o.value),d=()=>i(r.value,l(o.value+1,59)),u=()=>i(r.value,l(o.value-1,59)),f=h=>!(n.disabledTime?.dates?.some(m=>Pu(h,m)&&Kk(h,m))||n.disabledTime?.predicate?.(h));return{hours:r,minutes:o,padStartZero:h=>`0${h}`.substr(-2),isEnabled:f,incrementHours:a,decrementHours:c,incrementMinutes:d,decrementMinutes:u}}}),kw={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"},ww={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},xw={class:"min-w-8 text-center text-sm font-medium text-slate-700"},vw={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Cw={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Sw={class:"col-span-2"},Ew={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},Mw={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Aw={class:"min-w-8 text-center text-sm font-medium text-slate-700"},_w={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Tw={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function Bw(n,e,t,r,o,i){const l=s.resolveComponent("ChevronUp"),a=s.resolveComponent("ChevronDown"),c=s.resolveComponent("picker-popup");return n.embedded?(s.openBlock(),s.createElementBlock("div",kw,[s.createElementVNode("div",ww,[s.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:e[0]||(e[0]=s.withModifiers((...d)=>n.incrementHours&&n.incrementHours(...d),["stop","prevent"]))},[s.createVNode(l,{class:"h-3.5 w-3.5"})]),s.createElementVNode("span",xw,s.toDisplayString(n.padStartZero(n.hours)),1),s.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:e[1]||(e[1]=s.withModifiers((...d)=>n.decrementHours&&n.decrementHours(...d),["stop","prevent"]))},[s.createVNode(a,{class:"h-3.5 w-3.5"})])]),e[8]||(e[8]=s.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),s.createElementVNode("div",vw,[s.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:e[2]||(e[2]=s.withModifiers((...d)=>n.incrementMinutes&&n.incrementMinutes(...d),["stop","prevent"]))},[s.createVNode(l,{class:"h-3.5 w-3.5"})]),s.createElementVNode("span",Cw,s.toDisplayString(n.padStartZero(n.minutes)),1),s.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:e[3]||(e[3]=s.withModifiers((...d)=>n.decrementMinutes&&n.decrementMinutes(...d),["stop","prevent"]))},[s.createVNode(a,{class:"h-3.5 w-3.5"})])])])):(s.openBlock(),s.createBlock(c,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:s.withCtx(()=>[s.createElementVNode("div",Sw,[s.createElementVNode("div",Ew,[s.createElementVNode("div",Mw,[s.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:e[4]||(e[4]=s.withModifiers((...d)=>n.incrementHours&&n.incrementHours(...d),["stop","prevent"]))},[s.createVNode(l,{class:"h-3.5 w-3.5"})]),s.createElementVNode("span",Aw,s.toDisplayString(n.padStartZero(n.hours)),1),s.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:e[5]||(e[5]=s.withModifiers((...d)=>n.decrementHours&&n.decrementHours(...d),["stop","prevent"]))},[s.createVNode(a,{class:"h-3.5 w-3.5"})])]),e[9]||(e[9]=s.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),s.createElementVNode("div",_w,[s.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:e[6]||(e[6]=s.withModifiers((...d)=>n.incrementMinutes&&n.incrementMinutes(...d),["stop","prevent"]))},[s.createVNode(l,{class:"h-3.5 w-3.5"})]),s.createElementVNode("span",Tw,s.toDisplayString(n.padStartZero(n.minutes)),1),s.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:e[7]||(e[7]=s.withModifiers((...d)=>n.decrementMinutes&&n.decrementMinutes(...d),["stop","prevent"]))},[s.createVNode(a,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const Nw=Be(bw,[["render",Bw]]),ri=["time","day","month","year"],Dw=(n,e,t=void 0)=>{let r=t||new Date;const o=Gk([n,r]);o&&(r=o);const i=Jk([e,r]);return i&&(r=i),r},Vw=s.defineComponent({components:{YearPicker:uw,MonthPicker:hw,DayPicker:yw,TimePicker:Nw,CalendarDays:Y.CalendarDays,Clock3:Y.Clock3,X:Y.X},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:n=>typeof n=="string"&&ri.includes(n)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:n=>[0,1,2,3,4,5,6].includes(n)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:n=>typeof n=="string"&&ri.includes(n)}},emits:{"update:modelValue":n=>n==null||gt(n),decadePageChanged:n=>!0,yearPageChanged:n=>!0,monthPageChanged:n=>!0,opened:()=>!0,closed:()=>!0},setup(n,{emit:e}){const t=s.ref("none"),r=s.ref(n.startingViewDate),o=s.ref(null),i=s.ref(null),l=s.ref(null),a=s.ref({}),c=s.ref(!1),d=s.ref(!1),u=s.ref(!1);let f=null;const p=s.ref(""),h=se=>{const me=se.replace(/[a-zA-Z]/g,"0");return/0/.test(me)?me:""},m=s.computed(()=>h(n.inputFormat));let g=null,y=null;const b=()=>{g?.destroy(),g=null},w=async()=>{if(!y){const{default:se}=await Promise.resolve().then(()=>vi);y=se}return y},v=()=>{g&&g.value!==p.value&&(g.value=p.value??"")},S=se=>{const me=se&&gt(se)?No(se,n.inputFormat):"";p.value!==me&&(p.value=me),v()},N=async()=>{if(b(),!i.value||!m.value)return;g=(await w())(i.value,{mask:m.value,lazy:!0,overwrite:!1}),v()};s.watch(()=>n.modelValue,se=>{d.value&&n.typeable||S(se)},{immediate:!0}),s.watch(()=>n.inputFormat,()=>{d.value&&n.typeable||S(n.modelValue)}),s.onMounted(()=>{u.value=!0,m.value&&s.nextTick(()=>{N()})}),s.onBeforeUnmount(()=>{b()}),s.watch(m,se=>{se?s.nextTick(()=>{N()}):b()});const F=s.computed(()=>t.value!=="none"),T=s.computed(()=>n.startingView==="time"&&n.minimumView==="time"),E=s.computed(()=>n.startingView==="day"&&n.minimumView==="time"),_=se=>{n.disabled||(F.value||(r.value=n.modelValue||Dw(n.lowerLimit,n.upperLimit,r.value),e("opened")),t.value=se,s.nextTick(()=>Qe()))},A=()=>{F.value&&(f!==null&&(cancelAnimationFrame(f),f=null),t.value="none",e("closed"))},I=(se="none")=>{se==="none"?A():_(se)};s.watchEffect(()=>{n.disabled&&A()});const U=(se,me)=>{r.value=me,se==="year"?e("decadePageChanged",me):se==="month"?e("yearPageChanged",me):se==="day"&&e("monthPageChanged",me)},Z=se=>{r.value=se,n.minimumView==="year"?(A(),S(se),e("update:modelValue",se)):_("month")},V=se=>{r.value=se,n.minimumView==="month"?(A(),S(se),e("update:modelValue",se)):_("day")},z=se=>{const me=E.value?(()=>{const Ee=n.modelValue||r.value||new Date,Me=new Date(se);return Me.setHours(Ee.getHours(),Ee.getMinutes(),0,0),Me})():se;r.value=me,n.minimumView==="day"?(A(),S(me),e("update:modelValue",me)):E.value?(S(me),e("update:modelValue",me),_("day")):_("time")},oe=se=>{S(se),e("update:modelValue",se)},K=()=>{z(new Date)},G=()=>{n.clearable&&(A(),S(null),e("update:modelValue",null),r.value=n.startingViewDate)},X=()=>{F.value||_(ae.value)},ce=()=>{d.value=!0,c.value=!1,_(ae.value)},j=()=>{d.value=!1,n.typeable&&O({closeOnSuccess:!1,revertOnInvalid:!0})},L=se=>{const me=se.target;if(p.value=me?.value??"",!n.typeable)return;const Ee=Hu(p.value,n.inputFormat);Ee&&p.value===No(Ee,n.inputFormat)&&(r.value=Ee)},O=({closeOnSuccess:se,revertOnInvalid:me})=>{const Ee=i.value?.value??p.value,Me=Hu(Ee,n.inputFormat);return!!Me&&Ee===No(Me,n.inputFormat)&&Me?(r.value=Me,S(Me),e("update:modelValue",Me),se&&A(),!0):(S(n.modelValue),!1)},ne=se=>{const me=se.keyCode?se.keyCode:se.which,Ee=me===27,Me=me===13;if(Ee){A(),i.value?.blur();return}n.typeable&&Me&&(O({closeOnSuccess:!0,revertOnInvalid:!0})||i.value?.focus())},ae=s.computed(()=>{const se=ri.indexOf(n.startingView),me=ri.indexOf(n.minimumView);return se<me?n.minimumView:n.startingView}),re=s.computed(()=>n.weekDayNames?.length===7?n.weekDayNames:void 0),he=()=>n.startingView==="time"&&n.minimumView==="time"?null:_("day"),Ae=()=>{if(!i.value||!l.value)return;const se=4,me=8,Ee=i.value.getBoundingClientRect(),Me=l.value.getBoundingClientRect(),Ct=l.value.firstElementChild?.getBoundingClientRect(),et=window.innerWidth,Xe=window.innerHeight,ft=window.scrollX||window.pageXOffset,Vt=window.scrollY||window.pageYOffset,W=Math.max(160,Xe-me*2),ee=Math.min(Me.height||0,W),ue=Xe-Ee.bottom-se-me,R=Ee.top-se-me,M=ue<ee&&R>ue;let D=M?Ee.top-se-ee:Ee.bottom+se;D=Math.max(me,Math.min(D,Xe-me-ee));const H=Ct?.width||Me.width||268;let te=Ee.left;te+H>et-me&&(te=et-me-H),te<me&&(te=me);const we=M?Math.max(120,Ee.top-se-me):Math.max(120,Xe-Ee.bottom-se-me);a.value={position:"absolute",top:`${Math.round(D+Vt)}px`,left:`${Math.round(te+ft)}px`,maxHeight:`${Math.round(Math.min(W,we))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},E.value&&t.value==="day"&&(a.value.minWidth="345px")},Ce=(se,me)=>se.bottom>me.top&&se.top<me.bottom&&se.right>me.left&&se.left<me.right,$e=se=>{const me=[];let Ee=se.parentElement;for(;Ee;){const Me=window.getComputedStyle(Ee),Ye=Me.overflowY,Ct=Me.overflowX,et=["auto","scroll","hidden","clip"].includes(Ye),Xe=["auto","scroll","hidden","clip"].includes(Ct);(et||Xe)&&me.push(Ee),Ee=Ee.parentElement}return me},it=()=>{if(!i.value)return!1;const se=i.value.getBoundingClientRect(),me=new DOMRect(0,0,window.innerWidth,window.innerHeight);return Ce(se,me)?$e(i.value).every(Me=>Ce(se,Me.getBoundingClientRect())):!1},Fe=()=>{if(F.value){if(!it()){c.value=!0,A();return}Qe();return}c.value&&document.activeElement===i.value&&it()&&(c.value=!1,_(ae.value))};s.watch(t,()=>{F.value&&s.nextTick(()=>Qe())});const Qe=()=>{Ae(),f!==null&&cancelAnimationFrame(f),f=requestAnimationFrame(()=>{Ae(),f=null})};s.onMounted(()=>{window.addEventListener("resize",Fe),window.addEventListener("scroll",Fe,!0),document.addEventListener("pointerdown",We,!0)}),s.onBeforeUnmount(()=>{f!==null&&(cancelAnimationFrame(f),f=null),window.removeEventListener("resize",Fe),window.removeEventListener("scroll",Fe,!0),document.removeEventListener("pointerdown",We,!0)});const We=se=>{if(t.value==="none")return;const me=se.target;if(!me)return;const Ee=!!o.value?.contains(me),Me=!!l.value?.contains(me);!Ee&&!Me&&(c.value=!1,A())};return{rootRef:o,blur:j,focus:ce,click:X,input:p,inputRef:i,pageDate:r,renderView:I,updatePageDate:U,selectYear:Z,selectMonth:V,selectDay:z,selectToday:K,selectTime:oe,keyUp:ne,onInput:L,isTimeOnlyMode:T,isDateTimeMode:E,normalizedWeekdayNames:re,viewShown:t,goBackFromTimepicker:he,clearModelValue:G,initialView:ae,log:se=>console.log(se),popupAnchorStyle:a,popupRef:l,isMounted:u}}}),$w={ref:"rootRef",class:"relative"},Lw={class:"p-datepicker p-component p-inputwrapper relative"},Iw=["readonly","value","placeholder","disabled","tabindex"],Ow={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},Rw={class:"absolute right-8 top-1/2 -translate-y-1/2"};function Fw(n,e,t,r,o,i){const l=s.resolveComponent("Clock3"),a=s.resolveComponent("CalendarDays"),c=s.resolveComponent("X"),d=s.resolveComponent("year-picker"),u=s.resolveComponent("month-picker"),f=s.resolveComponent("time-picker"),p=s.resolveComponent("day-picker");return s.openBlock(),s.createElementBlock("div",$w,[s.createElementVNode("div",Lw,[s.createElementVNode("input",s.mergeProps({type:"text",ref:"inputRef",class:"p-inputtext p-component p-datepicker-input",readonly:!n.typeable,value:n.input},n.$attrs,{placeholder:n.placeholder,disabled:n.disabled,tabindex:n.disabled?-1:0,onInput:e[0]||(e[0]=(...h)=>n.onInput&&n.onInput(...h)),onKeyup:e[1]||(e[1]=(...h)=>n.keyUp&&n.keyUp(...h)),onBlur:e[2]||(e[2]=(...h)=>n.blur&&n.blur(...h)),onFocus:e[3]||(e[3]=(...h)=>n.focus&&n.focus(...h)),onClick:e[4]||(e[4]=(...h)=>n.click&&n.click(...h))}),null,16,Iw),s.createElementVNode("span",Ow,[n.isTimeOnlyMode?(s.openBlock(),s.createBlock(l,{key:0,class:"h-4 w-4"})):(s.openBlock(),s.createBlock(a,{key:1,class:"h-4 w-4"}))]),s.withDirectives(s.createElementVNode("div",Rw,[s.renderSlot(n.$slots,"clear",{onClear:n.clearModelValue},()=>[s.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:e[5]||(e[5]=h=>n.clearModelValue())},[s.createVNode(c,{class:"h-3 w-3"})])])],512),[[s.vShow,n.clearable&&n.modelValue]])]),n.isMounted?(s.openBlock(),s.createBlock(s.Teleport,{key:0,to:"body"},[s.withDirectives(s.createElementVNode("div",{ref:"popupRef",style:s.normalizeStyle(n.popupAnchorStyle)},[s.withDirectives(s.createVNode(d,{pageDate:n.pageDate,"onUpdate:pageDate":e[6]||(e[6]=h=>n.updatePageDate("year",h)),selected:n.modelValue,lowerLimit:n.lowerLimit,upperLimit:n.upperLimit,onSelect:n.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[s.vShow,n.viewShown==="year"]]),s.withDirectives(s.createVNode(u,{pageDate:n.pageDate,"onUpdate:pageDate":e[7]||(e[7]=h=>n.updatePageDate("month",h)),selected:n.modelValue,onSelect:n.selectMonth,lowerLimit:n.lowerLimit,upperLimit:n.upperLimit,format:n.monthListFormat,onBack:e[8]||(e[8]=h=>n.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[s.vShow,n.viewShown==="month"]]),s.withDirectives(s.createVNode(p,{pageDate:n.pageDate,"onUpdate:pageDate":e[9]||(e[9]=h=>n.updatePageDate("day",h)),selected:n.modelValue,weekStartsOn:n.weekStartsOn,lowerLimit:n.lowerLimit,upperLimit:n.upperLimit,headingFormat:n.dayPickerHeadingFormat,disabledDates:n.disabledDates,weekdayFormat:n.weekdayFormat,"allow-outside-interval":n.allowOutsideInterval,format:n.dayFormat,"custom-weekdays":n.normalizedWeekdayNames,onSelect:n.selectDay,onToday:n.selectToday,onClear:n.clearModelValue,onBack:e[10]||(e[10]=h=>n.viewShown="month")},s.createSlots({_:2},[n.isDateTimeMode?{name:"after-calendar",fn:s.withCtx(()=>[s.createVNode(f,{embedded:!0,pageDate:n.pageDate,visible:n.viewShown==="day"&&n.isDateTimeMode,selected:n.modelValue,disabledTime:n.disabledTime,onSelect:n.selectTime,onBack:n.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"])]),key:"0"}:void 0]),1032,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect","onToday","onClear"]),[[s.vShow,n.viewShown==="day"]]),s.withDirectives(s.createVNode(f,{pageDate:n.pageDate,visible:n.viewShown==="time",selected:n.modelValue,disabledTime:n.disabledTime,onSelect:n.selectTime,onBack:n.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[s.vShow,n.viewShown==="time"&&!n.isDateTimeMode]])],4),[[s.vShow,n.viewShown!=="none"]])])):s.createCommentVNode("",!0)],512)}const Pw=Be(Vw,[["render",Fw]]),ju=Be(s.defineComponent({__name:"vs-input-date2",props:{clearable:{type:Boolean,default:!0},now:{type:Boolean},editable:{type:Boolean,default:!0},time:{type:Boolean},isInfinity:{type:Boolean},dateFormat:{},mode:{default:"date"},weekStart:{},dayNames:{},maxDaysFromNow:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,r=e,{inputClass:o}=Bt(t.style),i=s.getCurrentInstance(),l=s.computed(()=>t.mode?t.mode:t.time?"datetime":"date"),a=s.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",o.value,t.customClass,{"!border-red-600":t.error}]),c=s.computed(()=>!t.modelValue&&t.now?new Date:null),d=s.computed({get:()=>E(t.modelValue??c.value,l.value)||void 0,set:j=>r("update:modelValue",_(j,l.value))}),u=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],f=s.computed(()=>{if(t.dayNames?.length)return t.dayNames.length===7?t.dayNames:u}),p=s.computed(()=>{const j=t.weekStart,L=typeof j=="string"?Number(j):j;return L===void 0||Number.isNaN(L)?1:Math.min(6,Math.max(0,L))}),h=s.computed(()=>{const j=t.maxDaysFromNow;if(j==null||j==="")return;const L=typeof j=="string"?Number(j):j;if(!Number.isFinite(L)||L<0)return;const O=new Date;return O.setHours(0,0,0,0),O.setDate(O.getDate()+L),O.setHours(23,59,59,999),O}),m=s.computed(()=>{switch(l.value){case"time":return{startingView:"time",minimumView:"time"};case"month":return{startingView:"month",minimumView:"month"};case"year":return{startingView:"year",minimumView:"year"};case"datetime":return{startingView:"day",minimumView:"time"};default:return{startingView:"day",minimumView:"day"}}}),g={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"};function y(){const j=i?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof j=="string"&&j)return j;if(j&&typeof j=="object"&&"value"in j&&j.value)return String(j.value);if(typeof localStorage<"u"){const L=localStorage.getItem("locale")||localStorage.getItem("language");if(L)return L}return"uk"}function b(){const L=i?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!L)return"";if(typeof L=="string")return L;if(typeof L=="object"){const O=y();return L[O]||L[O.split("-")[0]]||L.uk||L.en||""}return""}function w(j){return j?j.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=s.computed(()=>{const j=g[l.value]||"dd.MM.yyyy";if(l.value==="time")return j;const L=t.dateFormat||b();if(!L)return j;const O=w(L);return O?l.value==="datetime"?`${O} HH:mm`:O:j});function S(j,L){return j?L==="week"?"рррр-тиждень":j.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",L==="time"||L==="datetime"?"хх":"мм"):""}const N={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},F=s.computed(()=>{if(t.placeholder)return t.placeholder;const j=l.value;return S(v.value,j)||N[j]||""}),T=s.ref(!1);s.watch(()=>t.modelValue,j=>{j?T.value=!0:t.now||(T.value=!1)},{immediate:!0}),s.watchEffect(()=>{t.now&&!t.modelValue&&!T.value&&(r("update:modelValue",_(new Date,l.value)),T.value=!0)}),s.watch(v,()=>{r("update:modelValue",_(d.value,l.value))});function E(j,L){if(!j)return null;if(j instanceof Date&&!Number.isNaN(j.getTime()))return j;if(typeof j!="string")return null;switch(L){case"datetime":return Z(j);case"time":return oe(j);case"month":return V(j);case"year":return z(j);case"week":return K(j);case"date":default:return U(j)}}function _(j,L){if(!j)return null;const O=j instanceof Date?j:E(j,L);if(!O)return null;switch(L){case"datetime":return`${A(O)}T${I(O)}`;case"time":return I(O);case"month":return`${O.getFullYear()}-${ce(O.getMonth()+1)}`;case"year":return`${O.getFullYear()}`;case"week":{const{year:ne,week:ae}=G(O);return`${ne}-W${ce(ae)}`}case"date":default:return A(O)}}function A(j){return`${j.getFullYear()}-${ce(j.getMonth()+1)}-${ce(j.getDate())}`}function I(j){return`${ce(j.getHours())}:${ce(j.getMinutes())}`}function U(j){const L=j.split("-");if(L.length<3)return null;const O=Number(L[0]),ne=Number(L[1]),ae=parseInt(L[2],10);return!O||!ne||!ae?null:new Date(O,ne-1,ae)}function Z(j){const L=j.includes("T")?j:j.replace(" ","T"),O=new Date(L);return Number.isNaN(O.getTime())?null:O}function V(j){const[L,O]=j.split("-").map(Number);return!L||Number.isNaN(O)?null:new Date(L,(O||1)-1,1)}function z(j){const L=Number(j);return L?new Date(L,0,1):null}function oe(j){const L=j.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!L)return null;const[,O,ne,ae]=L,re=new Date;return re.setHours(Number(O),Number(ne),Number(ae||0),0),re}function K(j){const L=j.match(/^(\d{4})-W(\d{2})$/);if(!L)return null;const[,O,ne]=L,ae=Number(ne);return X(Number(O),ae)}function G(j){const L=new Date(Date.UTC(j.getFullYear(),j.getMonth(),j.getDate())),O=L.getUTCDay()||7;L.setUTCDate(L.getUTCDate()+4-O);const ne=new Date(Date.UTC(L.getUTCFullYear(),0,1)),ae=Math.ceil(((L.getTime()-ne.getTime())/864e5+1)/7);return{year:L.getUTCFullYear(),week:ae}}function X(j,L){if(!j||!L)return null;const O=new Date(j,0,1+(L-1)*7),ne=O.getDay(),ae=O;return ne<=4?ae.setDate(O.getDate()-O.getDay()+1):ae.setDate(O.getDate()+8-O.getDay()),ae}function ce(j){return String(j).padStart(2,"0")}return(j,L)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["vs-date-picker",t.customClass])},[s.createVNode(Pw,{modelValue:d.value,"onUpdate:modelValue":L[0]||(L[0]=O=>d.value=O),placeholder:F.value,disabled:t.disabled,clearable:t.clearable,typeable:t.editable,"week-day-names":f.value,"week-starts-on":p.value,"starting-view":m.value.startingView,"minimum-view":m.value.minimumView,"input-format":v.value,"upper-limit":h.value,name:t.name,class:s.normalizeClass(a.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-637c8950"]]),zw=(n,e)=>{if(!e||!Object.keys(e).length)return n;const[t,r=""]=n.split("?"),o=new URLSearchParams(r);Object.entries(e).forEach(([l,a])=>{a==null||a===""||o.set(l,String(a))});const i=o.toString();return i?`${t}?${i}`:t},Hw=(n,e,t)=>new Promise((r,o)=>{const i=new FormData;i.append("unique","true"),i.append("file",n);const l=new XMLHttpRequest;l.open("POST",e),l.upload.addEventListener("progress",a=>{if(t){if(a.lengthComputable&&a.total>0){t(Math.min(100,Math.round(a.loaded/a.total*100)));return}t(0)}}),l.addEventListener("load",()=>{try{const a=l.responseText?JSON.parse(l.responseText):{};if(l.status>=200&&l.status<300){r(a?.result??null);return}o(new Error(a?.message||a?.error||`Код помилки: ${l.status}`))}catch(a){o(a)}}),l.addEventListener("error",()=>o(new Error("Помилка мережі під час завантаження файлу"))),l.addEventListener("abort",()=>o(new Error("Завантаження файлу скасовано"))),l.send(i)}),jw=async(n,e={})=>{try{const{api:t,id:r="1",form:o="form",table:i="table",customParams:l,onProgress:a}=e,c=t||`/file/upload/uploads?id=${r||""}&form=${o||""}&table=${i||""}`,d=zw(c,l);if(n instanceof File)return await Hw(n,d,a);const u=new FormData;return u.append("unique","true"),u.append("file",n),(await fetch(d,{method:"POST",body:u}).then(p=>p.json()))?.result}catch(t){return ke.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",t),null}},Uw=async n=>{try{return await fetch(`file/delete/${n}`),!0}catch(e){return console.error(e),!1}},Uu=async n=>{try{const e=await fetch(`/file/download/${n}`);if(!e.ok)throw new Error(`Download failed with status ${e.status}`);const t=await e.blob(),o=(e.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),i=o?.[1]?decodeURIComponent(o[1].replace(/"/g,"").trim()):"",l=n.split("/").filter(Boolean).pop()||"download",a=i||l,c=document.createElement("a");c.setAttribute("download",a),c.href=window.URL.createObjectURL(t),c.click(),window.URL.revokeObjectURL(c.href)}catch(e){console.error(e.message)}},Ww=n=>{if(!n)return"";const e=n?.split(".");return e[e.length-1]},Aa=n=>{const e=Ww(n),t={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 t.imageFormat.includes(e)?"img":t.sheetsFormat.includes(e)?Y.Table:t.textsFormat.includes(e)?Y.FileCode:t.documentsFormat.includes(e)?Y.FileText:t.archivesFormat.includes(e)?Y.FileArchive:Y.FileText},Kw=["title"],qw={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"},Gw=["title"],Jw={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},rn=Be(s.defineComponent({__name:"vs-input-file-list-item",props:s.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:s.mergeModels(["click"],["update:value","update:item"]),setup(n,{emit:e}){const t=s.useModel(n,"value"),r=s.useModel(n,"item"),o=e,i=n,l=s.computed(()=>i.action),a=s.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),c=s.computed(()=>i.disabled?"opacity-50 cursor-not-allowed":i.isUploading?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),d=s.computed(()=>i.progressPercent>0?`${i.progressPercent}%`:"Завантаження..."),u=m=>typeof m=="string"?m:m?.file_path||"",f=()=>{const m=a.value;Uw(m),i.multiple&&Array.isArray(t.value)?t.value=t.value.filter(g=>u(g)!==m):t.value=""},p=()=>{a.value&&window.open(a.value,"_blank")},h=()=>{i.disabled||i.isUploading||o("click")};return(m,g)=>l.value?(s.openBlock(),s.createElementBlock("div",{key:0,title:m.title,class:s.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",c.value]),onClick:h},[m.isUploading?(s.openBlock(),s.createElementBlock("div",qw,[g[2]||(g[2]=s.createElementVNode("div",{class:"loader"},null,-1)),s.createElementVNode("span",null,s.toDisplayString(d.value),1)])):(s.openBlock(),s.createBlock(s.unref(Y.Plus),{key:1,class:"h-4 w-4"}))],10,Kw)):(s.openBlock(),s.createElementBlock("div",{key:1,title:a.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(s.unref(Aa)(a.value)),{src:`${s.unref(Aa)(a.value)} === 'img'`?`/file/resize?filepath=${a.value}&format=webp`:a.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:g[0]||(g[0]=y=>s.unref(Uu)(a.value))},null,8,["src"])),s.createElementVNode("div",Jw,[s.createElementVNode("button",{type:"button",onClick:f,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[s.createVNode(s.unref(Y.Trash2),{class:"w-4 h-4"})]),s.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"},[s.createVNode(s.unref(Y.Eye),{class:"w-4 h-4"})]),s.createElementVNode("button",{type:"button",onClick:g[1]||(g[1]=y=>s.unref(Uu)(a.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[s.createVNode(s.unref(Y.Download),{class:"w-4 h-4"})])])],8,Gw))}}),[["__scopeId","data-v-b03cac5c"]]),_a=n=>n?n.split(",").map(e=>e.trim().toLowerCase()).filter(Boolean).map(e=>e.startsWith(".")?e.slice(1):e):[],Ta=(n,e)=>!e||n.size<=e*1024*1024?!0:(ke.notify({type:"error",title:"Помилка!",message:`Файл "${n.name}" занадто великий. Максимальний розмір: ${e} МБ`,position:"right-bottom"}),!1),Ba=(n,e)=>{if(!e.length)return!0;const t=n.name.split(".").pop()?.toLowerCase()||"";return e.includes(t)?!0:(ke.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${n.name}". Дозволені формати: ${e.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},Wu=(n,e)=>{const t={},r=[];if(!n?.length)return{ok:!0,params:t,missingSources:r};const o=e?.value??{};return n.forEach(i=>{if(!i)return;const[l,a]=i.split("="),c=l?.trim(),d=a?.trim();if(!c||!d)return;const u=o[d];if(u==null||u===""){r.push(d);return}t[c]=u}),r.length?(ke.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:t,missingSources:r}):{ok:!0,params:t,missingSources:r}},Ku=(n,e)=>!e||!Array.isArray(n)?[]:n,qu=(n,e)=>e||Array.isArray(n)?null:n,Gu=n=>{if(!n)return"";const e=n.split(/[/\\]/).pop()||"",t=e.lastIndexOf(".");return t<=0||t===e.length-1?"":e.slice(t+1).toLowerCase()},Yw={class:"flex items-center flex-wrap gap-2"},Xw=["accept","multiple","disabled"],Ju=s.defineComponent({__name:"vs-input-file",props:s.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:s.mergeModels(["change"],["update:modelValue"]),setup(n,{emit:e}){const t=n,r=s.useModel(n,"modelValue"),o=e,i=s.ref(null),l=s.ref(!1),a=s.ref([]),c=s.inject("values"),d=s.inject("map-file-import-uploading",null),u=s.computed(()=>Ku(r.value,!!t.multiple)),f=s.computed(()=>qu(r.value,!!t.multiple)),p=s.computed(()=>_a(t.format)),h=s.computed(()=>Wu(t.customParams,c)),m=F=>{ke.notify({type:"error",title:"Помилка завантаження",message:F||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},g=()=>{t.disabled||l.value||h.value.ok&&i.value?.click()},y=async(F,T)=>{const E={api:t.api,customParams:Object.keys(h.value.params).length?h.value.params:void 0,onProgress:A=>{T&&(T.status="uploading",T.progressPercent=A)}},_=await jw(F,E);return _?.file_path?_.file_path:null};s.watch(l,F=>{d&&(d.value=F)},{immediate:!0});const b=s.computed(()=>a.value.filter(F=>F.status!=="done")),w=s.computed(()=>b.value[0]||null),v=F=>typeof F=="string"?F:F?.file_path||"",S=(F,T)=>({key:`${Date.now()}-${T}-${F.name}`,file:F,size:F.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),N=async F=>{const{files:T}=F.target;if(!T||T.length===0)return;if(!h.value.ok){i.value&&(i.value.value="");return}const E=Array.from(T);if(t.max_size&&E.filter(I=>!Ta(I,t.max_size)).length>0){i.value&&(i.value.value="");return}if(E.filter(A=>!Ba(A,p.value)).length>0){i.value&&(i.value.value="");return}l.value=!0,a.value=E.map((A,I)=>S(A,I));try{if(t.multiple){const Z=await Promise.all(E.map(async(K,G)=>{const X=a.value[G];X.status="uploading",X.progressPercent=0;const ce=await y(K,X);return ce?(X.status="done",X.path=ce,X.uploaded=X.size,X.progressPercent=100):(X.status="error",X.error="Помилка при завантаженні"),ce})),V=Z.filter(K=>!!K);if(V.length===0){m();return}V.length<Z.length&&m("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const z=V,oe=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...oe,...z],o("change",r.value);return}const A=E[0],I=a.value[0];I.status="uploading",I.progressPercent=0;const U=await y(A,I);if(!U){I.status="error",I.error="Помилка при завантаженні",m();return}I.status="done",I.path=U,I.uploaded=I.size,I.progressPercent=100,r.value=U,o("change",U)}catch(A){m(A?.message||void 0)}finally{l.value=!1,a.value=[],i.value&&(i.value.value="")}};return(F,T)=>(s.openBlock(),s.createElementBlock("div",Yw,[s.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:i,type:"file",accept:t.format,multiple:t.multiple,onChange:N,disabled:l.value||F.disabled},null,40,Xw),f.value?(s.openBlock(),s.createBlock(rn,{key:0,item:f.value,value:r.value,"onUpdate:value":T[0]||(T[0]=E=>r.value=E)},null,8,["item","value"])):s.createCommentVNode("",!0),t.multiple?(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(u.value,(E,_)=>(s.openBlock(),s.createBlock(rn,{key:`${_}-${v(E)}`,multiple:!0,item:E,value:r.value,"onUpdate:value":T[1]||(T[1]=A=>r.value=A)},null,8,["item","value"]))),128)),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(b.value,E=>(s.openBlock(),s.createBlock(rn,{key:E.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":E.progressPercent,title:E.file.name},null,8,["progress-percent","title"]))),128)),s.createVNode(rn,{action:"","is-uploading":!1,disabled:F.disabled||l.value,title:"Додати файли",onClick:g},null,8,["disabled"])],64)):!t.multiple&&!w.value?(s.openBlock(),s.createBlock(rn,{key:2,action:"","is-uploading":!1,disabled:F.disabled||l.value,title:"Оновити файл",onClick:g},null,8,["disabled"])):w.value?(s.openBlock(),s.createBlock(rn,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":w.value.progressPercent,title:w.value.file.name},null,8,["progress-percent","title"])):s.createCommentVNode("",!0)]))}}),Zw={class:"vs-input-file2 flex flex-col gap-4"},Qw={class:"flex items-center flex-wrap gap-2"},e1=["multiple","accept","disabled"],t1={key:0,class:"text-sm text-rose-600"},oi=s.defineComponent({__name:"vs-input-file2",props:s.mergeModels({format:{},max_size:{},api:{},multiple:{type:Boolean,default:!1},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.ref(null),o=s.ref(!1),i=s.ref(""),l=s.ref([]),a=s.inject("values"),c=s.computed(()=>!!e.multiple),d=s.computed(()=>_a(e.format)),u=s.computed(()=>{if(d.value.length)return d.value.map(E=>`.${E}`).join(",")}),f=s.computed(()=>Ku(t.value,c.value)),p=s.computed(()=>qu(t.value,c.value)),h=s.computed(()=>Wu(e.customParams,a)),m=s.computed(()=>l.value.filter(E=>E.status!=="done")),g=s.computed(()=>c.value?null:m.value[0]||null),y=s.computed(()=>{const E=m.value,_=E.reduce((I,U)=>I+U.size,0);if(!_)return 0;const A=E.reduce((I,U)=>I+Math.min(U.uploaded,U.size),0);return Math.min(100,Math.round(A/_*100))}),b=()=>{e.disabled||o.value||h.value.ok&&r.value?.click()},w=async(E,_)=>{const A=_||F(E,0);try{A.status="uploading";const I={id:"",fileName:A.file.name,subdir:e.subdir,size:A.file.size,...h.value.params},U=await fetch(`${e.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(I)});if(!U.ok)throw new Error("Не вдалося ініціалізувати завантаження");const Z=await U.json().catch(()=>({}));A.uploadId=Z.id||"",A.uploaded=Number(Z.uploaded)||0,A.progressPercent=A.size?Math.min(100,Math.round(A.uploaded/A.size*100)):0;const V=e.chunkSize??5*1024*1024;for(;A.uploaded<A.size;){const K=A.uploaded,G=Math.min(K+V,A.size),ce=await A.file.slice(K,G).arrayBuffer(),j=await fetch(`${e.api||"/file/upload2"}/${A.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${K}-${G-1}/${A.size}`,"Content-Type":"application/octet-stream"},body:ce});if(!j.ok)throw new Error("Помилка завантаження частини");const L=await j.json().catch(()=>({})),O=L.uploaded!=null?Number(L.uploaded):G;if(A.uploaded=O,A.progressPercent=A.size?Math.min(100,Math.round(A.uploaded/A.size*100)):0,L.finished||O>=A.size){const ne=Gu(A.file.name),ae=L.file_path||L.filepath||L.url||(ne?`/files/uploads/${A.uploadId}.${ne}`:`/files/uploads/${A.uploadId}`);return A.path=ae,A.status="done",N(ae),ae}}const z=Gu(A.file.name),oe=`/files/uploads/${A.uploadId}${z?`.${z}`:""}`;return A.path=oe,A.status="done",N(oe),oe}catch(I){return A.status="error",A.error=I?.message||"Помилка при завантаженні",i.value=I?.message||"Помилка при завантаженні",null}},v=E=>typeof E=="string"?E:E?.file_path||"",S=E=>!E||E.length===0?[]:Array.from(E),N=E=>{if(c.value){const _=Array.isArray(t.value)?[...t.value]:t.value?[t.value]:[];_.push(E),t.value=_;return}t.value=E},F=(E,_)=>({key:`${Date.now()}-${_}-${E.name}`,file:E,size:E.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),T=async E=>{const _=E.target,A=S(_.files);if(!A.length)return;if(!h.value.ok){_.value="";return}const I=A.filter(U=>Ta(U,e.max_size)&&Ba(U,d.value));if(!I.length){_.value="";return}try{o.value=!0,i.value="",l.value=I.map((z,oe)=>F(z,oe));const Z=(await Promise.allSettled(l.value.map(z=>w(z.file,z)))).filter(z=>z.status==="fulfilled").map(z=>z.value).filter(z=>!!z),V=l.value.filter(z=>z.status==="error").map(z=>z.file.name);if(Z.length===0){i.value="Не вдалося завантажити файл";return}V.length>0?ke.notify({type:"warning",title:"Частина файлів не завантажилась",message:V.join(", "),position:"right-bottom"}):ke.notify({type:"success",title:"Файл завантажено",message:I.length>1?`Завантажено ${Z.length} файлів`:I[0].name,position:"right-bottom"})}finally{o.value=!1,l.value=[],_.value=""}};return(E,_)=>(s.openBlock(),s.createElementBlock("div",Zw,[s.createElementVNode("div",Qw,[s.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:c.value,accept:u.value,disabled:o.value||e.disabled,onChange:T},null,40,e1),c.value?(s.openBlock(!0),s.createElementBlock(s.Fragment,{key:0},s.renderList(f.value,(A,I)=>(s.openBlock(),s.createBlock(rn,{key:`${I}-${v(A)}`,multiple:!0,item:A,value:t.value,"onUpdate:value":_[0]||(_[0]=U=>t.value=U)},null,8,["item","value"]))),128)):p.value?(s.openBlock(),s.createBlock(rn,{key:1,item:p.value,value:t.value,"onUpdate:value":_[1]||(_[1]=A=>t.value=A)},null,8,["item","value"])):s.createCommentVNode("",!0),c.value?(s.openBlock(!0),s.createElementBlock(s.Fragment,{key:2},s.renderList(m.value,A=>(s.openBlock(),s.createBlock(rn,{key:A.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":A.progressPercent,title:A.file.name},null,8,["progress-percent","title"]))),128)):g.value?(s.openBlock(),s.createBlock(rn,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":g.value.progressPercent,title:g.value.file.name},null,8,["progress-percent","title"])):s.createCommentVNode("",!0),s.createVNode(rn,{action:"","is-uploading":!1,disabled:e.disabled||o.value,"progress-percent":y.value,title:c.value?"Додати файли":"Оновити файл",onClick:b},null,8,["disabled","progress-percent","title"])]),i.value?(s.openBlock(),s.createElementBlock("p",t1,s.toDisplayString(i.value),1)):s.createCommentVNode("",!0)]))}});function n1(n){let e="";for(let r=0;r<n.length;r+=32768)e+=String.fromCharCode(...n.subarray(r,r+32768));return btoa(e)}async function Yu(n){const e=await n.arrayBuffer();return{name:n.name,content:n1(new Uint8Array(e))}}function Na(n,e="application/octet-stream"){const t=atob(n),r=new Uint8Array(t.length);for(let o=0;o<t.length;o++)r[o]=t.charCodeAt(o);return new Blob([r],{type:e})}function Xu(n,e="application/octet-stream"){return URL.createObjectURL(Na(n,e))}function Zu(n){const e=Na(n.content),t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.setAttribute("download",n.name),t.click(),window.URL.revokeObjectURL(t.href)}function Da(n){if(!n||typeof n!="object"||Array.isArray(n))return!1;const e=n;return typeof e.name=="string"&&typeof e.content=="string"&&!!e.content}const r1={class:"vs-input-file64 flex flex-col gap-2"},o1={class:"flex items-center flex-wrap gap-2"},s1=["multiple","accept","disabled"],i1=["title"],l1=["src"],a1={key:1,class:"flex h-full w-full flex-col items-center justify-center gap-1 px-2 text-slate-500"},c1={class:"line-clamp-2 text-center text-[10px] text-slate-600"},d1={class:"absolute inset-0 hidden items-center justify-center gap-x-2 bg-black/50 group-hover:flex"},u1=["disabled","onClick"],f1=["onClick"],p1=["onClick"],h1=["title"],m1={class:"line-clamp-2 max-w-full break-words text-center text-[11px] font-semibold leading-snug"},g1=["title"],y1={key:0,class:"text-sm text-rose-600"},si=s.defineComponent({__name:"vs-input-file64",props:s.mergeModels({format:{},multiple:{type:Boolean,default:!1},multi:{type:Boolean},max_size:{default:10},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=new Set(["tiff","jpg","jpeg","png","svg","ico","webp"]),t=n,r=s.useModel(n,"modelValue"),o=s.ref(null),i=s.ref(!1),l=s.ref("Обробка…"),a=s.ref(""),c=s.ref([]),d=s.ref([]),u=s.computed(()=>!!(t.multiple||t.multi)),f=s.computed(()=>_a(t.format)),p=s.computed(()=>{if(f.value.length)return f.value.map(T=>`.${T}`).join(",")});function h(){c.value.forEach(T=>URL.revokeObjectURL(T)),c.value=[]}function m(T){return c.value.push(T),T}function g(T){const E=T.name.split(".").pop()?.toLowerCase()||"",_=Aa(T.name);return{...T,url:m(Xu(T.content)),isImage:e.has(E),icon:_==="img"?"img":_}}function y(){if(h(),u.value){const T=Array.isArray(r.value)?r.value.filter(Da):[];d.value=T.map(g);return}d.value=Da(r.value)?[g(r.value)]:[]}async function b(){await s.nextTick(),await new Promise(T=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>T())})})}s.watch([()=>r.value,u],()=>y(),{immediate:!0,deep:!0}),s.onBeforeUnmount(()=>{h()});const w=()=>{t.disabled||i.value||o.value?.click()},v=T=>{if(u.value&&Array.isArray(r.value)){r.value=r.value.filter((E,_)=>_!==T);return}r.value=null},S=T=>{T.url&&window.open(T.url,"_blank")},N=T=>{Zu({name:T.name,content:T.content})},F=async T=>{const E=T.target,_=E.files?Array.from(E.files):[];if(!_.length)return;const A=_.filter(I=>Ta(I,t.max_size)&&Ba(I,f.value));if(!A.length){E.value="";return}i.value=!0,l.value=A.length>1?`Обробка… (${A.length})`:`Обробка… ${A[0].name}`,a.value="",await b();try{const I=await Promise.all(A.map(U=>Yu(U)));if(u.value){const U=Array.isArray(r.value)?r.value.filter(Da):[];r.value=[...U,...I]}else r.value=I[0]||null;ke.notify({type:"success",title:"Файл додано",message:I.length>1?`Додано ${I.length} файлів`:I[0].name,position:"right-bottom"})}catch(I){console.error(I),a.value="Помилка при обробці файлу",ke.notify({type:"error",title:"Помилка!",message:"Помилка при обробці файлу",position:"right-bottom"})}finally{i.value=!1,E.value=""}};return(T,E)=>(s.openBlock(),s.createElementBlock("div",r1,[s.createElementVNode("div",o1,[s.createElementVNode("input",{ref_key:"fileInput",ref:o,type:"file",class:"hidden",multiple:u.value,accept:p.value,disabled:T.disabled||i.value,onChange:F},null,40,s1),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(d.value,(_,A)=>(s.openBlock(),s.createElementBlock("div",{key:`${A}-${_.name}`,class:"group relative h-[120px] w-[120px] overflow-hidden rounded-lg border border-dashed border-[#CFD9E0] text-gray-300",title:_.name},[_.isImage?(s.openBlock(),s.createElementBlock("img",{key:0,src:_.url,alt:"",class:"h-full w-full object-cover"},null,8,l1)):(s.openBlock(),s.createElementBlock("div",a1,[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(_.icon),{class:"h-8 w-8"})),s.createElementVNode("span",c1,s.toDisplayString(_.name),1)])),s.createElementVNode("div",d1,[s.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-red-500",disabled:T.disabled||i.value,onClick:I=>v(A)},[s.createVNode(s.unref(Y.Trash2),{class:"h-4 w-4"})],8,u1),s.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-emerald-600",onClick:I=>S(_)},[s.createVNode(s.unref(Y.Eye),{class:"h-4 w-4"})],8,f1),s.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-blue-500",onClick:I=>N(_)},[s.createVNode(s.unref(Y.Download),{class:"h-4 w-4"})],8,p1)])],8,i1))),128)),i.value?(s.openBlock(),s.createElementBlock("div",{key:0,class:"box-border flex h-[120px] w-[120px] flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-blue-400 bg-blue-50 p-2 text-blue-600",title:l.value},[E[0]||(E[0]=s.createElementVNode("div",{class:"h-6 w-6 shrink-0 animate-spin rounded-full border-[3px] border-blue-100 border-t-blue-600"},null,-1)),s.createElementVNode("span",m1,s.toDisplayString(l.value),1)],8,h1)):!T.disabled&&(u.value||!d.value.length)?(s.openBlock(),s.createElementBlock("div",{key:1,class:"flex h-[120px] w-[120px] cursor-pointer items-center justify-center rounded-lg border border-dashed border-[#CFD9E0] text-gray-300 transition-all hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500",title:u.value?"Додати файли":"Обрати файл",onClick:w},[s.createVNode(s.unref(Y.Plus),{class:"h-4 w-4"})],8,g1)):s.createCommentVNode("",!0)]),a.value?(s.openBlock(),s.createElementBlock("p",y1,s.toDisplayString(a.value),1)):s.createCommentVNode("",!0)]))}}),b1={class:"flex items-center justify-center h-[30px] w-[30px]"},k1={class:"min-w-0 flex-1"},w1={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},x1={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},v1={class:"px-[5px]"},C1={class:""},ii=s.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(n){const e=n,t=s.computed(()=>{try{return new Date(e.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(o){if(o<1024)return`${o} B`;const i=o/1024;return i<1024?`${i.toFixed(2)} KB`:`${(i/1024).toFixed(2)} MB`}return(o,i)=>(s.openBlock(),s.createElementBlock(s.Fragment,null,[s.createElementVNode("div",b1,[s.createVNode(s.unref(Y.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),s.createElementVNode("div",k1,[s.createElementVNode("p",w1,s.toDisplayString(o.item?.uploaded_name),1),s.createElementVNode("p",x1,[s.createElementVNode("span",null,s.toDisplayString(o.item?.username),1),s.withDirectives(s.createElementVNode("span",v1,"|",512),[[s.vShow,o.item?.username]]),s.createElementVNode("span",null,s.toDisplayString(t.value),1),i[0]||(i[0]=s.createElementVNode("span",{class:"px-[5px]"},"|",-1)),s.createElementVNode("span",C1,s.toDisplayString(r(o.item?.size)),1)])])],64))}}),S1={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full min-w-0"},E1={key:0,class:"flex w-full min-w-0 gap-x-3 items-center"},M1={key:1,class:"flex min-w-0 gap-x-3 w-full items-center"},A1={key:2,class:"flex min-w-0 gap-x-3 w-full items-center"},_1=["href"],T1={key:3,class:"flex min-w-0 gap-x-3 w-full items-center"},B1={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},N1={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"},D1={class:"inline-block"},V1={class:"inline-block"},$1={class:"inline-block"},L1=s.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(n,{emit:e}){const t=n,r=e;function o(f){return["pdf","json"].includes(f.ext)}function i(f){return["ppt","pptx","doc","docx","xls","xlsx"].includes(f.ext)}function l(f){const p=document.createElement("a");p.setAttribute("download",f?.uploaded_name),p.href=f?.file_path,p.click()}function a(f){f?.file_path&&window.open(f.file_path,"_blank")}async function c(){try{await fetch(`${t.prefix}/widget/file/${t.item.entity_id}/${t.item.file_id}`,{method:"DELETE"}),r("update")}catch(f){console.error(f)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function u(f){(t.item.ext==="jpg"||t.item.ext==="png")&&r("openLightbox",{item:t.item,index:f})}return(f,p)=>(s.openBlock(),s.createElementBlock("div",S1,[f.item.ext==="jpg"||f.item.ext==="png"?(s.openBlock(),s.createElementBlock("div",E1,[s.createElementVNode("div",{class:"min-w-0 flex-1 cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=h=>u(f.index))},[s.createVNode(ii,{item:f.item},null,8,["item"])])])):o(f.item)?(s.openBlock(),s.createElementBlock("div",M1,[s.createVNode(ii,{item:f.item},null,8,["item"])])):i(f.item)?(s.openBlock(),s.createElementBlock("div",A1,[s.createElementVNode("a",{href:`/api/file-preview?id=${f.item.file_id}`,target:"_blank",class:"flex min-w-0 gap-x-3 w-full items-center"},[s.createVNode(ii,{item:f.item},null,8,["item"])],8,_1)])):(s.openBlock(),s.createElementBlock("div",T1,[s.createVNode(ii,{item:f.item},null,8,["item"])])),s.createElementVNode("div",B1,[s.createElementVNode("div",N1,[s.createElementVNode("div",D1,[s.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]=h=>a(f.item))},[s.createVNode(s.unref(Y.Eye),{class:"h-4 w-4"})])]),s.createElementVNode("div",V1,[s.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]=h=>l(f.item))},[s.createVNode(s.unref(Y.Download),{class:"h-4 w-4"})])]),p[4]||(p[4]=s.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),s.createElementVNode("div",$1,[s.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]=h=>d())},[s.createVNode(s.unref(Y.Trash2),{class:"h-4 w-4"})])])])])]))}}),I1={class:"flex flex-col widget-file min-w-0 w-full xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700"},O1={class:"flex w-full mb-[12px] items-center gap-x-2"},R1={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},F1={class1:"ml-auto"},P1={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"},z1={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},H1={class:"relative"},j1={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},U1={key:1,class:"space-y-3 max-h-[300px] min-w-0 overflow-x-hidden 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"},W1={key:0},Qu=s.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(n,{emit:e}){const t=n,r=s.inject("form"),o=s.computed(()=>r.value.formId),i=s.ref(!1),l=s.ref(0),a=e,c=s.ref(!1),d=s.ref({}),u=s.ref([]),f=s.ref(""),p=s.computed(()=>Array.isArray(u.value)?u.value.filter(v=>v.ext==="jpg"||v.ext==="png").map(v=>v?.file_path):[]),h=s.computed(()=>f.value===""?u.value:u.value.filter(v=>v?.uploaded_name?.includes(f.value))),m=v=>{const S=p.value.findIndex(N=>N===v.item.file_path);S!==-1&&(i.value=!0,l.value=S)},g=async()=>{try{const v=await fetch(`${t.prefix}/widget/file/${o.value}`).then(S=>S.json());u.value=v?.rows}catch(v){console.error(v)}},y=async v=>{await Promise.all(Array.from(v.target.files).map(async S=>{const N=new FormData;N.append("file",S);try{const F=`${t.prefix}/widget/file/${o.value}`,T=await fetch(F,{method:"POST",body:N});return T.ok?(a("update","file-list"),S):(ke.notify({type:T.status>=400&&T.status<500?"warning":"error",title:"Error",message:`Error code: ${T.status}`}),null)}catch(F){return ke.notify({type:"error",title:"Error",message:F.message||"Unknown error"}),console.error(F),null}})),await g()},b=v=>{const S={...v};return v.cancel||(S.cancel=()=>{c.value=!1}),v.updateListOnConfirm&&(S.confirm=async()=>{await v.confirm(),c.value=!1,g()}),S},w=v=>{d.value=b(v),c.value=!0};return s.watch(o,v=>{v&&g()}),s.onMounted(()=>{o.value&&g()}),(v,S)=>{const N=s.resolveComponent("Lightbox"),F=s.resolveComponent("MessageBox");return s.openBlock(),s.createElementBlock("div",I1,[s.createElementVNode("div",O1,[s.createElementVNode("h2",R1," Файлів: "+s.toDisplayString(u.value?.length),1),s.createElementVNode("div",F1,[s.createElementVNode("label",null,[s.createElementVNode("input",{type:"file",class:"hidden",onChange:S[0]||(S[0]=T=>y(T))},null,32),s.createElementVNode("div",P1,[s.createVNode(s.unref(Y.Upload),{class:"h-4 w-4"})])])])]),u.value?.length>4?(s.openBlock(),s.createElementBlock("div",z1,[s.createElementVNode("div",null,[s.createElementVNode("div",H1,[s.createElementVNode("div",j1,[s.createVNode(s.unref(Y.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),s.withDirectives(s.createElementVNode("input",{type:"text","onUpdate:modelValue":S[1]||(S[1]=T=>f.value=T),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),[[s.vModelText,f.value,void 0,{trim:!0}]])])])])):s.createCommentVNode("",!0),u.value?.length?(s.openBlock(),s.createElementBlock("div",U1,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(h.value,(T,E)=>(s.openBlock(),s.createBlock(L1,{key:E,prefix:v.prefix,item:T,index:E,onUpdate:S[2]||(S[2]=_=>v.$emit("update","file-list")),onOpenModal:S[3]||(S[3]=_=>w(_)),onOpenLightbox:S[4]||(S[4]=_=>m(_))},null,8,["prefix","item","index"]))),128)),h.value.length?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",W1,S[8]||(S[8]=[s.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):s.createCommentVNode("",!0),s.createVNode(N,{modelValue:i.value,"onUpdate:modelValue":S[5]||(S[5]=T=>i.value=T),startIndex:l.value,"onUpdate:index":S[6]||(S[6]=T=>l.value=T),images:p.value},null,8,["modelValue","startIndex","images"]),s.createVNode(F,s.mergeProps({modelValue:c.value,"onUpdate:modelValue":S[7]||(S[7]=T=>c.value=T),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),K1={class:"flex items-center justify-between"},q1={class:"text-[16px] text-gray-900 font-medium"},G1={class:"grid gap-3"},J1=Be(s.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(n){const e=n,t=s.ref(e.isOpen);return s.watch(()=>e.isOpen,r=>{t.value=r}),(r,o)=>(s.openBlock(),s.createElementBlock("div",null,[s.createElementVNode("div",K1,[s.createElementVNode("p",q1,s.toDisplayString(n.title),1),s.createVNode(ya,{modelValue:t.value,"onUpdate:modelValue":o[0]||(o[0]=i=>t.value=i),style:s.normalizeStyle(n.style)},null,8,["modelValue","style"])]),s.createVNode(s.Transition,{name:"slide-fade"},{default:s.withCtx(()=>[s.withDirectives(s.createElementVNode("div",G1,[s.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[s.vShow,t.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),Y1={class:"text-[16px] text-gray-900 font-medium"},X1={class:"grid gap-3"},Z1=Be(s.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(n){const e=n,t=s.ref(e.isOpen);return s.watch(()=>e.isOpen,r=>{t.value=r}),(r,o)=>(s.openBlock(),s.createElementBlock("div",null,[s.createElementVNode("button",{type:"button",onClick:o[0]||(o[0]=i=>t.value=!t.value),class:"flex items-center gap-2"},[s.createVNode(s.unref(Y.ChevronDown),{class:s.normalizeClass(["h-4 w-4 duration-300",[t.value?"-rotate-180":""]])},null,8,["class"]),s.createElementVNode("span",Y1,s.toDisplayString(n.title),1)]),s.createVNode(s.Transition,{name:"slide-fade"},{default:s.withCtx(()=>[s.withDirectives(s.createElementVNode("div",X1,[s.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[s.vShow,t.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),Q1={class:"flex items-center justify-between"},ex={switcher:J1,accordion:Z1,default:s.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(n){return(e,t)=>(s.openBlock(),s.createElementBlock("div",null,[s.createElementVNode("div",Q1,[s.createElementVNode("p",null,s.toDisplayString(n.title),1)]),s.renderSlot(e.$slots,"default")]))}})},Kt={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},tx=(n,e)=>String(n)===String(e),nx=(n,e)=>String(n)!==String(e),rx=(n,e)=>n>e,ox=(n,e)=>n>=e,sx=(n,e)=>n<e,ix=(n,e)=>n<=e,lx=(n,e)=>Array.isArray(e)&&e.length===2?n>=e[0]&&n<=e[1]:!1,ax=(n,e)=>String(n).startsWith(String(e)),cx=(n,e)=>String(n).endsWith(String(e)),dx=(n,e)=>String(n).includes(String(e)),ux=(n,e)=>Array.isArray(e)?e.includes(n):!1,fx=(n,e)=>Array.isArray(e)?!e.includes(n):!0,px=(n,e)=>{if(!e)return!0;switch(e?.[1]){case Kt.Equal:return tx(n,e?.[2]);case Kt.Inequal:return nx(n,e?.[2]);case Kt.Higer:return rx(n,e?.[2]);case Kt.HigerOrEqual:return ox(n,e?.[2]);case Kt.Lower:return sx(n,e?.[2]);case Kt.LowerOrEqual:return ix(n,e?.[2]);case Kt.Between:return lx(n,e?.[2]);case Kt.StartWith:return ax(n,e?.[2]);case Kt.EndWith:return cx(n,e?.[2]);case Kt.Contain:return dx(n,e?.[2]);case Kt.In:return ux(n,e?.[2]);case Kt.NotIn:return fx(n,e?.[2]);default:return!0}};function ef(n,e,t){return e==null||!Array.isArray(e)||e.length===0?!0:(Array.isArray(e[0])?e:[e]).every(o=>{if(!Array.isArray(o)||o.length<2)return!0;const i=o[0],l=t?n?.[t]?.[i]??n?.[i]:n?.[i];return px(l,o)})}const tf={1:"col-span-12 md:col-span-1",2:"col-span-12 md:col-span-2",3:"col-span-12 md:col-span-3",4:"col-span-12 md:col-span-4",5:"col-span-12 md:col-span-5",6:"col-span-12 md:col-span-6",7:"col-span-12 md:col-span-7",8:"col-span-12 md:col-span-8",9:"col-span-12 md:col-span-9",10:"col-span-12 md:col-span-10",11:"col-span-12 md:col-span-11",12:"col-span-12 md:col-span-12"};function hx(n,e=!1){if(e)return tf[12];const t=Number(n),r=Number.isFinite(t)&&t>=1&&t<=12?Math.round(t):12;return tf[r]}const mx={class:"grid grid-cols-12 gap-6 w-full"},nf=s.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(n){const e=n,t=s.inject("values",s.ref({})),r=s.inject("form"),o=s.computed(()=>e.schema?.filter(a=>ef(t.value,a?.conditions,e.name||void 0))),i=s.computed(()=>ex[e.view]),l=s.computed(()=>{if(t.value||(t.value={}),!e.name)return t.value;const a=t.value[e.name];if(a)return a;const c={};return t.value={...t.value,[e.name]:c},c});return(a,c)=>n.schema?.length?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.value),{key:0,title:n.title,style:s.normalizeStyle(n.style)},{default:s.withCtx(()=>[s.createElementVNode("div",mx,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(o.value,d=>(s.openBlock(),s.createElementBlock("div",{key:d.name,class:s.normalizeClass(s.unref(hx)(d.col))},[s.createVNode(Tf,s.mergeProps({ref_for:!0},d,{item:d,modelValue:l.value[d.name],"onUpdate:modelValue":u=>l.value[d.name]=u,style:n.style,error:s.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"])],2))),128))])]),_:1},8,["title","style"])):s.createCommentVNode("",!0)}});function gx(n){return!n||typeof n!="string"?{}:n.split("#").reduce((e,t)=>{const[r,...o]=t.split("=");return!r||!o.length||(e[r]=o.join("=")),e},{})}function yx(n,e){const t=Array.isArray(n)?n.find(r=>(r?.name??r?.id??r?.key)===e):n?.[e];return!t||typeof t!="object"?e:t["label:uk"]||t.label||t.ua||t.uk||e}const rf=({props:n,fetchOptionByValue:e,optionsList:t,selectedOption:r,modelValue:o,onCreated:i})=>{const l=s.ref(!1),a=s.ref({}),c=s.ref([]),d=s.ref(null),u=s.computed(()=>n.add?.title||"Додати"),f=s.computed(()=>n.add?.token||n.add?.model||""),p=s.computed(()=>n.add?.pk||"id");return{isOpenAdd:l,addData:a,addSchema:c,addForm:d,addTitle:u,addOption:async()=>{if(!f.value)return;const g=d?.value.validate();if(g){ke.notify({title:"Помилка валідації",type:"warning",message:`Перевірте поля: ${Object.keys(g).map(y=>yx(c.value,y)).join(", ")}`});return}try{const y={...gx(n.add?.obj),...a.value},b=n.add?.api??`/api/table/${f.value}`,w=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(y)}),v=await w.json().catch(()=>({})),S=v?.error||v?.message,N=Number(v?.code)>=400;if(!w.ok||N){ke.notify({title:"Помилка",type:"error",message:S||`Код помилки: ${v?.code||w.status}`});return}const F=v?.rows?.[0],T=v?.[p.value]??v?.id??F?.[p.value]??F?.id;if(!T){ke.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const E=await e(T);E&&(t.value.some(A=>String(A?.id)===String(E.id))||t.value.push(E)),i?await i(E,T):E&&(r.value=E,o.value=T),l.value=!1,ke.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(y){ke.notify({title:"Помилка",type:"error",message:y?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!n.add)return null;const g=await fetch(`/api/template/form/${n.add.form}`).then(y=>y.json());return c.value=g.schema,a.value={},l.value=!0,null}}},bx=["aria-expanded","data-focus"],kx={class:"vs-input-select__value-area relative flex flex-1 items-center gap-1 py-0.5 pr-0 overflow-hidden h-full min-w-0"},wx={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},xx={class:"flex items-center gap-1 min-w-0"},vx=["title"],Cx=["innerHTML"],Sx=["onClick"],Ex={class:"flex-1 min-w-[2px]"},Mx=["placeholder"],Ax=["title"],_x=["innerHTML"],Tx={key:3,class:"truncate flex-1 min-w-0"},Bx={key:2,class:"flex-1 min-w-[2px]"},Nx=["placeholder"],Dx={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Vx={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},$x=["disabled"],Lx={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Ix=["disabled","title"],Ox=s.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(n,{emit:e}){const t=n,r=e,o=s.computed({get:()=>t.keyWord,set:i=>r("update:keyWord",i)});return(i,l)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white text-sm",i.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":i.isOpen,"aria-haspopup":"listbox",onKeydown:l[10]||(l[10]=(...a)=>i.onControlKeydown&&i.onControlKeydown(...a)),onClick:l[11]||(l[11]=(...a)=>i.onControlClick&&i.onControlClick(...a)),"data-focus":i.isOpen||i.inputFocus?"true":"false",ref:i.setTriggerRef},[s.createElementVNode("div",kx,[i.isMulti?(s.openBlock(),s.createElementBlock("div",wx,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(i.selectedOptions,a=>(s.openBlock(),s.createElementBlock("div",{key:a.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[s.createElementVNode("div",xx,[i.shouldShowColorDot(a)?(s.openBlock(),s.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:s.normalizeStyle({backgroundColor:a?.color})},null,4)):s.createCommentVNode("",!0),!i.optionTemplate&&i.optionHasIcon(a)?(s.openBlock(),s.createElementBlock("span",{key:1,class:s.normalizeClass(i.iconWrapperClass),style:s.normalizeStyle(i.getIconColorStyle(a)),"aria-hidden":"true"},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.resolveOptionIcon(a)),{class:"w-full h-full",focusable:"false"}))],6)):s.createCommentVNode("",!0),s.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:i.getLabel(a)},[i.optionTemplate?(s.openBlock(),s.createElementBlock("div",{key:0,innerHTML:i.renderTemplate(a)},null,8,Cx)):(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[s.createTextVNode(s.toDisplayString(a.text),1)],64))],8,vx)]),s.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:s.withModifiers(c=>i.onRemoveSelected(a.id),["stop"])},[s.createVNode(s.unref(Y.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Sx)]))),128)),s.createElementVNode("div",Ex,[!i.disabled&&i.search?s.withDirectives((s.openBlock(),s.createElementBlock("input",{key:0,ref:i.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 py-0 px-2.5 text-sm text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:i.selectedIds.length?" ":i.placeholder,"onUpdate:modelValue":l[0]||(l[0]=a=>o.value=a),onFocus:l[1]||(l[1]=(...a)=>i.onInputFocus&&i.onInputFocus(...a)),onBlur:l[2]||(l[2]=(...a)=>i.onInputBlur&&i.onInputBlur(...a)),onKeydown:l[3]||(l[3]=(...a)=>i.onInputKeydown&&i.onInputKeydown(...a))},null,40,Mx)),[[s.vModelText,o.value]]):s.createCommentVNode("",!0)])])):!i.isMulti&&i.selectedOptionLabel&&o.value===""?(s.openBlock(),s.createElementBlock("div",{key:1,class:s.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",i.disabled||!i.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:i.selectedOptionLabel},[i.shouldShowColorDot(i.selectedOption)?(s.openBlock(),s.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:s.normalizeStyle({backgroundColor:i.selectedOption?.color})},null,4)):s.createCommentVNode("",!0),!i.optionTemplate&&i.optionHasIcon(i.selectedOption)?(s.openBlock(),s.createElementBlock("span",{key:1,class:s.normalizeClass(i.iconWrapperClass),style:s.normalizeStyle(i.getIconColorStyle(i.selectedOption)),"aria-hidden":"true"},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.resolveOptionIcon(i.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):s.createCommentVNode("",!0),i.optionTemplate?(s.openBlock(),s.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:i.renderTemplate(i.selectedOption)},null,8,_x)):(s.openBlock(),s.createElementBlock("span",Tx,s.toDisplayString(i.selectedOption?.text),1))],10,Ax)):s.createCommentVNode("",!0),!i.isMulti&&!i.disabled&&i.search?(s.openBlock(),s.createElementBlock("div",Bx,[s.withDirectives(s.createElementVNode("input",{ref:i.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 py-0 px-2.5 text-sm text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:i.selectedOptionLabel?" ":i.placeholder,"onUpdate:modelValue":l[4]||(l[4]=a=>o.value=a),onFocus:l[5]||(l[5]=(...a)=>i.onInputFocus&&i.onInputFocus(...a)),onBlur:l[6]||(l[6]=(...a)=>i.onInputBlur&&i.onInputBlur(...a)),onKeydown:l[7]||(l[7]=(...a)=>i.onInputKeydown&&i.onInputKeydown(...a))},null,40,Nx),[[s.vModelText,o.value]])])):!i.isMulti&&i.disabled&&(!i.selectedOptionLabel||o.value!=="")?(s.openBlock(),s.createElementBlock("div",Dx,s.toDisplayString(i.placeholder),1)):s.createCommentVNode("",!0)]),s.createElementVNode("div",Vx,[i.showClear?(s.openBlock(),s.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:i.disabled,onClick:l[8]||(l[8]=s.withModifiers((...a)=>i.onClearSelected&&i.onClearSelected(...a),["stop"]))},[s.createVNode(s.unref(Y.X),{class:"h-4 w-4"})],8,$x)):s.createCommentVNode("",!0),i.showClear?(s.openBlock(),s.createElementBlock("div",Lx)):s.createCommentVNode("",!0),s.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:i.disabled,onClick:l[9]||(l[9]=s.withModifiers((...a)=>i.onToggleSelect&&i.onToggleSelect(...a),["stop"])),title:i.isOpen?"Закрити список":"Відкрити список"},[s.createVNode(s.unref(Y.ChevronDown),{class:"h-4 w-4"})],8,Ix)])],42,bx))}}),Rx=["aria-disabled","onMousedown"],Fx={class:"leading-[19px]"},Px=["innerHTML"],zx={key:1,class:"px-3 py-2 text-center text-gray-500"},Hx=s.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(n){return(e,t)=>(s.openBlock(),s.createBlock(s.Teleport,{to:"body"},[e.isOpen?(s.openBlock(),s.createElementBlock("div",{key:0,ref:e.setDropdownRef,class:"fixed z-[3000] rounded bg-white text-sm shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:s.normalizeStyle(e.dropdownStyle),role:"listbox"},[s.createElementVNode("div",{class:"overflow-y-auto py-1",style:s.normalizeStyle({maxHeight:e.dropdownStyle.maxHeight||"300px"}),ref:e.setListRef},[e.filteredOptionsList.length?(s.openBlock(!0),s.createElementBlock(s.Fragment,{key:0},s.renderList(e.filteredOptionsList,(r,o)=>(s.openBlock(),s.createElementBlock("div",{key:r.id,ref_for:!0,ref:i=>e.setItemRef(i,o),class:s.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",e.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",e.selectedNavIndex===o&&!e.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":e.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:s.withModifiers(i=>e.onOptionClick(r),["prevent","stop"])},[e.shouldShowColorDot(r)?(s.openBlock(),s.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:s.normalizeStyle({backgroundColor:r?.color})},null,4)):s.createCommentVNode("",!0),!e.optionTemplate&&e.optionHasIcon(r)?(s.openBlock(),s.createElementBlock("span",{key:1,class:s.normalizeClass(e.iconWrapperClass),style:s.normalizeStyle(e.getIconColorStyle(r)),"aria-hidden":"true"},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(e.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):s.createCommentVNode("",!0),s.createElementVNode("div",Fx,[e.optionTemplate?(s.openBlock(),s.createElementBlock("div",{key:0,innerHTML:e.renderTemplate(r)},null,8,Px)):(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[s.createTextVNode(s.toDisplayString(r.text),1)],64))])],42,Rx))),128)):(s.openBlock(),s.createElementBlock("div",zx," No options "))],4)],4)):s.createCommentVNode("",!0)]))}}),jx={class:"flex justify-end items-center gap-x-2 py-3 px-4 border-t border-gray-200 w-full"},Ux=["onClick"],Wx=["disabled"],Kx="__autoMeta",of="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",Va=Be(s.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(n,{emit:e}){const t=n,r=e,o=s.computed(()=>t.multiple),i=s.computed(()=>t.disabled),l=s.computed(()=>t.search);Bt(t.style);const a=s.computed({get:()=>t.modelValue,set:q=>r("update:modelValue",q)});(a.value===null||a.value===void 0||a.value==="")&&t.defaultValue!=null&&(a.value=t.defaultValue);const c=s.ref(null),d=s.ref(null),u=s.ref(null),f=s.ref(null),p=s.ref(!1),h=s.ref(!1),m=s.ref(null),g=s.ref(-1),y=s.ref([]),b=s.ref(""),w=s.ref(null),v=q=>{d.value=q},S=q=>{w.value=q},N=q=>{f.value=q},F=q=>{u.value=q},T=(q,ie)=>{y.value[ie]=q},E=s.ref({}),_=s.ref([]),A=s.computed(()=>{if(!_.value.length)return[];const q=Ce.value,ie=new Map(q.map($=>[$.id?.toString(),$]));return _.value.map($=>ie.get($?.toString())).filter($=>!!$)}),I=s.computed(()=>t.placeholder||"Select..."),U=s.computed(()=>ce(m.value)),Z=s.computed(()=>i.value?!1:o.value?_.value.length>0:a.value!==null&&a.value!==void 0&&a.value!==""),V=q=>o.value?_.value.some(ie=>ie?.toString()===q?.toString()):a.value?.toString()===q?.toString(),z=s.computed(()=>{let q=Ce.value??[];if(!t.data&&b.value.trim()!==""){const ie=b.value.toLowerCase();q=q.filter($=>{const le=ce($).toLowerCase(),Pe=$.text?.toLowerCase?.()||"";return le.includes(ie)||Pe.includes(ie)})}if(o.value&&_.value.length){const ie=new Set(_.value.map($=>$?.toString()));q=q.filter($=>!ie.has($.id?.toString()))}return q}),oe=s.inject("values"),K=s.inject("field-props"),G=s.computed(()=>t.slot??t?.optionTemplate??""),X=q=>Ys(q,G.value),ce=q=>Xs(q,G.value),j=s.computed(()=>qs(G.value)),L=q=>Ao(q),O=q=>!!(!j.value&&Kn(q)&&!L(q)),ne=q=>{const ie=Kn(q);return ie?{color:ie}:void 0},ae=q=>!!(!j.value&&(Mo(q)||L(q))),re=(q,ie,$)=>{if(!K)return!1;const le=K.value?.[q]??{},Pe=(Ke,qe,Ut)=>{if(!qe.length)return Ke;const[Rt,...Wt]=qe,pt={...Ke};if(!Wt.length)return pt[Rt]=Ut,pt;const Jr=typeof Ke[Rt]=="object"&&Ke[Rt]!==null?Ke[Rt]:{};return pt[Rt]=Pe(Jr,Wt,Ut),pt},lt=Pe(le,ie,$);return K.value={...K.value||{},[q]:lt},!0},he=q=>{if(!K||!t.name)return;const ie=K.value?.[t.name]??{};K.value={...K.value||{},[t.name]:{...ie,[Kx]:q}}},Ae=q=>{if(!t.set)return;const ie=oe?.value;!ie&&!K||Object.entries(t.set).forEach(([$,le])=>{if(!$)return;const Pe=q?q[le]:null,lt=$.split(".").map(Ut=>Ut.trim()).filter(Boolean);if(!lt.length)return;const[Ke,...qe]=lt;qe.length&&re(Ke,qe,Pe??null)||ie&&(ie[Ke]=Pe??null)})},{optionsList:Ce,parentValue:$e,fetchOptions:it,fetchOptionByValue:Fe,loadOptions:Qe}=Js({props:t,formValues:oe,watchParent:!1}),We=q=>q==null?"":String(q),se=q=>{if(o.value){if(!_.value.length){Ce.value=q;return}}else if(!m.value){Ce.value=q;return}const ie=new Set(q.map(le=>We(le.id)).filter(Boolean));if(o.value){const le=new Set(_.value.map(lt=>We(lt)).filter(Boolean)),Pe=(Ce.value??[]).filter(lt=>{const Ke=We(lt.id);return!Ke||!le.has(Ke)?!1:!ie.has(Ke)});Ce.value=[...Pe,...q];return}const $=We(m.value?.id);if($&&!ie.has($)){Ce.value=[m.value,...q];return}Ce.value=q},me=s.ref(0),Ee=async q=>{const ie=++me.value,$=await it(q);return ie!==me.value?null:$},Me=async()=>{if(t.data){const q=await Ee(b.value);return q&&se(q),Ce.value}return Qe()},Ye=async q=>{if(q==null||q==="")return null;const ie=Ce.value?.find($=>$?.id?.toString()===String(q));return ie||Fe(q)},Ct=async q=>{const ie=new Set(Ce.value.map(le=>le.id?.toString())),$=q.filter(le=>!ie.has(le?.toString()));$.length&&await $.reduce(async(le,Pe)=>{await le;const lt=await Ye(Pe);lt&&Ce.value.push(lt)},Promise.resolve())},et=()=>{if(!z.value.length){g.value=-1;return}let q=0;if(!o.value&&m.value){const ie=m.value.id?.toString(),$=z.value.findIndex(le=>le.id?.toString()===ie);$>=0&&(q=$)}g.value=q,s.nextTick(()=>{H(y.value[q],u.value)})},Xe=async()=>{i.value||(p.value=!0,await s.nextTick(()=>{we()}),await Me(),await s.nextTick(()=>{we(),w.value?.focus()}),et())},ft=()=>{p.value=!1,g.value=-1,s.nextTick(()=>{w.value?.blur()})},Vt=async q=>{if(i.value)return;(q!==void 0?q:!p.value)?await Xe():ft()},W=async()=>{if(!i.value){if(p.value){ft();return}await Xe()}},ee=()=>{o.value?(_.value=[],a.value=[],r("change",[]),R(null,[])):(m.value=null,a.value=null,r("change",null),R(null,null)),Ae(null),he(null),b.value="",ft(),s.nextTick(()=>{w.value?.focus()})},ue=q=>{o.value&&(_.value=_.value.filter(ie=>ie?.toString()!==q?.toString()),a.value=[..._.value],r("change",a.value),R(null),s.nextTick(()=>w.value?.focus()))},R=(q,ie)=>{const $=ie??(o.value?[..._.value]:q?.id??null);r("value-selected",{name:t.name,value:$,option:q})},M=(q,ie="manual")=>{o.value?(V(q.id)||(_.value=[..._.value,q.id],a.value=[..._.value],r("change",a.value),R(q)),b.value="",s.nextTick(()=>{w.value?.focus(),g.value=Math.min(g.value,z.value.length-1)}),Ae(null)):(m.value=q,a.value=q.id,r("change",a.value),R(q),b.value="",ft(),Ae(q),ie==="parent-auto"&&he({source:ie,parentField:t.parent??null,parentValue:$e.value??null}))},D=q=>{if(V(q.id)){o.value||ft();return}M(q)},H=(q,ie)=>{if(!q||!ie)return;const $=q.offsetTop,le=$+q.offsetHeight,Pe=ie.scrollTop,lt=Pe+ie.clientHeight;let Ke=ie.scrollTop;$<Pe?Ke=$-80:le>lt&&(Ke=le-ie.clientHeight+4);const qe=ie;qe.scrollTop=Ke},te=q=>{let ie=q.parentElement;for(;ie;){if(ie.classList.contains("ui-dialog__content"))return ie;const $=window.getComputedStyle(ie),le=$.overflow+$.overflowY+$.overflowX;if(le.includes("auto")||le.includes("scroll")||ie===document.body||ie===document.documentElement)return ie;ie=ie.parentElement}return document.body},we=()=>{if(!d.value)return;const q=d.value.getBoundingClientRect(),ie=window.innerHeight||document.documentElement.clientHeight,$=window.innerWidth||document.documentElement.clientWidth,le=8,Pe=8,lt=t.maxHeight||300,Ke=ie-q.bottom-Pe-le,qe=q.top-Pe-le,Ut=Ke>=qe,Rt=Math.max($-le*2,0);let{width:Wt}=q;Rt>0&&Wt>Rt&&(Wt=Rt);let{left:pt}=q;pt+Wt+le>$&&(pt=$-Wt-le),pt=Math.max(pt,le);const Jr=Math.min(lt,Math.max(Ut?Ke:qe,50));E.value={position:"fixed",left:`${pt}px`,width:`${Wt}px`,maxHeight:`${Jr}px`,transform:Ut?"none":"translateY(-100%)",top:Ut?`${q.bottom+Pe}px`:`${q.top-Pe}px`}},tt=async q=>{i.value||!p.value&&(q.key==="ArrowDown"||q.key==="ArrowUp")&&(q.preventDefault(),await Xe())},Re=q=>{if(!p.value)return;const{key:ie}=q;if(ie==="ArrowDown")q.preventDefault(),g.value+1<z.value.length&&(g.value+=1,H(y.value[g.value],u.value));else if(ie==="ArrowUp")q.preventDefault(),g.value>0&&(g.value-=1,H(y.value[g.value],u.value));else if(ie==="Enter"){q.preventDefault();const $=z.value[g.value];$&&M($),w.value?.blur()}else ie==="Escape"?(q.preventDefault(),ft()):ie==="Backspace"?o.value&&b.value===""&&_.value.length&&(_.value=_.value.slice(0,-1),a.value=[..._.value],r("change",a.value)):ie==="Home"?(g.value=0,H(y.value[0],u.value)):ie==="End"?(g.value=z.value.length-1,H(y.value[g.value],u.value)):ie==="Tab"&&ft()},St=()=>{i.value||(h.value=!0)},cn=()=>{h.value=!1,b.value=""},tn=q=>{q.key==="Escape"&&p.value&&ft()},Le=q=>{const ie=q.target;c.value?.contains(ie)||f.value?.contains(ie)||ft()},$t=q=>{p.value&&u.value&&!u.value.contains(q.target)&&we()},xo=()=>{p.value&&we()},mr=()=>{p.value&&we()};async function vo(){if(o.value)Array.isArray(a.value)?_.value=[...a.value]:(_.value=a.value==null?[]:[a.value],a.value=[..._.value]),t.data&&_.value.length&&(await Ct(_.value),await s.nextTick());else{if(Array.isArray(a.value)){const q=a.value[0]??null;a.value=q??null}a.value!=null&&a.value!==""?m.value=await Ye(a.value):m.value=null,Ae(m.value??null)}}s.watch(a,()=>{vo()}),s.onMounted(async()=>{if(addEventListener("keydown",tn),addEventListener("scroll",$t,!0),addEventListener("resize",xo),document.addEventListener("click",Le,!0),d.value&&te(d.value).addEventListener("scroll",mr,!0),t.options?.length&&!t.data)Ce.value=[...t.options];else if(t.data){const q=await Ee("");q&&se(q)}await vo(),Fs.value=!1}),s.onUnmounted(()=>{removeEventListener("keydown",tn),removeEventListener("scroll",$t,!0),removeEventListener("resize",xo),document.removeEventListener("click",Le,!0),d.value&&te(d.value).removeEventListener("scroll",mr,!0)});const{isOpenAdd:qr,addData:Is,addSchema:Gr,addForm:Sn,addTitle:ia,addOption:la,onAddValue:Os}=rf({props:t,fetchOptionByValue:Fe,optionsList:Ce,selectedOption:m,modelValue:a});function Rs(q,ie=200){let $;return(...le)=>{$&&clearTimeout($),$=window.setTimeout(()=>q(...le),ie)}}const pu=Rs(async q=>{const ie=await Ee(q);ie&&se(ie)},200);s.watch(b,q=>{t.data&&pu(q.trim())}),s.watch(()=>t.options,q=>{!t.data&&q?.length&&(Ce.value=[...q],vo())},{immediate:!0});const Fs=s.ref(!0);return s.watch($e,async()=>{if(t.data&&(Fs.value||(o.value?(_.value=[],a.value=[],r("change",[])):(m.value=null,a.value=null,r("change",null))),await Me(),t.auto===1&&$e.value&&Ce.value.length>0)){const q=Ce.value[0];q&&M(q,"parent-auto")}}),(q,ie)=>(s.openBlock(),s.createElementBlock(s.Fragment,null,[s.createVNode(s.unref(ke.VsModal),{visible:s.unref(qr),"onUpdate:visible":ie[2]||(ie[2]=$=>s.isRef(qr)?qr.value=$:null),class:"z-[1000]",title:s.unref(ia),teleport:q.teleport},{footer:s.withCtx(({handleClose:$})=>[s.createElementVNode("div",jx,[s.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:$}," Скасувати ",8,Ux),s.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:ie[1]||(ie[1]=(...le)=>s.unref(la)&&s.unref(la)(...le))}," Додати ")])]),default:s.withCtx(()=>[s.createVNode(Pt,{schema:s.unref(Gr),modelValue:s.unref(Is),"onUpdate:modelValue":ie[0]||(ie[0]=$=>s.isRef(Is)?Is.value=$:null),ref_key:"addForm",ref:Sn,"allow-id-field":""},null,8,["schema","modelValue"])]),_:1},8,["visible","title","teleport"]),s.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:ie[5]||(ie[5]=s.withModifiers(()=>{},["stop"]))},[s.createElementVNode("div",{class:s.normalizeClass(["relative w-full font-sans",t.customClass])},[ie[6]||(ie[6]=s.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),ie[7]||(ie[7]=s.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),s.createVNode(Ox,{keyWord:b.value,"onUpdate:keyWord":ie[3]||(ie[3]=$=>b.value=$),disabled:i.value,"is-open":p.value,"input-focus":h.value,"is-multi":o.value,"selected-options":A.value,"selected-ids":_.value,placeholder:I.value,search:l.value,"option-template":G.value,"icon-wrapper-class":of,"selected-option-label":U.value,"selected-option":m.value,"show-clear":Z.value,"set-trigger-ref":v,"set-input-ref":S,"should-show-color-dot":O,"option-has-icon":ae,"get-icon-color-style":ne,"resolve-option-icon":L,"render-template":X,"get-label":ce,"on-control-keydown":tt,"on-control-click":W,"on-input-focus":St,"on-input-blur":cn,"on-input-keydown":Re,"on-remove-selected":ue,"on-clear-selected":ee,"on-toggle-select":Vt},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"]),s.createVNode(Hx,{"is-open":p.value,"dropdown-style":E.value,"filtered-options-list":z.value,"selected-nav-index":g.value,"option-template":G.value,"icon-wrapper-class":of,"set-dropdown-ref":N,"set-list-ref":F,"set-item-ref":T,"is-selected":V,"on-option-click":D,"should-show-color-dot":O,"option-has-icon":ae,"get-icon-color-style":ne,"resolve-option-icon":L,"render-template":X},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),t.add?(s.openBlock(),s.createElementBlock("button",{key:0,onClick:ie[4]||(ie[4]=(...$)=>s.unref(Os)&&s.unref(Os)(...$)),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:i.value,type:"button"},[s.createVNode(s.unref(Y.Plus),{class:"h-4 w-4"}),ie[8]||(ie[8]=s.createElementVNode("span",null,"Додати",-1))],8,Wx)):s.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-29653ef8"]]),$a=(n="")=>`${n}${Math.floor(Math.random()*1e4)}`,qx=["disabled","aria-expanded"],Gx={class:"truncate"},Jx={class:"py-2 px-4"},Yx={class:"block font-medium text-[13px] text-foreground"},Xx={class:"truncate"},Zx={class:"p-1 border-t border-gray-200"},Qx={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"},ev=["onClick"],tv=["checked"],nv={class:"shrink-0 size-3.5 flex justify-center items-center"},rv={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},ov={class:"truncate"},sv={key:0,class:"px-3 py-2 text-xs text-stone-500"},li=s.defineComponent({__name:"vs-input-inline-select",props:{multiple:{type:Boolean},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(n,{emit:e}){const t=n,r=e;Bt(t.style);const o=s.computed({get:()=>Array.isArray(t.modelValue)?t.modelValue[0]??null:t.modelValue??null,set:re=>r("update:modelValue",re)});o.value==null&&t.defaultValue!=null&&(o.value=t.defaultValue);const i=s.inject("values"),l=s.inject("field-props"),a=s.computed(()=>!!t.disabled),c=s.ref(null),d=s.ref(!1),u=s.ref(null),f=s.ref(null),p=s.ref(null),h=s.ref({}),m=`vs-input-inline-select-${$a()}`,g=s.computed(()=>t.placeholder||"Оберіть значення"),y=s.computed(()=>N(c.value)||t.placeholder||"Оберіть значення"),b=s.computed(()=>t.slot??""),w=s.computed(()=>qs(b.value)),v=s.computed(()=>t.teleport||"body"),S=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,N=re=>Xs(re,b.value),F=re=>!!(!w.value&&Kn(re)),T=s.computed(()=>{const re=Kn(c.value).trim();return re?S.test(re)?`bg-[${re}] border-[${re}]`:`bg-${re.toLowerCase()}-500 border-${re.toLowerCase()}-500`:""}),{optionsList:E,parentValue:_,fetchOptions:A,fetchOptionByValue:I,loadOptions:U}=Js({props:t,formValues:i,watchParent:!1}),Z=(re,he,Ae)=>{if(!l)return!1;const Ce=l.value?.[re]??{},$e=(Fe,Qe,We)=>{if(!Qe.length)return Fe;const[se,...me]=Qe,Ee={...Fe};if(!me.length)return Ee[se]=We,Ee;const Me=typeof Fe[se]=="object"&&Fe[se]!==null?Fe[se]:{};return Ee[se]=$e(Me,me,We),Ee},it=$e(Ce,he,Ae);return l.value={...l.value||{},[re]:it},!0},V=re=>{if(!t.set)return;const he=i?.value;!he&&!l||Object.entries(t.set).forEach(([Ae,Ce])=>{if(!Ae)return;const $e=re?re[Ce]:null,it=Ae.split(".").map(We=>We.trim()).filter(Boolean);if(!it.length)return;const[Fe,...Qe]=it;Qe.length&&Z(Fe,Qe,$e??null)||he&&(he[Fe]=$e??null)})},z=re=>o.value?.toString?.()===re?.toString?.(),oe=()=>{if(!f.value||typeof window>"u")return;const re=f.value.getBoundingClientRect(),he=8,Ae=8,Ce=window.innerHeight||document.documentElement.clientHeight,$e=window.innerWidth||document.documentElement.clientWidth,it=p.value?.offsetHeight||260,Fe=Math.max(re.width,176),Qe=Math.max($e-he*2,120),We=Math.min(Fe,Qe);let se=re.left;se+We+he>$e&&(se=$e-We-he),se=Math.max(se,he);const me=Ce-re.bottom-Ae-he,Ee=re.top-Ae-he,Me=me<Math.min(it,260)&&Ee>me,Ye=Math.max(120,Math.min(320,Me?Ee:me));h.value={position:"fixed",left:`${se}px`,top:Me?`${re.top-Ae}px`:`${re.bottom+Ae}px`,transform:Me?"translateY(-100%)":"none",width:`${We}px`,maxHeight:`${Ye}px`}},K=async()=>{if(t.data){E.value=await A("");return}await U()},G=async()=>{if(o.value==null||o.value===""){c.value=null,V(null);return}const re=E.value.find(he=>he.id?.toString()===String(o.value));if(re){c.value=re,V(re);return}c.value=await I(o.value),V(c.value??null)},X=async()=>{a.value||(d.value=!0,await s.nextTick(),oe(),await K(),await s.nextTick(),oe())},ce=()=>{d.value=!1},j=async()=>{if(d.value){ce();return}await X()},L=re=>{r("value-selected",{name:t.name,value:re?.id??null,option:re})},O=re=>{c.value=re,o.value=re.id,r("change",re.id),L(re),V(re),ce()},ne=re=>{const he=re.target;u.value?.contains(he)||p.value?.contains(he)||ce()},ae=()=>{d.value&&oe()};return s.watch(()=>t.options,re=>{t.data||(E.value=re?[...re]:[],G())},{immediate:!0,deep:!0}),s.watch(o,()=>{G()}),s.watch(_,async()=>{t.data&&(await K(),c.value&&!E.value.some(re=>re.id?.toString()===c.value?.id?.toString())&&(c.value=null,o.value=null,r("change",null),L(null),V(null)))}),s.onMounted(async()=>{document.addEventListener("click",ne,!0),window.addEventListener("resize",ae),window.addEventListener("scroll",ae,!0),await K(),await G()}),s.onUnmounted(()=>{document.removeEventListener("click",ne,!0),window.removeEventListener("resize",ae),window.removeEventListener("scroll",ae,!0)}),(re,he)=>(s.openBlock(),s.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:u,onClick:he[0]||(he[0]=s.withModifiers(()=>{},["stop"]))},[s.createElementVNode("button",{ref_key:"triggerRef",ref:f,type:"button",disabled:a.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:s.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",T.value?`${T.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:j},[s.createElementVNode("span",Gx,s.toDisplayString(y.value),1)],10,qx),(s.openBlock(),s.createBlock(s.Teleport,{to:v.value},[d.value?(s.openBlock(),s.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:s.normalizeStyle(h.value),role:"menu","aria-orientation":"vertical"},[s.createElementVNode("div",Jx,[s.createElementVNode("span",Yx,[s.createElementVNode("span",Xx,s.toDisplayString(g.value),1)])]),s.createElementVNode("div",Zx,[s.createElementVNode("div",Qx,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(E),Ae=>(s.openBlock(),s.createElementBlock("label",{key:Ae.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:s.withModifiers(Ce=>O(Ae),["prevent"])},[s.createElementVNode("input",{type:"radio",class:"hidden",name:m,checked:z(Ae.id),tabindex:"-1"},null,8,tv),s.createElementVNode("span",nv,[F(Ae)?(s.openBlock(),s.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:s.normalizeStyle({backgroundColor:Ae.color})},null,4)):(s.openBlock(),s.createElementBlock("span",rv))]),s.createElementVNode("span",ov,s.toDisplayString(N(Ae)),1),s.createVNode(s.unref(Y.Check),{class:s.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",z(Ae.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,ev))),128))]),s.unref(E).length?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("p",sv,"Немає варіантів"))])],4)):s.createCommentVNode("",!0)],8,["to"]))],512))}}),iv=["placeholder","disabled"],sf=s.defineComponent({__name:"vs-input-textarea",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useModel(n,"modelValue"),o=s.computed(()=>!!e.disabled),i=s.computed(()=>e.placeholder??"");function l(){typeof r.value=="string"&&(r.value=r.value.trim())}return(a,c)=>s.withDirectives((s.openBlock(),s.createElementBlock("textarea",{"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),placeholder:i.value,disabled:o.value,row:"2",onBlur:l,class:s.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[s.unref(t)]]),style:{border:"1px solid #CFD9E0"}},null,42,iv)),[[s.vModelText,r.value]])}}),lf=s.defineComponent({__name:"vs-input-richtext",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},format:{default:"html"},richtextProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=s.defineAsyncComponent(()=>Promise.resolve().then(()=>$T)),t=n,r=s.useModel(n,"modelValue"),o=s.computed(()=>!!t.disabled),i=s.computed(()=>t.placeholder??""),l=s.computed(()=>({height:t.richtextProps.height||"300px",format:t.format,...t.richtextProps}));return(a,c)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["!h-full overflow-hidden rounded-md border border-solid border-stone-200 disabled:opacity-50 disabled:cursor-not-allowed",a.customClass]),style:s.normalizeStyle(o.value?{pointerEvents:"none",opacity:.6}:{})},[s.createVNode(s.unref(e),s.mergeProps({modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),placeholder:i.value},l.value),null,16,["modelValue","placeholder"])],6))}}),lv={},av={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function cv(n,e){return s.openBlock(),s.createElementBlock("svg",av,e[0]||(e[0]=[s.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 dv=Be(lv,[["render",cv]]),uv={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},fv={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"},pv={key:0,class:"relative flex-1 min-w-0"},hv={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},mv={class:"w-full overflow-x-auto"},gv={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},yv={class:"bg-gray-50"},bv={class:"border-b border-gray-200"},kv={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},wv=["onClick"],xv={key:0,class:"text-gray-400"},vv={key:0,colspan:"100%",class:"text-center"},Cv={class:"w-full"},Sv={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Ev=["data-row-index","onDragstart","onDragover","onDrop"],Mv=["onPointerdown"],Av={class:"flex items-center justify-center"},_v=["innerHTML"],Tv={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Bv={key:0},Nv=["src"],Dv={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Vv={key:1,class:"flex items-center justify-center"},$v=["innerHTML"],Lv={key:3,class:"text-sm font-medium text-gray-900"},Iv={class:"px-4 py-3 text-right whitespace-nowrap"},Ov={class:"flex items-center justify-end gap-2"},Rv=["onClick"],Fv=["onClick"],Pv={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},af=Be(s.defineComponent({__name:"vs-input-datatable",props:s.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useSlots(),r=s.inject("values",null),o=s.inject("form-root-values",null),i=W=>e.actions===void 0?!0:e.actions.includes(W),l=["search","import","export","add"],a=s.computed(()=>l.some(W=>i(W))),c=s.useModel(n,"modelValue"),d=s.ref({}),u=s.ref(""),f=s.ref(null),p=s.ref("asc"),h=s.computed(()=>{const W=c.value??[],ee=u.value?W.filter(M=>m.value?.some(D=>{const H=D.key||D.name;if(!H)return!1;const te=M[H];return te?Array.isArray(te)?te.join(", ").toLowerCase().includes(u.value.toLowerCase()):String(te).toLowerCase().includes(u.value.toLowerCase()):!1})):W;if(!f.value)return ee;const ue=f.value,R=[...ee].sort((M,D)=>{const H=Fe(M?.[ue]),te=Fe(D?.[ue]);return typeof H=="number"&&typeof te=="number"?H-te:String(H).localeCompare(String(te))});return p.value==="asc"?R:R.reverse()}),m=s.computed(()=>(e.colModel??[]).filter(W=>!W.tableHidden)),g=s.ref(null),y=s.ref(null),b=s.ref(null);function w(W){return W.pointerType==="touch"||W.pointerType==="pen"}function v(W,ee){const R=document.elementFromPoint(W,ee)?.closest?.("[data-row-index]")??null;if(!R)return null;const M=R.getAttribute("data-row-index");if(M==null)return null;const D=Number.parseInt(M,10);return Number.isNaN(D)?null:D}function S(W,ee){w(W)&&(W.preventDefault(),W.currentTarget.setPointerCapture(W.pointerId),g.value=ee,y.value=ee)}function N(W){if(g.value===null||!w(W))return;W.preventDefault();const ee=v(W.clientX,W.clientY);ee!==null&&(y.value=ee)}function F(W){if(g.value===null||!w(W))return;W.preventDefault();const ee=v(W.clientX,W.clientY);A(ee??g.value);try{W.currentTarget.releasePointerCapture(W.pointerId)}catch{}}function T(W){if(w(W)){g.value=null,y.value=null;try{W.currentTarget.releasePointerCapture(W.pointerId)}catch{}}}const E=W=>{g.value=W},_=W=>{y.value=W},A=W=>{if(g.value===null||g.value===W){g.value=null,y.value=null;return}const ee=[...c.value],[ue]=ee.splice(g.value,1);ee.splice(W,0,ue),c.value=ee,g.value=null,y.value=null},I=()=>{b.value&&b.value.click()},U=W=>{const ee=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],ue=W.toLowerCase();return ee.some(R=>ue.endsWith(R))},Z=W=>{const ue=W.target.files?.[0];if(!ue)return;const R=new FileReader;R.onload=M=>{try{const D=M.target?.result;if(typeof D=="string"){const H=JSON.parse(D);Array.isArray(H)&&c.value.push(...H)}}catch(D){console.error("Error parsing file:",D)}},R.readAsText(ue)},V=()=>{const W=JSON.stringify(c.value,null,2),ee=new Blob([W],{type:"application/json"}),ue=URL.createObjectURL(ee),R=document.createElement("a");R.href=ue,R.download="data.json",R.click(),URL.revokeObjectURL(ue)},z=new Set(["autocomplete","select","radio","checkbox","combobox"]),oe=new Map,K=(W,ee)=>{const ue=`/api/suggest/${W}`,R=ue.includes("?")?"&":"?",M=ee?`&val=${ee}`:"";return`${ue}${R}${M}`},G=W=>W==null||W===""?null:typeof W=="object"?W?.id!==void 0&&W.id!==null&&W.id!==""?W.id:null:W,X=W=>{const ee=new Set;return Array.isArray(c.value)&&c.value.forEach(ue=>{const R=ue?.[W];if(R==null||R==="")return;if(Array.isArray(R)){R.forEach(D=>{const H=G(D);H!==null&&ee.add(H)});return}const M=G(R);M!==null&&ee.add(M)}),ee},ce=async()=>{if(!e.colModel?.length)return;const W=e.colModel.filter(ee=>ee.data&&z.has(ee.type?.toLowerCase()||""));W.length&&await Promise.all(W.map(async ee=>{const ue=ee.key||ee.name;if(!ue)return;const R=X(ue),M=Array.from(R).map(te=>String(te)).sort(),D=M.join(",");if(!M.length||oe.get(ue)===D)return;oe.set(ue,D);const H=M.map(encodeURIComponent).join(",");try{const we=await(await fetch(K(ee.data,H))).json();d.value[ue]=we?.data??we}catch(te){console.error("Failed to fetch column values",te)}}))};s.watch([()=>e.colModel,()=>c.value],()=>{ce()},{immediate:!0,deep:!0});const j=s.ref(""),L=s.ref(!1);let O="edit",ne=0;const ae=W=>(W?.format||W?.type||"").toString().toLowerCase(),re=s.computed(()=>(e.colModel?.filter(ee=>ae(ee)!=="slot")??[]).map(ee=>{const ue=ee.key||ee.name;return ue?{...ee,name:ue,key:ue}:ee})),he=s.ref({}),Ae=s.ref({}),Ce=W=>typeof W!="string"?!1:!!t[W],$e=(W,ee)=>ee?ee.split(".").reduce((ue,R)=>ue==null?ue:ue[R.trim()],W):W,it=(W,ee)=>typeof W!="string"?"":W.replace(/{{\s*([^}]+)\s*}}/g,(ue,R)=>{const M=$e(ee,R.trim());return M??""}),Fe=W=>{if(W==null||W==="")return"";if(typeof W=="number")return W;if(typeof W=="boolean")return W?1:0;if(typeof W=="string")return W.toLowerCase();if(Array.isArray(W))return W.map(ee=>Fe(ee)).join(", ");if(typeof W=="object"){if(W.text!==void 0)return String(W.text).toLowerCase();if(W.label!==void 0)return String(W.label).toLowerCase();if(W.id!==void 0)return String(W.id).toLowerCase()}return String(W).toLowerCase()},Qe=W=>{const ee=W.key||W.name;if(ee){if(f.value===ee){p.value=p.value==="asc"?"desc":"asc";return}f.value=ee,p.value="asc"}};async function We(){j.value="Додати",L.value=!0,O="add",he.value=Ye({})}function se(W,ee){if(!W?.length)return null;const ue=typeof ee=="object"?ee?.id:ee;if(ue==null||ue==="")return null;const R=W.find(M=>M?.id?.toString()===ue.toString());return R?R.text??R.label??null:null}function me(W){return W==null||W===""?"-":Array.isArray(W)?W.map(ee=>typeof ee=="object"?ee?.text??ee?.label??ee?.id??"-":ee).join(", "):typeof W=="object"?W?.text??W?.label??W?.id??"-":W}function Ee(W){const ee=W.key||W.name,ue=ee?d.value[ee]:null;return Array.isArray(ue)&&ue.length?ue:Array.isArray(W?.options)&&W.options.length?W.options:null}function Me(W,ee){const ue=ee.key||ee.name,R=W?.[ue],M=Ee(ee);if(R==null||R==="")return"-";if(Array.isArray(R)){const H=R.map(te=>se(M,te)).filter(Boolean);return H.length?H.join(", "):me(R)}const D=se(M,R);return D||me(R)}function Ye(W){const ee=r?.value?.content_id??o?.value?.id??o?.value?.content_id??r?.value?.id??null;return{...W,content_id:ee}}function Ct(W){if(!W||typeof W!="object")return W;const{content_id:ee,...ue}=W;return ue}async function et(W,ee){j.value="Редагувати",L.value=!0,O="edit",ne=ee,he.value=Ye({...W})}function Xe(){const W=Ae.value.validate();if(W){ke.notify({type:"warning",title:"Помилка валідації",message:Object.entries(W).map(([ue,R])=>`${ue}: ${R}`).join(`
1
+ (function(Se,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("vue"),require("@opengis/core"),require("lucide-vue-next")):typeof define=="function"&&define.amd?define(["exports","vue","@opengis/core","lucide-vue-next"],s):(Se=typeof globalThis<"u"?globalThis:Se||self,s(Se.FormBuilder={},Se.Vue,Se.OpenGISCore,Se.lucide))})(this,(function(Se,s,ke,Y){"use strict";function Ws(n,e,t){if(!Array.isArray(t)||!t.length)return null;const r=String(n?.preset??n?.renderer??"").trim().toLowerCase();if(r){const o=t.find(i=>String(i.id).trim().toLowerCase()===r);if(o)return o}return t.find(o=>typeof o.match=="function"&&o.match(n,e))??null}function Bu(n,e,t){return!!Ws(n,e,t)}const Ks=6,An=8,Nu=s.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(n){const e=n,t=s.ref(!1),r=s.ref(null),o=s.ref(null),i=s.ref({top:"0px",left:"0px",visibility:"hidden"});let l=null;const a=()=>typeof window<"u";function c(m,g){if(!a())return null;const y=window.innerWidth,b=window.innerHeight,{top:w,bottom:v,left:S,right:N}=m,{width:F,height:T}=g,E=b-v-Ks-An,_=w-Ks-An;let I=E>=T||E>=_?v+Ks:w-Ks-T,U=S;return U+F>y-An&&(U=N-F),U<An&&(U=An),U+F>y-An&&(U=y-An-F),I=Math.max(An,Math.min(I,b-An-T)),{top:I,left:U}}function d(){if(!a())return;const m=r.value,g=o.value;if(!m||!g)return;const y=m.getBoundingClientRect(),b=g.getBoundingClientRect(),w=c(y,b);if(!w)return;const{top:v,left:S}=w;i.value={top:`${Math.round(v)}px`,left:`${Math.round(S)}px`,visibility:"visible"}}function u(){a()&&(l!==null&&cancelAnimationFrame(l),l=requestAnimationFrame(()=>{d(),l=null}))}async function f(){!e.text||!a()||(i.value={top:"0px",left:"0px",visibility:"hidden"},t.value=!0,await s.nextTick(),u())}function p(){t.value=!1,i.value={top:"0px",left:"0px",visibility:"hidden"}}function h(){t.value&&u()}return s.onMounted(()=>{window.addEventListener("scroll",h,!0),window.addEventListener("resize",h)}),s.onBeforeUnmount(()=>{l!==null&&(cancelAnimationFrame(l),l=null),window.removeEventListener("scroll",h,!0),window.removeEventListener("resize",h)}),(m,g)=>(s.openBlock(),s.createElementBlock(s.Fragment,null,[s.createElementVNode("span",{ref_key:"triggerRef",ref:r,class:"inline-flex items-center",onMouseenter:f,onMouseleave:p},[s.renderSlot(m.$slots,"default",{},()=>[s.createVNode(s.unref(Y.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],544),(s.openBlock(),s.createBlock(s.Teleport,{to:"body"},[t.value&&m.text?(s.openBlock(),s.createElementBlock("div",{key:0,ref_key:"tooltipRef",ref:o,style:s.normalizeStyle(i.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none",role:"tooltip"},s.toDisplayString(m.text),5)):s.createCommentVNode("",!0)]))],64))}}),ha={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"}}},ma={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:"Скасувати"}}},gb={class:"w-full relative"},yb={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},bb={class:"opacity-100"},kb={key:0,class:"text-red-500 text-[14px]"},wb={key:2,class:"text-[11px] text-slate-500 font-normal"},xb={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},vb=s.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(n){const e=n,t=s.computed(()=>typeof e.item?.label=="string"&&e.item.label?e.item.label:e.item?.ua||e.label||e.ua),r=s.computed(()=>!!t.value),o=s.computed(()=>!!e.item?.rules?.includes("required")),i=s.computed(()=>e.item?.info||""),l=s.inject("schema-by-name"),a={en:ha?.form?.autofillFrom,uk:ma?.form?.autofillFrom},c=s.computed(()=>{const d=e.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const u=String(e.item?.__locale||"uk"),f=String(d.parentField),p=l?.value?.[f],h=p?.[`label:${u}`]||(u!=="uk"?p?.[u]:void 0)||p?.label||p?.ua||p?.en||f;return`${a[u]||a.uk}: ${h}`});return(d,u)=>(s.openBlock(),s.createElementBlock("div",gb,[r.value?(s.openBlock(),s.createElementBlock("div",yb,[s.createElementVNode("span",bb,s.toDisplayString(t.value),1),o.value?(s.openBlock(),s.createElementBlock("span",kb,"*")):s.createCommentVNode("",!0),i.value?(s.openBlock(),s.createBlock(Nu,{key:1,text:i.value},null,8,["text"])):s.createCommentVNode("",!0),c.value?(s.openBlock(),s.createElementBlock("span",wb," ("+s.toDisplayString(c.value)+") ",1)):s.createCommentVNode("",!0)])):s.createCommentVNode("",!0),s.renderSlot(d.$slots,"default",s.mergeProps(d.$attrs,{class:{"opacity-60":d.item.disabled}})),d.error?(s.openBlock(),s.createElementBlock("span",xb,s.toDisplayString(d.error),1)):s.createCommentVNode("",!0)]))}}),Cb={class:"w-full relative flex flex-row items-center gap-2"},Sb={key:0,class:"text-red-500 text-[14px]"},Eb={key:2,class:"text-[11px] text-slate-500 font-normal"},Mb={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Ab=s.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(n){const e=n,t=s.computed(()=>e.item?.label||e.label||e.ua),r=s.computed(()=>e.item?.info||""),o=s.inject("schema-by-name"),i={en:ha?.form?.autofillFrom,uk:ma?.form?.autofillFrom},l=s.computed(()=>{const p=e.item?.__autoMeta;if(!p||p?.source!=="parent-auto"||!p?.parentField)return"";const h=String(e.item?.__locale||"uk"),m=String(p.parentField),g=o?.value?.[m],y=g?.[`label:${h}`]||(h!=="uk"?g?.[h]:void 0)||g?.label||g?.ua||g?.en||m;return`${i[h]||i.uk}: ${y}`}),a=s.computed(()=>e.columns??{container:12,label:3}),c=s.computed(()=>{const{container:p,label:h}=a.value;return!p||p<=0?0:Math.min(Math.max(h??0,0),p)/p}),d=s.computed(()=>e.item?.type==="html"||c.value<=0?!1:!!t.value),u=s.computed(()=>{if(!d.value)return{};const p=`${c.value*100}%`;return{flexBasis:p,maxWidth:p}}),f=s.computed(()=>{const{container:p,label:h}=a.value;if(!p||p<=0)return{};if(e.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const m=Math.max(p-Math.max(h??0,0),0)/p;if(!m)return{};const g=`${m*100}%`;return{flexBasis:g,maxWidth:g}});return(p,h)=>(s.openBlock(),s.createElementBlock("div",Cb,[d.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:s.normalizeStyle(u.value)},[s.createTextVNode(s.toDisplayString(t.value)+" ",1),p.item?.rules?.includes("required")&&t.value?(s.openBlock(),s.createElementBlock("span",Sb,"*")):s.createCommentVNode("",!0),r.value?(s.openBlock(),s.createBlock(Nu,{key:1,text:r.value},null,8,["text"])):s.createCommentVNode("",!0),l.value?(s.openBlock(),s.createElementBlock("span",Eb," ("+s.toDisplayString(l.value)+") ",1)):s.createCommentVNode("",!0)],4)):s.createCommentVNode("",!0),s.createElementVNode("div",{class:"flex-1 min-w-0",style:s.normalizeStyle(f.value)},[s.renderSlot(p.$slots,"default",s.normalizeProps(s.guardReactiveProps(p.$attrs)))],4),p.error?(s.openBlock(),s.createElementBlock("span",Mb,s.toDisplayString(p.error),1)):s.createCommentVNode("",!0)]))}}),_b={class:"w-full relative"},Tb={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Bb=s.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(n){return(e,t)=>(s.openBlock(),s.createElementBlock("div",_b,[s.renderSlot(e.$slots,"default",s.normalizeProps(s.guardReactiveProps(e.$attrs))),e.error?(s.openBlock(),s.createElementBlock("span",Tb,s.toDisplayString(e.error),1)):s.createCommentVNode("",!0)]))}}),Nb={class:"flex-1 min-w-0"},Db={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},Vb={class:"truncate"},$b={key:0,class:"text-red-500 text-[14px]"},Lb=["innerHTML"],Ib={key:0,class:"mt-1 text-xs text-red-500"},Ob={default:vb,horizontal:Ab,inline:Bb,settings:s.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(n){const e=n,t=s.ref("uk");s.computed(()=>(e.item??{})?.[t.value]??e.ua??e.label??"");const r=s.computed(()=>e.item?.description??""),o=s.computed(()=>Array.isArray(e.item?.rules)&&e.item.rules.includes("required")),i=s.computed(()=>(typeof e.error=="string"?e.error:"")??""),l=()=>{const a=typeof localStorage<"u"?localStorage.getItem("locale"):null;t.value=a||"uk"};return s.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(t.value=localStorage.locale)}catch{}window.addEventListener("storage",l)}),s.onUnmounted(()=>{window.removeEventListener("storage",l)}),(a,c)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["w-full relative",{"opacity-60":a.item?.disabled}])},[s.createElementVNode("div",{class:s.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(a.item.type)?"flex flex-col":""]])},[s.createElementVNode("div",Nb,[a.ua||a.label?(s.openBlock(),s.createElementBlock("p",Db,[s.createElementVNode("span",Vb,s.toDisplayString(a.item[t.value]||a.ua||a.label),1),o.value?(s.openBlock(),s.createElementBlock("span",$b,"*")):s.createCommentVNode("",!0)])):s.createCommentVNode("",!0),r.value?(s.openBlock(),s.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:r.value},null,8,Lb)):s.createCommentVNode("",!0)]),s.createElementVNode("div",{class:s.normalizeClass(["w-full",["select","native-select"].includes(a.item.type)?"md:w-[30%]":"md:w-auto"])},[s.renderSlot(a.$slots,"default",s.normalizeProps(s.guardReactiveProps(a.$attrs)))],2)],2),i.value?(s.openBlock(),s.createElementBlock("p",Ib,s.toDisplayString(i.value),1)):s.createCommentVNode("",!0)],2))}})};function Bt(n){return{inputClass:s.computed(()=>{const t=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${n?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return n?.size==="sm"?`${t}h-[32px]`:`${t}h-[38px]`})}}const Rb=["placeholder","disabled"],Fb=s.defineComponent({__name:"vs-input-password",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useModel(n,"modelValue"),o=s.computed(()=>!!e.disabled),i=s.computed(()=>e.placeholder??"");return(l,a)=>s.withDirectives((s.openBlock(),s.createElementBlock("input",{type:"password","onUpdate:modelValue":a[0]||(a[0]=c=>r.value=c),placeholder:i.value,disabled:o.value,class:s.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[s.unref(t),{"!border-red-600":l.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Rb)),[[s.vModelText,r.value]])}}),Pb=["placeholder","disabled","maxlength","minlength"],Yr=s.defineComponent({__name:"vs-input-text",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useModel(n,"modelValue"),o=s.computed({get:()=>r.value??"",set:u=>{r.value=u===""?null:u}}),i=s.computed(()=>!!e.disabled),l=s.computed(()=>e.placeholder??""),a=s.computed(()=>e.maxlength??void 0),c=s.computed(()=>e.minlength??void 0);function d(){if(typeof r.value=="string"){const u=r.value.trim();r.value=u===""?null:u}}return(u,f)=>s.withDirectives((s.openBlock(),s.createElementBlock("input",{type:"text","onUpdate:modelValue":f[0]||(f[0]=p=>o.value=p),placeholder:l.value,disabled:i.value,maxlength:a.value,minlength:c.value,onBlur:d,class:s.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[u.customClass,s.unref(t),{"!border-red-600":u.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Pb)),[[s.vModelText,o.value]])}}),zb=["step","placeholder","disabled","min","max"],Du=s.defineComponent({__name:"vs-input-number",props:s.mergeModels({style:{type:Object,default:()=>({})},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:[Number,String],default:void 0}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useAttrs(),o=s.useModel(n,"modelValue"),i=s.computed(()=>!!e.disabled),l=u=>{if(u==null||u==="")return;const f=typeof u=="string"?u.trim().replace(",","."):u,p=Number(f);return Number.isFinite(p)?p:void 0},a=s.computed(()=>l(e.min??r.min)),c=s.computed(()=>l(e.max??r.max)),d=s.computed(()=>{if(e.step!==void 0&&e.step!==null&&e.step!=="")return e.step;const u=r.step;return typeof u=="number"||typeof u=="string"?u:"any"});return(u,f)=>s.withDirectives((s.openBlock(),s.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":f[0]||(f[0]=p=>o.value=p),placeholder:n.placeholder,disabled:i.value,class:s.normalizeClass(["py-1.5 px-3 block w-full bg-white",[s.unref(t)]]),style:{border:"1px solid #CFD9E0"},min:a.value,max:c.value},null,10,zb)),[[s.vModelText,o.value]])}}),qs=n=>!!String(n??"").trim(),Kn=n=>n?.color?String(n.color):"",Mo=n=>{const e=n?.icon;if(typeof e=="string")return e;const t=n?.imgUrl;return typeof t=="string"?t:""},Ao=n=>{const e=n?.icon;return e&&typeof e!="string"?e:null},Hb={class:"flex items-center gap-[4px]"},jb=["value","id","disabled"],Ub=["for"],Wb=["innerHTML"],Kb={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},qb=["src"],Gb=s.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(n,{emit:e}){const t=e,r=n,o=s.computed({get:()=>r.modelValue,set:h=>t("update:modelValue",h)}),i=s.computed(()=>!!r.disabled),l=s.computed(()=>Mo(r.option)),a=s.computed(()=>Ao(r.option)),c=s.computed(()=>Kn(r.option)),d=s.computed(()=>!!(c.value&&!l.value&&!a.value)),u=s.computed(()=>!!(l.value&&c.value)),f=s.computed(()=>c.value?{color:c.value}:void 0),p=s.computed(()=>{if(!(!l.value||!c.value))return{backgroundColor:c.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(h,m)=>(s.openBlock(),s.createElementBlock("div",Hb,[s.withDirectives(s.createElementVNode("input",{type:"checkbox",value:h.value,"onUpdate:modelValue":m[0]||(m[0]=g=>o.value=g),class:s.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":i.value}]),id:h.id,disabled:i.value},null,10,jb),[[s.vModelCheckbox,o.value]]),s.createElementVNode("label",{for:h.id,class:s.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":i.value}])},[s.createElementVNode("div",{class:s.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[o.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",h.error?"border-red-600":""]])},[s.createVNode(s.unref(Y.Check),{class:"h-4 w-4"})],2),h.html?(s.openBlock(),s.createElementBlock("div",{key:0,class:"w-full",innerHTML:h.html},null,8,Wb)):(s.openBlock(),s.createElementBlock("span",Kb,[d.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:s.normalizeStyle({background:c.value})},null,4)):s.createCommentVNode("",!0),u.value?(s.openBlock(),s.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:s.normalizeStyle(p.value)},null,4)):l.value?(s.openBlock(),s.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,qb)):a.value?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:s.normalizeStyle(f.value)},null,8,["style"])):s.createCommentVNode("",!0),s.renderSlot(h.$slots,"default",{},()=>[s.createTextVNode(s.toDisplayString(h.label),1)])]))],10,Ub)]))}}),Jb=["name","value","disabled"],Yb=["innerHTML"],Xb={key:1,class:"flex items-center gap-[6px] text-[14px]"},Zb={key:2,class:"text-[16px] inline-flex items-center justify-center"},Qb=["src"],ek=s.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,r=e,o=s.computed({get:()=>t.modelValue,set:g=>{r("update:modelValue",g)}}),i=s.computed(()=>Array.isArray(o.value)?o.value.includes(t.value):o.value===!0||o.value===t.value),l=s.computed(()=>t.style?.size==="xs"?"p-1.5 text-xs":t.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),a=s.computed(()=>({...t.option??{},icon:t.option?.icon??t.icon,imgUrl:t.option?.imgUrl??t.imgUrl,color:t.option?.color})),c=s.computed(()=>Mo(a.value)),d=s.computed(()=>Ao(a.value)),u=s.computed(()=>Kn(a.value)),f=s.computed(()=>!!(u.value&&!c.value&&!d.value)),p=s.computed(()=>!!(c.value&&u.value)),h=s.computed(()=>u.value?{color:u.value}:void 0),m=s.computed(()=>{if(!(!c.value||!u.value))return{backgroundColor:u.value,WebkitMaskImage:`url(${c.value})`,maskImage:`url(${c.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(g,y)=>(s.openBlock(),s.createElementBlock("label",{class:s.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",[l.value,i.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[s.withDirectives(s.createElementVNode("input",{type:"checkbox",class:"hidden",name:g.id,value:g.value,"onUpdate:modelValue":y[0]||(y[0]=b=>o.value=b),disabled:g.disabled},null,8,Jb),[[s.vModelCheckbox,o.value]]),g.html?(s.openBlock(),s.createElementBlock("span",{key:0,class:"w-full",innerHTML:g.html},null,8,Yb)):(s.openBlock(),s.createElementBlock("span",Xb,[f.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:s.normalizeStyle({background:u.value})},null,4)):s.createCommentVNode("",!0),p.value?(s.openBlock(),s.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:s.normalizeStyle(m.value)},null,4)):c.value||d.value?(s.openBlock(),s.createElementBlock("span",Zb,[c.value?(s.openBlock(),s.createElementBlock("img",{key:0,src:c.value,width:"16",height:"16",alt:"icon"},null,8,Qb)):d.value?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:s.normalizeStyle(h.value)},null,8,["style"])):s.createCommentVNode("",!0)])):s.createCommentVNode("",!0),s.renderSlot(g.$slots,"default",{},()=>[s.createTextVNode(s.toDisplayString(g.label),1)])]))],2))}}),tk={class:"flex items-center"},ga=s.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,r=e,o=`radio-${Math.floor(Math.random()*1e4)}`,i=s.computed({get:()=>Array.isArray(t.modelValue)?Array.isArray(t.modelValue)&&t.modelValue.includes(t.value):t.modelValue,set:a=>{if(Array.isArray(t.modelValue)){let c=[...t.modelValue];a?c.includes(t.value)||c.push(t.value):c=c.filter(d=>d!==t.value),r("update:modelValue",c)}else r("update:modelValue",a)}}),l=s.ref(`vs-checkbox-${t.view||"default"}`);return(a,c)=>(s.openBlock(),s.createElementBlock("div",tk,[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(l.value==="vs-checkbox-buttons"?s.unref(ek):s.unref(Gb)),{value:a.value,label:a.label,html:a.labelHtml,info:a.option?.info,disabled:a.disabled,modelValue:i.value,"onUpdate:modelValue":c[0]||(c[0]=d=>i.value=d),id:o,icon:a.icon,imgUrl:a.imgUrl,option:a.option,style:s.normalizeStyle(a.style),error:a.error},{default:s.withCtx(()=>[s.createTextVNode(s.toDisplayString(a.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),nk={key:0,class:"flex items-start gap-x-1"},rk={key:0,class:"text-red-500 text-[14px]"},ok=["title"],sk=["disabled"],ya=s.defineComponent({__name:"vs-input-switcher",props:s.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue");return(r,o)=>e.view==="checkbox"?(s.openBlock(),s.createElementBlock("div",nk,[s.createVNode(ga,{modelValue:t.value,"onUpdate:modelValue":o[0]||(o[0]=i=>t.value=i),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(s.openBlock(),s.createElementBlock("span",rk,"*")):s.createCommentVNode("",!0),r.i?(s.openBlock(),s.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:o[1]||(o[1]=s.withModifiers(()=>{},["prevent"]))},[s.createVNode(s.unref(Y.Info),{class:"h-4 w-4 text-gray-500"})],8,ok)):s.createCommentVNode("",!0)])):(s.openBlock(),s.createElementBlock("button",{key:1,type:"button",class:s.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",[t.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:o[2]||(o[2]=i=>t.value=!t.value)},[s.createElementVNode("span",{"data-state":"checked",class:s.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[t.value?"translate-x-4":"translate-x-0"]])},null,2)],10,sk))}}),ik=["id","innerHTML"],ba=s.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(n){return(e,t)=>(s.openBlock(),s.createElementBlock("div",{id:e.name,class:s.normalizeClass(["text-gray-900",e.customClass]),innerHTML:e.html?e.html:e.text},null,10,ik))}}),lk=["placeholder","disabled","name"],Gs=s.defineComponent({__name:"vs-input-mask",props:s.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useModel(n,"modelValue"),o=s.ref(null);let i=null;function l(a){const c=a==null?"":String(a),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},u=new Set;let f=!1;for(let h=0;h<c.length;h+=1){const m=c[h];m==="{"?f=!0:m==="}"?f=!1:f&&u.add(m)}const p={};return Object.keys(d).forEach(h=>{u.has(h)||(p[h]=d[h])}),{mask:c,definitions:p,lazy:!1}}return s.onMounted(async()=>{if(o.value){const{default:a}=await Promise.resolve().then(()=>vi),c=l(e.mask||"");i=a(o.value,c),i.on("accept",()=>{r.value=e.unmask?i.unmaskedValue:i.value}),i.on("complete",()=>{r.value=e.unmask?i.unmaskedValue:i.value}),i.value=r.value!=null?String(r.value):""}}),s.onBeforeUnmount(()=>{i?.destroy()}),s.watch(()=>e.mask,a=>{if(i){const c=l(a||"");i.updateOptions(c)}}),s.watch(r,a=>{i&&i.unmaskedValue!==a&&(i.value=a!=null?String(a):"")}),(a,c)=>(s.openBlock(),s.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:o,placeholder:a.placeholder,disabled:a.disabled,name:a.name,class:s.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[s.unref(t)]]),style:{border:"1px solid #CFD9E0"}},null,10,lk))}}),ak={class:"relative w-full bg-white rounded-lg"},ck={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},dk=["placeholder","disabled"],ka=s.defineComponent({__name:"vs-input-email",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useModel(n,"modelValue");return(o,i)=>(s.openBlock(),s.createElementBlock("div",ak,[s.createElementVNode("div",ck,[s.createVNode(s.unref(Y.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),s.withDirectives(s.createElementVNode("input",{type:"email","onUpdate:modelValue":i[0]||(i[0]=l=>r.value=l),placeholder:o.placeholder,disabled:o.disabled,class:s.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[s.unref(t),{"!border-red-600":o.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,dk),[[s.vModelText,r.value]])]))}}),_n="+99(999)-999-99-99";function qn(n){if(!n?.trim())return 0;const e=new Set(["9","0","a","A","*"]);let t=!1,r=0;for(let o=0;o<n.length;o+=1){const i=n[o];if(i==="{"){t=!0;continue}if(i==="}"){t=!1;continue}!t&&e.has(i)&&(r+=1)}return r}const uk={class:"relative w-full bg-white rounded-lg"},fk={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},pk=["name","placeholder","disabled","pattern"],wa=s.defineComponent({__name:"vs-input-tel",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:_n}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.computed(()=>`^\\+[1-9]\\d{${(qn(e.mask||_n)||qn(_n))-1}}$`),{inputClass:r}=Bt(e.style),o=s.useModel(n,"modelValue"),i=s.ref(null);let l=null;function a(u){const f={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let h=!1;for(let g=0;g<u.length;g+=1){const y=u[g];y==="{"?h=!0:y==="}"?h=!1:h&&p.add(y)}const m={};return Object.keys(f).forEach(g=>{p.has(g)||(m[g]=f[g])}),{mask:u,definitions:m,lazy:!1,disabled:e.disabled}}function c(u){if(u==null||u==="")return"";const f=String(u).trim();return f?f.replace(/\D/g,""):""}function d(){if(!l)return;const u=l.unmaskedValue??"";o.value=u?`+${u}`:""}return s.onMounted(async()=>{if(!i.value)return;const{default:u}=await Promise.resolve().then(()=>vi),f=a(e.mask||"");l=u(i.value,f),l.on("accept",d),l.on("complete",d);const p=c(o.value);l.unmaskedValue=p}),s.onBeforeUnmount(()=>{l?.destroy(),l=null}),s.watch(()=>e.mask,u=>{l&&l.updateOptions(a(u||""))}),s.watch(()=>e.disabled,u=>{l&&l.updateOptions({disabled:u})}),s.watch(o,u=>{if(!l)return;const f=c(u);l.unmaskedValue!==f&&(l.unmaskedValue=f)}),(u,f)=>(s.openBlock(),s.createElementBlock("div",uk,[s.createElementVNode("div",fk,[s.createVNode(s.unref(Y.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),s.createElementVNode("input",{ref_key:"inputEl",ref:i,type:"tel",name:u.name,placeholder:u.placeholder,disabled:u.disabled,pattern:t.value,title:"Міжнародний номер (E.164), наприклад +380XXXXXXXXX",autocomplete:"tel",class:s.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[s.unref(r),{"!border-red-600":u.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,pk)]))}}),hk=["value","disabled"],mk=["innerHTML"],gk={key:1,class:"flex items-center gap-2"},yk=["src"],bk={class:"text-[13px] text-gray-700"},kk=s.defineComponent({__name:"vs-input-radio-default",props:s.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.computed(()=>!!e.disabled),o=s.computed(()=>Mo(e.option)),i=s.computed(()=>Ao(e.option)),l=s.computed(()=>Kn(e.option)),a=s.computed(()=>!!(l.value&&!o.value&&!i.value)),c=s.computed(()=>!!(o.value&&l.value)),d=s.computed(()=>l.value?{color:l.value}:void 0),u=s.computed(()=>{if(!(!o.value||!l.value))return{backgroundColor:l.value,WebkitMaskImage:`url(${o.value})`,maskImage:`url(${o.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(f,p)=>(s.openBlock(),s.createElementBlock("label",{class:s.normalizeClass(["flex items-center gap-0",[e.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=h=>t.value=h),type:"radio",value:e.value,disabled:r.value,class:"hidden"},null,8,hk),[[s.vModelRadio,t.value]]),s.createElementVNode("span",{class:s.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${e.style?.primaryColor||"blue"}-500`,r.value?"opacity-50 cursor-not-allowed":""]])},[t.value==e.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:s.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${e.style?.primaryColor||"blue"}-500`]])},null,2)):s.createCommentVNode("",!0)],2),e.html?(s.openBlock(),s.createElementBlock("div",{key:0,class:"w-full",innerHTML:e.html},null,8,mk)):(s.openBlock(),s.createElementBlock("div",gk,[a.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:s.normalizeStyle({background:l.value})},null,4)):s.createCommentVNode("",!0),c.value?(s.openBlock(),s.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:s.normalizeStyle(u.value)},null,4)):o.value?(s.openBlock(),s.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:o.value,alt:"icon"},null,8,yk)):i.value?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.value),{key:3,class:"h-4 w-4",style:s.normalizeStyle(d.value)},null,8,["style"])):s.createCommentVNode("",!0),s.createElementVNode("span",bk,s.toDisplayString(e.text),1)]))],2))}}),wk=["value","disabled"],xk=["innerHTML"],vk={key:1,class:"flex items-center gap-2"},Ck=["src"],Sk={class:"text-[13px] text-gray-700"},Ek={"vs-input-radio-default":kk,"vs-input-radio-buttons":s.defineComponent({__name:"vs-input-radio-buttons",props:s.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.computed(()=>!!e.disabled),o=s.computed(()=>Mo(e.option)),i=s.computed(()=>Ao(e.option)),l=s.computed(()=>Kn(e.option)),a=s.computed(()=>!!(l.value&&!o.value&&!i.value)),c=s.computed(()=>!!(o.value&&l.value)),d=s.computed(()=>l.value?{color:l.value}:void 0),u=s.computed(()=>{if(!(!o.value||!l.value))return{backgroundColor:l.value,WebkitMaskImage:`url(${o.value})`,maskImage:`url(${o.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(f,p)=>(s.openBlock(),s.createElementBlock("label",{class:s.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[t.value==e.value?`ring-2 ring-ring ring-${e.style?.primaryColor||"blue"}-500`:"",e.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=h=>t.value=h),type:"radio",value:e.value,disabled:r.value,class:"hidden"},null,8,wk),[[s.vModelRadio,t.value]]),e.html?(s.openBlock(),s.createElementBlock("div",{key:0,class:"w-full",innerHTML:e.html},null,8,xk)):(s.openBlock(),s.createElementBlock("div",vk,[a.value?(s.openBlock(),s.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:s.normalizeStyle({background:l.value})},null,4)):s.createCommentVNode("",!0),c.value?(s.openBlock(),s.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:s.normalizeStyle(u.value)},null,4)):o.value?(s.openBlock(),s.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:o.value,alt:"icon"},null,8,Ck)):i.value?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.value),{key:3,class:"h-4 w-4",style:s.normalizeStyle(d.value)},null,8,["style"])):s.createCommentVNode("",!0),s.createElementVNode("span",Sk,s.toDisplayString(e.text),1)]))],2))}})},Xr=n=>n.filter(e=>e&&typeof e=="object").map(e=>({...e,id:e.value??e.id})).filter(e=>e.id!==void 0&&e.id!==null),Vu=n=>Array.isArray(n)?Xr(n):Array.isArray(n?.data)?Xr(n.data):[],$u=n=>{const e=n.host??"",t=n.prefix??"api",r=n.api??`/${t}/suggest/${n.data}`;return`${e}${r}`},Mk=n=>({fetchOptions:async(r="")=>{const o=n();if(!o.data)return o.options?Xr(o.options):[];try{const i=new URLSearchParams;r&&i.set("key",r),o.parentValue!==void 0&&o.parentValue!==null&&o.parentValue!==""&&i.set("parent",String(o.parentValue)),o.start===1&&i.set("start","1");const a=await(await fetch(`${$u(o)}?${i.toString()}`)).json();return Vu(a)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const o=n();if(!o.data){const i=o.options??[];return Xr(i).find(l=>l.id?.toString()===String(r))??null}try{const i=new URLSearchParams;i.set("val",String(r)),o.parentValue!==void 0&&o.parentValue!==null&&o.parentValue!==""&&i.set("parent",String(o.parentValue)),o.start===1&&i.set("start","1");const a=await(await fetch(`${$u(o)}?${i.toString()}`)).json();return Vu(a)[0]??null}catch{return null}}}),Js=({props:n,formValues:e=null,watchParent:t=!0})=>{const r=s.ref([]),o=s.computed(()=>n.parent?e?.value?.[n.parent]?.toString?.()??null:null),{fetchOptions:i,fetchOptionByValue:l}=Mk(()=>({data:n.data,options:n.options,api:n.api,prefix:n.prefix,host:n.host,start:n.start,parentValue:o.value})),a=async(c="")=>{const d=n.data?await i(c):n.options?Xr(n.options):[];return r.value=d,r.value};return s.watch(()=>n.options,()=>{n.data||(r.value=n.options?Xr(n.options):[])},{immediate:!0,deep:!0}),t&&s.watch(o,async()=>{n.data&&(r.value=await i())},{immediate:!1}),{optionsList:r,parentValue:o,fetchOptions:i,fetchOptionByValue:l,loadOptions:a}},Ak=/\{\{\s*([^}]+?)\s*\}\}/g,_k=n=>(n?String(n):"").replace(/<[^>]*>/g,"").trim(),Tk=(n,e)=>e.split(".").reduce((t,r)=>t==null?t:t[r.trim()],n),Ys=(n,e)=>{if(!n)return"";const t=(e??"").trim();return t?t.replace(Ak,(r,o)=>{const i=String(o).trim(),l=n,c=(i.includes(".")?Tk(l,i):void 0)??l[i];return c!=null?String(c):""}):n.text??""},Xs=(n,e)=>{if(!n)return"";const t=Ys(n,e);return _k(t)||n.text||""},xa=s.defineComponent({__name:"vs-input-radio",props:s.mergeModels({options:{},slot:{},data:{},api:{},prefix:{},host:{},start:{},parent:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.computed(()=>Ek[`vs-input-radio-${e.view}`]),o=s.computed(()=>e.slot??e?.optionTemplate??""),i=s.computed(()=>qs(o.value)),l=m=>Ys(m,o.value),a=m=>Xs(m,o.value),c=s.computed(()=>e.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=s.computed(()=>{if(e.position==="horizontal"&&e.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),u=s.inject("values",null),{optionsList:f,loadOptions:p}=Js({props:e,formValues:u}),h=m=>m.value??m.id;return s.onMounted(async()=>{await p()}),(m,g)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(c.value)},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(f),y=>(s.openBlock(),s.createElementBlock("div",{key:h(y),class:s.normalizeClass(["flex items-stretch",m.position==="horizontal"?e.customClass:""]),style:s.normalizeStyle(d.value)},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(r.value),s.mergeProps({text:a(y),html:i.value?l(y):"",option:y,value:h(y).toString(),checked:t.value?.toString?.()===h(y).toString(),"custom-class":m.position==="horizontal"?"":e.customClass,modelValue:t.value,"onUpdate:modelValue":g[0]||(g[0]=b=>t.value=b)},{ref_for:!0},m.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),Bk={key:1,class:"w-full flex flex-col gap-4"},Nk={key:0,class:"text-sm font-medium text-muted-foreground my-2"},Dk="Без категорії",Vk=s.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,r=e,o=s.reactive({}),i=s.inject("values",null),{optionsList:l,loadOptions:a}=Js({props:{...t,options:t.options},formValues:i}),c=s.computed(()=>l.value),d=w=>w?.value??w?.id??w?.text??w,u=s.computed(()=>t.slot??t?.optionTemplate??""),f=s.computed(()=>qs(u.value)),p=w=>Ys(w,u.value),h=w=>Xs(w,u.value),m=w=>`lg:col-span-${w||12}`,g=s.computed(()=>[t.position==="vertical"?"flex flex-col":"",t.colSpan?"grid":"flex justify-start"]),y=w=>w==null||w===""?null:typeof w=="string"||typeof w=="number"?w:String(w),b=s.computed(()=>{if(!t.group)return[];const w=new Map;c.value.forEach(T=>{const E=T[t.group],_=y(E);w.has(_)||w.set(_,[]),w.get(_)?.push(T)});const v=[];t.values?.length&&t.values.forEach(T=>{const E=y(T);v.push(E)});const S=new Set,N=T=>{const E=w.get(T)||[];if(!E.length)return null;const _=T===null?"group-null":`group-${String(T)}`,A=T===null?Dk:String(T);return S.add(T),{key:_,label:A,options:E}},F=[];return v.forEach(T=>{const E=N(T);E&&F.push(E)}),w.forEach((T,E)=>{if(S.has(E))return;const _=N(E);_&&F.push(_)}),F});return s.watch(()=>t.modelValue,w=>{if(typeof w=="boolean"&&c.value.length===1){const v=d(c.value[0]);o[v]=w}else if(Array.isArray(w)){const v=new Set(w);c.value.forEach(S=>{if(!S.disabled){const N=d(S);o[N]=v.has(N)}})}},{immediate:!0}),s.watch(o,()=>{if(!c.value.length){r("update:modelValue",null);return}const w=Object.entries(o).filter(([,v])=>v).map(([v])=>v);r("update:modelValue",w.length===0?[]:w)},{deep:!0}),s.onMounted(async()=>{if(await a(),typeof t.modelValue=="boolean"&&c.value.length===1){const w=d(c.value[0]);o[w]=t.modelValue}else if(Array.isArray(t.modelValue)){const w=new Set(t.modelValue);c.value.forEach(v=>{if(!v.disabled){const S=d(v);o[S]=w.has(S)}})}}),(w,v)=>t.group?(s.openBlock(),s.createElementBlock("div",Bk,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(b.value,S=>(s.openBlock(),s.createElementBlock("div",{key:S.key,class:"flex flex-col gap-2"},[S.label?(s.openBlock(),s.createElementBlock("span",Nk,s.toDisplayString(S.label),1)):s.createCommentVNode("",!0),s.createElementVNode("div",{class:s.normalizeClass(["p-0 w-full gap-[12px]",g.value])},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(S.options,N=>(s.openBlock(),s.createBlock(ga,{modelValue:o[d(N)],"onUpdate:modelValue":F=>o[d(N)]=F,value:d(N),class:s.normalizeClass(m(w.colSpan)),disabled:t.disabled||N.disabled,label:h(N),labelHtml:f.value?p(N):"",key:`${S.key}-${d(N)}`,icon:N?.icon,imgUrl:N?.imgUrl,option:N,view:w.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(s.openBlock(),s.createElementBlock("div",{key:0,class:s.normalizeClass(["p-0 w-full gap-[10px]",g.value])},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(c.value,S=>(s.openBlock(),s.createBlock(ga,{modelValue:o[d(S)],"onUpdate:modelValue":N=>o[d(S)]=N,value:d(S),class:s.normalizeClass(m(w.colSpan)),disabled:t.disabled||S.disabled,label:h(S),labelHtml:f.value?p(S):"",key:d(S),icon:S?.icon,imgUrl:S?.imgUrl,option:S,view:w.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),Be=(n,e)=>{const t=n.__vccOpts||n;for(const[r,o]of e)t[r]=o;return t},Lu=Be(Vk,[["__scopeId","data-v-acc5167c"]]),$k=1440*60*1e3,Lk=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],Ik=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],Ok=["нд","пн","вт","ср","чт","пт","сб"];function gt(n){return n instanceof Date&&!Number.isNaN(n.getTime())}const Zr=n=>new Date(n.getTime());function yr(n){const e=Zr(n);return e.setHours(0,0,0,0),e}function _o(n){const e=Zr(n);return e.setHours(23,59,59,999),e}function va(n){return yr(new Date(n.getFullYear(),n.getMonth(),1))}function Ca(n){return _o(new Date(n.getFullYear(),n.getMonth()+1,0))}function Sa(n,e){const t=new Date(n),r=t.getDate();t.setDate(1),t.setMonth(t.getMonth()+e);const o=new Date(t.getFullYear(),t.getMonth()+1,0).getDate();return t.setDate(Math.min(r,o)),t}function Rk(n,e){return Sa(n,-1)}function Zs(n,e){const t=new Date(n);return t.setFullYear(t.getFullYear()+e),t}function Iu(n,e){return Zs(n,-e)}function Ou(n){return yr(new Date(n.getFullYear(),0,1))}function Ru(n){return _o(new Date(n.getFullYear(),11,31))}function Fk(n){const e=Math.floor(n.getFullYear()/10)*10;return yr(new Date(e,0,1))}function Pk(n){const e=Math.floor(n.getFullYear()/10)*10+9;return _o(new Date(e,11,31))}const nn=n=>n.getFullYear(),Qs=n=>Math.floor(n.getFullYear()/10)*10;function zk(n){const e=[];let t=yr(n.start);const r=yr(n.end);for(;t<=r;)e.push(Zr(t)),t=new Date(t.getTime()+$k);return e}function Hk(n){const e=[];let t=va(n.start);const r=Ca(n.end);for(;t<=r;)e.push(Zr(t)),t=Sa(t,1);return e}function jk(n){const e=[];let t=Ou(n.start);const r=Ru(n.end);for(;t<=r;)e.push(Zr(t)),t=Zs(t,1);return e}function Ea(n,e=1){const t=yr(n),r=(t.getDay()-e+7)%7;return t.setDate(t.getDate()-r),t}function Uk(n,e=1){const t=Ea(n,e);return t.setDate(t.getDate()+6),_o(t)}function Wk(n,e,t=0){const r=Ea(n,t),o=(e-t+7)%7;return r.setDate(r.getDate()+o),r}const ei=(n,e)=>!!n&&!!e&&n.getFullYear()===e.getFullYear()&&n.getMonth()===e.getMonth()&&n.getDate()===e.getDate(),Ma=(n,e)=>!!n&&!!e&&n.getFullYear()===e.getFullYear()&&n.getMonth()===e.getMonth(),Fu=(n,e)=>!!n&&!!e&&n.getFullYear()===e.getFullYear(),Pu=(n,e)=>!!n&&!!e&&ei(n,e)&&n.getHours()===e.getHours(),Kk=(n,e)=>!!n&&!!e&&Pu(n,e)&&n.getMinutes()===e.getMinutes();function qk(n,e){const t=n.getTime();return t>=e.start.getTime()&&t<=e.end.getTime()}const To=(n,e)=>!!n&&!!e&&n.getTime()<e.getTime(),Bo=(n,e)=>!!n&&!!e&&n.getTime()>e.getTime();function Gk(n){const e=n.filter(t=>gt(t));if(e.length)return e.reduce((t,r)=>t.getTime()>=r.getTime()?t:r)}function Jk(n){const e=n.filter(t=>gt(t));if(e.length)return e.reduce((t,r)=>t.getTime()<=r.getTime()?t:r)}function Yk(n,e){const t=Zr(n);return typeof e.year=="number"&&t.setFullYear(e.year),typeof e.month=="number"&&t.setMonth(e.month),typeof e.date=="number"&&t.setDate(e.date),typeof e.hours=="number"&&t.setHours(e.hours),typeof e.minutes=="number"&&t.setMinutes(e.minutes),typeof e.seconds=="number"&&t.setSeconds(e.seconds),typeof e.milliseconds=="number"&&t.setMilliseconds(e.milliseconds),t}const ti=(n,e=2)=>String(n).padStart(e,"0");function zu(n,e){return e==="wide"?Lk[n]:Ik[n]}function Xk(n){return Ok[n]}const Zk=[{token:"LLLL",format:n=>zu(n.getMonth(),"wide")},{token:"LLL",format:n=>zu(n.getMonth(),"abbreviated")},{token:"EE",format:n=>Xk(n.getDay())},{token:"yyyy",format:n=>String(n.getFullYear())},{token:"MM",format:n=>ti(n.getMonth()+1)},{token:"dd",format:n=>ti(n.getDate())},{token:"HH",format:n=>ti(n.getHours())},{token:"mm",format:n=>ti(n.getMinutes())}];function No(n,e){if(!gt(n))return"";let t="",r=0;for(;r<e.length;){const o=Zk.find(i=>e.startsWith(i.token,r));o?(t+=o.format(n),r+=o.token.length):(t+=e[r],r+=1)}return t}const Qk={"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 Hu(n,e){const t=Qk[e];if(!t){const o=new Date(n);return gt(o)?o:null}const r=n.match(t);if(!r)return null;switch(e){case"yyyy-MM-dd":{const[,o,i,l]=r,a=new Date(Number(o),Number(i)-1,Number(l));return gt(a)?a:null}case"dd.MM.yyyy":{const[,o,i,l]=r,a=new Date(Number(l),Number(i)-1,Number(o));return gt(a)?a:null}case"dd.MM.yyyy HH:mm":{const[,o,i,l,a,c,d]=r,u=new Date(Number(l),Number(i)-1,Number(o),Number(a),Number(c),Number(d||0));return gt(u)?u:null}case"HH:mm":{const[,o,i,l]=r,a=new Date;return a.setHours(Number(o),Number(i),Number(l||0),0),a}case"MM.yyyy":{const[,o,i]=r;return new Date(Number(i),Number(o)-1,1)}case"yyyy":{const[,o]=r;return new Date(Number(o),0,1)}default:return null}}const ew=["year","month","day","time","custom"],tw=s.defineComponent({components:{ChevronLeft:Y.ChevronLeft,ChevronRight:Y.ChevronRight},emits:{elementClick:n=>gt(n),left:()=>!0,right:()=>!0,heading:()=>!0,today:()=>!0,clear:()=>!0},props:{headingClickable:{type:Boolean,default:!1},leftDisabled:{type:Boolean,default:!1},rightDisabled:{type:Boolean,default:!1},columnCount:{type:Number,default:7},items:{type:Array,default:()=>[]},viewMode:{type:String,required:!0,validate:n=>typeof n=="string"&&ew.includes(n)},showButtonBar:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1}},setup(){const e=s.getCurrentInstance()?.appContext?.config?.globalProperties?.$t,t=s.computed(()=>{const o=e?.("form.date.today");return o&&o!=="form.date.today"?o:"Сьогодні"}),r=s.computed(()=>{const o=e?.("form.date.clear");return o&&o!=="form.date.clear"?o:"Очистити"});return{todayLabel:t,clearLabel:r}}}),nw={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},rw=["disabled"],ow=["disabled"],sw={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},iw=["disabled","onClick"],lw={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function aw(n,e,t,r,o,i){const l=s.resolveComponent("ChevronLeft"),a=s.resolveComponent("ChevronRight");return s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",n.viewMode==="month"||n.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:s.normalizeStyle({"--popout-column-definition":`repeat(${n.columnCount}, 1fr)`}),onMousedown:e[5]||(e[5]=s.withModifiers(()=>{},["prevent"]))},[n.hideHeader?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",nw,[s.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:n.leftDisabled,onClick:e[0]||(e[0]=s.withModifiers(c=>n.$emit("left"),["stop","prevent"]))},[s.renderSlot(n.$slots,"arrow-left",{},()=>[s.createVNode(l,{class:"h-3.5 w-3.5"})])],8,rw),(s.openBlock(),s.createBlock(s.resolveDynamicComponent(n.headingClickable?"button":"span"),{class:s.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",n.headingClickable?"hover:bg-slate-100":"",n.viewMode==="month"?"p-datepicker-select-year":"",n.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:e[1]||(e[1]=s.withModifiers(c=>n.$emit("heading"),["stop","prevent"]))},{default:s.withCtx(()=>[s.renderSlot(n.$slots,"heading")]),_:3},8,["class"])),s.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:n.rightDisabled,onClick:e[2]||(e[2]=s.withModifiers(c=>n.$emit("right"),["stop","prevent"]))},[s.renderSlot(n.$slots,"arrow-right",{},()=>[s.createVNode(a,{class:"h-3.5 w-3.5"})])],8,ow)])),s.createElementVNode("div",null,["subheading"in n.$slots?(s.openBlock(),s.createElementBlock("div",sw,[s.renderSlot(n.$slots,"subheading")])):s.createCommentVNode("",!0),s.createElementVNode("div",{class:s.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",n.viewMode==="month"?"p-datepicker-month-view":"",n.viewMode==="year"?"p-datepicker-year-view":"",n.viewMode==="month"?"gap-y-1":""])},[s.renderSlot(n.$slots,"body",{},()=>[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(n.items,c=>(s.openBlock(),s.createElementBlock("button",{key:c.key,disabled:c.disabled,class:s.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:s.withModifiers(d=>n.$emit("elementClick",c.value),["stop","prevent"])},[s.createElementVNode("span",{class:s.normalizeClass([n.viewMode==="month"||n.viewMode==="year"?"inline-flex w-full h-8 items-center justify-center rounded-md text-[13px] font-normal transition-colors":"inline-flex w-8 h-8 items-center justify-center rounded-full text-[13px] font-normal transition-colors",n.viewMode==="month"?"p-datepicker-month":"",n.viewMode==="year"?"p-datepicker-year":"",n.viewMode==="day"?"p-datepicker-day":"",c.selected?"bg-blue-500 text-white font-semibold":"",c.current&&!c.selected&&n.viewMode!=="month"&&n.viewMode!=="year"?"border border-slate-300 font-medium":"",!c.disabled&&!c.selected?"hover:bg-slate-100 hover:text-slate-700":"",!c.current&&!c.selected&&c.disabled?"text-slate-300":""])},s.toDisplayString(c.display),3)],8,iw))),128))])],2),s.renderSlot(n.$slots,"after-calendar"),n.showButtonBar?(s.openBlock(),s.createElementBlock("div",lw,[s.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:e[3]||(e[3]=s.withModifiers(c=>n.$emit("today"),["stop","prevent"]))},s.toDisplayString(n.todayLabel),1),s.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:e[4]||(e[4]=s.withModifiers(c=>n.$emit("clear"),["stop","prevent"]))},s.toDisplayString(n.clearLabel),1)])):s.createCommentVNode("",!0)])],38)}const ni=Be(tw,[["render",aw]]),cw=s.defineComponent({components:{PickerPopup:ni},emits:{"update:pageDate":n=>gt(n),select:n=>gt(n)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(n,{emit:e}){const t=s.computed(()=>Fk(n.pageDate)),r=s.computed(()=>Pk(n.pageDate)),o=(f,p,h)=>!p&&!h?!0:!(p&&nn(f)<nn(p)||h&&nn(f)>nn(h)),i=s.computed(()=>jk({start:t.value,end:r.value}).map(f=>({value:f,key:String(nn(f)),display:nn(f),selected:!!n.selected&&nn(f)===nn(n.selected),disabled:!o(f,n.lowerLimit,n.upperLimit)}))),l=s.computed(()=>{const f=nn(t.value),p=nn(r.value);return`${f} - ${p}`}),a=s.computed(()=>n.lowerLimit&&(Qs(n.lowerLimit)===Qs(n.pageDate)||To(n.pageDate,n.lowerLimit))),c=s.computed(()=>n.upperLimit&&(Qs(n.upperLimit)===Qs(n.pageDate)||Bo(n.pageDate,n.upperLimit)));return{years:i,heading:l,leftDisabled:a,rightDisabled:c,previousPage:()=>e("update:pageDate",Iu(n.pageDate,10)),nextPage:()=>e("update:pageDate",Zs(n.pageDate,10))}}});function dw(n,e,t,r,o,i){const l=s.resolveComponent("picker-popup");return s.openBlock(),s.createBlock(l,{columnCount:2,leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,items:n.years,viewMode:"year",onLeft:n.previousPage,onRight:n.nextPage,onElementClick:e[0]||(e[0]=a=>n.$emit("select",a))},{heading:s.withCtx(()=>[s.createTextVNode(s.toDisplayString(n.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const uw=Be(cw,[["render",dw]]),fw=s.defineComponent({components:{PickerPopup:ni},emits:{"update:pageDate":n=>gt(n),select:n=>gt(n),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(n,{emit:e}){const t=s.computed(()=>Ou(n.pageDate)),r=s.computed(()=>Ru(n.pageDate)),o=s.computed(()=>p=>No(p,n.format)),i=(p,h,m)=>!h&&!m?!0:!(h&&To(p,va(h))||m&&Bo(p,Ca(m))),l=s.computed(()=>Hk({start:t.value,end:r.value}).map(p=>({value:p,display:o.value(p),key:o.value(p),selected:!!n.selected&&Ma(n.selected,p),disabled:!i(p,n.lowerLimit,n.upperLimit)}))),a=s.computed(()=>nn(t.value)),c=s.computed(()=>n.lowerLimit&&(Fu(n.lowerLimit,n.pageDate)||To(n.pageDate,n.lowerLimit))),d=s.computed(()=>n.upperLimit&&(Fu(n.upperLimit,n.pageDate)||Bo(n.pageDate,n.upperLimit)));return{months:l,heading:a,leftDisabled:c,rightDisabled:d,previousPage:()=>e("update:pageDate",Iu(n.pageDate,1)),nextPage:()=>e("update:pageDate",Zs(n.pageDate,1))}}});function pw(n,e,t,r,o,i){const l=s.resolveComponent("picker-popup");return s.openBlock(),s.createBlock(l,{headingClickable:"",columnCount:3,items:n.months,leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,viewMode:"month",onLeft:n.previousPage,onRight:n.nextPage,onHeading:e[0]||(e[0]=a=>n.$emit("back")),onElementClick:e[1]||(e[1]=a=>n.$emit("select",a))},{heading:s.withCtx(()=>[s.createTextVNode(s.toDisplayString(n.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const hw=Be(fw,[["render",pw]]),mw=s.defineComponent({components:{PickerPopup:ni},emits:{"update:pageDate":n=>gt(n),select:n=>gt(n),back:()=>!0,today:()=>!0,clear:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"dd"},headingFormat:{type:String,required:!1,default:"LLLL yyyy"},weekdayFormat:{type:String,required:!1,default:"EE"},weekStartsOn:{type:Number,required:!1,default:1,validator:n=>typeof n=="number"&&Number.isInteger(n)&&n>=0&&n<=6},customWeekdays:{type:Array,required:!1},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1}},setup(n,{emit:e}){const t=s.computed(()=>y=>b=>No(b,y)),r=s.computed(()=>va(n.pageDate)),o=s.computed(()=>Ca(n.pageDate)),i=s.computed(()=>({start:r.value,end:o.value})),l=s.computed(()=>({start:Ea(r.value,n.weekStartsOn),end:Uk(o.value,n.weekStartsOn)})),a=s.computed(()=>n.customWeekdays?.length===7?n.customWeekdays:null),c=s.computed(()=>{const y=n.weekStartsOn,b=a.value;if(b)return Array.from({length:7}).map((v,S)=>b[(y+S)%7]);const w=t.value(n.weekdayFormat);return Array.from(Array(7)).map((v,S)=>(y+S)%7).map(v=>Wk(new Date,v,n.weekStartsOn)).map(w)}),d=(y,b,w,v)=>v?.dates?.some(S=>ei(y,S))||v?.predicate?.(y)?!1:!b&&!w?!0:!(b&&To(y,yr(b))||w&&Bo(y,_o(w))),u=s.computed(()=>{const y=new Date,b=t.value(n.format);return zk(l.value).map(w=>({value:w,display:b(w),selected:!!n.selected&&ei(n.selected,w),current:ei(y,w),disabled:!n.allowOutsideInterval&&!qk(w,i.value)||!d(w,n.lowerLimit,n.upperLimit,n.disabledDates),key:t.value("yyyy-MM-dd")(w)}))}),f=s.computed(()=>t.value(n.headingFormat)(n.pageDate)),p=s.computed(()=>n.lowerLimit&&(Ma(n.lowerLimit,n.pageDate)||To(n.pageDate,n.lowerLimit))),h=s.computed(()=>n.upperLimit&&(Ma(n.upperLimit,n.pageDate)||Bo(n.pageDate,n.upperLimit)));return{weekDays:c,days:u,heading:f,leftDisabled:p,rightDisabled:h,previousPage:()=>e("update:pageDate",Rk(n.pageDate)),nextPage:()=>e("update:pageDate",Sa(n.pageDate,1))}}});function gw(n,e,t,r,o,i){const l=s.resolveComponent("picker-popup");return s.openBlock(),s.createBlock(l,{headingClickable:"",leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,items:n.days,showButtonBar:!0,viewMode:"day",onLeft:n.previousPage,onRight:n.nextPage,onHeading:e[0]||(e[0]=a=>n.$emit("back")),onElementClick:e[1]||(e[1]=a=>n.$emit("select",a)),onToday:e[2]||(e[2]=a=>n.$emit("today")),onClear:e[3]||(e[3]=a=>n.$emit("clear"))},s.createSlots({heading:s.withCtx(()=>[s.createTextVNode(s.toDisplayString(n.heading),1)]),subheading:s.withCtx(()=>[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(n.weekDays,(a,c)=>(s.openBlock(),s.createElementBlock("span",{key:a,class:s.normalizeClass(`v3dp__subheading__weekday__${c}`)},s.toDisplayString(a),3))),128))]),_:2},[n.$slots["after-calendar"]?{name:"after-calendar",fn:s.withCtx(()=>[s.renderSlot(n.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const yw=Be(mw,[["render",gw]]),bw=s.defineComponent({components:{PickerPopup:ni,ChevronUp:Y.ChevronUp,ChevronDown:Y.ChevronDown},emits:{select:n=>gt(n),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1},embedded:{type:Boolean,default:!1}},setup(n,{emit:e}){const t=s.computed(()=>n.pageDate??n.selected),r=s.ref(t.value.getHours()),o=s.ref(t.value.getMinutes());s.watch(()=>n.selected,h=>{let m=0,g=0;h&&(m=h.getHours(),g=h.getMinutes()),r.value=m,o.value=g});const i=(h,m)=>{const g=Yk(new Date(t.value.getTime()),{hours:h,minutes:m,seconds:0});f(g)&&(r.value=h,o.value=m,e("select",g))},l=(h,m)=>h<0?m:h>m?0:h,a=()=>i(l(r.value+1,23),o.value),c=()=>i(l(r.value-1,23),o.value),d=()=>i(r.value,l(o.value+1,59)),u=()=>i(r.value,l(o.value-1,59)),f=h=>!(n.disabledTime?.dates?.some(m=>Pu(h,m)&&Kk(h,m))||n.disabledTime?.predicate?.(h));return{hours:r,minutes:o,padStartZero:h=>`0${h}`.substr(-2),isEnabled:f,incrementHours:a,decrementHours:c,incrementMinutes:d,decrementMinutes:u}}}),kw={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"},ww={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},xw={class:"min-w-8 text-center text-sm font-medium text-slate-700"},vw={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Cw={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Sw={class:"col-span-2"},Ew={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},Mw={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Aw={class:"min-w-8 text-center text-sm font-medium text-slate-700"},_w={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Tw={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function Bw(n,e,t,r,o,i){const l=s.resolveComponent("ChevronUp"),a=s.resolveComponent("ChevronDown"),c=s.resolveComponent("picker-popup");return n.embedded?(s.openBlock(),s.createElementBlock("div",kw,[s.createElementVNode("div",ww,[s.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:e[0]||(e[0]=s.withModifiers((...d)=>n.incrementHours&&n.incrementHours(...d),["stop","prevent"]))},[s.createVNode(l,{class:"h-3.5 w-3.5"})]),s.createElementVNode("span",xw,s.toDisplayString(n.padStartZero(n.hours)),1),s.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:e[1]||(e[1]=s.withModifiers((...d)=>n.decrementHours&&n.decrementHours(...d),["stop","prevent"]))},[s.createVNode(a,{class:"h-3.5 w-3.5"})])]),e[8]||(e[8]=s.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),s.createElementVNode("div",vw,[s.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:e[2]||(e[2]=s.withModifiers((...d)=>n.incrementMinutes&&n.incrementMinutes(...d),["stop","prevent"]))},[s.createVNode(l,{class:"h-3.5 w-3.5"})]),s.createElementVNode("span",Cw,s.toDisplayString(n.padStartZero(n.minutes)),1),s.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:e[3]||(e[3]=s.withModifiers((...d)=>n.decrementMinutes&&n.decrementMinutes(...d),["stop","prevent"]))},[s.createVNode(a,{class:"h-3.5 w-3.5"})])])])):(s.openBlock(),s.createBlock(c,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:s.withCtx(()=>[s.createElementVNode("div",Sw,[s.createElementVNode("div",Ew,[s.createElementVNode("div",Mw,[s.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:e[4]||(e[4]=s.withModifiers((...d)=>n.incrementHours&&n.incrementHours(...d),["stop","prevent"]))},[s.createVNode(l,{class:"h-3.5 w-3.5"})]),s.createElementVNode("span",Aw,s.toDisplayString(n.padStartZero(n.hours)),1),s.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:e[5]||(e[5]=s.withModifiers((...d)=>n.decrementHours&&n.decrementHours(...d),["stop","prevent"]))},[s.createVNode(a,{class:"h-3.5 w-3.5"})])]),e[9]||(e[9]=s.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),s.createElementVNode("div",_w,[s.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:e[6]||(e[6]=s.withModifiers((...d)=>n.incrementMinutes&&n.incrementMinutes(...d),["stop","prevent"]))},[s.createVNode(l,{class:"h-3.5 w-3.5"})]),s.createElementVNode("span",Tw,s.toDisplayString(n.padStartZero(n.minutes)),1),s.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:e[7]||(e[7]=s.withModifiers((...d)=>n.decrementMinutes&&n.decrementMinutes(...d),["stop","prevent"]))},[s.createVNode(a,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const Nw=Be(bw,[["render",Bw]]),ri=["time","day","month","year"],Dw=(n,e,t=void 0)=>{let r=t||new Date;const o=Gk([n,r]);o&&(r=o);const i=Jk([e,r]);return i&&(r=i),r},Vw=s.defineComponent({components:{YearPicker:uw,MonthPicker:hw,DayPicker:yw,TimePicker:Nw,CalendarDays:Y.CalendarDays,Clock3:Y.Clock3,X:Y.X},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:n=>typeof n=="string"&&ri.includes(n)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:n=>[0,1,2,3,4,5,6].includes(n)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:n=>typeof n=="string"&&ri.includes(n)}},emits:{"update:modelValue":n=>n==null||gt(n),decadePageChanged:n=>!0,yearPageChanged:n=>!0,monthPageChanged:n=>!0,opened:()=>!0,closed:()=>!0},setup(n,{emit:e}){const t=s.ref("none"),r=s.ref(n.startingViewDate),o=s.ref(null),i=s.ref(null),l=s.ref(null),a=s.ref({}),c=s.ref(!1),d=s.ref(!1),u=s.ref(!1);let f=null;const p=s.ref(""),h=se=>{const me=se.replace(/[a-zA-Z]/g,"0");return/0/.test(me)?me:""},m=s.computed(()=>h(n.inputFormat));let g=null,y=null;const b=()=>{g?.destroy(),g=null},w=async()=>{if(!y){const{default:se}=await Promise.resolve().then(()=>vi);y=se}return y},v=()=>{g&&g.value!==p.value&&(g.value=p.value??"")},S=se=>{const me=se&&gt(se)?No(se,n.inputFormat):"";p.value!==me&&(p.value=me),v()},N=async()=>{if(b(),!i.value||!m.value)return;g=(await w())(i.value,{mask:m.value,lazy:!0,overwrite:!1}),v()};s.watch(()=>n.modelValue,se=>{d.value&&n.typeable||S(se)},{immediate:!0}),s.watch(()=>n.inputFormat,()=>{d.value&&n.typeable||S(n.modelValue)}),s.onMounted(()=>{u.value=!0,m.value&&s.nextTick(()=>{N()})}),s.onBeforeUnmount(()=>{b()}),s.watch(m,se=>{se?s.nextTick(()=>{N()}):b()});const F=s.computed(()=>t.value!=="none"),T=s.computed(()=>n.startingView==="time"&&n.minimumView==="time"),E=s.computed(()=>n.startingView==="day"&&n.minimumView==="time"),_=se=>{n.disabled||(F.value||(r.value=n.modelValue||Dw(n.lowerLimit,n.upperLimit,r.value),e("opened")),t.value=se,s.nextTick(()=>Qe()))},A=()=>{F.value&&(f!==null&&(cancelAnimationFrame(f),f=null),t.value="none",e("closed"))},I=(se="none")=>{se==="none"?A():_(se)};s.watchEffect(()=>{n.disabled&&A()});const U=(se,me)=>{r.value=me,se==="year"?e("decadePageChanged",me):se==="month"?e("yearPageChanged",me):se==="day"&&e("monthPageChanged",me)},Z=se=>{r.value=se,n.minimumView==="year"?(A(),S(se),e("update:modelValue",se)):_("month")},V=se=>{r.value=se,n.minimumView==="month"?(A(),S(se),e("update:modelValue",se)):_("day")},z=se=>{const me=E.value?(()=>{const Ee=n.modelValue||r.value||new Date,Me=new Date(se);return Me.setHours(Ee.getHours(),Ee.getMinutes(),0,0),Me})():se;r.value=me,n.minimumView==="day"?(A(),S(me),e("update:modelValue",me)):E.value?(S(me),e("update:modelValue",me),_("day")):_("time")},oe=se=>{S(se),e("update:modelValue",se)},K=()=>{z(new Date)},G=()=>{n.clearable&&(A(),S(null),e("update:modelValue",null),r.value=n.startingViewDate)},X=()=>{F.value||_(ae.value)},ce=()=>{d.value=!0,c.value=!1,_(ae.value)},j=()=>{d.value=!1,n.typeable&&O({closeOnSuccess:!1,revertOnInvalid:!0})},L=se=>{const me=se.target;if(p.value=me?.value??"",!n.typeable)return;const Ee=Hu(p.value,n.inputFormat);Ee&&p.value===No(Ee,n.inputFormat)&&(r.value=Ee)},O=({closeOnSuccess:se,revertOnInvalid:me})=>{const Ee=i.value?.value??p.value,Me=Hu(Ee,n.inputFormat);return!!Me&&Ee===No(Me,n.inputFormat)&&Me?(r.value=Me,S(Me),e("update:modelValue",Me),se&&A(),!0):(S(n.modelValue),!1)},ne=se=>{const me=se.keyCode?se.keyCode:se.which,Ee=me===27,Me=me===13;if(Ee){A(),i.value?.blur();return}n.typeable&&Me&&(O({closeOnSuccess:!0,revertOnInvalid:!0})||i.value?.focus())},ae=s.computed(()=>{const se=ri.indexOf(n.startingView),me=ri.indexOf(n.minimumView);return se<me?n.minimumView:n.startingView}),re=s.computed(()=>n.weekDayNames?.length===7?n.weekDayNames:void 0),he=()=>n.startingView==="time"&&n.minimumView==="time"?null:_("day"),Ae=()=>{if(!i.value||!l.value)return;const se=4,me=8,Ee=i.value.getBoundingClientRect(),Me=l.value.getBoundingClientRect(),Ct=l.value.firstElementChild?.getBoundingClientRect(),et=window.innerWidth,Xe=window.innerHeight,ft=window.scrollX||window.pageXOffset,Vt=window.scrollY||window.pageYOffset,W=Math.max(160,Xe-me*2),ee=Math.min(Me.height||0,W),ue=Xe-Ee.bottom-se-me,R=Ee.top-se-me,M=ue<ee&&R>ue;let D=M?Ee.top-se-ee:Ee.bottom+se;D=Math.max(me,Math.min(D,Xe-me-ee));const H=Ct?.width||Me.width||268;let te=Ee.left;te+H>et-me&&(te=et-me-H),te<me&&(te=me);const we=M?Math.max(120,Ee.top-se-me):Math.max(120,Xe-Ee.bottom-se-me);a.value={position:"absolute",top:`${Math.round(D+Vt)}px`,left:`${Math.round(te+ft)}px`,maxHeight:`${Math.round(Math.min(W,we))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},E.value&&t.value==="day"&&(a.value.minWidth="345px")},Ce=(se,me)=>se.bottom>me.top&&se.top<me.bottom&&se.right>me.left&&se.left<me.right,$e=se=>{const me=[];let Ee=se.parentElement;for(;Ee;){const Me=window.getComputedStyle(Ee),Ye=Me.overflowY,Ct=Me.overflowX,et=["auto","scroll","hidden","clip"].includes(Ye),Xe=["auto","scroll","hidden","clip"].includes(Ct);(et||Xe)&&me.push(Ee),Ee=Ee.parentElement}return me},it=()=>{if(!i.value)return!1;const se=i.value.getBoundingClientRect(),me=new DOMRect(0,0,window.innerWidth,window.innerHeight);return Ce(se,me)?$e(i.value).every(Me=>Ce(se,Me.getBoundingClientRect())):!1},Fe=()=>{if(F.value){if(!it()){c.value=!0,A();return}Qe();return}c.value&&document.activeElement===i.value&&it()&&(c.value=!1,_(ae.value))};s.watch(t,()=>{F.value&&s.nextTick(()=>Qe())});const Qe=()=>{Ae(),f!==null&&cancelAnimationFrame(f),f=requestAnimationFrame(()=>{Ae(),f=null})};s.onMounted(()=>{window.addEventListener("resize",Fe),window.addEventListener("scroll",Fe,!0),document.addEventListener("pointerdown",We,!0)}),s.onBeforeUnmount(()=>{f!==null&&(cancelAnimationFrame(f),f=null),window.removeEventListener("resize",Fe),window.removeEventListener("scroll",Fe,!0),document.removeEventListener("pointerdown",We,!0)});const We=se=>{if(t.value==="none")return;const me=se.target;if(!me)return;const Ee=!!o.value?.contains(me),Me=!!l.value?.contains(me);!Ee&&!Me&&(c.value=!1,A())};return{rootRef:o,blur:j,focus:ce,click:X,input:p,inputRef:i,pageDate:r,renderView:I,updatePageDate:U,selectYear:Z,selectMonth:V,selectDay:z,selectToday:K,selectTime:oe,keyUp:ne,onInput:L,isTimeOnlyMode:T,isDateTimeMode:E,normalizedWeekdayNames:re,viewShown:t,goBackFromTimepicker:he,clearModelValue:G,initialView:ae,log:se=>console.log(se),popupAnchorStyle:a,popupRef:l,isMounted:u}}}),$w={ref:"rootRef",class:"relative"},Lw={class:"p-datepicker p-component p-inputwrapper relative"},Iw=["readonly","value","placeholder","disabled","tabindex"],Ow={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},Rw={class:"absolute right-8 top-1/2 -translate-y-1/2"};function Fw(n,e,t,r,o,i){const l=s.resolveComponent("Clock3"),a=s.resolveComponent("CalendarDays"),c=s.resolveComponent("X"),d=s.resolveComponent("year-picker"),u=s.resolveComponent("month-picker"),f=s.resolveComponent("time-picker"),p=s.resolveComponent("day-picker");return s.openBlock(),s.createElementBlock("div",$w,[s.createElementVNode("div",Lw,[s.createElementVNode("input",s.mergeProps({type:"text",ref:"inputRef",class:"p-inputtext p-component p-datepicker-input",readonly:!n.typeable,value:n.input},n.$attrs,{placeholder:n.placeholder,disabled:n.disabled,tabindex:n.disabled?-1:0,onInput:e[0]||(e[0]=(...h)=>n.onInput&&n.onInput(...h)),onKeyup:e[1]||(e[1]=(...h)=>n.keyUp&&n.keyUp(...h)),onBlur:e[2]||(e[2]=(...h)=>n.blur&&n.blur(...h)),onFocus:e[3]||(e[3]=(...h)=>n.focus&&n.focus(...h)),onClick:e[4]||(e[4]=(...h)=>n.click&&n.click(...h))}),null,16,Iw),s.createElementVNode("span",Ow,[n.isTimeOnlyMode?(s.openBlock(),s.createBlock(l,{key:0,class:"h-4 w-4"})):(s.openBlock(),s.createBlock(a,{key:1,class:"h-4 w-4"}))]),s.withDirectives(s.createElementVNode("div",Rw,[s.renderSlot(n.$slots,"clear",{onClear:n.clearModelValue},()=>[s.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:e[5]||(e[5]=h=>n.clearModelValue())},[s.createVNode(c,{class:"h-3 w-3"})])])],512),[[s.vShow,n.clearable&&n.modelValue]])]),n.isMounted?(s.openBlock(),s.createBlock(s.Teleport,{key:0,to:"body"},[s.withDirectives(s.createElementVNode("div",{ref:"popupRef",style:s.normalizeStyle(n.popupAnchorStyle)},[s.withDirectives(s.createVNode(d,{pageDate:n.pageDate,"onUpdate:pageDate":e[6]||(e[6]=h=>n.updatePageDate("year",h)),selected:n.modelValue,lowerLimit:n.lowerLimit,upperLimit:n.upperLimit,onSelect:n.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[s.vShow,n.viewShown==="year"]]),s.withDirectives(s.createVNode(u,{pageDate:n.pageDate,"onUpdate:pageDate":e[7]||(e[7]=h=>n.updatePageDate("month",h)),selected:n.modelValue,onSelect:n.selectMonth,lowerLimit:n.lowerLimit,upperLimit:n.upperLimit,format:n.monthListFormat,onBack:e[8]||(e[8]=h=>n.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[s.vShow,n.viewShown==="month"]]),s.withDirectives(s.createVNode(p,{pageDate:n.pageDate,"onUpdate:pageDate":e[9]||(e[9]=h=>n.updatePageDate("day",h)),selected:n.modelValue,weekStartsOn:n.weekStartsOn,lowerLimit:n.lowerLimit,upperLimit:n.upperLimit,headingFormat:n.dayPickerHeadingFormat,disabledDates:n.disabledDates,weekdayFormat:n.weekdayFormat,"allow-outside-interval":n.allowOutsideInterval,format:n.dayFormat,"custom-weekdays":n.normalizedWeekdayNames,onSelect:n.selectDay,onToday:n.selectToday,onClear:n.clearModelValue,onBack:e[10]||(e[10]=h=>n.viewShown="month")},s.createSlots({_:2},[n.isDateTimeMode?{name:"after-calendar",fn:s.withCtx(()=>[s.createVNode(f,{embedded:!0,pageDate:n.pageDate,visible:n.viewShown==="day"&&n.isDateTimeMode,selected:n.modelValue,disabledTime:n.disabledTime,onSelect:n.selectTime,onBack:n.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"])]),key:"0"}:void 0]),1032,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect","onToday","onClear"]),[[s.vShow,n.viewShown==="day"]]),s.withDirectives(s.createVNode(f,{pageDate:n.pageDate,visible:n.viewShown==="time",selected:n.modelValue,disabledTime:n.disabledTime,onSelect:n.selectTime,onBack:n.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[s.vShow,n.viewShown==="time"&&!n.isDateTimeMode]])],4),[[s.vShow,n.viewShown!=="none"]])])):s.createCommentVNode("",!0)],512)}const Pw=Be(Vw,[["render",Fw]]),ju=Be(s.defineComponent({__name:"vs-input-date2",props:{clearable:{type:Boolean,default:!0},now:{type:Boolean},editable:{type:Boolean,default:!0},time:{type:Boolean},isInfinity:{type:Boolean},dateFormat:{},mode:{default:"date"},weekStart:{},dayNames:{},maxDaysFromNow:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,r=e,{inputClass:o}=Bt(t.style),i=s.getCurrentInstance(),l=s.computed(()=>t.mode?t.mode:t.time?"datetime":"date"),a=s.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",o.value,t.customClass,{"!border-red-600":t.error}]),c=s.computed(()=>!t.modelValue&&t.now?new Date:null),d=s.computed({get:()=>E(t.modelValue??c.value,l.value)||void 0,set:j=>r("update:modelValue",_(j,l.value))}),u=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],f=s.computed(()=>{if(t.dayNames?.length)return t.dayNames.length===7?t.dayNames:u}),p=s.computed(()=>{const j=t.weekStart,L=typeof j=="string"?Number(j):j;return L===void 0||Number.isNaN(L)?1:Math.min(6,Math.max(0,L))}),h=s.computed(()=>{const j=t.maxDaysFromNow;if(j==null||j==="")return;const L=typeof j=="string"?Number(j):j;if(!Number.isFinite(L)||L<0)return;const O=new Date;return O.setHours(0,0,0,0),O.setDate(O.getDate()+L),O.setHours(23,59,59,999),O}),m=s.computed(()=>{switch(l.value){case"time":return{startingView:"time",minimumView:"time"};case"month":return{startingView:"month",minimumView:"month"};case"year":return{startingView:"year",minimumView:"year"};case"datetime":return{startingView:"day",minimumView:"time"};default:return{startingView:"day",minimumView:"day"}}}),g={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"};function y(){const j=i?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof j=="string"&&j)return j;if(j&&typeof j=="object"&&"value"in j&&j.value)return String(j.value);if(typeof localStorage<"u"){const L=localStorage.getItem("locale")||localStorage.getItem("language");if(L)return L}return"uk"}function b(){const L=i?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!L)return"";if(typeof L=="string")return L;if(typeof L=="object"){const O=y();return L[O]||L[O.split("-")[0]]||L.uk||L.en||""}return""}function w(j){return j?j.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=s.computed(()=>{const j=g[l.value]||"dd.MM.yyyy";if(l.value==="time")return j;const L=t.dateFormat||b();if(!L)return j;const O=w(L);return O?l.value==="datetime"?`${O} HH:mm`:O:j});function S(j,L){return j?L==="week"?"рррр-тиждень":j.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",L==="time"||L==="datetime"?"хх":"мм"):""}const N={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},F=s.computed(()=>{if(t.placeholder)return t.placeholder;const j=l.value;return S(v.value,j)||N[j]||""}),T=s.ref(!1);s.watch(()=>t.modelValue,j=>{j?T.value=!0:t.now||(T.value=!1)},{immediate:!0}),s.watchEffect(()=>{t.now&&!t.modelValue&&!T.value&&(r("update:modelValue",_(new Date,l.value)),T.value=!0)}),s.watch(v,()=>{r("update:modelValue",_(d.value,l.value))});function E(j,L){if(!j)return null;if(j instanceof Date&&!Number.isNaN(j.getTime()))return j;if(typeof j!="string")return null;switch(L){case"datetime":return Z(j);case"time":return oe(j);case"month":return V(j);case"year":return z(j);case"week":return K(j);case"date":default:return U(j)}}function _(j,L){if(!j)return null;const O=j instanceof Date?j:E(j,L);if(!O)return null;switch(L){case"datetime":return`${A(O)}T${I(O)}`;case"time":return I(O);case"month":return`${O.getFullYear()}-${ce(O.getMonth()+1)}`;case"year":return`${O.getFullYear()}`;case"week":{const{year:ne,week:ae}=G(O);return`${ne}-W${ce(ae)}`}case"date":default:return A(O)}}function A(j){return`${j.getFullYear()}-${ce(j.getMonth()+1)}-${ce(j.getDate())}`}function I(j){return`${ce(j.getHours())}:${ce(j.getMinutes())}`}function U(j){const L=j.split("-");if(L.length<3)return null;const O=Number(L[0]),ne=Number(L[1]),ae=parseInt(L[2],10);return!O||!ne||!ae?null:new Date(O,ne-1,ae)}function Z(j){const L=j.includes("T")?j:j.replace(" ","T"),O=new Date(L);return Number.isNaN(O.getTime())?null:O}function V(j){const[L,O]=j.split("-").map(Number);return!L||Number.isNaN(O)?null:new Date(L,(O||1)-1,1)}function z(j){const L=Number(j);return L?new Date(L,0,1):null}function oe(j){const L=j.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!L)return null;const[,O,ne,ae]=L,re=new Date;return re.setHours(Number(O),Number(ne),Number(ae||0),0),re}function K(j){const L=j.match(/^(\d{4})-W(\d{2})$/);if(!L)return null;const[,O,ne]=L,ae=Number(ne);return X(Number(O),ae)}function G(j){const L=new Date(Date.UTC(j.getFullYear(),j.getMonth(),j.getDate())),O=L.getUTCDay()||7;L.setUTCDate(L.getUTCDate()+4-O);const ne=new Date(Date.UTC(L.getUTCFullYear(),0,1)),ae=Math.ceil(((L.getTime()-ne.getTime())/864e5+1)/7);return{year:L.getUTCFullYear(),week:ae}}function X(j,L){if(!j||!L)return null;const O=new Date(j,0,1+(L-1)*7),ne=O.getDay(),ae=O;return ne<=4?ae.setDate(O.getDate()-O.getDay()+1):ae.setDate(O.getDate()+8-O.getDay()),ae}function ce(j){return String(j).padStart(2,"0")}return(j,L)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["vs-date-picker",t.customClass])},[s.createVNode(Pw,{modelValue:d.value,"onUpdate:modelValue":L[0]||(L[0]=O=>d.value=O),placeholder:F.value,disabled:t.disabled,clearable:t.clearable,typeable:t.editable,"week-day-names":f.value,"week-starts-on":p.value,"starting-view":m.value.startingView,"minimum-view":m.value.minimumView,"input-format":v.value,"upper-limit":h.value,name:t.name,class:s.normalizeClass(a.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-637c8950"]]),zw=(n,e)=>{if(!e||!Object.keys(e).length)return n;const[t,r=""]=n.split("?"),o=new URLSearchParams(r);Object.entries(e).forEach(([l,a])=>{a==null||a===""||o.set(l,String(a))});const i=o.toString();return i?`${t}?${i}`:t},Hw=(n,e,t)=>new Promise((r,o)=>{const i=new FormData;i.append("unique","true"),i.append("file",n);const l=new XMLHttpRequest;l.open("POST",e),l.upload.addEventListener("progress",a=>{if(t){if(a.lengthComputable&&a.total>0){t(Math.min(100,Math.round(a.loaded/a.total*100)));return}t(0)}}),l.addEventListener("load",()=>{try{const a=l.responseText?JSON.parse(l.responseText):{};if(l.status>=200&&l.status<300){r(a?.result??null);return}o(new Error(a?.message||a?.error||`Код помилки: ${l.status}`))}catch(a){o(a)}}),l.addEventListener("error",()=>o(new Error("Помилка мережі під час завантаження файлу"))),l.addEventListener("abort",()=>o(new Error("Завантаження файлу скасовано"))),l.send(i)}),jw=async(n,e={})=>{try{const{api:t,id:r="1",form:o="form",table:i="table",customParams:l,onProgress:a}=e,c=t||`/file/upload/uploads?id=${r||""}&form=${o||""}&table=${i||""}`,d=zw(c,l);if(n instanceof File)return await Hw(n,d,a);const u=new FormData;return u.append("unique","true"),u.append("file",n),(await fetch(d,{method:"POST",body:u}).then(p=>p.json()))?.result}catch(t){return ke.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",t),null}},Uw=async n=>{try{return await fetch(`file/delete/${n}`),!0}catch(e){return console.error(e),!1}},Uu=async n=>{try{const e=await fetch(`/file/download/${n}`);if(!e.ok)throw new Error(`Download failed with status ${e.status}`);const t=await e.blob(),o=(e.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),i=o?.[1]?decodeURIComponent(o[1].replace(/"/g,"").trim()):"",l=n.split("/").filter(Boolean).pop()||"download",a=i||l,c=document.createElement("a");c.setAttribute("download",a),c.href=window.URL.createObjectURL(t),c.click(),window.URL.revokeObjectURL(c.href)}catch(e){console.error(e.message)}},Ww=n=>{if(!n)return"";const e=n?.split(".");return e[e.length-1]},Aa=n=>{const e=Ww(n),t={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 t.imageFormat.includes(e)?"img":t.sheetsFormat.includes(e)?Y.Table:t.textsFormat.includes(e)?Y.FileCode:t.documentsFormat.includes(e)?Y.FileText:t.archivesFormat.includes(e)?Y.FileArchive:Y.FileText},Kw=["title"],qw={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"},Gw=["title"],Jw={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},rn=Be(s.defineComponent({__name:"vs-input-file-list-item",props:s.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:s.mergeModels(["click"],["update:value","update:item"]),setup(n,{emit:e}){const t=s.useModel(n,"value"),r=s.useModel(n,"item"),o=e,i=n,l=s.computed(()=>i.action),a=s.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),c=s.computed(()=>i.disabled?"opacity-50 cursor-not-allowed":i.isUploading?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),d=s.computed(()=>i.progressPercent>0?`${i.progressPercent}%`:"Завантаження..."),u=m=>typeof m=="string"?m:m?.file_path||"",f=()=>{const m=a.value;Uw(m),i.multiple&&Array.isArray(t.value)?t.value=t.value.filter(g=>u(g)!==m):t.value=""},p=()=>{a.value&&window.open(a.value,"_blank")},h=()=>{i.disabled||i.isUploading||o("click")};return(m,g)=>l.value?(s.openBlock(),s.createElementBlock("div",{key:0,title:m.title,class:s.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",c.value]),onClick:h},[m.isUploading?(s.openBlock(),s.createElementBlock("div",qw,[g[2]||(g[2]=s.createElementVNode("div",{class:"loader"},null,-1)),s.createElementVNode("span",null,s.toDisplayString(d.value),1)])):(s.openBlock(),s.createBlock(s.unref(Y.Plus),{key:1,class:"h-4 w-4"}))],10,Kw)):(s.openBlock(),s.createElementBlock("div",{key:1,title:a.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(s.unref(Aa)(a.value)),{src:`${s.unref(Aa)(a.value)} === 'img'`?`/file/resize?filepath=${a.value}&format=webp`:a.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:g[0]||(g[0]=y=>s.unref(Uu)(a.value))},null,8,["src"])),s.createElementVNode("div",Jw,[s.createElementVNode("button",{type:"button",onClick:f,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[s.createVNode(s.unref(Y.Trash2),{class:"w-4 h-4"})]),s.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"},[s.createVNode(s.unref(Y.Eye),{class:"w-4 h-4"})]),s.createElementVNode("button",{type:"button",onClick:g[1]||(g[1]=y=>s.unref(Uu)(a.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[s.createVNode(s.unref(Y.Download),{class:"w-4 h-4"})])])],8,Gw))}}),[["__scopeId","data-v-b03cac5c"]]),_a=n=>n?n.split(",").map(e=>e.trim().toLowerCase()).filter(Boolean).map(e=>e.startsWith(".")?e.slice(1):e):[],Ta=(n,e)=>!e||n.size<=e*1024*1024?!0:(ke.notify({type:"error",title:"Помилка!",message:`Файл "${n.name}" занадто великий. Максимальний розмір: ${e} МБ`,position:"right-bottom"}),!1),Ba=(n,e)=>{if(!e.length)return!0;const t=n.name.split(".").pop()?.toLowerCase()||"";return e.includes(t)?!0:(ke.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${n.name}". Дозволені формати: ${e.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},Wu=(n,e)=>{const t={},r=[];if(!n?.length)return{ok:!0,params:t,missingSources:r};const o=e?.value??{};return n.forEach(i=>{if(!i)return;const[l,a]=i.split("="),c=l?.trim(),d=a?.trim();if(!c||!d)return;const u=o[d];if(u==null||u===""){r.push(d);return}t[c]=u}),r.length?(ke.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:t,missingSources:r}):{ok:!0,params:t,missingSources:r}},Ku=(n,e)=>!e||!Array.isArray(n)?[]:n,qu=(n,e)=>e||Array.isArray(n)?null:n,Gu=n=>{if(!n)return"";const e=n.split(/[/\\]/).pop()||"",t=e.lastIndexOf(".");return t<=0||t===e.length-1?"":e.slice(t+1).toLowerCase()},Yw={class:"flex items-center flex-wrap gap-2"},Xw=["accept","multiple","disabled"],Ju=s.defineComponent({__name:"vs-input-file",props:s.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:s.mergeModels(["change"],["update:modelValue"]),setup(n,{emit:e}){const t=n,r=s.useModel(n,"modelValue"),o=e,i=s.ref(null),l=s.ref(!1),a=s.ref([]),c=s.inject("values"),d=s.inject("map-file-import-uploading",null),u=s.computed(()=>Ku(r.value,!!t.multiple)),f=s.computed(()=>qu(r.value,!!t.multiple)),p=s.computed(()=>_a(t.format)),h=s.computed(()=>Wu(t.customParams,c)),m=F=>{ke.notify({type:"error",title:"Помилка завантаження",message:F||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},g=()=>{t.disabled||l.value||h.value.ok&&i.value?.click()},y=async(F,T)=>{const E={api:t.api,customParams:Object.keys(h.value.params).length?h.value.params:void 0,onProgress:A=>{T&&(T.status="uploading",T.progressPercent=A)}},_=await jw(F,E);return _?.file_path?_.file_path:null};s.watch(l,F=>{d&&(d.value=F)},{immediate:!0});const b=s.computed(()=>a.value.filter(F=>F.status!=="done")),w=s.computed(()=>b.value[0]||null),v=F=>typeof F=="string"?F:F?.file_path||"",S=(F,T)=>({key:`${Date.now()}-${T}-${F.name}`,file:F,size:F.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),N=async F=>{const{files:T}=F.target;if(!T||T.length===0)return;if(!h.value.ok){i.value&&(i.value.value="");return}const E=Array.from(T);if(t.max_size&&E.filter(I=>!Ta(I,t.max_size)).length>0){i.value&&(i.value.value="");return}if(E.filter(A=>!Ba(A,p.value)).length>0){i.value&&(i.value.value="");return}l.value=!0,a.value=E.map((A,I)=>S(A,I));try{if(t.multiple){const Z=await Promise.all(E.map(async(K,G)=>{const X=a.value[G];X.status="uploading",X.progressPercent=0;const ce=await y(K,X);return ce?(X.status="done",X.path=ce,X.uploaded=X.size,X.progressPercent=100):(X.status="error",X.error="Помилка при завантаженні"),ce})),V=Z.filter(K=>!!K);if(V.length===0){m();return}V.length<Z.length&&m("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const z=V,oe=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...oe,...z],o("change",r.value);return}const A=E[0],I=a.value[0];I.status="uploading",I.progressPercent=0;const U=await y(A,I);if(!U){I.status="error",I.error="Помилка при завантаженні",m();return}I.status="done",I.path=U,I.uploaded=I.size,I.progressPercent=100,r.value=U,o("change",U)}catch(A){m(A?.message||void 0)}finally{l.value=!1,a.value=[],i.value&&(i.value.value="")}};return(F,T)=>(s.openBlock(),s.createElementBlock("div",Yw,[s.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:i,type:"file",accept:t.format,multiple:t.multiple,onChange:N,disabled:l.value||F.disabled},null,40,Xw),f.value?(s.openBlock(),s.createBlock(rn,{key:0,item:f.value,value:r.value,"onUpdate:value":T[0]||(T[0]=E=>r.value=E)},null,8,["item","value"])):s.createCommentVNode("",!0),t.multiple?(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(u.value,(E,_)=>(s.openBlock(),s.createBlock(rn,{key:`${_}-${v(E)}`,multiple:!0,item:E,value:r.value,"onUpdate:value":T[1]||(T[1]=A=>r.value=A)},null,8,["item","value"]))),128)),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(b.value,E=>(s.openBlock(),s.createBlock(rn,{key:E.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":E.progressPercent,title:E.file.name},null,8,["progress-percent","title"]))),128)),s.createVNode(rn,{action:"","is-uploading":!1,disabled:F.disabled||l.value,title:"Додати файли",onClick:g},null,8,["disabled"])],64)):!t.multiple&&!w.value?(s.openBlock(),s.createBlock(rn,{key:2,action:"","is-uploading":!1,disabled:F.disabled||l.value,title:"Оновити файл",onClick:g},null,8,["disabled"])):w.value?(s.openBlock(),s.createBlock(rn,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":w.value.progressPercent,title:w.value.file.name},null,8,["progress-percent","title"])):s.createCommentVNode("",!0)]))}}),Zw={class:"vs-input-file2 flex flex-col gap-4"},Qw={class:"flex items-center flex-wrap gap-2"},e1=["multiple","accept","disabled"],t1={key:0,class:"text-sm text-rose-600"},oi=s.defineComponent({__name:"vs-input-file2",props:s.mergeModels({format:{},max_size:{},api:{},multiple:{type:Boolean,default:!1},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.ref(null),o=s.ref(!1),i=s.ref(""),l=s.ref([]),a=s.inject("values"),c=s.computed(()=>!!e.multiple),d=s.computed(()=>_a(e.format)),u=s.computed(()=>{if(d.value.length)return d.value.map(E=>`.${E}`).join(",")}),f=s.computed(()=>Ku(t.value,c.value)),p=s.computed(()=>qu(t.value,c.value)),h=s.computed(()=>Wu(e.customParams,a)),m=s.computed(()=>l.value.filter(E=>E.status!=="done")),g=s.computed(()=>c.value?null:m.value[0]||null),y=s.computed(()=>{const E=m.value,_=E.reduce((I,U)=>I+U.size,0);if(!_)return 0;const A=E.reduce((I,U)=>I+Math.min(U.uploaded,U.size),0);return Math.min(100,Math.round(A/_*100))}),b=()=>{e.disabled||o.value||h.value.ok&&r.value?.click()},w=async(E,_)=>{const A=_||F(E,0);try{A.status="uploading";const I={id:"",fileName:A.file.name,subdir:e.subdir,size:A.file.size,...h.value.params},U=await fetch(`${e.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(I)});if(!U.ok)throw new Error("Не вдалося ініціалізувати завантаження");const Z=await U.json().catch(()=>({}));A.uploadId=Z.id||"",A.uploaded=Number(Z.uploaded)||0,A.progressPercent=A.size?Math.min(100,Math.round(A.uploaded/A.size*100)):0;const V=e.chunkSize??5*1024*1024;for(;A.uploaded<A.size;){const K=A.uploaded,G=Math.min(K+V,A.size),ce=await A.file.slice(K,G).arrayBuffer(),j=await fetch(`${e.api||"/file/upload2"}/${A.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${K}-${G-1}/${A.size}`,"Content-Type":"application/octet-stream"},body:ce});if(!j.ok)throw new Error("Помилка завантаження частини");const L=await j.json().catch(()=>({})),O=L.uploaded!=null?Number(L.uploaded):G;if(A.uploaded=O,A.progressPercent=A.size?Math.min(100,Math.round(A.uploaded/A.size*100)):0,L.finished||O>=A.size){const ne=Gu(A.file.name),ae=L.file_path||L.filepath||L.url||(ne?`/files/uploads/${A.uploadId}.${ne}`:`/files/uploads/${A.uploadId}`);return A.path=ae,A.status="done",N(ae),ae}}const z=Gu(A.file.name),oe=`/files/uploads/${A.uploadId}${z?`.${z}`:""}`;return A.path=oe,A.status="done",N(oe),oe}catch(I){return A.status="error",A.error=I?.message||"Помилка при завантаженні",i.value=I?.message||"Помилка при завантаженні",null}},v=E=>typeof E=="string"?E:E?.file_path||"",S=E=>!E||E.length===0?[]:Array.from(E),N=E=>{if(c.value){const _=Array.isArray(t.value)?[...t.value]:t.value?[t.value]:[];_.push(E),t.value=_;return}t.value=E},F=(E,_)=>({key:`${Date.now()}-${_}-${E.name}`,file:E,size:E.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),T=async E=>{const _=E.target,A=S(_.files);if(!A.length)return;if(!h.value.ok){_.value="";return}const I=A.filter(U=>Ta(U,e.max_size)&&Ba(U,d.value));if(!I.length){_.value="";return}try{o.value=!0,i.value="",l.value=I.map((z,oe)=>F(z,oe));const Z=(await Promise.allSettled(l.value.map(z=>w(z.file,z)))).filter(z=>z.status==="fulfilled").map(z=>z.value).filter(z=>!!z),V=l.value.filter(z=>z.status==="error").map(z=>z.file.name);if(Z.length===0){i.value="Не вдалося завантажити файл";return}V.length>0?ke.notify({type:"warning",title:"Частина файлів не завантажилась",message:V.join(", "),position:"right-bottom"}):ke.notify({type:"success",title:"Файл завантажено",message:I.length>1?`Завантажено ${Z.length} файлів`:I[0].name,position:"right-bottom"})}finally{o.value=!1,l.value=[],_.value=""}};return(E,_)=>(s.openBlock(),s.createElementBlock("div",Zw,[s.createElementVNode("div",Qw,[s.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:c.value,accept:u.value,disabled:o.value||e.disabled,onChange:T},null,40,e1),c.value?(s.openBlock(!0),s.createElementBlock(s.Fragment,{key:0},s.renderList(f.value,(A,I)=>(s.openBlock(),s.createBlock(rn,{key:`${I}-${v(A)}`,multiple:!0,item:A,value:t.value,"onUpdate:value":_[0]||(_[0]=U=>t.value=U)},null,8,["item","value"]))),128)):p.value?(s.openBlock(),s.createBlock(rn,{key:1,item:p.value,value:t.value,"onUpdate:value":_[1]||(_[1]=A=>t.value=A)},null,8,["item","value"])):s.createCommentVNode("",!0),c.value?(s.openBlock(!0),s.createElementBlock(s.Fragment,{key:2},s.renderList(m.value,A=>(s.openBlock(),s.createBlock(rn,{key:A.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":A.progressPercent,title:A.file.name},null,8,["progress-percent","title"]))),128)):g.value?(s.openBlock(),s.createBlock(rn,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":g.value.progressPercent,title:g.value.file.name},null,8,["progress-percent","title"])):s.createCommentVNode("",!0),s.createVNode(rn,{action:"","is-uploading":!1,disabled:e.disabled||o.value,"progress-percent":y.value,title:c.value?"Додати файли":"Оновити файл",onClick:b},null,8,["disabled","progress-percent","title"])]),i.value?(s.openBlock(),s.createElementBlock("p",t1,s.toDisplayString(i.value),1)):s.createCommentVNode("",!0)]))}});function n1(n){let e="";for(let r=0;r<n.length;r+=32768)e+=String.fromCharCode(...n.subarray(r,r+32768));return btoa(e)}async function Yu(n){const e=await n.arrayBuffer();return{name:n.name,content:n1(new Uint8Array(e))}}function Na(n,e="application/octet-stream"){const t=atob(n),r=new Uint8Array(t.length);for(let o=0;o<t.length;o++)r[o]=t.charCodeAt(o);return new Blob([r],{type:e})}function Xu(n,e="application/octet-stream"){return URL.createObjectURL(Na(n,e))}function Zu(n){const e=Na(n.content),t=document.createElement("a");t.href=window.URL.createObjectURL(e),t.setAttribute("download",n.name),t.click(),window.URL.revokeObjectURL(t.href)}function Da(n){if(!n||typeof n!="object"||Array.isArray(n))return!1;const e=n;return typeof e.name=="string"&&typeof e.content=="string"&&!!e.content}const r1={class:"vs-input-file64 flex flex-col gap-2"},o1={class:"flex items-center flex-wrap gap-2"},s1=["multiple","accept","disabled"],i1=["title"],l1=["src"],a1={key:1,class:"flex h-full w-full flex-col items-center justify-center gap-1 px-2 text-slate-500"},c1={class:"line-clamp-2 text-center text-[10px] text-slate-600"},d1={class:"absolute inset-0 hidden items-center justify-center gap-x-2 bg-black/50 group-hover:flex"},u1=["disabled","onClick"],f1=["onClick"],p1=["onClick"],h1=["title"],m1={class:"line-clamp-2 max-w-full break-words text-center text-[11px] font-semibold leading-snug"},g1=["title"],y1={key:0,class:"text-sm text-rose-600"},si=s.defineComponent({__name:"vs-input-file64",props:s.mergeModels({format:{},multiple:{type:Boolean,default:!1},multi:{type:Boolean},max_size:{default:10},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=new Set(["tiff","jpg","jpeg","png","svg","ico","webp"]),t=n,r=s.useModel(n,"modelValue"),o=s.ref(null),i=s.ref(!1),l=s.ref("Обробка…"),a=s.ref(""),c=s.ref([]),d=s.ref([]),u=s.computed(()=>!!(t.multiple||t.multi)),f=s.computed(()=>_a(t.format)),p=s.computed(()=>{if(f.value.length)return f.value.map(T=>`.${T}`).join(",")});function h(){c.value.forEach(T=>URL.revokeObjectURL(T)),c.value=[]}function m(T){return c.value.push(T),T}function g(T){const E=T.name.split(".").pop()?.toLowerCase()||"",_=Aa(T.name);return{...T,url:m(Xu(T.content)),isImage:e.has(E),icon:_==="img"?"img":_}}function y(){if(h(),u.value){const T=Array.isArray(r.value)?r.value.filter(Da):[];d.value=T.map(g);return}d.value=Da(r.value)?[g(r.value)]:[]}async function b(){await s.nextTick(),await new Promise(T=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>T())})})}s.watch([()=>r.value,u],()=>y(),{immediate:!0,deep:!0}),s.onBeforeUnmount(()=>{h()});const w=()=>{t.disabled||i.value||o.value?.click()},v=T=>{if(u.value&&Array.isArray(r.value)){r.value=r.value.filter((E,_)=>_!==T);return}r.value=null},S=T=>{T.url&&window.open(T.url,"_blank")},N=T=>{Zu({name:T.name,content:T.content})},F=async T=>{const E=T.target,_=E.files?Array.from(E.files):[];if(!_.length)return;const A=_.filter(I=>Ta(I,t.max_size)&&Ba(I,f.value));if(!A.length){E.value="";return}i.value=!0,l.value=A.length>1?`Обробка… (${A.length})`:`Обробка… ${A[0].name}`,a.value="",await b();try{const I=await Promise.all(A.map(U=>Yu(U)));if(u.value){const U=Array.isArray(r.value)?r.value.filter(Da):[];r.value=[...U,...I]}else r.value=I[0]||null;ke.notify({type:"success",title:"Файл додано",message:I.length>1?`Додано ${I.length} файлів`:I[0].name,position:"right-bottom"})}catch(I){console.error(I),a.value="Помилка при обробці файлу",ke.notify({type:"error",title:"Помилка!",message:"Помилка при обробці файлу",position:"right-bottom"})}finally{i.value=!1,E.value=""}};return(T,E)=>(s.openBlock(),s.createElementBlock("div",r1,[s.createElementVNode("div",o1,[s.createElementVNode("input",{ref_key:"fileInput",ref:o,type:"file",class:"hidden",multiple:u.value,accept:p.value,disabled:T.disabled||i.value,onChange:F},null,40,s1),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(d.value,(_,A)=>(s.openBlock(),s.createElementBlock("div",{key:`${A}-${_.name}`,class:"group relative h-[120px] w-[120px] overflow-hidden rounded-lg border border-dashed border-[#CFD9E0] text-gray-300",title:_.name},[_.isImage?(s.openBlock(),s.createElementBlock("img",{key:0,src:_.url,alt:"",class:"h-full w-full object-cover"},null,8,l1)):(s.openBlock(),s.createElementBlock("div",a1,[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(_.icon),{class:"h-8 w-8"})),s.createElementVNode("span",c1,s.toDisplayString(_.name),1)])),s.createElementVNode("div",d1,[s.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-red-500",disabled:T.disabled||i.value,onClick:I=>v(A)},[s.createVNode(s.unref(Y.Trash2),{class:"h-4 w-4"})],8,u1),s.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-emerald-600",onClick:I=>S(_)},[s.createVNode(s.unref(Y.Eye),{class:"h-4 w-4"})],8,f1),s.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-blue-500",onClick:I=>N(_)},[s.createVNode(s.unref(Y.Download),{class:"h-4 w-4"})],8,p1)])],8,i1))),128)),i.value?(s.openBlock(),s.createElementBlock("div",{key:0,class:"box-border flex h-[120px] w-[120px] flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-blue-400 bg-blue-50 p-2 text-blue-600",title:l.value},[E[0]||(E[0]=s.createElementVNode("div",{class:"h-6 w-6 shrink-0 animate-spin rounded-full border-[3px] border-blue-100 border-t-blue-600"},null,-1)),s.createElementVNode("span",m1,s.toDisplayString(l.value),1)],8,h1)):!T.disabled&&(u.value||!d.value.length)?(s.openBlock(),s.createElementBlock("div",{key:1,class:"flex h-[120px] w-[120px] cursor-pointer items-center justify-center rounded-lg border border-dashed border-[#CFD9E0] text-gray-300 transition-all hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500",title:u.value?"Додати файли":"Обрати файл",onClick:w},[s.createVNode(s.unref(Y.Plus),{class:"h-4 w-4"})],8,g1)):s.createCommentVNode("",!0)]),a.value?(s.openBlock(),s.createElementBlock("p",y1,s.toDisplayString(a.value),1)):s.createCommentVNode("",!0)]))}}),b1={class:"flex items-center justify-center h-[30px] w-[30px]"},k1={class:"min-w-0 flex-1"},w1={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},x1={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},v1={class:"px-[5px]"},C1={class:""},ii=s.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(n){const e=n,t=s.computed(()=>{try{return new Date(e.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(o){if(o<1024)return`${o} B`;const i=o/1024;return i<1024?`${i.toFixed(2)} KB`:`${(i/1024).toFixed(2)} MB`}return(o,i)=>(s.openBlock(),s.createElementBlock(s.Fragment,null,[s.createElementVNode("div",b1,[s.createVNode(s.unref(Y.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),s.createElementVNode("div",k1,[s.createElementVNode("p",w1,s.toDisplayString(o.item?.uploaded_name),1),s.createElementVNode("p",x1,[s.createElementVNode("span",null,s.toDisplayString(o.item?.username),1),s.withDirectives(s.createElementVNode("span",v1,"|",512),[[s.vShow,o.item?.username]]),s.createElementVNode("span",null,s.toDisplayString(t.value),1),i[0]||(i[0]=s.createElementVNode("span",{class:"px-[5px]"},"|",-1)),s.createElementVNode("span",C1,s.toDisplayString(r(o.item?.size)),1)])])],64))}}),S1={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full min-w-0"},E1={key:0,class:"flex w-full min-w-0 gap-x-3 items-center"},M1={key:1,class:"flex min-w-0 gap-x-3 w-full items-center"},A1={key:2,class:"flex min-w-0 gap-x-3 w-full items-center"},_1=["href"],T1={key:3,class:"flex min-w-0 gap-x-3 w-full items-center"},B1={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},N1={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"},D1={class:"inline-block"},V1={class:"inline-block"},$1={class:"inline-block"},L1=s.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(n,{emit:e}){const t=n,r=e;function o(f){return["pdf","json"].includes(f.ext)}function i(f){return["ppt","pptx","doc","docx","xls","xlsx"].includes(f.ext)}function l(f){const p=document.createElement("a");p.setAttribute("download",f?.uploaded_name),p.href=f?.file_path,p.click()}function a(f){f?.file_path&&window.open(f.file_path,"_blank")}async function c(){try{await fetch(`${t.prefix}/widget/file/${t.item.entity_id}/${t.item.file_id}`,{method:"DELETE"}),r("update")}catch(f){console.error(f)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function u(f){(t.item.ext==="jpg"||t.item.ext==="png")&&r("openLightbox",{item:t.item,index:f})}return(f,p)=>(s.openBlock(),s.createElementBlock("div",S1,[f.item.ext==="jpg"||f.item.ext==="png"?(s.openBlock(),s.createElementBlock("div",E1,[s.createElementVNode("div",{class:"min-w-0 flex-1 cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=h=>u(f.index))},[s.createVNode(ii,{item:f.item},null,8,["item"])])])):o(f.item)?(s.openBlock(),s.createElementBlock("div",M1,[s.createVNode(ii,{item:f.item},null,8,["item"])])):i(f.item)?(s.openBlock(),s.createElementBlock("div",A1,[s.createElementVNode("a",{href:`/api/file-preview?id=${f.item.file_id}`,target:"_blank",class:"flex min-w-0 gap-x-3 w-full items-center"},[s.createVNode(ii,{item:f.item},null,8,["item"])],8,_1)])):(s.openBlock(),s.createElementBlock("div",T1,[s.createVNode(ii,{item:f.item},null,8,["item"])])),s.createElementVNode("div",B1,[s.createElementVNode("div",N1,[s.createElementVNode("div",D1,[s.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]=h=>a(f.item))},[s.createVNode(s.unref(Y.Eye),{class:"h-4 w-4"})])]),s.createElementVNode("div",V1,[s.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]=h=>l(f.item))},[s.createVNode(s.unref(Y.Download),{class:"h-4 w-4"})])]),p[4]||(p[4]=s.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),s.createElementVNode("div",$1,[s.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]=h=>d())},[s.createVNode(s.unref(Y.Trash2),{class:"h-4 w-4"})])])])])]))}}),I1={class:"flex flex-col widget-file min-w-0 w-full xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700"},O1={class:"flex w-full mb-[12px] items-center gap-x-2"},R1={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},F1={class1:"ml-auto"},P1={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"},z1={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},H1={class:"relative"},j1={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},U1={key:1,class:"space-y-3 max-h-[300px] min-w-0 overflow-x-hidden 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"},W1={key:0},Qu=s.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(n,{emit:e}){const t=n,r=s.inject("form"),o=s.computed(()=>r.value.formId),i=s.ref(!1),l=s.ref(0),a=e,c=s.ref(!1),d=s.ref({}),u=s.ref([]),f=s.ref(""),p=s.computed(()=>Array.isArray(u.value)?u.value.filter(v=>v.ext==="jpg"||v.ext==="png").map(v=>v?.file_path):[]),h=s.computed(()=>f.value===""?u.value:u.value.filter(v=>v?.uploaded_name?.includes(f.value))),m=v=>{const S=p.value.findIndex(N=>N===v.item.file_path);S!==-1&&(i.value=!0,l.value=S)},g=async()=>{try{const v=await fetch(`${t.prefix}/widget/file/${o.value}`).then(S=>S.json());u.value=v?.rows}catch(v){console.error(v)}},y=async v=>{await Promise.all(Array.from(v.target.files).map(async S=>{const N=new FormData;N.append("file",S);try{const F=`${t.prefix}/widget/file/${o.value}`,T=await fetch(F,{method:"POST",body:N});return T.ok?(a("update","file-list"),S):(ke.notify({type:T.status>=400&&T.status<500?"warning":"error",title:"Error",message:`Error code: ${T.status}`}),null)}catch(F){return ke.notify({type:"error",title:"Error",message:F.message||"Unknown error"}),console.error(F),null}})),await g()},b=v=>{const S={...v};return v.cancel||(S.cancel=()=>{c.value=!1}),v.updateListOnConfirm&&(S.confirm=async()=>{await v.confirm(),c.value=!1,g()}),S},w=v=>{d.value=b(v),c.value=!0};return s.watch(o,v=>{v&&g()}),s.onMounted(()=>{o.value&&g()}),(v,S)=>{const N=s.resolveComponent("Lightbox"),F=s.resolveComponent("MessageBox");return s.openBlock(),s.createElementBlock("div",I1,[s.createElementVNode("div",O1,[s.createElementVNode("h2",R1," Файлів: "+s.toDisplayString(u.value?.length),1),s.createElementVNode("div",F1,[s.createElementVNode("label",null,[s.createElementVNode("input",{type:"file",class:"hidden",onChange:S[0]||(S[0]=T=>y(T))},null,32),s.createElementVNode("div",P1,[s.createVNode(s.unref(Y.Upload),{class:"h-4 w-4"})])])])]),u.value?.length>4?(s.openBlock(),s.createElementBlock("div",z1,[s.createElementVNode("div",null,[s.createElementVNode("div",H1,[s.createElementVNode("div",j1,[s.createVNode(s.unref(Y.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),s.withDirectives(s.createElementVNode("input",{type:"text","onUpdate:modelValue":S[1]||(S[1]=T=>f.value=T),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),[[s.vModelText,f.value,void 0,{trim:!0}]])])])])):s.createCommentVNode("",!0),u.value?.length?(s.openBlock(),s.createElementBlock("div",U1,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(h.value,(T,E)=>(s.openBlock(),s.createBlock(L1,{key:E,prefix:v.prefix,item:T,index:E,onUpdate:S[2]||(S[2]=_=>v.$emit("update","file-list")),onOpenModal:S[3]||(S[3]=_=>w(_)),onOpenLightbox:S[4]||(S[4]=_=>m(_))},null,8,["prefix","item","index"]))),128)),h.value.length?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",W1,S[8]||(S[8]=[s.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):s.createCommentVNode("",!0),s.createVNode(N,{modelValue:i.value,"onUpdate:modelValue":S[5]||(S[5]=T=>i.value=T),startIndex:l.value,"onUpdate:index":S[6]||(S[6]=T=>l.value=T),images:p.value},null,8,["modelValue","startIndex","images"]),s.createVNode(F,s.mergeProps({modelValue:c.value,"onUpdate:modelValue":S[7]||(S[7]=T=>c.value=T),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),K1={class:"flex items-center justify-between"},q1={class:"text-[16px] text-gray-900 font-medium"},G1={class:"grid gap-3"},J1=Be(s.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(n){const e=n,t=s.ref(e.isOpen);return s.watch(()=>e.isOpen,r=>{t.value=r}),(r,o)=>(s.openBlock(),s.createElementBlock("div",null,[s.createElementVNode("div",K1,[s.createElementVNode("p",q1,s.toDisplayString(n.title),1),s.createVNode(ya,{modelValue:t.value,"onUpdate:modelValue":o[0]||(o[0]=i=>t.value=i),style:s.normalizeStyle(n.style)},null,8,["modelValue","style"])]),s.createVNode(s.Transition,{name:"slide-fade"},{default:s.withCtx(()=>[s.withDirectives(s.createElementVNode("div",G1,[s.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[s.vShow,t.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),Y1={class:"text-[16px] text-gray-900 font-medium"},X1={class:"grid gap-3"},Z1=Be(s.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(n){const e=n,t=s.ref(e.isOpen);return s.watch(()=>e.isOpen,r=>{t.value=r}),(r,o)=>(s.openBlock(),s.createElementBlock("div",null,[s.createElementVNode("button",{type:"button",onClick:o[0]||(o[0]=i=>t.value=!t.value),class:"flex items-center gap-2"},[s.createVNode(s.unref(Y.ChevronDown),{class:s.normalizeClass(["h-4 w-4 duration-300",[t.value?"-rotate-180":""]])},null,8,["class"]),s.createElementVNode("span",Y1,s.toDisplayString(n.title),1)]),s.createVNode(s.Transition,{name:"slide-fade"},{default:s.withCtx(()=>[s.withDirectives(s.createElementVNode("div",X1,[s.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[s.vShow,t.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),Q1={class:"flex items-center justify-between"},ex={switcher:J1,accordion:Z1,default:s.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(n){return(e,t)=>(s.openBlock(),s.createElementBlock("div",null,[s.createElementVNode("div",Q1,[s.createElementVNode("p",null,s.toDisplayString(n.title),1)]),s.renderSlot(e.$slots,"default")]))}})},Kt={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},tx=(n,e)=>String(n)===String(e),nx=(n,e)=>String(n)!==String(e),rx=(n,e)=>n>e,ox=(n,e)=>n>=e,sx=(n,e)=>n<e,ix=(n,e)=>n<=e,lx=(n,e)=>Array.isArray(e)&&e.length===2?n>=e[0]&&n<=e[1]:!1,ax=(n,e)=>String(n).startsWith(String(e)),cx=(n,e)=>String(n).endsWith(String(e)),dx=(n,e)=>String(n).includes(String(e)),ux=(n,e)=>Array.isArray(e)?e.includes(n):!1,fx=(n,e)=>Array.isArray(e)?!e.includes(n):!0,px=(n,e)=>{if(!e)return!0;switch(e?.[1]){case Kt.Equal:return tx(n,e?.[2]);case Kt.Inequal:return nx(n,e?.[2]);case Kt.Higer:return rx(n,e?.[2]);case Kt.HigerOrEqual:return ox(n,e?.[2]);case Kt.Lower:return sx(n,e?.[2]);case Kt.LowerOrEqual:return ix(n,e?.[2]);case Kt.Between:return lx(n,e?.[2]);case Kt.StartWith:return ax(n,e?.[2]);case Kt.EndWith:return cx(n,e?.[2]);case Kt.Contain:return dx(n,e?.[2]);case Kt.In:return ux(n,e?.[2]);case Kt.NotIn:return fx(n,e?.[2]);default:return!0}};function ef(n,e,t){return e==null||!Array.isArray(e)||e.length===0?!0:(Array.isArray(e[0])?e:[e]).every(o=>{if(!Array.isArray(o)||o.length<2)return!0;const i=o[0],l=t?n?.[t]?.[i]??n?.[i]:n?.[i];return px(l,o)})}const tf={1:"col-span-12 md:col-span-1",2:"col-span-12 md:col-span-2",3:"col-span-12 md:col-span-3",4:"col-span-12 md:col-span-4",5:"col-span-12 md:col-span-5",6:"col-span-12 md:col-span-6",7:"col-span-12 md:col-span-7",8:"col-span-12 md:col-span-8",9:"col-span-12 md:col-span-9",10:"col-span-12 md:col-span-10",11:"col-span-12 md:col-span-11",12:"col-span-12 md:col-span-12"};function hx(n,e=!1){if(e)return tf[12];const t=Number(n),r=Number.isFinite(t)&&t>=1&&t<=12?Math.round(t):12;return tf[r]}const mx={class:"grid grid-cols-12 gap-6 w-full"},nf=s.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(n){const e=n,t=s.inject("values",s.ref({})),r=s.inject("form"),o=s.computed(()=>e.schema?.filter(a=>ef(t.value,a?.conditions,e.name||void 0))),i=s.computed(()=>ex[e.view]),l=s.computed(()=>{if(t.value||(t.value={}),!e.name)return t.value;const a=t.value[e.name];if(a)return a;const c={};return t.value={...t.value,[e.name]:c},c});return(a,c)=>n.schema?.length?(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.value),{key:0,title:n.title,style:s.normalizeStyle(n.style)},{default:s.withCtx(()=>[s.createElementVNode("div",mx,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(o.value,d=>(s.openBlock(),s.createElementBlock("div",{key:d.name,class:s.normalizeClass(s.unref(hx)(d.col))},[s.createVNode(Tf,s.mergeProps({ref_for:!0},d,{item:d,modelValue:l.value[d.name],"onUpdate:modelValue":u=>l.value[d.name]=u,style:n.style,error:s.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"])],2))),128))])]),_:1},8,["title","style"])):s.createCommentVNode("",!0)}});function gx(n){return!n||typeof n!="string"?{}:n.split("#").reduce((e,t)=>{const[r,...o]=t.split("=");return!r||!o.length||(e[r]=o.join("=")),e},{})}function yx(n,e){const t=Array.isArray(n)?n.find(r=>(r?.name??r?.id??r?.key)===e):n?.[e];return!t||typeof t!="object"?e:t["label:uk"]||t.label||t.ua||t.uk||e}const rf=({props:n,fetchOptionByValue:e,optionsList:t,selectedOption:r,modelValue:o,onCreated:i})=>{const l=s.ref(!1),a=s.ref({}),c=s.ref([]),d=s.ref(null),u=s.computed(()=>n.add?.title||"Додати"),f=s.computed(()=>n.add?.token||n.add?.model||""),p=s.computed(()=>n.add?.pk||"id");return{isOpenAdd:l,addData:a,addSchema:c,addForm:d,addTitle:u,addOption:async()=>{if(!f.value)return;const g=d?.value.validate();if(g){ke.notify({title:"Помилка валідації",type:"warning",message:`Перевірте поля: ${Object.keys(g).map(y=>yx(c.value,y)).join(", ")}`});return}try{const y={...gx(n.add?.obj),...a.value},b=n.add?.api??`/api/table/${f.value}`,w=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(y)}),v=await w.json().catch(()=>({})),S=v?.error||v?.message,N=Number(v?.code)>=400;if(!w.ok||N){ke.notify({title:"Помилка",type:"error",message:S||`Код помилки: ${v?.code||w.status}`});return}const F=v?.rows?.[0],T=v?.[p.value]??v?.id??F?.[p.value]??F?.id;if(!T){ke.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const E=await e(T);E&&(t.value.some(A=>String(A?.id)===String(E.id))||t.value.push(E)),i?await i(E,T):E&&(r.value=E,o.value=T),l.value=!1,ke.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(y){ke.notify({title:"Помилка",type:"error",message:y?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!n.add)return null;const g=await fetch(`/api/template/form/${n.add.form}`).then(y=>y.json());return c.value=g.schema,a.value={},l.value=!0,null}}},bx=["aria-expanded","data-focus"],kx={class:"vs-input-select__value-area relative flex flex-1 items-center gap-1 py-0.5 pr-0 overflow-hidden h-full min-w-0"},wx={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},xx={class:"flex items-center gap-1 min-w-0"},vx=["title"],Cx=["innerHTML"],Sx=["onClick"],Ex={class:"flex-1 min-w-[2px]"},Mx=["placeholder"],Ax=["title"],_x=["innerHTML"],Tx={key:3,class:"truncate flex-1 min-w-0"},Bx={key:2,class:"flex-1 min-w-[2px]"},Nx=["placeholder"],Dx={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Vx={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},$x=["disabled"],Lx={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Ix=["disabled","title"],Ox=s.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(n,{emit:e}){const t=n,r=e,o=s.computed({get:()=>t.keyWord,set:i=>r("update:keyWord",i)});return(i,l)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white text-sm",i.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":i.isOpen,"aria-haspopup":"listbox",onKeydown:l[10]||(l[10]=(...a)=>i.onControlKeydown&&i.onControlKeydown(...a)),onClick:l[11]||(l[11]=(...a)=>i.onControlClick&&i.onControlClick(...a)),"data-focus":i.isOpen||i.inputFocus?"true":"false",ref:i.setTriggerRef},[s.createElementVNode("div",kx,[i.isMulti?(s.openBlock(),s.createElementBlock("div",wx,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(i.selectedOptions,a=>(s.openBlock(),s.createElementBlock("div",{key:a.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[s.createElementVNode("div",xx,[i.shouldShowColorDot(a)?(s.openBlock(),s.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:s.normalizeStyle({backgroundColor:a?.color})},null,4)):s.createCommentVNode("",!0),!i.optionTemplate&&i.optionHasIcon(a)?(s.openBlock(),s.createElementBlock("span",{key:1,class:s.normalizeClass(i.iconWrapperClass),style:s.normalizeStyle(i.getIconColorStyle(a)),"aria-hidden":"true"},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.resolveOptionIcon(a)),{class:"w-full h-full",focusable:"false"}))],6)):s.createCommentVNode("",!0),s.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:i.getLabel(a)},[i.optionTemplate?(s.openBlock(),s.createElementBlock("div",{key:0,innerHTML:i.renderTemplate(a)},null,8,Cx)):(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[s.createTextVNode(s.toDisplayString(a.text),1)],64))],8,vx)]),s.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:s.withModifiers(c=>i.onRemoveSelected(a.id),["stop"])},[s.createVNode(s.unref(Y.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Sx)]))),128)),s.createElementVNode("div",Ex,[!i.disabled&&i.search?s.withDirectives((s.openBlock(),s.createElementBlock("input",{key:0,ref:i.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 py-0 px-2.5 text-sm text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:i.selectedIds.length?" ":i.placeholder,"onUpdate:modelValue":l[0]||(l[0]=a=>o.value=a),onFocus:l[1]||(l[1]=(...a)=>i.onInputFocus&&i.onInputFocus(...a)),onBlur:l[2]||(l[2]=(...a)=>i.onInputBlur&&i.onInputBlur(...a)),onKeydown:l[3]||(l[3]=(...a)=>i.onInputKeydown&&i.onInputKeydown(...a))},null,40,Mx)),[[s.vModelText,o.value]]):s.createCommentVNode("",!0)])])):!i.isMulti&&i.selectedOptionLabel&&o.value===""?(s.openBlock(),s.createElementBlock("div",{key:1,class:s.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",i.disabled||!i.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:i.selectedOptionLabel},[i.shouldShowColorDot(i.selectedOption)?(s.openBlock(),s.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:s.normalizeStyle({backgroundColor:i.selectedOption?.color})},null,4)):s.createCommentVNode("",!0),!i.optionTemplate&&i.optionHasIcon(i.selectedOption)?(s.openBlock(),s.createElementBlock("span",{key:1,class:s.normalizeClass(i.iconWrapperClass),style:s.normalizeStyle(i.getIconColorStyle(i.selectedOption)),"aria-hidden":"true"},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.resolveOptionIcon(i.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):s.createCommentVNode("",!0),i.optionTemplate?(s.openBlock(),s.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:i.renderTemplate(i.selectedOption)},null,8,_x)):(s.openBlock(),s.createElementBlock("span",Tx,s.toDisplayString(i.selectedOption?.text),1))],10,Ax)):s.createCommentVNode("",!0),!i.isMulti&&!i.disabled&&i.search?(s.openBlock(),s.createElementBlock("div",Bx,[s.withDirectives(s.createElementVNode("input",{ref:i.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 py-0 px-2.5 text-sm text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:i.selectedOptionLabel?" ":i.placeholder,"onUpdate:modelValue":l[4]||(l[4]=a=>o.value=a),onFocus:l[5]||(l[5]=(...a)=>i.onInputFocus&&i.onInputFocus(...a)),onBlur:l[6]||(l[6]=(...a)=>i.onInputBlur&&i.onInputBlur(...a)),onKeydown:l[7]||(l[7]=(...a)=>i.onInputKeydown&&i.onInputKeydown(...a))},null,40,Nx),[[s.vModelText,o.value]])])):!i.isMulti&&i.disabled&&(!i.selectedOptionLabel||o.value!=="")?(s.openBlock(),s.createElementBlock("div",Dx,s.toDisplayString(i.placeholder),1)):s.createCommentVNode("",!0)]),s.createElementVNode("div",Vx,[i.showClear?(s.openBlock(),s.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:i.disabled,onClick:l[8]||(l[8]=s.withModifiers((...a)=>i.onClearSelected&&i.onClearSelected(...a),["stop"]))},[s.createVNode(s.unref(Y.X),{class:"h-4 w-4"})],8,$x)):s.createCommentVNode("",!0),i.showClear?(s.openBlock(),s.createElementBlock("div",Lx)):s.createCommentVNode("",!0),s.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:i.disabled,onClick:l[9]||(l[9]=s.withModifiers((...a)=>i.onToggleSelect&&i.onToggleSelect(...a),["stop"])),title:i.isOpen?"Закрити список":"Відкрити список"},[s.createVNode(s.unref(Y.ChevronDown),{class:"h-4 w-4"})],8,Ix)])],42,bx))}}),Rx=["aria-disabled","onMousedown"],Fx={class:"leading-[19px]"},Px=["innerHTML"],zx={key:1,class:"px-3 py-2 text-center text-gray-500"},Hx=s.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(n){return(e,t)=>(s.openBlock(),s.createBlock(s.Teleport,{to:"body"},[e.isOpen?(s.openBlock(),s.createElementBlock("div",{key:0,ref:e.setDropdownRef,class:"fixed z-[3000] rounded bg-white text-sm shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:s.normalizeStyle(e.dropdownStyle),role:"listbox"},[s.createElementVNode("div",{class:"overflow-y-auto py-1",style:s.normalizeStyle({maxHeight:e.dropdownStyle.maxHeight||"300px"}),ref:e.setListRef},[e.filteredOptionsList.length?(s.openBlock(!0),s.createElementBlock(s.Fragment,{key:0},s.renderList(e.filteredOptionsList,(r,o)=>(s.openBlock(),s.createElementBlock("div",{key:r.id,ref_for:!0,ref:i=>e.setItemRef(i,o),class:s.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",e.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",e.selectedNavIndex===o&&!e.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":e.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:s.withModifiers(i=>e.onOptionClick(r),["prevent","stop"])},[e.shouldShowColorDot(r)?(s.openBlock(),s.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:s.normalizeStyle({backgroundColor:r?.color})},null,4)):s.createCommentVNode("",!0),!e.optionTemplate&&e.optionHasIcon(r)&&e.resolveOptionIcon(r)?(s.openBlock(),s.createElementBlock("span",{key:1,class:s.normalizeClass(e.iconWrapperClass),style:s.normalizeStyle(e.getIconColorStyle(r)),"aria-hidden":"true"},[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(e.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):s.createCommentVNode("",!0),s.createElementVNode("div",Fx,[e.optionTemplate?(s.openBlock(),s.createElementBlock("div",{key:0,innerHTML:e.renderTemplate(r)},null,8,Px)):(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[s.createTextVNode(s.toDisplayString(r.text),1)],64))])],42,Rx))),128)):(s.openBlock(),s.createElementBlock("div",zx," No options "))],4)],4)):s.createCommentVNode("",!0)]))}}),jx={class:"flex justify-end items-center gap-x-2 py-3 px-4 border-t border-gray-200 w-full"},Ux=["onClick"],Wx=["disabled"],Kx="__autoMeta",of="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",Va=Be(s.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(n,{emit:e}){const t=n,r=e,o=s.computed(()=>t.multiple),i=s.computed(()=>t.disabled),l=s.computed(()=>t.search);Bt(t.style);const a=s.computed({get:()=>t.modelValue,set:q=>r("update:modelValue",q)});(a.value===null||a.value===void 0||a.value==="")&&t.defaultValue!=null&&(a.value=t.defaultValue);const c=s.ref(null),d=s.ref(null),u=s.ref(null),f=s.ref(null),p=s.ref(!1),h=s.ref(!1),m=s.ref(null),g=s.ref(-1),y=s.ref([]),b=s.ref(""),w=s.ref(null),v=q=>{d.value=q},S=q=>{w.value=q},N=q=>{f.value=q},F=q=>{u.value=q},T=(q,ie)=>{y.value[ie]=q},E=s.ref({}),_=s.ref([]),A=s.computed(()=>{if(!_.value.length)return[];const q=Ce.value,ie=new Map(q.map($=>[$.id?.toString(),$]));return _.value.map($=>ie.get($?.toString())).filter($=>!!$)}),I=s.computed(()=>t.placeholder||"Select..."),U=s.computed(()=>ce(m.value)),Z=s.computed(()=>i.value?!1:o.value?_.value.length>0:a.value!==null&&a.value!==void 0&&a.value!==""),V=q=>o.value?_.value.some(ie=>ie?.toString()===q?.toString()):a.value?.toString()===q?.toString(),z=s.computed(()=>{let q=Ce.value??[];if(!t.data&&b.value.trim()!==""){const ie=b.value.toLowerCase();q=q.filter($=>{const le=ce($).toLowerCase(),Pe=$.text?.toLowerCase?.()||"";return le.includes(ie)||Pe.includes(ie)})}if(o.value&&_.value.length){const ie=new Set(_.value.map($=>$?.toString()));q=q.filter($=>!ie.has($.id?.toString()))}return q}),oe=s.inject("values"),K=s.inject("field-props"),G=s.computed(()=>t.slot??t?.optionTemplate??""),X=q=>Ys(q,G.value),ce=q=>Xs(q,G.value),j=s.computed(()=>qs(G.value)),L=q=>Ao(q),O=q=>!!(!j.value&&Kn(q)&&!L(q)),ne=q=>{const ie=Kn(q);return ie?{color:ie}:void 0},ae=q=>!!(!j.value&&(Mo(q)||L(q))),re=(q,ie,$)=>{if(!K)return!1;const le=K.value?.[q]??{},Pe=(Ke,qe,Ut)=>{if(!qe.length)return Ke;const[Rt,...Wt]=qe,pt={...Ke};if(!Wt.length)return pt[Rt]=Ut,pt;const Jr=typeof Ke[Rt]=="object"&&Ke[Rt]!==null?Ke[Rt]:{};return pt[Rt]=Pe(Jr,Wt,Ut),pt},lt=Pe(le,ie,$);return K.value={...K.value||{},[q]:lt},!0},he=q=>{if(!K||!t.name)return;const ie=K.value?.[t.name]??{};K.value={...K.value||{},[t.name]:{...ie,[Kx]:q}}},Ae=q=>{if(!t.set)return;const ie=oe?.value;!ie&&!K||Object.entries(t.set).forEach(([$,le])=>{if(!$)return;const Pe=q?q[le]:null,lt=$.split(".").map(Ut=>Ut.trim()).filter(Boolean);if(!lt.length)return;const[Ke,...qe]=lt;qe.length&&re(Ke,qe,Pe??null)||ie&&(ie[Ke]=Pe??null)})},{optionsList:Ce,parentValue:$e,fetchOptions:it,fetchOptionByValue:Fe,loadOptions:Qe}=Js({props:t,formValues:oe,watchParent:!1}),We=q=>q==null?"":String(q),se=q=>{if(o.value){if(!_.value.length){Ce.value=q;return}}else if(!m.value){Ce.value=q;return}const ie=new Set(q.map(le=>We(le.id)).filter(Boolean));if(o.value){const le=new Set(_.value.map(lt=>We(lt)).filter(Boolean)),Pe=(Ce.value??[]).filter(lt=>{const Ke=We(lt.id);return!Ke||!le.has(Ke)?!1:!ie.has(Ke)});Ce.value=[...Pe,...q];return}const $=We(m.value?.id);if($&&!ie.has($)){Ce.value=[m.value,...q];return}Ce.value=q},me=s.ref(0),Ee=async q=>{const ie=++me.value,$=await it(q);return ie!==me.value?null:$},Me=async()=>{if(t.data){const q=await Ee(b.value);return q&&se(q),Ce.value}return Qe()},Ye=async q=>{if(q==null||q==="")return null;const ie=Ce.value?.find($=>$?.id?.toString()===String(q));return ie||Fe(q)},Ct=async q=>{const ie=new Set(Ce.value.map(le=>le.id?.toString())),$=q.filter(le=>!ie.has(le?.toString()));$.length&&await $.reduce(async(le,Pe)=>{await le;const lt=await Ye(Pe);lt&&Ce.value.push(lt)},Promise.resolve())},et=()=>{if(!z.value.length){g.value=-1;return}let q=0;if(!o.value&&m.value){const ie=m.value.id?.toString(),$=z.value.findIndex(le=>le.id?.toString()===ie);$>=0&&(q=$)}g.value=q,s.nextTick(()=>{H(y.value[q],u.value)})},Xe=async()=>{i.value||(p.value=!0,await s.nextTick(()=>{we()}),await Me(),await s.nextTick(()=>{we(),w.value?.focus()}),et())},ft=()=>{p.value=!1,g.value=-1,s.nextTick(()=>{w.value?.blur()})},Vt=async q=>{if(i.value)return;(q!==void 0?q:!p.value)?await Xe():ft()},W=async()=>{if(!i.value){if(p.value){ft();return}await Xe()}},ee=()=>{o.value?(_.value=[],a.value=[],r("change",[]),R(null,[])):(m.value=null,a.value=null,r("change",null),R(null,null)),Ae(null),he(null),b.value="",ft(),s.nextTick(()=>{w.value?.focus()})},ue=q=>{o.value&&(_.value=_.value.filter(ie=>ie?.toString()!==q?.toString()),a.value=[..._.value],r("change",a.value),R(null),s.nextTick(()=>w.value?.focus()))},R=(q,ie)=>{const $=ie??(o.value?[..._.value]:q?.id??null);r("value-selected",{name:t.name,value:$,option:q})},M=(q,ie="manual")=>{o.value?(V(q.id)||(_.value=[..._.value,q.id],a.value=[..._.value],r("change",a.value),R(q)),b.value="",s.nextTick(()=>{w.value?.focus(),g.value=Math.min(g.value,z.value.length-1)}),Ae(null)):(m.value=q,a.value=q.id,r("change",a.value),R(q),b.value="",ft(),Ae(q),ie==="parent-auto"&&he({source:ie,parentField:t.parent??null,parentValue:$e.value??null}))},D=q=>{if(V(q.id)){o.value||ft();return}M(q)},H=(q,ie)=>{if(!q||!ie)return;const $=q.offsetTop,le=$+q.offsetHeight,Pe=ie.scrollTop,lt=Pe+ie.clientHeight;let Ke=ie.scrollTop;$<Pe?Ke=$-80:le>lt&&(Ke=le-ie.clientHeight+4);const qe=ie;qe.scrollTop=Ke},te=q=>{let ie=q.parentElement;for(;ie;){if(ie.classList.contains("ui-dialog__content"))return ie;const $=window.getComputedStyle(ie),le=$.overflow+$.overflowY+$.overflowX;if(le.includes("auto")||le.includes("scroll")||ie===document.body||ie===document.documentElement)return ie;ie=ie.parentElement}return document.body},we=()=>{if(!d.value)return;const q=d.value.getBoundingClientRect(),ie=window.innerHeight||document.documentElement.clientHeight,$=window.innerWidth||document.documentElement.clientWidth,le=8,Pe=8,lt=t.maxHeight||300,Ke=ie-q.bottom-Pe-le,qe=q.top-Pe-le,Ut=Ke>=qe,Rt=Math.max($-le*2,0);let{width:Wt}=q;Rt>0&&Wt>Rt&&(Wt=Rt);let{left:pt}=q;pt+Wt+le>$&&(pt=$-Wt-le),pt=Math.max(pt,le);const Jr=Math.min(lt,Math.max(Ut?Ke:qe,50));E.value={position:"fixed",left:`${pt}px`,width:`${Wt}px`,maxHeight:`${Jr}px`,transform:Ut?"none":"translateY(-100%)",top:Ut?`${q.bottom+Pe}px`:`${q.top-Pe}px`}},tt=async q=>{i.value||!p.value&&(q.key==="ArrowDown"||q.key==="ArrowUp")&&(q.preventDefault(),await Xe())},Re=q=>{if(!p.value)return;const{key:ie}=q;if(ie==="ArrowDown")q.preventDefault(),g.value+1<z.value.length&&(g.value+=1,H(y.value[g.value],u.value));else if(ie==="ArrowUp")q.preventDefault(),g.value>0&&(g.value-=1,H(y.value[g.value],u.value));else if(ie==="Enter"){q.preventDefault();const $=z.value[g.value];$&&M($),w.value?.blur()}else ie==="Escape"?(q.preventDefault(),ft()):ie==="Backspace"?o.value&&b.value===""&&_.value.length&&(_.value=_.value.slice(0,-1),a.value=[..._.value],r("change",a.value)):ie==="Home"?(g.value=0,H(y.value[0],u.value)):ie==="End"?(g.value=z.value.length-1,H(y.value[g.value],u.value)):ie==="Tab"&&ft()},St=()=>{i.value||(h.value=!0)},cn=()=>{h.value=!1,b.value=""},tn=q=>{q.key==="Escape"&&p.value&&ft()},Le=q=>{const ie=q.target;c.value?.contains(ie)||f.value?.contains(ie)||ft()},$t=q=>{p.value&&u.value&&!u.value.contains(q.target)&&we()},xo=()=>{p.value&&we()},mr=()=>{p.value&&we()};async function vo(){if(o.value)Array.isArray(a.value)?_.value=[...a.value]:(_.value=a.value==null?[]:[a.value],a.value=[..._.value]),t.data&&_.value.length&&(await Ct(_.value),await s.nextTick());else{if(Array.isArray(a.value)){const q=a.value[0]??null;a.value=q??null}a.value!=null&&a.value!==""?m.value=await Ye(a.value):m.value=null,Ae(m.value??null)}}s.watch(a,()=>{vo()}),s.onMounted(async()=>{if(addEventListener("keydown",tn),addEventListener("scroll",$t,!0),addEventListener("resize",xo),document.addEventListener("click",Le,!0),d.value&&te(d.value).addEventListener("scroll",mr,!0),t.options?.length&&!t.data)Ce.value=[...t.options];else if(t.data){const q=await Ee("");q&&se(q)}await vo(),Fs.value=!1}),s.onUnmounted(()=>{removeEventListener("keydown",tn),removeEventListener("scroll",$t,!0),removeEventListener("resize",xo),document.removeEventListener("click",Le,!0),d.value&&te(d.value).removeEventListener("scroll",mr,!0)});const{isOpenAdd:qr,addData:Is,addSchema:Gr,addForm:Sn,addTitle:ia,addOption:la,onAddValue:Os}=rf({props:t,fetchOptionByValue:Fe,optionsList:Ce,selectedOption:m,modelValue:a});function Rs(q,ie=200){let $;return(...le)=>{$&&clearTimeout($),$=window.setTimeout(()=>q(...le),ie)}}const pu=Rs(async q=>{const ie=await Ee(q);ie&&se(ie)},200);s.watch(b,q=>{t.data&&pu(q.trim())}),s.watch(()=>t.options,q=>{!t.data&&q?.length&&(Ce.value=[...q],vo())},{immediate:!0});const Fs=s.ref(!0);return s.watch($e,async()=>{if(t.data&&(Fs.value||(o.value?(_.value=[],a.value=[],r("change",[])):(m.value=null,a.value=null,r("change",null))),await Me(),t.auto===1&&$e.value&&Ce.value.length>0)){const q=Ce.value[0];q&&M(q,"parent-auto")}}),(q,ie)=>(s.openBlock(),s.createElementBlock(s.Fragment,null,[s.createVNode(s.unref(ke.VsModal),{visible:s.unref(qr),"onUpdate:visible":ie[2]||(ie[2]=$=>s.isRef(qr)?qr.value=$:null),class:"z-[1000]",title:s.unref(ia),teleport:q.teleport},{footer:s.withCtx(({handleClose:$})=>[s.createElementVNode("div",jx,[s.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:$}," Скасувати ",8,Ux),s.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:ie[1]||(ie[1]=(...le)=>s.unref(la)&&s.unref(la)(...le))}," Додати ")])]),default:s.withCtx(()=>[s.createVNode(Pt,{schema:s.unref(Gr),modelValue:s.unref(Is),"onUpdate:modelValue":ie[0]||(ie[0]=$=>s.isRef(Is)?Is.value=$:null),ref_key:"addForm",ref:Sn,"allow-id-field":""},null,8,["schema","modelValue"])]),_:1},8,["visible","title","teleport"]),s.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:ie[5]||(ie[5]=s.withModifiers(()=>{},["stop"]))},[s.createElementVNode("div",{class:s.normalizeClass(["relative w-full font-sans",t.customClass])},[ie[6]||(ie[6]=s.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),ie[7]||(ie[7]=s.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),s.createVNode(Ox,{keyWord:b.value,"onUpdate:keyWord":ie[3]||(ie[3]=$=>b.value=$),disabled:i.value,"is-open":p.value,"input-focus":h.value,"is-multi":o.value,"selected-options":A.value,"selected-ids":_.value,placeholder:I.value,search:l.value,"option-template":G.value,"icon-wrapper-class":of,"selected-option-label":U.value,"selected-option":m.value,"show-clear":Z.value,"set-trigger-ref":v,"set-input-ref":S,"should-show-color-dot":O,"option-has-icon":ae,"get-icon-color-style":ne,"resolve-option-icon":L,"render-template":X,"get-label":ce,"on-control-keydown":tt,"on-control-click":W,"on-input-focus":St,"on-input-blur":cn,"on-input-keydown":Re,"on-remove-selected":ue,"on-clear-selected":ee,"on-toggle-select":Vt},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"]),s.createVNode(Hx,{"is-open":p.value,"dropdown-style":E.value,"filtered-options-list":z.value,"selected-nav-index":g.value,"option-template":G.value,"icon-wrapper-class":of,"set-dropdown-ref":N,"set-list-ref":F,"set-item-ref":T,"is-selected":V,"on-option-click":D,"should-show-color-dot":O,"option-has-icon":ae,"get-icon-color-style":ne,"resolve-option-icon":L,"render-template":X},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),t.add?(s.openBlock(),s.createElementBlock("button",{key:0,onClick:ie[4]||(ie[4]=(...$)=>s.unref(Os)&&s.unref(Os)(...$)),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:i.value,type:"button"},[s.createVNode(s.unref(Y.Plus),{class:"h-4 w-4"}),ie[8]||(ie[8]=s.createElementVNode("span",null,"Додати",-1))],8,Wx)):s.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-29653ef8"]]),$a=(n="")=>`${n}${Math.floor(Math.random()*1e4)}`,qx=["disabled","aria-expanded"],Gx={class:"truncate"},Jx={class:"py-2 px-4"},Yx={class:"block font-medium text-[13px] text-foreground"},Xx={class:"truncate"},Zx={class:"p-1 border-t border-gray-200"},Qx={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"},ev=["onClick"],tv=["checked"],nv={class:"shrink-0 size-3.5 flex justify-center items-center"},rv={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},ov={class:"truncate"},sv={key:0,class:"px-3 py-2 text-xs text-stone-500"},li=s.defineComponent({__name:"vs-input-inline-select",props:{multiple:{type:Boolean},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(n,{emit:e}){const t=n,r=e;Bt(t.style);const o=s.computed({get:()=>Array.isArray(t.modelValue)?t.modelValue[0]??null:t.modelValue??null,set:re=>r("update:modelValue",re)});o.value==null&&t.defaultValue!=null&&(o.value=t.defaultValue);const i=s.inject("values"),l=s.inject("field-props"),a=s.computed(()=>!!t.disabled),c=s.ref(null),d=s.ref(!1),u=s.ref(null),f=s.ref(null),p=s.ref(null),h=s.ref({}),m=`vs-input-inline-select-${$a()}`,g=s.computed(()=>t.placeholder||"Оберіть значення"),y=s.computed(()=>N(c.value)||t.placeholder||"Оберіть значення"),b=s.computed(()=>t.slot??""),w=s.computed(()=>qs(b.value)),v=s.computed(()=>t.teleport||"body"),S=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,N=re=>Xs(re,b.value),F=re=>!!(!w.value&&Kn(re)),T=s.computed(()=>{const re=Kn(c.value).trim();return re?S.test(re)?`bg-[${re}] border-[${re}]`:`bg-${re.toLowerCase()}-500 border-${re.toLowerCase()}-500`:""}),{optionsList:E,parentValue:_,fetchOptions:A,fetchOptionByValue:I,loadOptions:U}=Js({props:t,formValues:i,watchParent:!1}),Z=(re,he,Ae)=>{if(!l)return!1;const Ce=l.value?.[re]??{},$e=(Fe,Qe,We)=>{if(!Qe.length)return Fe;const[se,...me]=Qe,Ee={...Fe};if(!me.length)return Ee[se]=We,Ee;const Me=typeof Fe[se]=="object"&&Fe[se]!==null?Fe[se]:{};return Ee[se]=$e(Me,me,We),Ee},it=$e(Ce,he,Ae);return l.value={...l.value||{},[re]:it},!0},V=re=>{if(!t.set)return;const he=i?.value;!he&&!l||Object.entries(t.set).forEach(([Ae,Ce])=>{if(!Ae)return;const $e=re?re[Ce]:null,it=Ae.split(".").map(We=>We.trim()).filter(Boolean);if(!it.length)return;const[Fe,...Qe]=it;Qe.length&&Z(Fe,Qe,$e??null)||he&&(he[Fe]=$e??null)})},z=re=>o.value?.toString?.()===re?.toString?.(),oe=()=>{if(!f.value||typeof window>"u")return;const re=f.value.getBoundingClientRect(),he=8,Ae=8,Ce=window.innerHeight||document.documentElement.clientHeight,$e=window.innerWidth||document.documentElement.clientWidth,it=p.value?.offsetHeight||260,Fe=Math.max(re.width,176),Qe=Math.max($e-he*2,120),We=Math.min(Fe,Qe);let se=re.left;se+We+he>$e&&(se=$e-We-he),se=Math.max(se,he);const me=Ce-re.bottom-Ae-he,Ee=re.top-Ae-he,Me=me<Math.min(it,260)&&Ee>me,Ye=Math.max(120,Math.min(320,Me?Ee:me));h.value={position:"fixed",left:`${se}px`,top:Me?`${re.top-Ae}px`:`${re.bottom+Ae}px`,transform:Me?"translateY(-100%)":"none",width:`${We}px`,maxHeight:`${Ye}px`}},K=async()=>{if(t.data){E.value=await A("");return}await U()},G=async()=>{if(o.value==null||o.value===""){c.value=null,V(null);return}const re=E.value.find(he=>he.id?.toString()===String(o.value));if(re){c.value=re,V(re);return}c.value=await I(o.value),V(c.value??null)},X=async()=>{a.value||(d.value=!0,await s.nextTick(),oe(),await K(),await s.nextTick(),oe())},ce=()=>{d.value=!1},j=async()=>{if(d.value){ce();return}await X()},L=re=>{r("value-selected",{name:t.name,value:re?.id??null,option:re})},O=re=>{c.value=re,o.value=re.id,r("change",re.id),L(re),V(re),ce()},ne=re=>{const he=re.target;u.value?.contains(he)||p.value?.contains(he)||ce()},ae=()=>{d.value&&oe()};return s.watch(()=>t.options,re=>{t.data||(E.value=re?[...re]:[],G())},{immediate:!0,deep:!0}),s.watch(o,()=>{G()}),s.watch(_,async()=>{t.data&&(await K(),c.value&&!E.value.some(re=>re.id?.toString()===c.value?.id?.toString())&&(c.value=null,o.value=null,r("change",null),L(null),V(null)))}),s.onMounted(async()=>{document.addEventListener("click",ne,!0),window.addEventListener("resize",ae),window.addEventListener("scroll",ae,!0),await K(),await G()}),s.onUnmounted(()=>{document.removeEventListener("click",ne,!0),window.removeEventListener("resize",ae),window.removeEventListener("scroll",ae,!0)}),(re,he)=>(s.openBlock(),s.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:u,onClick:he[0]||(he[0]=s.withModifiers(()=>{},["stop"]))},[s.createElementVNode("button",{ref_key:"triggerRef",ref:f,type:"button",disabled:a.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:s.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",T.value?`${T.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:j},[s.createElementVNode("span",Gx,s.toDisplayString(y.value),1)],10,qx),(s.openBlock(),s.createBlock(s.Teleport,{to:v.value},[d.value?(s.openBlock(),s.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:s.normalizeStyle(h.value),role:"menu","aria-orientation":"vertical"},[s.createElementVNode("div",Jx,[s.createElementVNode("span",Yx,[s.createElementVNode("span",Xx,s.toDisplayString(g.value),1)])]),s.createElementVNode("div",Zx,[s.createElementVNode("div",Qx,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(E),Ae=>(s.openBlock(),s.createElementBlock("label",{key:Ae.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:s.withModifiers(Ce=>O(Ae),["prevent"])},[s.createElementVNode("input",{type:"radio",class:"hidden",name:m,checked:z(Ae.id),tabindex:"-1"},null,8,tv),s.createElementVNode("span",nv,[F(Ae)?(s.openBlock(),s.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:s.normalizeStyle({backgroundColor:Ae.color})},null,4)):(s.openBlock(),s.createElementBlock("span",rv))]),s.createElementVNode("span",ov,s.toDisplayString(N(Ae)),1),s.createVNode(s.unref(Y.Check),{class:s.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",z(Ae.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,ev))),128))]),s.unref(E).length?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("p",sv,"Немає варіантів"))])],4)):s.createCommentVNode("",!0)],8,["to"]))],512))}}),iv=["placeholder","disabled"],sf=s.defineComponent({__name:"vs-input-textarea",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,{inputClass:t}=Bt(e.style),r=s.useModel(n,"modelValue"),o=s.computed(()=>!!e.disabled),i=s.computed(()=>e.placeholder??"");function l(){typeof r.value=="string"&&(r.value=r.value.trim())}return(a,c)=>s.withDirectives((s.openBlock(),s.createElementBlock("textarea",{"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),placeholder:i.value,disabled:o.value,row:"2",onBlur:l,class:s.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[s.unref(t)]]),style:{border:"1px solid #CFD9E0"}},null,42,iv)),[[s.vModelText,r.value]])}}),lf=s.defineComponent({__name:"vs-input-richtext",props:s.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},format:{default:"html"},richtextProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=s.defineAsyncComponent(()=>Promise.resolve().then(()=>$T)),t=n,r=s.useModel(n,"modelValue"),o=s.computed(()=>!!t.disabled),i=s.computed(()=>t.placeholder??""),l=s.computed(()=>({height:t.richtextProps.height||"300px",format:t.format,...t.richtextProps}));return(a,c)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["!h-full overflow-hidden rounded-md border border-solid border-stone-200 disabled:opacity-50 disabled:cursor-not-allowed",a.customClass]),style:s.normalizeStyle(o.value?{pointerEvents:"none",opacity:.6}:{})},[s.createVNode(s.unref(e),s.mergeProps({modelValue:r.value,"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),placeholder:i.value},l.value),null,16,["modelValue","placeholder"])],6))}}),lv={},av={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function cv(n,e){return s.openBlock(),s.createElementBlock("svg",av,e[0]||(e[0]=[s.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 dv=Be(lv,[["render",cv]]),uv={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},fv={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"},pv={key:0,class:"relative flex-1 min-w-0"},hv={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},mv={class:"w-full overflow-x-auto"},gv={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},yv={class:"bg-gray-50"},bv={class:"border-b border-gray-200"},kv={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},wv=["onClick"],xv={key:0,class:"text-gray-400"},vv={key:0,colspan:"100%",class:"text-center"},Cv={class:"w-full"},Sv={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Ev=["data-row-index","onDragstart","onDragover","onDrop"],Mv=["onPointerdown"],Av={class:"flex items-center justify-center"},_v=["innerHTML"],Tv={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Bv={key:0},Nv=["src"],Dv={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Vv={key:1,class:"flex items-center justify-center"},$v=["innerHTML"],Lv={key:3,class:"text-sm font-medium text-gray-900"},Iv={class:"px-4 py-3 text-right whitespace-nowrap"},Ov={class:"flex items-center justify-end gap-2"},Rv=["onClick"],Fv=["onClick"],Pv={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},af=Be(s.defineComponent({__name:"vs-input-datatable",props:s.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useSlots(),r=s.inject("values",null),o=s.inject("form-root-values",null),i=W=>e.actions===void 0?!0:e.actions.includes(W),l=["search","import","export","add"],a=s.computed(()=>l.some(W=>i(W))),c=s.useModel(n,"modelValue"),d=s.ref({}),u=s.ref(""),f=s.ref(null),p=s.ref("asc"),h=s.computed(()=>{const W=c.value??[],ee=u.value?W.filter(M=>m.value?.some(D=>{const H=D.key||D.name;if(!H)return!1;const te=M[H];return te?Array.isArray(te)?te.join(", ").toLowerCase().includes(u.value.toLowerCase()):String(te).toLowerCase().includes(u.value.toLowerCase()):!1})):W;if(!f.value)return ee;const ue=f.value,R=[...ee].sort((M,D)=>{const H=Fe(M?.[ue]),te=Fe(D?.[ue]);return typeof H=="number"&&typeof te=="number"?H-te:String(H).localeCompare(String(te))});return p.value==="asc"?R:R.reverse()}),m=s.computed(()=>(e.colModel??[]).filter(W=>!W.tableHidden)),g=s.ref(null),y=s.ref(null),b=s.ref(null);function w(W){return W.pointerType==="touch"||W.pointerType==="pen"}function v(W,ee){const R=document.elementFromPoint(W,ee)?.closest?.("[data-row-index]")??null;if(!R)return null;const M=R.getAttribute("data-row-index");if(M==null)return null;const D=Number.parseInt(M,10);return Number.isNaN(D)?null:D}function S(W,ee){w(W)&&(W.preventDefault(),W.currentTarget.setPointerCapture(W.pointerId),g.value=ee,y.value=ee)}function N(W){if(g.value===null||!w(W))return;W.preventDefault();const ee=v(W.clientX,W.clientY);ee!==null&&(y.value=ee)}function F(W){if(g.value===null||!w(W))return;W.preventDefault();const ee=v(W.clientX,W.clientY);A(ee??g.value);try{W.currentTarget.releasePointerCapture(W.pointerId)}catch{}}function T(W){if(w(W)){g.value=null,y.value=null;try{W.currentTarget.releasePointerCapture(W.pointerId)}catch{}}}const E=W=>{g.value=W},_=W=>{y.value=W},A=W=>{if(g.value===null||g.value===W){g.value=null,y.value=null;return}const ee=[...c.value],[ue]=ee.splice(g.value,1);ee.splice(W,0,ue),c.value=ee,g.value=null,y.value=null},I=()=>{b.value&&b.value.click()},U=W=>{const ee=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],ue=W.toLowerCase();return ee.some(R=>ue.endsWith(R))},Z=W=>{const ue=W.target.files?.[0];if(!ue)return;const R=new FileReader;R.onload=M=>{try{const D=M.target?.result;if(typeof D=="string"){const H=JSON.parse(D);Array.isArray(H)&&c.value.push(...H)}}catch(D){console.error("Error parsing file:",D)}},R.readAsText(ue)},V=()=>{const W=JSON.stringify(c.value,null,2),ee=new Blob([W],{type:"application/json"}),ue=URL.createObjectURL(ee),R=document.createElement("a");R.href=ue,R.download="data.json",R.click(),URL.revokeObjectURL(ue)},z=new Set(["autocomplete","select","radio","checkbox","combobox"]),oe=new Map,K=(W,ee)=>{const ue=`/api/suggest/${W}`,R=ue.includes("?")?"&":"?",M=ee?`&val=${ee}`:"";return`${ue}${R}${M}`},G=W=>W==null||W===""?null:typeof W=="object"?W?.id!==void 0&&W.id!==null&&W.id!==""?W.id:null:W,X=W=>{const ee=new Set;return Array.isArray(c.value)&&c.value.forEach(ue=>{const R=ue?.[W];if(R==null||R==="")return;if(Array.isArray(R)){R.forEach(D=>{const H=G(D);H!==null&&ee.add(H)});return}const M=G(R);M!==null&&ee.add(M)}),ee},ce=async()=>{if(!e.colModel?.length)return;const W=e.colModel.filter(ee=>ee.data&&z.has(ee.type?.toLowerCase()||""));W.length&&await Promise.all(W.map(async ee=>{const ue=ee.key||ee.name;if(!ue)return;const R=X(ue),M=Array.from(R).map(te=>String(te)).sort(),D=M.join(",");if(!M.length||oe.get(ue)===D)return;oe.set(ue,D);const H=M.map(encodeURIComponent).join(",");try{const we=await(await fetch(K(ee.data,H))).json();d.value[ue]=we?.data??we}catch(te){console.error("Failed to fetch column values",te)}}))};s.watch([()=>e.colModel,()=>c.value],()=>{ce()},{immediate:!0,deep:!0});const j=s.ref(""),L=s.ref(!1);let O="edit",ne=0;const ae=W=>(W?.format||W?.type||"").toString().toLowerCase(),re=s.computed(()=>(e.colModel?.filter(ee=>ae(ee)!=="slot")??[]).map(ee=>{const ue=ee.key||ee.name;return ue?{...ee,name:ue,key:ue}:ee})),he=s.ref({}),Ae=s.ref({}),Ce=W=>typeof W!="string"?!1:!!t[W],$e=(W,ee)=>ee?ee.split(".").reduce((ue,R)=>ue==null?ue:ue[R.trim()],W):W,it=(W,ee)=>typeof W!="string"?"":W.replace(/{{\s*([^}]+)\s*}}/g,(ue,R)=>{const M=$e(ee,R.trim());return M??""}),Fe=W=>{if(W==null||W==="")return"";if(typeof W=="number")return W;if(typeof W=="boolean")return W?1:0;if(typeof W=="string")return W.toLowerCase();if(Array.isArray(W))return W.map(ee=>Fe(ee)).join(", ");if(typeof W=="object"){if(W.text!==void 0)return String(W.text).toLowerCase();if(W.label!==void 0)return String(W.label).toLowerCase();if(W.id!==void 0)return String(W.id).toLowerCase()}return String(W).toLowerCase()},Qe=W=>{const ee=W.key||W.name;if(ee){if(f.value===ee){p.value=p.value==="asc"?"desc":"asc";return}f.value=ee,p.value="asc"}};async function We(){j.value="Додати",L.value=!0,O="add",he.value=Ye({})}function se(W,ee){if(!W?.length)return null;const ue=typeof ee=="object"?ee?.id:ee;if(ue==null||ue==="")return null;const R=W.find(M=>M?.id?.toString()===ue.toString());return R?R.text??R.label??null:null}function me(W){return W==null||W===""?"-":Array.isArray(W)?W.map(ee=>typeof ee=="object"?ee?.text??ee?.label??ee?.id??"-":ee).join(", "):typeof W=="object"?W?.text??W?.label??W?.id??"-":W}function Ee(W){const ee=W.key||W.name,ue=ee?d.value[ee]:null;return Array.isArray(ue)&&ue.length?ue:Array.isArray(W?.options)&&W.options.length?W.options:null}function Me(W,ee){const ue=ee.key||ee.name,R=W?.[ue],M=Ee(ee);if(R==null||R==="")return"-";if(Array.isArray(R)){const H=R.map(te=>se(M,te)).filter(Boolean);return H.length?H.join(", "):me(R)}const D=se(M,R);return D||me(R)}function Ye(W){const ee=r?.value?.content_id??o?.value?.id??o?.value?.content_id??r?.value?.id??null;return{...W,content_id:ee}}function Ct(W){if(!W||typeof W!="object")return W;const{content_id:ee,...ue}=W;return ue}async function et(W,ee){j.value="Редагувати",L.value=!0,O="edit",ne=ee,he.value=Ye({...W})}function Xe(){const W=Ae.value.validate();if(W){ke.notify({type:"warning",title:"Помилка валідації",message:Object.entries(W).map(([ue,R])=>`${ue}: ${R}`).join(`
2
2
  `)});return}const ee=Ct(he.value);O==="add"?Array.isArray(c.value)?c.value=[...c.value,ee]:c.value=[ee]:c.value=c.value.map((ue,R)=>R===ne?ee:ue),L.value=!1}function ft(W){c.value=c.value.filter((ee,ue)=>ue!==W)}function Vt(){L.value=!1}return(W,ee)=>(s.openBlock(),s.createElementBlock("div",uv,[a.value?(s.openBlock(),s.createElementBlock("div",fv,[i("search")?(s.openBlock(),s.createElementBlock("div",pv,[s.createVNode(s.unref(Y.Search),{class:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"}),s.withDirectives(s.createElementVNode("input",{type:"text","onUpdate:modelValue":ee[0]||(ee[0]=ue=>u.value=ue),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),[[s.vModelText,u.value]])])):s.createCommentVNode("",!0),s.createElementVNode("div",hv,[i("import")?(s.openBlock(),s.createElementBlock("input",{key:0,ref_key:"fileInput",ref:b,onChange:Z,class:"hidden",accept:".json",type:"file"},null,544)):s.createCommentVNode("",!0),i("import")?(s.openBlock(),s.createElementBlock("button",{key:1,type:"button",onClick:I,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[s.createVNode(s.unref(Y.Upload),{class:"h-4 w-4 text-gray-700"}),ee[4]||(ee[4]=s.createTextVNode(" Імпорт ",-1))])):s.createCommentVNode("",!0),i("export")?(s.openBlock(),s.createElementBlock("button",{key:2,type:"button",onClick:V,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"},[s.createVNode(s.unref(Y.Download),{class:"h-4 w-4 text-gray-700"}),ee[5]||(ee[5]=s.createTextVNode(" Експорт ",-1))])):s.createCommentVNode("",!0),i("add")?(s.openBlock(),s.createElementBlock("button",{key:3,onClick:We,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"},[s.createVNode(s.unref(Y.Plus),{class:"h-4 w-4 text-white"}),ee[6]||(ee[6]=s.createTextVNode(" Додати ",-1))])):s.createCommentVNode("",!0)])])):s.createCommentVNode("",!0),s.createElementVNode("div",mv,[s.createElementVNode("table",gv,[s.createElementVNode("thead",yv,[s.createElementVNode("tr",bv,[s.createElementVNode("th",kv,[s.createVNode(s.unref(Y.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(m.value,ue=>(s.openBlock(),s.createElementBlock("th",{key:ue.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[s.createElementVNode("button",{type:"button",onClick:R=>Qe(ue),class:"flex items-center gap-1 text-xs font-semibold text-gray-700 hover:text-gray-900 transition-colors"},[s.createElementVNode("span",null,s.toDisplayString(ue.ua||ue.label),1),f.value===(ue.key||ue.name)?(s.openBlock(),s.createElementBlock("span",xv,s.toDisplayString(p.value==="asc"?"▲":"▼"),1)):s.createCommentVNode("",!0)],8,wv)]))),128)),ee[7]||(ee[7]=s.createElementVNode("th",{class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 text-center w-[1%] whitespace-nowrap"}," Дії ",-1))])]),s.createElementVNode("tbody",{class:s.normalizeClass(["divide-y divide-gray-200",{"[&_tr:last-child]:border-0":!y.value}])},[h.value.length===0?(s.openBlock(),s.createElementBlock("td",vv,[s.createElementVNode("div",Cv,[s.createElementVNode("div",Sv,[s.createVNode(dv,{class:"w-48 mx-auto"}),ee[8]||(ee[8]=s.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[s.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"Нічого не знайдено"),s.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])])):s.createCommentVNode("",!0),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(h.value,(ue,R)=>(s.openBlock(),s.createElementBlock("tr",{key:ue.id,"data-row-index":R,class:s.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":g.value===R,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":y.value===R}]),draggable:"true",onDragstart:M=>E(R),onDragover:s.withModifiers(M=>_(R),["prevent"]),onDrop:M=>A(R)},[s.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:M=>S(M,R),onPointermove:N,onPointerup:F,onPointercancel:T},[s.createElementVNode("div",Av,[s.createVNode(s.unref(Y.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,Mv),(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(m.value,M=>(s.openBlock(),s.createElementBlock("td",{key:M.key,class:"px-4 py-3 align-middle"},[ae(M)==="slot"?(s.openBlock(),s.createElementBlock(s.Fragment,{key:0},[Ce(M.slot)?s.renderSlot(W.$slots,M.slot,{key:0,row:ue,value:ue[M.key],column:M},void 0,!0):(s.openBlock(),s.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:it(M.slot,ue)},null,8,_v))],64)):(s.openBlock(),s.createElementBlock(s.Fragment,{key:1},[ae(M)==="file"?(s.openBlock(),s.createElementBlock("div",Tv,[U(Me(ue,M))?(s.openBlock(),s.createElementBlock("div",Bv,[s.createElementVNode("img",{src:`/file/resize?filepath=${Me(ue,M)}&format=webp`,alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Nv)])):(s.openBlock(),s.createElementBlock("div",Dv,[s.createVNode(s.unref(Y.FileText),{class:"h-4 w-4 min-w-4"})]))])):ae(M)==="color"?(s.openBlock(),s.createElementBlock("div",Vv,[s.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:s.normalizeStyle({backgroundColor:Me(ue,M)||"#ffffff"})},null,4)])):ae(M)==="tiptap-editor"?(s.openBlock(),s.createElementBlock("div",{key:2,class:"text-sm font-medium text-gray-900 datatable-tiptap-editor line-clamp-4",innerHTML:Me(ue,M)},null,8,$v)):(s.openBlock(),s.createElementBlock("div",Lv,s.toDisplayString(Me(ue,M)),1))],64))]))),128)),s.createElementVNode("td",Iv,[s.createElementVNode("div",Ov,[s.createElementVNode("button",{onClick:M=>et(ue,R),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[s.createVNode(s.unref(Y.Pencil),{class:"h-4 w-4"})],8,Rv),s.createElementVNode("button",{onClick:M=>ft(R),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[s.createVNode(s.unref(Y.Trash2),{class:"h-4 w-4"})],8,Fv)])])],42,Ev))),128))],2)])]),s.createVNode(s.unref(ke.VsModal),{visible:L.value,title:j.value,size:"lg",onClose:Vt,teleport:"#modal"},{default:s.withCtx(()=>[s.createVNode(Pt,{schema:re.value,"allow-id-field":"",values:he.value,"onUpdate:values":ee[1]||(ee[1]=ue=>he.value=ue),form:Ae.value,"onUpdate:form":ee[2]||(ee[2]=ue=>Ae.value=ue)},null,8,["schema","values","form"]),s.createElementVNode("div",Pv,[s.createElementVNode("button",{type:"button",onClick:ee[3]||(ee[3]=ue=>L.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"}," Скасувати "),s.createElementVNode("button",{onClick:Xe,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"])]))}}),[["__scopeId","data-v-ef50558b"]]),zv={},Hv={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 jv(n,e){return s.openBlock(),s.createElementBlock("svg",Hv,e[0]||(e[0]=[s.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),s.createElementVNode("path",{d:"M6 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),s.createElementVNode("path",{d:"M18 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),s.createElementVNode("path",{d:"M7.5 16.5l9 -9"},null,-1)]))}const Uv=Be(zv,[["render",jv]]),Wv={},Kv={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 qv(n,e){return s.openBlock(),s.createElementBlock("svg",Kv,e[0]||(e[0]=[s.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 Gv=Be(Wv,[["render",qv]]),Jv={},Yv={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 Xv(n,e){return s.openBlock(),s.createElementBlock("svg",Yv,e[0]||(e[0]=[s.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 Zv=Be(Jv,[["render",Xv]]);function Qv(n,e,t){const r=Math.max(0,Math.min(22,Math.floor(t))),o=2**r,i=Math.floor((n+180)/360*o),l=e*Math.PI/180,a=Math.floor((1-Math.log(Math.tan(l)+1/Math.cos(l))/Math.PI)/2*o);return{z:r,x:i,y:a}}function eC(n,e){if(typeof n!="string"||!n.trim()||!/\{z\}/i.test(n))return;const t={"{z}":e.z,"{x}":e.x,"{y}":e.y,"{-y}":2**e.z-e.y-1,"{s}":"a"};let r=n;return Object.entries(t).forEach(([o,i])=>{r=r.replace(new RegExp(o.replace(/[{}-]/g,"\\$&"),"gi"),String(i))}),r}const cf=/\/(\d+)\/(\d+)\/(\d+)(\.(?:png|jpe?g|webp))(?:\?.*)?$/i;function df(n,e){if(typeof n!="string"||!n.trim()||!cf.test(n))return;const t=n.replace(cf,`/${e.z}/${e.x}/${e.y}$4`);return t!==n?t:void 0}function tC(n,e){if(n?.url){const t=eC(n.url,e);if(t)return t;const r=df(n.url,e);if(r)return r}if(n?.preview){const t=df(n.preview,e);return t||n.preview}}const nC=["title","aria-expanded"],rC=["src"],oC={class:"map-layers__header"},sC={class:"map-layers__body"},iC={key:0,class:"map-layers__section"},lC={class:"map-layers__grid map-layers__grid--4"},aC=["disabled","title","onClick"],cC={class:"map-layers__thumb"},dC=["src"],uC={class:"map-layers__option-label"},fC={key:1,class:"map-layers__section"},pC={class:"map-layers__grid map-layers__grid--4"},hC=["title","onClick"],mC={class:"map-layers__thumb"},gC=["src"],yC={class:"map-layers__option-label"},bC={key:2,class:"map-layers__section map-layers__section--vector"},kC={class:"map-layers__vector-list"},wC=["checked","disabled","onChange"],ai=.8,xC=Be(s.defineComponent({__name:"map-layers",props:{basemaps:{},activeBaseKey:{},tileOverlays:{},activeTileOverlayKeys:{},vectorOverlays:{},previewTile:{},disabled:{type:Boolean},compact:{type:Boolean}},emits:["onLayerChange","onOverlayToggle","onVectorOverlayToggle"],setup(n,{emit:e}){const t=n,r=e,o=10*ai,i=400*ai,l=400*ai,a=320*ai,c=s.ref(null),d=s.ref(null),u=s.ref(null),f=s.ref(!1),p=s.ref({}),h=s.computed(()=>Object.keys(t.basemaps||{}).length>0),m=s.computed(()=>Object.keys(t.tileOverlays||{}).length>0),g=s.computed(()=>t.vectorOverlays??[]),y=s.computed(()=>g.value.length>0),b=s.computed(()=>h.value||m.value||y.value),w=s.computed(()=>t.basemaps?.[t.activeBaseKey]?.name||t.activeBaseKey||"Шари"),v=s.computed(()=>N(t.basemaps)),S=s.computed(()=>N(t.tileOverlays||{}));function N(G){const X=t.previewTile;return X?Object.fromEntries(Object.entries(G).map(([ce,j])=>[String(ce),tC(j,X)??j.preview??""])):{}}function F(G){return v.value[G]||t.basemaps?.[G]?.preview||""}function T(G){return S.value[G]||t.tileOverlays?.[G]?.preview||""}const E=s.computed(()=>F(t.activeBaseKey));function _(G){return Array.isArray(t.activeTileOverlayKeys)&&t.activeTileOverlayKeys.includes(G)}function A(){const G=d.value;if(!G)return;const X=G.getBoundingClientRect(),ce=Math.min(i,window.innerWidth-16);let j=X.left;j+ce>window.innerWidth-8&&(j=window.innerWidth-ce-8),j=Math.max(8,j);const L=X.top-o-8,O=t.compact?a:l,ne=Math.min(O,Math.max(96,L));p.value={position:"fixed",left:`${j}px`,bottom:`${window.innerHeight-X.top+o}px`,width:`${ce}px`,maxHeight:`${ne}px`,zIndex:"10050"}}async function I(){f.value=!f.value,f.value&&(await s.nextTick(),A())}function U(){f.value=!1}function Z(G){G!==t.activeBaseKey&&r("onLayerChange",G)}function V(G){t.disabled||r("onOverlayToggle",G)}function z(G){t.disabled||r("onVectorOverlayToggle",G)}function oe(G){if(!f.value)return;const X=G.target;c.value?.contains(X)||u.value?.contains(X)||U()}function K(G){G.key==="Escape"&&U()}return s.watch(f,async G=>{G&&(await s.nextTick(),A())}),s.onMounted(()=>{document.addEventListener("click",oe),document.addEventListener("keydown",K),window.addEventListener("resize",A),window.addEventListener("scroll",A,!0)}),s.onBeforeUnmount(()=>{document.removeEventListener("click",oe),document.removeEventListener("keydown",K),window.removeEventListener("resize",A),window.removeEventListener("scroll",A,!0)}),(G,X)=>b.value?(s.openBlock(),s.createElementBlock("div",{key:0,ref_key:"rootRef",ref:c,class:s.normalizeClass(["map-layers relative",{"map-layers--compact":G.compact}])},[s.createElementVNode("button",{ref_key:"triggerRef",ref:d,type:"button",class:"map-layers__trigger",title:w.value,"aria-haspopup":"dialog","aria-expanded":f.value,onClick:s.withModifiers(I,["stop"])},[E.value?(s.openBlock(),s.createElementBlock("img",{key:0,src:E.value,alt:"",class:"map-layers__trigger-img"},null,8,rC)):s.createCommentVNode("",!0)],8,nC),(s.openBlock(),s.createBlock(s.Teleport,{to:"body"},[s.createVNode(s.Transition,{name:"map-layers-panel"},{default:s.withCtx(()=>[f.value?(s.openBlock(),s.createElementBlock("div",{key:0,ref_key:"panelRef",ref:u,class:"map-layers__panel",style:s.normalizeStyle(p.value),role:"dialog","aria-label":"Шари карти"},[s.createElementVNode("header",oC,[X[0]||(X[0]=s.createElementVNode("h3",{class:"map-layers__title"},"Шари карти",-1)),s.createElementVNode("button",{type:"button",class:"map-layers__close","aria-label":"Закрити",onClick:U},[s.createVNode(s.unref(Y.X),{class:"map-layers__close-icon"})])]),s.createElementVNode("div",sC,[m.value?(s.openBlock(),s.createElementBlock("section",iC,[X[1]||(X[1]=s.createElementVNode("h4",{class:"map-layers__section-title"},"Додаткові шари",-1)),s.createElementVNode("div",lC,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(G.tileOverlays,(ce,j)=>(s.openBlock(),s.createElementBlock("button",{key:`tile-${j}`,type:"button",class:s.normalizeClass(["map-layers__option",{"map-layers__option--active":_(String(j))}]),disabled:G.disabled,title:ce.name||String(j),onClick:L=>V(String(j))},[s.createElementVNode("span",cC,[s.createElementVNode("img",{src:T(String(j)),alt:""},null,8,dC)]),s.createElementVNode("span",uC,s.toDisplayString(ce.name||j),1)],10,aC))),128))])])):s.createCommentVNode("",!0),h.value?(s.openBlock(),s.createElementBlock("section",fC,[X[2]||(X[2]=s.createElementVNode("h4",{class:"map-layers__section-title"},"Базові шари",-1)),s.createElementVNode("div",pC,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(G.basemaps,(ce,j)=>(s.openBlock(),s.createElementBlock("button",{key:`base-${j}`,type:"button",class:s.normalizeClass(["map-layers__option",{"map-layers__option--active":G.activeBaseKey===String(j)}]),title:ce.name||String(j),onClick:L=>Z(String(j))},[s.createElementVNode("span",mC,[s.createElementVNode("img",{src:F(String(j)),alt:""},null,8,gC)]),s.createElementVNode("span",yC,s.toDisplayString(ce.name||j),1)],10,hC))),128))])])):s.createCommentVNode("",!0),y.value?(s.openBlock(),s.createElementBlock("section",bC,[X[3]||(X[3]=s.createElementVNode("h4",{class:"map-layers__section-title"},"Дані",-1)),s.createElementVNode("div",kC,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(g.value,ce=>(s.openBlock(),s.createElementBlock("label",{key:ce.id,class:"map-layers__vector-item"},[s.createElementVNode("input",{type:"checkbox",class:"map-layers__checkbox",checked:ce.visible,disabled:G.disabled,onChange:j=>z(ce.id)},null,40,wC),s.createElementVNode("span",null,s.toDisplayString(ce.label),1)]))),128))])])):s.createCommentVNode("",!0)])],4)):s.createCommentVNode("",!0)]),_:1})]))],2)):s.createCommentVNode("",!0)}}),[["__scopeId","data-v-c1206d48"]]),br=1e-10,ci=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,vC=/^[+-]?\d+(?:\.\d+)?$/;function CC(n,e,t){const r=n.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(r.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(r.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const o=[],i=[];if(r.forEach((d,u)=>{const f=u+1,p=e==="decimal"?SC(d,f,t):ff(d,f,t);if(!p.ok){o.push(...p.errors);return}const h=i[i.length-1];if(h&&hf(h,p.point)){o.push({line:f,message:"Послідовні точки не повинні дублюватися."});return}i.push(p.point)}),o.length)return{ok:!1,errors:o};if(new Set(i.map(MC)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const a=[...i];let c=!1;return hf(a[0],a[a.length-1])||(a.push(a[0]),c=!0),AC(a)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:a,wasClosedAutomatically:c}}function SC(n,e,t){return uf(n,"decimal",t,e)}function uf(n,e,t,r=1){return e==="decimal"?EC(n,r,t):ff(n,r,t)}function EC(n,e,t){const r=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(n))return{ok:!1,errors:[{line:e,message:"У десятковому форматі не допускаються літери."}]};const o=n.split(/[\s,;]+/).filter(Boolean);if(o.length<2)return{ok:!1,errors:[{line:e,message:"Кожен рядок має містити дві координати."}]};if(o.length>2)return{ok:!1,errors:[{line:e,message:"У рядку дозволено лише одну пару координат."}]};if(!o.every(d=>vC.test(d)))return{ok:!1,errors:[{line:e,message:"Не вдалося розпізнати десяткові координати."}]};const i=Number(o[0]),l=Number(o[1]);if(!Number.isFinite(i)||!Number.isFinite(l))return{ok:!1,errors:[{line:e,message:"Не вдалося розпізнати десяткові координати."}]};const a=t==="lat-lon"?i:l,c=t==="lat-lon"?l:i;return(a<-90||a>90)&&r.push({line:e,message:"Широта поза діапазоном (-90..90)."}),(c<-180||c>180)&&r.push({line:e,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[c,a]}}function ff(n,e,t){ci.lastIndex=0;const r=[...n.matchAll(ci)];if(r.length<2)return{ok:!1,errors:[{line:e,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:e,message:"У рядку дозволено лише одну пару координат."}]};if(ci.lastIndex=0,n.replace(ci," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:e,message:"У рядку виявлено зайві символи або значення."}]};const i=pf(r[0],e,t==="lat-lon"?"lat":"lon"),l=pf(r[1],e,t==="lat-lon"?"lon":"lat"),a=[];if(i.ok||a.push(i.error),l.ok||a.push(l.error),a.length)return{ok:!1,errors:a};const c=t==="lat-lon"?i.value:l.value;return{ok:!0,point:[t==="lat-lon"?l.value:i.value,c]}}function pf(n,e,t){const r=Number(n[1]),o=Number(n[2]),i=Number(n[3]),l=String(n[4]).toUpperCase();if(!Number.isFinite(r)||!Number.isFinite(o)||!Number.isFinite(i))return{ok:!1,error:{line:e,message:"Невірні значення DMS-координат."}};if(t==="lat"&&!(l==="N"||l==="S")||t==="lon"&&!(l==="E"||l==="W"))return{ok:!1,error:{line:e,message:t==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(o<0||o>59)return{ok:!1,error:{line:e,message:"Хвилини повинні бути в діапазоні 0..59."}};if(i<0||i>60)return{ok:!1,error:{line:e,message:"Секунди повинні бути в діапазоні 0..60."}};const d=Math.abs(r),u=t==="lat"?90:180;if(d>u)return{ok:!1,error:{line:e,message:t==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===u&&(o!==0||i!==0))return{ok:!1,error:{line:e,message:t==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const f=d+o/60+i/3600;return{ok:!0,value:l==="S"||l==="W"?-f:f}}function MC(n){return`${n[0].toFixed(12)}:${n[1].toFixed(12)}`}function hf(n,e){return Math.abs(n[0]-e[0])<br&&Math.abs(n[1]-e[1])<br}function AC(n){if(n.length<4)return!1;for(let e=0;e<n.length-1;e+=1){const t=n[e],r=n[e+1];for(let o=e+1;o<n.length-1;o+=1){if(Math.abs(e-o)<=1||e===0&&o===n.length-2)continue;const i=n[o],l=n[o+1];if(_C(t,r,i,l))return!0}}return!1}function _C(n,e,t,r){const o=di(n,e,t),i=di(n,e,r),l=di(t,r,n),a=di(t,r,e);return!!(o!==i&&l!==a||o===0&&ui(n,t,e)||i===0&&ui(n,r,e)||l===0&&ui(t,n,r)||a===0&&ui(t,e,r))}function di(n,e,t){const r=(e[1]-n[1])*(t[0]-e[0])-(e[0]-n[0])*(t[1]-e[1]);return Math.abs(r)<br?0:r>0?1:2}function ui(n,e,t){return e[0]<=Math.max(n[0],t[0])+br&&e[0]+br>=Math.min(n[0],t[0])&&e[1]<=Math.max(n[1],t[1])+br&&e[1]+br>=Math.min(n[1],t[1])}const TC=["title"],BC={key:0,class:"vs-select__options absolute z-50 mt-1 w-auto min-w-full bg-white border border-gray-300 shadow-lg rounded-lg text-sm text-gray-900"},NC=["onClick"],DC=["placeholder"],VC={class:"absolute inset-y-0 right-2 flex items-center gap-1"},$C={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},LC={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},IC={class:"max-h-[260px] overflow-auto"},OC={key:0,class:"divide-y divide-gray-100"},RC=["onClick"],FC={key:1,class:"px-3 py-3 text-xs text-gray-500"},mf="formMapSearchAddressHistory",PC=12,zC="https://geo.rv.ua/api-user/dzk.api",HC="https://nominatim.openstreetmap.org/search",jC=Be(s.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(n,{emit:e}){const t={mounted(R,M){if(typeof document>"u")return;let D=null;const H=8,te=()=>{const tt=String(M?.value??"");if(!tt)return;D=document.createElement("div"),D.textContent=tt,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 Re=R.getBoundingClientRect();D.style.left=`${Re.right+window.scrollX+H}px`,D.style.top=`${Re.top+window.scrollY+(Re.height-D.offsetHeight)/2}px`},we=()=>{D?.parentNode&&D.parentNode.removeChild(D),D=null};R.addEventListener("mouseenter",te),R.addEventListener("mouseleave",we),Object.assign(R,{tooltipRightHandlers:{show:te,hide:we}})},unmounted(R){if(typeof document>"u")return;const M=R.tooltipRightHandlers;M&&(R.removeEventListener("mouseenter",M.show),R.removeEventListener("mouseleave",M.hide))}},r=n,o=e,i=s.getCurrentInstance();function l(){return typeof globalThis<"u"&&globalThis.proxy?globalThis.proxy:typeof window<"u"&&window.proxy?window.proxy:null}function a(){const M=i?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(M)return Array.isArray(M)?M.join(","):String(M);const H=l()?.map?.searchViewbox;if(H)return Array.isArray(H)?H.join(","):String(H)}function c(){const M=i?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof M=="string"&&M.trim())return M.trim();const H=l()?.map?.addressSuggest;if(typeof H=="string"&&H.trim())return H.trim()}function d(){if(typeof r.config?.cadastreSuggest=="string"&&r.config.cadastreSuggest.trim())return r.config.cadastreSuggest.trim();const R=i?.appContext.config.globalProperties?.$settings,M=R?.map?.cadastreSuggest??R?.map?.parcelSuggest??R?.map?.parcelSearch;if(typeof M=="string"&&M.trim())return M.trim();const D=l(),H=D?.map?.cadastreSuggest??D?.map?.parcelSuggest??D?.map?.parcelSearch;if(typeof H=="string"&&H.trim())return H.trim()}const u=!!c(),f=!!a(),p=s.computed(()=>{const R=["nominatim","xy","parcel"];return u&&R.unshift("address"),f?R:R.filter(M=>M!=="nominatim")}),h=s.computed(()=>{const R=p.value,M=r.config?.tools?.filter(D=>R.includes(D));return M&&M.length?M:R}),m=s.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),g=s.ref(h.value[0]);s.watch(h,R=>{R.includes(g.value)||(g.value=R[0])});const y=s.ref(""),b=s.ref(!1),w=s.ref(null),v=s.ref(null),S=s.ref(null),N=s.ref(null),F=s.ref([]),T=s.ref(null),E=s.ref(!1),_=s.ref([]),A=s.computed(()=>(g.value==="address"||g.value==="nominatim")&&E.value),I=s.computed(()=>r.config?.addressDebounceMs??1e3);let U=null;const Z=s.ref(!1),V=s.computed(()=>y.value.trim().length>0?F.value:_.value),z=s.computed(()=>y.value.trim().length?`Знайдено ${F.value.length}`:"Історія пошуку"),oe=s.computed(()=>y.value.trim().length?"Нічого не знайдено":"Історія порожня");function K(){if(typeof window>"u")return[];try{const R=window.localStorage?.getItem?.(mf);if(!R)return[];const M=JSON.parse(R);return Array.isArray(M)?M:[]}catch{return[]}}function G(R){typeof window>"u"||window.localStorage?.setItem?.(mf,JSON.stringify(R))}function X(R){const D=[R,..._.value.filter(H=>H.id!==R.id)].slice(0,10);_.value=D,G(D)}const ce=s.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function j(){if(!N.value)return;const R=N.value.getBoundingClientRect(),M=S.value?.getBoundingClientRect(),D=M?.width??R.width,H=(M?.left??R.left)+window.scrollX,te=R.bottom+window.scrollY+PC;ce.left=`${H}px`,ce.top=`${te}px`,ce.width=`${D}px`,ce.display="block"}const L=()=>{A.value&&j()};function O(){U&&(clearTimeout(U),U=null)}s.watch(g,()=>{y.value="",b.value=!1,F.value=[],E.value=!1,O(),Z.value=!1}),s.watch(A,R=>{R?s.nextTick(()=>{j()}):ce.display="none"}),s.watch(y,R=>{if(g.value!=="address"&&g.value!=="nominatim"){F.value=[],O();return}if(!R.trim()){F.value=[],E.value=_.value.length>0,O();return}O(),E.value=!0,U=window.setTimeout(()=>{Xe(R).catch(M=>{const D=M?.message||"Помилка пошуку адреси";ke.notify({type:"error",title:"Пошук адреси",message:D})})},I.value)});function ne(R){const M=[];v.value&&M.push(v.value),R instanceof HTMLElement&&M.push(R),w.value?.querySelectorAll("li")?.forEach(H=>{M.push(H)}),M.forEach(H=>{H.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function ae(R){b.value&&ne(R.target),b.value=!b.value}function re(R,M){ne(M?.target),g.value=R}function he(){y.value="",F.value=[],E.value=!1,Z.value=!1}function Ae(R){const M=R.target;if(b.value){const D=w.value;D&&!D.contains(M)&&(ne(M),b.value=!1)}if(A.value){const D=T.value,H=N.value;D&&!D.contains(M)&&(!H||!H.contains(M))&&(E.value=!1)}}s.onMounted(()=>{_.value=K(),window.addEventListener("click",Ae,!0),window.addEventListener("scroll",L,!0),window.addEventListener("resize",L)}),s.onBeforeUnmount(()=>{window.removeEventListener("click",Ae,!0),window.removeEventListener("scroll",L,!0),window.removeEventListener("resize",L),O()});function Ce(R){return R==="xy"?"Координати":R==="parcel"?"Кадастр":R==="nominatim"?"Адреса":"Адресний"}function $e(R){switch(R){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 it(R){const M=uf(R.trim(),"dms","lat-lon");if(M.ok){const[Le,$t]=M.point;return{lat:$t,lng:Le}}const D=R.replace(/[,]+/g," ").trim();if(!D)return null;const H=D.split(/\s+/).filter(Boolean);if(H.length<2)return null;const te=H.slice(0,2).map(Number);if(!te.every(Le=>Number.isFinite(Le)))return null;let[we,tt]=te,Re=we,St=tt;const cn=Le=>Math.abs(Le)<=90,tn=Le=>Math.abs(Le)<=180;if(!cn(Re)||!tn(St))if(cn(St)&&tn(Re))Re=tt,St=we;else return null;return{lat:Re,lng:St}}function Fe(R){const M=R?.result||R?.data||R;return(Array.isArray(M)?M:M?[M]:[]).map((H,te)=>{const we=H?.geom_centroid,tt=Array.isArray(we?.coordinates)?we.coordinates:null;if(!tt||tt.length<2)return null;const Re=Number(tt[0]),St=Number(tt[1]);return!Number.isFinite(St)||!Number.isFinite(Re)?null:{id:String(H?.parcel_id??H?.cad_num??te),title:H?.cadnum||H?.cad_num||"Земельна ділянка",lat:St,lng:Re,geom:H?.geom||null}}).filter(H=>!!H)}function Qe(R){return(Array.isArray(R?.features)?R.features:[]).map((D,H)=>{const te=D?.geometry?.coordinates,we=Number(te?.[0]),tt=Number(te?.[1]);if(!Number.isFinite(tt)||!Number.isFinite(we))return null;const Re=D?.properties||{},St=Re?.geocoding?.label||Re?.display_name||Re?.label||"Адреса";return{id:String(Re?.geocoding?.place_id||Re?.place_id||H),title:St,lat:tt,lng:we}}).filter(D=>!!D)}function We(R){return Number.isFinite(R.lat)&&Number.isFinite(R.lng)}function se(R){if(R==null||typeof R=="string"&&!R.trim())return null;const M=Number(R);return Number.isFinite(M)?M:null}function me(R){const M=se(R.lng)??se(R.lon)??se(R.longitude)??se(R.x),D=se(R.lat)??se(R.latitude)??se(R.y);if(M!=null&&D!=null)return{lat:D,lng:M};const H=R?.geometry?.coordinates??R?.geom_centroid?.coordinates??R?.centroid?.coordinates??R?.geojson?.geometry?.coordinates??R?.geom?.coordinates;if(Array.isArray(H)&&H.length>=2){const te=se(H[0]),we=se(H[1]);if(te!=null&&we!=null)return{lat:we,lng:te}}return null}function Ee(R){return(Array.isArray(R?.data)?R.data:[]).map((D,H)=>{const te=me(D),we=String(D.text??D.title??D.label??D.name??D.address??D.display_name??D.id??"Адреса"),tt=String(D.id??D.code??D.value??H);return te?{id:tt,title:we,...te}:{id:tt,title:we}}).filter(D=>!!D?.title)}function Me(R){const M=d()||zC;if(M.includes(":id"))return M.replace(":id",encodeURIComponent(R));if(M.includes(":name"))return M.replace(":name",encodeURIComponent(R));try{const D=new URL(M,window.location.origin),H=r.config?.parcelQueryParam?.trim()||"cad_num";return D.searchParams.set(H,R),D.toString()}catch{return M}}function Ye(R){const M=c();if(!M)return null;if(M.includes(":name"))return M.replace(":name",encodeURIComponent(R));try{const D=new URL(M,window.location.origin);return R.trim()&&D.searchParams.set("q",R),D.toString()}catch{return M}}async function Ct(R){const M=Ye(R);if(!M)return[];const D=await fetch(M);if(!D.ok)throw new Error(`HTTP ${D.status}`);const H=await D.json();return Ee(H)}async function et(R){const M=new URL(HC);M.searchParams.set("format","geojson"),M.searchParams.set("q",R),M.searchParams.set("addressdetails","1"),M.searchParams.set("bounded","1");const D=a();D&&M.searchParams.set("viewbox",D);const H=await fetch(M.toString());if(!H.ok)throw new Error(`HTTP ${H.status}`);const te=await H.json();return Qe(te)}async function Xe(R){if(F.value=[],O(),g.value==="address"){if(!c()){ke.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const H=await Ct(R);if(!H.length){ke.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}F.value=H;return}const M=await et(R);if(!M.length){ke.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}F.value=M}async function ft(R){if(We(R)){ee(R),X(R);return}ke.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function Vt(){g.value!=="address"&&g.value!=="nominatim"||(E.value=!0,s.nextTick(()=>{j()}))}function W(R){const D=R.replace(/\s+/g,"").split(":");if(D.length!==4)return!1;const H=[10,2,3,4];return D.every((te,we)=>te.length===H[we]&&/^\d+$/.test(te))}function ee(R){o("goToCoordinates",[R.lat,R.lng],{geom:R.geom,zoom:r.config?.zoom}),Z.value=!0}async function ue(){const R=y.value.trim();if(R){if(g.value==="xy"){const M=it(R);if(!M){ke.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}ee(M);return}if(g.value==="address"||g.value==="nominatim"){try{await Xe(R)}catch(M){const D=M?.message||"Помилка пошуку адреси";ke.notify({type:"error",title:"Пошук адреси",message:D})}return}try{if(!W(R)){ke.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const M=await fetch(Me(R));if(!M.ok)throw new Error(`HTTP ${M.status}`);const D=await M.json(),H=Fe(D);if(!H.length)ke.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const te=H.find(We);if(!te){ke.notify({type:"warning",title:"Пошук",message:"Геометрія ділянки відсутня"});return}ee(te)}}catch(M){const D=M?.message||"Помилка пошуку";ke.notify({type:"error",title:"Пошук",message:D})}}}return(R,M)=>(s.openBlock(),s.createElementBlock("div",{ref_key:"widgetRef",ref:S,class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},[s.createElementVNode("form",{class:"flex gap-2 text-gray-900",onSubmit:s.withModifiers(ue,["prevent"])},[h.value.length>1?(s.openBlock(),s.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:w,class:"relative search-type w-[100px]"},[s.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},[s.withDirectives((s.openBlock(),s.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:v,class:"block w-full truncate",title:Ce(g.value)},[s.createTextVNode(s.toDisplayString(Ce(g.value)),1)],8,TC)),[[t,$e(g.value)]]),(s.openBlock(),s.createElementBlock("svg",{class:s.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":b.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},M[3]||(M[3]=[s.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]),2))]),b.value?(s.openBlock(),s.createElementBlock("div",BC,[s.createElementVNode("ul",null,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(h.value,D=>s.withDirectives((s.openBlock(),s.createElementBlock("li",{key:D,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:H=>re(D,H)},[s.createTextVNode(s.toDisplayString(Ce(D)),1)],8,NC)),[[t,$e(D)]])),128))])])):s.createCommentVNode("",!0)],512)):s.createCommentVNode("",!0),s.createElementVNode("div",{ref_key:"searchWrapperRef",ref:N,class:"relative flex-1 min-w-[140px]"},[g.value==="parcel"?(s.openBlock(),s.createBlock(Gs,{key:0,modelValue:y.value,"onUpdate:modelValue":M[0]||(M[0]=D=>y.value=D),mask:"0000000000:00:000:0000",class:s.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",Z.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):s.withDirectives((s.openBlock(),s.createElementBlock("input",{key:1,"onUpdate:modelValue":M[1]||(M[1]=D=>y.value=D),placeholder:m.value,type:"text",class:s.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",Z.value?"!pr-14":"!pr-8"]),onFocus:Vt},null,42,DC)),[[s.vModelText,y.value,void 0,{trim:!0}]]),s.createElementVNode("div",VC,[Z.value?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Очистити",onClick:he},M[4]||(M[4]=[s.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"},[s.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)]))):s.createCommentVNode("",!0),M[5]||(M[5]=s.createElementVNode("button",{type:"submit",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[s.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"},[s.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))]),A.value?(s.openBlock(),s.createBlock(s.Teleport,{key:2,to:"body"},[s.createElementVNode("div",{ref_key:"addressResultsRef",ref:T,class:"vs-select__options mt-1 bg-white border border-gray-300 rounded-lg shadow-lg text-sm text-gray-900 z-50",style:s.normalizeStyle(ce)},[s.createElementVNode("div",$C,[s.createElementVNode("span",LC,s.toDisplayString(z.value),1),s.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:M[2]||(M[2]=D=>E.value=!1)}," ✕ ")]),s.createElementVNode("div",IC,[V.value.length?(s.openBlock(),s.createElementBlock("ul",OC,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(V.value,D=>(s.openBlock(),s.createElementBlock("li",{key:D.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:H=>ft(D)},s.toDisplayString(D.title),9,RC))),128))])):(s.openBlock(),s.createElementBlock("div",FC,s.toDisplayString(oe.value),1))])],4)])):s.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-d9026eaa"]]),UC={class:"pt-1 border-t border-gray-100"},WC={class:"space-y-1"},KC=s.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(n,{emit:e}){const t=e,r=s.ref(null),o=s.ref(null),i=(c,d,u)=>Math.min(Math.max(c,d),u),l=()=>{if(r.value===null||o.value===null||!Number.isFinite(r.value)||!Number.isFinite(o.value))return;const c=i(r.value,-90,90),d=i(o.value,-180,180);t("submit",{lat:c,lng:d}),r.value=null,o.value=null},a=()=>{r.value=null,o.value=null,t("cancel")};return(c,d)=>(s.openBlock(),s.createElementBlock("div",UC,[d[2]||(d[2]=s.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),s.createElementVNode("div",WC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=u=>r.value=u),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта (50.4501)"},null,512),[[s.vModelText,r.value,void 0,{number:!0}]]),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=u=>o.value=u),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота (30.5234)"},null,512),[[s.vModelText,o.value,void 0,{number:!0}]]),s.createElementVNode("div",{class:"flex gap-1.5"},[s.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:l}," Додати "),s.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:a}," Скасувати ")])])]))}}),qC=s.defineComponent({__name:"BtnAdd",emits:["click"],setup(n){return(e,t)=>(s.openBlock(),s.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:t[0]||(t[0]=r=>e.$emit("click"))},[s.createVNode(s.unref(Y.Plus),{size:12,"stroke-width":2}),t[1]||(t[1]=s.createTextVNode(" Додати ",-1))]))}}),GC=s.defineComponent({__name:"BtnClear",emits:["click"],setup(n){return(e,t)=>(s.openBlock(),s.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:t[0]||(t[0]=r=>e.$emit("click"))},[s.createVNode(s.unref(Y.Trash2),{size:12,"stroke-width":2}),t[1]||(t[1]=s.createTextVNode(" Очистити ",-1))]))}}),JC=s.defineComponent({__name:"BtnComplete",emits:["click"],setup(n){return(e,t)=>(s.openBlock(),s.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:t[0]||(t[0]=r=>e.$emit("click"))},[s.createVNode(s.unref(Y.Circle),{size:12,"stroke-width":2}),t[1]||(t[1]=s.createTextVNode("Замкнути ",-1))]))}}),YC=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function kr(n){return YC.format(n)}function gf(n){return n>=1e3?`${kr(n/1e3)} км`:`${kr(n)} м`}const XC={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},ZC={key:0,class:"flex-1 flex gap-1"},QC={key:1,class:"flex-1 font-mono text-gray-700"},eS=s.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(n,{emit:e}){const t=n,r=e,o=s.computed(()=>`${t.coords.lat.toFixed(4)}°, ${t.coords.lng.toFixed(4)}°`),i=s.ref(!1),l=s.ref(t.coords.lat),a=s.ref(t.coords.lng);s.watch(()=>t.coords,p=>{l.value=p.lat,a.value=p.lng},{deep:!0,immediate:!0});const c=(p,h,m)=>Math.min(Math.max(p,h),m),d=()=>{i.value=!0},u=()=>{if(!Number.isFinite(l.value)||!Number.isFinite(a.value))return;const p=c(l.value,-90,90),h=c(a.value,-180,180);r("update",{id:t.id,coords:{lat:p,lng:h}}),i.value=!1},f=()=>{r("delete",t.id)};return(p,h)=>(s.openBlock(),s.createElementBlock("div",XC,[s.createVNode(s.unref(Y.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),i.value?(s.openBlock(),s.createElementBlock("div",ZC,[s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=m=>l.value=m),type:"number",step:"0.0001",min:"-90",max:"90",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта"},null,512),[[s.vModelText,l.value,void 0,{number:!0}]]),s.withDirectives(s.createElementVNode("input",{"onUpdate:modelValue":h[1]||(h[1]=m=>a.value=m),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[s.vModelText,a.value,void 0,{number:!0}]]),s.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:u}," ✓ ")])):(s.openBlock(),s.createElementBlock("span",QC,s.toDisplayString(o.value),1)),i.value?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("button",{key:2,class:"text-blue-500 hover:text-blue-600 px-0.5",type:"button",onClick:d}," ✎ ")),s.createElementVNode("button",{class:"text-rose-500 hover:text-rose-600 px-0.5",type:"button",onClick:f}," ✕ ")]))}}),tS={class:"ruler-control px-3 py-2.5 space-y-2"},nS={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},rS={class:s.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Сумарна довжина всіх відрізків","aria-hidden":"true"},oS={class:"text-sm font-semibold text-slate-700"},sS={class:"ruler-row"},iS={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},lS={class:s.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Площа замкнутого контуру","aria-hidden":"true"},aS={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},cS=["onClick"],dS={class:"flex items-center gap-2 mt-0.5 pl-7"},uS={key:0,class:"text-base font-semibold text-green-600"},fS={key:1,class:"text-xs text-gray-400"},pS={class:"ruler-row flex items-center gap-2 cursor-pointer"},hS={class:s.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Список точок","aria-hidden":"true"},mS={class:"text-xs font-medium text-gray-600 flex-1"},gS={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},yS=s.defineComponent({__name:"ControlPanel",props:{points:{},isShapeClosed:{type:Boolean}},emits:["update-point","delete-point"],setup(n){const e=n,t=s.ref(!1),r=s.ref("km2"),o=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],i=()=>{t.value=!t.value},l=(m,g)=>{const y=_=>_*Math.PI/180,b=y(g.lat-m.lat),w=y(g.lng-m.lng),v=y(m.lat),S=y(g.lat),N=Math.sin(b/2),F=Math.sin(w/2);return 6371e3*(2*Math.asin(Math.sqrt(N*N+Math.cos(v)*Math.cos(S)*F*F)))},a=s.computed(()=>{if(e.points.length<2)return 0;let m=0;for(let g=1;g<e.points.length;g+=1)m+=l(e.points[g-1].coords,e.points[g].coords);return e.isShapeClosed&&e.points.length>=2&&(m+=l(e.points[e.points.length-1].coords,e.points[0].coords)),m}),c=s.computed(()=>a.value>=1e3?`${kr(a.value/1e3)} км`:`${kr(a.value)} м`);function d(m){if(m.length<3)return 0;const g=m[0].lat,y=m[0].lng,b=(v,S)=>{const N=(v-g)*110574;return{x:(S-y)*111320*Math.cos(g*Math.PI/180),y:N}};let w=0;for(let v=0;v<m.length;v++){const S=(v+1)%m.length,N=b(m[v].lat,m[v].lng),F=b(m[S].lat,m[S].lng);w+=N.x*F.y-N.y*F.x}return Math.abs(w)*.5}const u=s.computed(()=>{if(!e.isShapeClosed||e.points.length<3)return 0;const m=e.points.map(g=>g.coords);return d(m)}),f=s.computed(()=>u.value>0),p=s.computed(()=>{const m=u.value;if(m===0)return"—";if(r.value==="km2"){const y=m/1e6;return`${kr(y)} км²`}if(r.value==="ha"){const y=m/1e4;return`${kr(y)} га`}const g=m>=1?Math.round(m):m;return`${kr(g)} м²`}),h=s.computed(()=>{const m=e.points.length;return m===1?"1 точка":m>=2&&m<=4?`${m} точки`:`${m} точок`});return s.watch(()=>e.points.length,()=>{e.points.length===0&&(t.value=!1)}),(m,g)=>(s.openBlock(),s.createElementBlock("div",tS,[s.createElementVNode("button",nS,[s.createElementVNode("span",rS,[s.createVNode(s.unref(Y.Info),{size:12,"stroke-width":2.5})]),g[1]||(g[1]=s.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),s.createElementVNode("span",oS,s.toDisplayString(c.value),1)]),s.createElementVNode("div",sS,[s.createElementVNode("button",iS,[s.createElementVNode("span",lS,[s.createVNode(s.unref(Y.Info),{size:12,"stroke-width":2.5})]),g[2]||(g[2]=s.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),s.createElementVNode("div",aS,[(s.openBlock(),s.createElementBlock(s.Fragment,null,s.renderList(o,(y,b)=>s.createElementVNode("button",{key:y.id,type:"button",class:s.normalizeClass(["px-2.5 py-1 text-xs font-medium transition-colors border-r border-gray-200 last:border-r-0",b===0&&"rounded-l-md",b===o.length-1&&"rounded-r-md",r.value===y.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:s.withModifiers(w=>r.value=y.id,["stop"])},s.toDisplayString(y.label),11,cS)),64))])]),s.createElementVNode("div",dS,[f.value?(s.openBlock(),s.createElementBlock("span",uS,s.toDisplayString(p.value),1)):(s.openBlock(),s.createElementBlock("span",fS,"—"))])]),s.createElementVNode("div",pS,[s.createElementVNode("span",hS,[s.createVNode(s.unref(Y.Info),{size:12,"stroke-width":2.5})]),s.createElementVNode("span",mS,s.toDisplayString(h.value),1),s.createElementVNode("button",{type:"button",class:"text-xs text-blue-500 hover:text-blue-600 font-medium transition-colors",onClick:s.withModifiers(i,["stop"])}," Координати ")]),t.value?(s.openBlock(),s.createElementBlock("div",gS,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(m.points,(y,b)=>(s.openBlock(),s.createBlock(eS,{key:y.id,id:y.id,index:b+1,coords:y.coords,onUpdate:g[0]||(g[0]=w=>m.$emit("update-point",w)),onDelete:w=>m.$emit("delete-point",y.id)},null,8,["id","index","coords","onDelete"]))),128))])):s.createCommentVNode("",!0)]))}}),bS={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},kS={class:"flex items-start gap-2"},wS=s.defineComponent({__name:"InfoHint",setup(n){return(e,t)=>(s.openBlock(),s.createElementBlock("div",bS,[s.createElementVNode("div",kS,[s.createVNode(s.unref(Y.Info),{size:16,"stroke-width":2,class:"text-blue-600 flex-shrink-0 mt-0.5"}),t[0]||(t[0]=s.createElementVNode("div",{class:"space-y-1"},[s.createElementVNode("p",{class:"text-xs font-medium text-blue-900"}," Натискайте на карту, щоб додати точки вимірювання "),s.createElementVNode("p",{class:"text-[10px] text-blue-700"},' Або скористайтесь кнопкою "Додати" внизу для введення координат вручну ')],-1))])]))}}),xS={class:"space-y-1.5"},vS={class:"space-y-1 max-h-40 overflow-y-auto"},CS={class:"text-gray-700"},SS={class:"font-semibold text-slate-800"},ES=s.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(n){const e=n;function t(i,l){const a=h=>h*Math.PI/180,c=a(l.lat-i.lat),d=a(l.lng-i.lng),u=a(i.lat),f=a(l.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(c/2)**2+Math.cos(u)*Math.cos(f)*Math.sin(d/2)**2)))}function r(i){return gf(i)}const o=s.computed(()=>{const i=[],l=e.points;if(l.length<2)return i;for(let a=0;a<l.length;a++){const c=a===l.length-1&&e.isShapeClosed?0:a+1;if(c>=l.length)break;const d=t(l[a].coords,l[c].coords);i.push({from:a+1,to:c+1,label:r(d)})}return i});return(i,l)=>(s.openBlock(),s.createElementBlock("div",xS,[l[0]||(l[0]=s.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),s.createElementVNode("div",vS,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(o.value,(a,c)=>(s.openBlock(),s.createElementBlock("div",{key:c,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[s.createElementVNode("span",CS,"Точка "+s.toDisplayString(a.from)+" → Точка "+s.toDisplayString(a.to),1),s.createElementVNode("span",SS,s.toDisplayString(a.label),1)]))),128))])]))}}),MS={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},AS={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},_S={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},TS={class:"flex items-center gap-2"},BS={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},NS={class:"flex border-b border-gray-200"},DS={key:1,class:"px-3 py-2.5"},VS={key:1,class:"text-xs text-gray-500"},$S={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},LS={class:"flex gap-1.5"},IS=s.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(n,{expose:e,emit:t}){const r=t,o=s.ref([]),i=s.computed(()=>o.value.length>0),l=s.ref(!1),a=s.ref(!1),c=s.ref("general");function d(A){c.value=A,r("tab-change",A)}s.onMounted(()=>{r("tab-change",c.value)});const u=s.computed(()=>o.value.length>=3&&!a.value);let f=1;const p=()=>o.value.map(A=>({id:A.id,coords:{...A.coords}})),h=()=>{o.value.length<3&&a.value&&(a.value=!1,r("shape-closed-change",!1)),r("points-change",p())},m=()=>{const A=f;return f+=1,A},g=A=>{o.value=[...o.value,{id:m(),coords:{lat:A.lat,lng:A.lng}}],h()},y=({id:A,coords:I})=>{const U=o.value.findIndex(V=>V.id===A);if(U===-1)return;const Z=[...o.value];Z[U]={id:A,coords:{...I}},o.value=Z,h()},b=A=>{o.value=o.value.filter(I=>I.id!==A),h()},w=()=>{o.value=[],a.value&&(a.value=!1,r("shape-closed-change",!1)),h()},v=A=>{y(A)},S=A=>{b(A)},N=()=>{l.value=!0,r("add-request")},F=A=>{g(A),l.value=!1},T=()=>{l.value=!1},E=()=>{u.value&&(a.value=!0,r("complete"),r("shape-closed-change",!0))},_=()=>{w(),l.value=!1,r("close")};return e({addPoint:g,clearPoints:w}),(A,I)=>(s.openBlock(),s.createElementBlock("div",MS,[s.createElementVNode("div",AS,[s.createElementVNode("div",_S,[s.createElementVNode("div",TS,[s.createElementVNode("div",BS,[s.createVNode(s.unref(Y.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),I[2]||(I[2]=s.createElementVNode("h3",{class:"text-white font-semibold text-xs"},"Вимірювання",-1))]),s.createElementVNode("button",{class:"w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors","aria-label":"Закрити",onClick:_},[s.createVNode(s.unref(Y.X),{size:14,"stroke-width":2,class:"text-white"})])]),s.createElementVNode("div",NS,[s.createElementVNode("button",{type:"button",class:s.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:I[0]||(I[0]=U=>d("general"))}," Загальна ",2),s.createElementVNode("button",{type:"button",class:s.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:I[1]||(I[1]=U=>d("topoint"))}," До точки ",2)]),c.value==="general"?(s.openBlock(),s.createElementBlock(s.Fragment,{key:0},[i.value?(s.openBlock(),s.createBlock(yS,{key:1,points:o.value,"is-shape-closed":a.value,onUpdatePoint:v,onDeletePoint:S},null,8,["points","is-shape-closed"])):(s.openBlock(),s.createBlock(wS,{key:0}))],64)):(s.openBlock(),s.createElementBlock("div",DS,[i.value?(s.openBlock(),s.createBlock(ES,{key:0,points:o.value,"is-shape-closed":a.value},null,8,["points","is-shape-closed"])):(s.openBlock(),s.createElementBlock("p",VS,"Додайте точки на карті, щоб бачити відстані між ними."))])),s.createElementVNode("div",$S,[s.createElementVNode("div",LS,[l.value?s.createCommentVNode("",!0):(s.openBlock(),s.createBlock(qC,{key:0,onClick:N})),u.value?(s.openBlock(),s.createBlock(JC,{key:1,onClick:E})):s.createCommentVNode("",!0)]),l.value?(s.openBlock(),s.createBlock(KC,{key:0,onSubmit:F,onCancel:T})):s.createCommentVNode("",!0),i.value?(s.openBlock(),s.createBlock(GC,{key:1,onClick:w})):s.createCommentVNode("",!0)])])]))}}),Ft="ruler-points",Tn="ruler-line",Bn="ruler-polygon",Nn="ruler-segments",OS=s.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(n){function e(m,g){const y=F=>F*Math.PI/180,b=y(g.lat-m.lat),w=y(g.lng-m.lng),v=y(m.lat),S=y(g.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(b/2)**2+Math.cos(v)*Math.cos(S)*Math.sin(w/2)**2)))}function t(m){return gf(m)}const r=n;function o(){return{type:"FeatureCollection",features:[]}}function i(m,g,y){const b=y??"general",w=[];let v=0;w.push(0);for(let S=1;S<m.length;S++)v+=e(m[S-1].coords,m[S].coords),w.push(v);return g&&m.length>=2&&(v+=e(m[m.length-1].coords,m[0].coords)),{type:"FeatureCollection",features:m.map((S,N)=>{const F=b==="general"?N===0?"0":t(w[N]):N===0?"0":t(e(m[N-1].coords,m[N].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[S.coords.lng,S.coords.lat]},properties:{id:S.id,index:N+1,label:F}}})}}function l(m,g){if(m.length<2)return o();const y=[];for(let b=0;b<m.length;b++){const w=b===m.length-1&&g?0:b+1;if(w>=m.length)break;const v=m[b].coords,S=m[w].coords,N=e(v,S);y.push({type:"Feature",geometry:{type:"LineString",coordinates:[[v.lng,v.lat],[S.lng,S.lat]]},properties:{distance:t(N)}})}return{type:"FeatureCollection",features:y}}function a(m,g){if(m.length<2)return o();const y=m.map(b=>[b.coords.lng,b.coords.lat]);return g&&y.push(y[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:y},properties:{}}]}}function c(m){if(m.length<3)return o();const g=m.map(y=>[y.coords.lng,y.coords.lat]);return g.push(g[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[g]},properties:{}}]}}let d=!1;function u(m){m.getSource(Ft)||(m.addSource(Ft,{type:"geojson",data:o()}),m.addLayer({id:`${Ft}-circle`,type:"circle",source:Ft,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),m.addLayer({id:`${Ft}-labels`,type:"symbol",source:Ft,layout:{"text-field":["get","label"],"text-size":14,"text-offset":[0,1.3]},paint:{"text-color":"#0f172a","text-halo-color":"#ffffff","text-halo-width":1}})),m.getSource(Nn)||(m.addSource(Nn,{type:"geojson",data:o()}),m.addLayer({id:`${Nn}-labels`,type:"symbol",source:Nn,layout:{"text-field":["get","distance"],"text-size":13,"symbol-placement":"line-center","text-rotation-alignment":"map","text-pitch-alignment":"map"},paint:{"text-color":"#1e293b","text-halo-color":"#ffffff","text-halo-width":1.5}})),m.getSource(Tn)||(m.addSource(Tn,{type:"geojson",data:o()}),m.addLayer({id:`${Tn}-layer`,type:"line",source:Tn,paint:{"line-color":"#3b82f6","line-width":2}})),m.getSource(Bn)||(m.addSource(Bn,{type:"geojson",data:o()}),m.addLayer({id:`${Bn}-layer`,type:"fill",source:Bn,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function f(m){if(m){try{m.getLayer(`${Bn}-layer`)&&m.removeLayer(`${Bn}-layer`),m.getSource(Bn)&&m.removeSource(Bn),m.getLayer(`${Tn}-layer`)&&m.removeLayer(`${Tn}-layer`),m.getSource(Tn)&&m.removeSource(Tn),m.getLayer(`${Nn}-labels`)&&m.removeLayer(`${Nn}-labels`),m.getSource(Nn)&&m.removeSource(Nn),m.getLayer(`${Ft}-labels`)&&m.removeLayer(`${Ft}-labels`),m.getLayer(`${Ft}-circle`)&&m.removeLayer(`${Ft}-circle`),m.getSource(Ft)&&m.removeSource(Ft)}catch{}d=!1}}function p(m){if(!m)return;const g=m.getSource(Ft),y=m.getSource(Tn),b=m.getSource(Bn),w=m.getSource(Nn),v=r.points,S=r.labelMode??"general";g&&g.setData(i(v,r.isShapeClosed,S)),y&&y.setData(a(v,r.isShapeClosed)),b&&b.setData(c(v)),w&&w.setData(S==="topoint"?l(v,r.isShapeClosed):o())}function h(){const m=r.map;m&&(d||u(m),p(m))}return s.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>h(),{deep:!0,immediate:!0}),s.watch(()=>r.map,()=>h(),{immediate:!0}),s.onBeforeUnmount(()=>{f(r.map)}),(m,g)=>null}});function RS(n={}){const e=s.ref(!1),t=s.ref([]),r=s.ref(!1),o=s.ref("general"),i=s.ref(null);function l(){e.value?a():(e.value=!0,n.onActivate?.())}function a(){e.value=!1,t.value=[],r.value=!1,i.value?.clearPoints(),n.onDeactivate?.()}function c(h){t.value=h}function d(h){o.value=h}function u(h){r.value=h}function f(h){e.value&&i.value?.addPoint({lat:h.lat,lng:h.lng})}const p=s.computed(()=>t.value.length>0);return{isRulerActive:e,rulerPoints:t,rulerShapeClosed:r,rulerActiveTab:o,rulerPanelRef:i,hasRulerPoints:p,toggleRuler:l,closeRuler:a,onRulerPointsChange:c,onRulerTabChange:d,onRulerShapeClosedChange:u,handleRulerMapClick:f}}const La="vs-safe-raster",Do=new ArrayBuffer(0);let Ia=!1;function FS(n){const e=`${La}://`;return typeof n!="string"||!n.startsWith(e)?n:n.slice(e.length)}function PS(n){if(!n||n.byteLength<4)return!1;const e=new Uint8Array(n);return e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71||e[0]===255&&e[1]===216&&e[2]===255||e[0]===82&&e[1]===73&&e[2]===70&&e[3]===70&&n.byteLength>=12&&String.fromCharCode(e[8],e[9],e[10],e[11])==="WEBP"}async function zS(n,e){try{const t=await fetch(n,{signal:e});if(!t.ok||t.status===204)return Do;const r=await t.arrayBuffer();return!r.byteLength||!PS(r)?Do:r}catch{return Do}}function HS(n){Ia||!n?.addProtocol||(Ia=!0,n.addProtocol(La,(e,t)=>{const r=FS(String(e?.url??""));if(!r)return t(null,{data:Do}),{cancel:()=>{}};const o=new AbortController;return zS(r,o.signal).then(i=>t(null,{data:i})).catch(()=>t(null,{data:Do})),{cancel:()=>o.abort()}}))}function jS(n){const e=typeof n=="string"?n.trim():"";if(!e)return e;const t=`${La}://`;return e.startsWith(t)?e:`${t}${e}`}function US(n,e){const t=typeof n=="string"?n.trim():"";return t?e&&Ia?[jS(t)]:[t]:[]}function Oa(n,e,t){const r={type:"raster",tiles:US(n,!!t?.safe),tileSize:typeof e?.tileSize=="number"?e.tileSize:256};return typeof e?.minzoom=="number"&&(r.minzoom=e.minzoom),typeof e?.maxzoom=="number"&&(r.maxzoom=e.maxzoom),Array.isArray(e?.bounds)&&e.bounds.length===4&&(r.bounds=e.bounds),r}function WS(n){const e=String(n??"").toLowerCase();return e.includes("could not be decoded")||e.includes("source image could not be decoded")||e.includes("unsupported image type")}const KS={class:"vs-map-body"},qS={key:0,class:"absolute top-2 left-2 z-[1000] w-[calc(100%-16px)] sm:w-[320px]"},GS={key:1,class:"form-geom__panel flex items-center gap-1 mt-1"},JS={class:"flex items-center gap-1"},YS=["disabled"],XS={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"},ZS=["disabled"],QS={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"},eE={class:"mt-4 flex justify-end gap-2"},tE=["disabled"],nE=["disabled"],rE={class:"mt-4 flex justify-end gap-2"},oE=["disabled"],sE={class:"vs-map-controls vs-map-controls--tr"},iE={class:"vs-map-toolbar"},lE=["disabled"],aE=["disabled"],cE=["disabled"],dE=["disabled"],uE={key:1,class:"vs-map-toolbar__divider"},fE=["title"],pE={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"},hE={class:"space-y-0.5"},mE={class:"text-gray-500"},gE={class:"text-gray-900 text-right break-all"},yE={class:"absolute left-2 bottom-2 z-[1000]"},bE={key:0,class:"vs-map-status"},kE={class:"form-geom__feature vs-map-status__inner"},wE={class:"vs-map-status__type"},xE={class:"vs-map-status__values"},vE=["onClick","disabled"],CE={key:1,class:"vs-map-status__chip"},SE={key:2,class:"vs-map-status__sep"},EE={key:1,class:"vs-map-status__chip"},ME={class:"vs-map-status__meta"},AE={class:"vs-map-status__coords"},_E={key:0,class:"vs-map-status__value"},TE={key:1,class:"vs-map-status__value"},BE={key:0,class:"vs-map-status__area"},NE={class:"vs-map-status__value"},DE={class:"vs-map-status__actions"},VE=["disabled"],$E=["disabled"],LE="#2563eb",IE="#2563eb",OE="#modal",RE=11,FE=15,PE=.7,zE="vs-tile-ov-src-",HE="vs-tile-ov-raster-",fi="__vs_form_maplibre_loader__",jE="https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",Vo="form-search-geom-source",Ra="form-search-geom-layer-fill",Fa="form-search-geom-layer-line",pi="vs-global-bounds-src",Qr="vs-global-bounds-line",yf="rasterLayer",bf=Be(s.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},drawPoly:{type:Boolean},polyColor:{},markerColor:{},mapPopupTeleportTarget:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue","valueSelected"],setup(n,{emit:e}){const t=n,r=e,o=s.useAttrs(),i=s.inject("values",s.ref({})),l=typeof document<"u"&&document.querySelector("#modal")?"#modal":"body",a=s.computed(()=>{const k=o?.multiple,x=o?.multi,C=B=>B===""||B===!0||B==="true"||B===1||B==="1";return!!t.multi||!!t.multiple||C(x)||C(k)}),c=s.computed(()=>!!t.disabled),d=s.ref(!1),u=s.ref(null),f=s.ref(0),p=s.ref(""),h=s.ref(null),m=s.ref([]),g=s.ref(null),y=s.ref(null),b=RS({onActivate(){if(le)try{le.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""},onDeactivate(){}});function w(){b.toggleRuler()}const v=s.getCurrentInstance(),S=v?.appContext?.config?.globalProperties?.$settings??{},N=S?.map??{},F=s.computed(()=>{const k=N.layerPresets;return Array.isArray(k)?k:[]}),T=v?.vnode?.props??{};function E(k){return Object.prototype.hasOwnProperty.call(T,k)||Object.prototype.hasOwnProperty.call(T,k.replace(/[A-Z]/g,x=>`-${x.toLowerCase()}`))}function _(k,x,C){return typeof k=="boolean"?k:typeof x=="boolean"?x:C}function A(k,x,C){const B=typeof k=="string"?k.trim():"";if(B)return B;const P=typeof x=="string"?x.trim():"";return P||C}function I(k,x){return typeof k=="string"&&k.trim()?k.trim():k&&typeof k=="object"?k:typeof x=="string"&&x.trim()?x.trim():OE}function U(k){if(typeof k!="string")return k;if(typeof document>"u")return"body";try{if(document.querySelector(k))return k}catch{}return"body"}const Z=s.computed(()=>_(E("drawPoly")?t.drawPoly:void 0,N.drawPoly,!1)),V=s.computed(()=>A(E("polyColor")?t.polyColor:void 0,N.polyColor,IE)),z=s.computed(()=>A(E("markerColor")?t.markerColor:void 0,N.markerColor,LE)),oe=s.computed(()=>I(E("mapPopupTeleportTarget")?t.mapPopupTeleportTarget:void 0,N.mapPopupTeleportTarget)),K=s.computed(()=>U(oe.value)),G=s.computed(()=>({drawPoly:Z.value,polyColor:V.value,markerColor:z.value})),X=Array.isArray(N.center)&&N.center.length===2?N.center:Array.isArray(S.center)&&S.center.length===2?S.center:[30,50],ce=typeof N.zoom=="number"?N.zoom:typeof S.zoom=="number"?S.zoom:typeof S.defaultZoom=="number"?S.defaultZoom:10;function j(k){if(k!=null){if(Array.isArray(k)&&k.length>=2){const x=Number(k[0]),C=Number(k[1]);return!Number.isFinite(x)||!Number.isFinite(C)?void 0:[x,C]}if(typeof k=="object"){const x=k,C=x.geom;if(x.type==="Point"&&Array.isArray(x.coordinates)){const J=x.coordinates,fe=Number(J[0]),ge=Number(J[1]);if(Number.isFinite(fe)&&Number.isFinite(ge))return[fe,ge]}if(C?.type==="Point"&&Array.isArray(C.coordinates)){const J=C.coordinates,fe=Number(J[0]),ge=Number(J[1]);if(Number.isFinite(fe)&&Number.isFinite(ge))return[fe,ge]}const B=Number(x.lat),P=Number(x.lng??x.lon);if(Number.isFinite(B)&&Number.isFinite(P))return[P,B]}}}const L=s.computed(()=>{const k=j(t.center);if(k)return k;if(!E("center"))return j(N.center)??j(S.center)}),O=s.computed(()=>E("zoom")?t.zoom:N.zoom??t.zoom),ne=s.computed(()=>E("katottg")?String(t.katottg??""):String(N.katottg??t.katottg??"")),ae=s.computed(()=>E("layers")?t.layers??[]:N.layers??t.layers??[]),re=s.computed(()=>E("bounds")?t.bounds:N.bounds??t.bounds),he=s.ref(Array.isArray(L.value)&&L.value.length===2?[...L.value]:X),Ae=s.ref(typeof O.value=="number"?O.value:ce),Ce=s.ref(null);let $e=null;function it(k){const x=typeof k=="number"&&Number.isFinite(k)?k:Ae.value;return Math.min(FE,Math.max(RE,Math.round(x)))}function Fe(k,x,C){if(!Number.isFinite(k)||!Number.isFinite(x))return;const B=Qv(k,x,it(C)),P=Ce.value;P&&P.z===B.z&&P.x===B.x&&P.y===B.y||(Ce.value=B)}function Qe(){if($){const k=$.getCenter?.(),x=$.getZoom?.();if(k&&Number.isFinite(x)){Fe(k.lng,k.lat,x);return}}Array.isArray(he.value)&&he.value.length===2&&Fe(he.value[0],he.value[1])}function We(){$e&&clearTimeout($e),$e=setTimeout(()=>{$e=null,Qe()},120)}Fe(he.value[0],he.value[1]);const se=s.ref(t.modelValue),me=s.ref(null),Ee=s.ref([]),Me=s.ref(!1),Ye=s.ref(!1),Ct=s.ref(!1),et=s.ref(!1),Xe=s.ref(!1);s.provide("map-file-import-uploading",Xe);const ft=s.computed(()=>Xe.value?"Завантаження файлу на сервер...":et.value?"Конвертація геометрії...":""),Vt=s.ref([]),W=s.ref({srid:"",encoding:"UTF-8",file:""}),ee=s.computed(()=>{const k=i.value??{},x=k.id??o.id??"1",C=o.form??k.form??"form",B=o.table??k.table??"table",P=t.name??o.field??"geom";return`/file/upload/temp?${new URLSearchParams({id:String(x),form:String(C),table:String(B),field:String(P)}).toString()}`}),ue=s.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:ee.value,rules:["required"]}})),R=s.ref({coordinates:"",format:"decimal",order:"lat-lon"}),M={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
3
3
  50.4510, 30.5242
4
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 D=!1,H=!1;const te=s.reactive({}),we=s.ref([]),tt=s.computed(()=>we.value.map(k=>te[k]).filter(Boolean)),Re=s.ref(null),St=s.computed(()=>Re.value?.entries??[]),cn=s.computed(()=>{if(!Re.value)return;const x=u.value?.getBoundingClientRect?.(),C=(x?.left??0)+Re.value.point.x+12,B=(x?.top??0)+Re.value.point.y+12;return{left:`${C}px`,top:`${B}px`}}),tn=s.computed(()=>{if(Array.isArray(t.tools)&&t.tools.length)return t.tools;const k=o?.tools;return Array.isArray(k)?k.map(x=>String(x)):typeof k=="string"?k.split(",").map(x=>x.trim()).filter(Boolean):[]}),Le=s.computed(()=>{const k={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!tn.value.length)return{...k,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const x=new Set(tn.value.map(C=>C.toLowerCase()));return{search:x.has("search"),import:x.has("import"),export:x.has("export"),point:x.has("point"),line:x.has("line"),polygon:x.has("polygon"),rectangle:x.has("rectangle"),ruler:x.has("ruler")}});function $t(k){const x=typeof k=="string"?k.trim():"";if(!x)return"";if(/^https?:\/\//i.test(x))return x;const C=window?.location?.origin??"",B=x.replace(/^\/+/,"");return B?C?`${C}/${B}`:`/${B}`:C}function xo(){const k=Array.isArray(N.basemaps)&&N.basemaps.length?N.basemaps:S.basemaps;if(Array.isArray(k)&&k.length){const C=k.map((B,P)=>{const J=String(B?.key??B?.id??B?.name??`b${P}`),fe=$t(String(B?.url??""));if(!fe)return null;const ge=typeof B?.preview=="string"&&B.preview?$t(B.preview):"";return[J,{...B,url:fe,preview:ge}]}).filter(B=>Array.isArray(B)&&B.length===2).reduce((B,[P,J])=>(B[P]=J,B),{});if(Object.keys(C).length)return C}return{voyager:{name:"Оглядова карта",url:"https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/voyager/ua/13/4790/2762.png"},orto10:{name:"Ортофото 1:10K",url:"https://data.gki.com.ua/api-user/rtile/orto10/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/orto10/ua/13/4790/2762.png"},osmb:{name:"Open Street Maps",url:"https://tile.openstreetmap.org.ua/styles/osm-bright/{z}/{x}/{y}.png",preview:"https://tile.openstreetmap.org.ua/styles/osm-bright/13/4790/2762.png"}}}const mr=xo(),vo=Object.keys(mr),qr=s.ref(vo.length?vo[0]:"");function Is(){const k=Array.isArray(N.overlays)&&N.overlays.length?N.overlays:S.overlays;return!Array.isArray(k)||!k.length?{}:k.map((C,B)=>{const J=(typeof C?.name=="string"?C.name.trim():"")||`o${B}`,fe=$t(String(C?.url??""));if(!fe)return null;const ge=typeof C?.preview=="string"&&C.preview?$t(C.preview):"";return[J,{...C,name:J,url:fe,preview:ge}]}).filter(C=>Array.isArray(C)&&C.length===2).reduce((C,[B,P])=>(C[B]=P,C),{})}const Gr=Is(),Sn=s.ref(Object.keys(Gr).filter(k=>!!Gr[k]?.visible)),ia=s.computed(()=>Le.value.point||Le.value.line||Le.value.polygon||Le.value.rectangle),la=s.computed(()=>tt.value.filter(k=>k.config?.overlay!==!1).map(k=>({id:k.id,label:String(k.config.title||k.config.name||k.id),visible:k.visible})));function Os(k){return`${zE}${k}`}function Rs(k){return`${HE}${k}`}async function pu(){if(typeof window>"u")return null;const k=window;if(k[fi])return k[fi];const x=J=>{if(Array.from(document.styleSheets).some(Ne=>Ne?.href?.includes(J)))return;const ge=document.createElement("link");ge.rel="stylesheet",ge.href=J,document.head.appendChild(ge)},C=async()=>{const J=new Function("u","return import(u)"),fe=await J("https://esm.sh/maplibre-gl@3.6.2"),ge=fe?.default??fe;if(!ge)throw new Error("maplibre esm fallback failed");window.maplibregl=ge,window.mapboxgl=ge;const Ne=await J("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),nt=Ne?.default??Ne;if(!nt)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=nt},P=(async()=>{x("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),x("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await C();const J=window.maplibregl,fe=window.MapboxDraw;if(!J)throw new Error("maplibregl not available after load");if(!fe)throw new Error("MapboxDraw not available after load");return HS(J),{maplibregl:J,MapboxDraw:fe}})().catch(J=>{throw delete k[fi],J});return k[fi]=P,P}function Fs(k){return{version:8,glyphs:jE,sources:{rasterSource:Oa(k,void 0,{safe:!1})},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let q=null,ie=null,$=null,le=null,Pe=[],lt=null,Ke=null,qe=null,Ut=!1,Rt=!1,Wt=!1,pt=null;function Jr(){$&&($.getLayer?.(Ra)&&$.removeLayer(Ra),$.getLayer?.(Fa)&&$.removeLayer(Fa),$.getSource?.(Vo)&&$.removeSource(Vo))}function GR(k){if(!$||!k||typeof k!="object")return;Jr(),$.addSource(Vo,{type:"geojson",data:{type:"Feature",geometry:k,properties:{}}});const x=V.value;$.addLayer({id:Ra,type:"fill",source:Vo,paint:{"fill-color":x,"fill-opacity":.3}}),$.addLayer({id:Fa,type:"line",source:Vo,paint:{"line-color":x,"line-width":2,"line-opacity":1}})}function JR(k,x){if(!$||!q)return;const C=[k[1],k[0]],B=typeof x?.zoom=="number"?x.zoom:13;if(pt?.remove&&pt.remove(),pt=null,Jr(),Z.value&&x?.geom){GR(x.geom),vu(x.geom);return}pt=new q.Marker({color:z.value}),pt.setLngLat(C).addTo($),$.easeTo({center:C,zoom:B,duration:250})}function YR(){return{onSetup(){const k=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(k),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:k,startPoint:null,hasCoordinates:!1}},onMouseMove(k,x){if(!k.startPoint)return;const[C,B]=k.startPoint,P=x.lngLat.lng,J=x.lngLat.lat;k.rectangle.setCoordinates([[[C,B],[P,B],[P,J],[C,J],[C,B]]])},onClick(k,x){if(!k.startPoint){k.startPoint=[x.lngLat.lng,x.lngLat.lat],k.hasCoordinates=!0,k.rectangle.setCoordinates([[[x.lngLat.lng,x.lngLat.lat],[x.lngLat.lng,x.lngLat.lat],[x.lngLat.lng,x.lngLat.lat],[x.lngLat.lng,x.lngLat.lat],[x.lngLat.lng,x.lngLat.lat]]]);return}const[C,B]=k.startPoint,P=x.lngLat.lng,J=x.lngLat.lat;return Math.abs(C-P)>0&&Math.abs(B-J)>0?(k.rectangle.setCoordinates([[[C,B],[P,B],[P,J],[C,J],[C,B]]]),this.map.fire("draw.create",{features:[k.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[k.rectangle.id]})):(this.deleteFeature([k.rectangle.id],{silent:!0}),k.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(k){this.deleteFeature([k.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(k,x,C){const B=x.properties.id===k.rectangle.id;B&&!k.hasCoordinates||(x.properties.active=B?"true":"false",C(x))}}}const XR=[{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 W0(){const k=qr.value;return!k||!mr[k]?.url?"":mr[k].url}function ZR(k,x){return k?.id?String(k.id):k?.url?`${k.url}-${x}`:`layer-${x}`}function K0(k){const x=String(k?.url??"").trim();if(!x)return"";if(/^https?:\/\//i.test(x))return x;const C=window.location?.origin??"",B=x.replace(/^\/+/,"");return`${C}/${B}`}function Co(k){k&&Re.value?.layerId!==k||(Re.value=null)}function QR(k,x={}){if(k.popup===!1)return[];const C=Number(x?.point_count);if(Number.isFinite(C)&&C>1)return[{key:"Об'єктів у кластері",value:String(C)}];const B=K0(k),P=Ws(k,B,F.value);return Array.isArray(k.popup)?k.popup.length?k.popup.map(J=>{const fe=J?.field||J?.name;if(!fe)return null;const ge=x[fe];if(ge==null||ge==="")return null;const Ne=P?.formatPopupValue?P.formatPopupValue(fe,ge):String(ge);return{key:J.label||fe,value:Ne}}).filter(Boolean):[]:Object.entries(x).slice(0,5).map(([J,fe])=>({key:J,value:fe==null?"—":String(fe)}))}function q0(k){if(!Array.isArray(k))return[];const x=B=>Array.isArray(B)&&B.length>=2&&Number.isFinite(Number(B[0]))&&Number.isFinite(Number(B[1])),C=B=>{if(!B.length)return B;const P=B[0],J=B[B.length-1];return!J||P[0]!==J[0]||P[1]!==J[1]?[...B,P]:B};if(k.length&&x(k[0])){const B=k.map(P=>[Number(P[0]),Number(P[1])]).filter(x);return B.length?[C(B)]:[]}return k.length&&Array.isArray(k[0])&&x(k[0][0])?k.map(P=>Array.isArray(P)?P.map(J=>[Number(J[0]),Number(J[1])]):[]).filter(P=>P.length).map(C):k.length&&Array.isArray(k[0])&&Array.isArray(k[0][0])&&x(k[0][0][0])?k.flatMap(P=>Array.isArray(P)?P:[]).map(P=>Array.isArray(P)?P.map(J=>[Number(J[0]),Number(J[1])]):[]).filter(P=>P.length).map(C):[]}function eF(k){const x=k.style??{},C=x.color??"#3b82f6";if(!x.colorAttr||!x.colorSet)return C;const B=Object.keys(x.colorSet);if(!B.length)return C;const P=["match",["to-string",["get",x.colorAttr]]];return B.forEach(J=>{P.push(String(J),x.colorSet?.[J]??C)}),P.push(C),P}function tF(k){if(!$)return;const x=$.getStyle()?.layers;Array.isArray(x)&&[...x].reverse().forEach(C=>{C.source===k&&$.getLayer(C.id)&&$.removeLayer(C.id)})}function aa(k){if(!$)return;k.handlers.forEach(B=>{try{$.off(B.type,B.layerId,B.handler)}catch{}}),k.handlers=[],[...k.layerIds,...k.boundsIds].forEach(B=>{$.getLayer(B)&&$.removeLayer(B)}),tF(k.sourceId),$.getSource(k.sourceId)&&$.removeSource(k.sourceId);const x=`vs-ov-bounds-src-${k.id}`,C=`vs-ov-bounds-line-${k.id}`;$.getLayer(C)&&$.removeLayer(C),$.getSource(x)&&$.removeSource(x),Co(k.id)}function nF(k,x){if(!$)return[];const C=`vs-ov-bounds-src-${x}`,B=`vs-ov-bounds-line-${x}`,P=k.bounds??re.value??Ee.value,J=q0(P);if(!J.length)return[];const fe={type:"FeatureCollection",features:J.map(ge=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:ge}}))};return $.getLayer(B)&&$.removeLayer(B),$.getSource(C)&&$.removeSource(C),$.addSource(C,{type:"geojson",data:fe}),$.addLayer({id:B,type:"line",source:C,paint:{"line-color":k.style?.stroke??k.style?.color??"#2563eb","line-width":k.style?.width??2,"line-opacity":k.style?.opacity??.8,"line-dasharray":[2,2]}}),[B]}function hu(){return Wt||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"}function rF(k,x){if(!$)return;k.handlers.forEach(B=>{try{$.off(B.type,B.layerId,B.handler)}catch{}});const C=[];x.forEach(B=>{const P=fe=>{if(hu())return;if(!fe?.features?.length){Co(k.id);return}const ge=fe.features[0]?.properties??{},Ne=QR(k.config,ge);if(!Ne.length){Co(k.id);return}Re.value={layerId:k.id,entries:Ne,point:{x:fe.point.x,y:fe.point.y}}},J=()=>Co(k.id);$.on("mousemove",B,P),$.on("mouseleave",B,J),C.push({layerId:B,type:"mousemove",handler:P},{layerId:B,type:"mouseleave",handler:J})}),k.handlers=C}function mu(k,x){if(!$)return;k.layerIds=x,k.boundsIds=nF(k.config,k.id),rF(k,x);const C=k.visible?"visible":"none";[...k.layerIds,...k.boundsIds].forEach(B=>{$.getLayer(B)&&$.setLayoutProperty(B,"visibility",C)}),En()}function So(k){if(!$)return;aa(k),k.renderToken=(k.renderToken??0)+1;const x=k.renderToken,C=k.config,B=K0(C);if(!B)return;const P=[],J=/\.v(?:m)?t(?:\?|$|\/)/i.test(B)||/\.pbf(?:\?|$)/i.test(B)||/\/vtile(?:\/|\?|$)/i.test(B)||String(C?.service??"").toLowerCase()==="vector"||String(C?.format??"").toLowerCase()==="mvt",fe=Ws(C,B,F.value);if(J&&fe){const ge=C.sourceLayer||C.layer||C.service_layer||C.dataset?.layer||C.id;$.addSource(k.sourceId,{type:"vector",tiles:[B],minzoom:typeof C.minzoom=="number"?C.minzoom:0,maxzoom:typeof C.maxzoom=="number"?C.maxzoom:22}),(async()=>{try{if(!$||!$.getSource(k.sourceId)||k.renderToken!==x)return;const Ne=await fe.render({map:$,overlayId:k.id,sourceId:k.sourceId,sourceLayer:ge,url:B,config:C});if(!$||!$.getSource(k.sourceId)||k.renderToken!==x){Ne.forEach(nt=>{$.getLayer(nt)&&$.removeLayer(nt)});return}mu(k,Ne)}catch(Ne){k.renderToken===x&&console.error(`Failed to render map layer preset "${fe.id}"`,Ne)}})();return}if(J){const ge=C.sourceLayer||C.layer||C.service_layer||C.dataset?.layer||C.id;$.addSource(k.sourceId,{type:"vector",tiles:[B],minzoom:typeof C.minzoom=="number"?C.minzoom:0,maxzoom:typeof C.maxzoom=="number"?C.maxzoom:22});const Ne=Array.isArray(C.style?.types)?C.style.types.map(Un=>String(Un).toLowerCase()):[String(C.style?.type??"polygon").toLowerCase()],nt=eF(C),jn=C.style?.opacity??.5,Mu=Un=>{if(Un==="point"){const Hs=`vs-ov-point-${k.id}`;$.addLayer({id:Hs,type:"circle",source:k.sourceId,"source-layer":ge,paint:{"circle-color":nt,"circle-radius":C.style?.radius??5,"circle-opacity":jn}}),P.push(Hs);return}if(Un==="polyline"||Un==="line"){const Hs=`vs-ov-line-${k.id}`;$.addLayer({id:Hs,type:"line",source:k.sourceId,"source-layer":ge,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":nt,"line-width":C.style?.width??2,"line-opacity":jn}}),P.push(Hs);return}const ab=`vs-ov-fill-${k.id}`,cb=`vs-ov-border-${k.id}`;$.addLayer({id:ab,type:"fill",source:k.sourceId,"source-layer":ge,paint:{"fill-color":nt,"fill-opacity":jn}}),$.addLayer({id:cb,type:"line",source:k.sourceId,"source-layer":ge,paint:{"line-color":C.style?.stroke??C.style?.color??"#2563eb","line-width":C.style?.width??1,"line-opacity":jn}}),P.push(ab,cb)};[...new Set(Ne)].forEach(Un=>Mu(Un)),mu(k,P);return}else{$.addSource(k.sourceId,Oa(B,C,{safe:!1}));const ge=`vs-ov-raster-${k.id}`;$.addLayer({id:ge,type:"raster",source:k.sourceId,paint:{"raster-opacity":C.style?.opacity??1}}),P.push(ge)}mu(k,P)}function Ps(){if(!$)return;const x={type:"FeatureCollection",features:q0(re.value??Ee.value).map(C=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:C}}))};$.getSource(pi)?$.getSource(pi).setData(x):$.addSource(pi,{type:"geojson",data:x}),$.getLayer(Qr)||$.addLayer({id:Qr,type:"line",source:pi,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function oF(k){if(!$||c.value)return;const x=te[k];if(!x)return;x.visible=!x.visible;const C=x.visible?"visible":"none";[...x.layerIds,...x.boundsIds].forEach(B=>{$.getLayer(B)&&$.setLayoutProperty(B,"visibility",C)}),En(),x.visible||Co(k)}function G0(k){if(!$)return;const x=Gr[k];if(!x?.url)return;const C=Os(k),B=Rs(k);$.getLayer(B)&&$.removeLayer(B),$.getSource(C)&&$.removeSource(C),$.addSource(C,Oa(x.url,x,{safe:!0}));const P=x?.opacity??x?.style?.opacity,J=typeof P=="number"?P:PE;$.addLayer({id:B,type:"raster",source:C,paint:{"raster-opacity":J}})}function sF(k){if(!$)return;const x=Os(k),C=Rs(k);$.getLayer(C)&&$.removeLayer(C),$.getSource(x)&&$.removeSource(x)}function J0(){$&&Sn.value.forEach(k=>G0(k))}function iF(k){if(!$||c.value||!Gr[k])return;Sn.value.includes(k)?(Sn.value=Sn.value.filter(C=>C!==k),sF(k)):(Sn.value=[...Sn.value,k],G0(k)),En()}function En(){if(!$)return;const k=Sn.value.map(Ne=>Rs(Ne)).filter(Ne=>$.getLayer(Ne)),x=[],C=[],B=[],P=[];we.value.forEach(Ne=>{const nt=te[Ne];if(!nt)return;const jn=String(nt.config?.url??""),Mu=/\.v(?:m)?t(?:\?|$|\/)/i.test(jn)||/\/vtile(?:\/|\?|$)/i.test(jn)||Bu(nt.config,jn,F.value),Un=/\.png(?:\?|$)/i.test(jn);Mu?B.push(...nt.layerIds):Un?x.push(...nt.layerIds):C.push(...nt.layerIds),P.push(...nt.boundsIds)});const J=[...k,...x,...C,...B,...P];J.forEach(Ne=>{$.getLayer(Ne)&&$.moveLayer(Ne)}),$.getLayer(Qr)&&$.moveLayer(Qr);const ge=($.getStyle?.()?.layers??[]).map(Ne=>String(Ne?.id??"")).filter(Ne=>Ne.startsWith("gl-draw-"));if(ge.forEach(Ne=>{$.getLayer(Ne)&&$.moveLayer(Ne)}),$.getLayer(yf)){const Ne=J.find(nt=>$.getLayer(nt))??($.getLayer(Qr)?Qr:null)??ge.find(nt=>$.getLayer(nt));Ne&&$.moveLayer(yf,Ne)}}function lF(k){if(!mr[k]||(qr.value=k,!$))return;const x=W0();if(!x)return;const C=$.getSource("rasterSource");if(C&&typeof C.setTiles=="function"){C.setTiles([x]),En();return}const B=$.getCenter?.(),P=$.getZoom?.(),J=le?.getAll?.();$.setStyle(Fs(x)),$.once("style.load",()=>{if($&&(B&&Number.isFinite(P)&&$.jumpTo({center:[B.lng,B.lat],zoom:P}),Ps(),J0(),we.value.forEach(fe=>{const ge=te[fe];ge&&So(ge)}),En(),J?.features?.length&&le))try{J.features.forEach(fe=>le.add(fe)),f.value=J.features.length}catch{f.value=0}})}function gu(k){return{type:"Feature",properties:{},geometry:k}}function Mn(k){if(!k)return null;try{return JSON.parse(JSON.stringify(k))}catch{return null}}function yu(k){if(!k)return null;const x=Mn(k.geometry);return x?{...k.id!==void 0?{id:k.id}:{},type:"Feature",properties:{...k.properties??{}},geometry:x}:null}function ca(k){if(!k)return[];const x=(P,J)=>{if(!P?.type)return[];const fe={...J??{}};return P.type==="MultiPoint"&&Array.isArray(P.coordinates)?P.coordinates.map(ge=>gu({type:"Point",coordinates:ge})).map(ge=>({...ge,properties:fe})):P.type==="MultiLineString"&&Array.isArray(P.coordinates)?P.coordinates.map(ge=>gu({type:"LineString",coordinates:ge})).map(ge=>({...ge,properties:fe})):P.type==="MultiPolygon"&&Array.isArray(P.coordinates)?P.coordinates.map(ge=>gu({type:"Polygon",coordinates:ge})).map(ge=>({...ge,properties:fe})):P.type==="GeometryCollection"&&Array.isArray(P.geometries)?P.geometries.flatMap(ge=>x(ge,fe)):[{type:"Feature",properties:fe,geometry:Mn(P)}]},C=P=>{if(!P)return null;if(P.type==="Feature"){const J=yu(P);return J?x(J.geometry,J.properties):null}return P.geom?.type&&Array.isArray(P.geom.coordinates)?x({type:P.geom.type,coordinates:P.geom.coordinates},P.properties??{}):P.type==="GeometryCollection"&&Array.isArray(P.geometries)?x(P,P.properties??{}):typeof P.type=="string"&&Array.isArray(P.coordinates)?x(Mn(P),P.properties??{}):null};if(k.type==="FeatureCollection")return(k.features??[]).flatMap(C).filter(Boolean);if(Array.isArray(k))return k.flatMap(P=>P?.type==="FeatureCollection"?ca(P):[C(P)]).flat().filter(Boolean);const B=C(k);return B?Array.isArray(B)?B:[B]:[]}function Y0(k){if(!k.length)return null;if(!a.value)return Mn(k[0]?.geometry??null);const x=k.map(J=>Mn(J?.geometry)).filter(Boolean);return x.every(J=>J?.type==="Point")?{type:"MultiPoint",coordinates:x.map(J=>J.coordinates)}:x.every(J=>J?.type==="LineString")?{type:"MultiLineString",coordinates:x.map(J=>J.coordinates)}:x.every(J=>J?.type==="Polygon")?{type:"MultiPolygon",coordinates:x.map(J=>J.coordinates)}:{type:"GeometryCollection",geometries:x}}function X0(k){if(!k)return"__null__";try{return JSON.stringify(k)}catch{return"__invalid__"}}function aF(k,x){if(!Array.isArray(k)||!Array.isArray(x)||k.length<2||x.length<2)return!1;const C=1e-12;return Math.abs(Number(k[0])-Number(x[0]))<C&&Math.abs(Number(k[1])-Number(x[1]))<C}function Z0(k,x){if(!Array.isArray(k)||k.length<4)return null;const B=aF(k[0],k[k.length-1])?k.slice(0,-1):k.slice();return!Number.isInteger(x)||x<0||x>=B.length||B.length<=3||(B.splice(x,1),B.length<3)?null:[...B,[...B[0]]]}function Q0(k,x){if(!Array.isArray(k)||k.length<2||!Number.isInteger(x)||x<0||x>=k.length||k.length<=2)return null;const C=k.slice();return C.splice(x,1),C.length<2?null:C}function cF(k,x){const C=Mn(k);if(!C||!Array.isArray(x))return null;if(C.type==="LineString"){const[B]=x,P=Q0(C.coordinates,B);return P?(C.coordinates=P,C):null}if(C.type==="MultiLineString"){const[B,P]=x,J=C.coordinates?.[B],fe=Q0(J,P);return fe?(C.coordinates[B]=fe,C):null}if(C.type==="Polygon"){const[B,P]=x,J=C.coordinates?.[B],fe=Z0(J,P);return fe?(C.coordinates[B]=fe,C):null}if(C.type==="MultiPolygon"){const[B,P,J]=x,fe=C.coordinates?.[B]?.[P],ge=Z0(fe,J);return ge?(C.coordinates[B][P]=ge,C):null}return null}function dF(k){return k?k.split(".").map(x=>Number(x)).filter(x=>Number.isInteger(x)&&x>=0):[]}function eb(k){return!le||!k?null:typeof le.get=="function"?le.get(k)??null:le.getAll?.()?.features?.find(C=>String(C?.id??"")===k)??null}function tb(k){const x=k?.properties?.id??k?.id;return x==null||x===""?null:String(x)}function uF(k){if(!$||!k)return null;const x=[[k.x-8,k.y-8],[k.x+8,k.y+8]],B=$.queryRenderedFeatures(x).find(P=>{const J=String(P?.properties?.meta??"");return J&&J!=="feature"?!1:!!tb(P)});return tb(B)}function fF(k,x){if(!le||!k||!x.length)return;const C=eb(k);if(!C?.geometry)return;const B=cF(C.geometry,x);if(!B)return;const P={...C,id:C.id??k,geometry:B};H=!0,D=!0;try{le.delete(k),le.add(P)}finally{D=!1,H=!1}gr(),Hn()}function pF(k){if(!$||!le||c.value||b.isRulerActive.value||p.value!=="edit")return;const x=k?.point;if(!x)return;const C=[[x.x-8,x.y-8],[x.x+8,x.y+8]],P=$.queryRenderedFeatures(C).find(fe=>fe?.properties?.meta==="vertex"&&fe?.properties?.parent&&fe?.properties?.coord_path);if(!P)return;k?.originalEvent?.preventDefault?.(),k?.originalEvent?.stopPropagation?.();const J=dF(String(P.properties.coord_path));J.length&&fF(String(P.properties.parent),J)}function hF(k){const x=ob(k);if(!x)return null;const[[C,B],[P,J]]=x;return{lat:(B+J)/2,lng:(C+P)/2}}function nb(k){if(!Array.isArray(k)||k.length<3)return 0;const x=(B,P)=>{const J=B*2003750834e-2/180,fe=Math.log(Math.tan((90+P)*Math.PI/360))/(Math.PI/180);return[J,fe*2003750834e-2/180]};let C=0;for(let B=0;B<k.length-1;B+=1){const[P,J]=x(Number(k[B][0]),Number(k[B][1])),[fe,ge]=x(Number(k[B+1][0]),Number(k[B+1][1]));C+=P*ge-fe*J}return Math.abs(C/2)/1e6}function mF(k){if(!k?.type||!k?.coordinates)return null;if(k.type==="Polygon"){const x=k.coordinates?.[0];return Array.isArray(x)?nb(x):null}return k.type==="MultiPolygon"?k.coordinates.reduce((x,C)=>{const B=C?.[0];return Array.isArray(B)?x+nb(B):x},0):null}function bu(k){if(!k){h.value=null;return}const x=hF(k);if(!x){h.value=null;return}h.value={type:String(k.type??"Feature"),center:x,areaKm2:mF(k)}}function ku(k){if(!k){const B=Pe[Pe.length-1],P=Mn(B?.geometry??null);lt=P,bu(P);return}const x=Pe.find(B=>String(B?.id??"")===String(k))??null,C=Mn(x?.geometry??null);lt=C,bu(C)}function wu(k){m.value=(k??[]).map((x,C)=>{const B=String(x?.id??`feature-${C+1}`),P=xu(String(x?.geometry?.type??"Feature"));return{id:B,label:`${P} ${C+1}`}})}function xu(k){switch(String(k)){case"Point":return"Точка";case"MultiPoint":return"Мультиточка";case"LineString":return"Лінія";case"MultiLineString":return"Мультилінія";case"Polygon":return"Полігон";case"MultiPolygon":return"Мультиполігон";case"GeometryCollection":return"Колекція геометрій";default:return String(k||"Невідомо")}}function rb(k,x){if(!Array.isArray(k)||!Array.isArray(x)||k.length!==2||x.length!==2)return!1;const C=1e-9;return Math.abs(Number(k[0])-Number(x[0]))<C&&Math.abs(Number(k[1])-Number(x[1]))<C}function ob(k){if(!k)return null;let x=1/0,C=1/0,B=-1/0,P=-1/0;const J=fe=>{if(Array.isArray(fe)){if(fe.length>=2&&Number.isFinite(fe[0])&&Number.isFinite(fe[1])){const ge=Number(fe[0]),Ne=Number(fe[1]);x=Math.min(x,ge),C=Math.min(C,Ne),B=Math.max(B,ge),P=Math.max(P,Ne);return}fe.forEach(J)}};return J(k.coordinates),!Number.isFinite(x)||!Number.isFinite(C)?null:[[x,C],[B,P]]}function vu(k){if(!$||!k)return;const x=ob(k);if(!x)return;const[[C,B],[P,J]]=x;if(C===P&&B===J){$.easeTo({center:[C,B],zoom:Math.max(Ae.value,14)}),We();return}$.fitBounds(x,{padding:30,duration:250,maxZoom:18}),We()}function Cu(){if(!le){f.value=0;return}const k=le.getAll();f.value=k?.features?.length??0}function zs(){if(!le)return null;const x=le.getAll?.()?.features??[],C=J=>!!J&&x.some(fe=>String(fe?.id??"")===String(J??"")),B=le.getSelectedIds?.();if(Array.isArray(B)&&B.length>0){const J=B[0];return J!=null?String(J):null}if(C(qe))return String(qe);if(!x.length)return null;const P=a.value?x[x.length-1]:x[0];return P?.id!==void 0&&P?.id!==null?String(P.id):null}function gr(){if(!le)return;const k=le.getAll();if(f.value=k?.features?.length??0,!k?.features?.length){Pe=[],m.value=[],lt=null,qe=null,h.value=null,D||(Ke="__null__",r("update:modelValue",null));return}const x=(k.features??[]).map(yu).filter(Boolean);if(Pe=x,wu(x),qe=zs(),ku(qe),!D){const C=Y0(x);Ke=X0(C),r("update:modelValue",C)}}function da(){if(!le)return;(le.getAll()?.features||[]).forEach(x=>le.delete(x.id)),m.value=[],Cu()}function ua(k){if(!le)return;const x=ca(k),C=a.value?x:x.slice(0,1);D=!0,da(),C.forEach(J=>{try{le.add(J)}catch{}}),D=!1,Pe=(le.getAll?.()?.features??C).map(yu).filter(Boolean),wu(Pe),qe=null;const P=Mn(Pe[Pe.length-1]?.geometry??null);lt=Mn(P),Cu(),bu(P),P&&(vu(P),c.value||Hn())}function gF(){le&&(D=!0,da(),Pe.forEach(k=>{try{le.add(k)}catch{}}),D=!1,wu(Pe),Cu(),ku(qe))}function Eo(){if(le){try{le.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""}}function fa(k){if(c.value||!le)return;b.isRulerActive.value&&b.closeRuler(),Wt=!0,Eo(),p.value=k;const x=k==="marker"?"draw_point":k==="polyline"?"draw_line_string":k==="rectangle"?"draw_rectangle":"draw_polygon";a.value||(D=!0,da(),D=!1);try{le.changeMode(x)}catch{p.value=""}finally{requestAnimationFrame(()=>{Wt=!1})}}function Hn(k){if(c.value||!le||!le.getAll()?.features?.length)return;const C=k||zs();if(C)try{le.changeMode("direct_select",{featureId:C}),qe=C,ku(qe),p.value="edit"}catch{p.value=""}}function yF(k){c.value||!le||!k||Hn(k)}function bF(){if(!(c.value||!le)){if(a.value){const k=zs();if(k)try{Ut=!0,le.delete(k),Ut=!1,gr();const x=zs();x?Hn(x):Eo();return}catch{Ut=!1}}Eo(),da(),Pe=[],m.value=[],qe=null,Ke="__null__",h.value=null,r("update:modelValue",null)}}function kF(){c.value||!lt||vu(lt)}function wF(){c.value||(Me.value=!Me.value)}function sb(k){if(!Me.value)return;const x=me.value;x&&!x.contains(k.target)&&(Me.value=!1)}function xF(){vF()}function vF(){c.value||(Me.value=!1,W.value={srid:"",encoding:"UTF-8",file:""},Ct.value=!0)}function CF(){Ct.value=!1,et.value=!1,Xe.value=!1}function SF(k){return k?typeof k=="string"?k:typeof k=="object"&&k&&"file_path"in k?String(k.file_path??""):"":""}function EF(k){const B=((Array.isArray(k)?k[0]:k)?.features??[]).map(P=>Array.isArray(P)?P[0]:P).filter(Boolean).map(P=>P?.type==="Feature"?P:{type:"Feature",properties:{},geometry:P});return B.length?{type:"FeatureCollection",features:B}:null}async function MF(){if(c.value||!le||et.value)return;const k=SF(W.value.file);if(!k){ke.notify({type:"warning",title:"Імпорт геометрії",message:"Оберіть файл для імпорту."});return}et.value=!0;try{const x=await fetch("/api/gis-convert",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({srid:W.value.srid,encoding:W.value.encoding||"UTF-8",filepath:k,limit:!0})}),C=await x.json().catch(()=>null);if(!x.ok)throw new Error(C?.message||C?.error||`Код помилки: ${x.status}`);const B=EF(C);if(!B){ke.notify({type:"warning",title:"Імпорт геометрії",message:"Файл не містить коректні геодані."});return}ua(B),gr(),Ct.value=!1,ke.notify({type:"success",title:"Успіх",message:"Геометрію успішно імпортовано."})}catch(x){ke.notify({type:"error",title:"Помилка",message:x?.message||"Помилка імпорту файла геометрії"})}finally{et.value=!1}}function AF(){c.value||(Vt.value=[],Me.value=!1,Ye.value=!0)}function _F(){Ye.value=!1,Vt.value=[]}function TF(){if(c.value||!le)return;const k=CC(R.value.coordinates??"",R.value.format||"decimal",R.value.order||"lat-lon");if(!k.ok){Vt.value=k.errors,BF(k.errors);return}Vt.value=[],ua({type:"Polygon",coordinates:[k.ring]}),gr(),Ye.value=!1,k.wasClosedAutomatically&&ke.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function BF(k){if(!k.length)return;const x=5;k.slice(0,x).forEach(C=>{const B=C.line>0?`Рядок ${C.line}`:"Загальна помилка";ke.notify({type:"warning",title:"Імпорт координат",message:`${B} — ${C.message}`})}),k.length>x&&ke.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${k.length-x}`})}function NF(){if(c.value||!le)return;const k=le.getAll(),x=new Blob([JSON.stringify(k,null,2)],{type:"application/json"}),C=URL.createObjectURL(x),B=document.createElement("a");B.href=C,B.download="data.geojson",B.click(),URL.revokeObjectURL(C)}s.onMounted(async()=>{if(window.addEventListener("click",sb,!0),!u.value)return;const k=await pu();q=k.maplibregl,ie=k.MapboxDraw;const x=W0();x&&($=new q.Map({container:u.value,style:Fs(x),center:[he.value[0],he.value[1]],zoom:Ae.value,attributionControl:!1}),g.value=$,$.addControl(new q.NavigationControl({showCompass:!0}),"bottom-right"),$.on("error",C=>{const B=C?.error?.message??C?.message??"";WS(B)}),$.on("load",()=>{if(!(!ie||!$)){if(le=new ie({displayControlsDefault:!1,modes:{...ie.modes,draw_rectangle:YR()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:XR}),$.addControl(le),$.on("click",C=>{if(b.isRulerActive.value){const P=C?.lngLat;if(!P)return;y.value?.addPoint?.({lat:P.lat,lng:P.lng});return}if(!le||c.value||p.value!=="edit")return;const B=uF(C?.point);!B||B===qe||requestAnimationFrame(()=>{!le||c.value||Hn(B)})}),$.on("draw.create",()=>{if(le&&!b.isRulerActive.value){if(!a.value){const C=le.getAll();if(C.features.length>1){const B=C.features[C.features.length-1];D=!0,C.features.slice(0,-1).forEach(P=>le.delete(P.id)),D=!1,B&&(D=!0,le.add(B),D=!1)}}gr(),Hn()}}),$.on("draw.update",C=>{if(Rt||b.isRulerActive.value||hu())return;const B=Array.isArray(C?.features)?C.features:[],P=C?.action==="move"&&B.length>0&&B.every(J=>J?.geometry?.type==="Point");if(C?.action==="move"){if(P){gr();return}if(Rt=!0,gF(),Rt=!1,p.value==="edit"){const J=zs(),fe=J?eb(J):le?.getAll?.()?.features?.[0];if(fe?.id)try{le.changeMode("direct_select",{featureId:fe.id}),qe=String(fe.id)}catch{p.value=""}}return}gr()}),$.on("draw.delete",()=>{H||Ut||b.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"||(gr(),le?.getAll?.()?.features?.length||(qe=null),p.value="",Eo())}),$.on("draw.selectionchange",C=>{if(!le||Rt||b.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle")return;const B=C?.features?.[0]?.id!==void 0&&C?.features?.[0]?.id!==null?String(C.features[0].id):null;if(!c.value&&B){if(p.value==="edit"&&qe===B)return;requestAnimationFrame(()=>{!le||c.value||Hn(B)});return}const P=le.getSelectedIds?.(),J=Array.isArray(P)&&P.length>0?String(P[0]):null;if(!c.value&&J){if(p.value==="edit"&&qe===J)return;requestAnimationFrame(()=>{!le||c.value||Hn(J)});return}try{le.changeMode("simple_select",{featureIds:[]})}catch{}}),se.value!==void 0){const C=se.value;se.value=void 0,requestAnimationFrame(()=>{le&&ua(C)})}Ps(),J0(),we.value.forEach(C=>{const B=te[C];B&&So(B)}),En(),Qe()}}),$.on("contextmenu",pF),$.on("moveend",We),$.on("zoomend",()=>{$&&(Ae.value=$.getZoom())}))}),s.onUnmounted(()=>{typeof document<"u"&&(document.body.style.overflow=""),typeof window<"u"&&window.removeEventListener("keydown",Eu),$e&&(clearTimeout($e),$e=null),b.isRulerActive.value&&b.closeRuler(),window.removeEventListener("click",sb,!0),Object.values(te).forEach(k=>{$&&aa(k)}),Co(),pt?.remove&&pt.remove(),pt=null,Jr(),$?.remove&&$.remove(),$=null,le=null,g.value=null}),s.watch(()=>t.modelValue,k=>{if(!le){se.value=k;return}if(hu())return;const x=Y0((a.value?ca(k):ca(k).slice(0,1))||[]),C=X0(x);if(Ke&&C===Ke){Ke=null;return}Ke=null,ua(k)},{deep:!0}),s.watch(()=>ae.value,k=>{const x=Array.isArray(k)?k:[],C=[],B=new Set;x.forEach((P,J)=>{if(!P)return;const fe=ZR(P,J);C.push(fe),B.add(fe);const ge={...P,id:fe},Ne=te[fe],nt=Ne?.visible??!!ge.visible;Ne&&$&&aa(Ne),te[fe]={id:fe,config:ge,visible:nt,sourceId:`vs-ov-src-${fe}`,layerIds:[],boundsIds:[],handlers:[],renderToken:Ne?.renderToken??0}}),Object.keys(te).forEach(P=>{if(B.has(P))return;const J=te[P];J&&$&&aa(J),delete te[P]}),we.value=C,$&&(we.value.forEach(P=>{const J=te[P];J&&So(J)}),En())},{immediate:!0,deep:!0}),s.watch(()=>re.value,()=>{$&&(Ps(),we.value.forEach(k=>{const x=te[k];x&&So(x)}),En())},{deep:!0}),s.watch(()=>ne.value,async k=>{if(Ee.value=[],!k){$&&(Ps(),we.value.forEach(x=>{const C=te[x];C&&So(C)}),En());return}try{const x=await fetch(`https://data.gki.com.ua/api-user/atu/${k}`);if(!x?.ok)return;const B=(await x.json())?.geometry?.coordinates;Array.isArray(B)&&B.length&&(Ee.value=B)}catch(x){console.error("Failed to fetch KATOTTG bounds",x)}finally{if(!$)return;Ps(),we.value.forEach(x=>{const C=te[x];C&&So(C)}),En()}},{immediate:!0}),s.watch(()=>L.value,k=>{if(!Array.isArray(k)||k.length!==2)return;const x=[Number(k[0]),Number(k[1])];if(rb(he.value,x)||(he.value=[...x],!$))return;const C=$.getCenter?.();C&&rb([C.lng,C.lat],he.value)||$.easeTo({center:[he.value[0],he.value[1]]})},{deep:!0}),s.watch(()=>O.value,k=>{typeof k=="number"&&(Ae.value=k,$&&$.setZoom(k))}),s.watch(()=>h.value?.center,k=>{k&&Fe(k.lng,k.lat,$?.getZoom?.())},{deep:!0}),s.watch(c,k=>{k&&Eo()}),s.watch(f,k=>{if(k>0){c.value||Hn();return}Wt||Eo()});const ib=s.computed(()=>m.value.length>0||!!h.value),Su=s.computed(()=>{const k=m.value,x=k.length>1;return k.length?k.map(C=>({id:C.id,label:x?C.label:h.value?.type?xu(h.value.type):C.label,interactive:x})):h.value?.type?[{id:"__feature",label:xu(h.value.type),interactive:!1}]:[]});function lb(){setTimeout(()=>{$?.resize&&$.resize()},50)}function Eu(k){k.key==="Escape"&&d.value&&(d.value=!1)}return s.watch(d,k=>{typeof document<"u"&&(document.body.style.overflow=k?"hidden":""),typeof window<"u"&&(k?window.addEventListener("keydown",Eu):window.removeEventListener("keydown",Eu)),lb()}),s.watch(ib,lb),(k,x)=>(s.openBlock(),s.createBlock(s.Teleport,{to:"body",disabled:!d.value},[s.createElementVNode("div",{class:s.normalizeClass(["vs-map-wrapper w-full",{fullscreen:d.value}])},[s.createElementVNode("div",KS,[s.createElementVNode("div",{ref_key:"mapContainer",ref:u,class:"vs-map-canvas"},null,512),Le.value.search||Le.value.import||Le.value.export?(s.openBlock(),s.createElementBlock("div",qS,[Le.value.search?(s.openBlock(),s.createBlock(jC,{key:0,config:G.value,onGoToCoordinates:JR},null,8,["config"])):s.createCommentVNode("",!0),Le.value.import||Le.value.export?(s.openBlock(),s.createElementBlock("div",GS,[s.createElementVNode("div",JS,[Le.value.import?(s.openBlock(),s.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:me,class:"relative"},[s.createElementVNode("button",{type:"button",class:"vs-map-action-btn",onClick:wF,disabled:c.value},[x[10]||(x[10]=s.createTextVNode(" Імпорт ",-1)),s.createVNode(s.unref(Y.ChevronDown),{class:s.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":Me.value}])},null,8,["class"])],8,YS),Me.value?(s.openBlock(),s.createElementBlock("div",XS,[Le.value.import?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:xF}," З файлу ")):s.createCommentVNode("",!0),s.createElementVNode("button",{type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:AF}," З координат ")])):s.createCommentVNode("",!0)],512)):s.createCommentVNode("",!0),Le.value.export?(s.openBlock(),s.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:NF,disabled:c.value||f.value===0}," Експорт ",8,ZS)):s.createCommentVNode("",!0)])])):s.createCommentVNode("",!0)])):s.createCommentVNode("",!0),s.createVNode(s.unref(ke.VsModal),{visible:Ct.value,"onUpdate:visible":x[1]||(x[1]=C=>Ct.value=C),title:"Імпорт геометрії",size:"lg",teleport:s.unref(l)},{default:s.withCtx(()=>[Xe.value||et.value?(s.openBlock(),s.createElementBlock("div",QS,[s.createVNode(s.unref(Y.LoaderCircle),{class:"h-4 w-4 shrink-0 animate-spin"}),s.createElementVNode("span",null,s.toDisplayString(ft.value),1)])):s.createCommentVNode("",!0),s.createVNode(Pt,{schema:ue.value,values:W.value,"onUpdate:values":x[0]||(x[0]=C=>W.value=C)},null,8,["schema","values"]),s.createElementVNode("div",eE,[s.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:CF,disabled:Xe.value||et.value}," Скасувати ",8,tE),s.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:MF,disabled:c.value||Xe.value||et.value||!W.value.file},[et.value?(s.openBlock(),s.createBlock(s.unref(Y.LoaderCircle),{key:0,class:"h-4 w-4 animate-spin"})):s.createCommentVNode("",!0),s.createTextVNode(" "+s.toDisplayString(et.value?"Обробка...":"Додати"),1)],8,nE)])]),_:1},8,["visible","teleport"]),s.createVNode(s.unref(ke.VsModal),{visible:Ye.value,"onUpdate:visible":x[3]||(x[3]=C=>Ye.value=C),title:"Імпорт координат полігону",size:"lg",teleport:s.unref(l)},{default:s.withCtx(()=>[s.createVNode(Pt,{schema:M,values:R.value,"onUpdate:values":x[2]||(x[2]=C=>R.value=C)},null,8,["values"]),s.createElementVNode("div",rE,[s.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:_F}," Скасувати "),s.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:TF,disabled:c.value}," Побудувати ",8,oE)])]),_:1},8,["visible","teleport"]),s.createElementVNode("div",sE,[s.createElementVNode("div",iE,[ia.value?(s.openBlock(),s.createElementBlock(s.Fragment,{key:0},[Le.value.point?(s.openBlock(),s.createElementBlock("button",{key:0,class:s.normalizeClass(["vs-btn",{"vs-active":p.value==="marker"}]),title:"Точка",onClick:x[4]||(x[4]=C=>fa("marker")),disabled:c.value},[s.createVNode(s.unref(Y.MapPin),{class:"vs-btn-icon"})],10,lE)):s.createCommentVNode("",!0),Le.value.line?(s.openBlock(),s.createElementBlock("button",{key:1,class:s.normalizeClass(["vs-btn",{"vs-active":p.value==="polyline"}]),title:"Лінія",onClick:x[5]||(x[5]=C=>fa("polyline")),disabled:c.value},[s.createVNode(Uv,{class:"vs-btn-icon"})],10,aE)):s.createCommentVNode("",!0),Le.value.polygon?(s.openBlock(),s.createElementBlock("button",{key:2,class:s.normalizeClass(["vs-btn",{"vs-active":p.value==="polygon"}]),title:"Полігон",onClick:x[6]||(x[6]=C=>fa("polygon")),disabled:c.value},[s.createVNode(Gv,{class:"vs-btn-icon"})],10,cE)):s.createCommentVNode("",!0),Le.value.rectangle?(s.openBlock(),s.createElementBlock("button",{key:3,class:s.normalizeClass(["vs-btn",{"vs-active":p.value==="rectangle"}]),title:"Прямокутник",onClick:x[7]||(x[7]=C=>fa("rectangle")),disabled:c.value},[s.createVNode(Zv,{class:"vs-btn-icon"})],10,dE)):s.createCommentVNode("",!0)],64)):s.createCommentVNode("",!0),ia.value?(s.openBlock(),s.createElementBlock("div",uE)):s.createCommentVNode("",!0),Le.value.ruler?(s.openBlock(),s.createElementBlock("button",{key:2,class:s.normalizeClass(["vs-btn",{"vs-active":s.unref(b).isRulerActive.value}]),title:"Лінійка",onClick:w},[s.createVNode(s.unref(Y.Ruler),{class:"vs-btn-icon"})],2)):s.createCommentVNode("",!0),s.createElementVNode("button",{class:"vs-btn",onClick:x[8]||(x[8]=C=>d.value=!d.value),title:d.value?"Згорнути":"На весь екран"},[d.value?(s.openBlock(),s.createBlock(s.unref(Y.Minimize),{key:0,class:"vs-btn-icon"})):(s.openBlock(),s.createBlock(s.unref(Y.Maximize),{key:1,class:"vs-btn-icon"}))],8,fE)])]),Le.value.ruler&&s.unref(b).isRulerActive.value?(s.openBlock(),s.createBlock(IS,{key:1,ref_key:"rulerPanelRefEl",ref:y,onClose:x[9]||(x[9]=C=>s.unref(b).closeRuler()),onTabChange:s.unref(b).onRulerTabChange,onPointsChange:s.unref(b).onRulerPointsChange,onShapeClosedChange:s.unref(b).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):s.createCommentVNode("",!0),Le.value.ruler&&s.unref(b).isRulerActive.value&&s.unref(b).hasRulerPoints.value?(s.openBlock(),s.createBlock(OS,{key:2,map:g.value,points:s.unref(b).rulerPoints.value,"is-shape-closed":s.unref(b).rulerShapeClosed.value,"label-mode":s.unref(b).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):s.createCommentVNode("",!0),St.value.length?(s.openBlock(),s.createBlock(s.Teleport,{key:3,to:K.value},[s.createElementVNode("div",{class:"pointer-events-none fixed z-[10000]",style:s.normalizeStyle(cn.value)},[s.createElementVNode("div",pE,[s.createElementVNode("dl",hE,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(St.value,C=>(s.openBlock(),s.createElementBlock("div",{key:`${C.key}-${C.value}`,class:"flex justify-between gap-2"},[s.createElementVNode("dt",mE,s.toDisplayString(C.key),1),s.createElementVNode("dd",gE,s.toDisplayString(C.value),1)]))),128))])])],4)],8,["to"])):s.createCommentVNode("",!0),s.createElementVNode("div",yE,[s.createVNode(xC,{compact:"",basemaps:s.unref(mr),"active-base-key":qr.value,"tile-overlays":s.unref(Gr),"active-tile-overlay-keys":Sn.value,"vector-overlays":la.value,"preview-tile":Ce.value,disabled:c.value,onOnLayerChange:lF,onOnOverlayToggle:iF,onOnVectorOverlayToggle:oF},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),ib.value?(s.openBlock(),s.createElementBlock("div",bE,[s.createElementVNode("div",kE,[s.createElementVNode("div",wE,[x[11]||(x[11]=s.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),s.createElementVNode("div",xE,[Su.value.length?(s.openBlock(!0),s.createElementBlock(s.Fragment,{key:0},s.renderList(Su.value,(C,B)=>(s.openBlock(),s.createElementBlock(s.Fragment,{key:C.id},[C.interactive?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:s.normalizeClass(["vs-map-status__chip",{"vs-map-status__chip--active":C.id===s.unref(qe)}]),onClick:P=>yF(C.id),disabled:c.value},s.toDisplayString(C.label),11,vE)):(s.openBlock(),s.createElementBlock("span",CE,s.toDisplayString(C.label),1)),B<Su.value.length-1?(s.openBlock(),s.createElementBlock("span",SE,", ")):s.createCommentVNode("",!0)],64))),128)):(s.openBlock(),s.createElementBlock("span",EE,"—"))])]),s.createElementVNode("div",ME,[s.createElementVNode("span",AE,[x[12]||(x[12]=s.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),h.value?(s.openBlock(),s.createElementBlock("span",_E,s.toDisplayString(h.value.center.lng.toFixed(5))+", "+s.toDisplayString(h.value.center.lat.toFixed(5)),1)):(s.openBlock(),s.createElementBlock("span",TE,"—"))]),h.value&&h.value.areaKm2!==null?(s.openBlock(),s.createElementBlock("span",BE,[x[13]||(x[13]=s.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),s.createElementVNode("span",NE,s.toDisplayString(h.value.areaKm2.toFixed(1))+" km²",1)])):s.createCommentVNode("",!0),s.createElementVNode("div",DE,[s.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:kF,disabled:c.value},[s.createVNode(s.unref(Y.ZoomIn),{class:"vs-status-btn__icon"})],8,VE),s.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:bF,disabled:c.value},[s.createVNode(s.unref(Y.Trash2),{class:"vs-status-btn__icon"})],8,$E)])])])])):s.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-d2948dbb"]]),UE=["data-focus"],WE={class:"flex items-center"},KE={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},qE=["onClick","aria-label"],GE={key:0,class:"absolute text-gray-500 truncate pl-2"},JE={class:"flex-1 min-w-[2px]"},YE=["placeholder"],XE={class:"flex items-center shrink-0"},ZE=["disabled"],kf=s.defineComponent({__name:"vs-input-tag",props:s.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:s.mergeModels(["update:modelValue"],["update:modelValue"]),setup(n,{emit:e}){const t=n,r=e;Bt(t.style);const o=s.ref(null),i=s.ref(null),l=s.ref(null),a=s.ref(!1),c=s.ref(""),d=s.useModel(n,"modelValue"),u=s.computed(()=>t.placeholder||"Add tag…"),f=s.computed(()=>d.value?.length===0&&c.value===""),p=s.computed(()=>!t.disabled&&d.value?.length>0),h=s.computed(()=>t.disabled),m=async()=>{h.value||await s.nextTick(()=>l.value?.focus())},g=F=>{const T=F.trim();T!==""&&(!d.value||!Array.isArray(d.value)?d.value=[T]:t.unique?d.value.includes(T)||(d.value=[...d.value,T]):d.value=[...d.value,T],c.value="")},y=()=>{const F=c.value;F.trim()!==""&&g(F),c.value=""},b=F=>{const T=d.value.slice();T.splice(F,1),r("update:modelValue",T)},w=()=>{r("update:modelValue",[])},v=()=>{h.value||(a.value=!0)},S=()=>{a.value=!1,!h.value&&y()},N=F=>{const{key:T}=F;T==="Enter"?(F.preventDefault(),y()):T==="Backspace"&&c.value===""&&d.value.length>0&&b(d.value.length-1)};return(F,T)=>(s.openBlock(),s.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:o,onClick:T[1]||(T[1]=s.withModifiers(()=>{},["stop"]))},[s.createElementVNode("div",{class:s.normalizeClass(["relative w-full font-sans",t.customClass]),role:"group","aria-label":"Tag input"},[s.createElementVNode("div",{class:s.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",a.value?"border-blue-500 ring-1 ring-blue-500":"",h.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":a.value?"true":"false",onClick:m},[s.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:i},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(d.value,(E,_)=>(s.openBlock(),s.createElementBlock("div",{key:_,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[s.createElementVNode("div",WE,[s.createElementVNode("div",KE,s.toDisplayString(E),1)]),s.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:s.withModifiers(A=>b(_),["stop"]),"aria-label":`Remove ${E}`},[s.createVNode(s.unref(Y.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,qE)]))),128)),f.value?(s.openBlock(),s.createElementBlock("div",GE,s.toDisplayString(u.value),1)):s.createCommentVNode("",!0),s.createElementVNode("div",JE,[h.value?s.createCommentVNode("",!0):s.withDirectives((s.openBlock(),s.createElementBlock("input",{key:0,ref_key:"inputRef",ref:l,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":T[0]||(T[0]=E=>c.value=E),onFocus:v,onBlur:S,onKeydown:N,placeholder:d.value&&d.value.length?"":void 0},null,40,YE)),[[s.vModelText,c.value]])])],512),s.createElementVNode("div",XE,[p.value?(s.openBlock(),s.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:h.value,onClick:s.withModifiers(w,["stop"])},[s.createVNode(s.unref(Y.X),{class:"h-4 w-4"})],8,ZE)):s.createCommentVNode("",!0)])],10,UE)],2)],512))}}),QE={class:"relative flex gap-1 bg-white w-full"},eM=["disabled","placeholder"],wf=Be(s.defineComponent({__name:"vs-input-slug",props:s.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=s.inject("values"),t=n,r=s.useModel(n,"modelValue");function o(l){const a={а:"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 l.toLowerCase().split("").map(c=>a[c]||c).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const i=()=>{const l=e?.value?.[t.parent||""]?.toString(),a=o(l);r.value=a.toString()};return(l,a)=>(s.openBlock(),s.createElementBlock("div",QE,[s.withDirectives(s.createElementVNode("input",{ref:"vsText",disabled:l.disabled,placeholder:l.placeholder,"onUpdate:modelValue":a[0]||(a[0]=c=>r.value=c),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,eM),[[s.vModelText,r.value]]),s.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:i}," Gen ")]))}}),[["__scopeId","data-v-b0eba370"]]),tM={class:"relative flex gap-1 bg-white w-full"},nM=["disabled","placeholder"],rM=["disabled"],oM={key:0},sM={key:1},xf=Be(s.defineComponent({__name:"vs-input-codegen",props:s.mergeModels({table:{},code:{},init:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.ref(!1),o=s.computed(()=>e.init!==!1),i=s.computed(()=>!!e.table&&!!e.code),l=()=>{if(!i.value)return"";const d=encodeURIComponent(String(e.table)),u=encodeURIComponent(String(e.code));return`/api/code-gen/${d}/${u}`},a=async()=>{if(!i.value||r.value)return;const d=l();if(d){r.value=!0;try{const f=await(await fetch(d)).text();t.value=f}finally{r.value=!1}}},c=()=>{o.value&&(t.value||a())};return s.onMounted(()=>{c()}),s.watch(()=>[e.table,e.code,e.init],()=>{c()}),(d,u)=>(s.openBlock(),s.createElementBlock("div",tM,[s.withDirectives(s.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":u[0]||(u[0]=f=>t.value=f),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,nM),[[s.vModelText,t.value]]),s.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||!i.value,onClick:a},[r.value?(s.openBlock(),s.createElementBlock("span",sM,"...")):(s.openBlock(),s.createElementBlock("span",oM,"Gen"))],8,rM)]))}}),[["__scopeId","data-v-6ee5237d"]]),iM={class:"w-full"},lM={ref:"sortableContainer",class:"flex flex-col gap-1"},aM=["onDragstart","onDrop"],cM={class:"cursor-move",type:"button"},dM={class:"w-1/3"},uM={class:"w-2/3"},fM=["onClick"],pM={key:0,class:"text-[14px] text-gray-700"},hM={class:"mt-2 w-full flex items-center"},mM=["disabled"],vf=Be(s.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(n,{emit:e}){const t=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,r=s.inject("values"),o=n,i=e,l=o.addButtonText??"Додати",a=o.ignore??[],c=s.ref([]),d=s.ref(null);(()=>{const y=o.parent&&r?.value?.[o.parent]||o.modelValue||{};c.value=Object.entries(y).filter(([b])=>!a.includes(b)).map(([b,w])=>({id:t("key-value-"),key:b,value:w}))})();function f(y){d.value=y}function p(y){if(d.value===null||d.value===y)return;const b=c.value.splice(d.value,1)[0];c.value.splice(y,0,b),d.value=null}const h=s.computed(()=>c.value.some(y=>y.key&&!y.value||!y.key&&y.value)),m=()=>{c.value.push({id:t("key-value-"),key:"",value:""})},g=y=>{c.value=c.value.filter(b=>b.id!==y)};return s.watch(c,y=>{const b={};y.forEach(v=>{v.key&&v.value!==void 0&&(b[v.key]=v.value)});const w={};a.length&&a.forEach(v=>{w[v]=o.parent?r?.value?.[o.parent]?.[v]:void 0}),r?.value&&o.parent&&(r.value[o.parent]={...w,...b}),i("update:modelValue",b)},{deep:!0}),(y,b)=>(s.openBlock(),s.createElementBlock("div",iM,[s.createElementVNode("div",lM,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(c.value,(w,v)=>(s.openBlock(),s.createElementBlock("div",{key:w.id,class:s.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===v}]),draggable:"true",onDragstart:S=>f(v),onDragover:b[0]||(b[0]=s.withModifiers(()=>{},["prevent"])),onDrop:S=>p(v)},[s.createElementVNode("button",cM,[s.createVNode(s.unref(Y.GripVertical),{class:"h-4 w-4"})]),s.createElementVNode("div",dM,[s.createVNode(Yr,{modelValue:w.key,"onUpdate:modelValue":S=>w.key=S,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),s.createElementVNode("div",uM,[s.createVNode(Yr,{modelValue:w.value,"onUpdate:modelValue":S=>w.value=S,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),s.createElementVNode("button",{onClick:S=>g(w.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[s.createVNode(s.unref(Y.X),{class:"h-4 w-4"})],8,fM)],42,aM))),128))],512),c.value.length?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("span",pM," Дані для відображення відсутні ")),s.createElementVNode("div",hM,[s.createElementVNode("button",{type:"button",onClick:m,disabled:h.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[s.createVNode(s.unref(Y.Plus),{class:"h-4 w-4"}),s.createTextVNode(" "+s.toDisplayString(s.unref(l)),1)],8,mM)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),gM={class:"w-full"},yM={ref:"sortableContainer",class:"flex flex-col gap-1"},bM=["onDragstart","onDrop"],kM=["disabled"],wM={class:"flex-1"},xM=["onClick","disabled"],vM={key:0,class:"text-[14px] text-gray-700"},CM={class:"mt-2 w-full flex items-center"},SM=["disabled"],Cf=Be(s.defineComponent({__name:"vs-input-text-array",props:s.mergeModels({addButtonText:{default:"Додати"},inputType:{default:"text"},placeholder:{default:"Значення"},mask:{default:""},disabled:{type:Boolean,default:!1}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.ref([]),o=s.ref(null),i=s.computed(()=>!!e.disabled),l=s.computed(()=>e.placeholder??""),a=s.computed(()=>e.addButtonText??"Додати");let c=!1;const d=y=>`${y}-${Math.random().toString(36).substring(2,15)}`,u=y=>{const b=y??t.value??[];r.value=b.map((w,v)=>({id:r.value[v]?.id??d("text-array"),value:w??""}))};u(),s.watch(()=>t.value,y=>{if(c){c=!1;return}u(y||[])},{deep:!0}),s.watch(r,y=>{c=!0,t.value=y.map(b=>b.value).filter(b=>b!=null&&b!=="")},{deep:!0});const f=s.computed(()=>i.value||r.value.some(y=>!y.value));function p(){f.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function h(y){i.value||(r.value=r.value.filter(b=>b.id!==y))}function m(y){i.value||(o.value=y)}function g(y){if(i.value||o.value===null||o.value===y)return;const b=[...r.value],[w]=b.splice(o.value,1);b.splice(y,0,w),r.value=b,o.value=null}return(y,b)=>(s.openBlock(),s.createElementBlock("div",gM,[s.createElementVNode("div",yM,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(r.value,(w,v)=>(s.openBlock(),s.createElementBlock("div",{key:w.id,class:s.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":o.value===v}]),draggable:"true",onDragstart:S=>m(v),onDragover:b[0]||(b[0]=s.withModifiers(()=>{},["prevent"])),onDrop:S=>g(v)},[s.createElementVNode("button",{class:"cursor-move",type:"button",disabled:i.value},[s.createVNode(s.unref(Y.GripVertical),{class:"h-4 w-4"})],8,kM),s.createElementVNode("div",wM,[y.inputType==="text"?(s.openBlock(),s.createBlock(Yr,{key:0,modelValue:w.value,"onUpdate:modelValue":S=>w.value=S,disabled:i.value,placeholder:l.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):s.createCommentVNode("",!0),y.inputType==="tel"?(s.openBlock(),s.createBlock(wa,{key:1,modelValue:w.value,"onUpdate:modelValue":S=>w.value=S,disabled:i.value,placeholder:l.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):s.createCommentVNode("",!0),y.inputType==="email"?(s.openBlock(),s.createBlock(ka,{key:2,modelValue:w.value,"onUpdate:modelValue":S=>w.value=S,disabled:i.value,placeholder:l.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):s.createCommentVNode("",!0),y.inputType==="mask"?(s.openBlock(),s.createBlock(Gs,{key:3,modelValue:w.value,"onUpdate:modelValue":S=>w.value=S,mask:y.mask,disabled:i.value,placeholder:l.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):s.createCommentVNode("",!0)]),s.createElementVNode("button",{type:"button",onClick:S=>h(w.id),disabled:i.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"},[s.createVNode(s.unref(Y.X),{class:"h-4 w-4"})],8,xM)],42,bM))),128))],512),r.value.length?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("span",vM," Дані для відображення відсутні ")),s.createElementVNode("div",CM,[s.createElementVNode("button",{type:"button",onClick:p,disabled:f.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[s.createVNode(s.unref(Y.Plus),{class:"h-4 w-4"}),s.createTextVNode(" "+s.toDisplayString(a.value),1)],8,SM)])]))}}),[["__scopeId","data-v-2c229b1f"]]),EM={class:"flex items-center gap-2 w-full"},MM=["disabled"],AM=["disabled"],Sf=s.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,{inputClass:r}=Bt(t.style),o=e,i=s.computed({get:()=>t.modelValue||"#000000",set:a=>o("update:modelValue",a)}),l=s.computed(()=>!!t.disabled);return(a,c)=>(s.openBlock(),s.createElementBlock("div",EM,[s.withDirectives(s.createElementVNode("input",{type:"color","onUpdate:modelValue":c[0]||(c[0]=d=>i.value=d),disabled:l.value,ref:"color",class:s.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[a.modelValue?"":"text-opacity-50",s.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,MM),[[s.vModelText,i.value]]),s.withDirectives(s.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":c[1]||(c[1]=d=>i.value=d),disabled:l.value},null,8,AM),[[s.vModelText,i.value]])]))}}),_M={class:"flex items-center gap-2 w-full"},TM=["min","max","step","disabled"],BM=["value","min","max","step","disabled"],Ef=s.defineComponent({__name:"vs-input-range",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},min:{default:0},max:{default:100},step:{default:1}},emits:["update:modelValue"],setup(n,{emit:e}){const t=n,{inputClass:r}=Bt(t.style),o=e,i=u=>{const f=Number(u),p=Number(t.min),h=Number(t.max);return Number.isNaN(f)?p:Math.min(h,Math.max(p,f))},l=s.computed({get:()=>i(t.modelValue??t.min),set:u=>o("update:modelValue",i(u))}),a=u=>{const f=u.target,p=i(f.value);f.value=String(p),o("update:modelValue",p)},c=u=>{Number(t.min)>=0&&u.key==="-"&&u.preventDefault()},d=s.computed(()=>!!t.disabled);return(u,f)=>(s.openBlock(),s.createElementBlock("div",_M,[s.withDirectives(s.createElementVNode("input",{type:"range","onUpdate:modelValue":f[0]||(f[0]=p=>l.value=p),min:u.min,max:u.max,step:u.step,disabled:d.value,ref:"range",class:s.normalizeClass(["w-full cursor-pointer accent-blue-500",[u.modelValue?"":"text-opacity-50",s.unref(r)].join(" ")])},null,10,TM),[[s.vModelText,l.value]]),s.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number",value:l.value,min:u.min,max:u.max,step:u.step,onInput:a,onKeydown:c,disabled:d.value},null,40,BM)]))}}),NM=["placeholder","disabled","name"],DM=["type","value","onInput","placeholder","disabled"],VM=["onClick"],Mf=s.defineComponent({__name:"vs-input-array",props:s.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.ref(e.count),r=s.computed(()=>e.limit),{inputClass:o}=Bt(e.style),i=s.useModel(n,"modelValue"),l=s.computed(()=>!!e.disabled),a=s.computed(()=>e.placeholder??"");s.watchEffect(()=>{const g=i.value?.length??0;g<t.value&&(i.value=[...i.value??[],...Array(t.value-g)])});const c=s.ref({}),d=s.ref({});function u(g,y){g&&(c.value[y]=g)}async function f(g,y){if(!g||e.inputType!=="mask")return;const{default:b}=await Promise.resolve().then(()=>vi);d.value[y]&&d.value[y].destroy(),d.value[y]=b(g,{mask:e.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[y].on("accept",()=>{const w=[...i.value||[]];w[y]=e.unmask?d.value[y].unmaskedValue:d.value[y].value,i.value=w}),d.value[y].on("complete",()=>{const w=[...i.value||[]];w[y]=e.unmask?d.value[y].unmaskedValue:d.value[y].value,i.value=w}),i.value?.[y]&&(d.value[y].value=i.value[y])}function p(g,y){if(l.value)return;const b=g.target.value??null,w=[...i.value];w[y]=e.inputType==="text"?b:Number(b),i.value=w}function h(){t.value+=1;const g=e.inputType==="text"||e.inputType==="mask"?null:0;i.value=[...i.value,g],e.inputType==="mask"&&setTimeout(()=>{const y=t.value-1;c.value[y]&&f(c.value[y],y)},0)}function m(g){if(t.value>1){d.value[g]&&(d.value[g].destroy(),delete d.value[g]),t.value-=1,i.value=i.value.filter((b,w)=>w!==g);const y={};Object.keys(d.value).forEach(b=>{const w=parseInt(b,10);w>g?y[w-1]=d.value[w]:w<g&&(y[w]=d.value[w])}),d.value=y}}return s.onMounted(()=>{if(e.inputType==="mask")for(let g=0;g<t.value;g+=1)c.value[g]&&f(c.value[g],g)}),s.onBeforeUnmount(()=>{Object.values(d.value).forEach(g=>{g&&g.destroy()})}),s.watch(()=>e.mask,g=>{e.inputType==="mask"&&Object.values(d.value).forEach(y=>{y&&y.updateOptions({mask:g,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),s.watch(i,g=>{e.inputType==="mask"&&g&&g.forEach((y,b)=>{d.value[b]&&d.value[b].value!==y&&(d.value[b].value=y||"")})},{deep:!0}),(g,y)=>(s.openBlock(),s.createElementBlock("div",{class:s.normalizeClass(["grid gap-2",`grid-cols-${r.value}`])},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(t.value,b=>(s.openBlock(),s.createElementBlock("div",{key:b,class:"flex items-center gap-2 w-full"},[g.inputType==="mask"?(s.openBlock(),s.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:w=>u(w,b-1),placeholder:g.placeholder,disabled:g.disabled,name:`${g.name}[${b-1}]`,class:s.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[s.unref(o),{"!border-red-600":g.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,NM)):(s.openBlock(),s.createElementBlock("input",{key:1,type:g.inputType,value:i.value?.[b-1],onInput:w=>p(w,b-1),placeholder:a.value,disabled:l.value,class:s.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[s.unref(o),{"!border-red-600":g.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,DM)),!g.disabled&&b===t.value&&g.isAdded?(s.openBlock(),s.createElementBlock("button",{key:2,type:"button",onClick:s.withModifiers(h,["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-green-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[s.createVNode(s.unref(Y.Plus),{class:"h-4 w-4"})])):s.createCommentVNode("",!0),!g.disabled&&t.value>1&&g.isAdded?(s.openBlock(),s.createElementBlock("button",{key:3,type:"button",onClick:s.withModifiers(w=>m(b-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"},[s.createVNode(s.unref(Y.X),{class:"h-4 w-4"})],8,VM)):s.createCommentVNode("",!0)]))),128))],2))}}),$M={class:"flex gap-1 w-full"},LM=["aria-expanded","data-focus"],IM=["placeholder","disabled","readonly"],OM={class:"max-h-full"},RM=["onClick","disabled"],FM={key:0,class:"px-3 py-2 text-sm text-stone-500"},PM=["disabled"],zM={class:"flex flex-col gap-1"},HM=["onDragstart","onDrop"],jM=["disabled"],UM=["title"],WM=["disabled","onClick","aria-label"],KM={key:0,class:"text-xs text-stone-500"},hi=Be(s.defineComponent({__name:"vs-input-array-select",props:s.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:s.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(n,{emit:e}){const t=n,r=e,o=s.useModel(n,"modelValue"),i=s.ref([]),l=s.ref(t.options??[]),a=s.ref({}),c=s.ref({}),d=s.ref({keyword:"",parent:null}),u=s.ref(""),f=s.ref(!1),p=s.ref(null),h=s.ref(null),m=s.ref(null),g=s.ref(null),y=s.ref(null),b=s.ref({});let w=!1,v=!1;const S=s.inject("values"),N=s.computed(()=>!!t.disabled),F=s.computed(()=>t.placeholder??"Оберіть значення"),T=s.computed(()=>t.search!==!1),E=s.computed(()=>{const M=t.parent??t.parentValue;return M?String(M):""}),_=s.computed(()=>E.value?S?.value?.[E.value]??null:null),A=M=>M==null?"__null__":String(M),I=M=>{if(!M)return"";const D=M.label??M.text??M.name??M.ua??M.en;return D?String(D):M.id!==void 0&&M.id!==null?String(M.id):""},U=M=>{const D=A(M);return c.value[D]||(c.value[D]=`array-select-${D}-${Math.random().toString(36).slice(2,8)}`),c.value[D]},Z=s.computed(()=>new Set(i.value.map(M=>A(M.id)))),V=s.computed(()=>{const M=Z.value;let D=[...l.value];if(!t.data&&u.value.trim()){const H=u.value.toLowerCase();D=D.filter(te=>I(te).toLowerCase().includes(H))}return D.filter(H=>!M.has(A(H.id)))}),z=()=>{if(!t.data)return"";const M=t.prefix??"api",D=t.api??`/${M}/suggest/${t.data}`;return`${t.host??""}${D}`},oe=()=>{i.value.length&&(w=!0,i.value=i.value.map(M=>({...M,text:a.value[A(M.id)]??M.text})))},K=M=>{const D=A(M.id),H=I(M);H&&(a.value[D]=H)},G=M=>{l.value=M?[...M]:[],M?.forEach(K),oe()},X=M=>{if(!M.length)return;const D=new Map(l.value.map(H=>[A(H.id),H]));M.forEach(H=>{const te=A(H.id);D.set(te,H),K(H)}),l.value=Array.from(D.values()),oe()},ce=async(M="")=>{if(!t.data)return[];const D=z();if(!D)return[];const H=new URLSearchParams;H.set("json","1"),M&&H.set("key",M),t.start===1&&H.set("start","1"),_.value!==null&&_.value!==void 0&&_.value!==""&&H.set("parent",String(_.value));try{return(await(await fetch(`${D}?${H.toString()}`)).json())?.data??[]}catch{return[]}},j=async M=>{if(!t.data||!M.length)return[];const D=z();if(!D)return[];const H=Array.from(new Set(M.map(we=>A(we)))),te=new URLSearchParams;te.set("json","1"),te.set("val",H.join(",")),t.start===1&&te.set("start","1"),_.value!==null&&_.value!==void 0&&_.value!==""&&te.set("parent",String(_.value));try{const Re=(await(await fetch(`${D}?${te.toString()}`)).json())?.data??[];return X(Re),Re}catch{return[]}},L=async M=>{if(M==null||M==="")return null;const D=A(M),H=l.value.find(we=>A(we.id)===D);if(H)return H;const[te]=await j([M]);return te??null},O=async(M="",{force:D=!1}={})=>{if(!t.data)return;const H=_.value??null;if(!D&&d.value.keyword===M&&d.value.parent===H&&l.value.length>0)return;d.value={keyword:M,parent:H};const we=await ce(M);G(we)},ae=((M,D=200)=>{let H;return(...te)=>{H&&clearTimeout(H),H=setTimeout(()=>M(...te),D)}})(async M=>{t.data&&await O(M,{force:!0})},250),re=s.ref(null),he=()=>{if(!m.value)return;const M=m.value.getBoundingClientRect(),D=window.innerHeight??document.documentElement.clientHeight,H=window.innerWidth??document.documentElement.clientWidth,te=8,we=8,tt=t.maxHeight??280,Re=D-M.bottom-we-te,St=M.top-we-te,cn=Re>=St,tn=Math.max(H-te*2,0);let{width:Le}=M;tn>0&&Le>tn&&(Le=tn);let{left:$t}=M;$t+Le+te>H&&($t=H-Le-te),$t=Math.max($t,te);const xo=Math.min(tt,Math.max(cn?Re:St,50));b.value={position:"fixed",left:`${$t}px`,width:`${Le}px`,maxHeight:`${xo}px`,transform:cn?"none":"translateY(-100%)",top:cn?`${M.bottom+we}px`:`${M.top-we}px`}},Ae=async(M="click")=>{N.value||f.value||(re.value=M,await O(u.value.trim()),f.value=!0,await s.nextTick(),he(),y.value?.focus())},Ce=()=>{f.value=!1,re.value=null,s.nextTick(()=>{y.value?.blur()})},$e=async M=>{if(M.stopPropagation(),!N.value){if(f.value){if(re.value==="focus"){re.value=null;return}Ce();return}await Ae("click")}},it=M=>{M.key==="Escape"&&Ce()},Fe=M=>{if(!f.value)return;const D=M.target;g.value?.contains(D)||Ce()},Qe=M=>{const D=M.target;h.value?.contains(D)||g.value?.contains(D)||Ce()},We=M=>{if(M.key==="Escape"){M.preventDefault(),Ce();return}if(M.key==="Enter"){M.preventDefault();const D=V.value[0];D&&se(D)}},se=M=>{if(!M)return;const D=A(M.id);if(Z.value.has(D))return;K(M);const H={id:M.id,text:I(M)||String(M.id??""),key:U(M.id)};i.value=[...i.value,H],me(M),u.value="",s.nextTick(()=>{y.value?.focus()})},me=M=>{const D=i.value.map(H=>H.id);r("value-selected",{name:t.name,value:D,option:M})},Ee=M=>{if(N.value)return;const D=i.value.filter(H=>A(H.id)!==A(M));i.value=D},{isOpenAdd:Me,addData:Ye,addSchema:Ct,addForm:et,addTitle:Xe,addOption:ft,onAddValue:Vt}=rf({props:t,fetchOptionByValue:L,optionsList:l,selectedOption:s.ref(null),modelValue:o,onCreated:async(M,D)=>{const H=M??await L(D),te=H?.id??D;Z.value.has(A(te))||(H&&K(H),i.value=[...i.value,{id:te,text:H?I(H):String(te),key:U(te)}],me(H??null))}}),W=M=>{N.value||(p.value=M)},ee=M=>{if(N.value||p.value===null||p.value===M)return;const D=[...i.value],[H]=D.splice(p.value,1);D.splice(M,0,H),p.value=null,i.value=D},ue=async()=>{const D=(Array.isArray(o.value)?[...o.value]:[]).filter(te=>te!=null);if(t.data&&D.length){const te=D.filter(we=>!a.value[A(we)]);te.length&&await j(te)}const H=D.map(te=>({id:te,text:a.value[A(te)]??String(te),key:U(te)}));w=!0,i.value=H};s.watch(i,M=>{if(w){w=!1;return}const D=M.map(H=>H.id);v=!0,o.value=D,r("change",D)},{deep:!0}),s.watch(o,()=>{if(v){v=!1;return}ue()},{deep:!0}),s.watch(u,M=>{!t.data||!f.value||ae(M.trim())}),s.watch(N,M=>{M&&Ce()}),s.watch(()=>t.options,async M=>{t.data||(G(M??[]),await ue())},{immediate:!0,deep:!0}),s.watch(()=>t.data,async M=>{M&&(await O(u.value.trim()),await ue())},{immediate:!0});const R=s.ref(!1);return s.watch(_,async()=>{if(t.data){if(!R.value){R.value=!0;return}i.value=[],await O(u.value.trim()),await ue()}}),s.onMounted(async()=>{document.addEventListener("click",Qe,!0),window.addEventListener("keydown",it),window.addEventListener("scroll",Fe,!0),await ue()}),s.onUnmounted(()=>{document.removeEventListener("click",Qe,!0),window.removeEventListener("keydown",it),window.removeEventListener("scroll",Fe,!0)}),(M,D)=>(s.openBlock(),s.createElementBlock(s.Fragment,null,[s.createVNode(s.unref(ke.VsModal),{visible:s.unref(Me),"onUpdate:visible":D[1]||(D[1]=H=>s.isRef(Me)?Me.value=H:null),class:"z-[1000]",title:s.unref(Xe),buttonText:"Додати",onDone:s.unref(ft)},{default:s.withCtx(()=>[s.createVNode(Pt,{schema:s.unref(Ct),modelValue:s.unref(Ye),"onUpdate:modelValue":D[0]||(D[0]=H=>s.isRef(Ye)?Ye.value=H:null),ref_key:"addForm",ref:et},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),s.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:h},[s.createElementVNode("div",$M,[s.createElementVNode("div",{class:"relative flex-1",onClick:D[4]||(D[4]=s.withModifiers(()=>{},["stop"]))},[s.createElementVNode("div",{ref_key:"triggerRef",ref:m,class:s.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white px-3","border-gray-300 hover:border-[#b3d4ff]",f.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",N.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":f.value,"aria-haspopup":"listbox","data-focus":f.value?"true":"false",onClick:$e},[s.withDirectives(s.createElementVNode("input",{ref_key:"inputRef",ref:y,"onUpdate:modelValue":D[2]||(D[2]=H=>u.value=H),placeholder:F.value,disabled:N.value,readonly:!T.value,onFocus:D[3]||(D[3]=()=>Ae("focus")),onKeydown:We,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,IM),[[s.vModelText,u.value]]),s.createElementVNode("span",{class:s.normalizeClass(["text-stone-400 transition-transform duration-150",f.value?"rotate-180":""]),"aria-hidden":"true"},[s.createVNode(s.unref(Y.ChevronDown),{class:"h-4 w-4"})],2)],10,LM),(s.openBlock(),s.createBlock(s.Teleport,{to:"body"},[s.createVNode(s.Transition,{name:"fade"},{default:s.withCtx(()=>[f.value?(s.openBlock(),s.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:g,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:s.normalizeStyle(b.value)},[s.createElementVNode("div",OM,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(V.value,H=>(s.openBlock(),s.createElementBlock("button",{key:A(H.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:s.withModifiers(te=>se(H),["stop"]),disabled:N.value},s.toDisplayString(I(H)),9,RM))),128)),V.value.length===0?(s.openBlock(),s.createElementBlock("p",FM," Немає варіантів ")):s.createCommentVNode("",!0)])],4)):s.createCommentVNode("",!0)]),_:1})]))]),t.add?(s.openBlock(),s.createElementBlock("button",{key:0,onClick:D[5]||(D[5]=(...H)=>s.unref(Vt)&&s.unref(Vt)(...H)),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:N.value,type:"button"},[s.createVNode(s.unref(Y.Plus),{class:"h-4 w-4"}),D[8]||(D[8]=s.createElementVNode("span",null,"Додати",-1))],8,PM)):s.createCommentVNode("",!0)]),s.createElementVNode("div",zM,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(i.value,(H,te)=>(s.openBlock(),s.createElementBlock("div",{key:H.key,class:s.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":p.value===te}]),draggable:"true",onDragstart:we=>W(te),onDragover:D[6]||(D[6]=s.withModifiers(()=>{},["prevent"])),onDrop:we=>ee(te),onDragend:D[7]||(D[7]=we=>p.value=null)},[s.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:N.value,"aria-label":"Перетягнути"},[s.createVNode(s.unref(Y.GripVertical),{class:"h-4 w-4"})],8,jM),s.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:H.text},s.toDisplayString(H.text),9,UM),s.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:N.value,onClick:s.withModifiers(we=>Ee(H.id),["stop"]),"aria-label":`Видалити ${H.text}`},[s.createVNode(s.unref(Y.X),{class:"h-4 w-4"})],8,WM)],42,HM))),128)),i.value.length===0?(s.openBlock(),s.createElementBlock("p",KM,"Немає вибраних значень")):s.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),qM={class:"flex items-center gap-2 w-full"},GM={class:"relative flex-1"},JM=["placeholder","disabled","onKeydown"],YM=["disabled"],XM={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},ZM={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},QM={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},e2=["onClick"],t2={key:0,class:"p-4 text-sm text-gray-500"},Af=s.defineComponent({__name:"vs-input-address",props:s.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:s.mergeModels(["update:modelValue","update:geom"],["update:modelValue"]),setup(n,{emit:e}){const t=/{{\s*([^}]+?)\s*}}/g,r=n,o=e,{inputClass:i}=Bt(r.style),l=s.useModel(n,"modelValue"),a=s.computed({get:()=>l.value,set:T=>{l.value=T}}),c=s.ref(!1),d=s.ref([]),u=s.ref(!1),f=s.ref(null);s.watch(u,T=>{typeof document>"u"||(T?(f.value=document.body.style.overflow,document.body.style.overflow="hidden"):f.value!=null?(document.body.style.overflow=f.value,f.value=null):document.body.style.removeProperty("overflow"))}),s.onBeforeUnmount(()=>{typeof document>"u"||(f.value!=null?document.body.style.overflow=f.value:document.body.style.removeProperty("overflow"))});const p=s.computed(()=>r.placeholder??""),h=s.computed(()=>!!r.disabled),m=T=>{if(!T)return null;if(Array.isArray(T))return T;if(typeof T=="string"){const E=T.split(",").map(_=>_.trim()).filter(Boolean);return E.length!==4?null:E.map(Number)}return null},g=s.computed(()=>{const T=m(r.bbox);if(!T||T.length!==4)return null;const E=T.map(Number);return E.some(_=>Number.isNaN(_))?null:E}),y=s.computed(()=>{const T=g.value;if(!T)return"";const[E,_,A,I]=T;return`${E},${Math.max(_,I)},${A},${Math.min(_,I)}`});s.computed(()=>y.value?"1":"0");const b=s.inject("values");function w(){!h.value&&a.value.trim()&&v()}async function v(){const T=(a.value||"").trim();if(!T)return;let E=T;if(r.includes?.length&&b?.value){const A=r.includes.map(I=>b.value?.[I]).filter(Boolean);A.length&&(E=`${A.join(", ")}, ${T}`)}const _=F(E);if(_){c.value=!0;try{const I=await(await fetch(_)).json();d.value=Array.isArray(I)?I:[],u.value=!0}catch(A){console.error("Address search error:",A)}finally{c.value=!1}}}function S(){u.value=!u.value}function N(T){if(!T)return;u.value=!1;const E=parseFloat(T.lat),A={type:"Point",coordinates:[parseFloat(T.lon),E]};r.geom&&b?.value&&(b.value[r.geom]=A),o("update:geom",A)}function F(T){if(!r.api)return"";const E={value:encodeURIComponent(T),bbox:g.value?g.value.join(","):""};return r.api.replace(t,(_,A)=>E[A.trim()]??"")}return(T,E)=>(s.openBlock(),s.createElementBlock("div",qM,[s.createElementVNode("div",GM,[s.withDirectives(s.createElementVNode("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=_=>a.value=_),placeholder:p.value,disabled:h.value,class:s.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",[s.unref(i),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:s.withKeys(s.withModifiers(w,["prevent"]),["enter"])},null,42,JM),[[s.vModelText,a.value]]),d.value.length?(s.openBlock(),s.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:S,title:"Show search results"},[s.createVNode(s.unref(Y.Info),{class:"h-4 w-4"})])):s.createCommentVNode("",!0)]),s.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:c.value||!a.value?.trim()},[c.value?(s.openBlock(),s.createBlock(s.unref(Y.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(s.openBlock(),s.createBlock(s.unref(Y.Search),{key:0,class:"h-4 w-4"}))],8,YM),(s.openBlock(),s.createBlock(s.Teleport,{to:"body"},[u.value?(s.openBlock(),s.createElementBlock("div",XM,[s.createElementVNode("div",ZM,[s.createElementVNode("div",QM,[E[2]||(E[2]=s.createElementVNode("span",null,"Результати пошуку",-1)),s.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:E[1]||(E[1]=_=>u.value=!1),title:"Close"},[s.createVNode(s.unref(Y.X),{class:"h-4 w-4"})])]),s.createElementVNode("ul",null,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(d.value,(_,A)=>(s.openBlock(),s.createElementBlock("li",{key:A,onClick:I=>N(_),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},s.toDisplayString(_.display_name),9,e2))),128))]),d.value.length?s.createCommentVNode("",!0):(s.openBlock(),s.createElementBlock("div",t2," Не знайдено результатів "))])])):s.createCommentVNode("",!0)]))]))}}),n2={class:"vs-datalist space-y-3"},r2={class:"space-y-3"},o2=["onClick","disabled"],s2={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},i2=["disabled"],l2=Be(s.defineComponent({__name:"vs-input-datalist",props:s.mergeModels({schema:{default:()=>[]},minItems:{default:0},maxItems:{default:void 0},addButtonText:{default:"Додати позицію"},emptyLabel:{default:"Немає рядків"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.computed(()=>Array.isArray(t.value)?t.value:[]),o=s.ref([]),i=s.computed(()=>e.schema?.map(y=>({...y,disabled:e.disabled||y.disabled}))??[]),l=s.computed(()=>i.value.map(y=>g(y))),a=s.computed(()=>i.value.reduce((b,w)=>{const v=Number(w?.col??12);return b+(Number.isFinite(v)&&v>0?v:12)},0)>12),c=s.computed(()=>e.disabled?!1:e.maxItems?r.value.length<e.maxItems:!0),d=s.computed(()=>e.disabled||r.value.length<=(e.minItems||0));s.watch(()=>r.value.length,()=>{u(),f()},{immediate:!0}),s.watch(()=>e.schema,f,{immediate:!0,deep:!0});function u(){const y=r.value.length;o.value.length<y?o.value=[...o.value,...Array.from({length:y-o.value.length},()=>$a())]:o.value.length>y&&o.value.splice(y)}function f(){if(!e.minItems||r.value.length>=e.minItems)return;const y=e.minItems-r.value.length,b=Array.from({length:y},p);t.value=[...r.value,...b]}function p(){const y={};return i.value.forEach(b=>{y[b.name]=b?.default??null}),y}function h(){c.value&&(t.value=[...r.value,p()],u())}function m(y){d.value||(t.value=r.value.filter((b,w)=>w!==y),u(),f())}function g(y){return{...y}}return(y,b)=>(s.openBlock(),s.createElementBlock("div",n2,[s.createElementVNode("div",r2,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(r.value,(w,v)=>(s.openBlock(),s.createElementBlock("div",{key:o.value[v],class:s.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":a.value}])},[s.createVNode(Pt,{schema:l.value,layout:"inline",navigation:!1,values:r.value[v],"onUpdate:values":S=>r.value[v]=S,"form-id":o.value[v]},null,8,["schema","values","onUpdate:values","form-id"]),s.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:S=>m(v),disabled:d.value},[s.createVNode(s.unref(Y.Trash2),{class:"h-4 w-4"})],8,o2)],2))),128)),r.value.length===0?(s.openBlock(),s.createElementBlock("div",s2,s.toDisplayString(e.emptyLabel),1)):s.createCommentVNode("",!0)]),s.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:h,disabled:!c.value},[s.createVNode(s.unref(Y.Plus),{class:"h-4 w-4"}),s.createTextVNode(" "+s.toDisplayString(e.addButtonText),1)],8,i2)]))}}),[["__scopeId","data-v-d0065868"]]),a2={class:"vs-dataform space-y-4"},c2=["draggable","onDragstart","onDragover","onDragenter","onDrop"],d2={class:"flex items-center gap-2"},u2=["onClick"],f2={class:"text-sm font-medium text-gray-700"},p2={class:"flex items-center gap-2"},h2=["title","onClick","disabled"],m2=["title","onClick","disabled"],g2={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},y2=["disabled"],b2=Be(s.defineComponent({__name:"vs-input-dataform",props:s.mergeModels({schema:{default:()=>[]},minGroups:{default:0},maxGroups:{default:void 0},addButtonText:{default:"Додати групу фільтрів"},groupLabel:{default:void 0},duplicateTitle:{default:"Дублювати групу"},removeTitle:{default:"Видалити групу"},emptyLabel:{},view:{default:"default"},collapsible:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const e=n,t=s.useModel(n,"modelValue"),r=s.ref([]),o=s.ref([]),i=s.ref(0),l=s.ref(null),a=s.ref(null),c=s.ref(null),d=s.computed(()=>e.groupLabel??"Group"),u=s.computed(()=>e.emptyLabel??"Ще немає груп"),f=s.computed(()=>e.schema?.map(O=>({...O,disabled:e.disabled||O.disabled}))??[]),p=s.computed(()=>f.value.map(O=>_(O))),h=s.computed(()=>e.view==="accordion"),m=s.computed(()=>!!(e.collapsible||h.value)),g=s.computed(()=>e.draggable!==!1),y=s.computed(()=>e.disabled?!1:e.maxGroups?t.value.length<e.maxGroups:!0),b=s.computed(()=>e.disabled||t.value.length<=(e.minGroups||0));s.watch(()=>t.value.length,()=>{w(),v(),S()},{immediate:!0}),s.watch(()=>e.schema,S,{immediate:!0,deep:!0}),s.watch(()=>e.view,()=>{v()},{immediate:!0});function w(){const O=t.value.length;r.value.length<O?r.value=[...r.value,...Array.from({length:O-r.value.length},()=>$a())]:r.value.length>O&&r.value.splice(O)}function v(){const O=t.value.length;h.value?O===0?i.value=-1:i.value>=O?i.value=O-1:i.value<0&&(i.value=0):o.value.length<O?o.value=[...o.value,...Array.from({length:O-o.value.length},()=>!1)]:o.value.length>O&&o.value.splice(O)}function S(){if(!e.minGroups||t.value.length>=e.minGroups)return;const O=e.minGroups-t.value.length,ne=Array.from({length:O},N);t.value=[...t.value,...ne],v()}function N(){const O={};return f.value.forEach(ne=>{O[ne.name]=ne?.default??null}),O}function F(){y.value&&(t.value=[...t.value,N()],w(),v())}function T(O){b.value||(t.value=t.value.filter((ne,ae)=>ae!==O),w(),h.value?i.value>=t.value.length&&(i.value=t.value.length-1):o.value.splice(O,1),S())}function E(O){if(e.disabled)return;const ne=JSON.parse(JSON.stringify(t.value[O]??{}));t.value=[...t.value.slice(0,O+1),ne,...t.value.slice(O+1)],w(),h.value?i.value>O&&(i.value+=1):o.value.splice(O+1,0,o.value[O]??!1)}function _(O){return{...O}}function A(O){return h.value?i.value===-1&&O===0?!1:i.value!==O:!!o.value[O]}function I(O){if(m.value){if(h.value){i.value=O;return}o.value[O]=!o.value[O]}}function U(O,ne){if(!g.value||e.disabled){ne.preventDefault();return}l.value=O,a.value=O,c.value={groups:JSON.parse(JSON.stringify(t.value)),keys:[...r.value],states:[...o.value]},ne.dataTransfer?.setData("text/plain",String(O)),ne.dataTransfer?.setDragImage?.(ne.currentTarget,0,0)}function Z(O,ne){!g.value||e.disabled||l.value!==null&&X(O,ne)}function V(O,ne){X(O,ne)}function z(O){!g.value||e.disabled||L()}function oe(){c.value&&G(),l.value=null,a.value=null,c.value=null}function K(O,ne){const ae=[...t.value],[re]=ae.splice(O,1);ae.splice(ne,0,re),t.value=ae;const he=[...r.value],[Ae]=he.splice(O,1);if(he.splice(ne,0,Ae),r.value=he,h.value)i.value===O&&(i.value=ne);else{const Ce=[...o.value],[$e]=Ce.splice(O,1);Ce.splice(ne,0,$e),o.value=Ce}}function G(){c.value&&(t.value=c.value.groups,r.value=c.value.keys,o.value=c.value.states,c.value=null,a.value=null)}function X(O,ne){if(l.value===null)return;const ae=ce(O,ne);a.value=ae,j(ae)}function ce(O,ne){if(!ne?.currentTarget)return O;const ae=ne.currentTarget.getBoundingClientRect(),he=ne.clientY-ae.top>ae.height/2?O+1:O;return Math.max(0,Math.min(he,t.value.length))}function j(O){const ne=l.value;if(ne===null)return;let ae=O;if(ae>t.value.length&&(ae=t.value.length),ae===ne||ae===ne+1)return;const re=ae>ne?ae-1:ae;K(ne,re),l.value=re,a.value=ae>ne?re+1:re}function L(){c.value=null,l.value=null,a.value=null}return(O,ne)=>(s.openBlock(),s.createElementBlock("div",a2,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(t.value,(ae,re)=>(s.openBlock(),s.createElementBlock("div",{key:r.value[re],class:s.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[e.view==="accordion"?"overflow-hidden":A(re)?"pt-6 px-6":"p-6"]]),draggable:g.value&&!e.disabled,onDragstart:he=>U(re,he),onDragend:oe,onDragover:s.withModifiers(he=>Z(re,he),["prevent"]),onDragenter:s.withModifiers(he=>V(re,he),["prevent"]),onDrop:s.withModifiers(he=>z(),["prevent"])},[s.createElementVNode("div",{class:s.normalizeClass(["flex items-center justify-between gap-2 border-b border-gray-100 px-4 py-3",[e.view!=="accordion"?"-mx-6 -mt-6 px-6":"",e.view!=="accordion"&&!A(re)?"rounded-t-lg":"rounded-lg"]])},[s.createElementVNode("div",d2,[g.value?(s.openBlock(),s.createBlock(s.unref(Y.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):s.createCommentVNode("",!0),m.value?(s.openBlock(),s.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:he=>I(re)},[s.createVNode(s.unref(Y.ChevronDown),{class:s.normalizeClass(["h-4 w-4 transition",A(re)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,u2)):s.createCommentVNode("",!0),s.createElementVNode("div",f2,s.toDisplayString(`${d.value} (${re+1})`),1)]),s.createElementVNode("div",p2,[s.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:e.duplicateTitle,onClick:he=>E(re),disabled:e.disabled,draggable:"false"},[s.createVNode(s.unref(Y.Copy),{class:"h-4 w-4"})],8,h2),s.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:e.removeTitle,onClick:he=>T(re),disabled:b.value,draggable:"false"},[s.createVNode(s.unref(Y.Trash2),{class:"h-4 w-4"})],8,m2)])],2),s.withDirectives(s.createElementVNode("div",{class:s.normalizeClass(e.view==="accordion"?"p-6":"pt-6")},[s.createVNode(Pt,{class:"vs-dataform__form",schema:p.value,layout:"inline",navigation:!1,values:t.value[re],"onUpdate:values":he=>t.value[re]=he,"form-id":r.value[re],disabled:e.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[s.vShow,!A(re)]])],42,c2))),128)),t.value.length===0?(s.openBlock(),s.createElementBlock("div",g2,s.toDisplayString(u.value),1)):s.createCommentVNode("",!0),s.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:F,disabled:!y.value},[s.createVNode(s.unref(Y.Plus),{class:"h-4 w-4"}),s.createTextVNode(" "+s.toDisplayString(e.addButtonText),1)],8,y2)]))}}),[["__scopeId","data-v-cfbcfed8"]]),mi="__vs_form_monaco_loader__",wr="__vs_form_monaco_script_loader__",gi="__vs_form_monaco_editor_loader__",Pa=s.defineComponent({__name:"vs-input-monaco",props:s.mergeModels({syntax:{default:"xml"},theme:{default:"vs-light"},height:{default:280},minimap:{type:Boolean,default:!1},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:e}){const t=n,r=s.useModel(n,"modelValue"),o=s.ref(null),i=s.computed(()=>typeof t.height=="number"?`${t.height}px`:t.height||"280px");let l=null,a=null,c=!1;const d=()=>{if(a)return Promise.resolve(a);if(typeof window>"u")return Promise.resolve(null);const m=window;if(m.monaco?.editor?.create)return a=m.monaco,Promise.resolve(a);if(m[mi])return m[mi];const y=(async()=>{const b=S=>{if(Array.from(document.styleSheets||[]).some(T=>T?.href?.includes(S)))return;const F=document.createElement("link");F.rel="stylesheet",F.href=S,document.head.appendChild(F)},w=S=>{if(m[wr]?.[S])return m[wr][S];m[wr]||={};const N=Array.from(document.scripts).find(F=>F.src===S);return N?(m[wr][S]=new Promise((F,T)=>{const E=N.readyState;if(N.dataset.loaded==="true"||E==="loaded"||E==="complete"){F();return}N.addEventListener("load",()=>{N.dataset.loaded="true",F()},{once:!0}),N.addEventListener("error",_=>T(_),{once:!0})}),m[wr][S]):(m[wr][S]=new Promise((F,T)=>{const E=document.createElement("script");E.src=S,E.async=!0,E.onload=()=>{E.dataset.loaded="true",F()},E.onerror=_=>T(_),document.body.appendChild(E)}),m[wr][S])},v="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return b(`${v}/editor/editor.main.min.css`),await w(`${v}/loader.min.js`),m[gi]||(m[gi]=new Promise((S,N)=>{window.require.config({paths:{vs:v}}),window.require(["vs/editor/editor.main"],()=>{a=window.monaco,m.monaco=a,S(a)},F=>N(F))}).catch(S=>{throw delete m[gi],S})),m[gi]})().catch(b=>{throw delete m[mi],b});return m[mi]=y,y},u=()=>{!o.value||!a||(l&&(l.dispose(),l=null),l=a.editor.create(o.value,{value:r.value||"",language:t.syntax,theme:t.theme,automaticLayout:!0,minimap:{enabled:!!t.minimap},readOnly:!!t.disabled}),l.onDidChangeModelContent(()=>{c||(r.value=l.getValue())}))},f=()=>{l?.focus()},p=()=>l,h=()=>a;return s.watch(()=>r.value,m=>{if(!l)return;const g=l.getValue();m!==g&&(c=!0,l.setValue(m||""),c=!1)}),s.watch(()=>t.syntax,m=>{!l||!a||a.editor.setModelLanguage(l.getModel(),m||"xml")}),s.watch(()=>t.theme,m=>{a&&a.editor.setTheme(m||"vs-light")}),s.watch(()=>t.disabled,m=>{l&&l.updateOptions({readOnly:!!m})}),s.watch(()=>t.minimap,m=>{l&&l.updateOptions({minimap:{enabled:!!m}})}),s.onMounted(async()=>{try{const m=await d();if(!m||!m.editor)return;a=m,u()}catch(m){console.error("Failed to load Monaco editor",m)}}),s.onBeforeUnmount(()=>{l&&(l.dispose(),l=null)}),e({focus:f,getEditor:p,getMonaco:h}),(m,g)=>(s.openBlock(),s.createElementBlock("div",{class:"w-full",style:s.normalizeStyle({height:i.value})},[s.createElementVNode("div",{ref_key:"editorContainer",ref:o,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),_f={VsInputText:Yr,VsInputRadio:xa,VsInputInlineSelect:li,"vs-input-text":Yr,"vs-input-password":Fb,"vs-input-textarea":sf,"vs-input-richtext":lf,"vs-input-mask":Gs,"vs-input-number":Du,"vs-input-radio":xa,"vs-input-select":Va,"vs-input-inline-select":li,"inline-select":li,"vs-input-switcher":ya,"vs-input-static":ba,"vs-input-container":nf,"vs-input-date":ju,"vs-input-checkbox":Lu,"vs-input-file":Ju,"vs-input-file2":oi,file2:oi,File2:oi,"vs-input-file64":si,file64:si,File64:si,"vs-input-html":ba,"vs-input-email":ka,"vs-input-tel":wa,"vs-input-datatable":af,"vs-input-map":bf,"vs-input-file-list":Qu,"vs-input-tags":kf,"vs-input-slug":wf,"vs-input-codegen":xf,"vs-input-key-value":vf,"vs-input-text[]":Cf,"vs-input-range":Ef,"vs-input-color":Sf,"vs-input-native-select":Va,VsInputArraySelect:hi,"vs-input-array":Mf,"vs-input-array-select":hi,"array-select":hi,"vs-input-address":Af,"vs-input-datalist":l2,"vs-input-dataform":b2,"vs-input-monaco":Pa},k2=s.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(n){const e=n,t=s.inject("values");function r(i,l){const a=l?.result||l?.message||l?.error||l?.detail;return i.status===400&&typeof a=="string"&&a.trim().toLowerCase()==="not found"?"Дані не знайдено.":i.status===500?"Помилка на сервері.":typeof a=="string"&&a.trim()?a:"При спробі завантажити дані виникла помилка."}async function o(){try{if(!e.api)return;const i=e.api.replace("{{value}}",e.value),l=await fetch(i);if(!l.ok){let c=null;try{c=await l.json()}catch{try{c=await l.text()}catch{c=null}}ke.notify({type:"warning",title:"Validation",message:r(l,c)});return}const a=await l.json();if(!e.set||!t)return;for(const[c,d]of Object.entries(e.set))t.value[c]=a.result[d]}catch(i){console.error(e.error,i)}}return(i,l)=>(s.openBlock(),s.createElementBlock("button",{onClick:o,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},s.toDisplayString(i.button),1))}}),w2={class:"flex flex-col gap-1 w-full"},x2={class:"w-full"},v2=["disabled"],C2=["innerHTML"],S2=2e3,E2=10,Tf=s.defineComponent({__name:"vs-compact-form-layout",props:s.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:s.mergeModels(["value-selected"],["update:modelValue"]),setup(n,{emit:e}){const t=n,r=s.useModel(n,"modelValue"),o=e,i=s.computed(()=>Ob[`${t.layout}`]),l=["label","placeholder","info","description","text","html"],a=s.ref(U()),c=s.computed(()=>_(t.item,a.value)),d=s.computed(()=>{const V={...c.value??{}},z=t.item?.name;return z&&f?.value?.[z]&&Object.assign(V,f.value[z]),V.__locale=a.value,V}),u=s.computed(()=>_f?.[`vs-input-${t.item.type}`]),f=s.inject("field-props"),p=s.computed(()=>{const V=s.unref(u);if(!V)return new Set;const z=V.props??V.__vccOpts?.props;if(!z)return new Set;const oe=Array.isArray(z)?z:Object.keys(z);return new Set(oe)}),m=[...["min","max","step"],"api","set","mask","layers"],g=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 y(V){const z={};Object.entries(V).forEach(([K,G])=>{g.has(K)||K.includes(":")||G!==void 0&&(z[K]=G)});const oe=V.props;return oe&&typeof oe=="object"&&!Array.isArray(oe)&&Object.entries(oe).forEach(([K,G])=>{G!==void 0&&(z[K]=G)}),z}const b=s.computed(()=>{const V={...c.value??{}},z=t.item?.name;z&&f?.value?.[z]&&Object.assign(V,f.value[z]);const oe=p.value;let K;return oe.size?K=Object.fromEntries(Object.entries(V).filter(([G])=>oe.has(G))):K={...V},Object.assign(K,y(V)),m.forEach(G=>{const X=V[G];X!=null&&(K[G]=X)}),K}),w=V=>{const z=typeof V=="object"&&V!==null?V:{value:V};o("value-selected",{...z,name:z.name??t.item?.name})},v=/{{\s*([^}]+?)\s*}}/g,S=s.inject("values"),N=s.ref(!1),F=s.computed(()=>{const V=t.item?.api,z=t.item?.type?.toLowerCase();return typeof V=="string"&&V.trim().length>0&&(z==="text"||z==="mask")});function T(V,z){if(!(V==null||!z))return z.split(".").reduce((oe,K)=>oe?.[K.trim()],V)}async function E(){const V=String(r.value??"").trim();if(!V)return;const z=(t.item?.api??"").trim();if(!z)return;const oe=z.replace(v,(K,G)=>G.trim()==="value"?encodeURIComponent(V):"");N.value=!0;try{let K=await fetch(oe),G=0;for(;K.status===202&&G<E2;)G+=1,await new Promise(O=>{setTimeout(O,S2)}),K=await fetch(oe);if(K.status===202){ke.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!K.ok){ke.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const X=await K.json(),ce=X?.result!==void 0?X.result:X,j=t.item?.set;if(!j||!S?.value)return;const L=t.item?.name;Object.entries(j).forEach(([O,ne])=>{if(!O)return;let ae=ne;L&&ae.startsWith(`${L}.`)&&(ae=ae.slice(L.length+1));const re=T(ce,ae);S.value[O]=re??null})}catch(K){console.error("API lookup error:",K),ke.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{N.value=!1}}s.onMounted(()=>{a.value=U(),window.addEventListener("storage",Z)}),s.onUnmounted(()=>{window.removeEventListener("storage",Z)});function _(V,z){if(!V)return{};const oe={...V};return l.forEach(K=>{const G=I(V,K,z);G!=null&&(oe[K]=G)}),Array.isArray(V.options)&&(oe.options=V.options.map(K=>A(K,z))),oe}function A(V,z){if(!V)return V;const oe={...V},K=I(V,"label",z),G=I(V,"text",z);return K!=null&&(oe.label=K),G!=null?oe.text=G:K!=null&&(oe.text=K),oe}function I(V,z,oe){const K=`${z}:${oe}`;if(V?.[K]!=null)return V[K];if(z==="label"&&V?.[oe]!=null)return V[oe];if(V?.[z]!=null)return V[z];if(z==="label"){if(V?.ua!=null)return V.ua;if(V?.en!=null)return V.en}if(z==="text"||z==="html"){if(V?.ua!=null)return V.ua;if(V?.en!=null)return V.en}return null}function U(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function Z(){a.value=U()}return(V,z)=>(s.openBlock(),s.createBlock(s.resolveDynamicComponent(i.value),{ua:d.value.ua,error:t.error||"",item:d.value,columns:t.columns,label:d.value.label},{default:s.withCtx(()=>[s.createElementVNode("div",{class:s.normalizeClass(["flex w-full",`${t.item.type}-component`])},[s.createElementVNode("div",w2,[s.createElementVNode("div",{class:s.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":F.value}])},[s.createElementVNode("div",x2,[(s.openBlock(),s.createBlock(s.resolveDynamicComponent(u.value),s.mergeProps(b.value,{modelValue:r.value,"onUpdate:modelValue":z[0]||(z[0]=oe=>r.value=oe),onValueSelected:w}),null,16,["modelValue"]))]),F.value?(s.openBlock(),s.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:N.value||!r.value?.toString().trim(),onClick:E},[N.value?(s.openBlock(),s.createBlock(s.unref(Y.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(s.openBlock(),s.createBlock(s.unref(Y.Search),{key:0,class:"h-4 w-4"}))],8,v2)):s.createCommentVNode("",!0)],2),d.value.description&&t.layout!=="settings"?(s.openBlock(),s.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:d.value.description},null,8,C2)):s.createCommentVNode("",!0)]),d.value.behavior?.api&&d.value.behavior?.button?(s.openBlock(),s.createBlock(k2,s.mergeProps({key:0},d.value.behavior,{value:r.value}),null,16,["value"])):s.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),M2={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},A2={class:"vs-compact-form-navigation__rail mt-[6px]"},_2=["onClick"],T2=Be(s.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(n,{expose:e}){const t=n,r=s.ref([]),o=s.ref(""),i=s.ref(""),l=s.computed(()=>!!t.enabled),a=s.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),c=s.computed(()=>{const I=t.width;if(I==null)return{};const U=typeof I=="number"?`${I}px`:`${I}`;return{width:U,minWidth:U}});let d=null,u=0,f=0,p=null,h=null,m=null;const g=()=>_(),y=()=>w();s.watch(()=>t.target,async I=>{if(F(),!I){p=null,r.value=[],o.value="";return}p=I,l.value&&(await s.nextTick(),N(I),w())},{immediate:!0}),s.watch(()=>t.scrollContainer,I=>{if(!l.value){h=I??null;return}b(I??null),s.nextTick(()=>w())},{immediate:!0}),s.onMounted(()=>{t.scrollContainer||b(null),w()}),s.onBeforeUnmount(()=>{F(),b(null,!0),p=null,typeof window<"u"&&(u&&window.cancelAnimationFrame(u),f&&window.cancelAnimationFrame(f))});function b(I,U=!1){if(m&&(m(),m=null),U){h=null;return}if(h=I??null,typeof window>"u")return;const Z=I??window,V=window;Z.addEventListener("scroll",g,{passive:!0}),V.addEventListener("resize",y),m=()=>{Z.removeEventListener("scroll",g),V.removeEventListener("resize",y)}}function w(){if(!l.value||!p)return;u&&typeof window<"u"&&window.cancelAnimationFrame(u);const I=()=>{v(),u=0};typeof window>"u"?I():u=window.requestAnimationFrame(I)}function v(){if(!l.value||!p)return;const I=Array.from(p.querySelectorAll("h1, h2")),U=new Set,Z=[];I.forEach((V,z)=>{const oe=V.textContent?.trim()??"";if(!oe)return;let K=(V.getAttribute("id")??"").trim();K||(K=S(oe)||`heading-${z+1}`);let G=K,X=1;for(;U.has(G);)G=`${K}-${X+=1}`;V.id!==G&&Object.assign(V,{id:G}),U.add(G),Z.push({id:G,text:oe,level:V.tagName.toLowerCase()==="h1"?1:2})}),r.value=Z,Z.length||(o.value=""),E()}function S(I){return I.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function N(I){!I||!l.value||typeof MutationObserver>"u"||(F(),d=new MutationObserver(()=>w()),d.observe(I,{childList:!0,subtree:!0}))}function F(){d&&(d.disconnect(),d=null)}function T(I){const U=h;if(!U)return typeof window>"u"?I.offsetTop:I.getBoundingClientRect().top+window.scrollY;const Z=I.getBoundingClientRect(),V=U.getBoundingClientRect();return Z.top-V.top+U.scrollTop}function E(){if(!l.value||!r.value.length)return;const I=h,U=(I?I.scrollTop:null)||(typeof window<"u"?window.scrollY:0),Z=(I?I.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),V=U+Z;let z=null;for(let K=0;K<r.value.length;K+=1){const G=r.value[K],X=document.getElementById(G.id);if(X){const ce=T(X);ce+X.offsetHeight>U&&ce<V&&(z=G.id)}}!z&&i.value&&(z=i.value),z&&(i.value=z);const oe=I?I.scrollHeight-I.clientHeight:document.documentElement.scrollHeight-window.innerHeight;U+5>=oe&&(z=r.value[r.value.length-1].id),z&&(o.value=z)}function _(){l.value&&(f&&window.cancelAnimationFrame(f),f=window.requestAnimationFrame(()=>{E(),f=0}))}function A(I){if(!l.value)return;const U=document.getElementById(I);if(!U)return;const Z=h,V=Math.max(0,T(U));Z?Z.scrollTo({top:V,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:V,behavior:"smooth"})}return e({refresh:w}),(I,U)=>l.value&&r.value.length?(s.openBlock(),s.createElementBlock("div",{key:0,class:s.normalizeClass(a.value),style:s.normalizeStyle(c.value)},[s.createElementVNode("h2",M2,s.toDisplayString(I.title),1),s.createElementVNode("div",A2,[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(r.value,Z=>(s.openBlock(),s.createElementBlock("div",{key:Z.id,class:s.normalizeClass(["vs-compact-form-navigation__item relative",Z.level===2?"vs-compact-form-navigation__item--nested":"",Z.id===o.value?"vs-compact-form-navigation__item--active":""])},[s.createElementVNode("button",{type:"button",onClick:V=>A(Z.id),class:s.normalizeClass(["vs-compact-form-navigation__button flex gap-x-3 py-[6px] pr-3 text-sm duration-200 hover:text-gray-800",Z.level===2?"pl-[15px]":"pl-[18px]",Z.id===o.value?"text-gray-800":"text-gray-500"])},[s.createElementVNode("span",null,s.toDisplayString(Z.text),1)],10,_2)],2))),128))])],6)):s.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),qt={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:n=>`Мінімальна довжина — ${n} символів`,maxlength:n=>`Максимальна довжина — ${n} символів`,min:n=>`Значення має бути не менше ${n}`,max:n=>`Значення має бути не більше ${n}`},B2=new Set(["select","inline-select","array-select"]),N2=(n,e)=>typeof n=="string"?n.trim()?!1:qt.required:Array.isArray(n)?n.map(r=>typeof r=="string"?r.trim():r).filter(r=>r!=null&&r!=="").length?!1:qt.required:typeof n=="number"?Number?.isNaN(n)?qt?.required:!1:typeof n=="boolean"?e&&B2.has(e)||n?!1:qt.required:n?!1:qt.required,D2=n=>{const e=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;return n?e.test(n)?!1:qt.email:!1},V2=(n,e)=>{if(!n)return!1;const t=String(n).trim();if(!/^\+[1-9]\d{1,14}$/.test(t))return qt.tel;const i=(typeof e?.digits=="number"&&Number.isFinite(e.digits)&&e.digits>0?e.digits:qn(_n))||qn(_n);return t.length-1!==i?qt.tel:!1},Bf=n=>n==null?0:typeof n=="string"?n.trim().length:Array.isArray(n)?n.length:typeof n=="number"?n.toString().length:String(n).length,$2=(n,e)=>{if(n==null)return!1;const t=Number(e?.value??e?.length);return Number.isFinite(t)&&Bf(n)<t?e?.message||qt.minlength(t):!1},L2=(n,e)=>{if(n==null||n==="")return!1;const t=Number(e?.value??e?.length);return Number.isFinite(t)&&Bf(n)>t?e?.message||qt.maxlength(t):!1},yi=n=>{if(typeof n=="number")return n;if(typeof n=="string"){const e=n.trim().replace(",",".");return e?Number(e):Number.NaN}return Number(n)},I2=(n,e)=>{if(n==null||n==="")return!1;const t=Number(e?.value);if(!Number.isFinite(t))return!1;const r=yi(n);return Number.isFinite(r)&&r<t?e?.message||qt.min(t):!1},O2=(n,e)=>{if(n==null||n==="")return!1;const t=Number(e?.value);if(!Number.isFinite(t))return!1;const r=yi(n);return Number.isFinite(r)&&r>t?e?.message||qt.max(t):!1},R2=(n,e,t)=>{if(n==null||n==="")return!1;const r=e?.field;if(!r||!t)return!1;const o=t[r];if(o==null||o==="")return!1;const i=yi(n),l=yi(o);return!Number.isFinite(i)||!Number.isFinite(l)?!1:i>l?e?.message||`Значення має бути не більше ${l}`:!1},F2=(n,e)=>{const t=e.pattern??e.regexp,r=typeof t=="string"?new RegExp(t):t;if(Array.isArray(n)){const o=n.filter(Boolean);return o.length===0||o.every(i=>r.test(i))?!1:e.message}return!r.test(n)&&n?e.message:!1},P2=(n,e)=>!1,z2=(n,e,t,r)=>{switch(typeof e=="string"?e:e.type){case"required":return N2(n,r);case"email":return D2(n);case"tel":return V2(n,typeof e=="object"?e:void 0);case"regexp":return F2(n,e);case"minlength":return $2(n,e);case"maxlength":return L2(n,e);case"min":return I2(n,e);case"max":return O2(n,e);case"maxField":return R2(n,e,t);case"custom":return P2();default:return!1}},H2={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",file64:"file64",dropzone:"file",inlineselect:"inline-select"};function Nf(n){const e=n?.toLowerCase();return H2[e]||e}function za(n,e=!1){if(Array.isArray(n)){const r=[];return n.forEach(o=>{const i={...o};if(i.name=(o.name||o.id||o.key||"").toString(),i.type=Nf(o.type),i.label=o.label||o.ua,i.rules=o.rules||o.validators,i.type==="email"&&!i.rules&&(i.rules=["email"]),i.type==="tel"&&!i.rules){const l=i.mask||_n,a=qn(l)||qn(_n);i.rules=[{type:"tel",digits:a}]}!o.api&&o.data&&(i.api=`/api/suggest/${o.data}`),i.disabled=i.disabled??e,Array.isArray(i.schema)&&(i.schema=za(i.schema,i.disabled)),r.push(i)}),r}const t=[];return Object.entries(n).forEach(r=>{const o={name:r[0],...r[1],type:Nf(r[1].type),label:r[1].label||r[1].ua,rules:r[1].rules||r[1].validators,disabled:r[1].disabled??e};if(o.type==="email"&&!o.rules&&(o.rules=["email"]),o.type==="tel"&&!o.rules){const i=o.mask||_n,l=qn(i)||qn(_n);o.rules=[{type:"tel",digits:l}]}r[1].type?.includes("list")&&(o.multiple=!0),!o.api&&r[1].data&&(o.api=`/api/suggest/${r[1].data}`),Array.isArray(o.schema)&&(o.schema=za(o.schema,o.disabled)),t.push(o)}),t}function j2(n,e,t=!1){const r=s.computed(()=>za((Array.isArray(e),e),typeof t=="boolean"?t:t.value)),o=s.ref({});function i(p){return ef(n?.value,p?.conditions)}const l=new Set(["maxField"]);function a(p){return typeof p.maxField=="string"&&p.maxField?!0:(p.rules||[]).some(h=>{const m=typeof h=="string"?h:h.type;return m?l.has(m):!1})}function c(p){const h=[],m=Number(p?.minlength),g=Number(p?.maxlength),y=Number(p?.min),b=Number(p?.max);!Number.isNaN(m)&&Number.isFinite(m)&&h.push({type:"minlength",value:m}),!Number.isNaN(g)&&Number.isFinite(g)&&h.push({type:"maxlength",value:g}),!Number.isNaN(y)&&Number.isFinite(y)&&h.push({type:"min",value:y}),!Number.isNaN(b)&&Number.isFinite(b)&&h.push({type:"max",value:b}),typeof p?.maxField=="string"&&p.maxField&&h.push({type:"maxField",field:p.maxField,message:p.maxFieldMessage});const w=[...h,...p.rules||[]];if(!w.length)return;if(!i(p)){delete o.value[p.name];return}let v=!1,S=null;w.forEach(N=>{const F=z2(n.value[p.name],N,n.value,p.type);F&&(v=!0,!S&&typeof F=="string"&&(S=F))}),v&&S?o.value[p.name]=S:delete o.value[p.name]}const d=(p=r.value,h=!0)=>(p.forEach(m=>{c(m),m.schema&&d(m.schema,!1)}),h&&Object.values(o.value).some(Boolean)?o.value:null);s.watch(n,()=>{const p=[],h=m=>{m.forEach(g=>{a(g)&&p.push(g),g.schema&&h(g.schema)})};h(r.value),p.forEach(c)},{deep:!0});const u=s.computed(()=>r.value?.filter(p=>p.hidden!==!0&&i(p)));return{errors:o,validate:d,reset:()=>{n.value={},o.value={}},visibleSchema:u}}const U2={class:"flex w-full h-full min-h-0 gap-6"},W2={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},Pt=s.defineComponent({__name:"vs-compact-form",props:s.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:s.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(n,{expose:e,emit:t}){const r=t,o=n,i=s.computed(()=>!!o.formId||o.allowIdField),l=s.useModel(n,"form"),a=s.useModel(n,"modelValue"),c=s.useModel(n,"values"),d=s.computed({get:()=>c.value??a.value,set:K=>{a.value=K,c.value=K}}),{errors:u,validate:f,reset:p,visibleSchema:h}=j2(d,o.schema,s.toRef(o,"disabled")),m=s.ref(null),g=s.ref(null),y=s.ref({}),b=s.computed(()=>o.navigation),w=s.computed(()=>o.navWidth),v=s.computed(()=>o.style?.columns),S=Object.freeze({container:12,label:3}),N=s.computed(()=>o.columns??v.value??S),F=s.computed(()=>o.columns!=null||v.value!=null),T=s.computed(()=>F.value?"horizontal":o.layout),E=K=>K?.columns?"horizontal":T.value,_=K=>K?.columns??N.value,A=s.computed(()=>{const K={},G=X=>{if(!X)return;(Array.isArray(X)?X.map((j,L)=>({key:String(L),entry:j})):typeof X=="object"?Object.entries(X).map(([j,L])=>({key:j,entry:L})):[]).forEach(({key:j,entry:L})=>{if(!L||typeof L!="object")return;const O=L.name?String(L.name):j;O&&(K[O]={...L,name:O}),Array.isArray(L.schema)&&G(L.schema)})};return G(o.schema),K}),I=()=>{!i.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),f(),r("handle-submit",d.value)},U=K=>{r("value-selected",K)};e({validate:f,reset:p,errors:u}),s.onMounted(()=>{l.value={value:d.value,errors:u.value,reset:p,validate:f,formId:o.formId}});function Z(K,G){if(K===G)return!0;if(typeof K!="object"||typeof G!="object"||!K||!G)return!1;const X=Object.keys(K),ce=Object.keys(G);return X.length!==ce.length?!1:X.every(j=>K[j]===G[j])}function V(K){return Array.isArray(K)?[...K]:K&&typeof K=="object"?{...K}:K}function z(K){Array.isArray(K)&&K.forEach(G=>{if(!G)return;const X=G.name,ce=G.default!==void 0;X&&ce&&d.value[X]===void 0&&(d.value[X]=V(G.default)),Array.isArray(G.schema)&&z(G.schema)})}return s.watch(h,K=>{z(K)},{immediate:!0,deep:!0}),s.provide("form",l),s.provide("values",d),s.inject("form-root-values",null)||s.provide("form-root-values",d),s.provide("field-props",y),s.provide("schema-by-name",A),(K,G)=>(s.openBlock(),s.createElementBlock("div",U2,[s.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:g},[s.createElementVNode("form",{ref_key:"formRef",ref:m,onSubmit:s.withModifiers(I,["prevent"]),class:s.normalizeClass(["grid grid-cols-12 p-1",T.value==="default"?"gap-6":"gap-4"])},[(s.openBlock(!0),s.createElementBlock(s.Fragment,null,s.renderList(s.unref(h),(X,ce)=>(s.openBlock(),s.createElementBlock("div",{key:X.name,class:s.normalizeClass(E(X)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${X.col||12}`)},[s.createVNode(Tf,{style:s.normalizeStyle(K.style),item:X,layout:E(X),columns:_(X),"model-value":d.value[X.name],"onUpdate:modelValue":j=>{if(X.name==="id"&&!i.value)return;const L=d.value[X.name];Z(L,j)||(d.value[X.name]=j)},error:s.unref(u)[X.name],onValueSelected:U},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),E(X)==="settings"&&ce+1!==s.unref(h).length?(s.openBlock(),s.createElementBlock("div",W2)):s.createCommentVNode("",!0)],2))),128))],34)],512),s.createVNode(T2,{target:m.value,"scroll-container":g.value,enabled:b.value,width:w.value},null,8,["target","scroll-container","enabled","width"])]))}}),K2={class:"relative"},q2={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},G2={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"},J2={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Y2={class:"font-medium text-gray-800 dark:text-[#ffffff]"},X2={class:"p-4 mim-h-0 h-full overflow-auto"},Df=s.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(n,{emit:e}){const t=n,r=e,o=s.ref(t.schema),i=s.ref(t.defaultValue?JSON.parse(JSON.stringify(t.defaultValue)):{}),l=s.ref({}),a=s.ref(t.token||""),c=s.ref(t.token||""),d=s.ref(t.mode),u=()=>{const y=t.method?.trim().toUpperCase();return y==="GET"||y==="POST"||y==="PUT"?y:d.value==="add"?"POST":"PUT"},f=()=>{ke.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},p=y=>{const b={};y.id!==void 0&&y.id!==null&&(b.id=y.id,c.value=y.id.toString()),y.obj&&typeof y.obj=="object"&&Object.assign(b,y.obj),Object.keys(b).length&&(i.value={...i.value,...b})},h=async y=>{if(console.log(y),y.ok){await y.json().catch(()=>({})),f(),r("save",i.value);return}const b=await y.json().catch(()=>({})),w=b.message||b.error;if(y.status===400){ke.notify({type:"warning",title:"Помилка валідації",message:w||"Некоректні дані (400)"});return}if(y.status===403){ke.notify({type:"warning",title:"Доступ заборонено",message:w||"Доступ заборонено (403)"});return}if(y.status===500){ke.notify({type:"error",title:"Серверна помилка",message:w||"Виникла помилка на сервері (500)"});return}ke.notify({type:"error",title:"Помилка",message:w||`Статус: ${y.status}`})};async function m(){const y=l.value.validate();if(y){ke.notify({type:"warning",title:"Помилка валідації",message:Object.entries(y).map(([w,v])=>`${w}: ${v}`).join(`
@@ -193,7 +193,7 @@ ${t}
193
193
  `):"",markdownTokenizer:{name:"orderedList",level:"block",start:()=>-1,tokenize:(n,e,t)=>{var r,o;const i=n.split(`
194
194
  `),[l,a]=AI(i);if(l.length===0)return;const c=Ay(l,l[0].indent,t);if(c.length===0)return;const d=((r=l[0])==null?void 0:r.number)||1,u=(o=l[0])==null?void 0:o.type;return{type:"list",ordered:!0,start:d,typeMarker:u,items:c,raw:i.slice(0,a).join(`
195
195
  `)}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleOrderedList:()=>({commands:n,chain:e})=>this.options.keepAttributes?e().toggleList(this.name,this.options.itemTypeName,this.options.keepMarks).updateAttributes(NI,this.editor.getAttributes(_y)).run():n.toggleList(this.name,this.options.itemTypeName,this.options.keepMarks)}},addKeyboardShortcuts(){return{"Mod-Shift-7":()=>this.editor.commands.toggleOrderedList()}},addProseMirrorPlugins(){return[new Ue({props:{handlePaste:(n,e)=>{var t,r;const o=(t=e.clipboardData)==null?void 0:t.getData("text/html");if(o?.trim())return!1;const i=(r=e.clipboardData)==null?void 0:r.getData("text/plain");if(!i)return!1;const l=TI(i);if(!l)return!1;try{const a=n.state.schema.nodeFromJSON(l),c=n.state.tr.replaceSelectionWith(a);return n.dispatch(c),!0}catch{return!1}}}})]},addInputRules(){const n=(t,r)=>(!r.attrs.type||r.attrs.type==="1")&&r.childCount+r.attrs.start===+t[1];let e=zr({find:Ty,type:this.type,getAttributes:t=>({start:+t[1]}),joinPredicate:n});return(this.options.keepMarks||this.options.keepAttributes)&&(e=zr({find:Ty,type:this.type,keepMarks:this.options.keepMarks,keepAttributes:this.options.keepAttributes,getAttributes:t=>({start:+t[1],...this.editor.getAttributes(_y)}),joinPredicate:n,editor:this.editor})),[e]}}),DI=/^\s*(\[([( |x])?\])\s$/,VI="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",$I=(n,e,t)=>{var r;return((r=t?.checkboxLabel)==null?void 0:r.call(t,n,e))||`Task item checkbox for ${n.textContent||"empty task item"}`},LI=ut.create({name:"taskItem",addOptions(){return{nested:!1,HTMLAttributes:{},taskListTypeName:"taskList",a11y:void 0}},content(){return this.options.nested?"paragraph block*":"paragraph+"},defining:!0,addAttributes(){return{checked:{default:!1,keepOnSplit:!1,parseHTML:n=>{const e=n.getAttribute("data-checked");return e===""||e==="true"},renderHTML:n=>({"data-checked":n.checked})}}},parseHTML(){return[{tag:`li[data-type="${this.name}"]`,priority:51,contentElement:n=>{var e;return(e=n.querySelector("div"))!=null?e:n}}]},renderHTML({node:n,HTMLAttributes:e}){return["li",ze(this.options.HTMLAttributes,e,{"data-type":this.name}),["label",["input",{type:"checkbox",checked:n.attrs.checked?"checked":null}],["span"]],["div",0]]},parseMarkdown:(n,e)=>{const t=[];if(n.tokens&&n.tokens.length>0?t.push(e.createNode("paragraph",{},e.parseInline(n.tokens))):n.text?t.push(e.createNode("paragraph",{},[e.createNode("text",{text:n.text})])):t.push(e.createNode("paragraph",{},[])),n.nestedTokens&&n.nestedTokens.length>0){const r=e.parseChildren(n.nestedTokens);t.push(...r)}return e.createNode("taskItem",{checked:n.checked||!1},t)},renderMarkdown:(n,e)=>{var t;const o=`- [${(t=n.attrs)!=null&&t.checked?"x":" "}] `;return sl(n,e,o)},addExtensions(){return this.options.nested?[yy(this.name,[this.options.taskListTypeName])]:[]},addKeyboardShortcuts(){const n={Enter:()=>this.editor.commands.splitListItem(this.name),"Shift-Tab":()=>this.editor.commands.liftListItem(this.name)};return this.options.nested?{...n,Tab:()=>this.editor.commands.sinkListItem(this.name)}:n},addNodeView(){return({node:n,HTMLAttributes:e,getPos:t,editor:r})=>{const o=document.createElement("li"),i=document.createElement("label"),l=document.createElement("span"),a=document.createElement("input"),c=document.createElement("div");l.style.cssText=VI;const d=f=>{const p=$I(f,f.attrs.checked,this.options.a11y);a.setAttribute("aria-label",p),l.textContent=p};d(n),i.contentEditable="false",a.type="checkbox",a.addEventListener("mousedown",f=>f.preventDefault()),a.addEventListener("change",f=>{if(!r.isEditable&&!this.options.onReadOnlyChecked){a.checked=!a.checked;return}const{checked:p}=f.target;r.isEditable&&typeof t=="function"&&r.chain().focus(void 0,{scrollIntoView:!1}).command(({tr:h})=>{const m=t();if(typeof m!="number")return!1;const g=h.doc.nodeAt(m);return h.setNodeMarkup(m,void 0,{...g?.attrs,checked:p}),!0}).run(),!r.isEditable&&this.options.onReadOnlyChecked&&(this.options.onReadOnlyChecked(n,p)||(a.checked=!a.checked))}),Object.entries(this.options.HTMLAttributes).forEach(([f,p])=>{o.setAttribute(f,p)}),o.dataset.checked=n.attrs.checked,a.checked=n.attrs.checked,i.append(a,l),o.append(i,c),Object.entries(e).forEach(([f,p])=>{o.setAttribute(f,p)});let u=new Set(Object.keys(e));return{dom:o,contentDOM:c,update:f=>{if(f.type!==this.type)return!1;o.dataset.checked=f.attrs.checked,a.checked=f.attrs.checked,d(f);const p=r.extensionManager.attributes,h=Ir(f,p),m=new Set(Object.keys(h)),g=this.options.HTMLAttributes;return u.forEach(y=>{m.has(y)||(y in g?o.setAttribute(y,g[y]):o.removeAttribute(y))}),Object.entries(h).forEach(([y,b])=>{b==null?y in g?o.setAttribute(y,g[y]):o.removeAttribute(y):o.setAttribute(y,b)}),u=m,!0}}}},addInputRules(){return[zr({find:DI,type:this.type,getAttributes:n=>({checked:n[n.length-1]==="x"})})]}}),II=ut.create({name:"taskList",addOptions(){return{itemTypeName:"taskItem",HTMLAttributes:{}}},group:"block list",content(){return`${this.options.itemTypeName}+`},parseHTML(){return[{tag:`ul[data-type="${this.name}"]`,priority:51}]},renderHTML({HTMLAttributes:n}){return["ul",ze(this.options.HTMLAttributes,n,{"data-type":this.name}),0]},parseMarkdown:(n,e)=>e.createNode("taskList",{},e.parseChildren(n.items||[])),renderMarkdown:(n,e)=>n.content?e.renderChildren(n.content,`
196
- `):"",markdownTokenizer:{name:"taskList",level:"block",start(n){var e;const t=(e=n.match(/^\s*[-+*]\s+\[([ xX])\]\s+/))==null?void 0:e.index;return t!==void 0?t:-1},tokenize(n,e,t){const r=i=>{const l=ol(i,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:a=>({indentLevel:a[1].length,mainContent:a[4],checked:a[3].toLowerCase()==="x"}),createToken:(a,c)=>({type:"taskItem",raw:"",mainContent:a.mainContent,indentLevel:a.indentLevel,checked:a.checked,text:a.mainContent,tokens:t.inlineTokens(a.mainContent),nestedTokens:c}),customNestedParser:r},t);if(l){const a={type:"taskList",raw:l.raw,items:l.items},c=i.slice(l.raw.length);return c.trim()?[a,...t.blockTokens(c)]:[a]}return t.blockTokens(i)},o=ol(n,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:i=>({indentLevel:i[1].length,mainContent:i[4],checked:i[3].toLowerCase()==="x"}),createToken:(i,l)=>({type:"taskItem",raw:"",mainContent:i.mainContent,indentLevel:i.indentLevel,checked:i.checked,text:i.mainContent,tokens:t.inlineTokens(i.mainContent),nestedTokens:l}),customNestedParser:r},t);if(o)return{type:"taskList",raw:o.raw,items:o.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:n})=>n.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});He.create({name:"listKit",addExtensions(){const n=[];return this.options.bulletList!==!1&&n.push(gy.configure(this.options.bulletList)),this.options.listItem!==!1&&n.push(xy.configure(this.options.listItem)),this.options.listKeymap!==!1&&n.push(My.configure(this.options.listKeymap)),this.options.orderedList!==!1&&n.push(Ny.configure(this.options.orderedList)),this.options.taskItem!==!1&&n.push(LI.configure(this.options.taskItem)),this.options.taskList!==!1&&n.push(II.configure(this.options.taskList)),n}});var Jl="&nbsp;",Zd=" ",Qd=ut.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:n}){return["p",ze(this.options.HTMLAttributes,n),0]},parseMarkdown:(n,e)=>{const t=n.tokens||[];if(t.length===1&&t[0].type==="image")return e.parseChildren([t[0]]);const r=e.parseInline(t);return t.length===1&&t[0].type==="text"&&(t[0].raw===Jl||t[0].text===Jl||t[0].raw===Zd||t[0].text===Zd)&&r.length===1&&r[0].type==="text"&&(r[0].text===Jl||r[0].text===Zd)?e.createNode("paragraph",void 0,[]):e.createNode("paragraph",void 0,r)},renderMarkdown:(n,e,t)=>{var r,o;if(!n)return"";const i=Array.isArray(n.content)?n.content:[];if(i.length===0){const l=Array.isArray((r=t?.previousNode)==null?void 0:r.content)?t.previousNode.content:[];return((o=t?.previousNode)==null?void 0:o.type)==="paragraph"&&l.length===0?Jl:""}return e.renderChildren(i)},addCommands(){return{setParagraph:()=>({commands:n})=>n.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),OI=Qd;const RI=Object.freeze(Object.defineProperty({__proto__:null,Paragraph:Qd,default:OI},Symbol.toStringTag,{value:"Module"}));var FI=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,PI=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,zI=Zt.create({name:"strike",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:n=>n.includes("line-through")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["s",ze(this.options.HTMLAttributes,n),0]},markdownTokenName:"del",parseMarkdown:(n,e)=>e.applyMark("strike",e.parseInline(n.tokens||[])),renderMarkdown:(n,e)=>`~~${e.renderChildren(n)}~~`,addCommands(){return{setStrike:()=>({commands:n})=>n.setMark(this.name),toggleStrike:()=>({commands:n})=>n.toggleMark(this.name),unsetStrike:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[Rn({find:FI,type:this.type})]},addPasteRules(){return[bn({find:PI,type:this.type})]}}),HI=ut.create({name:"text",group:"inline",parseMarkdown:n=>({type:"text",text:n.text||""}),renderMarkdown:n=>n.text||""}),jI=Zt.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:n=>n.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["u",ze(this.options.HTMLAttributes,n),0]},parseMarkdown(n,e){return e.applyMark(this.name||"underline",e.parseInline(n.tokens||[]))},renderMarkdown(n,e){return`++${e.renderChildren(n)}++`},markdownTokenizer:{name:"underline",level:"inline",start(n){return n.indexOf("++")},tokenize(n,e,t){const o=/^(\+\+)([\s\S]+?)(\+\+)/.exec(n);if(!o)return;const i=o[2].trim();return{type:"underline",raw:o[0],text:i,tokens:t.inlineTokens(i)}}},addCommands(){return{setUnderline:()=>({commands:n})=>n.setMark(this.name),toggleUnderline:()=>({commands:n})=>n.toggleMark(this.name),unsetUnderline:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}});function UI(n={}){return new Ue({view(e){return new WI(e,n)}})}class WI{constructor(e,t){var r;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.lastDragEvent=null,this.width=(r=t.width)!==null&&r!==void 0?r:1,this.color=t.color===!1?void 0:t.color||"black",this.class=t.class,this.handlers=["dragover","dragend","drop","dragleave"].map(o=>{let i=l=>{this[o](l)};return e.dom.addEventListener(o,i),{name:o,handler:i}})}destroy(){this.handlers.forEach(({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t))}update(e,t){if(this.cursorPos!=null&&t.doc!=e.state.doc)if(this.lastDragEvent){let r=this.computeTarget(this.lastDragEvent);r==this.cursorPos?this.updateOverlay():this.setCursor(r)}else this.updateOverlay()}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),t=!e.parent.inlineContent,r,o=this.editorView.dom,i=o.getBoundingClientRect(),l=i.width/o.offsetWidth,a=i.height/o.offsetHeight;if(t){let f=e.nodeBefore,p=e.nodeAfter;if(f||p){let h=this.editorView.nodeDOM(this.cursorPos-(f?f.nodeSize:0));if(h){let m=h.getBoundingClientRect(),g=f?m.bottom:m.top;f&&p&&(g=(g+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let y=this.width/2*a;r={left:m.left,right:m.right,top:g-y,bottom:g+y}}}}if(!r){let f=this.editorView.coordsAtPos(this.cursorPos),p=this.width/2*l;r={left:f.left-p,right:f.left+p,top:f.top,bottom:f.bottom}}let c=this.editorView.dom.offsetParent;this.element||(this.element=c.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",t),this.element.classList.toggle("prosemirror-dropcursor-inline",!t);let d,u;if(!c||c==document.body&&getComputedStyle(c).position=="static")d=-pageXOffset,u=-pageYOffset;else{let f=c.getBoundingClientRect(),p=f.width/c.offsetWidth,h=f.height/c.offsetHeight;d=f.left-c.scrollLeft*p,u=f.top-c.scrollTop*h}this.element.style.left=(r.left-d)/l+"px",this.element.style.top=(r.top-u)/a+"px",this.element.style.width=(r.right-r.left)/l+"px",this.element.style.height=(r.bottom-r.top)/a+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}computeTarget(e){let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),r=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),o=r&&r.type.spec.disableDropCursor,i=typeof o=="function"?o(this.editorView,t,e):o;if(!t||i)return null;let l=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let a=Gp(this.editorView.state.doc,l,this.editorView.dragging.slice);a!=null&&(l=a)}return l}dragover(e){if(!this.editorView.editable)return;this.lastDragEvent=e;let t=this.computeTarget(e);t!=null&&(this.setCursor(t),this.scheduleRemoval(5e3))}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}class ot extends _e{constructor(e){super(e,e)}map(e,t){let r=e.resolve(t.map(this.head));return ot.valid(r)?new ot(r):_e.near(r)}content(){return pe.empty}eq(e){return e instanceof ot&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(e,t){if(typeof t.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new ot(e.resolve(t.pos))}getBookmark(){return new eu(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!KI(e)||!qI(e))return!1;let r=t.type.spec.allowGapCursor;if(r!=null)return r;let o=t.contentMatchAt(e.index()).defaultType;return o&&o.isTextblock}static findGapCursorFrom(e,t,r=!1){e:for(;;){if(!r&&ot.valid(e))return e;let o=e.pos,i=null;for(let l=e.depth;;l--){let a=e.node(l);if(t>0?e.indexAfter(l)<a.childCount:e.index(l)>0){i=a.child(t>0?e.indexAfter(l):e.index(l)-1);break}else if(l==0)return null;o+=t;let c=e.doc.resolve(o);if(ot.valid(c))return c}for(;;){let l=t>0?i.firstChild:i.lastChild;if(!l){if(i.isAtom&&!i.isText&&!ve.isSelectable(i)){e=e.doc.resolve(o+i.nodeSize*t),r=!1;continue e}break}i=l,o+=t;let a=e.doc.resolve(o);if(ot.valid(a))return a}return null}}}ot.prototype.visible=!1,ot.findFrom=ot.findGapCursorFrom,_e.jsonID("gapcursor",ot);class eu{constructor(e){this.pos=e}map(e){return new eu(e.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return ot.valid(t)?new ot(t):_e.near(t)}}function Dy(n){return n.isAtom||n.spec.isolating||n.spec.createGapCursor}function KI(n){for(let e=n.depth;e>=0;e--){let t=n.index(e),r=n.node(e);if(t==0){if(r.type.spec.isolating)return!0;continue}for(let o=r.child(t-1);;o=o.lastChild){if(o.childCount==0&&!o.inlineContent||Dy(o.type))return!0;if(o.inlineContent)return!1}}return!0}function qI(n){for(let e=n.depth;e>=0;e--){let t=n.indexAfter(e),r=n.node(e);if(t==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let o=r.child(t);;o=o.firstChild){if(o.childCount==0&&!o.inlineContent||Dy(o.type))return!0;if(o.inlineContent)return!1}}return!0}function GI(){return new Ue({props:{decorations:ZI,createSelectionBetween(n,e,t){return e.pos==t.pos&&ot.valid(t)?new ot(t):null},handleClick:YI,handleKeyDown:JI,handleDOMEvents:{beforeinput:XI}}})}const JI=Gc({ArrowLeft:Yl("horiz",-1),ArrowRight:Yl("horiz",1),ArrowUp:Yl("vert",-1),ArrowDown:Yl("vert",1)});function Yl(n,e){const t=n=="vert"?e>0?"down":"up":e>0?"right":"left";return function(r,o,i){let l=r.selection,a=e>0?l.$to:l.$from,c=l.empty;if(l instanceof ye){if(!i.endOfTextblock(t)||a.depth==0)return!1;c=!1,a=r.doc.resolve(e>0?a.after():a.before())}let d=ot.findGapCursorFrom(a,e,c);return d?(o&&o(r.tr.setSelection(new ot(d))),!0):!1}}function YI(n,e,t){if(!n||!n.editable)return!1;let r=n.state.doc.resolve(e);if(!ot.valid(r))return!1;let o=n.posAtCoords({left:t.clientX,top:t.clientY});return o&&o.inside>-1&&ve.isSelectable(n.state.doc.nodeAt(o.inside))?!1:(n.dispatch(n.state.tr.setSelection(new ot(r))),!0)}function XI(n,e){if(e.inputType!="insertCompositionText"||!(n.state.selection instanceof ot))return!1;let{$from:t}=n.state.selection,r=t.parent.contentMatchAt(t.index()).findWrapping(n.state.schema.nodes.text);if(!r)return!1;let o=Q.empty;for(let l=r.length-1;l>=0;l--)o=Q.from(r[l].createAndFill(null,o));let i=n.state.tr.replace(t.pos,t.pos,new pe(o,0,0));return i.setSelection(ye.near(i.doc.resolve(t.pos+1))),n.dispatch(i),!1}function ZI(n){if(!(n.selection instanceof ot))return null;let e=document.createElement("div");return e.className="ProseMirror-gapcursor",Ie.create(n.doc,[At.widget(n.selection.head,e,{key:"gapcursor"})])}var Xl=200,mt=function(){};mt.prototype.append=function(e){return e.length?(e=mt.from(e),!this.length&&e||e.length<Xl&&this.leafAppend(e)||this.length<Xl&&e.leafPrepend(this)||this.appendInner(e)):this},mt.prototype.prepend=function(e){return e.length?mt.from(e).append(this):this},mt.prototype.appendInner=function(e){return new QI(this,e)},mt.prototype.slice=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=this.length),e>=t?mt.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},mt.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},mt.prototype.forEach=function(e,t,r){t===void 0&&(t=0),r===void 0&&(r=this.length),t<=r?this.forEachInner(e,t,r,0):this.forEachInvertedInner(e,t,r,0)},mt.prototype.map=function(e,t,r){t===void 0&&(t=0),r===void 0&&(r=this.length);var o=[];return this.forEach(function(i,l){return o.push(e(i,l))},t,r),o},mt.from=function(e){return e instanceof mt?e:e&&e.length?new Vy(e):mt.empty};var Vy=function(n){function e(r){n.call(this),this.values=r}n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e;var t={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(o,i){return o==0&&i==this.length?this:new e(this.values.slice(o,i))},e.prototype.getInner=function(o){return this.values[o]},e.prototype.forEachInner=function(o,i,l,a){for(var c=i;c<l;c++)if(o(this.values[c],a+c)===!1)return!1},e.prototype.forEachInvertedInner=function(o,i,l,a){for(var c=i-1;c>=l;c--)if(o(this.values[c],a+c)===!1)return!1},e.prototype.leafAppend=function(o){if(this.length+o.length<=Xl)return new e(this.values.concat(o.flatten()))},e.prototype.leafPrepend=function(o){if(this.length+o.length<=Xl)return new e(o.flatten().concat(this.values))},t.length.get=function(){return this.values.length},t.depth.get=function(){return 0},Object.defineProperties(e.prototype,t),e}(mt);mt.empty=new Vy([]);var QI=function(n){function e(t,r){n.call(this),this.left=t,this.right=r,this.length=t.length+r.length,this.depth=Math.max(t.depth,r.depth)+1}return n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(r){return r<this.left.length?this.left.get(r):this.right.get(r-this.left.length)},e.prototype.forEachInner=function(r,o,i,l){var a=this.left.length;if(o<a&&this.left.forEachInner(r,o,Math.min(i,a),l)===!1||i>a&&this.right.forEachInner(r,Math.max(o-a,0),Math.min(this.length,i)-a,l+a)===!1)return!1},e.prototype.forEachInvertedInner=function(r,o,i,l){var a=this.left.length;if(o>a&&this.right.forEachInvertedInner(r,o-a,Math.max(i,a)-a,l+a)===!1||i<a&&this.left.forEachInvertedInner(r,Math.min(o,a),i,l)===!1)return!1},e.prototype.sliceInner=function(r,o){if(r==0&&o==this.length)return this;var i=this.left.length;return o<=i?this.left.slice(r,o):r>=i?this.right.slice(r-i,o-i):this.left.slice(r,i).append(this.right.slice(0,o-i))},e.prototype.leafAppend=function(r){var o=this.right.leafAppend(r);if(o)return new e(this.left,o)},e.prototype.leafPrepend=function(r){var o=this.left.leafPrepend(r);if(o)return new e(o,this.right)},e.prototype.appendInner=function(r){return this.left.depth>=Math.max(this.right.depth,r.depth)+1?new e(this.left,new e(this.right,r)):new e(this,r)},e}(mt);const eO=500;class ln{constructor(e,t){this.items=e,this.eventCount=t}popEvent(e,t){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let o,i;t&&(o=this.remapping(r,this.items.length),i=o.maps.length);let l=e.tr,a,c,d=[],u=[];return this.items.forEach((f,p)=>{if(!f.step){o||(o=this.remapping(r,p+1),i=o.maps.length),i--,u.push(f);return}if(o){u.push(new vn(f.map));let h=f.step.map(o.slice(i)),m;h&&l.maybeStep(h).doc&&(m=l.mapping.maps[l.mapping.maps.length-1],d.push(new vn(m,void 0,void 0,d.length+u.length))),i--,m&&o.appendMap(m,i)}else l.maybeStep(f.step);if(f.selection)return a=o?f.selection.map(o.slice(i)):f.selection,c=new ln(this.items.slice(0,r).append(u.reverse().concat(d)),this.eventCount-1),!1},this.items.length,0),{remaining:c,transform:l,selection:a}}addTransform(e,t,r,o){let i=[],l=this.eventCount,a=this.items,c=!o&&a.length?a.get(a.length-1):null;for(let u=0;u<e.steps.length;u++){let f=e.steps[u].invert(e.docs[u]),p=new vn(e.mapping.maps[u],f,t),h;(h=c&&c.merge(p))&&(p=h,u?i.pop():a=a.slice(0,a.length-1)),i.push(p),t&&(l++,t=void 0),o||(c=p)}let d=l-r.depth;return d>nO&&(a=tO(a,d),l-=d),new ln(a.append(i),l)}remapping(e,t){let r=new Go;return this.items.forEach((o,i)=>{let l=o.mirrorOffset!=null&&i-o.mirrorOffset>=e?r.maps.length-o.mirrorOffset:void 0;r.appendMap(o.map,l)},e,t),r}addMaps(e){return this.eventCount==0?this:new ln(this.items.append(e.map(t=>new vn(t))),this.eventCount)}rebased(e,t){if(!this.eventCount)return this;let r=[],o=Math.max(0,this.items.length-t),i=e.mapping,l=e.steps.length,a=this.eventCount;this.items.forEach(p=>{p.selection&&a--},o);let c=t;this.items.forEach(p=>{let h=i.getMirror(--c);if(h==null)return;l=Math.min(l,h);let m=i.maps[h];if(p.step){let g=e.steps[h].invert(e.docs[h]),y=p.selection&&p.selection.map(i.slice(c+1,h));y&&a++,r.push(new vn(m,g,y))}else r.push(new vn(m))},o);let d=[];for(let p=t;p<l;p++)d.push(new vn(i.maps[p]));let u=this.items.slice(0,o).append(d).append(r),f=new ln(u,a);return f.emptyItemCount()>eO&&(f=f.compress(this.items.length-r.length)),f}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(e=this.items.length){let t=this.remapping(0,e),r=t.maps.length,o=[],i=0;return this.items.forEach((l,a)=>{if(a>=e)o.push(l),l.selection&&i++;else if(l.step){let c=l.step.map(t.slice(r)),d=c&&c.getMap();if(r--,d&&t.appendMap(d,r),c){let u=l.selection&&l.selection.map(t.slice(r));u&&i++;let f=new vn(d.invert(),c,u),p,h=o.length-1;(p=o.length&&o[h].merge(f))?o[h]=p:o.push(f)}}else l.map&&r--},this.items.length,0),new ln(mt.from(o.reverse()),i)}}ln.empty=new ln(mt.empty,0);function tO(n,e){let t;return n.forEach((r,o)=>{if(r.selection&&e--==0)return t=o,!1}),n.slice(t)}class vn{constructor(e,t,r,o){this.map=e,this.step=t,this.selection=r,this.mirrorOffset=o}merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.step);if(t)return new vn(t.getMap().invert(),t,this.selection)}}}class pr{constructor(e,t,r,o,i){this.done=e,this.undone=t,this.prevRanges=r,this.prevTime=o,this.prevComposition=i}}const nO=20;function rO(n,e,t,r){let o=t.getMeta(Ur),i;if(o)return o.historyState;t.getMeta(iO)&&(n=new pr(n.done,n.undone,null,0,-1));let l=t.getMeta("appendedTransaction");if(t.steps.length==0)return n;if(l&&l.getMeta(Ur))return l.getMeta(Ur).redo?new pr(n.done.addTransform(t,void 0,r,Zl(e)),n.undone,$y(t.mapping.maps),n.prevTime,n.prevComposition):new pr(n.done,n.undone.addTransform(t,void 0,r,Zl(e)),null,n.prevTime,n.prevComposition);if(t.getMeta("addToHistory")!==!1&&!(l&&l.getMeta("addToHistory")===!1)){let a=t.getMeta("composition"),c=n.prevTime==0||!l&&n.prevComposition!=a&&(n.prevTime<(t.time||0)-r.newGroupDelay||!oO(t,n.prevRanges)),d=l?tu(n.prevRanges,t.mapping):$y(t.mapping.maps);return new pr(n.done.addTransform(t,c?e.selection.getBookmark():void 0,r,Zl(e)),ln.empty,d,t.time,a??n.prevComposition)}else return(i=t.getMeta("rebased"))?new pr(n.done.rebased(t,i),n.undone.rebased(t,i),tu(n.prevRanges,t.mapping),n.prevTime,n.prevComposition):new pr(n.done.addMaps(t.mapping.maps),n.undone.addMaps(t.mapping.maps),tu(n.prevRanges,t.mapping),n.prevTime,n.prevComposition)}function oO(n,e){if(!e)return!1;if(!n.docChanged)return!0;let t=!1;return n.mapping.maps[0].forEach((r,o)=>{for(let i=0;i<e.length;i+=2)r<=e[i+1]&&o>=e[i]&&(t=!0)}),t}function $y(n){let e=[];for(let t=n.length-1;t>=0&&e.length==0;t--)n[t].forEach((r,o,i,l)=>e.push(i,l));return e}function tu(n,e){if(!n)return null;let t=[];for(let r=0;r<n.length;r+=2){let o=e.map(n[r],1),i=e.map(n[r+1],-1);o<=i&&t.push(o,i)}return t}function sO(n,e,t){let r=Zl(e),o=Ur.get(e).spec.config,i=(t?n.undone:n.done).popEvent(e,r);if(!i)return null;let l=i.selection.resolve(i.transform.doc),a=(t?n.done:n.undone).addTransform(i.transform,e.selection.getBookmark(),o,r),c=new pr(t?a:i.remaining,t?i.remaining:a,null,0,-1);return i.transform.setSelection(l).setMeta(Ur,{redo:t,historyState:c})}let nu=!1,Ly=null;function Zl(n){let e=n.plugins;if(Ly!=e){nu=!1,Ly=e;for(let t=0;t<e.length;t++)if(e[t].spec.historyPreserveItems){nu=!0;break}}return nu}const Ur=new Ze("history"),iO=new Ze("closeHistory");function lO(n={}){return n={depth:n.depth||100,newGroupDelay:n.newGroupDelay||500},new Ue({key:Ur,state:{init(){return new pr(ln.empty,ln.empty,null,0,-1)},apply(e,t,r){return rO(t,r,e,n)}},config:n,props:{handleDOMEvents:{beforeinput(e,t){let r=t.inputType,o=r=="historyUndo"?Oy:r=="historyRedo"?Ry:null;return!o||!e.editable?!1:(t.preventDefault(),o(e.state,e.dispatch))}}}})}function Iy(n,e){return(t,r)=>{let o=Ur.getState(t);if(!o||(n?o.undone:o.done).eventCount==0)return!1;if(r){let i=sO(o,t,n);i&&r(e?i.scrollIntoView():i)}return!0}}const Oy=Iy(!1,!0),Ry=Iy(!0,!0);He.create({name:"characterCount",addOptions(){return{limit:null,autoTrim:!0,mode:"textSize",textCounter:n=>n.length,wordCounter:n=>n.split(" ").filter(e=>e!=="").length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=n=>{const e=n?.node||this.editor.state.doc;if((n?.mode||this.options.mode)==="textSize"){const r=e.textBetween(0,e.content.size,void 0," ");return this.options.textCounter(r)}return e.nodeSize},this.storage.words=n=>{const e=n?.node||this.editor.state.doc,t=e.textBetween(0,e.content.size," "," ");return this.options.wordCounter(t)}},addProseMirrorPlugins(){let n=!1;return[new Ue({key:new Ze("characterCount"),appendTransaction:(e,t,r)=>{if(n)return;const o=this.options.limit,i=this.options.autoTrim;if(o==null||o===0||i===!1){n=!0;return}const l=this.storage.characters({node:r.doc});if(l>o){const a=l-o,c=0,d=a;console.warn(`[CharacterCount] Initial content exceeded limit of ${o} characters. Content was automatically trimmed.`);const u=r.tr.deleteRange(c,d);return n=!0,u}n=!0},filterTransaction:(e,t)=>{const r=this.options.limit;if(!e.docChanged||r===0||r===null||r===void 0)return!0;const o=this.storage.characters({node:t.doc}),i=this.storage.characters({node:e.doc});if(i<=r||o>r&&i>r&&i<=o)return!0;if(o>r&&i>r&&i>o||!e.getMeta("paste"))return!1;const a=e.selection.$head.pos,c=i-r,d=a-c,u=a;return e.deleteRange(d,u),!(this.storage.characters({node:e.doc})>r)}})]}});var aO=He.create({name:"dropCursor",addOptions(){return{color:"currentColor",width:1,class:void 0}},addProseMirrorPlugins(){return[UI(this.options)]}});He.create({name:"focus",addOptions(){return{className:"has-focus",mode:"all"}},addProseMirrorPlugins(){return[new Ue({key:new Ze("focus"),props:{decorations:({doc:n,selection:e})=>{const{isEditable:t,isFocused:r}=this.editor,{anchor:o}=e,i=[];if(!t||!r)return Ie.create(n,[]);let l=0;this.options.mode==="deepest"&&n.descendants((c,d)=>{if(c.isText)return;if(!(o>=d&&o<=d+c.nodeSize-1))return!1;l+=1});let a=0;return n.descendants((c,d)=>{if(c.isText||!(o>=d&&o<=d+c.nodeSize-1))return!1;if(a+=1,this.options.mode==="deepest"&&l-a>0||this.options.mode==="shallowest"&&a>1)return this.options.mode==="deepest";i.push(At.node(d,d+c.nodeSize,{class:this.options.className}))}),Ie.create(n,i)}}})]}});var cO=He.create({name:"gapCursor",addProseMirrorPlugins(){return[GI()]},extendNodeSchema(n){var e;const t={name:n.name,options:n.options,storage:n.storage};return{allowGapCursor:(e=Oe(be(n,"allowGapCursor",t)))!=null?e:null}}}),Fy="placeholder",Py=new Ze("tiptap__placeholder");function zy(n){const{editor:e,placeholder:t,dataAttribute:r,pos:o,node:i,isEmptyDoc:l,hasAnchor:a,classes:{emptyNode:c,emptyEditor:d}}=n,u=[c];return l&&u.push(d),At.node(o,o+i.nodeSize,{class:u.join(" "),[r]:typeof t=="function"?t({editor:e,node:i,pos:o,hasAnchor:a}):t})}function Hy(n,e){return typeof n=="function"?n(e):n}function jy({editor:n,options:e,dataAttribute:t,doc:r,selection:o,from:i,to:l}){const{anchor:a}=o,c=[],d=n.isEmpty;return r.nodesBetween(i,l,(u,f)=>{const p=a>=f&&a<=f+u.nodeSize,h=!u.isLeaf&&yo(u);return u.type.isTextblock&&(p||!e.showOnlyCurrent)&&h&&c.push(zy({editor:n,isEmptyDoc:d,dataAttribute:t,hasAnchor:p,placeholder:e.placeholder,classes:{emptyEditor:e.emptyEditorClass,emptyNode:Hy(e.emptyNodeClass,{editor:n,node:u,pos:f,hasAnchor:p})},node:u,pos:f})),e.includeChildren}),c}function Uy({editor:n,options:e,dataAttribute:t,doc:r,selection:o}){if(!(n.isEditable||!e.showOnlyWhenEditable))return null;const{anchor:l}=o,a=[],c=n.isEmpty;if(e.showOnlyCurrent&&!e.includeChildren){const u=r.resolve(l),f=u.depth>0?u.node(1):u.nodeAfter,p=u.depth>0?u.before(1):l;if(f&&f.type.isTextblock&&yo(f)){const h=l>=p&&l<=p+f.nodeSize;a.push(zy({editor:n,isEmptyDoc:c,dataAttribute:t,hasAnchor:h,placeholder:e.placeholder,classes:{emptyEditor:e.emptyEditorClass,emptyNode:Hy(e.emptyNodeClass,{editor:n,node:f,pos:p,hasAnchor:h})},node:f,pos:p}))}}else a.push(...jy({editor:n,options:e,dataAttribute:t,doc:r,selection:o,from:0,to:r.content.size}));return Ie.create(r,a)}function Vs(n,e){var t;const r=n.resolve(e);if(r.depth===0){const l=(t=r.nodeAfter)!=null?t:r.nodeBefore;if(!l)return{from:e,to:e};const a=r.nodeAfter?e:e-l.nodeSize;return{from:a,to:a+l.nodeSize}}const o=r.before(1),i=r.node(1);return{from:o,to:o+i.nodeSize}}function $s(n,e){return{from:Math.max(0,e.from-1),to:Math.min(n.content.size,e.to-1)}}function dO(n,e,t){const r=[];return n.forEach((o,i)=>{const l=i,a=l+o.nodeSize,c=l+1,d=a+1;c<t&&d>e&&r.push({from:l,to:a})}),r}function uO(n){if(n.length===0)return[];const e=[...n].sort((r,o)=>r.from-o.from),t=[{...e[0]}];for(let r=1;r<e.length;r+=1){const o=t[t.length-1],i=e[r];i.from<=o.to?o.to=Math.max(o.to,i.to):t.push({...i})}return t}function fO(n,e){const t=dO(n,e.from,e.to);return t.push($s(n,Vs(n,e.from))),e.to>e.from?t.push($s(n,Vs(n,Math.min(e.to,n.content.size+1)-1))):e.from<n.content.size+1&&t.push($s(n,Vs(n,Math.min(e.from+1,n.content.size)))),t}function pO(n,e,t){const r=[];if(n.docChanged){const o=bs(n);for(const i of o)r.push(...fO(t.doc,i.newRange))}return n.selectionSet&&(r.push($s(t.doc,Vs(t.doc,n.mapping.map(e.selection.anchor)))),r.push($s(t.doc,Vs(t.doc,t.selection.anchor)))),uO(r)}function hO(n,e,t){const r=Math.max(0,Math.min(n,t.content.size)),o=Math.max(r,Math.min(e,t.content.size));return{from:r,to:o}}function mO({decorations:n,ranges:e,editor:t,options:r,dataAttribute:o,doc:i,selection:l}){let a=n;for(const c of e){const{from:d,to:u}=hO(c.from,c.to,i),f=a.find(d,u).filter(h=>h.from>=d&&h.to<=u);f.length&&(a=a.remove(f));const p=jy({editor:t,options:r,dataAttribute:o,doc:i,selection:l,from:d,to:u});p.length&&(a=a.add(i,p))}return a}function gO({editor:n,options:e,dataAttribute:t}){return{init(r,o){const i=Uy({editor:n,options:e,dataAttribute:t,doc:o.doc,selection:o.selection});return i??Ie.empty},apply(r,o,i,l){if(!r.docChanged&&!r.selectionSet)return o;const a=o.map(r.mapping,r.doc),c=pO(r,i,l);return mO({decorations:a,ranges:c,editor:n,options:e,dataAttribute:t,doc:l.doc,selection:l.selection})}}}function yO(n){return n.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9-]/g,"").replace(/^[0-9-]+/,"").replace(/^-+/,"").toLowerCase()}function bO({editor:n,options:e}){const t=e.dataAttribute?`data-${yO(e.dataAttribute)}`:`data-${Fy}`,r=e.showOnlyCurrent&&!e.includeChildren;return new Ue({key:Py,...r?{}:{state:gO({editor:n,options:e,dataAttribute:t})},props:{decorations:r?({doc:o,selection:i})=>Uy({editor:n,options:e,dataAttribute:t,doc:o,selection:i}):o=>{var i;return e.showOnlyWhenEditable&&!n.isEditable?Ie.empty:(i=Py.getState(o))!=null?i:Ie.empty}}})}He.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",dataAttribute:Fy,placeholder:"Write something …",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[bO({editor:this.editor,options:this.options})]}});function ru(n,e){return!n.selection.empty&&!ud(n.selection)&&e.isEditable}function kO(n,e){return ru(n,e)&&!e.isFocused&&!e.view.dragging}function wO(){var n;(n=window.getSelection())==null||n.removeAllRanges()}function xO(n){n.focus()}He.create({name:"selection",addOptions(){return{className:"selection"}},addProseMirrorPlugins(){const{editor:n,options:e}=this;return[new Ue({key:new Ze("selection"),props:{decorations(t){return kO(t,n)?Ie.create(t.doc,[At.inline(t.selection.from,t.selection.to,{class:e.className})]):null},handleDOMEvents:{blur(t){return ru(t.state,n)&&wO(),!1},focus(t){return ru(t.state,n)&&requestAnimationFrame(()=>{!n.isDestroyed&&t.hasFocus()&&xO(t)}),!1}}}})]}});var vO="skipTrailingNode";function Wy({types:n,node:e}){return e&&Array.isArray(n)&&n.includes(e.type)||e?.type===n}var CO=He.create({name:"trailingNode",addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){var n;const e=new Ze(this.name),t=this.options.node||((n=this.editor.schema.topNodeType.contentMatch.defaultType)==null?void 0:n.name)||"paragraph",r=Object.entries(this.editor.schema.nodes).map(([,o])=>o).filter(o=>(this.options.notAfter||[]).concat(t).includes(o.name));return[new Ue({key:e,appendTransaction:(o,i,l)=>{const{doc:a,tr:c,schema:d}=l,u=e.getState(l),f=a.content.size,p=d.nodes[t];if(!o.some(h=>h.getMeta(vO))&&u)return c.insert(f,p.create())},state:{init:(o,i)=>{const l=i.tr.doc.lastChild;return!Wy({node:l,types:r})},apply:(o,i)=>{if(!o.docChanged||o.getMeta("__uniqueIDTransaction"))return i;const l=o.doc.lastChild;return!Wy({node:l,types:r})}}})]}}),SO=He.create({name:"undoRedo",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:n,dispatch:e})=>Oy(n,e),redo:()=>({state:n,dispatch:e})=>Ry(n,e)}},addProseMirrorPlugins(){return[lO(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),Ky=He.create({name:"starterKit",addExtensions(){var n,e,t,r;const o=[];return this.options.bold!==!1&&o.push(sL.configure(this.options.bold)),this.options.blockquote!==!1&&o.push(eL.configure(this.options.blockquote)),this.options.bulletList!==!1&&o.push(gy.configure(this.options.bulletList)),this.options.code!==!1&&o.push(aL.configure(this.options.code)),this.options.codeBlock!==!1&&o.push(uL.configure(this.options.codeBlock)),this.options.document!==!1&&o.push(fL.configure(this.options.document)),this.options.dropcursor!==!1&&o.push(aO.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&o.push(cO.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&o.push(pL.configure(this.options.hardBreak)),this.options.heading!==!1&&o.push(xd.configure(this.options.heading)),this.options.undoRedo!==!1&&o.push(SO.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&o.push(gL.configure(this.options.horizontalRule)),this.options.italic!==!1&&o.push(xL.configure(this.options.italic)),this.options.listItem!==!1&&o.push(xy.configure(this.options.listItem)),this.options.listKeymap!==!1&&o.push(My.configure((n=this.options)==null?void 0:n.listKeymap)),this.options.link!==!1&&o.push(Wd.configure((e=this.options)==null?void 0:e.link)),this.options.orderedList!==!1&&o.push(Ny.configure(this.options.orderedList)),this.options.paragraph!==!1&&o.push(Qd.configure(this.options.paragraph)),this.options.strike!==!1&&o.push(zI.configure(this.options.strike)),this.options.text!==!1&&o.push(HI.configure(this.options.text)),this.options.underline!==!1&&o.push(jI.configure((t=this.options)==null?void 0:t.underline)),this.options.trailingNode!==!1&&o.push(CO.configure((r=this.options)==null?void 0:r.trailingNode)),o}}),EO=Ky;const MO=Object.freeze(Object.defineProperty({__proto__:null,StarterKit:Ky,default:EO},Symbol.toStringTag,{value:"Module"}));var AO=20,qy=(n,e=0)=>{const t=[];return!n.children.length||e>AO||Array.from(n.children).forEach(r=>{r.tagName==="SPAN"?t.push(r):r.children.length&&t.push(...qy(r,e+1))}),t},_O=n=>{if(!n.children.length)return;const e=qy(n);e&&e.forEach(t=>{var r,o;const i=t.getAttribute("style"),l=(o=(r=t.parentElement)==null?void 0:r.closest("span"))==null?void 0:o.getAttribute("style");t.setAttribute("style",`${l};${i}`)})},Gy=Zt.create({name:"textStyle",priority:101,addOptions(){return{HTMLAttributes:{},mergeNestedSpanStyles:!0}},parseHTML(){return[{tag:"span",consuming:!1,getAttrs:n=>n.hasAttribute("style")?(this.options.mergeNestedSpanStyles&&_O(n),{}):!1}]},renderHTML({HTMLAttributes:n}){return["span",ze(this.options.HTMLAttributes,n),0]},addCommands(){return{toggleTextStyle:n=>({commands:e})=>e.toggleMark(this.name,n),removeEmptyTextStyle:()=>({tr:n})=>{const{selection:e}=n;return n.doc.nodesBetween(e.from,e.to,(t,r)=>{if(t.isTextblock)return!0;t.marks.filter(o=>o.type===this.type).some(o=>Object.values(o.attrs).some(i=>!!i))||n.removeMark(r,r+t.nodeSize,this.type)}),!0}}}}),Jy=He.create({name:"backgroundColor",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{backgroundColor:{default:null,parseHTML:n=>{var e;const t=(e=Fr(n,"background-color"))!=null?e:n.style.backgroundColor;return t?.replace(/['"]+/g,"")},renderHTML:n=>n.backgroundColor?{style:`background-color: ${n.backgroundColor}`}:{}}}}]},addCommands(){return{setBackgroundColor:n=>({chain:e})=>e().setMark("textStyle",{backgroundColor:n}).run(),unsetBackgroundColor:()=>({chain:n})=>n().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),Yy=He.create({name:"color",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:n=>{var e;const t=(e=Fr(n,"color"))!=null?e:n.style.color;return t?.replace(/['"]+/g,"")},renderHTML:n=>n.color?{style:`color: ${n.color}`}:{}}}}]},addCommands(){return{setColor:n=>({chain:e})=>e().setMark("textStyle",{color:n}).run(),unsetColor:()=>({chain:n})=>n().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()}}}),Xy=He.create({name:"fontFamily",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:n=>{var e;return(e=Fr(n,"font-family"))!=null?e:n.style.fontFamily},renderHTML:n=>n.fontFamily?{style:`font-family: ${n.fontFamily}`}:{}}}}]},addCommands(){return{setFontFamily:n=>({chain:e})=>e().setMark("textStyle",{fontFamily:n}).run(),unsetFontFamily:()=>({chain:n})=>n().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run()}}}),Zy=He.create({name:"fontSize",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:n=>{var e;return(e=Fr(n,"font-size"))!=null?e:n.style.fontSize},renderHTML:n=>n.fontSize?{style:`font-size: ${n.fontSize}`}:{}}}}]},addCommands(){return{setFontSize:n=>({chain:e})=>e().setMark("textStyle",{fontSize:n}).run(),unsetFontSize:()=>({chain:n})=>n().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run()}}}),Qy=He.create({name:"lineHeight",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:null,parseHTML:n=>{var e;return(e=Fr(n,"line-height"))!=null?e:n.style.lineHeight},renderHTML:n=>n.lineHeight?{style:`line-height: ${n.lineHeight}`}:{}}}}]},addCommands(){return{setLineHeight:n=>({chain:e})=>e().setMark("textStyle",{lineHeight:n}).run(),unsetLineHeight:()=>({chain:n})=>n().setMark("textStyle",{lineHeight:null}).removeEmptyTextStyle().run()}}}),TO=He.create({name:"textStyleKit",addExtensions(){const n=[];return this.options.backgroundColor!==!1&&n.push(Jy.configure(this.options.backgroundColor)),this.options.color!==!1&&n.push(Yy.configure(this.options.color)),this.options.fontFamily!==!1&&n.push(Xy.configure(this.options.fontFamily)),this.options.fontSize!==!1&&n.push(Zy.configure(this.options.fontSize)),this.options.lineHeight!==!1&&n.push(Qy.configure(this.options.lineHeight)),this.options.textStyle!==!1&&n.push(Gy.configure(this.options.textStyle)),n}});const BO=Object.freeze(Object.defineProperty({__proto__:null,BackgroundColor:Jy,Color:Yy,FontFamily:Xy,FontSize:Zy,LineHeight:Qy,TextStyle:Gy,TextStyleKit:TO},Symbol.toStringTag,{value:"Module"}));let ou,su;if(typeof WeakMap<"u"){let n=new WeakMap;ou=e=>n.get(e),su=(e,t)=>(n.set(e,t),t)}else{const n=[];let t=0;ou=r=>{for(let o=0;o<n.length;o+=2)if(n[o]==r)return n[o+1]},su=(r,o)=>(t==10&&(t=0),n[t++]=r,n[t++]=o)}var st=class{constructor(n,e,t,r){this.width=n,this.height=e,this.map=t,this.problems=r}findCell(n){for(let e=0;e<this.map.length;e++){const t=this.map[e];if(t!=n)continue;const r=e%this.width,o=e/this.width|0;let i=r+1,l=o+1;for(let a=1;i<this.width&&this.map[e+a]==t;a++)i++;for(let a=1;l<this.height&&this.map[e+this.width*a]==t;a++)l++;return{left:r,top:o,right:i,bottom:l}}throw new RangeError(`No cell with offset ${n} found`)}colCount(n){for(let e=0;e<this.map.length;e++)if(this.map[e]==n)return e%this.width;throw new RangeError(`No cell with offset ${n} found`)}nextCell(n,e,t){const{left:r,right:o,top:i,bottom:l}=this.findCell(n);return e=="horiz"?(t<0?r==0:o==this.width)?null:this.map[i*this.width+(t<0?r-1:o)]:(t<0?i==0:l==this.height)?null:this.map[r+this.width*(t<0?i-1:l)]}rectBetween(n,e){const{left:t,right:r,top:o,bottom:i}=this.findCell(n),{left:l,right:a,top:c,bottom:d}=this.findCell(e);return{left:Math.min(t,l),top:Math.min(o,c),right:Math.max(r,a),bottom:Math.max(i,d)}}cellsInRect(n){const e=[],t={};for(let r=n.top;r<n.bottom;r++)for(let o=n.left;o<n.right;o++){const i=r*this.width+o,l=this.map[i];t[l]||(t[l]=!0,!(o==n.left&&o&&this.map[i-1]==l||r==n.top&&r&&this.map[i-this.width]==l)&&e.push(l))}return e}positionAt(n,e,t){for(let r=0,o=0;;r++){const i=o+t.child(r).nodeSize;if(r==n){let l=e+n*this.width;const a=(n+1)*this.width;for(;l<a&&this.map[l]<o;)l++;return l==a?i-1:this.map[l]}o=i}}static get(n){return ou(n)||su(n,NO(n))}};function NO(n){if(n.type.spec.tableRole!="table")throw new RangeError("Not a table node: "+n.type.name);const e=DO(n),t=n.childCount,r=[];let o=0,i=null;const l=[];for(let d=0,u=e*t;d<u;d++)r[d]=0;for(let d=0,u=0;d<t;d++){const f=n.child(d);u++;for(let m=0;;m++){for(;o<r.length&&r[o]!=0;)o++;if(m==f.childCount)break;const g=f.child(m),{colspan:y,rowspan:b,colwidth:w}=g.attrs;for(let v=0;v<b;v++){if(v+d>=t){(i||(i=[])).push({type:"overlong_rowspan",pos:u,n:b-v});break}const S=o+v*e;for(let N=0;N<y;N++){r[S+N]==0?r[S+N]=u:(i||(i=[])).push({type:"collision",row:d,pos:u,n:y-N});const F=w&&w[N];if(F){const T=(S+N)%e*2,E=l[T];E==null||E!=F&&l[T+1]==1?(l[T]=F,l[T+1]=1):E==F&&l[T+1]++}}}o+=y,u+=g.nodeSize}const p=(d+1)*e;let h=0;for(;o<p;)r[o++]==0&&h++;h&&(i||(i=[])).push({type:"missing",row:d,n:h}),u++}(e===0||t===0)&&(i||(i=[])).push({type:"zero_sized"});const a=new st(e,t,r,i);let c=!1;for(let d=0;!c&&d<l.length;d+=2)l[d]!=null&&l[d+1]<t&&(c=!0);return c&&VO(a,l,n),a}function DO(n){let e=-1,t=!1;for(let r=0;r<n.childCount;r++){const o=n.child(r);let i=0;if(t)for(let l=0;l<r;l++){const a=n.child(l);for(let c=0;c<a.childCount;c++){const d=a.child(c);l+d.attrs.rowspan>r&&(i+=d.attrs.colspan)}}for(let l=0;l<o.childCount;l++){const a=o.child(l);i+=a.attrs.colspan,a.attrs.rowspan>1&&(t=!0)}e==-1?e=i:e!=i&&(e=Math.max(e,i))}return e}function VO(n,e,t){n.problems||(n.problems=[]);const r={};for(let o=0;o<n.map.length;o++){const i=n.map[o];if(r[i])continue;r[i]=!0;const l=t.nodeAt(i);if(!l)throw new RangeError(`No cell with offset ${i} found`);let a=null;const c=l.attrs;for(let d=0;d<c.colspan;d++){const u=e[(o+d)%n.width*2];u!=null&&(!c.colwidth||c.colwidth[d]!=u)&&((a||(a=$O(c)))[d]=u)}a&&n.problems.unshift({type:"colwidth mismatch",pos:i,colwidth:a})}}function $O(n){if(n.colwidth)return n.colwidth.slice();const e=[];for(let t=0;t<n.colspan;t++)e.push(0);return e}function Tt(n){let e=n.cached.tableNodeTypes;if(!e){e=n.cached.tableNodeTypes={};for(const t in n.nodes){const r=n.nodes[t],o=r.spec.tableRole;o&&(e[o]=r)}}return e}const hr=new Ze("selectingCells");function Wr(n){for(let e=n.depth-1;e>0;e--)if(n.node(e).type.spec.tableRole=="row")return n.node(0).resolve(n.before(e+1));return null}function LO(n){for(let e=n.depth;e>0;e--){const t=n.node(e).type.spec.tableRole;if(t==="cell"||t==="header_cell")return n.node(e)}return null}function an(n){const e=n.selection.$head;for(let t=e.depth;t>0;t--)if(e.node(t).type.spec.tableRole=="row")return!0;return!1}function Ql(n){const e=n.selection;if("$anchorCell"in e&&e.$anchorCell)return e.$anchorCell.pos>e.$headCell.pos?e.$anchorCell:e.$headCell;if("node"in e&&e.node&&e.node.type.spec.tableRole=="cell")return e.$anchor;const t=Wr(e.$head)||IO(e.$head);if(t)return t;throw new RangeError(`No cell found around position ${e.head}`)}function IO(n){for(let e=n.nodeAfter,t=n.pos;e;e=e.firstChild,t++){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return n.doc.resolve(t)}for(let e=n.nodeBefore,t=n.pos;e;e=e.lastChild,t--){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return n.doc.resolve(t-e.nodeSize)}}function iu(n){return n.parent.type.spec.tableRole=="row"&&!!n.nodeAfter}function OO(n){return n.node(0).resolve(n.pos+n.nodeAfter.nodeSize)}function lu(n,e){return n.depth==e.depth&&n.pos>=e.start(-1)&&n.pos<=e.end(-1)}function e0(n,e,t){const r=n.node(-1),o=st.get(r),i=n.start(-1),l=o.nextCell(n.pos-i,e,t);return l==null?null:n.node(0).resolve(i+l)}function Kr(n,e,t=1){const r={...n,colspan:n.colspan-t};return r.colwidth&&(r.colwidth=r.colwidth.slice(),r.colwidth.splice(e,t),r.colwidth.some(o=>o>0)||(r.colwidth=null)),r}function t0(n,e,t=1){const r={...n,colspan:n.colspan+t};if(r.colwidth){r.colwidth=r.colwidth.slice();for(let o=0;o<t;o++)r.colwidth.splice(e,0,0)}return r}function RO(n,e,t){const r=Tt(e.type.schema).header_cell;for(let o=0;o<n.height;o++)if(e.nodeAt(n.map[t+o*n.width]).type!=r)return!1;return!0}var Ge=class Wn extends _e{constructor(e,t=e){const r=e.node(-1),o=st.get(r),i=e.start(-1),l=o.rectBetween(e.pos-i,t.pos-i),a=e.node(0),c=o.cellsInRect(l).filter(u=>u!=t.pos-i);c.unshift(t.pos-i);const d=c.map(u=>{const f=r.nodeAt(u);if(!f)throw new RangeError(`No cell with offset ${u} found`);const p=i+u+1;return new Qp(a.resolve(p),a.resolve(p+f.content.size))});super(d[0].$from,d[0].$to,d),this.$anchorCell=e,this.$headCell=t}map(e,t){const r=e.resolve(t.map(this.$anchorCell.pos)),o=e.resolve(t.map(this.$headCell.pos));if(iu(r)&&iu(o)&&lu(r,o)){const i=this.$anchorCell.node(-1)!=r.node(-1);return i&&this.isRowSelection()?Wn.rowSelection(r,o):i&&this.isColSelection()?Wn.colSelection(r,o):new Wn(r,o)}return ye.between(r,o)}content(){const e=this.$anchorCell.node(-1),t=st.get(e),r=this.$anchorCell.start(-1),o=t.rectBetween(this.$anchorCell.pos-r,this.$headCell.pos-r),i={},l=[];for(let c=o.top;c<o.bottom;c++){const d=[];for(let u=c*t.width+o.left,f=o.left;f<o.right;f++,u++){const p=t.map[u];if(i[p])continue;i[p]=!0;const h=t.findCell(p);let m=e.nodeAt(p);if(!m)throw new RangeError(`No cell with offset ${p} found`);const g=o.left-h.left,y=h.right-o.right;if(g>0||y>0){let b=m.attrs;if(g>0&&(b=Kr(b,0,g)),y>0&&(b=Kr(b,b.colspan-y,y)),h.left<o.left){if(m=m.type.createAndFill(b),!m)throw new RangeError(`Could not create cell with attrs ${JSON.stringify(b)}`)}else m=m.type.create(b,m.content)}if(h.top<o.top||h.bottom>o.bottom){const b={...m.attrs,rowspan:Math.min(h.bottom,o.bottom)-Math.max(h.top,o.top)};h.top<o.top?m=m.type.createAndFill(b):m=m.type.create(b,m.content)}d.push(m)}l.push(e.child(c).copy(Q.from(d)))}const a=this.isColSelection()&&this.isRowSelection()?e:l;return new pe(Q.from(a),1,1)}replace(e,t=pe.empty){const r=e.steps.length,o=this.ranges;for(let l=0;l<o.length;l++){const{$from:a,$to:c}=o[l],d=e.mapping.slice(r);e.replace(d.map(a.pos),d.map(c.pos),l?pe.empty:t)}const i=_e.findFrom(e.doc.resolve(e.mapping.slice(r).map(this.to)),-1);i&&e.setSelection(i)}replaceWith(e,t){this.replace(e,new pe(Q.from(t),0,0))}forEachCell(e){const t=this.$anchorCell.node(-1),r=st.get(t),o=this.$anchorCell.start(-1),i=r.cellsInRect(r.rectBetween(this.$anchorCell.pos-o,this.$headCell.pos-o));for(let l=0;l<i.length;l++)e(t.nodeAt(i[l]),o+i[l])}isColSelection(){const e=this.$anchorCell.index(-1),t=this.$headCell.index(-1);if(Math.min(e,t)>0)return!1;const r=e+this.$anchorCell.nodeAfter.attrs.rowspan,o=t+this.$headCell.nodeAfter.attrs.rowspan;return Math.max(r,o)==this.$headCell.node(-1).childCount}static colSelection(e,t=e){const r=e.node(-1),o=st.get(r),i=e.start(-1),l=o.findCell(e.pos-i),a=o.findCell(t.pos-i),c=e.node(0);return l.top<=a.top?(l.top>0&&(e=c.resolve(i+o.map[l.left])),a.bottom<o.height&&(t=c.resolve(i+o.map[o.width*(o.height-1)+a.right-1]))):(a.top>0&&(t=c.resolve(i+o.map[a.left])),l.bottom<o.height&&(e=c.resolve(i+o.map[o.width*(o.height-1)+l.right-1]))),new Wn(e,t)}isRowSelection(){const e=this.$anchorCell.node(-1),t=st.get(e),r=this.$anchorCell.start(-1),o=t.colCount(this.$anchorCell.pos-r),i=t.colCount(this.$headCell.pos-r);if(Math.min(o,i)>0)return!1;const l=o+this.$anchorCell.nodeAfter.attrs.colspan,a=i+this.$headCell.nodeAfter.attrs.colspan;return Math.max(l,a)==t.width}eq(e){return e instanceof Wn&&e.$anchorCell.pos==this.$anchorCell.pos&&e.$headCell.pos==this.$headCell.pos}static rowSelection(e,t=e){const r=e.node(-1),o=st.get(r),i=e.start(-1),l=o.findCell(e.pos-i),a=o.findCell(t.pos-i),c=e.node(0);return l.left<=a.left?(l.left>0&&(e=c.resolve(i+o.map[l.top*o.width])),a.right<o.width&&(t=c.resolve(i+o.map[o.width*(a.top+1)-1]))):(a.left>0&&(t=c.resolve(i+o.map[a.top*o.width])),l.right<o.width&&(e=c.resolve(i+o.map[o.width*(l.top+1)-1]))),new Wn(e,t)}toJSON(){return{type:"cell",anchor:this.$anchorCell.pos,head:this.$headCell.pos}}static fromJSON(e,t){return new Wn(e.resolve(t.anchor),e.resolve(t.head))}static create(e,t,r=t){return new Wn(e.resolve(t),e.resolve(r))}getBookmark(){return new FO(this.$anchorCell.pos,this.$headCell.pos)}};Ge.prototype.visible=!1,_e.jsonID("cell",Ge);var FO=class mb{constructor(e,t){this.anchor=e,this.head=t}map(e){return new mb(e.map(this.anchor),e.map(this.head))}resolve(e){const t=e.resolve(this.anchor),r=e.resolve(this.head);return t.parent.type.spec.tableRole=="row"&&r.parent.type.spec.tableRole=="row"&&t.index()<t.parent.childCount&&r.index()<r.parent.childCount&&lu(t,r)?new Ge(t,r):_e.near(r,1)}};function PO(n){if(!(n.selection instanceof Ge))return null;const e=[];return n.selection.forEachCell((t,r)=>{e.push(At.node(r,r+t.nodeSize,{class:"selectedCell"}))}),Ie.create(n.doc,e)}function zO({$from:n,$to:e}){if(n.pos==e.pos||n.pos<e.pos-6)return!1;let t=n.pos,r=e.pos,o=n.depth;for(;o>=0&&!(n.after(o+1)<n.end(o));o--,t++);for(let i=e.depth;i>=0&&!(e.before(i+1)>e.start(i));i--,r--);return t==r&&/row|table/.test(n.node(o).type.spec.tableRole)}function HO({$from:n,$to:e}){let t,r;for(let o=n.depth;o>0;o--){const i=n.node(o);if(i.type.spec.tableRole==="cell"||i.type.spec.tableRole==="header_cell"){t=i;break}}for(let o=e.depth;o>0;o--){const i=e.node(o);if(i.type.spec.tableRole==="cell"||i.type.spec.tableRole==="header_cell"){r=i;break}}return t!==r&&e.parentOffset===0}function jO(n,e,t){const r=(e||n).selection,o=(e||n).doc;let i,l;if(r instanceof ve&&(l=r.node.type.spec.tableRole)){if(l=="cell"||l=="header_cell")i=Ge.create(o,r.from);else if(l=="row"){const a=o.resolve(r.from+1);i=Ge.rowSelection(a,a)}else if(!t){const a=st.get(r.node),c=r.from+1,d=c+a.map[a.width*a.height-1];i=Ge.create(o,c+1,d)}}else r instanceof ye&&zO(r)?i=ye.create(o,r.from):r instanceof ye&&HO(r)&&(i=ye.create(o,r.$from.start(),r.$from.end()));return i&&(e||(e=n.tr)).setSelection(i),e}const UO=new Ze("fix-tables");function n0(n,e,t,r){const o=n.childCount,i=e.childCount;e:for(let l=0,a=0;l<i;l++){const c=e.child(l);for(let d=a,u=Math.min(o,l+3);d<u;d++)if(n.child(d)==c){a=d+1,t+=c.nodeSize;continue e}r(c,t),a<o&&n.child(a).sameMarkup(c)?n0(n.child(a),c,t+1,r):c.nodesBetween(0,c.content.size,r,t+1),t+=c.nodeSize}}function r0(n,e){let t;const r=(o,i)=>{o.type.spec.tableRole=="table"&&(t=WO(n,o,i,t))};return e?e.doc!=n.doc&&n0(e.doc,n.doc,0,r):n.doc.descendants(r),t}function WO(n,e,t,r){const o=st.get(e);if(!o.problems)return r;r||(r=n.tr);const i=[];for(let c=0;c<o.height;c++)i.push(0);for(let c=0;c<o.problems.length;c++){const d=o.problems[c];if(d.type=="collision"){const u=e.nodeAt(d.pos);if(!u)continue;const f=u.attrs;for(let p=0;p<f.rowspan;p++)i[d.row+p]+=d.n;r.setNodeMarkup(r.mapping.map(t+1+d.pos),null,Kr(f,f.colspan-d.n,d.n))}else if(d.type=="missing")i[d.row]+=d.n;else if(d.type=="overlong_rowspan"){const u=e.nodeAt(d.pos);if(!u)continue;r.setNodeMarkup(r.mapping.map(t+1+d.pos),null,{...u.attrs,rowspan:u.attrs.rowspan-d.n})}else if(d.type=="colwidth mismatch"){const u=e.nodeAt(d.pos);if(!u)continue;r.setNodeMarkup(r.mapping.map(t+1+d.pos),null,{...u.attrs,colwidth:d.colwidth})}else if(d.type=="zero_sized"){const u=r.mapping.map(t);r.delete(u,u+e.nodeSize)}}let l,a;for(let c=0;c<i.length;c++)i[c]&&(l==null&&(l=c),a=c);for(let c=0,d=t+1;c<o.height;c++){const u=e.child(c),f=d+u.nodeSize,p=i[c];if(p>0){let h="cell";u.firstChild&&(h=u.firstChild.type.spec.tableRole);const m=[];for(let y=0;y<p;y++){const b=Tt(n.schema)[h].createAndFill();b&&m.push(b)}const g=(c==0||l==c-1)&&a==c?d+1:f-1;r.insert(r.mapping.map(g),m)}d=f}return r.setMeta(UO,{fixTables:!0})}function Cn(n){const e=n.selection,t=Ql(n),r=t.node(-1),o=t.start(-1),i=st.get(r);return{...e instanceof Ge?i.rectBetween(e.$anchorCell.pos-o,e.$headCell.pos-o):i.findCell(t.pos-o),tableStart:o,map:i,table:r}}function o0(n,{map:e,tableStart:t,table:r},o){let i=o>0?-1:0;RO(e,r,o+i)&&(i=o==0||o==e.width?null:0);for(let l=0;l<e.height;l++){const a=l*e.width+o;if(o>0&&o<e.width&&e.map[a-1]==e.map[a]){const c=e.map[a],d=r.nodeAt(c);n.setNodeMarkup(n.mapping.map(t+c),null,t0(d.attrs,o-e.colCount(c))),l+=d.attrs.rowspan-1}else{const c=i==null?Tt(r.type.schema).cell:r.nodeAt(e.map[a+i]).type,d=e.positionAt(l,o,r);n.insert(n.mapping.map(t+d),c.createAndFill())}}return n}function KO(n,e){if(!an(n))return!1;if(e){const t=Cn(n);e(o0(n.tr,t,t.left))}return!0}function qO(n,e){if(!an(n))return!1;if(e){const t=Cn(n);e(o0(n.tr,t,t.right))}return!0}function GO(n,{map:e,table:t,tableStart:r},o){const i=n.mapping.maps.length;for(let l=0;l<e.height;){const a=l*e.width+o,c=e.map[a],d=t.nodeAt(c),u=d.attrs;if(o>0&&e.map[a-1]==c||o<e.width-1&&e.map[a+1]==c)n.setNodeMarkup(n.mapping.slice(i).map(r+c),null,Kr(u,o-e.colCount(c)));else{const f=n.mapping.slice(i).map(r+c);n.delete(f,f+d.nodeSize)}l+=u.rowspan}}function JO(n,e){if(!an(n))return!1;if(e){const t=Cn(n),r=n.tr;if(t.left==0&&t.right==t.map.width)return!1;for(let o=t.right-1;GO(r,t,o),o!=t.left;o--){const i=t.tableStart?r.doc.nodeAt(t.tableStart-1):r.doc;if(!i)throw new RangeError("No table found");t.table=i,t.map=st.get(i)}e(r)}return!0}function YO(n,e,t){var r;const o=Tt(e.type.schema).header_cell;for(let i=0;i<n.width;i++)if(((r=e.nodeAt(n.map[i+t*n.width]))===null||r===void 0?void 0:r.type)!=o)return!1;return!0}function s0(n,{map:e,tableStart:t,table:r},o){let i=t;for(let d=0;d<o;d++)i+=r.child(d).nodeSize;const l=[];let a=o>0?-1:0;YO(e,r,o+a)&&(a=o==0||o==e.height?null:0);for(let d=0,u=e.width*o;d<e.width;d++,u++)if(o>0&&o<e.height&&e.map[u]==e.map[u-e.width]){const f=e.map[u],p=r.nodeAt(f).attrs;n.setNodeMarkup(t+f,null,{...p,rowspan:p.rowspan+1}),d+=p.colspan-1}else{var c;const f=a==null?Tt(r.type.schema).cell:(c=r.nodeAt(e.map[u+a*e.width]))===null||c===void 0?void 0:c.type,p=f?.createAndFill();p&&l.push(p)}return n.insert(i,Tt(r.type.schema).row.create(null,l)),n}function XO(n,e){if(!an(n))return!1;if(e){const t=Cn(n);e(s0(n.tr,t,t.top))}return!0}function ZO(n,e){if(!an(n))return!1;if(e){const t=Cn(n);e(s0(n.tr,t,t.bottom))}return!0}function QO(n,{map:e,table:t,tableStart:r},o){let i=0;for(let d=0;d<o;d++)i+=t.child(d).nodeSize;const l=i+t.child(o).nodeSize,a=n.mapping.maps.length;n.delete(i+r,l+r);const c=new Set;for(let d=0,u=o*e.width;d<e.width;d++,u++){const f=e.map[u];if(!c.has(f)){if(c.add(f),o>0&&f==e.map[u-e.width]){const p=t.nodeAt(f).attrs;n.setNodeMarkup(n.mapping.slice(a).map(f+r),null,{...p,rowspan:p.rowspan-1}),d+=p.colspan-1}else if(o<e.height&&f==e.map[u+e.width]){const p=t.nodeAt(f),h=p.attrs,m=p.type.create({...h,rowspan:p.attrs.rowspan-1},p.content),g=e.positionAt(o+1,d,t);n.insert(n.mapping.slice(a).map(r+g),m),d+=h.colspan-1}}}}function eR(n,e){if(!an(n))return!1;if(e){const t=Cn(n),r=n.tr;if(t.top==0&&t.bottom==t.map.height)return!1;for(let o=t.bottom-1;QO(r,t,o),o!=t.top;o--){const i=t.tableStart?r.doc.nodeAt(t.tableStart-1):r.doc;if(!i)throw new RangeError("No table found");t.table=i,t.map=st.get(t.table)}e(r)}return!0}function i0(n){const e=n.content;return e.childCount==1&&e.child(0).isTextblock&&e.child(0).childCount==0}function tR({width:n,height:e,map:t},r){let o=r.top*n+r.left,i=o,l=(r.bottom-1)*n+r.left,a=o+(r.right-r.left-1);for(let c=r.top;c<r.bottom;c++){if(r.left>0&&t[i]==t[i-1]||r.right<n&&t[a]==t[a+1])return!0;i+=n,a+=n}for(let c=r.left;c<r.right;c++){if(r.top>0&&t[o]==t[o-n]||r.bottom<e&&t[l]==t[l+n])return!0;o++,l++}return!1}function l0(n,e){const t=n.selection;if(!(t instanceof Ge)||t.$anchorCell.pos==t.$headCell.pos)return!1;const r=Cn(n),{map:o}=r;if(tR(o,r))return!1;if(e){const i=n.tr,l={};let a=Q.empty,c,d;for(let u=r.top;u<r.bottom;u++)for(let f=r.left;f<r.right;f++){const p=o.map[u*o.width+f],h=r.table.nodeAt(p);if(!(l[p]||!h))if(l[p]=!0,c==null)c=p,d=h;else{i0(h)||(a=a.append(h.content));const m=i.mapping.map(p+r.tableStart);i.delete(m,m+h.nodeSize)}}if(c==null||d==null)return!0;if(i.setNodeMarkup(c+r.tableStart,null,{...t0(d.attrs,d.attrs.colspan,r.right-r.left-d.attrs.colspan),rowspan:r.bottom-r.top}),a.size>0){const u=c+1+d.content.size,f=i0(d)?c+1:u;i.replaceWith(f+r.tableStart,u+r.tableStart,a)}i.setSelection(new Ge(i.doc.resolve(c+r.tableStart))),e(i)}return!0}function a0(n,e){const t=Tt(n.schema);return nR(({node:r})=>t[r.type.spec.tableRole])(n,e)}function nR(n){return(e,t)=>{const r=e.selection;let o,i;if(r instanceof Ge){if(r.$anchorCell.pos!=r.$headCell.pos)return!1;o=r.$anchorCell.nodeAfter,i=r.$anchorCell.pos}else{var l;if(o=LO(r.$from),!o)return!1;i=(l=Wr(r.$from))===null||l===void 0?void 0:l.pos}if(o==null||i==null||o.attrs.colspan==1&&o.attrs.rowspan==1)return!1;if(t){let a=o.attrs;const c=[],d=a.colwidth;a.rowspan>1&&(a={...a,rowspan:1}),a.colspan>1&&(a={...a,colspan:1});const u=Cn(e),f=e.tr;for(let h=0;h<u.right-u.left;h++)c.push(d?{...a,colwidth:d&&d[h]?[d[h]]:null}:a);let p;for(let h=u.top;h<u.bottom;h++){let m=u.map.positionAt(h,u.left,u.table);h==u.top&&(m+=o.nodeSize);for(let g=u.left,y=0;g<u.right;g++,y++)g==u.left&&h==u.top||f.insert(p=f.mapping.map(m+u.tableStart,1),n({node:o,row:h,col:g}).createAndFill(c[y]))}f.setNodeMarkup(i,n({node:o,row:u.top,col:u.left}),c[0]),r instanceof Ge&&f.setSelection(new Ge(f.doc.resolve(r.$anchorCell.pos),p?f.doc.resolve(p):void 0)),t(f)}return!0}}function rR(n,e){return function(t,r){if(!an(t))return!1;const o=Ql(t);if(o.nodeAfter.attrs[n]===e)return!1;if(r){const i=t.tr;t.selection instanceof Ge?t.selection.forEachCell((l,a)=>{l.attrs[n]!==e&&i.setNodeMarkup(a,null,{...l.attrs,[n]:e})}):i.setNodeMarkup(o.pos,null,{...o.nodeAfter.attrs,[n]:e}),r(i)}return!0}}function oR(n){return function(e,t){if(!an(e))return!1;if(t){const r=Tt(e.schema),o=Cn(e),i=e.tr,l=o.map.cellsInRect(n=="column"?{left:o.left,top:0,right:o.right,bottom:o.map.height}:n=="row"?{left:0,top:o.top,right:o.map.width,bottom:o.bottom}:o),a=l.map(c=>o.table.nodeAt(c));for(let c=0;c<l.length;c++)a[c].type==r.header_cell&&i.setNodeMarkup(o.tableStart+l[c],r.cell,a[c].attrs);if(i.steps.length===0)for(let c=0;c<l.length;c++)i.setNodeMarkup(o.tableStart+l[c],r.header_cell,a[c].attrs);t(i)}return!0}}function c0(n,e,t){const r=e.map.cellsInRect({left:0,top:0,right:n=="row"?e.map.width:1,bottom:n=="column"?e.map.height:1});for(let o=0;o<r.length;o++){const i=e.table.nodeAt(r[o]);if(i&&i.type!==t.header_cell)return!1}return!0}function Ls(n,e){return e=e||{useDeprecatedLogic:!1},e.useDeprecatedLogic?oR(n):function(t,r){if(!an(t))return!1;if(r){const o=Tt(t.schema),i=Cn(t),l=t.tr,a=c0("row",i,o),c=c0("column",i,o),d=(n==="column"?a:n==="row"&&c)?1:0,u=n=="column"?{left:0,top:d,right:1,bottom:i.map.height}:n=="row"?{left:d,top:0,right:i.map.width,bottom:1}:i,f=n=="column"?c?o.cell:o.header_cell:n=="row"?a?o.cell:o.header_cell:o.cell;i.map.cellsInRect(u).forEach(p=>{const h=p+i.tableStart,m=l.doc.nodeAt(h);m&&l.setNodeMarkup(h,f,m.attrs)}),r(l)}return!0}}Ls("row",{useDeprecatedLogic:!0}),Ls("column",{useDeprecatedLogic:!0});const sR=Ls("cell",{useDeprecatedLogic:!0});function iR(n,e){if(e<0){const t=n.nodeBefore;if(t)return n.pos-t.nodeSize;for(let r=n.index(-1)-1,o=n.before();r>=0;r--){const i=n.node(-1).child(r),l=i.lastChild;if(l)return o-1-l.nodeSize;o-=i.nodeSize}}else{if(n.index()<n.parent.childCount-1)return n.pos+n.nodeAfter.nodeSize;const t=n.node(-1);for(let r=n.indexAfter(-1),o=n.after();r<t.childCount;r++){const i=t.child(r);if(i.childCount)return o+1;o+=i.nodeSize}}return null}function d0(n){return function(e,t){if(!an(e))return!1;const r=iR(Ql(e),n);if(r==null)return!1;if(t){const o=e.doc.resolve(r);t(e.tr.setSelection(ye.between(o,OO(o))).scrollIntoView())}return!0}}function lR(n,e){const t=n.selection.$anchor;for(let r=t.depth;r>0;r--)if(t.node(r).type.spec.tableRole=="table")return e&&e(n.tr.delete(t.before(r),t.after(r)).scrollIntoView()),!0;return!1}function ea(n,e){const t=n.selection;if(!(t instanceof Ge))return!1;if(e){const r=n.tr,o=Tt(n.schema).cell.createAndFill().content;t.forEachCell((i,l)=>{i.content.eq(o)||r.replace(r.mapping.map(l+1),r.mapping.map(l+i.nodeSize-1),new pe(o,0,0))}),r.docChanged&&e(r)}return!0}function aR(n){if(n.size===0)return null;let{content:e,openStart:t,openEnd:r}=n;for(;e.childCount==1&&(t>0&&r>0||e.child(0).type.spec.tableRole=="table");)t--,r--,e=e.child(0).content;const o=e.child(0),i=o.type.spec.tableRole,l=o.type.schema,a=[];if(i=="row")for(let c=0;c<e.childCount;c++){let d=e.child(c).content;const u=c?0:Math.max(0,t-1),f=c<e.childCount-1?0:Math.max(0,r-1);(u||f)&&(d=au(Tt(l).row,new pe(d,u,f)).content),a.push(d)}else if(i=="cell"||i=="header_cell")a.push(t||r?au(Tt(l).row,new pe(e,t,r)).content:e);else return null;return cR(l,a)}function cR(n,e){const t=[];for(let o=0;o<e.length;o++){const i=e[o];for(let l=i.childCount-1;l>=0;l--){const{rowspan:a,colspan:c}=i.child(l).attrs;for(let d=o;d<o+a;d++)t[d]=(t[d]||0)+c}}let r=0;for(let o=0;o<t.length;o++)r=Math.max(r,t[o]);for(let o=0;o<t.length;o++)if(o>=e.length&&e.push(Q.empty),t[o]<r){const i=Tt(n).cell.createAndFill(),l=[];for(let a=t[o];a<r;a++)l.push(i);e[o]=e[o].append(Q.from(l))}return{height:e.length,width:r,rows:e}}function au(n,e){const t=n.createAndFill();return new fc(t).replace(0,t.content.size,e).doc}function dR({width:n,height:e,rows:t},r,o){if(n!=r){const i=[],l=[];for(let a=0;a<t.length;a++){const c=t[a],d=[];for(let u=i[a]||0,f=0;u<r;f++){let p=c.child(f%c.childCount);u+p.attrs.colspan>r&&(p=p.type.createChecked(Kr(p.attrs,p.attrs.colspan,u+p.attrs.colspan-r),p.content)),d.push(p),u+=p.attrs.colspan;for(let h=1;h<p.attrs.rowspan;h++)i[a+h]=(i[a+h]||0)+p.attrs.colspan}l.push(Q.from(d))}t=l,n=r}if(e!=o){const i=[];for(let l=0,a=0;l<o;l++,a++){const c=[],d=t[a%e];for(let u=0;u<d.childCount;u++){let f=d.child(u);l+f.attrs.rowspan>o&&(f=f.type.create({...f.attrs,rowspan:Math.max(1,o-f.attrs.rowspan)},f.content)),c.push(f)}i.push(Q.from(c))}t=i,e=o}return{width:n,height:e,rows:t}}function uR(n,e,t,r,o,i,l){const a=n.doc.type.schema,c=Tt(a);let d,u;if(o>e.width)for(let f=0,p=0;f<e.height;f++){const h=t.child(f);p+=h.nodeSize;const m=[];let g;h.lastChild==null||h.lastChild.type==c.cell?g=d||(d=c.cell.createAndFill()):g=u||(u=c.header_cell.createAndFill());for(let y=e.width;y<o;y++)m.push(g);n.insert(n.mapping.slice(l).map(p-1+r),m)}if(i>e.height){const f=[];for(let m=0,g=(e.height-1)*e.width;m<Math.max(e.width,o);m++){const y=m>=e.width?!1:t.nodeAt(e.map[g+m]).type==c.header_cell;f.push(y?u||(u=c.header_cell.createAndFill()):d||(d=c.cell.createAndFill()))}const p=c.row.create(null,Q.from(f)),h=[];for(let m=e.height;m<i;m++)h.push(p);n.insert(n.mapping.slice(l).map(r+t.nodeSize-2),h)}return!!(d||u)}function u0(n,e,t,r,o,i,l,a){if(l==0||l==e.height)return!1;let c=!1;for(let d=o;d<i;d++){const u=l*e.width+d,f=e.map[u];if(e.map[u-e.width]==f){c=!0;const p=t.nodeAt(f),{top:h,left:m}=e.findCell(f);n.setNodeMarkup(n.mapping.slice(a).map(f+r),null,{...p.attrs,rowspan:l-h}),n.insert(n.mapping.slice(a).map(e.positionAt(l,m,t)),p.type.createAndFill({...p.attrs,rowspan:h+p.attrs.rowspan-l})),d+=p.attrs.colspan-1}}return c}function f0(n,e,t,r,o,i,l,a){if(l==0||l==e.width)return!1;let c=!1;for(let d=o;d<i;d++){const u=d*e.width+l,f=e.map[u];if(e.map[u-1]==f){c=!0;const p=t.nodeAt(f),h=e.colCount(f),m=n.mapping.slice(a).map(f+r);n.setNodeMarkup(m,null,Kr(p.attrs,l-h,p.attrs.colspan-(l-h))),n.insert(m+p.nodeSize,p.type.createAndFill(Kr(p.attrs,0,l-h))),d+=p.attrs.rowspan-1}}return c}function p0(n,e,t,r,o){let i=t?n.doc.nodeAt(t-1):n.doc;if(!i)throw new Error("No table found");let l=st.get(i);const{top:a,left:c}=r,d=c+o.width,u=a+o.height,f=n.tr;let p=0;function h(){if(i=t?f.doc.nodeAt(t-1):f.doc,!i)throw new Error("No table found");l=st.get(i),p=f.mapping.maps.length}uR(f,l,i,t,d,u,p)&&h(),u0(f,l,i,t,c,d,a,p)&&h(),u0(f,l,i,t,c,d,u,p)&&h(),f0(f,l,i,t,a,u,c,p)&&h(),f0(f,l,i,t,a,u,d,p)&&h();for(let m=a;m<u;m++){const g=l.positionAt(m,c,i),y=l.positionAt(m,d,i);f.replace(f.mapping.slice(p).map(g+t),f.mapping.slice(p).map(y+t),new pe(o.rows[m-a],0,0))}h(),f.setSelection(new Ge(f.doc.resolve(t+l.positionAt(a,c,i)),f.doc.resolve(t+l.positionAt(u-1,d-1,i)))),e(f)}const fR=Gc({ArrowLeft:na("horiz",-1),ArrowRight:na("horiz",1),ArrowUp:na("vert",-1),ArrowDown:na("vert",1),"Shift-ArrowLeft":ra("horiz",-1),"Shift-ArrowRight":ra("horiz",1),"Shift-ArrowUp":ra("vert",-1),"Shift-ArrowDown":ra("vert",1),Backspace:ea,"Mod-Backspace":ea,Delete:ea,"Mod-Delete":ea});function ta(n,e,t){return t.eq(n.selection)?!1:(e&&e(n.tr.setSelection(t).scrollIntoView()),!0)}function na(n,e){return(t,r,o)=>{if(!o)return!1;const i=t.selection;if(i instanceof Ge)return ta(t,r,_e.near(i.$headCell,e));if(n!="horiz"&&!i.empty)return!1;const l=h0(o,n,e);if(l==null)return!1;if(n=="horiz")return ta(t,r,_e.near(t.doc.resolve(i.head+e),e));{const a=t.doc.resolve(l),c=e0(a,n,e);let d;return c?d=_e.near(c,1):e<0?d=_e.near(t.doc.resolve(a.before(-1)),-1):d=_e.near(t.doc.resolve(a.after(-1)),1),ta(t,r,d)}}}function ra(n,e){return(t,r,o)=>{if(!o)return!1;const i=t.selection;let l;if(i instanceof Ge)l=i;else{const c=h0(o,n,e);if(c==null)return!1;l=new Ge(t.doc.resolve(c))}const a=e0(l.$headCell,n,e);return a?ta(t,r,new Ge(l.$anchorCell,a)):!1}}function pR(n,e){const t=n.state.doc,r=Wr(t.resolve(e));return r?(n.dispatch(n.state.tr.setSelection(new Ge(r))),!0):!1}function hR(n,e,t){if(!an(n.state))return!1;let r=aR(t);const o=n.state.selection;if(o instanceof Ge){r||(r={width:1,height:1,rows:[Q.from(au(Tt(n.state.schema).cell,t))]});const i=o.$anchorCell.node(-1),l=o.$anchorCell.start(-1),a=st.get(i).rectBetween(o.$anchorCell.pos-l,o.$headCell.pos-l);return r=dR(r,a.right-a.left,a.bottom-a.top),p0(n.state,n.dispatch,l,a,r),!0}else if(r){const i=Ql(n.state),l=i.start(-1);return p0(n.state,n.dispatch,l,st.get(i.node(-1)).findCell(i.pos-l),r),!0}else return!1}function mR(n,e){var t;if(e.button!=0||e.ctrlKey||e.metaKey)return;const r=m0(n,e.target);let o;if(e.shiftKey&&n.state.selection instanceof Ge)i(n.state.selection.$anchorCell,e),e.preventDefault();else if(e.shiftKey&&r&&(o=Wr(n.state.selection.$anchor))!=null&&((t=cu(n,e))===null||t===void 0?void 0:t.pos)!=o.pos)i(o,e),e.preventDefault();else if(!r)return;function i(c,d){let u=cu(n,d);const f=hr.getState(n.state)==null;if(!u||!lu(c,u))if(f)u=c;else return;const p=new Ge(c,u);if(f||!n.state.selection.eq(p)){const h=n.state.tr.setSelection(p);f&&h.setMeta(hr,c.pos),n.dispatch(h)}}function l(){n.root.removeEventListener("mouseup",l),n.root.removeEventListener("dragstart",l),n.root.removeEventListener("mousemove",a),hr.getState(n.state)!=null&&n.dispatch(n.state.tr.setMeta(hr,-1))}function a(c){const d=c,u=hr.getState(n.state);let f;if(u!=null)f=n.state.doc.resolve(u);else if(m0(n,d.target)!=r&&(f=cu(n,e),!f))return l();f&&i(f,d)}n.root.addEventListener("mouseup",l),n.root.addEventListener("dragstart",l),n.root.addEventListener("mousemove",a)}function h0(n,e,t){if(!(n.state.selection instanceof ye))return null;const{$head:r}=n.state.selection;for(let o=r.depth-1;o>=0;o--){const i=r.node(o);if((t<0?r.index(o):r.indexAfter(o))!=(t<0?0:i.childCount))return null;if(i.type.spec.tableRole=="cell"||i.type.spec.tableRole=="header_cell"){const l=r.before(o),a=e=="vert"?t>0?"down":"up":t>0?"right":"left";return n.endOfTextblock(a)?l:null}}return null}function m0(n,e){for(;e&&e!=n.dom;e=e.parentNode)if(e.nodeName=="TD"||e.nodeName=="TH")return e;return null}function cu(n,e){const t=n.posAtCoords({left:e.clientX,top:e.clientY});if(!t)return null;let{inside:r,pos:o}=t;return r>=0&&Wr(n.state.doc.resolve(r))||Wr(n.state.doc.resolve(o))}var gR=class{constructor(e,t){this.node=e,this.defaultCellMinWidth=t,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),this.table.style.setProperty("--default-cell-min-width",`${t}px`),this.colgroup=this.table.appendChild(document.createElement("colgroup")),du(e,this.colgroup,this.table,t),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(e){return e.type!=this.node.type?!1:(this.node=e,du(e,this.colgroup,this.table,this.defaultCellMinWidth),!0)}ignoreMutation(e){return e.type=="attributes"&&(e.target==this.table||this.colgroup.contains(e.target))}};function du(n,e,t,r,o,i){let l=0,a=!0,c=e.firstChild;const d=n.firstChild;if(d){for(let f=0,p=0;f<d.childCount;f++){const{colspan:h,colwidth:m}=d.child(f).attrs;for(let g=0;g<h;g++,p++){const y=o==p?i:m&&m[g],b=y?y+"px":"";if(l+=y||r,y||(a=!1),c)c.style.width!=b&&(c.style.width=b),c=c.nextSibling;else{const w=document.createElement("col");w.style.width=b,e.appendChild(w)}}}for(;c;){var u;const f=c.nextSibling;(u=c.parentNode)===null||u===void 0||u.removeChild(c),c=f}a?(t.style.width=l+"px",t.style.minWidth=""):(t.style.width="",t.style.minWidth=l+"px")}}const jt=new Ze("tableColumnResizing");function yR({handleWidth:n=5,cellMinWidth:e=25,defaultCellMinWidth:t=100,View:r=gR,lastColumnResizable:o=!0}={}){const i=new Ue({key:jt,state:{init(l,a){var c;const d=(c=i.spec)===null||c===void 0||(c=c.props)===null||c===void 0?void 0:c.nodeViews,u=Tt(a.schema).table.name;return r&&d&&(d[u]=(f,p)=>new r(f,t,p)),new bR(-1,!1)},apply(l,a){return a.apply(l)}},props:{attributes:l=>{const a=jt.getState(l);return a&&a.activeHandle>-1?{class:"resize-cursor"}:{}},handleDOMEvents:{mousemove:(l,a)=>{kR(l,a,n,o)},mouseleave:l=>{wR(l)},mousedown:(l,a)=>{xR(l,a,e,t)}},decorations:l=>{const a=jt.getState(l);if(a&&a.activeHandle>-1)return MR(l,a.activeHandle)},nodeViews:{}}});return i}var bR=class pa{constructor(e,t){this.activeHandle=e,this.dragging=t}apply(e){const t=this,r=e.getMeta(jt);if(r&&r.setHandle!=null)return new pa(r.setHandle,!1);if(r&&r.setDragging!==void 0)return new pa(t.activeHandle,r.setDragging);if(t.activeHandle>-1&&e.docChanged){let o=e.mapping.map(t.activeHandle,-1);return iu(e.doc.resolve(o))||(o=-1),new pa(o,t.dragging)}return t}};function kR(n,e,t,r){if(!n.editable)return;const o=jt.getState(n.state);if(o&&!o.dragging){const i=CR(e.target);let l=-1;if(i){const{left:a,right:c}=i.getBoundingClientRect();e.clientX-a<=t?l=g0(n,e,"left",t):c-e.clientX<=t&&(l=g0(n,e,"right",t))}if(l!=o.activeHandle){if(!r&&l!==-1){const a=n.state.doc.resolve(l),c=a.node(-1),d=st.get(c),u=a.start(-1);if(d.colCount(a.pos-u)+a.nodeAfter.attrs.colspan-1==d.width-1)return}b0(n,l)}}}function wR(n){if(!n.editable)return;const e=jt.getState(n.state);e&&e.activeHandle>-1&&!e.dragging&&b0(n,-1)}function xR(n,e,t,r){var o;if(!n.editable)return!1;const i=(o=n.dom.ownerDocument.defaultView)!==null&&o!==void 0?o:window,l=jt.getState(n.state);if(!l||l.activeHandle==-1||l.dragging)return!1;const a=n.state.doc.nodeAt(l.activeHandle),c=vR(n,l.activeHandle,a.attrs);n.dispatch(n.state.tr.setMeta(jt,{setDragging:{startX:e.clientX,startWidth:c}}));function d(f){i.removeEventListener("mouseup",d),i.removeEventListener("mousemove",u);const p=jt.getState(n.state);p?.dragging&&(SR(n,p.activeHandle,y0(p.dragging,f,t)),n.dispatch(n.state.tr.setMeta(jt,{setDragging:null})))}function u(f){if(!f.which)return d(f);const p=jt.getState(n.state);if(p&&p.dragging){const h=y0(p.dragging,f,t);k0(n,p.activeHandle,h,r)}}return k0(n,l.activeHandle,c,r),i.addEventListener("mouseup",d),i.addEventListener("mousemove",u),e.preventDefault(),!0}function vR(n,e,{colspan:t,colwidth:r}){const o=r&&r[r.length-1];if(o)return o;const i=n.domAtPos(e);let l=i.node.childNodes[i.offset].offsetWidth,a=t;if(r)for(let c=0;c<t;c++)r[c]&&(l-=r[c],a--);return l/a}function CR(n){for(;n&&n.nodeName!="TD"&&n.nodeName!="TH";)n=n.classList&&n.classList.contains("ProseMirror")?null:n.parentNode;return n}function g0(n,e,t,r){const o=t=="right"?-r:r,i=n.posAtCoords({left:e.clientX+o,top:e.clientY});if(!i)return-1;const{pos:l}=i,a=Wr(n.state.doc.resolve(l));if(!a)return-1;if(t=="right")return a.pos;const c=st.get(a.node(-1)),d=a.start(-1),u=c.map.indexOf(a.pos-d);return u%c.width==0?-1:d+c.map[u-1]}function y0(n,e,t){const r=e.clientX-n.startX;return Math.max(t,n.startWidth+r)}function b0(n,e){n.dispatch(n.state.tr.setMeta(jt,{setHandle:e}))}function SR(n,e,t){const r=n.state.doc.resolve(e),o=r.node(-1),i=st.get(o),l=r.start(-1),a=i.colCount(r.pos-l)+r.nodeAfter.attrs.colspan-1,c=n.state.tr;for(let d=0;d<i.height;d++){const u=d*i.width+a;if(d&&i.map[u]==i.map[u-i.width])continue;const f=i.map[u],p=o.nodeAt(f).attrs,h=p.colspan==1?0:a-i.colCount(f);if(p.colwidth&&p.colwidth[h]==t)continue;const m=p.colwidth?p.colwidth.slice():ER(p.colspan);m[h]=t,c.setNodeMarkup(l+f,null,{...p,colwidth:m})}c.docChanged&&n.dispatch(c)}function k0(n,e,t,r){const o=n.state.doc.resolve(e),i=o.node(-1),l=o.start(-1),a=st.get(i).colCount(o.pos-l)+o.nodeAfter.attrs.colspan-1;let c=n.domAtPos(o.start(-1)).node;for(;c&&c.nodeName!="TABLE";)c=c.parentNode;c&&du(i,c.firstChild,c,r,a,t)}function ER(n){return Array(n).fill(0)}function MR(n,e){const t=[],r=n.doc.resolve(e),o=r.node(-1);if(!o)return Ie.empty;const i=st.get(o),l=r.start(-1),a=i.colCount(r.pos-l)+r.nodeAfter.attrs.colspan-1;for(let d=0;d<i.height;d++){const u=a+d*i.width;if((a==i.width-1||i.map[u]!=i.map[u+1])&&(d==0||i.map[u]!=i.map[u-i.width])){var c;const f=i.map[u],p=l+f+o.nodeAt(f).nodeSize-1,h=document.createElement("div");h.className="column-resize-handle",!((c=jt.getState(n))===null||c===void 0)&&c.dragging&&t.push(At.node(l+f,l+f+o.nodeAt(f).nodeSize,{class:"column-resize-dragging"})),t.push(At.widget(p,h))}}return Ie.create(n.doc,t)}function AR({allowTableNodeSelection:n=!1}={}){return new Ue({key:hr,state:{init(){return null},apply(e,t){const r=e.getMeta(hr);if(r!=null)return r==-1?null:r;if(t==null||!e.docChanged)return t;const{deleted:o,pos:i}=e.mapping.mapResult(t);return o?null:i}},props:{decorations:PO,handleDOMEvents:{mousedown:mR},createSelectionBetween(e){return hr.getState(e.state)!=null?e.state.selection:null},handleTripleClick:pR,handleKeyDown:fR,handlePaste:hR},appendTransaction(e,t,r){return jO(r,r0(r,t),n)}})}function oa(n){return n==="left"||n==="right"||n==="center"?n:null}function _R(n){const e=(n.style.textAlign||"").trim().toLowerCase(),t=(n.getAttribute("align")||"").trim().toLowerCase();return oa(e||t)}function TR(n){return oa(n?.align)}function w0(){return{default:null,parseHTML:n=>_R(n),renderHTML:n=>n.align?{style:`text-align: ${n.align}`}:{}}}function BR(n){var e;const t=n.parentElement,r=n.closest("table");if(!t||!r)return null;const o=Array.from(t.children).indexOf(n),i=(e=r.querySelectorAll("colgroup > col")[o])==null?void 0:e.getAttribute("width");return i?[parseInt(i,10)]:null}function x0(n){const e=n.getAttribute("colwidth");return e?e.split(",").map(t=>parseInt(t,10)):BR(n)}var NR=/[ \t\r\n\f]+/g;function v0(n){var e;return n.children.length>0?!1:((e=n.textContent)!=null?e:"").replace(NR,"")===""}function C0(n){const e=n.createAndFill();if(!e)throw new Error(`[tiptap error]: "${n.name}" has no default content to backfill.`);return e.content}var S0=ut.create({name:"tableCell",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:x0},align:w0()}},tableRole:"cell",isolating:!0,parseHTML(){return[{tag:"td",getAttrs:n=>v0(n)?{}:!1,getContent:(n,e)=>C0(e.nodes[this.name])},{tag:"td"}]},renderHTML({HTMLAttributes:n}){return["td",ze(this.options.HTMLAttributes,n),0]}}),E0=ut.create({name:"tableHeader",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:x0},align:w0()}},tableRole:"header_cell",isolating:!0,parseHTML(){return[{tag:"th",getAttrs:n=>v0(n)?{}:!1,getContent:(n,e)=>C0(e.nodes[this.name])},{tag:"th"}]},renderHTML({HTMLAttributes:n}){return["th",ze(this.options.HTMLAttributes,n),0]}}),M0=ut.create({name:"tableRow",addOptions(){return{HTMLAttributes:{}}},content:"(tableCell | tableHeader)*",tableRole:"row",parseHTML(){return[{tag:"tr"}]},renderHTML({HTMLAttributes:n}){return["tr",ze(this.options.HTMLAttributes,n),0]}});function uu(n,e){return e?["width",`${Math.max(e,n)}px`]:["min-width",`${n}px`]}function fu(n,e,t,r,o,i){var l;let a=0,c=!0,d=e.firstChild;const u=n.firstChild;if(u!==null)for(let p=0,h=0;p<u.childCount;p+=1){const{colspan:m,colwidth:g}=u.child(p).attrs;for(let y=0;y<m;y+=1,h+=1){const b=o===h?i:g&&g[y],w=b?`${b}px`:"";if(a+=b||r,b||(c=!1),d){if(d.style.width!==w){const[v,S]=uu(r,b);d.style.setProperty(v,S)}d=d.nextSibling}else{const v=document.createElement("col"),[S,N]=uu(r,b);v.style.setProperty(S,N),e.appendChild(v)}}}for(;d;){const p=d.nextSibling;(l=d.parentNode)==null||l.removeChild(d),d=p}const f=n.attrs.style&&typeof n.attrs.style=="string"&&/\bwidth\s*:/i.test(n.attrs.style);c&&!f?(t.style.width=`${a}px`,t.style.minWidth=""):(t.style.width="",t.style.minWidth=`${a}px`)}var A0=class{constructor(n,e,t,r={}){this.node=n,this.cellMinWidth=e,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table"));for(const[o,i]of Object.entries(r))i!=null&&(o==="style"?this.table.style.cssText=String(i):this.table.setAttribute(o,String(i)));n.attrs.style&&(this.table.style.cssText=n.attrs.style),this.colgroup=this.table.appendChild(document.createElement("colgroup")),fu(n,this.colgroup,this.table,e),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(n){return n.type!==this.node.type?!1:(this.node=n,fu(n,this.colgroup,this.table,this.cellMinWidth),!0)}ignoreMutation(n){const e=n.target,t=this.dom.contains(e),r=this.contentDOM.contains(e);return!!(t&&!r&&(n.type==="attributes"||n.type==="childList"||n.type==="characterData"))}};function _0(n,e,t,r){let o=0,i=!0;const l=[],a=n.firstChild;if(!a)return{};for(let f=0,p=0;f<a.childCount;f+=1){const{colspan:h,colwidth:m}=a.child(f).attrs;for(let g=0;g<h;g+=1,p+=1){const y=t===p?r:m&&m[g];o+=y||e,y||(i=!1);const[b,w]=uu(e,y);l.push(["col",{style:`${b}: ${w}`}])}}const c=i?`${o}px`:"",d=i?"":`${o}px`;return{colgroup:["colgroup",{},...l],tableWidth:c,tableMinWidth:d}}function T0(n,e){return e?n.createChecked(null,e):n.createAndFill()}function DR(n){if(n.cached.tableNodeTypes)return n.cached.tableNodeTypes;const e={};return Object.keys(n.nodes).forEach(t=>{const r=n.nodes[t];r.spec.tableRole&&(e[r.spec.tableRole]=r)}),n.cached.tableNodeTypes=e,e}function B0(n,e,t,r,o){const i=DR(n),l=[],a=[];for(let d=0;d<t;d+=1){const u=T0(i.cell,o);if(u&&a.push(u),r){const f=T0(i.header_cell,o);f&&l.push(f)}}const c=[];for(let d=0;d<e;d+=1)c.push(i.row.createChecked(null,r&&d===0?l:a));return i.table.createChecked(null,c)}function VR(n){return n instanceof Ge}var sa=({editor:n})=>{const{selection:e}=n.state;if(!VR(e))return!1;let t=0;const r=mo(e.ranges[0].$from,i=>i.type.name==="table");return r?.node.descendants(i=>{if(i.type.name==="table")return!1;["tableCell","tableHeader"].includes(i.type.name)&&(t+=1)}),t===e.ranges.length?(n.commands.deleteTable(),!0):!1};function N0(n,e){const t=n.mapping.map(e),r=mo(n.selection.$from,l=>l.type.name==="table");if(r?.pos===t)return;const o=n.doc.nodeAt(t);if(!o)return;const i=t+o.nodeSize-1;n.setSelection(ye.near(n.doc.resolve(i),-1))}var D0="";function V0(n){let e="",t=0;for(;t<n.length;){if(n[t]==="\\"&&t+1<n.length){e+=n[t]+n[t+1],t+=2;continue}if(n[t]!=="`"){e+=n[t++];continue}let r=0;for(;t+r<n.length&&n[t+r]==="`";)r+=1;let o=t+r,i=!1;for(;o<n.length;){if(n[o]!=="`"){o+=1;continue}let l=0;for(;o+l<n.length&&n[o+l]==="`";)l+=1;if(l===r){const a=n.slice(t+r,o);e+=n.slice(t,t+r)+a.replace(new RegExp("(?<!\\\\)\\|","g"),"\\|")+n.slice(o,o+r),t=o+r,i=!0;break}o+=l}i||(e+=n.slice(t,t+r),t+=r)}return e}function $0(n){return n.split(`
196
+ `):"",markdownTokenizer:{name:"taskList",level:"block",start(n){var e;const t=(e=n.match(/^\s*[-+*]\s+\[([ xX])\]\s+/))==null?void 0:e.index;return t!==void 0?t:-1},tokenize(n,e,t){const r=i=>{const l=ol(i,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:a=>({indentLevel:a[1].length,mainContent:a[4],checked:a[3].toLowerCase()==="x"}),createToken:(a,c)=>({type:"taskItem",raw:"",mainContent:a.mainContent,indentLevel:a.indentLevel,checked:a.checked,text:a.mainContent,tokens:t.inlineTokens(a.mainContent),nestedTokens:c}),customNestedParser:r},t);if(l){const a={type:"taskList",raw:l.raw,items:l.items},c=i.slice(l.raw.length);return c.trim()?[a,...t.blockTokens(c)]:[a]}return t.blockTokens(i)},o=ol(n,{itemPattern:/^(\s*)([-+*])\s+\[([ xX])\]\s+(.*)$/,extractItemData:i=>({indentLevel:i[1].length,mainContent:i[4],checked:i[3].toLowerCase()==="x"}),createToken:(i,l)=>({type:"taskItem",raw:"",mainContent:i.mainContent,indentLevel:i.indentLevel,checked:i.checked,text:i.mainContent,tokens:t.inlineTokens(i.mainContent),nestedTokens:l}),customNestedParser:r},t);if(o)return{type:"taskList",raw:o.raw,items:o.items}}},markdownOptions:{indentsContent:!0},addCommands(){return{toggleTaskList:()=>({commands:n})=>n.toggleList(this.name,this.options.itemTypeName)}},addKeyboardShortcuts(){return{"Mod-Shift-9":()=>this.editor.commands.toggleTaskList()}}});He.create({name:"listKit",addExtensions(){const n=[];return this.options.bulletList!==!1&&n.push(gy.configure(this.options.bulletList)),this.options.listItem!==!1&&n.push(xy.configure(this.options.listItem)),this.options.listKeymap!==!1&&n.push(My.configure(this.options.listKeymap)),this.options.orderedList!==!1&&n.push(Ny.configure(this.options.orderedList)),this.options.taskItem!==!1&&n.push(LI.configure(this.options.taskItem)),this.options.taskList!==!1&&n.push(II.configure(this.options.taskList)),n}});var Jl="&nbsp;",Zd=" ",Qd=ut.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:n}){return["p",ze(this.options.HTMLAttributes,n),0]},parseMarkdown:(n,e)=>{const t=n.tokens||[];if(t.length===1&&t[0].type==="image")return e.parseChildren([t[0]]);const r=e.parseInline(t);return t.length===1&&t[0].type==="text"&&(t[0].raw===Jl||t[0].text===Jl||t[0].raw===Zd||t[0].text===Zd)&&r.length===1&&r[0].type==="text"&&(r[0].text===Jl||r[0].text===Zd)?e.createNode("paragraph",void 0,[]):e.createNode("paragraph",void 0,r)},renderMarkdown:(n,e,t)=>{var r,o;if(!n)return"";const i=Array.isArray(n.content)?n.content:[];if(i.length===0){const l=Array.isArray((r=t?.previousNode)==null?void 0:r.content)?t.previousNode.content:[];return((o=t?.previousNode)==null?void 0:o.type)==="paragraph"&&l.length===0?Jl:""}return e.renderChildren(i)},addCommands(){return{setParagraph:()=>({commands:n})=>n.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),OI=Qd;const RI=Object.freeze(Object.defineProperty({__proto__:null,Paragraph:Qd,default:OI},Symbol.toStringTag,{value:"Module"}));var FI=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))$/,PI=/(?:^|\s)(~~(?!\s+~~)((?:[^~]+))~~(?!\s+~~))/g,zI=Zt.create({name:"strike",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",consuming:!1,getAttrs:n=>n.includes("line-through")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["s",ze(this.options.HTMLAttributes,n),0]},markdownTokenName:"del",parseMarkdown:(n,e)=>e.applyMark("strike",e.parseInline(n.tokens||[])),renderMarkdown:(n,e)=>`~~${e.renderChildren(n)}~~`,addCommands(){return{setStrike:()=>({commands:n})=>n.setMark(this.name),toggleStrike:()=>({commands:n})=>n.toggleMark(this.name),unsetStrike:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-s":()=>this.editor.commands.toggleStrike()}},addInputRules(){return[Rn({find:FI,type:this.type})]},addPasteRules(){return[bn({find:PI,type:this.type})]}}),HI=ut.create({name:"text",group:"inline",parseMarkdown:n=>({type:"text",text:n.text||""}),renderMarkdown:n=>n.text||""}),jI=Zt.create({name:"underline",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"u"},{style:"text-decoration",consuming:!1,getAttrs:n=>n.includes("underline")?{}:!1}]},renderHTML({HTMLAttributes:n}){return["u",ze(this.options.HTMLAttributes,n),0]},parseMarkdown(n,e){return e.applyMark(this.name||"underline",e.parseInline(n.tokens||[]))},renderMarkdown(n,e){return`++${e.renderChildren(n)}++`},markdownTokenizer:{name:"underline",level:"inline",start(n){return n.indexOf("++")},tokenize(n,e,t){const o=/^(\+\+)([\s\S]+?)(\+\+)/.exec(n);if(!o)return;const i=o[2].trim();return{type:"underline",raw:o[0],text:i,tokens:t.inlineTokens(i)}}},addCommands(){return{setUnderline:()=>({commands:n})=>n.setMark(this.name),toggleUnderline:()=>({commands:n})=>n.toggleMark(this.name),unsetUnderline:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-u":()=>this.editor.commands.toggleUnderline(),"Mod-U":()=>this.editor.commands.toggleUnderline()}}});function UI(n={}){return new Ue({view(e){return new WI(e,n)}})}class WI{constructor(e,t){var r;this.editorView=e,this.cursorPos=null,this.element=null,this.timeout=-1,this.lastDragEvent=null,this.width=(r=t.width)!==null&&r!==void 0?r:1,this.color=t.color===!1?void 0:t.color||"black",this.class=t.class,this.handlers=["dragover","dragend","drop","dragleave"].map(o=>{let i=l=>{this[o](l)};return e.dom.addEventListener(o,i),{name:o,handler:i}})}destroy(){this.handlers.forEach(({name:e,handler:t})=>this.editorView.dom.removeEventListener(e,t))}update(e,t){if(this.cursorPos!=null&&t.doc!=e.state.doc)if(this.lastDragEvent){let r=this.computeTarget(this.lastDragEvent);r==this.cursorPos?this.updateOverlay():this.setCursor(r)}else this.updateOverlay()}setCursor(e){e!=this.cursorPos&&(this.cursorPos=e,e==null?(this.element.parentNode.removeChild(this.element),this.element=null):this.updateOverlay())}updateOverlay(){let e=this.editorView.state.doc.resolve(this.cursorPos),t=!e.parent.inlineContent,r,o=this.editorView.dom,i=o.getBoundingClientRect(),l=i.width/o.offsetWidth,a=i.height/o.offsetHeight;if(t){let f=e.nodeBefore,p=e.nodeAfter;if(f||p){let h=this.editorView.nodeDOM(this.cursorPos-(f?f.nodeSize:0));if(h){let m=h.getBoundingClientRect(),g=f?m.bottom:m.top;f&&p&&(g=(g+this.editorView.nodeDOM(this.cursorPos).getBoundingClientRect().top)/2);let y=this.width/2*a;r={left:m.left,right:m.right,top:g-y,bottom:g+y}}}}if(!r){let f=this.editorView.coordsAtPos(this.cursorPos),p=this.width/2*l;r={left:f.left-p,right:f.left+p,top:f.top,bottom:f.bottom}}let c=this.editorView.dom.offsetParent;this.element||(this.element=c.appendChild(document.createElement("div")),this.class&&(this.element.className=this.class),this.element.style.cssText="position: absolute; z-index: 50; pointer-events: none;",this.color&&(this.element.style.backgroundColor=this.color)),this.element.classList.toggle("prosemirror-dropcursor-block",t),this.element.classList.toggle("prosemirror-dropcursor-inline",!t);let d,u;if(!c||c==document.body&&getComputedStyle(c).position=="static")d=-pageXOffset,u=-pageYOffset;else{let f=c.getBoundingClientRect(),p=f.width/c.offsetWidth,h=f.height/c.offsetHeight;d=f.left-c.scrollLeft*p,u=f.top-c.scrollTop*h}this.element.style.left=(r.left-d)/l+"px",this.element.style.top=(r.top-u)/a+"px",this.element.style.width=(r.right-r.left)/l+"px",this.element.style.height=(r.bottom-r.top)/a+"px"}scheduleRemoval(e){clearTimeout(this.timeout),this.timeout=setTimeout(()=>this.setCursor(null),e)}computeTarget(e){let t=this.editorView.posAtCoords({left:e.clientX,top:e.clientY}),r=t&&t.inside>=0&&this.editorView.state.doc.nodeAt(t.inside),o=r&&r.type.spec.disableDropCursor,i=typeof o=="function"?o(this.editorView,t,e):o;if(!t||i)return null;let l=t.pos;if(this.editorView.dragging&&this.editorView.dragging.slice){let a=Gp(this.editorView.state.doc,l,this.editorView.dragging.slice);a!=null&&(l=a)}return l}dragover(e){if(!this.editorView.editable)return;this.lastDragEvent=e;let t=this.computeTarget(e);t!=null&&(this.setCursor(t),this.scheduleRemoval(5e3))}dragend(){this.scheduleRemoval(20)}drop(){this.scheduleRemoval(20)}dragleave(e){this.editorView.dom.contains(e.relatedTarget)||this.setCursor(null)}}class ot extends _e{constructor(e){super(e,e)}map(e,t){let r=e.resolve(t.map(this.head));return ot.valid(r)?new ot(r):_e.near(r)}content(){return pe.empty}eq(e){return e instanceof ot&&e.head==this.head}toJSON(){return{type:"gapcursor",pos:this.head}}static fromJSON(e,t){if(typeof t.pos!="number")throw new RangeError("Invalid input for GapCursor.fromJSON");return new ot(e.resolve(t.pos))}getBookmark(){return new eu(this.anchor)}static valid(e){let t=e.parent;if(t.inlineContent||!KI(e)||!qI(e))return!1;let r=t.type.spec.allowGapCursor;if(r!=null)return r;let o=t.contentMatchAt(e.index()).defaultType;return o&&o.isTextblock}static findGapCursorFrom(e,t,r=!1){e:for(;;){if(!r&&ot.valid(e))return e;let o=e.pos,i=null;for(let l=e.depth;;l--){let a=e.node(l);if(t>0?e.indexAfter(l)<a.childCount:e.index(l)>0){i=a.child(t>0?e.indexAfter(l):e.index(l)-1);break}else if(l==0)return null;o+=t;let c=e.doc.resolve(o);if(ot.valid(c))return c}for(;;){let l=t>0?i.firstChild:i.lastChild;if(!l){if(i.isAtom&&!i.isText&&!ve.isSelectable(i)){e=e.doc.resolve(o+i.nodeSize*t),r=!1;continue e}break}i=l,o+=t;let a=e.doc.resolve(o);if(ot.valid(a))return a}return null}}}ot.prototype.visible=!1,ot.findFrom=ot.findGapCursorFrom,_e.jsonID("gapcursor",ot);class eu{constructor(e){this.pos=e}map(e){return new eu(e.map(this.pos))}resolve(e){let t=e.resolve(this.pos);return ot.valid(t)?new ot(t):_e.near(t)}}function Dy(n){return n.isAtom||n.spec.isolating||n.spec.createGapCursor}function KI(n){for(let e=n.depth;e>=0;e--){let t=n.index(e),r=n.node(e);if(t==0){if(r.type.spec.isolating)return!0;continue}for(let o=r.child(t-1);;o=o.lastChild){if(o.childCount==0&&!o.inlineContent||Dy(o.type))return!0;if(o.inlineContent)return!1}}return!0}function qI(n){for(let e=n.depth;e>=0;e--){let t=n.indexAfter(e),r=n.node(e);if(t==r.childCount){if(r.type.spec.isolating)return!0;continue}for(let o=r.child(t);;o=o.firstChild){if(o.childCount==0&&!o.inlineContent||Dy(o.type))return!0;if(o.inlineContent)return!1}}return!0}function GI(){return new Ue({props:{decorations:ZI,createSelectionBetween(n,e,t){return e.pos==t.pos&&ot.valid(t)?new ot(t):null},handleClick:YI,handleKeyDown:JI,handleDOMEvents:{beforeinput:XI}}})}const JI=Gc({ArrowLeft:Yl("horiz",-1),ArrowRight:Yl("horiz",1),ArrowUp:Yl("vert",-1),ArrowDown:Yl("vert",1)});function Yl(n,e){const t=n=="vert"?e>0?"down":"up":e>0?"right":"left";return function(r,o,i){let l=r.selection,a=e>0?l.$to:l.$from,c=l.empty;if(l instanceof ye){if(!i.endOfTextblock(t)||a.depth==0)return!1;c=!1,a=r.doc.resolve(e>0?a.after():a.before())}let d=ot.findGapCursorFrom(a,e,c);return d?(o&&o(r.tr.setSelection(new ot(d))),!0):!1}}function YI(n,e,t){if(!n||!n.editable)return!1;let r=n.state.doc.resolve(e);if(!ot.valid(r))return!1;let o=n.posAtCoords({left:t.clientX,top:t.clientY});return o&&o.inside>-1&&ve.isSelectable(n.state.doc.nodeAt(o.inside))?!1:(n.dispatch(n.state.tr.setSelection(new ot(r))),!0)}function XI(n,e){if(e.inputType!="insertCompositionText"||!(n.state.selection instanceof ot))return!1;let{$from:t}=n.state.selection,r=t.parent.contentMatchAt(t.index()).findWrapping(n.state.schema.nodes.text);if(!r)return!1;let o=Q.empty;for(let l=r.length-1;l>=0;l--)o=Q.from(r[l].createAndFill(null,o));let i=n.state.tr.replace(t.pos,t.pos,new pe(o,0,0));return i.setSelection(ye.near(i.doc.resolve(t.pos+1))),n.dispatch(i),!1}function ZI(n){if(!(n.selection instanceof ot))return null;let e=document.createElement("div");return e.className="ProseMirror-gapcursor",Ie.create(n.doc,[At.widget(n.selection.head,e,{key:"gapcursor"})])}var Xl=200,mt=function(){};mt.prototype.append=function(e){return e.length?(e=mt.from(e),!this.length&&e||e.length<Xl&&this.leafAppend(e)||this.length<Xl&&e.leafPrepend(this)||this.appendInner(e)):this},mt.prototype.prepend=function(e){return e.length?mt.from(e).append(this):this},mt.prototype.appendInner=function(e){return new QI(this,e)},mt.prototype.slice=function(e,t){return e===void 0&&(e=0),t===void 0&&(t=this.length),e>=t?mt.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},mt.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},mt.prototype.forEach=function(e,t,r){t===void 0&&(t=0),r===void 0&&(r=this.length),t<=r?this.forEachInner(e,t,r,0):this.forEachInvertedInner(e,t,r,0)},mt.prototype.map=function(e,t,r){t===void 0&&(t=0),r===void 0&&(r=this.length);var o=[];return this.forEach(function(i,l){return o.push(e(i,l))},t,r),o},mt.from=function(e){return e instanceof mt?e:e&&e.length?new Vy(e):mt.empty};var Vy=(function(n){function e(r){n.call(this),this.values=r}n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e;var t={length:{configurable:!0},depth:{configurable:!0}};return e.prototype.flatten=function(){return this.values},e.prototype.sliceInner=function(o,i){return o==0&&i==this.length?this:new e(this.values.slice(o,i))},e.prototype.getInner=function(o){return this.values[o]},e.prototype.forEachInner=function(o,i,l,a){for(var c=i;c<l;c++)if(o(this.values[c],a+c)===!1)return!1},e.prototype.forEachInvertedInner=function(o,i,l,a){for(var c=i-1;c>=l;c--)if(o(this.values[c],a+c)===!1)return!1},e.prototype.leafAppend=function(o){if(this.length+o.length<=Xl)return new e(this.values.concat(o.flatten()))},e.prototype.leafPrepend=function(o){if(this.length+o.length<=Xl)return new e(o.flatten().concat(this.values))},t.length.get=function(){return this.values.length},t.depth.get=function(){return 0},Object.defineProperties(e.prototype,t),e})(mt);mt.empty=new Vy([]);var QI=(function(n){function e(t,r){n.call(this),this.left=t,this.right=r,this.length=t.length+r.length,this.depth=Math.max(t.depth,r.depth)+1}return n&&(e.__proto__=n),e.prototype=Object.create(n&&n.prototype),e.prototype.constructor=e,e.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},e.prototype.getInner=function(r){return r<this.left.length?this.left.get(r):this.right.get(r-this.left.length)},e.prototype.forEachInner=function(r,o,i,l){var a=this.left.length;if(o<a&&this.left.forEachInner(r,o,Math.min(i,a),l)===!1||i>a&&this.right.forEachInner(r,Math.max(o-a,0),Math.min(this.length,i)-a,l+a)===!1)return!1},e.prototype.forEachInvertedInner=function(r,o,i,l){var a=this.left.length;if(o>a&&this.right.forEachInvertedInner(r,o-a,Math.max(i,a)-a,l+a)===!1||i<a&&this.left.forEachInvertedInner(r,Math.min(o,a),i,l)===!1)return!1},e.prototype.sliceInner=function(r,o){if(r==0&&o==this.length)return this;var i=this.left.length;return o<=i?this.left.slice(r,o):r>=i?this.right.slice(r-i,o-i):this.left.slice(r,i).append(this.right.slice(0,o-i))},e.prototype.leafAppend=function(r){var o=this.right.leafAppend(r);if(o)return new e(this.left,o)},e.prototype.leafPrepend=function(r){var o=this.left.leafPrepend(r);if(o)return new e(o,this.right)},e.prototype.appendInner=function(r){return this.left.depth>=Math.max(this.right.depth,r.depth)+1?new e(this.left,new e(this.right,r)):new e(this,r)},e})(mt);const eO=500;class ln{constructor(e,t){this.items=e,this.eventCount=t}popEvent(e,t){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let o,i;t&&(o=this.remapping(r,this.items.length),i=o.maps.length);let l=e.tr,a,c,d=[],u=[];return this.items.forEach((f,p)=>{if(!f.step){o||(o=this.remapping(r,p+1),i=o.maps.length),i--,u.push(f);return}if(o){u.push(new vn(f.map));let h=f.step.map(o.slice(i)),m;h&&l.maybeStep(h).doc&&(m=l.mapping.maps[l.mapping.maps.length-1],d.push(new vn(m,void 0,void 0,d.length+u.length))),i--,m&&o.appendMap(m,i)}else l.maybeStep(f.step);if(f.selection)return a=o?f.selection.map(o.slice(i)):f.selection,c=new ln(this.items.slice(0,r).append(u.reverse().concat(d)),this.eventCount-1),!1},this.items.length,0),{remaining:c,transform:l,selection:a}}addTransform(e,t,r,o){let i=[],l=this.eventCount,a=this.items,c=!o&&a.length?a.get(a.length-1):null;for(let u=0;u<e.steps.length;u++){let f=e.steps[u].invert(e.docs[u]),p=new vn(e.mapping.maps[u],f,t),h;(h=c&&c.merge(p))&&(p=h,u?i.pop():a=a.slice(0,a.length-1)),i.push(p),t&&(l++,t=void 0),o||(c=p)}let d=l-r.depth;return d>nO&&(a=tO(a,d),l-=d),new ln(a.append(i),l)}remapping(e,t){let r=new Go;return this.items.forEach((o,i)=>{let l=o.mirrorOffset!=null&&i-o.mirrorOffset>=e?r.maps.length-o.mirrorOffset:void 0;r.appendMap(o.map,l)},e,t),r}addMaps(e){return this.eventCount==0?this:new ln(this.items.append(e.map(t=>new vn(t))),this.eventCount)}rebased(e,t){if(!this.eventCount)return this;let r=[],o=Math.max(0,this.items.length-t),i=e.mapping,l=e.steps.length,a=this.eventCount;this.items.forEach(p=>{p.selection&&a--},o);let c=t;this.items.forEach(p=>{let h=i.getMirror(--c);if(h==null)return;l=Math.min(l,h);let m=i.maps[h];if(p.step){let g=e.steps[h].invert(e.docs[h]),y=p.selection&&p.selection.map(i.slice(c+1,h));y&&a++,r.push(new vn(m,g,y))}else r.push(new vn(m))},o);let d=[];for(let p=t;p<l;p++)d.push(new vn(i.maps[p]));let u=this.items.slice(0,o).append(d).append(r),f=new ln(u,a);return f.emptyItemCount()>eO&&(f=f.compress(this.items.length-r.length)),f}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(e=this.items.length){let t=this.remapping(0,e),r=t.maps.length,o=[],i=0;return this.items.forEach((l,a)=>{if(a>=e)o.push(l),l.selection&&i++;else if(l.step){let c=l.step.map(t.slice(r)),d=c&&c.getMap();if(r--,d&&t.appendMap(d,r),c){let u=l.selection&&l.selection.map(t.slice(r));u&&i++;let f=new vn(d.invert(),c,u),p,h=o.length-1;(p=o.length&&o[h].merge(f))?o[h]=p:o.push(f)}}else l.map&&r--},this.items.length,0),new ln(mt.from(o.reverse()),i)}}ln.empty=new ln(mt.empty,0);function tO(n,e){let t;return n.forEach((r,o)=>{if(r.selection&&e--==0)return t=o,!1}),n.slice(t)}class vn{constructor(e,t,r,o){this.map=e,this.step=t,this.selection=r,this.mirrorOffset=o}merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.step);if(t)return new vn(t.getMap().invert(),t,this.selection)}}}class pr{constructor(e,t,r,o,i){this.done=e,this.undone=t,this.prevRanges=r,this.prevTime=o,this.prevComposition=i}}const nO=20;function rO(n,e,t,r){let o=t.getMeta(Ur),i;if(o)return o.historyState;t.getMeta(iO)&&(n=new pr(n.done,n.undone,null,0,-1));let l=t.getMeta("appendedTransaction");if(t.steps.length==0)return n;if(l&&l.getMeta(Ur))return l.getMeta(Ur).redo?new pr(n.done.addTransform(t,void 0,r,Zl(e)),n.undone,$y(t.mapping.maps),n.prevTime,n.prevComposition):new pr(n.done,n.undone.addTransform(t,void 0,r,Zl(e)),null,n.prevTime,n.prevComposition);if(t.getMeta("addToHistory")!==!1&&!(l&&l.getMeta("addToHistory")===!1)){let a=t.getMeta("composition"),c=n.prevTime==0||!l&&n.prevComposition!=a&&(n.prevTime<(t.time||0)-r.newGroupDelay||!oO(t,n.prevRanges)),d=l?tu(n.prevRanges,t.mapping):$y(t.mapping.maps);return new pr(n.done.addTransform(t,c?e.selection.getBookmark():void 0,r,Zl(e)),ln.empty,d,t.time,a??n.prevComposition)}else return(i=t.getMeta("rebased"))?new pr(n.done.rebased(t,i),n.undone.rebased(t,i),tu(n.prevRanges,t.mapping),n.prevTime,n.prevComposition):new pr(n.done.addMaps(t.mapping.maps),n.undone.addMaps(t.mapping.maps),tu(n.prevRanges,t.mapping),n.prevTime,n.prevComposition)}function oO(n,e){if(!e)return!1;if(!n.docChanged)return!0;let t=!1;return n.mapping.maps[0].forEach((r,o)=>{for(let i=0;i<e.length;i+=2)r<=e[i+1]&&o>=e[i]&&(t=!0)}),t}function $y(n){let e=[];for(let t=n.length-1;t>=0&&e.length==0;t--)n[t].forEach((r,o,i,l)=>e.push(i,l));return e}function tu(n,e){if(!n)return null;let t=[];for(let r=0;r<n.length;r+=2){let o=e.map(n[r],1),i=e.map(n[r+1],-1);o<=i&&t.push(o,i)}return t}function sO(n,e,t){let r=Zl(e),o=Ur.get(e).spec.config,i=(t?n.undone:n.done).popEvent(e,r);if(!i)return null;let l=i.selection.resolve(i.transform.doc),a=(t?n.done:n.undone).addTransform(i.transform,e.selection.getBookmark(),o,r),c=new pr(t?a:i.remaining,t?i.remaining:a,null,0,-1);return i.transform.setSelection(l).setMeta(Ur,{redo:t,historyState:c})}let nu=!1,Ly=null;function Zl(n){let e=n.plugins;if(Ly!=e){nu=!1,Ly=e;for(let t=0;t<e.length;t++)if(e[t].spec.historyPreserveItems){nu=!0;break}}return nu}const Ur=new Ze("history"),iO=new Ze("closeHistory");function lO(n={}){return n={depth:n.depth||100,newGroupDelay:n.newGroupDelay||500},new Ue({key:Ur,state:{init(){return new pr(ln.empty,ln.empty,null,0,-1)},apply(e,t,r){return rO(t,r,e,n)}},config:n,props:{handleDOMEvents:{beforeinput(e,t){let r=t.inputType,o=r=="historyUndo"?Oy:r=="historyRedo"?Ry:null;return!o||!e.editable?!1:(t.preventDefault(),o(e.state,e.dispatch))}}}})}function Iy(n,e){return(t,r)=>{let o=Ur.getState(t);if(!o||(n?o.undone:o.done).eventCount==0)return!1;if(r){let i=sO(o,t,n);i&&r(e?i.scrollIntoView():i)}return!0}}const Oy=Iy(!1,!0),Ry=Iy(!0,!0);He.create({name:"characterCount",addOptions(){return{limit:null,autoTrim:!0,mode:"textSize",textCounter:n=>n.length,wordCounter:n=>n.split(" ").filter(e=>e!=="").length}},addStorage(){return{characters:()=>0,words:()=>0}},onBeforeCreate(){this.storage.characters=n=>{const e=n?.node||this.editor.state.doc;if((n?.mode||this.options.mode)==="textSize"){const r=e.textBetween(0,e.content.size,void 0," ");return this.options.textCounter(r)}return e.nodeSize},this.storage.words=n=>{const e=n?.node||this.editor.state.doc,t=e.textBetween(0,e.content.size," "," ");return this.options.wordCounter(t)}},addProseMirrorPlugins(){let n=!1;return[new Ue({key:new Ze("characterCount"),appendTransaction:(e,t,r)=>{if(n)return;const o=this.options.limit,i=this.options.autoTrim;if(o==null||o===0||i===!1){n=!0;return}const l=this.storage.characters({node:r.doc});if(l>o){const a=l-o,c=0,d=a;console.warn(`[CharacterCount] Initial content exceeded limit of ${o} characters. Content was automatically trimmed.`);const u=r.tr.deleteRange(c,d);return n=!0,u}n=!0},filterTransaction:(e,t)=>{const r=this.options.limit;if(!e.docChanged||r===0||r===null||r===void 0)return!0;const o=this.storage.characters({node:t.doc}),i=this.storage.characters({node:e.doc});if(i<=r||o>r&&i>r&&i<=o)return!0;if(o>r&&i>r&&i>o||!e.getMeta("paste"))return!1;const a=e.selection.$head.pos,c=i-r,d=a-c,u=a;return e.deleteRange(d,u),!(this.storage.characters({node:e.doc})>r)}})]}});var aO=He.create({name:"dropCursor",addOptions(){return{color:"currentColor",width:1,class:void 0}},addProseMirrorPlugins(){return[UI(this.options)]}});He.create({name:"focus",addOptions(){return{className:"has-focus",mode:"all"}},addProseMirrorPlugins(){return[new Ue({key:new Ze("focus"),props:{decorations:({doc:n,selection:e})=>{const{isEditable:t,isFocused:r}=this.editor,{anchor:o}=e,i=[];if(!t||!r)return Ie.create(n,[]);let l=0;this.options.mode==="deepest"&&n.descendants((c,d)=>{if(c.isText)return;if(!(o>=d&&o<=d+c.nodeSize-1))return!1;l+=1});let a=0;return n.descendants((c,d)=>{if(c.isText||!(o>=d&&o<=d+c.nodeSize-1))return!1;if(a+=1,this.options.mode==="deepest"&&l-a>0||this.options.mode==="shallowest"&&a>1)return this.options.mode==="deepest";i.push(At.node(d,d+c.nodeSize,{class:this.options.className}))}),Ie.create(n,i)}}})]}});var cO=He.create({name:"gapCursor",addProseMirrorPlugins(){return[GI()]},extendNodeSchema(n){var e;const t={name:n.name,options:n.options,storage:n.storage};return{allowGapCursor:(e=Oe(be(n,"allowGapCursor",t)))!=null?e:null}}}),Fy="placeholder",Py=new Ze("tiptap__placeholder");function zy(n){const{editor:e,placeholder:t,dataAttribute:r,pos:o,node:i,isEmptyDoc:l,hasAnchor:a,classes:{emptyNode:c,emptyEditor:d}}=n,u=[c];return l&&u.push(d),At.node(o,o+i.nodeSize,{class:u.join(" "),[r]:typeof t=="function"?t({editor:e,node:i,pos:o,hasAnchor:a}):t})}function Hy(n,e){return typeof n=="function"?n(e):n}function jy({editor:n,options:e,dataAttribute:t,doc:r,selection:o,from:i,to:l}){const{anchor:a}=o,c=[],d=n.isEmpty;return r.nodesBetween(i,l,(u,f)=>{const p=a>=f&&a<=f+u.nodeSize,h=!u.isLeaf&&yo(u);return u.type.isTextblock&&(p||!e.showOnlyCurrent)&&h&&c.push(zy({editor:n,isEmptyDoc:d,dataAttribute:t,hasAnchor:p,placeholder:e.placeholder,classes:{emptyEditor:e.emptyEditorClass,emptyNode:Hy(e.emptyNodeClass,{editor:n,node:u,pos:f,hasAnchor:p})},node:u,pos:f})),e.includeChildren}),c}function Uy({editor:n,options:e,dataAttribute:t,doc:r,selection:o}){if(!(n.isEditable||!e.showOnlyWhenEditable))return null;const{anchor:l}=o,a=[],c=n.isEmpty;if(e.showOnlyCurrent&&!e.includeChildren){const u=r.resolve(l),f=u.depth>0?u.node(1):u.nodeAfter,p=u.depth>0?u.before(1):l;if(f&&f.type.isTextblock&&yo(f)){const h=l>=p&&l<=p+f.nodeSize;a.push(zy({editor:n,isEmptyDoc:c,dataAttribute:t,hasAnchor:h,placeholder:e.placeholder,classes:{emptyEditor:e.emptyEditorClass,emptyNode:Hy(e.emptyNodeClass,{editor:n,node:f,pos:p,hasAnchor:h})},node:f,pos:p}))}}else a.push(...jy({editor:n,options:e,dataAttribute:t,doc:r,selection:o,from:0,to:r.content.size}));return Ie.create(r,a)}function Vs(n,e){var t;const r=n.resolve(e);if(r.depth===0){const l=(t=r.nodeAfter)!=null?t:r.nodeBefore;if(!l)return{from:e,to:e};const a=r.nodeAfter?e:e-l.nodeSize;return{from:a,to:a+l.nodeSize}}const o=r.before(1),i=r.node(1);return{from:o,to:o+i.nodeSize}}function $s(n,e){return{from:Math.max(0,e.from-1),to:Math.min(n.content.size,e.to-1)}}function dO(n,e,t){const r=[];return n.forEach((o,i)=>{const l=i,a=l+o.nodeSize,c=l+1,d=a+1;c<t&&d>e&&r.push({from:l,to:a})}),r}function uO(n){if(n.length===0)return[];const e=[...n].sort((r,o)=>r.from-o.from),t=[{...e[0]}];for(let r=1;r<e.length;r+=1){const o=t[t.length-1],i=e[r];i.from<=o.to?o.to=Math.max(o.to,i.to):t.push({...i})}return t}function fO(n,e){const t=dO(n,e.from,e.to);return t.push($s(n,Vs(n,e.from))),e.to>e.from?t.push($s(n,Vs(n,Math.min(e.to,n.content.size+1)-1))):e.from<n.content.size+1&&t.push($s(n,Vs(n,Math.min(e.from+1,n.content.size)))),t}function pO(n,e,t){const r=[];if(n.docChanged){const o=bs(n);for(const i of o)r.push(...fO(t.doc,i.newRange))}return n.selectionSet&&(r.push($s(t.doc,Vs(t.doc,n.mapping.map(e.selection.anchor)))),r.push($s(t.doc,Vs(t.doc,t.selection.anchor)))),uO(r)}function hO(n,e,t){const r=Math.max(0,Math.min(n,t.content.size)),o=Math.max(r,Math.min(e,t.content.size));return{from:r,to:o}}function mO({decorations:n,ranges:e,editor:t,options:r,dataAttribute:o,doc:i,selection:l}){let a=n;for(const c of e){const{from:d,to:u}=hO(c.from,c.to,i),f=a.find(d,u).filter(h=>h.from>=d&&h.to<=u);f.length&&(a=a.remove(f));const p=jy({editor:t,options:r,dataAttribute:o,doc:i,selection:l,from:d,to:u});p.length&&(a=a.add(i,p))}return a}function gO({editor:n,options:e,dataAttribute:t}){return{init(r,o){const i=Uy({editor:n,options:e,dataAttribute:t,doc:o.doc,selection:o.selection});return i??Ie.empty},apply(r,o,i,l){if(!r.docChanged&&!r.selectionSet)return o;const a=o.map(r.mapping,r.doc),c=pO(r,i,l);return mO({decorations:a,ranges:c,editor:n,options:e,dataAttribute:t,doc:l.doc,selection:l.selection})}}}function yO(n){return n.replace(/\s+/g,"-").replace(/[^a-zA-Z0-9-]/g,"").replace(/^[0-9-]+/,"").replace(/^-+/,"").toLowerCase()}function bO({editor:n,options:e}){const t=e.dataAttribute?`data-${yO(e.dataAttribute)}`:`data-${Fy}`,r=e.showOnlyCurrent&&!e.includeChildren;return new Ue({key:Py,...r?{}:{state:gO({editor:n,options:e,dataAttribute:t})},props:{decorations:r?({doc:o,selection:i})=>Uy({editor:n,options:e,dataAttribute:t,doc:o,selection:i}):o=>{var i;return e.showOnlyWhenEditable&&!n.isEditable?Ie.empty:(i=Py.getState(o))!=null?i:Ie.empty}}})}He.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",dataAttribute:Fy,placeholder:"Write something …",showOnlyWhenEditable:!0,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[bO({editor:this.editor,options:this.options})]}});function ru(n,e){return!n.selection.empty&&!ud(n.selection)&&e.isEditable}function kO(n,e){return ru(n,e)&&!e.isFocused&&!e.view.dragging}function wO(){var n;(n=window.getSelection())==null||n.removeAllRanges()}function xO(n){n.focus()}He.create({name:"selection",addOptions(){return{className:"selection"}},addProseMirrorPlugins(){const{editor:n,options:e}=this;return[new Ue({key:new Ze("selection"),props:{decorations(t){return kO(t,n)?Ie.create(t.doc,[At.inline(t.selection.from,t.selection.to,{class:e.className})]):null},handleDOMEvents:{blur(t){return ru(t.state,n)&&wO(),!1},focus(t){return ru(t.state,n)&&requestAnimationFrame(()=>{!n.isDestroyed&&t.hasFocus()&&xO(t)}),!1}}}})]}});var vO="skipTrailingNode";function Wy({types:n,node:e}){return e&&Array.isArray(n)&&n.includes(e.type)||e?.type===n}var CO=He.create({name:"trailingNode",addOptions(){return{node:void 0,notAfter:[]}},addProseMirrorPlugins(){var n;const e=new Ze(this.name),t=this.options.node||((n=this.editor.schema.topNodeType.contentMatch.defaultType)==null?void 0:n.name)||"paragraph",r=Object.entries(this.editor.schema.nodes).map(([,o])=>o).filter(o=>(this.options.notAfter||[]).concat(t).includes(o.name));return[new Ue({key:e,appendTransaction:(o,i,l)=>{const{doc:a,tr:c,schema:d}=l,u=e.getState(l),f=a.content.size,p=d.nodes[t];if(!o.some(h=>h.getMeta(vO))&&u)return c.insert(f,p.create())},state:{init:(o,i)=>{const l=i.tr.doc.lastChild;return!Wy({node:l,types:r})},apply:(o,i)=>{if(!o.docChanged||o.getMeta("__uniqueIDTransaction"))return i;const l=o.doc.lastChild;return!Wy({node:l,types:r})}}})]}}),SO=He.create({name:"undoRedo",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:n,dispatch:e})=>Oy(n,e),redo:()=>({state:n,dispatch:e})=>Ry(n,e)}},addProseMirrorPlugins(){return[lO(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),Ky=He.create({name:"starterKit",addExtensions(){var n,e,t,r;const o=[];return this.options.bold!==!1&&o.push(sL.configure(this.options.bold)),this.options.blockquote!==!1&&o.push(eL.configure(this.options.blockquote)),this.options.bulletList!==!1&&o.push(gy.configure(this.options.bulletList)),this.options.code!==!1&&o.push(aL.configure(this.options.code)),this.options.codeBlock!==!1&&o.push(uL.configure(this.options.codeBlock)),this.options.document!==!1&&o.push(fL.configure(this.options.document)),this.options.dropcursor!==!1&&o.push(aO.configure(this.options.dropcursor)),this.options.gapcursor!==!1&&o.push(cO.configure(this.options.gapcursor)),this.options.hardBreak!==!1&&o.push(pL.configure(this.options.hardBreak)),this.options.heading!==!1&&o.push(xd.configure(this.options.heading)),this.options.undoRedo!==!1&&o.push(SO.configure(this.options.undoRedo)),this.options.horizontalRule!==!1&&o.push(gL.configure(this.options.horizontalRule)),this.options.italic!==!1&&o.push(xL.configure(this.options.italic)),this.options.listItem!==!1&&o.push(xy.configure(this.options.listItem)),this.options.listKeymap!==!1&&o.push(My.configure((n=this.options)==null?void 0:n.listKeymap)),this.options.link!==!1&&o.push(Wd.configure((e=this.options)==null?void 0:e.link)),this.options.orderedList!==!1&&o.push(Ny.configure(this.options.orderedList)),this.options.paragraph!==!1&&o.push(Qd.configure(this.options.paragraph)),this.options.strike!==!1&&o.push(zI.configure(this.options.strike)),this.options.text!==!1&&o.push(HI.configure(this.options.text)),this.options.underline!==!1&&o.push(jI.configure((t=this.options)==null?void 0:t.underline)),this.options.trailingNode!==!1&&o.push(CO.configure((r=this.options)==null?void 0:r.trailingNode)),o}}),EO=Ky;const MO=Object.freeze(Object.defineProperty({__proto__:null,StarterKit:Ky,default:EO},Symbol.toStringTag,{value:"Module"}));var AO=20,qy=(n,e=0)=>{const t=[];return!n.children.length||e>AO||Array.from(n.children).forEach(r=>{r.tagName==="SPAN"?t.push(r):r.children.length&&t.push(...qy(r,e+1))}),t},_O=n=>{if(!n.children.length)return;const e=qy(n);e&&e.forEach(t=>{var r,o;const i=t.getAttribute("style"),l=(o=(r=t.parentElement)==null?void 0:r.closest("span"))==null?void 0:o.getAttribute("style");t.setAttribute("style",`${l};${i}`)})},Gy=Zt.create({name:"textStyle",priority:101,addOptions(){return{HTMLAttributes:{},mergeNestedSpanStyles:!0}},parseHTML(){return[{tag:"span",consuming:!1,getAttrs:n=>n.hasAttribute("style")?(this.options.mergeNestedSpanStyles&&_O(n),{}):!1}]},renderHTML({HTMLAttributes:n}){return["span",ze(this.options.HTMLAttributes,n),0]},addCommands(){return{toggleTextStyle:n=>({commands:e})=>e.toggleMark(this.name,n),removeEmptyTextStyle:()=>({tr:n})=>{const{selection:e}=n;return n.doc.nodesBetween(e.from,e.to,(t,r)=>{if(t.isTextblock)return!0;t.marks.filter(o=>o.type===this.type).some(o=>Object.values(o.attrs).some(i=>!!i))||n.removeMark(r,r+t.nodeSize,this.type)}),!0}}}}),Jy=He.create({name:"backgroundColor",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{backgroundColor:{default:null,parseHTML:n=>{var e;const t=(e=Fr(n,"background-color"))!=null?e:n.style.backgroundColor;return t?.replace(/['"]+/g,"")},renderHTML:n=>n.backgroundColor?{style:`background-color: ${n.backgroundColor}`}:{}}}}]},addCommands(){return{setBackgroundColor:n=>({chain:e})=>e().setMark("textStyle",{backgroundColor:n}).run(),unsetBackgroundColor:()=>({chain:n})=>n().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),Yy=He.create({name:"color",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{color:{default:null,parseHTML:n=>{var e;const t=(e=Fr(n,"color"))!=null?e:n.style.color;return t?.replace(/['"]+/g,"")},renderHTML:n=>n.color?{style:`color: ${n.color}`}:{}}}}]},addCommands(){return{setColor:n=>({chain:e})=>e().setMark("textStyle",{color:n}).run(),unsetColor:()=>({chain:n})=>n().setMark("textStyle",{color:null}).removeEmptyTextStyle().run()}}}),Xy=He.create({name:"fontFamily",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontFamily:{default:null,parseHTML:n=>{var e;return(e=Fr(n,"font-family"))!=null?e:n.style.fontFamily},renderHTML:n=>n.fontFamily?{style:`font-family: ${n.fontFamily}`}:{}}}}]},addCommands(){return{setFontFamily:n=>({chain:e})=>e().setMark("textStyle",{fontFamily:n}).run(),unsetFontFamily:()=>({chain:n})=>n().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run()}}}),Zy=He.create({name:"fontSize",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{fontSize:{default:null,parseHTML:n=>{var e;return(e=Fr(n,"font-size"))!=null?e:n.style.fontSize},renderHTML:n=>n.fontSize?{style:`font-size: ${n.fontSize}`}:{}}}}]},addCommands(){return{setFontSize:n=>({chain:e})=>e().setMark("textStyle",{fontSize:n}).run(),unsetFontSize:()=>({chain:n})=>n().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run()}}}),Qy=He.create({name:"lineHeight",addOptions(){return{types:["textStyle"]}},addGlobalAttributes(){return[{types:this.options.types,attributes:{lineHeight:{default:null,parseHTML:n=>{var e;return(e=Fr(n,"line-height"))!=null?e:n.style.lineHeight},renderHTML:n=>n.lineHeight?{style:`line-height: ${n.lineHeight}`}:{}}}}]},addCommands(){return{setLineHeight:n=>({chain:e})=>e().setMark("textStyle",{lineHeight:n}).run(),unsetLineHeight:()=>({chain:n})=>n().setMark("textStyle",{lineHeight:null}).removeEmptyTextStyle().run()}}}),TO=He.create({name:"textStyleKit",addExtensions(){const n=[];return this.options.backgroundColor!==!1&&n.push(Jy.configure(this.options.backgroundColor)),this.options.color!==!1&&n.push(Yy.configure(this.options.color)),this.options.fontFamily!==!1&&n.push(Xy.configure(this.options.fontFamily)),this.options.fontSize!==!1&&n.push(Zy.configure(this.options.fontSize)),this.options.lineHeight!==!1&&n.push(Qy.configure(this.options.lineHeight)),this.options.textStyle!==!1&&n.push(Gy.configure(this.options.textStyle)),n}});const BO=Object.freeze(Object.defineProperty({__proto__:null,BackgroundColor:Jy,Color:Yy,FontFamily:Xy,FontSize:Zy,LineHeight:Qy,TextStyle:Gy,TextStyleKit:TO},Symbol.toStringTag,{value:"Module"}));let ou,su;if(typeof WeakMap<"u"){let n=new WeakMap;ou=e=>n.get(e),su=(e,t)=>(n.set(e,t),t)}else{const n=[];let t=0;ou=r=>{for(let o=0;o<n.length;o+=2)if(n[o]==r)return n[o+1]},su=(r,o)=>(t==10&&(t=0),n[t++]=r,n[t++]=o)}var st=class{constructor(n,e,t,r){this.width=n,this.height=e,this.map=t,this.problems=r}findCell(n){for(let e=0;e<this.map.length;e++){const t=this.map[e];if(t!=n)continue;const r=e%this.width,o=e/this.width|0;let i=r+1,l=o+1;for(let a=1;i<this.width&&this.map[e+a]==t;a++)i++;for(let a=1;l<this.height&&this.map[e+this.width*a]==t;a++)l++;return{left:r,top:o,right:i,bottom:l}}throw new RangeError(`No cell with offset ${n} found`)}colCount(n){for(let e=0;e<this.map.length;e++)if(this.map[e]==n)return e%this.width;throw new RangeError(`No cell with offset ${n} found`)}nextCell(n,e,t){const{left:r,right:o,top:i,bottom:l}=this.findCell(n);return e=="horiz"?(t<0?r==0:o==this.width)?null:this.map[i*this.width+(t<0?r-1:o)]:(t<0?i==0:l==this.height)?null:this.map[r+this.width*(t<0?i-1:l)]}rectBetween(n,e){const{left:t,right:r,top:o,bottom:i}=this.findCell(n),{left:l,right:a,top:c,bottom:d}=this.findCell(e);return{left:Math.min(t,l),top:Math.min(o,c),right:Math.max(r,a),bottom:Math.max(i,d)}}cellsInRect(n){const e=[],t={};for(let r=n.top;r<n.bottom;r++)for(let o=n.left;o<n.right;o++){const i=r*this.width+o,l=this.map[i];t[l]||(t[l]=!0,!(o==n.left&&o&&this.map[i-1]==l||r==n.top&&r&&this.map[i-this.width]==l)&&e.push(l))}return e}positionAt(n,e,t){for(let r=0,o=0;;r++){const i=o+t.child(r).nodeSize;if(r==n){let l=e+n*this.width;const a=(n+1)*this.width;for(;l<a&&this.map[l]<o;)l++;return l==a?i-1:this.map[l]}o=i}}static get(n){return ou(n)||su(n,NO(n))}};function NO(n){if(n.type.spec.tableRole!="table")throw new RangeError("Not a table node: "+n.type.name);const e=DO(n),t=n.childCount,r=[];let o=0,i=null;const l=[];for(let d=0,u=e*t;d<u;d++)r[d]=0;for(let d=0,u=0;d<t;d++){const f=n.child(d);u++;for(let m=0;;m++){for(;o<r.length&&r[o]!=0;)o++;if(m==f.childCount)break;const g=f.child(m),{colspan:y,rowspan:b,colwidth:w}=g.attrs;for(let v=0;v<b;v++){if(v+d>=t){(i||(i=[])).push({type:"overlong_rowspan",pos:u,n:b-v});break}const S=o+v*e;for(let N=0;N<y;N++){r[S+N]==0?r[S+N]=u:(i||(i=[])).push({type:"collision",row:d,pos:u,n:y-N});const F=w&&w[N];if(F){const T=(S+N)%e*2,E=l[T];E==null||E!=F&&l[T+1]==1?(l[T]=F,l[T+1]=1):E==F&&l[T+1]++}}}o+=y,u+=g.nodeSize}const p=(d+1)*e;let h=0;for(;o<p;)r[o++]==0&&h++;h&&(i||(i=[])).push({type:"missing",row:d,n:h}),u++}(e===0||t===0)&&(i||(i=[])).push({type:"zero_sized"});const a=new st(e,t,r,i);let c=!1;for(let d=0;!c&&d<l.length;d+=2)l[d]!=null&&l[d+1]<t&&(c=!0);return c&&VO(a,l,n),a}function DO(n){let e=-1,t=!1;for(let r=0;r<n.childCount;r++){const o=n.child(r);let i=0;if(t)for(let l=0;l<r;l++){const a=n.child(l);for(let c=0;c<a.childCount;c++){const d=a.child(c);l+d.attrs.rowspan>r&&(i+=d.attrs.colspan)}}for(let l=0;l<o.childCount;l++){const a=o.child(l);i+=a.attrs.colspan,a.attrs.rowspan>1&&(t=!0)}e==-1?e=i:e!=i&&(e=Math.max(e,i))}return e}function VO(n,e,t){n.problems||(n.problems=[]);const r={};for(let o=0;o<n.map.length;o++){const i=n.map[o];if(r[i])continue;r[i]=!0;const l=t.nodeAt(i);if(!l)throw new RangeError(`No cell with offset ${i} found`);let a=null;const c=l.attrs;for(let d=0;d<c.colspan;d++){const u=e[(o+d)%n.width*2];u!=null&&(!c.colwidth||c.colwidth[d]!=u)&&((a||(a=$O(c)))[d]=u)}a&&n.problems.unshift({type:"colwidth mismatch",pos:i,colwidth:a})}}function $O(n){if(n.colwidth)return n.colwidth.slice();const e=[];for(let t=0;t<n.colspan;t++)e.push(0);return e}function Tt(n){let e=n.cached.tableNodeTypes;if(!e){e=n.cached.tableNodeTypes={};for(const t in n.nodes){const r=n.nodes[t],o=r.spec.tableRole;o&&(e[o]=r)}}return e}const hr=new Ze("selectingCells");function Wr(n){for(let e=n.depth-1;e>0;e--)if(n.node(e).type.spec.tableRole=="row")return n.node(0).resolve(n.before(e+1));return null}function LO(n){for(let e=n.depth;e>0;e--){const t=n.node(e).type.spec.tableRole;if(t==="cell"||t==="header_cell")return n.node(e)}return null}function an(n){const e=n.selection.$head;for(let t=e.depth;t>0;t--)if(e.node(t).type.spec.tableRole=="row")return!0;return!1}function Ql(n){const e=n.selection;if("$anchorCell"in e&&e.$anchorCell)return e.$anchorCell.pos>e.$headCell.pos?e.$anchorCell:e.$headCell;if("node"in e&&e.node&&e.node.type.spec.tableRole=="cell")return e.$anchor;const t=Wr(e.$head)||IO(e.$head);if(t)return t;throw new RangeError(`No cell found around position ${e.head}`)}function IO(n){for(let e=n.nodeAfter,t=n.pos;e;e=e.firstChild,t++){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return n.doc.resolve(t)}for(let e=n.nodeBefore,t=n.pos;e;e=e.lastChild,t--){const r=e.type.spec.tableRole;if(r=="cell"||r=="header_cell")return n.doc.resolve(t-e.nodeSize)}}function iu(n){return n.parent.type.spec.tableRole=="row"&&!!n.nodeAfter}function OO(n){return n.node(0).resolve(n.pos+n.nodeAfter.nodeSize)}function lu(n,e){return n.depth==e.depth&&n.pos>=e.start(-1)&&n.pos<=e.end(-1)}function e0(n,e,t){const r=n.node(-1),o=st.get(r),i=n.start(-1),l=o.nextCell(n.pos-i,e,t);return l==null?null:n.node(0).resolve(i+l)}function Kr(n,e,t=1){const r={...n,colspan:n.colspan-t};return r.colwidth&&(r.colwidth=r.colwidth.slice(),r.colwidth.splice(e,t),r.colwidth.some(o=>o>0)||(r.colwidth=null)),r}function t0(n,e,t=1){const r={...n,colspan:n.colspan+t};if(r.colwidth){r.colwidth=r.colwidth.slice();for(let o=0;o<t;o++)r.colwidth.splice(e,0,0)}return r}function RO(n,e,t){const r=Tt(e.type.schema).header_cell;for(let o=0;o<n.height;o++)if(e.nodeAt(n.map[t+o*n.width]).type!=r)return!1;return!0}var Ge=class Wn extends _e{constructor(e,t=e){const r=e.node(-1),o=st.get(r),i=e.start(-1),l=o.rectBetween(e.pos-i,t.pos-i),a=e.node(0),c=o.cellsInRect(l).filter(u=>u!=t.pos-i);c.unshift(t.pos-i);const d=c.map(u=>{const f=r.nodeAt(u);if(!f)throw new RangeError(`No cell with offset ${u} found`);const p=i+u+1;return new Qp(a.resolve(p),a.resolve(p+f.content.size))});super(d[0].$from,d[0].$to,d),this.$anchorCell=e,this.$headCell=t}map(e,t){const r=e.resolve(t.map(this.$anchorCell.pos)),o=e.resolve(t.map(this.$headCell.pos));if(iu(r)&&iu(o)&&lu(r,o)){const i=this.$anchorCell.node(-1)!=r.node(-1);return i&&this.isRowSelection()?Wn.rowSelection(r,o):i&&this.isColSelection()?Wn.colSelection(r,o):new Wn(r,o)}return ye.between(r,o)}content(){const e=this.$anchorCell.node(-1),t=st.get(e),r=this.$anchorCell.start(-1),o=t.rectBetween(this.$anchorCell.pos-r,this.$headCell.pos-r),i={},l=[];for(let c=o.top;c<o.bottom;c++){const d=[];for(let u=c*t.width+o.left,f=o.left;f<o.right;f++,u++){const p=t.map[u];if(i[p])continue;i[p]=!0;const h=t.findCell(p);let m=e.nodeAt(p);if(!m)throw new RangeError(`No cell with offset ${p} found`);const g=o.left-h.left,y=h.right-o.right;if(g>0||y>0){let b=m.attrs;if(g>0&&(b=Kr(b,0,g)),y>0&&(b=Kr(b,b.colspan-y,y)),h.left<o.left){if(m=m.type.createAndFill(b),!m)throw new RangeError(`Could not create cell with attrs ${JSON.stringify(b)}`)}else m=m.type.create(b,m.content)}if(h.top<o.top||h.bottom>o.bottom){const b={...m.attrs,rowspan:Math.min(h.bottom,o.bottom)-Math.max(h.top,o.top)};h.top<o.top?m=m.type.createAndFill(b):m=m.type.create(b,m.content)}d.push(m)}l.push(e.child(c).copy(Q.from(d)))}const a=this.isColSelection()&&this.isRowSelection()?e:l;return new pe(Q.from(a),1,1)}replace(e,t=pe.empty){const r=e.steps.length,o=this.ranges;for(let l=0;l<o.length;l++){const{$from:a,$to:c}=o[l],d=e.mapping.slice(r);e.replace(d.map(a.pos),d.map(c.pos),l?pe.empty:t)}const i=_e.findFrom(e.doc.resolve(e.mapping.slice(r).map(this.to)),-1);i&&e.setSelection(i)}replaceWith(e,t){this.replace(e,new pe(Q.from(t),0,0))}forEachCell(e){const t=this.$anchorCell.node(-1),r=st.get(t),o=this.$anchorCell.start(-1),i=r.cellsInRect(r.rectBetween(this.$anchorCell.pos-o,this.$headCell.pos-o));for(let l=0;l<i.length;l++)e(t.nodeAt(i[l]),o+i[l])}isColSelection(){const e=this.$anchorCell.index(-1),t=this.$headCell.index(-1);if(Math.min(e,t)>0)return!1;const r=e+this.$anchorCell.nodeAfter.attrs.rowspan,o=t+this.$headCell.nodeAfter.attrs.rowspan;return Math.max(r,o)==this.$headCell.node(-1).childCount}static colSelection(e,t=e){const r=e.node(-1),o=st.get(r),i=e.start(-1),l=o.findCell(e.pos-i),a=o.findCell(t.pos-i),c=e.node(0);return l.top<=a.top?(l.top>0&&(e=c.resolve(i+o.map[l.left])),a.bottom<o.height&&(t=c.resolve(i+o.map[o.width*(o.height-1)+a.right-1]))):(a.top>0&&(t=c.resolve(i+o.map[a.left])),l.bottom<o.height&&(e=c.resolve(i+o.map[o.width*(o.height-1)+l.right-1]))),new Wn(e,t)}isRowSelection(){const e=this.$anchorCell.node(-1),t=st.get(e),r=this.$anchorCell.start(-1),o=t.colCount(this.$anchorCell.pos-r),i=t.colCount(this.$headCell.pos-r);if(Math.min(o,i)>0)return!1;const l=o+this.$anchorCell.nodeAfter.attrs.colspan,a=i+this.$headCell.nodeAfter.attrs.colspan;return Math.max(l,a)==t.width}eq(e){return e instanceof Wn&&e.$anchorCell.pos==this.$anchorCell.pos&&e.$headCell.pos==this.$headCell.pos}static rowSelection(e,t=e){const r=e.node(-1),o=st.get(r),i=e.start(-1),l=o.findCell(e.pos-i),a=o.findCell(t.pos-i),c=e.node(0);return l.left<=a.left?(l.left>0&&(e=c.resolve(i+o.map[l.top*o.width])),a.right<o.width&&(t=c.resolve(i+o.map[o.width*(a.top+1)-1]))):(a.left>0&&(t=c.resolve(i+o.map[a.top*o.width])),l.right<o.width&&(e=c.resolve(i+o.map[o.width*(l.top+1)-1]))),new Wn(e,t)}toJSON(){return{type:"cell",anchor:this.$anchorCell.pos,head:this.$headCell.pos}}static fromJSON(e,t){return new Wn(e.resolve(t.anchor),e.resolve(t.head))}static create(e,t,r=t){return new Wn(e.resolve(t),e.resolve(r))}getBookmark(){return new FO(this.$anchorCell.pos,this.$headCell.pos)}};Ge.prototype.visible=!1,_e.jsonID("cell",Ge);var FO=class mb{constructor(e,t){this.anchor=e,this.head=t}map(e){return new mb(e.map(this.anchor),e.map(this.head))}resolve(e){const t=e.resolve(this.anchor),r=e.resolve(this.head);return t.parent.type.spec.tableRole=="row"&&r.parent.type.spec.tableRole=="row"&&t.index()<t.parent.childCount&&r.index()<r.parent.childCount&&lu(t,r)?new Ge(t,r):_e.near(r,1)}};function PO(n){if(!(n.selection instanceof Ge))return null;const e=[];return n.selection.forEachCell((t,r)=>{e.push(At.node(r,r+t.nodeSize,{class:"selectedCell"}))}),Ie.create(n.doc,e)}function zO({$from:n,$to:e}){if(n.pos==e.pos||n.pos<e.pos-6)return!1;let t=n.pos,r=e.pos,o=n.depth;for(;o>=0&&!(n.after(o+1)<n.end(o));o--,t++);for(let i=e.depth;i>=0&&!(e.before(i+1)>e.start(i));i--,r--);return t==r&&/row|table/.test(n.node(o).type.spec.tableRole)}function HO({$from:n,$to:e}){let t,r;for(let o=n.depth;o>0;o--){const i=n.node(o);if(i.type.spec.tableRole==="cell"||i.type.spec.tableRole==="header_cell"){t=i;break}}for(let o=e.depth;o>0;o--){const i=e.node(o);if(i.type.spec.tableRole==="cell"||i.type.spec.tableRole==="header_cell"){r=i;break}}return t!==r&&e.parentOffset===0}function jO(n,e,t){const r=(e||n).selection,o=(e||n).doc;let i,l;if(r instanceof ve&&(l=r.node.type.spec.tableRole)){if(l=="cell"||l=="header_cell")i=Ge.create(o,r.from);else if(l=="row"){const a=o.resolve(r.from+1);i=Ge.rowSelection(a,a)}else if(!t){const a=st.get(r.node),c=r.from+1,d=c+a.map[a.width*a.height-1];i=Ge.create(o,c+1,d)}}else r instanceof ye&&zO(r)?i=ye.create(o,r.from):r instanceof ye&&HO(r)&&(i=ye.create(o,r.$from.start(),r.$from.end()));return i&&(e||(e=n.tr)).setSelection(i),e}const UO=new Ze("fix-tables");function n0(n,e,t,r){const o=n.childCount,i=e.childCount;e:for(let l=0,a=0;l<i;l++){const c=e.child(l);for(let d=a,u=Math.min(o,l+3);d<u;d++)if(n.child(d)==c){a=d+1,t+=c.nodeSize;continue e}r(c,t),a<o&&n.child(a).sameMarkup(c)?n0(n.child(a),c,t+1,r):c.nodesBetween(0,c.content.size,r,t+1),t+=c.nodeSize}}function r0(n,e){let t;const r=(o,i)=>{o.type.spec.tableRole=="table"&&(t=WO(n,o,i,t))};return e?e.doc!=n.doc&&n0(e.doc,n.doc,0,r):n.doc.descendants(r),t}function WO(n,e,t,r){const o=st.get(e);if(!o.problems)return r;r||(r=n.tr);const i=[];for(let c=0;c<o.height;c++)i.push(0);for(let c=0;c<o.problems.length;c++){const d=o.problems[c];if(d.type=="collision"){const u=e.nodeAt(d.pos);if(!u)continue;const f=u.attrs;for(let p=0;p<f.rowspan;p++)i[d.row+p]+=d.n;r.setNodeMarkup(r.mapping.map(t+1+d.pos),null,Kr(f,f.colspan-d.n,d.n))}else if(d.type=="missing")i[d.row]+=d.n;else if(d.type=="overlong_rowspan"){const u=e.nodeAt(d.pos);if(!u)continue;r.setNodeMarkup(r.mapping.map(t+1+d.pos),null,{...u.attrs,rowspan:u.attrs.rowspan-d.n})}else if(d.type=="colwidth mismatch"){const u=e.nodeAt(d.pos);if(!u)continue;r.setNodeMarkup(r.mapping.map(t+1+d.pos),null,{...u.attrs,colwidth:d.colwidth})}else if(d.type=="zero_sized"){const u=r.mapping.map(t);r.delete(u,u+e.nodeSize)}}let l,a;for(let c=0;c<i.length;c++)i[c]&&(l==null&&(l=c),a=c);for(let c=0,d=t+1;c<o.height;c++){const u=e.child(c),f=d+u.nodeSize,p=i[c];if(p>0){let h="cell";u.firstChild&&(h=u.firstChild.type.spec.tableRole);const m=[];for(let y=0;y<p;y++){const b=Tt(n.schema)[h].createAndFill();b&&m.push(b)}const g=(c==0||l==c-1)&&a==c?d+1:f-1;r.insert(r.mapping.map(g),m)}d=f}return r.setMeta(UO,{fixTables:!0})}function Cn(n){const e=n.selection,t=Ql(n),r=t.node(-1),o=t.start(-1),i=st.get(r);return{...e instanceof Ge?i.rectBetween(e.$anchorCell.pos-o,e.$headCell.pos-o):i.findCell(t.pos-o),tableStart:o,map:i,table:r}}function o0(n,{map:e,tableStart:t,table:r},o){let i=o>0?-1:0;RO(e,r,o+i)&&(i=o==0||o==e.width?null:0);for(let l=0;l<e.height;l++){const a=l*e.width+o;if(o>0&&o<e.width&&e.map[a-1]==e.map[a]){const c=e.map[a],d=r.nodeAt(c);n.setNodeMarkup(n.mapping.map(t+c),null,t0(d.attrs,o-e.colCount(c))),l+=d.attrs.rowspan-1}else{const c=i==null?Tt(r.type.schema).cell:r.nodeAt(e.map[a+i]).type,d=e.positionAt(l,o,r);n.insert(n.mapping.map(t+d),c.createAndFill())}}return n}function KO(n,e){if(!an(n))return!1;if(e){const t=Cn(n);e(o0(n.tr,t,t.left))}return!0}function qO(n,e){if(!an(n))return!1;if(e){const t=Cn(n);e(o0(n.tr,t,t.right))}return!0}function GO(n,{map:e,table:t,tableStart:r},o){const i=n.mapping.maps.length;for(let l=0;l<e.height;){const a=l*e.width+o,c=e.map[a],d=t.nodeAt(c),u=d.attrs;if(o>0&&e.map[a-1]==c||o<e.width-1&&e.map[a+1]==c)n.setNodeMarkup(n.mapping.slice(i).map(r+c),null,Kr(u,o-e.colCount(c)));else{const f=n.mapping.slice(i).map(r+c);n.delete(f,f+d.nodeSize)}l+=u.rowspan}}function JO(n,e){if(!an(n))return!1;if(e){const t=Cn(n),r=n.tr;if(t.left==0&&t.right==t.map.width)return!1;for(let o=t.right-1;GO(r,t,o),o!=t.left;o--){const i=t.tableStart?r.doc.nodeAt(t.tableStart-1):r.doc;if(!i)throw new RangeError("No table found");t.table=i,t.map=st.get(i)}e(r)}return!0}function YO(n,e,t){var r;const o=Tt(e.type.schema).header_cell;for(let i=0;i<n.width;i++)if(((r=e.nodeAt(n.map[i+t*n.width]))===null||r===void 0?void 0:r.type)!=o)return!1;return!0}function s0(n,{map:e,tableStart:t,table:r},o){let i=t;for(let d=0;d<o;d++)i+=r.child(d).nodeSize;const l=[];let a=o>0?-1:0;YO(e,r,o+a)&&(a=o==0||o==e.height?null:0);for(let d=0,u=e.width*o;d<e.width;d++,u++)if(o>0&&o<e.height&&e.map[u]==e.map[u-e.width]){const f=e.map[u],p=r.nodeAt(f).attrs;n.setNodeMarkup(t+f,null,{...p,rowspan:p.rowspan+1}),d+=p.colspan-1}else{var c;const f=a==null?Tt(r.type.schema).cell:(c=r.nodeAt(e.map[u+a*e.width]))===null||c===void 0?void 0:c.type,p=f?.createAndFill();p&&l.push(p)}return n.insert(i,Tt(r.type.schema).row.create(null,l)),n}function XO(n,e){if(!an(n))return!1;if(e){const t=Cn(n);e(s0(n.tr,t,t.top))}return!0}function ZO(n,e){if(!an(n))return!1;if(e){const t=Cn(n);e(s0(n.tr,t,t.bottom))}return!0}function QO(n,{map:e,table:t,tableStart:r},o){let i=0;for(let d=0;d<o;d++)i+=t.child(d).nodeSize;const l=i+t.child(o).nodeSize,a=n.mapping.maps.length;n.delete(i+r,l+r);const c=new Set;for(let d=0,u=o*e.width;d<e.width;d++,u++){const f=e.map[u];if(!c.has(f)){if(c.add(f),o>0&&f==e.map[u-e.width]){const p=t.nodeAt(f).attrs;n.setNodeMarkup(n.mapping.slice(a).map(f+r),null,{...p,rowspan:p.rowspan-1}),d+=p.colspan-1}else if(o<e.height&&f==e.map[u+e.width]){const p=t.nodeAt(f),h=p.attrs,m=p.type.create({...h,rowspan:p.attrs.rowspan-1},p.content),g=e.positionAt(o+1,d,t);n.insert(n.mapping.slice(a).map(r+g),m),d+=h.colspan-1}}}}function eR(n,e){if(!an(n))return!1;if(e){const t=Cn(n),r=n.tr;if(t.top==0&&t.bottom==t.map.height)return!1;for(let o=t.bottom-1;QO(r,t,o),o!=t.top;o--){const i=t.tableStart?r.doc.nodeAt(t.tableStart-1):r.doc;if(!i)throw new RangeError("No table found");t.table=i,t.map=st.get(t.table)}e(r)}return!0}function i0(n){const e=n.content;return e.childCount==1&&e.child(0).isTextblock&&e.child(0).childCount==0}function tR({width:n,height:e,map:t},r){let o=r.top*n+r.left,i=o,l=(r.bottom-1)*n+r.left,a=o+(r.right-r.left-1);for(let c=r.top;c<r.bottom;c++){if(r.left>0&&t[i]==t[i-1]||r.right<n&&t[a]==t[a+1])return!0;i+=n,a+=n}for(let c=r.left;c<r.right;c++){if(r.top>0&&t[o]==t[o-n]||r.bottom<e&&t[l]==t[l+n])return!0;o++,l++}return!1}function l0(n,e){const t=n.selection;if(!(t instanceof Ge)||t.$anchorCell.pos==t.$headCell.pos)return!1;const r=Cn(n),{map:o}=r;if(tR(o,r))return!1;if(e){const i=n.tr,l={};let a=Q.empty,c,d;for(let u=r.top;u<r.bottom;u++)for(let f=r.left;f<r.right;f++){const p=o.map[u*o.width+f],h=r.table.nodeAt(p);if(!(l[p]||!h))if(l[p]=!0,c==null)c=p,d=h;else{i0(h)||(a=a.append(h.content));const m=i.mapping.map(p+r.tableStart);i.delete(m,m+h.nodeSize)}}if(c==null||d==null)return!0;if(i.setNodeMarkup(c+r.tableStart,null,{...t0(d.attrs,d.attrs.colspan,r.right-r.left-d.attrs.colspan),rowspan:r.bottom-r.top}),a.size>0){const u=c+1+d.content.size,f=i0(d)?c+1:u;i.replaceWith(f+r.tableStart,u+r.tableStart,a)}i.setSelection(new Ge(i.doc.resolve(c+r.tableStart))),e(i)}return!0}function a0(n,e){const t=Tt(n.schema);return nR(({node:r})=>t[r.type.spec.tableRole])(n,e)}function nR(n){return(e,t)=>{const r=e.selection;let o,i;if(r instanceof Ge){if(r.$anchorCell.pos!=r.$headCell.pos)return!1;o=r.$anchorCell.nodeAfter,i=r.$anchorCell.pos}else{var l;if(o=LO(r.$from),!o)return!1;i=(l=Wr(r.$from))===null||l===void 0?void 0:l.pos}if(o==null||i==null||o.attrs.colspan==1&&o.attrs.rowspan==1)return!1;if(t){let a=o.attrs;const c=[],d=a.colwidth;a.rowspan>1&&(a={...a,rowspan:1}),a.colspan>1&&(a={...a,colspan:1});const u=Cn(e),f=e.tr;for(let h=0;h<u.right-u.left;h++)c.push(d?{...a,colwidth:d&&d[h]?[d[h]]:null}:a);let p;for(let h=u.top;h<u.bottom;h++){let m=u.map.positionAt(h,u.left,u.table);h==u.top&&(m+=o.nodeSize);for(let g=u.left,y=0;g<u.right;g++,y++)g==u.left&&h==u.top||f.insert(p=f.mapping.map(m+u.tableStart,1),n({node:o,row:h,col:g}).createAndFill(c[y]))}f.setNodeMarkup(i,n({node:o,row:u.top,col:u.left}),c[0]),r instanceof Ge&&f.setSelection(new Ge(f.doc.resolve(r.$anchorCell.pos),p?f.doc.resolve(p):void 0)),t(f)}return!0}}function rR(n,e){return function(t,r){if(!an(t))return!1;const o=Ql(t);if(o.nodeAfter.attrs[n]===e)return!1;if(r){const i=t.tr;t.selection instanceof Ge?t.selection.forEachCell((l,a)=>{l.attrs[n]!==e&&i.setNodeMarkup(a,null,{...l.attrs,[n]:e})}):i.setNodeMarkup(o.pos,null,{...o.nodeAfter.attrs,[n]:e}),r(i)}return!0}}function oR(n){return function(e,t){if(!an(e))return!1;if(t){const r=Tt(e.schema),o=Cn(e),i=e.tr,l=o.map.cellsInRect(n=="column"?{left:o.left,top:0,right:o.right,bottom:o.map.height}:n=="row"?{left:0,top:o.top,right:o.map.width,bottom:o.bottom}:o),a=l.map(c=>o.table.nodeAt(c));for(let c=0;c<l.length;c++)a[c].type==r.header_cell&&i.setNodeMarkup(o.tableStart+l[c],r.cell,a[c].attrs);if(i.steps.length===0)for(let c=0;c<l.length;c++)i.setNodeMarkup(o.tableStart+l[c],r.header_cell,a[c].attrs);t(i)}return!0}}function c0(n,e,t){const r=e.map.cellsInRect({left:0,top:0,right:n=="row"?e.map.width:1,bottom:n=="column"?e.map.height:1});for(let o=0;o<r.length;o++){const i=e.table.nodeAt(r[o]);if(i&&i.type!==t.header_cell)return!1}return!0}function Ls(n,e){return e=e||{useDeprecatedLogic:!1},e.useDeprecatedLogic?oR(n):function(t,r){if(!an(t))return!1;if(r){const o=Tt(t.schema),i=Cn(t),l=t.tr,a=c0("row",i,o),c=c0("column",i,o),d=(n==="column"?a:n==="row"&&c)?1:0,u=n=="column"?{left:0,top:d,right:1,bottom:i.map.height}:n=="row"?{left:d,top:0,right:i.map.width,bottom:1}:i,f=n=="column"?c?o.cell:o.header_cell:n=="row"?a?o.cell:o.header_cell:o.cell;i.map.cellsInRect(u).forEach(p=>{const h=p+i.tableStart,m=l.doc.nodeAt(h);m&&l.setNodeMarkup(h,f,m.attrs)}),r(l)}return!0}}Ls("row",{useDeprecatedLogic:!0}),Ls("column",{useDeprecatedLogic:!0});const sR=Ls("cell",{useDeprecatedLogic:!0});function iR(n,e){if(e<0){const t=n.nodeBefore;if(t)return n.pos-t.nodeSize;for(let r=n.index(-1)-1,o=n.before();r>=0;r--){const i=n.node(-1).child(r),l=i.lastChild;if(l)return o-1-l.nodeSize;o-=i.nodeSize}}else{if(n.index()<n.parent.childCount-1)return n.pos+n.nodeAfter.nodeSize;const t=n.node(-1);for(let r=n.indexAfter(-1),o=n.after();r<t.childCount;r++){const i=t.child(r);if(i.childCount)return o+1;o+=i.nodeSize}}return null}function d0(n){return function(e,t){if(!an(e))return!1;const r=iR(Ql(e),n);if(r==null)return!1;if(t){const o=e.doc.resolve(r);t(e.tr.setSelection(ye.between(o,OO(o))).scrollIntoView())}return!0}}function lR(n,e){const t=n.selection.$anchor;for(let r=t.depth;r>0;r--)if(t.node(r).type.spec.tableRole=="table")return e&&e(n.tr.delete(t.before(r),t.after(r)).scrollIntoView()),!0;return!1}function ea(n,e){const t=n.selection;if(!(t instanceof Ge))return!1;if(e){const r=n.tr,o=Tt(n.schema).cell.createAndFill().content;t.forEachCell((i,l)=>{i.content.eq(o)||r.replace(r.mapping.map(l+1),r.mapping.map(l+i.nodeSize-1),new pe(o,0,0))}),r.docChanged&&e(r)}return!0}function aR(n){if(n.size===0)return null;let{content:e,openStart:t,openEnd:r}=n;for(;e.childCount==1&&(t>0&&r>0||e.child(0).type.spec.tableRole=="table");)t--,r--,e=e.child(0).content;const o=e.child(0),i=o.type.spec.tableRole,l=o.type.schema,a=[];if(i=="row")for(let c=0;c<e.childCount;c++){let d=e.child(c).content;const u=c?0:Math.max(0,t-1),f=c<e.childCount-1?0:Math.max(0,r-1);(u||f)&&(d=au(Tt(l).row,new pe(d,u,f)).content),a.push(d)}else if(i=="cell"||i=="header_cell")a.push(t||r?au(Tt(l).row,new pe(e,t,r)).content:e);else return null;return cR(l,a)}function cR(n,e){const t=[];for(let o=0;o<e.length;o++){const i=e[o];for(let l=i.childCount-1;l>=0;l--){const{rowspan:a,colspan:c}=i.child(l).attrs;for(let d=o;d<o+a;d++)t[d]=(t[d]||0)+c}}let r=0;for(let o=0;o<t.length;o++)r=Math.max(r,t[o]);for(let o=0;o<t.length;o++)if(o>=e.length&&e.push(Q.empty),t[o]<r){const i=Tt(n).cell.createAndFill(),l=[];for(let a=t[o];a<r;a++)l.push(i);e[o]=e[o].append(Q.from(l))}return{height:e.length,width:r,rows:e}}function au(n,e){const t=n.createAndFill();return new fc(t).replace(0,t.content.size,e).doc}function dR({width:n,height:e,rows:t},r,o){if(n!=r){const i=[],l=[];for(let a=0;a<t.length;a++){const c=t[a],d=[];for(let u=i[a]||0,f=0;u<r;f++){let p=c.child(f%c.childCount);u+p.attrs.colspan>r&&(p=p.type.createChecked(Kr(p.attrs,p.attrs.colspan,u+p.attrs.colspan-r),p.content)),d.push(p),u+=p.attrs.colspan;for(let h=1;h<p.attrs.rowspan;h++)i[a+h]=(i[a+h]||0)+p.attrs.colspan}l.push(Q.from(d))}t=l,n=r}if(e!=o){const i=[];for(let l=0,a=0;l<o;l++,a++){const c=[],d=t[a%e];for(let u=0;u<d.childCount;u++){let f=d.child(u);l+f.attrs.rowspan>o&&(f=f.type.create({...f.attrs,rowspan:Math.max(1,o-f.attrs.rowspan)},f.content)),c.push(f)}i.push(Q.from(c))}t=i,e=o}return{width:n,height:e,rows:t}}function uR(n,e,t,r,o,i,l){const a=n.doc.type.schema,c=Tt(a);let d,u;if(o>e.width)for(let f=0,p=0;f<e.height;f++){const h=t.child(f);p+=h.nodeSize;const m=[];let g;h.lastChild==null||h.lastChild.type==c.cell?g=d||(d=c.cell.createAndFill()):g=u||(u=c.header_cell.createAndFill());for(let y=e.width;y<o;y++)m.push(g);n.insert(n.mapping.slice(l).map(p-1+r),m)}if(i>e.height){const f=[];for(let m=0,g=(e.height-1)*e.width;m<Math.max(e.width,o);m++){const y=m>=e.width?!1:t.nodeAt(e.map[g+m]).type==c.header_cell;f.push(y?u||(u=c.header_cell.createAndFill()):d||(d=c.cell.createAndFill()))}const p=c.row.create(null,Q.from(f)),h=[];for(let m=e.height;m<i;m++)h.push(p);n.insert(n.mapping.slice(l).map(r+t.nodeSize-2),h)}return!!(d||u)}function u0(n,e,t,r,o,i,l,a){if(l==0||l==e.height)return!1;let c=!1;for(let d=o;d<i;d++){const u=l*e.width+d,f=e.map[u];if(e.map[u-e.width]==f){c=!0;const p=t.nodeAt(f),{top:h,left:m}=e.findCell(f);n.setNodeMarkup(n.mapping.slice(a).map(f+r),null,{...p.attrs,rowspan:l-h}),n.insert(n.mapping.slice(a).map(e.positionAt(l,m,t)),p.type.createAndFill({...p.attrs,rowspan:h+p.attrs.rowspan-l})),d+=p.attrs.colspan-1}}return c}function f0(n,e,t,r,o,i,l,a){if(l==0||l==e.width)return!1;let c=!1;for(let d=o;d<i;d++){const u=d*e.width+l,f=e.map[u];if(e.map[u-1]==f){c=!0;const p=t.nodeAt(f),h=e.colCount(f),m=n.mapping.slice(a).map(f+r);n.setNodeMarkup(m,null,Kr(p.attrs,l-h,p.attrs.colspan-(l-h))),n.insert(m+p.nodeSize,p.type.createAndFill(Kr(p.attrs,0,l-h))),d+=p.attrs.rowspan-1}}return c}function p0(n,e,t,r,o){let i=t?n.doc.nodeAt(t-1):n.doc;if(!i)throw new Error("No table found");let l=st.get(i);const{top:a,left:c}=r,d=c+o.width,u=a+o.height,f=n.tr;let p=0;function h(){if(i=t?f.doc.nodeAt(t-1):f.doc,!i)throw new Error("No table found");l=st.get(i),p=f.mapping.maps.length}uR(f,l,i,t,d,u,p)&&h(),u0(f,l,i,t,c,d,a,p)&&h(),u0(f,l,i,t,c,d,u,p)&&h(),f0(f,l,i,t,a,u,c,p)&&h(),f0(f,l,i,t,a,u,d,p)&&h();for(let m=a;m<u;m++){const g=l.positionAt(m,c,i),y=l.positionAt(m,d,i);f.replace(f.mapping.slice(p).map(g+t),f.mapping.slice(p).map(y+t),new pe(o.rows[m-a],0,0))}h(),f.setSelection(new Ge(f.doc.resolve(t+l.positionAt(a,c,i)),f.doc.resolve(t+l.positionAt(u-1,d-1,i)))),e(f)}const fR=Gc({ArrowLeft:na("horiz",-1),ArrowRight:na("horiz",1),ArrowUp:na("vert",-1),ArrowDown:na("vert",1),"Shift-ArrowLeft":ra("horiz",-1),"Shift-ArrowRight":ra("horiz",1),"Shift-ArrowUp":ra("vert",-1),"Shift-ArrowDown":ra("vert",1),Backspace:ea,"Mod-Backspace":ea,Delete:ea,"Mod-Delete":ea});function ta(n,e,t){return t.eq(n.selection)?!1:(e&&e(n.tr.setSelection(t).scrollIntoView()),!0)}function na(n,e){return(t,r,o)=>{if(!o)return!1;const i=t.selection;if(i instanceof Ge)return ta(t,r,_e.near(i.$headCell,e));if(n!="horiz"&&!i.empty)return!1;const l=h0(o,n,e);if(l==null)return!1;if(n=="horiz")return ta(t,r,_e.near(t.doc.resolve(i.head+e),e));{const a=t.doc.resolve(l),c=e0(a,n,e);let d;return c?d=_e.near(c,1):e<0?d=_e.near(t.doc.resolve(a.before(-1)),-1):d=_e.near(t.doc.resolve(a.after(-1)),1),ta(t,r,d)}}}function ra(n,e){return(t,r,o)=>{if(!o)return!1;const i=t.selection;let l;if(i instanceof Ge)l=i;else{const c=h0(o,n,e);if(c==null)return!1;l=new Ge(t.doc.resolve(c))}const a=e0(l.$headCell,n,e);return a?ta(t,r,new Ge(l.$anchorCell,a)):!1}}function pR(n,e){const t=n.state.doc,r=Wr(t.resolve(e));return r?(n.dispatch(n.state.tr.setSelection(new Ge(r))),!0):!1}function hR(n,e,t){if(!an(n.state))return!1;let r=aR(t);const o=n.state.selection;if(o instanceof Ge){r||(r={width:1,height:1,rows:[Q.from(au(Tt(n.state.schema).cell,t))]});const i=o.$anchorCell.node(-1),l=o.$anchorCell.start(-1),a=st.get(i).rectBetween(o.$anchorCell.pos-l,o.$headCell.pos-l);return r=dR(r,a.right-a.left,a.bottom-a.top),p0(n.state,n.dispatch,l,a,r),!0}else if(r){const i=Ql(n.state),l=i.start(-1);return p0(n.state,n.dispatch,l,st.get(i.node(-1)).findCell(i.pos-l),r),!0}else return!1}function mR(n,e){var t;if(e.button!=0||e.ctrlKey||e.metaKey)return;const r=m0(n,e.target);let o;if(e.shiftKey&&n.state.selection instanceof Ge)i(n.state.selection.$anchorCell,e),e.preventDefault();else if(e.shiftKey&&r&&(o=Wr(n.state.selection.$anchor))!=null&&((t=cu(n,e))===null||t===void 0?void 0:t.pos)!=o.pos)i(o,e),e.preventDefault();else if(!r)return;function i(c,d){let u=cu(n,d);const f=hr.getState(n.state)==null;if(!u||!lu(c,u))if(f)u=c;else return;const p=new Ge(c,u);if(f||!n.state.selection.eq(p)){const h=n.state.tr.setSelection(p);f&&h.setMeta(hr,c.pos),n.dispatch(h)}}function l(){n.root.removeEventListener("mouseup",l),n.root.removeEventListener("dragstart",l),n.root.removeEventListener("mousemove",a),hr.getState(n.state)!=null&&n.dispatch(n.state.tr.setMeta(hr,-1))}function a(c){const d=c,u=hr.getState(n.state);let f;if(u!=null)f=n.state.doc.resolve(u);else if(m0(n,d.target)!=r&&(f=cu(n,e),!f))return l();f&&i(f,d)}n.root.addEventListener("mouseup",l),n.root.addEventListener("dragstart",l),n.root.addEventListener("mousemove",a)}function h0(n,e,t){if(!(n.state.selection instanceof ye))return null;const{$head:r}=n.state.selection;for(let o=r.depth-1;o>=0;o--){const i=r.node(o);if((t<0?r.index(o):r.indexAfter(o))!=(t<0?0:i.childCount))return null;if(i.type.spec.tableRole=="cell"||i.type.spec.tableRole=="header_cell"){const l=r.before(o),a=e=="vert"?t>0?"down":"up":t>0?"right":"left";return n.endOfTextblock(a)?l:null}}return null}function m0(n,e){for(;e&&e!=n.dom;e=e.parentNode)if(e.nodeName=="TD"||e.nodeName=="TH")return e;return null}function cu(n,e){const t=n.posAtCoords({left:e.clientX,top:e.clientY});if(!t)return null;let{inside:r,pos:o}=t;return r>=0&&Wr(n.state.doc.resolve(r))||Wr(n.state.doc.resolve(o))}var gR=class{constructor(e,t){this.node=e,this.defaultCellMinWidth=t,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table")),this.table.style.setProperty("--default-cell-min-width",`${t}px`),this.colgroup=this.table.appendChild(document.createElement("colgroup")),du(e,this.colgroup,this.table,t),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(e){return e.type!=this.node.type?!1:(this.node=e,du(e,this.colgroup,this.table,this.defaultCellMinWidth),!0)}ignoreMutation(e){return e.type=="attributes"&&(e.target==this.table||this.colgroup.contains(e.target))}};function du(n,e,t,r,o,i){let l=0,a=!0,c=e.firstChild;const d=n.firstChild;if(d){for(let f=0,p=0;f<d.childCount;f++){const{colspan:h,colwidth:m}=d.child(f).attrs;for(let g=0;g<h;g++,p++){const y=o==p?i:m&&m[g],b=y?y+"px":"";if(l+=y||r,y||(a=!1),c)c.style.width!=b&&(c.style.width=b),c=c.nextSibling;else{const w=document.createElement("col");w.style.width=b,e.appendChild(w)}}}for(;c;){var u;const f=c.nextSibling;(u=c.parentNode)===null||u===void 0||u.removeChild(c),c=f}a?(t.style.width=l+"px",t.style.minWidth=""):(t.style.width="",t.style.minWidth=l+"px")}}const jt=new Ze("tableColumnResizing");function yR({handleWidth:n=5,cellMinWidth:e=25,defaultCellMinWidth:t=100,View:r=gR,lastColumnResizable:o=!0}={}){const i=new Ue({key:jt,state:{init(l,a){var c;const d=(c=i.spec)===null||c===void 0||(c=c.props)===null||c===void 0?void 0:c.nodeViews,u=Tt(a.schema).table.name;return r&&d&&(d[u]=(f,p)=>new r(f,t,p)),new bR(-1,!1)},apply(l,a){return a.apply(l)}},props:{attributes:l=>{const a=jt.getState(l);return a&&a.activeHandle>-1?{class:"resize-cursor"}:{}},handleDOMEvents:{mousemove:(l,a)=>{kR(l,a,n,o)},mouseleave:l=>{wR(l)},mousedown:(l,a)=>{xR(l,a,e,t)}},decorations:l=>{const a=jt.getState(l);if(a&&a.activeHandle>-1)return MR(l,a.activeHandle)},nodeViews:{}}});return i}var bR=class pa{constructor(e,t){this.activeHandle=e,this.dragging=t}apply(e){const t=this,r=e.getMeta(jt);if(r&&r.setHandle!=null)return new pa(r.setHandle,!1);if(r&&r.setDragging!==void 0)return new pa(t.activeHandle,r.setDragging);if(t.activeHandle>-1&&e.docChanged){let o=e.mapping.map(t.activeHandle,-1);return iu(e.doc.resolve(o))||(o=-1),new pa(o,t.dragging)}return t}};function kR(n,e,t,r){if(!n.editable)return;const o=jt.getState(n.state);if(o&&!o.dragging){const i=CR(e.target);let l=-1;if(i){const{left:a,right:c}=i.getBoundingClientRect();e.clientX-a<=t?l=g0(n,e,"left",t):c-e.clientX<=t&&(l=g0(n,e,"right",t))}if(l!=o.activeHandle){if(!r&&l!==-1){const a=n.state.doc.resolve(l),c=a.node(-1),d=st.get(c),u=a.start(-1);if(d.colCount(a.pos-u)+a.nodeAfter.attrs.colspan-1==d.width-1)return}b0(n,l)}}}function wR(n){if(!n.editable)return;const e=jt.getState(n.state);e&&e.activeHandle>-1&&!e.dragging&&b0(n,-1)}function xR(n,e,t,r){var o;if(!n.editable)return!1;const i=(o=n.dom.ownerDocument.defaultView)!==null&&o!==void 0?o:window,l=jt.getState(n.state);if(!l||l.activeHandle==-1||l.dragging)return!1;const a=n.state.doc.nodeAt(l.activeHandle),c=vR(n,l.activeHandle,a.attrs);n.dispatch(n.state.tr.setMeta(jt,{setDragging:{startX:e.clientX,startWidth:c}}));function d(f){i.removeEventListener("mouseup",d),i.removeEventListener("mousemove",u);const p=jt.getState(n.state);p?.dragging&&(SR(n,p.activeHandle,y0(p.dragging,f,t)),n.dispatch(n.state.tr.setMeta(jt,{setDragging:null})))}function u(f){if(!f.which)return d(f);const p=jt.getState(n.state);if(p&&p.dragging){const h=y0(p.dragging,f,t);k0(n,p.activeHandle,h,r)}}return k0(n,l.activeHandle,c,r),i.addEventListener("mouseup",d),i.addEventListener("mousemove",u),e.preventDefault(),!0}function vR(n,e,{colspan:t,colwidth:r}){const o=r&&r[r.length-1];if(o)return o;const i=n.domAtPos(e);let l=i.node.childNodes[i.offset].offsetWidth,a=t;if(r)for(let c=0;c<t;c++)r[c]&&(l-=r[c],a--);return l/a}function CR(n){for(;n&&n.nodeName!="TD"&&n.nodeName!="TH";)n=n.classList&&n.classList.contains("ProseMirror")?null:n.parentNode;return n}function g0(n,e,t,r){const o=t=="right"?-r:r,i=n.posAtCoords({left:e.clientX+o,top:e.clientY});if(!i)return-1;const{pos:l}=i,a=Wr(n.state.doc.resolve(l));if(!a)return-1;if(t=="right")return a.pos;const c=st.get(a.node(-1)),d=a.start(-1),u=c.map.indexOf(a.pos-d);return u%c.width==0?-1:d+c.map[u-1]}function y0(n,e,t){const r=e.clientX-n.startX;return Math.max(t,n.startWidth+r)}function b0(n,e){n.dispatch(n.state.tr.setMeta(jt,{setHandle:e}))}function SR(n,e,t){const r=n.state.doc.resolve(e),o=r.node(-1),i=st.get(o),l=r.start(-1),a=i.colCount(r.pos-l)+r.nodeAfter.attrs.colspan-1,c=n.state.tr;for(let d=0;d<i.height;d++){const u=d*i.width+a;if(d&&i.map[u]==i.map[u-i.width])continue;const f=i.map[u],p=o.nodeAt(f).attrs,h=p.colspan==1?0:a-i.colCount(f);if(p.colwidth&&p.colwidth[h]==t)continue;const m=p.colwidth?p.colwidth.slice():ER(p.colspan);m[h]=t,c.setNodeMarkup(l+f,null,{...p,colwidth:m})}c.docChanged&&n.dispatch(c)}function k0(n,e,t,r){const o=n.state.doc.resolve(e),i=o.node(-1),l=o.start(-1),a=st.get(i).colCount(o.pos-l)+o.nodeAfter.attrs.colspan-1;let c=n.domAtPos(o.start(-1)).node;for(;c&&c.nodeName!="TABLE";)c=c.parentNode;c&&du(i,c.firstChild,c,r,a,t)}function ER(n){return Array(n).fill(0)}function MR(n,e){const t=[],r=n.doc.resolve(e),o=r.node(-1);if(!o)return Ie.empty;const i=st.get(o),l=r.start(-1),a=i.colCount(r.pos-l)+r.nodeAfter.attrs.colspan-1;for(let d=0;d<i.height;d++){const u=a+d*i.width;if((a==i.width-1||i.map[u]!=i.map[u+1])&&(d==0||i.map[u]!=i.map[u-i.width])){var c;const f=i.map[u],p=l+f+o.nodeAt(f).nodeSize-1,h=document.createElement("div");h.className="column-resize-handle",!((c=jt.getState(n))===null||c===void 0)&&c.dragging&&t.push(At.node(l+f,l+f+o.nodeAt(f).nodeSize,{class:"column-resize-dragging"})),t.push(At.widget(p,h))}}return Ie.create(n.doc,t)}function AR({allowTableNodeSelection:n=!1}={}){return new Ue({key:hr,state:{init(){return null},apply(e,t){const r=e.getMeta(hr);if(r!=null)return r==-1?null:r;if(t==null||!e.docChanged)return t;const{deleted:o,pos:i}=e.mapping.mapResult(t);return o?null:i}},props:{decorations:PO,handleDOMEvents:{mousedown:mR},createSelectionBetween(e){return hr.getState(e.state)!=null?e.state.selection:null},handleTripleClick:pR,handleKeyDown:fR,handlePaste:hR},appendTransaction(e,t,r){return jO(r,r0(r,t),n)}})}function oa(n){return n==="left"||n==="right"||n==="center"?n:null}function _R(n){const e=(n.style.textAlign||"").trim().toLowerCase(),t=(n.getAttribute("align")||"").trim().toLowerCase();return oa(e||t)}function TR(n){return oa(n?.align)}function w0(){return{default:null,parseHTML:n=>_R(n),renderHTML:n=>n.align?{style:`text-align: ${n.align}`}:{}}}function BR(n){var e;const t=n.parentElement,r=n.closest("table");if(!t||!r)return null;const o=Array.from(t.children).indexOf(n),i=(e=r.querySelectorAll("colgroup > col")[o])==null?void 0:e.getAttribute("width");return i?[parseInt(i,10)]:null}function x0(n){const e=n.getAttribute("colwidth");return e?e.split(",").map(t=>parseInt(t,10)):BR(n)}var NR=/[ \t\r\n\f]+/g;function v0(n){var e;return n.children.length>0?!1:((e=n.textContent)!=null?e:"").replace(NR,"")===""}function C0(n){const e=n.createAndFill();if(!e)throw new Error(`[tiptap error]: "${n.name}" has no default content to backfill.`);return e.content}var S0=ut.create({name:"tableCell",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:x0},align:w0()}},tableRole:"cell",isolating:!0,parseHTML(){return[{tag:"td",getAttrs:n=>v0(n)?{}:!1,getContent:(n,e)=>C0(e.nodes[this.name])},{tag:"td"}]},renderHTML({HTMLAttributes:n}){return["td",ze(this.options.HTMLAttributes,n),0]}}),E0=ut.create({name:"tableHeader",addOptions(){return{HTMLAttributes:{}}},content:"block+",addAttributes(){return{colspan:{default:1},rowspan:{default:1},colwidth:{default:null,parseHTML:x0},align:w0()}},tableRole:"header_cell",isolating:!0,parseHTML(){return[{tag:"th",getAttrs:n=>v0(n)?{}:!1,getContent:(n,e)=>C0(e.nodes[this.name])},{tag:"th"}]},renderHTML({HTMLAttributes:n}){return["th",ze(this.options.HTMLAttributes,n),0]}}),M0=ut.create({name:"tableRow",addOptions(){return{HTMLAttributes:{}}},content:"(tableCell | tableHeader)*",tableRole:"row",parseHTML(){return[{tag:"tr"}]},renderHTML({HTMLAttributes:n}){return["tr",ze(this.options.HTMLAttributes,n),0]}});function uu(n,e){return e?["width",`${Math.max(e,n)}px`]:["min-width",`${n}px`]}function fu(n,e,t,r,o,i){var l;let a=0,c=!0,d=e.firstChild;const u=n.firstChild;if(u!==null)for(let p=0,h=0;p<u.childCount;p+=1){const{colspan:m,colwidth:g}=u.child(p).attrs;for(let y=0;y<m;y+=1,h+=1){const b=o===h?i:g&&g[y],w=b?`${b}px`:"";if(a+=b||r,b||(c=!1),d){if(d.style.width!==w){const[v,S]=uu(r,b);d.style.setProperty(v,S)}d=d.nextSibling}else{const v=document.createElement("col"),[S,N]=uu(r,b);v.style.setProperty(S,N),e.appendChild(v)}}}for(;d;){const p=d.nextSibling;(l=d.parentNode)==null||l.removeChild(d),d=p}const f=n.attrs.style&&typeof n.attrs.style=="string"&&/\bwidth\s*:/i.test(n.attrs.style);c&&!f?(t.style.width=`${a}px`,t.style.minWidth=""):(t.style.width="",t.style.minWidth=`${a}px`)}var A0=class{constructor(n,e,t,r={}){this.node=n,this.cellMinWidth=e,this.dom=document.createElement("div"),this.dom.className="tableWrapper",this.table=this.dom.appendChild(document.createElement("table"));for(const[o,i]of Object.entries(r))i!=null&&(o==="style"?this.table.style.cssText=String(i):this.table.setAttribute(o,String(i)));n.attrs.style&&(this.table.style.cssText=n.attrs.style),this.colgroup=this.table.appendChild(document.createElement("colgroup")),fu(n,this.colgroup,this.table,e),this.contentDOM=this.table.appendChild(document.createElement("tbody"))}update(n){return n.type!==this.node.type?!1:(this.node=n,fu(n,this.colgroup,this.table,this.cellMinWidth),!0)}ignoreMutation(n){const e=n.target,t=this.dom.contains(e),r=this.contentDOM.contains(e);return!!(t&&!r&&(n.type==="attributes"||n.type==="childList"||n.type==="characterData"))}};function _0(n,e,t,r){let o=0,i=!0;const l=[],a=n.firstChild;if(!a)return{};for(let f=0,p=0;f<a.childCount;f+=1){const{colspan:h,colwidth:m}=a.child(f).attrs;for(let g=0;g<h;g+=1,p+=1){const y=t===p?r:m&&m[g];o+=y||e,y||(i=!1);const[b,w]=uu(e,y);l.push(["col",{style:`${b}: ${w}`}])}}const c=i?`${o}px`:"",d=i?"":`${o}px`;return{colgroup:["colgroup",{},...l],tableWidth:c,tableMinWidth:d}}function T0(n,e){return e?n.createChecked(null,e):n.createAndFill()}function DR(n){if(n.cached.tableNodeTypes)return n.cached.tableNodeTypes;const e={};return Object.keys(n.nodes).forEach(t=>{const r=n.nodes[t];r.spec.tableRole&&(e[r.spec.tableRole]=r)}),n.cached.tableNodeTypes=e,e}function B0(n,e,t,r,o){const i=DR(n),l=[],a=[];for(let d=0;d<t;d+=1){const u=T0(i.cell,o);if(u&&a.push(u),r){const f=T0(i.header_cell,o);f&&l.push(f)}}const c=[];for(let d=0;d<e;d+=1)c.push(i.row.createChecked(null,r&&d===0?l:a));return i.table.createChecked(null,c)}function VR(n){return n instanceof Ge}var sa=({editor:n})=>{const{selection:e}=n.state;if(!VR(e))return!1;let t=0;const r=mo(e.ranges[0].$from,i=>i.type.name==="table");return r?.node.descendants(i=>{if(i.type.name==="table")return!1;["tableCell","tableHeader"].includes(i.type.name)&&(t+=1)}),t===e.ranges.length?(n.commands.deleteTable(),!0):!1};function N0(n,e){const t=n.mapping.map(e),r=mo(n.selection.$from,l=>l.type.name==="table");if(r?.pos===t)return;const o=n.doc.nodeAt(t);if(!o)return;const i=t+o.nodeSize-1;n.setSelection(ye.near(n.doc.resolve(i),-1))}var D0="";function V0(n){let e="",t=0;for(;t<n.length;){if(n[t]==="\\"&&t+1<n.length){e+=n[t]+n[t+1],t+=2;continue}if(n[t]!=="`"){e+=n[t++];continue}let r=0;for(;t+r<n.length&&n[t+r]==="`";)r+=1;let o=t+r,i=!1;for(;o<n.length;){if(n[o]!=="`"){o+=1;continue}let l=0;for(;o+l<n.length&&n[o+l]==="`";)l+=1;if(l===r){const a=n.slice(t+r,o);e+=n.slice(t,t+r)+a.replace(new RegExp("(?<!\\\\)\\|","g"),"\\|")+n.slice(o,o+r),t=o+r,i=!0;break}o+=l}i||(e+=n.slice(t,t+r),t+=r)}return e}function $0(n){return n.split(`
197
197
  `).map(e=>!e.includes("|")||!e.includes("`")?e:V0(e)).join(`
198
198
  `)}function $R(n){return(n||"").replace(/\s+/g," ").trim()}function L0(n,e,t={}){var r;const o=(r=t.cellLineSeparator)!=null?r:D0;if(!n||!n.content||n.content.length===0)return"";const i=[];n.content.forEach(g=>{const y=[];g.content&&g.content.forEach(b=>{let w="";b.content&&Array.isArray(b.content)&&b.content.length>1?w=b.content.map(T=>e.renderChildren(T)).join(o):w=b.content?e.renderChildren(b.content):"";const v=$R(w.split(o).join(`
199
199
  `).replace(/[ \t]*\r?\n[ \t]*/g,"<br>")),S=b.type==="tableHeader",N=TR(b.attrs);y.push({text:v,isHeader:S,align:N})}),i.push(y)});const l=i.reduce((g,y)=>Math.max(g,y.length),0);if(l===0)return"";const a=Array.from({length:l}).fill(0);i.forEach(g=>{var y;for(let b=0;b<l;b+=1){const v=(((y=g[b])==null?void 0:y.text)||"").length;v>a[b]&&(a[b]=v),a[b]<3&&(a[b]=3)}});const c=(g,y)=>g+" ".repeat(Math.max(0,y-g.length)),d=i[0],u=d.some(g=>g.isHeader),f=Array.from({length:l}).fill(null);i.forEach(g=>{var y;for(let b=0;b<l;b+=1)!f[b]&&((y=g[b])!=null&&y.align)&&(f[b]=g[b].align)});let p=`
@@ -207,4 +207,4 @@ ${t}
207
207
  `);if(i.length<2)return;const l=i[1];if(!/^[ \t|:]*-[ \t|:-]*$/.test(l)||!l.includes("|"))return;const a=$0(o);if(a===o)return;const d=t.blockTokens(a)[0];if(d?.type!=="table"||!d.raw)return;const u=d.raw.split(`
208
208
  `).length,f=n.split(`
209
209
  `).slice(0,u).join(`
210
- `);return{...d,raw:f}}},addCommands(){return{insertTable:({rows:n=3,cols:e=3,withHeaderRow:t=!0}={})=>({tr:r,dispatch:o,editor:i})=>{const l=B0(i.schema,n,e,t);if(o){const a=r.selection.from+1;r.replaceSelectionWith(l).scrollIntoView().setSelection(ye.near(r.doc.resolve(a)))}return!0},addColumnBefore:()=>({state:n,dispatch:e})=>KO(n,e),addColumnAfter:()=>({state:n,dispatch:e})=>qO(n,e),deleteColumn:()=>({state:n,dispatch:e})=>{const t=mo(n.selection.$from,r=>r.type.name==="table");return JO(n,e&&(r=>{t&&N0(r,t.pos),e(r)}))},addRowBefore:()=>({state:n,dispatch:e})=>XO(n,e),addRowAfter:()=>({state:n,dispatch:e})=>ZO(n,e),deleteRow:()=>({state:n,dispatch:e})=>{const t=mo(n.selection.$from,r=>r.type.name==="table");return eR(n,e&&(r=>{t&&N0(r,t.pos),e(r)}))},deleteTable:()=>({state:n,dispatch:e})=>lR(n,e),mergeCells:()=>({state:n,dispatch:e})=>l0(n,e),splitCell:()=>({state:n,dispatch:e})=>a0(n,e),toggleHeaderColumn:()=>({state:n,dispatch:e})=>Ls("column")(n,e),toggleHeaderRow:()=>({state:n,dispatch:e})=>Ls("row")(n,e),toggleHeaderCell:()=>({state:n,dispatch:e})=>sR(n,e),mergeOrSplit:()=>({state:n,dispatch:e})=>l0(n,e)?!0:a0(n,e),setCellAttribute:(n,e)=>({state:t,dispatch:r})=>rR(n,e)(t,r),goToNextCell:()=>({state:n,dispatch:e})=>d0(1)(n,e),goToPreviousCell:()=>({state:n,dispatch:e})=>d0(-1)(n,e),fixTables:()=>({state:n,dispatch:e})=>(e&&r0(n),!0),setCellSelection:n=>({tr:e,dispatch:t})=>{if(t){const r=Ge.create(e.doc,n.anchorCell,n.headCell);e.setSelection(r)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.goToNextCell()?!0:this.editor.can().addRowAfter()?this.editor.chain().addRowAfter().goToNextCell().run():!1,"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:sa,"Mod-Backspace":sa,Delete:sa,"Mod-Delete":sa}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[yR({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,defaultCellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],AR({allowTableNodeSelection:this.options.allowTableNodeSelection})]},addNodeView(){const n=this.options.resizable&&this.editor.isEditable,e=this.options.View;return n||!e?null:({node:t,view:r,HTMLAttributes:o})=>{const i=ze(this.options.HTMLAttributes,o);return new e(t,this.options.cellMinWidth,r,i)}},extendNodeSchema(n){const e={name:n.name,options:n.options,storage:n.storage};return{tableRole:Oe(be(n,"tableRole",e))}}}),IR=He.create({name:"tableKit",addExtensions(){const n=[];return this.options.table!==!1&&n.push(I0.configure(this.options.table)),this.options.tableCell!==!1&&n.push(S0.configure(this.options.tableCell)),this.options.tableHeader!==!1&&n.push(E0.configure(this.options.tableHeader)),this.options.tableRow!==!1&&n.push(M0.configure(this.options.tableRow)),n}});const OR=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_CELL_LINE_SEPARATOR:D0,Table:I0,TableCell:S0,TableHeader:E0,TableKit:IR,TableRow:M0,TableView:A0,createColGroup:_0,createTable:B0,escapeTableCellPipes:V0,preprocessTablePipes:$0,renderTableToMarkdown:L0,updateColumns:fu},Symbol.toStringTag,{value:"Module"}));var O0=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))$/,R0=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))/g,F0=Zt.create({name:"highlight",addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:n=>n.getAttribute("data-color")||Fr(n,"background-color")||n.style.backgroundColor,renderHTML:n=>n.color?{"data-color":n.color,style:`background-color: ${n.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:"mark"}]},renderHTML({HTMLAttributes:n}){return["mark",ze(this.options.HTMLAttributes,n),0]},renderMarkdown:(n,e)=>`==${e.renderChildren(n)}==`,parseMarkdown:(n,e)=>e.applyMark("highlight",e.parseInline(n.tokens||[])),markdownTokenizer:{name:"highlight",level:"inline",start:n=>n.indexOf("=="),tokenize(n,e,t){const o=/^(==)([^=]+)(==)/.exec(n);if(o){const i=o[2].trim(),l=t.inlineTokens(i);return{type:"highlight",raw:o[0],text:i,tokens:l}}}},addCommands(){return{setHighlight:n=>({commands:e})=>e.setMark(this.name,n),toggleHighlight:n=>({commands:e})=>e.toggleMark(this.name,n),unsetHighlight:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[Rn({find:O0,type:this.type})]},addPasteRules(){return[bn({find:R0,type:this.type})]}}),RR=F0;const FR=Object.freeze(Object.defineProperty({__proto__:null,Highlight:F0,default:RR,inputRegex:O0,pasteRegex:R0},Symbol.toStringTag,{value:"Module"}));var P0=Zt.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(n){return n!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:n}){return["sub",ze(this.options.HTMLAttributes,n),0]},addCommands(){return{setSubscript:()=>({commands:n})=>n.setMark(this.name),toggleSubscript:()=>({commands:n})=>n.toggleMark(this.name),unsetSubscript:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),PR=P0;const zR=Object.freeze(Object.defineProperty({__proto__:null,Subscript:P0,default:PR},Symbol.toStringTag,{value:"Module"}));var z0=Zt.create({name:"superscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sup"},{style:"vertical-align",getAttrs(n){return n!=="super"?!1:null}}]},renderHTML({HTMLAttributes:n}){return["sup",ze(this.options.HTMLAttributes,n),0]},addCommands(){return{setSuperscript:()=>({commands:n})=>n.setMark(this.name),toggleSuperscript:()=>({commands:n})=>n.toggleMark(this.name),unsetSuperscript:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}}),HR=z0;const jR=Object.freeze(Object.defineProperty({__proto__:null,Superscript:z0,default:HR},Symbol.toStringTag,{value:"Module"}));var H0=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,j0=ut.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:n}){return["img",ze(this.options.HTMLAttributes,n)]},parseMarkdown:(n,e)=>e.createNode("image",{src:n.href,title:n.title,alt:n.text}),renderMarkdown:n=>{var e,t,r,o,i,l;const a=(t=(e=n.attrs)==null?void 0:e.src)!=null?t:"",c=(o=(r=n.attrs)==null?void 0:r.alt)!=null?o:"",d=(l=(i=n.attrs)==null?void 0:i.title)!=null?l:"";return d?`![${c}](${a} "${d}")`:`![${c}](${a})`},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>"u")return null;const{directions:n,minWidth:e,minHeight:t,alwaysPreserveAspectRatio:r}=this.options.resize,o=new Set(["src","width","height"]);return({node:i,getPos:l,HTMLAttributes:a,editor:c})=>{const d=document.createElement("img");d.draggable=!1;const u=ze(this.options.HTMLAttributes,a);Object.entries(u).forEach(([y,b])=>{if(b!=null)switch(y){case"src":case"width":case"height":break;default:d.setAttribute(y,b);break}}),u.src!==null&&(d.src=u.src);let f={...a};const p=y=>{if(typeof y=="string"&&y!==""){d.getAttribute("src")!==y&&(d.src=y);return}d.hasAttribute("src")&&d.removeAttribute("src"),d.src!==""&&(d.src="")};p(a.src);const h=y=>{if(y.type!==i.type)return!1;const b=c.extensionManager.attributes.filter(v=>v.type===y.type.name),w=Ir(y,b);return Object.keys(f).forEach(v=>{!o.has(v)&&!(v in w)&&d.removeAttribute(v)}),Object.entries(w).forEach(([v,S])=>{o.has(v)||(S!=null?d.setAttribute(v,S):d.removeAttribute(v))}),p(w.src),f=w,!0},m=new kd({element:d,editor:c,node:i,getPos:l,onResize:(y,b)=>{d.style.width=`${y}px`,d.style.height=`${b}px`},onCommit:(y,b)=>{const w=l();w!==void 0&&this.editor.chain().setNodeSelection(w).updateAttributes(this.name,{width:y,height:b}).run()},onUpdate:h,options:{directions:n,min:{width:e,height:t},preserveAspectRatio:r===!0}}),g=m.dom;return g.style.visibility="hidden",g.style.pointerEvents="none",d.onload=()=>{g.style.visibility="",g.style.pointerEvents=""},m}},addCommands(){return{setImage:n=>({commands:e})=>e.insertContent({type:this.name,attrs:n})}},addInputRules(){return[bd({find:H0,type:this.type,getAttributes:n=>{const[,,e,t,r]=n;return{src:t,alt:e,title:r}}})]}}),UR=j0;const WR=Object.freeze(Object.defineProperty({__proto__:null,Image:j0,default:UR,inputRegex:H0},Symbol.toStringTag,{value:"Module"}));var U0=He.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:null}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:n=>{const e=n.style.textAlign;return this.options.alignments.includes(e)?e:this.options.defaultAlignment},renderHTML:n=>n.textAlign?{style:`text-align: ${n.textAlign}`}:{}}}}]},addCommands(){return{setTextAlign:n=>({commands:e})=>this.options.alignments.includes(n)?this.options.types.map(t=>e.updateAttributes(t,{textAlign:n})).some(t=>t):!1,unsetTextAlign:()=>({commands:n})=>this.options.types.map(e=>n.resetAttributes(e,"textAlign")).some(e=>e),toggleTextAlign:n=>({editor:e,commands:t})=>this.options.alignments.includes(n)?e.isActive({textAlign:n})?t.unsetTextAlign():t.setTextAlign(n):!1}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),KR=U0;const qR=Object.freeze(Object.defineProperty({__proto__:null,TextAlign:U0,default:KR},Symbol.toStringTag,{value:"Module"}));Se.ModalEdit=Df,Se.VForm=Pt,Se.VsInputAddress=Af,Se.VsInputArray=Mf,Se.VsInputArraySelect=hi,Se.VsInputCheckbox=Lu,Se.VsInputCodegen=xf,Se.VsInputColor=Sf,Se.VsInputContainer=nf,Se.VsInputDate=ju,Se.VsInputEmail=ka,Se.VsInputFile=Ju,Se.VsInputFile2=oi,Se.VsInputFile64=si,Se.VsInputFileList=Qu,Se.VsInputInlineSelect=li,Se.VsInputKeyValue=vf,Se.VsInputMask=Gs,Se.VsInputMonaco=Pa,Se.VsInputNumber=Du,Se.VsInputRadio=xa,Se.VsInputRange=Ef,Se.VsInputRichtext=lf,Se.VsInputSelect=Va,Se.VsInputSlug=wf,Se.VsInputStatic=ba,Se.VsInputSwitcher=ya,Se.VsInputTag=kf,Se.VsInputTel=wa,Se.VsInputText=Yr,Se.VsInputTextArray=Cf,Se.VsInputTextarea=sf,Se.base64ToBlob=Na,Se.base64ToObjectUrl=Xu,Se.default=Pt,Se.downloadBase64File=Zu,Se.fileToBase64=Yu,Se.hasMapLayerPreset=Bu,Se.inputs=_f,Se.resolveMapLayerPreset=Ws,Se.richtextLocaleEn=Vf,Se.richtextLocaleUk=$f,Se.richtextMessages=Ha,Se.vsInputDatatable=af,Se.vsInputMap=bf,Object.defineProperties(Se,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
210
+ `);return{...d,raw:f}}},addCommands(){return{insertTable:({rows:n=3,cols:e=3,withHeaderRow:t=!0}={})=>({tr:r,dispatch:o,editor:i})=>{const l=B0(i.schema,n,e,t);if(o){const a=r.selection.from+1;r.replaceSelectionWith(l).scrollIntoView().setSelection(ye.near(r.doc.resolve(a)))}return!0},addColumnBefore:()=>({state:n,dispatch:e})=>KO(n,e),addColumnAfter:()=>({state:n,dispatch:e})=>qO(n,e),deleteColumn:()=>({state:n,dispatch:e})=>{const t=mo(n.selection.$from,r=>r.type.name==="table");return JO(n,e&&(r=>{t&&N0(r,t.pos),e(r)}))},addRowBefore:()=>({state:n,dispatch:e})=>XO(n,e),addRowAfter:()=>({state:n,dispatch:e})=>ZO(n,e),deleteRow:()=>({state:n,dispatch:e})=>{const t=mo(n.selection.$from,r=>r.type.name==="table");return eR(n,e&&(r=>{t&&N0(r,t.pos),e(r)}))},deleteTable:()=>({state:n,dispatch:e})=>lR(n,e),mergeCells:()=>({state:n,dispatch:e})=>l0(n,e),splitCell:()=>({state:n,dispatch:e})=>a0(n,e),toggleHeaderColumn:()=>({state:n,dispatch:e})=>Ls("column")(n,e),toggleHeaderRow:()=>({state:n,dispatch:e})=>Ls("row")(n,e),toggleHeaderCell:()=>({state:n,dispatch:e})=>sR(n,e),mergeOrSplit:()=>({state:n,dispatch:e})=>l0(n,e)?!0:a0(n,e),setCellAttribute:(n,e)=>({state:t,dispatch:r})=>rR(n,e)(t,r),goToNextCell:()=>({state:n,dispatch:e})=>d0(1)(n,e),goToPreviousCell:()=>({state:n,dispatch:e})=>d0(-1)(n,e),fixTables:()=>({state:n,dispatch:e})=>(e&&r0(n),!0),setCellSelection:n=>({tr:e,dispatch:t})=>{if(t){const r=Ge.create(e.doc,n.anchorCell,n.headCell);e.setSelection(r)}return!0}}},addKeyboardShortcuts(){return{Tab:()=>this.editor.commands.goToNextCell()?!0:this.editor.can().addRowAfter()?this.editor.chain().addRowAfter().goToNextCell().run():!1,"Shift-Tab":()=>this.editor.commands.goToPreviousCell(),Backspace:sa,"Mod-Backspace":sa,Delete:sa,"Mod-Delete":sa}},addProseMirrorPlugins(){return[...this.options.resizable&&this.editor.isEditable?[yR({handleWidth:this.options.handleWidth,cellMinWidth:this.options.cellMinWidth,defaultCellMinWidth:this.options.cellMinWidth,View:this.options.View,lastColumnResizable:this.options.lastColumnResizable})]:[],AR({allowTableNodeSelection:this.options.allowTableNodeSelection})]},addNodeView(){const n=this.options.resizable&&this.editor.isEditable,e=this.options.View;return n||!e?null:({node:t,view:r,HTMLAttributes:o})=>{const i=ze(this.options.HTMLAttributes,o);return new e(t,this.options.cellMinWidth,r,i)}},extendNodeSchema(n){const e={name:n.name,options:n.options,storage:n.storage};return{tableRole:Oe(be(n,"tableRole",e))}}}),IR=He.create({name:"tableKit",addExtensions(){const n=[];return this.options.table!==!1&&n.push(I0.configure(this.options.table)),this.options.tableCell!==!1&&n.push(S0.configure(this.options.tableCell)),this.options.tableHeader!==!1&&n.push(E0.configure(this.options.tableHeader)),this.options.tableRow!==!1&&n.push(M0.configure(this.options.tableRow)),n}});const OR=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_CELL_LINE_SEPARATOR:D0,Table:I0,TableCell:S0,TableHeader:E0,TableKit:IR,TableRow:M0,TableView:A0,createColGroup:_0,createTable:B0,escapeTableCellPipes:V0,preprocessTablePipes:$0,renderTableToMarkdown:L0,updateColumns:fu},Symbol.toStringTag,{value:"Module"}));var O0=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))$/,R0=/(?:^|\s)(==(?!\s+==)((?:[^=]+))==(?!\s+==))/g,F0=Zt.create({name:"highlight",addOptions(){return{multicolor:!1,HTMLAttributes:{}}},addAttributes(){return this.options.multicolor?{color:{default:null,parseHTML:n=>n.getAttribute("data-color")||Fr(n,"background-color")||n.style.backgroundColor,renderHTML:n=>n.color?{"data-color":n.color,style:`background-color: ${n.color}; color: inherit`}:{}}}:{}},parseHTML(){return[{tag:"mark"}]},renderHTML({HTMLAttributes:n}){return["mark",ze(this.options.HTMLAttributes,n),0]},renderMarkdown:(n,e)=>`==${e.renderChildren(n)}==`,parseMarkdown:(n,e)=>e.applyMark("highlight",e.parseInline(n.tokens||[])),markdownTokenizer:{name:"highlight",level:"inline",start:n=>n.indexOf("=="),tokenize(n,e,t){const o=/^(==)([^=]+)(==)/.exec(n);if(o){const i=o[2].trim(),l=t.inlineTokens(i);return{type:"highlight",raw:o[0],text:i,tokens:l}}}},addCommands(){return{setHighlight:n=>({commands:e})=>e.setMark(this.name,n),toggleHighlight:n=>({commands:e})=>e.toggleMark(this.name,n),unsetHighlight:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-Shift-h":()=>this.editor.commands.toggleHighlight()}},addInputRules(){return[Rn({find:O0,type:this.type})]},addPasteRules(){return[bn({find:R0,type:this.type})]}}),RR=F0;const FR=Object.freeze(Object.defineProperty({__proto__:null,Highlight:F0,default:RR,inputRegex:O0,pasteRegex:R0},Symbol.toStringTag,{value:"Module"}));var P0=Zt.create({name:"subscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sub"},{style:"vertical-align",getAttrs(n){return n!=="sub"?!1:null}}]},renderHTML({HTMLAttributes:n}){return["sub",ze(this.options.HTMLAttributes,n),0]},addCommands(){return{setSubscript:()=>({commands:n})=>n.setMark(this.name),toggleSubscript:()=>({commands:n})=>n.toggleMark(this.name),unsetSubscript:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-,":()=>this.editor.commands.toggleSubscript()}}}),PR=P0;const zR=Object.freeze(Object.defineProperty({__proto__:null,Subscript:P0,default:PR},Symbol.toStringTag,{value:"Module"}));var z0=Zt.create({name:"superscript",addOptions(){return{HTMLAttributes:{}}},parseHTML(){return[{tag:"sup"},{style:"vertical-align",getAttrs(n){return n!=="super"?!1:null}}]},renderHTML({HTMLAttributes:n}){return["sup",ze(this.options.HTMLAttributes,n),0]},addCommands(){return{setSuperscript:()=>({commands:n})=>n.setMark(this.name),toggleSuperscript:()=>({commands:n})=>n.toggleMark(this.name),unsetSuperscript:()=>({commands:n})=>n.unsetMark(this.name)}},addKeyboardShortcuts(){return{"Mod-.":()=>this.editor.commands.toggleSuperscript()}}}),HR=z0;const jR=Object.freeze(Object.defineProperty({__proto__:null,Superscript:z0,default:HR},Symbol.toStringTag,{value:"Module"}));var H0=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,j0=ut.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{},resize:!1}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null},width:{default:null},height:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:n}){return["img",ze(this.options.HTMLAttributes,n)]},parseMarkdown:(n,e)=>e.createNode("image",{src:n.href,title:n.title,alt:n.text}),renderMarkdown:n=>{var e,t,r,o,i,l;const a=(t=(e=n.attrs)==null?void 0:e.src)!=null?t:"",c=(o=(r=n.attrs)==null?void 0:r.alt)!=null?o:"",d=(l=(i=n.attrs)==null?void 0:i.title)!=null?l:"";return d?`![${c}](${a} "${d}")`:`![${c}](${a})`},addNodeView(){if(!this.options.resize||!this.options.resize.enabled||typeof document>"u")return null;const{directions:n,minWidth:e,minHeight:t,alwaysPreserveAspectRatio:r}=this.options.resize,o=new Set(["src","width","height"]);return({node:i,getPos:l,HTMLAttributes:a,editor:c})=>{const d=document.createElement("img");d.draggable=!1;const u=ze(this.options.HTMLAttributes,a);Object.entries(u).forEach(([y,b])=>{if(b!=null)switch(y){case"src":case"width":case"height":break;default:d.setAttribute(y,b);break}}),u.src!==null&&(d.src=u.src);let f={...a};const p=y=>{if(typeof y=="string"&&y!==""){d.getAttribute("src")!==y&&(d.src=y);return}d.hasAttribute("src")&&d.removeAttribute("src"),d.src!==""&&(d.src="")};p(a.src);const h=y=>{if(y.type!==i.type)return!1;const b=c.extensionManager.attributes.filter(v=>v.type===y.type.name),w=Ir(y,b);return Object.keys(f).forEach(v=>{!o.has(v)&&!(v in w)&&d.removeAttribute(v)}),Object.entries(w).forEach(([v,S])=>{o.has(v)||(S!=null?d.setAttribute(v,S):d.removeAttribute(v))}),p(w.src),f=w,!0},m=new kd({element:d,editor:c,node:i,getPos:l,onResize:(y,b)=>{d.style.width=`${y}px`,d.style.height=`${b}px`},onCommit:(y,b)=>{const w=l();w!==void 0&&this.editor.chain().setNodeSelection(w).updateAttributes(this.name,{width:y,height:b}).run()},onUpdate:h,options:{directions:n,min:{width:e,height:t},preserveAspectRatio:r===!0}}),g=m.dom;return g.style.visibility="hidden",g.style.pointerEvents="none",d.onload=()=>{g.style.visibility="",g.style.pointerEvents=""},m}},addCommands(){return{setImage:n=>({commands:e})=>e.insertContent({type:this.name,attrs:n})}},addInputRules(){return[bd({find:H0,type:this.type,getAttributes:n=>{const[,,e,t,r]=n;return{src:t,alt:e,title:r}}})]}}),UR=j0;const WR=Object.freeze(Object.defineProperty({__proto__:null,Image:j0,default:UR,inputRegex:H0},Symbol.toStringTag,{value:"Module"}));var U0=He.create({name:"textAlign",addOptions(){return{types:[],alignments:["left","center","right","justify"],defaultAlignment:null}},addGlobalAttributes(){return[{types:this.options.types,attributes:{textAlign:{default:this.options.defaultAlignment,parseHTML:n=>{const e=n.style.textAlign;return this.options.alignments.includes(e)?e:this.options.defaultAlignment},renderHTML:n=>n.textAlign?{style:`text-align: ${n.textAlign}`}:{}}}}]},addCommands(){return{setTextAlign:n=>({commands:e})=>this.options.alignments.includes(n)?this.options.types.map(t=>e.updateAttributes(t,{textAlign:n})).some(t=>t):!1,unsetTextAlign:()=>({commands:n})=>this.options.types.map(e=>n.resetAttributes(e,"textAlign")).some(e=>e),toggleTextAlign:n=>({editor:e,commands:t})=>this.options.alignments.includes(n)?e.isActive({textAlign:n})?t.unsetTextAlign():t.setTextAlign(n):!1}},addKeyboardShortcuts(){return{"Mod-Shift-l":()=>this.editor.commands.setTextAlign("left"),"Mod-Shift-e":()=>this.editor.commands.setTextAlign("center"),"Mod-Shift-r":()=>this.editor.commands.setTextAlign("right"),"Mod-Shift-j":()=>this.editor.commands.setTextAlign("justify")}}}),KR=U0;const qR=Object.freeze(Object.defineProperty({__proto__:null,TextAlign:U0,default:KR},Symbol.toStringTag,{value:"Module"}));Se.ModalEdit=Df,Se.VForm=Pt,Se.VsInputAddress=Af,Se.VsInputArray=Mf,Se.VsInputArraySelect=hi,Se.VsInputCheckbox=Lu,Se.VsInputCodegen=xf,Se.VsInputColor=Sf,Se.VsInputContainer=nf,Se.VsInputDate=ju,Se.VsInputEmail=ka,Se.VsInputFile=Ju,Se.VsInputFile2=oi,Se.VsInputFile64=si,Se.VsInputFileList=Qu,Se.VsInputInlineSelect=li,Se.VsInputKeyValue=vf,Se.VsInputMask=Gs,Se.VsInputMonaco=Pa,Se.VsInputNumber=Du,Se.VsInputRadio=xa,Se.VsInputRange=Ef,Se.VsInputRichtext=lf,Se.VsInputSelect=Va,Se.VsInputSlug=wf,Se.VsInputStatic=ba,Se.VsInputSwitcher=ya,Se.VsInputTag=kf,Se.VsInputTel=wa,Se.VsInputText=Yr,Se.VsInputTextArray=Cf,Se.VsInputTextarea=sf,Se.base64ToBlob=Na,Se.base64ToObjectUrl=Xu,Se.default=Pt,Se.downloadBase64File=Zu,Se.fileToBase64=Yu,Se.hasMapLayerPreset=Bu,Se.inputs=_f,Se.resolveMapLayerPreset=Ws,Se.richtextLocaleEn=Vf,Se.richtextLocaleUk=$f,Se.richtextMessages=Ha,Se.vsInputDatatable=af,Se.vsInputMap=bf,Object.defineProperties(Se,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));