@opengis/form 0.0.183 → 0.0.185
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -61
- package/dist/api/suggest/suggestions_list.json +7 -7
- package/dist/index-DnsOnW7S.js +12320 -0
- package/dist/index.css +1 -1
- package/dist/index.js +24 -22
- package/dist/index.umd.cjs +23 -23
- package/dist/src/components/inputs/date/datepicker/Datepicker.vue.d.ts.map +1 -1
- package/dist/src/components/inputs/index.d.ts +1 -1
- package/dist/src/components/inputs/map/map-layer-presets.d.ts +4 -0
- package/dist/src/components/inputs/map/map-layer-presets.d.ts.map +1 -0
- package/dist/src/components/inputs/map/safe-raster-tiles.d.ts +10 -0
- package/dist/src/components/inputs/map/safe-raster-tiles.d.ts.map +1 -0
- package/dist/src/components/inputs/map/vs-input-map.vue.d.ts.map +1 -1
- package/dist/src/composables/useInputOptions.d.ts +2 -2
- package/dist/src/composables/useInputOptions.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/richtext/components/controls/index.d.ts +0 -2
- package/dist/src/richtext/components/controls/index.d.ts.map +1 -1
- package/dist/src/richtext/components/shared-components/vs-popover.vue.d.ts +2 -2
- package/dist/src/richtext/components/vs-richtext.vue.d.ts +0 -1
- package/dist/src/richtext/composables/contentFormat.d.ts +18 -0
- package/dist/src/richtext/composables/contentFormat.d.ts.map +1 -1
- package/dist/src/types/form.d.ts +21 -0
- package/dist/src/types/form.d.ts.map +1 -1
- package/dist/vs-richtext-CY9z5Lsr.js +3000 -0
- package/locales/en.json +39 -39
- package/locales/uk.json +39 -39
- package/package.json +79 -79
- package/dist/index--pLZger9.js +0 -12166
- package/dist/src/richtext/components/controls/vs-editor-tab.vue.d.ts +0 -8
- package/dist/src/richtext/components/controls/vs-editor-tab.vue.d.ts.map +0 -1
- package/dist/src/richtext/components/controls/vs-editor-type-tag.vue.d.ts +0 -8
- package/dist/src/richtext/components/controls/vs-editor-type-tag.vue.d.ts.map +0 -1
- package/dist/vs-richtext-GZmWmNdx.js +0 -3049
package/dist/index.umd.cjs
CHANGED
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
(function(we,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@opengis/core"),require("lucide-vue-next")):typeof define=="function"&&define.amd?define(["exports","vue","@opengis/core","lucide-vue-next"],e):(we=typeof globalThis<"u"?globalThis:we||self,e(we.FormBuilder={},we.Vue,we.OpenGISCore,we.lucide))})(this,function(we,e,be,W){"use strict";const Lo=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(o){const t=o,n=e.ref(!1),r=e.ref({top:"0px",left:"0px"});function l(s){if(!t.text)return;const i=s.currentTarget.getBoundingClientRect();r.value={top:`${i.bottom+4}px`,left:`${Math.min(i.left,window.innerWidth-230)}px`},n.value=!0}function a(){n.value=!1}return(s,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:l,onMouseleave:a},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(W.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value&&s.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(r.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none"},e.toDisplayString(s.text),5)):e.createCommentVNode("",!0)]))],64))}}),Xn={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"}}},Zn={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:"Скасувати"}}},Cl={class:"w-full relative"},El={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},Bl={class:"opacity-100"},Vl={key:0,class:"text-red-500 text-[14px]"},Sl={key:2,class:"text-[11px] text-slate-500 font-normal"},$l={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Nl=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),r=e.computed(()=>!!n.value),l=e.computed(()=>!!t.item?.rules?.includes("required")),a=e.computed(()=>t.item?.info||""),s=e.inject("schema-by-name"),i={en:Xn?.form?.autofillFrom,uk:Zn?.form?.autofillFrom},c=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const p=String(t.item?.__locale||"uk"),m=String(d.parentField),y=s?.value?.[m],h=y?.[`label:${p}`]||(p!=="uk"?y?.[p]:void 0)||y?.label||y?.ua||y?.en||m;return`${i[p]||i.uk}: ${h}`});return(d,p)=>(e.openBlock(),e.createElementBlock("div",Cl,[r.value?(e.openBlock(),e.createElementBlock("div",El,[e.createElementVNode("span",Bl,e.toDisplayString(n.value),1),l.value?(e.openBlock(),e.createElementBlock("span",Vl,"*")):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Lo,{key:1,text:a.value},null,8,["text"])):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",Sl," ("+e.toDisplayString(c.value)+") ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.mergeProps(d.$attrs,{class:{"opacity-60":d.item.disabled}})),d.error?(e.openBlock(),e.createElementBlock("span",$l,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),Al={class:"w-full relative flex flex-row items-center gap-2"},Ml={key:0,class:"text-red-500 text-[14px]"},Fl={key:2,class:"text-[11px] text-slate-500 font-normal"},Dl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Tl=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(o){const t=o,n=e.computed(()=>t.item?.label||t.label||t.ua),r=e.computed(()=>t.item?.info||""),l=e.inject("schema-by-name"),a={en:Xn?.form?.autofillFrom,uk:Zn?.form?.autofillFrom},s=e.computed(()=>{const y=t.item?.__autoMeta;if(!y||y?.source!=="parent-auto"||!y?.parentField)return"";const h=String(t.item?.__locale||"uk"),f=String(y.parentField),k=l?.value?.[f],b=k?.[`label:${h}`]||(h!=="uk"?k?.[h]:void 0)||k?.label||k?.ua||k?.en||f;return`${a[h]||a.uk}: ${b}`}),i=e.computed(()=>t.columns??{container:12,label:3}),c=e.computed(()=>{const{container:y,label:h}=i.value;return!y||y<=0?0:Math.min(Math.max(h??0,0),y)/y}),d=e.computed(()=>t.item?.type==="html"||c.value<=0?!1:!!n.value),p=e.computed(()=>{if(!d.value)return{};const y=`${c.value*100}%`;return{flexBasis:y,maxWidth:y}}),m=e.computed(()=>{const{container:y,label:h}=i.value;if(!y||y<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const f=Math.max(y-Math.max(h??0,0),0)/y;if(!f)return{};const k=`${f*100}%`;return{flexBasis:k,maxWidth:k}});return(y,h)=>(e.openBlock(),e.createElementBlock("div",Al,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(p.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),y.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",Ml,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(Lo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",Fl," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(m.value)},[e.renderSlot(y.$slots,"default",e.normalizeProps(e.guardReactiveProps(y.$attrs)))],4),y.error?(e.openBlock(),e.createElementBlock("span",Dl,e.toDisplayString(y.error),1)):e.createCommentVNode("",!0)]))}}),Ll={class:"w-full relative"},Il={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Ol=e.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Ll,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",Il,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),Rl={class:"flex-1 min-w-0"},Pl={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},zl={class:"truncate"},jl={key:0,class:"text-red-500 text-[14px]"},Ul=["innerHTML"],Hl={key:0,class:"mt-1 text-xs text-red-500"},ql={default:Nl,horizontal:Tl,inline:Ol,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const r=e.computed(()=>t.item?.description??""),l=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),a=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const i=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=i||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(i,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":i.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(i.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",Rl,[i.ua||i.label?(e.openBlock(),e.createElementBlock("p",Pl,[e.createElementVNode("span",zl,e.toDisplayString(i.item[n.value]||i.ua||i.label),1),l.value?(e.openBlock(),e.createElementBlock("span",jl,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:r.value},null,8,Ul)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(i.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(i.$slots,"default",e.normalizeProps(e.guardReactiveProps(i.$attrs)))],2)],2),a.value?(e.openBlock(),e.createElementBlock("p",Hl,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function et(o){return{inputClass:e.computed(()=>{const n=`disabled:opacity-50 disabled:cursor-not-allowed outline-none focus:ring-2 focus:ring-ring focus:ring-${o?.primaryColor||"blue"}-500 border border-solid border-stone-200 rounded-md text-sm text-stone-800 placeholder:text-stone-400 `;return o?.size==="sm"?`${n}h-[32px]`:`${n}h-[38px]`})}}const Kl=["placeholder","disabled"],Wl=e.defineComponent({__name:"vs-input-password",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");return(s,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),placeholder:a.value,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":s.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Kl)),[[e.vModelText,r.value]])}}),Gl=["placeholder","disabled","maxlength","minlength"],qt=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),i=e.computed(()=>t.minlength??void 0);function c(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,p)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":p[0]||(p[0]=m=>r.value=m),placeholder:a.value,disabled:l.value,maxlength:s.value,minlength:i.value,onBlur:c,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[d.customClass,e.unref(n),{"!border-red-600":d.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Gl)),[[e.vModelText,r.value]])}}),Yl=["step","placeholder","disabled","min","max"],Io=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({style:{type:Object,default:()=>({})},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:[Number,String],default:void 0}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useAttrs(),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),s=p=>{if(p==null||p==="")return;const m=typeof p=="string"?p.trim().replace(",","."):p,y=Number(m);return Number.isFinite(y)?y:void 0},i=e.computed(()=>s(t.min??r.min)),c=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const p=r.step;return typeof p=="number"||typeof p=="string"?p:"any"});return(p,m)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":m[0]||(m[0]=y=>l.value=y),placeholder:o.placeholder,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:i.value,max:c.value},null,10,Yl)),[[e.vModelText,l.value]])}}),hn=o=>!!String(o??"").trim(),St=o=>o?.color?String(o.color):"",Xt=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},Zt=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},Xl={class:"flex items-center gap-[4px]"},Zl=["value","id","disabled"],Jl=["for"],Ql=["innerHTML"],ea={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},ta=["src"],na=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(o,{emit:t}){const n=t,r=o,l=e.computed({get:()=>r.modelValue,set:h=>n("update:modelValue",h)}),a=e.computed(()=>!!r.disabled),s=e.computed(()=>Xt(r.option)),i=e.computed(()=>Zt(r.option)),c=e.computed(()=>St(r.option)),d=e.computed(()=>!!(c.value&&!s.value&&!i.value)),p=e.computed(()=>!!(s.value&&c.value)),m=e.computed(()=>c.value?{color:c.value}:void 0),y=e.computed(()=>{if(!(!s.value||!c.value))return{backgroundColor:c.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(h,f)=>(e.openBlock(),e.createElementBlock("div",Xl,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:h.value,"onUpdate:modelValue":f[0]||(f[0]=k=>l.value=k),class:e.normalizeClass(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer",{"!cursor-not-allowed":a.value}]),id:h.id,disabled:a.value},null,10,Zl),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:h.id,class:e.normalizeClass(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300",{"!cursor-not-allowed":a.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[l.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",h.error?"border-red-600":""]])},[e.createVNode(e.unref(W.Check),{class:"h-4 w-4"})],2),h.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:h.html},null,8,Ql)):(e.openBlock(),e.createElementBlock("span",ea,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:c.value})},null,4)):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(y.value)},null,4)):s.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:s.value,alt:"icon"},null,8,ta)):i.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(m.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(h.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(h.label),1)])]))],10,Jl)]))}}),oa=["name","value","disabled"],ra=["innerHTML"],la={key:1,class:"flex items-center gap-[6px] text-[14px]"},aa={key:2,class:"text-[16px] inline-flex items-center justify-center"},sa=["src"],ia=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=e.computed({get:()=>n.modelValue,set:k=>{r("update:modelValue",k)}}),a=e.computed(()=>Array.isArray(l.value)?l.value.includes(n.value):l.value===!0||l.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),i=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),c=e.computed(()=>Xt(i.value)),d=e.computed(()=>Zt(i.value)),p=e.computed(()=>St(i.value)),m=e.computed(()=>!!(p.value&&!c.value&&!d.value)),y=e.computed(()=>!!(c.value&&p.value)),h=e.computed(()=>p.value?{color:p.value}:void 0),f=e.computed(()=>{if(!(!c.value||!p.value))return{backgroundColor:p.value,WebkitMaskImage:`url(${c.value})`,maskImage:`url(${c.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(k,b)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,a.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:k.id,value:k.value,"onUpdate:modelValue":b[0]||(b[0]=v=>l.value=v),disabled:k.disabled},null,8,oa),[[e.vModelCheckbox,l.value]]),k.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:k.html},null,8,ra)):(e.openBlock(),e.createElementBlock("span",la,[m.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:p.value})},null,4)):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(f.value)},null,4)):c.value||d.value?(e.openBlock(),e.createElementBlock("span",aa,[c.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:c.value,width:"16",height:"16",alt:"icon"},null,8,sa)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(h.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(k.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(k.label),1)])]))],2))}}),ca={class:"flex items-center"},Jn=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=`radio-${Math.floor(Math.random()*1e4)}`,a=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:i=>{if(Array.isArray(n.modelValue)){let c=[...n.modelValue];i?c.includes(n.value)||c.push(n.value):c=c.filter(d=>d!==n.value),r("update:modelValue",c)}else r("update:modelValue",i)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(i,c)=>(e.openBlock(),e.createElementBlock("div",ca,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(ia):e.unref(na)),{value:i.value,label:i.label,html:i.labelHtml,info:i.option?.info,disabled:i.disabled,modelValue:a.value,"onUpdate:modelValue":c[0]||(c[0]=d=>a.value=d),id:l,icon:i.icon,imgUrl:i.imgUrl,option:i.option,style:e.normalizeStyle(i.style),error:i.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),da={key:0,class:"flex items-start gap-x-1"},ua={key:0,class:"text-red-500 text-[14px]"},pa=["title"],ma=["disabled"],Qn=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue");return(r,l)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",da,[e.createVNode(Jn,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",ua,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:l[1]||(l[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(W.Info),{class:"h-4 w-4 text-gray-500"})],8,pa)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[n.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:l[2]||(l[2]=a=>n.value=!n.value)},[e.createElementVNode("span",{"data-state":"checked",class:e.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[n.value?"translate-x-4":"translate-x-0"]])},null,2)],10,ma))}}),fa=["id","innerHTML"],eo=e.defineComponent({__name:"vs-input-static",props:{text:{default:""},html:{default:""},style:{},customClass:{default:""},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",{id:t.name,class:e.normalizeClass(["text-gray-900",t.customClass]),innerHTML:t.html?t.html:t.text},null,10,fa))}}),ha=["placeholder","disabled","name"],gn=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),l=e.ref(null);let a=null;function s(i){const c=i==null?"":String(i),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let m=!1;for(let h=0;h<c.length;h+=1){const f=c[h];f==="{"?m=!0:f==="}"?m=!1:m&&p.add(f)}const y={};return Object.keys(d).forEach(h=>{p.has(h)||(y[h]=d[h])}),{mask:c,definitions:y,lazy:!1}}return e.onMounted(async()=>{if(l.value){const{default:i}=await Promise.resolve().then(()=>jn),c=s(t.mask||"");a=i(l.value,c),a.on("accept",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.on("complete",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{a?.destroy()}),e.watch(()=>t.mask,i=>{if(a){const c=s(i||"");a.updateOptions(c)}}),e.watch(r,i=>{a&&a.unmaskedValue!==i&&(a.value=i!=null?String(i):"")}),(i,c)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:l,placeholder:i.placeholder,disabled:i.disabled,name:i.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,ha))}}),ga={class:"relative w-full bg-white rounded-lg"},ya={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},ba=["placeholder","disabled"],to=e.defineComponent({__name:"vs-input-email",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",ga,[e.createElementVNode("div",ya,[e.createVNode(e.unref(W.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":a[0]||(a[0]=s=>r.value=s),placeholder:l.placeholder,disabled:l.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":l.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,ba),[[e.vModelText,r.value]])]))}}),vt="+99(999)-999-99-99";function $t(o){if(!o?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let n=!1,r=0;for(let l=0;l<o.length;l+=1){const a=o[l];if(a==="{"){n=!0;continue}if(a==="}"){n=!1;continue}!n&&t.has(a)&&(r+=1)}return r}const ka={class:"relative w-full bg-white rounded-lg"},xa={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},wa=["name","placeholder","disabled","pattern"],no=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:vt}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${($t(t.mask||vt)||$t(vt))-1}}$`),{inputClass:r}=et(t.style),l=e.useModel(o,"modelValue"),a=e.ref(null);let s=null;function i(p){const m={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},y=new Set;let h=!1;for(let k=0;k<p.length;k+=1){const b=p[k];b==="{"?h=!0:b==="}"?h=!1:h&&y.add(b)}const f={};return Object.keys(m).forEach(k=>{y.has(k)||(f[k]=m[k])}),{mask:p,definitions:f,lazy:!1,disabled:t.disabled}}function c(p){if(p==null||p==="")return"";const m=String(p).trim();return m?m.replace(/\D/g,""):""}function d(){if(!s)return;const p=s.unmaskedValue??"";l.value=p?`+${p}`:""}return e.onMounted(async()=>{if(!a.value)return;const{default:p}=await Promise.resolve().then(()=>jn),m=i(t.mask||"");s=p(a.value,m),s.on("accept",d),s.on("complete",d);const y=c(l.value);s.unmaskedValue=y}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,p=>{s&&s.updateOptions(i(p||""))}),e.watch(()=>t.disabled,p=>{s&&s.updateOptions({disabled:p})}),e.watch(l,p=>{if(!s)return;const m=c(p);s.unmaskedValue!==m&&(s.unmaskedValue=m)}),(p,m)=>(e.openBlock(),e.createElementBlock("div",ka,[e.createElementVNode("div",xa,[e.createVNode(e.unref(W.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:a,type:"tel",name:p.name,placeholder:p.placeholder,disabled:p.disabled,pattern:n.value,title:"Міжнародний номер (E.164), наприклад +380XXXXXXXXX",autocomplete:"tel",class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(r),{"!border-red-600":p.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,wa)]))}}),_a=["value","disabled"],va=["innerHTML"],Ca={key:1,class:"flex items-center gap-2"},Ea=["src"],Ba={class:"text-[13px] text-gray-700"},Va=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Xt(t.option)),a=e.computed(()=>Zt(t.option)),s=e.computed(()=>St(t.option)),i=e.computed(()=>!!(s.value&&!l.value&&!a.value)),c=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),p=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(m,y)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=h=>n.value=h),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,_a),[[e.vModelRadio,n.value]]),e.createElementVNode("span",{class:e.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${t.style?.primaryColor||"blue"}-500`,r.value?"opacity-50 cursor-not-allowed":""]])},[n.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,va)):(e.openBlock(),e.createElementBlock("div",Ca,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(p.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,Ea)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Ba,e.toDisplayString(t.text),1)]))],2))}}),Sa=["value","disabled"],$a=["innerHTML"],Na={key:1,class:"flex items-center gap-2"},Aa=["src"],Ma={class:"text-[13px] text-gray-700"},Fa={"vs-input-radio-default":Va,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Xt(t.option)),a=e.computed(()=>Zt(t.option)),s=e.computed(()=>St(t.option)),i=e.computed(()=>!!(s.value&&!l.value&&!a.value)),c=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),p=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(m,y)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=h=>n.value=h),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Sa),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,$a)):(e.openBlock(),e.createElementBlock("div",Na,[i.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(p.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,Aa)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Ma,e.toDisplayString(t.text),1)]))],2))}})},Oo=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],Ro=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},Da=o=>({fetchOptions:async(r="")=>{const l=o();if(!l.data)return l.options?[...l.options]:[];try{const a=new URLSearchParams;a.set("json","1"),r&&a.set("key",r),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const i=await(await fetch(`${Ro(l)}?${a.toString()}`)).json();return Oo(i)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const l=o();if(!l.data)return(l.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const a=new URLSearchParams;a.set("json","1"),a.set("val",String(r)),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const i=await(await fetch(`${Ro(l)}?${a.toString()}`)).json();return Oo(i)[0]??null}catch{return null}}}),yn=({props:o,formValues:t=null,watchParent:n=!0})=>{const r=e.ref([]),l=e.computed(()=>o.parent?t?.value?.[o.parent]?.toString?.()??null:null),{fetchOptions:a,fetchOptionByValue:s}=Da(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:l.value})),i=async(c="")=>{const d=o.data?await a(c):o.options?[...o.options]:[];return r.value=d,r.value};return e.watch(()=>o.options,()=>{o.data||(r.value=o.options?[...o.options]:[])},{immediate:!0,deep:!0}),n&&e.watch(l,async()=>{o.data&&(r.value=await a())},{immediate:!1}),{optionsList:r,parentValue:l,fetchOptions:a,fetchOptionByValue:s,loadOptions:i}},Ta=/\{\{\s*([^}]+?)\s*\}\}/g,La=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),Ia=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),bn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(Ta,(r,l)=>{const a=String(l).trim(),s=o,c=(a.includes(".")?Ia(s,a):void 0)??s[a];return c!=null?String(c):""}):o.text??""},kn=(o,t)=>{if(!o)return"";const n=bn(o,t);return La(n)||o.text||""},oo=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},slot:{},data:{},api:{},prefix:{},host:{},start:{},parent:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>Fa[`vs-input-radio-${t.view}`]),l=e.computed(()=>t.slot??t?.optionTemplate??""),a=e.computed(()=>hn(l.value)),s=h=>bn(h,l.value),i=h=>kn(h,l.value),c=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),p=e.inject("values",null),{optionsList:m,loadOptions:y}=yn({props:t,formValues:p});return e.onMounted(async()=>{await y()}),(h,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(c.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),k=>(e.openBlock(),e.createElementBlock("div",{key:k?.id,class:e.normalizeClass(["flex items-stretch",h.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:i(k),html:a.value?s(k):"",option:k,value:k.id.toString(),checked:n.value?.toString?.()===k.id?.toString?.(),"custom-class":h.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":f[0]||(f[0]=b=>n.value=b)},{ref_for:!0},h.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),Oa={key:1,class:"w-full flex flex-col gap-4"},Ra={key:0,class:"text-sm font-medium text-muted-foreground my-2"},Pa="Без категорії",za=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,l=e.reactive({}),a=e.inject("values",null),{optionsList:s,loadOptions:i}=yn({props:{...n,options:n.options},formValues:a}),c=e.computed(()=>s.value),d=w=>w?.value||w?.id||w?.text||w,p=e.computed(()=>n.slot??n?.optionTemplate??""),m=e.computed(()=>hn(p.value)),y=w=>bn(w,p.value),h=w=>kn(w,p.value),f=w=>`lg:col-span-${w||12}`,k=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),b=w=>w==null||w===""?null:typeof w=="string"||typeof w=="number"?w:String(w),v=e.computed(()=>{if(!n.group)return[];const w=new Map;c.value.forEach(T=>{const E=T[n.group],V=b(E);w.has(V)||w.set(V,[]),w.get(V)?.push(T)});const B=[];n.values?.length&&n.values.forEach(T=>{const E=b(T);B.push(E)});const N=new Set,I=T=>{const E=w.get(T)||[];if(!E.length)return null;const V=T===null?"group-null":`group-${String(T)}`,_=T===null?Pa:String(T);return N.add(T),{key:V,label:_,options:E}},Z=[];return B.forEach(T=>{const E=I(T);E&&Z.push(E)}),w.forEach((T,E)=>{if(N.has(E))return;const V=I(E);V&&Z.push(V)}),Z});return e.watch(()=>n.modelValue,w=>{if(typeof w=="boolean"&&c.value.length===1){const B=d(c.value[0]);l[B]=w}else if(Array.isArray(w)){const B=new Set(w);c.value.forEach(N=>{if(!N.disabled){const I=d(N);l[I]=B.has(I)}})}},{immediate:!0}),e.watch(l,()=>{if(!c.value.length){r("update:modelValue",null);return}const w=Object.entries(l).filter(([,B])=>B).map(([B])=>B);r("update:modelValue",w.length===0?[]:w)},{deep:!0}),e.onMounted(async()=>{if(await i(),typeof n.modelValue=="boolean"&&c.value.length===1){const w=d(c.value[0]);l[w]=n.modelValue}else if(Array.isArray(n.modelValue)){const w=new Set(n.modelValue);c.value.forEach(B=>{if(!B.disabled){const N=d(B);l[N]=w.has(N)}})}}),(w,B)=>n.group?(e.openBlock(),e.createElementBlock("div",Oa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,N=>(e.openBlock(),e.createElementBlock("div",{key:N.key,class:"flex flex-col gap-2"},[N.label?(e.openBlock(),e.createElementBlock("span",Ra,e.toDisplayString(N.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",k.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.options,I=>(e.openBlock(),e.createBlock(Jn,{modelValue:l[d(I)],"onUpdate:modelValue":Z=>l[d(I)]=Z,value:d(I),class:e.normalizeClass(f(w.colSpan)),disabled:n.disabled||I.disabled,label:h(I),labelHtml:m.value?y(I):"",key:`${N.key}-${d(I)}`,icon:I?.icon,imgUrl:I?.imgUrl,option:I,view:w.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",k.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,N=>(e.openBlock(),e.createBlock(Jn,{modelValue:l[d(N)],"onUpdate:modelValue":I=>l[d(N)]=I,value:d(N),class:e.normalizeClass(f(w.colSpan)),disabled:n.disabled||N.disabled,label:h(N),labelHtml:m.value?y(N):"",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))}}),Ce=(o,t)=>{const n=o.__vccOpts||o;for(const[r,l]of t)n[r]=l;return n},Po=Ce(za,[["__scopeId","data-v-9056e0ec"]]),ja=1440*60*1e3,Ua=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],Ha=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],qa=["нд","пн","вт","ср","чт","пт","сб"];function Xe(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const Kt=o=>new Date(o.getTime());function Rt(o){const t=Kt(o);return t.setHours(0,0,0,0),t}function Jt(o){const t=Kt(o);return t.setHours(23,59,59,999),t}function ro(o){return Rt(new Date(o.getFullYear(),o.getMonth(),1))}function lo(o){return Jt(new Date(o.getFullYear(),o.getMonth()+1,0))}function ao(o,t){const n=new Date(o),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const l=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,l)),n}function Ka(o,t){return ao(o,-1)}function xn(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function zo(o,t){return xn(o,-t)}function jo(o){return Rt(new Date(o.getFullYear(),0,1))}function Uo(o){return Jt(new Date(o.getFullYear(),11,31))}function Wa(o){const t=Math.floor(o.getFullYear()/10)*10;return Rt(new Date(t,0,1))}function Ga(o){const t=Math.floor(o.getFullYear()/10)*10+9;return Jt(new Date(t,11,31))}const ft=o=>o.getFullYear(),wn=o=>Math.floor(o.getFullYear()/10)*10;function Ya(o){const t=[];let n=Rt(o.start);const r=Rt(o.end);for(;n<=r;)t.push(Kt(n)),n=new Date(n.getTime()+ja);return t}function Xa(o){const t=[];let n=ro(o.start);const r=lo(o.end);for(;n<=r;)t.push(Kt(n)),n=ao(n,1);return t}function Za(o){const t=[];let n=jo(o.start);const r=Uo(o.end);for(;n<=r;)t.push(Kt(n)),n=xn(n,1);return t}function so(o,t=1){const n=Rt(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function Ja(o,t=1){const n=so(o,t);return n.setDate(n.getDate()+6),Jt(n)}function Qa(o,t,n=0){const r=so(o,n),l=(t-n+7)%7;return r.setDate(r.getDate()+l),r}const _n=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),io=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),Ho=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),qo=(o,t)=>!!o&&!!t&&_n(o,t)&&o.getHours()===t.getHours(),es=(o,t)=>!!o&&!!t&&qo(o,t)&&o.getMinutes()===t.getMinutes();function ts(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const Qt=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),en=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function ns(o){const t=o.filter(n=>Xe(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function os(o){const t=o.filter(n=>Xe(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function rs(o,t){const n=Kt(o);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const vn=(o,t=2)=>String(o).padStart(t,"0");function Ko(o,t){return t==="wide"?Ua[o]:Ha[o]}function ls(o){return qa[o]}const as=[{token:"LLLL",format:o=>Ko(o.getMonth(),"wide")},{token:"LLL",format:o=>Ko(o.getMonth(),"abbreviated")},{token:"EE",format:o=>ls(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>vn(o.getMonth()+1)},{token:"dd",format:o=>vn(o.getDate())},{token:"HH",format:o=>vn(o.getHours())},{token:"mm",format:o=>vn(o.getMinutes())}];function tn(o,t){if(!Xe(o))return"";let n="",r=0;for(;r<t.length;){const l=as.find(a=>t.startsWith(a.token,r));l?(n+=l.format(o),r+=l.token.length):(n+=t[r],r+=1)}return n}const ss={"yyyy-MM-dd":/^(\d{4})-(\d{2})-(\d{2})$/,"dd.MM.yyyy":/^(\d{2})\.(\d{2})\.(\d{4})$/,"dd.MM.yyyy HH:mm":/^(\d{2})\.(\d{2})\.(\d{4}) (\d{1,2}):(\d{2})(?::(\d{2}))?$/,"HH:mm":/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/,"MM.yyyy":/^(\d{2})\.(\d{4})$/,yyyy:/^(\d{4})$/};function Wo(o,t){const n=ss[t];if(!n){const l=new Date(o);return Xe(l)?l:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,l,a,s]=r,i=new Date(Number(l),Number(a)-1,Number(s));return Xe(i)?i:null}case"dd.MM.yyyy":{const[,l,a,s]=r,i=new Date(Number(s),Number(a)-1,Number(l));return Xe(i)?i:null}case"dd.MM.yyyy HH:mm":{const[,l,a,s,i,c,d]=r,p=new Date(Number(s),Number(a)-1,Number(l),Number(i),Number(c),Number(d||0));return Xe(p)?p:null}case"HH:mm":{const[,l,a,s]=r,i=new Date;return i.setHours(Number(l),Number(a),Number(s||0),0),i}case"MM.yyyy":{const[,l,a]=r;return new Date(Number(a),Number(l)-1,1)}case"yyyy":{const[,l]=r;return new Date(Number(l),0,1)}default:return null}}const is=["year","month","day","time","custom"],cs=e.defineComponent({components:{ChevronLeft:W.ChevronLeft,ChevronRight:W.ChevronRight},emits:{elementClick:o=>Xe(o),left:()=>!0,right:()=>!0,heading:()=>!0,today:()=>!0,clear:()=>!0},props:{headingClickable:{type:Boolean,default:!1},leftDisabled:{type:Boolean,default:!1},rightDisabled:{type:Boolean,default:!1},columnCount:{type:Number,default:7},items:{type:Array,default:()=>[]},viewMode:{type:String,required:!0,validate:o=>typeof o=="string"&&is.includes(o)},showButtonBar:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1}},setup(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties?.$t,n=e.computed(()=>{const l=t?.("form.date.today");return l&&l!=="form.date.today"?l:"Сьогодні"}),r=e.computed(()=>{const l=t?.("form.date.clear");return l&&l!=="form.date.clear"?l:"Очистити"});return{todayLabel:n,clearLabel:r}}}),ds={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},us=["disabled"],ps=["disabled"],ms={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},fs=["disabled","onClick"],hs={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function gs(o,t,n,r,l,a){const s=e.resolveComponent("ChevronLeft"),i=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",o.viewMode==="month"||o.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${o.columnCount}, 1fr)`}),onMousedown:t[5]||(t[5]=e.withModifiers(()=>{},["prevent"]))},[o.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ds,[e.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(c=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,us),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.headingClickable?"button":"span"),{class:e.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",o.headingClickable?"hover:bg-slate-100":"",o.viewMode==="month"?"p-datepicker-select-year":"",o.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:t[1]||(t[1]=e.withModifiers(c=>o.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"heading")]),_:3},8,["class"])),e.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(c=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(i,{class:"h-3.5 w-3.5"})])],8,ps)])),e.createElementVNode("div",null,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock("div",ms,[e.renderSlot(o.$slots,"subheading")])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",o.viewMode==="month"?"p-datepicker-month-view":"",o.viewMode==="year"?"p-datepicker-year-view":"",o.viewMode==="month"?"gap-y-1":""])},[e.renderSlot(o.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,c=>(e.openBlock(),e.createElementBlock("button",{key:c.key,disabled:c.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>o.$emit("elementClick",c.value),["stop","prevent"])},[e.createElementVNode("span",{class:e.normalizeClass([o.viewMode==="month"||o.viewMode==="year"?"inline-flex w-full h-8 items-center justify-center rounded-md text-[13px] font-normal transition-colors":"inline-flex w-8 h-8 items-center justify-center rounded-full text-[13px] font-normal transition-colors",o.viewMode==="month"?"p-datepicker-month":"",o.viewMode==="year"?"p-datepicker-year":"",o.viewMode==="day"?"p-datepicker-day":"",c.selected?"bg-blue-500 text-white font-semibold":"",c.current&&!c.selected&&o.viewMode!=="month"&&o.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":""])},e.toDisplayString(c.display),3)],8,fs))),128))])],2),e.renderSlot(o.$slots,"after-calendar"),o.showButtonBar?(e.openBlock(),e.createElementBlock("div",hs,[e.createElementVNode("button",{type:"button",class:"p-datepicker-today-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[3]||(t[3]=e.withModifiers(c=>o.$emit("today"),["stop","prevent"]))},e.toDisplayString(o.todayLabel),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-clear-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[4]||(t[4]=e.withModifiers(c=>o.$emit("clear"),["stop","prevent"]))},e.toDisplayString(o.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const Cn=Ce(cs,[["render",gs]]),ys=e.defineComponent({components:{PickerPopup:Cn},emits:{"update:pageDate":o=>Xe(o),select:o=>Xe(o)},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>Wa(o.pageDate)),r=e.computed(()=>Ga(o.pageDate)),l=(m,y,h)=>!y&&!h?!0:!(y&&ft(m)<ft(y)||h&&ft(m)>ft(h)),a=e.computed(()=>Za({start:n.value,end:r.value}).map(m=>({value:m,key:String(ft(m)),display:ft(m),selected:!!o.selected&&ft(m)===ft(o.selected),disabled:!l(m,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const m=ft(n.value),y=ft(r.value);return`${m} - ${y}`}),i=e.computed(()=>o.lowerLimit&&(wn(o.lowerLimit)===wn(o.pageDate)||Qt(o.pageDate,o.lowerLimit))),c=e.computed(()=>o.upperLimit&&(wn(o.upperLimit)===wn(o.pageDate)||en(o.pageDate,o.upperLimit)));return{years:a,heading:s,leftDisabled:i,rightDisabled:c,previousPage:()=>t("update:pageDate",zo(o.pageDate,10)),nextPage:()=>t("update:pageDate",xn(o.pageDate,10))}}});function bs(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:2,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.years,viewMode:"year",onLeft:o.previousPage,onRight:o.nextPage,onElementClick:t[0]||(t[0]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const ks=Ce(ys,[["render",bs]]),xs=e.defineComponent({components:{PickerPopup:Cn},emits:{"update:pageDate":o=>Xe(o),select:o=>Xe(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>jo(o.pageDate)),r=e.computed(()=>Uo(o.pageDate)),l=e.computed(()=>y=>tn(y,o.format)),a=(y,h,f)=>!h&&!f?!0:!(h&&Qt(y,ro(h))||f&&en(y,lo(f))),s=e.computed(()=>Xa({start:n.value,end:r.value}).map(y=>({value:y,display:l.value(y),key:l.value(y),selected:!!o.selected&&io(o.selected,y),disabled:!a(y,o.lowerLimit,o.upperLimit)}))),i=e.computed(()=>ft(n.value)),c=e.computed(()=>o.lowerLimit&&(Ho(o.lowerLimit,o.pageDate)||Qt(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(Ho(o.upperLimit,o.pageDate)||en(o.pageDate,o.upperLimit)));return{months:s,heading:i,leftDisabled:c,rightDisabled:d,previousPage:()=>t("update:pageDate",zo(o.pageDate,1)),nextPage:()=>t("update:pageDate",xn(o.pageDate,1))}}});function ws(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:o.months,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,viewMode:"month",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const _s=Ce(xs,[["render",ws]]),vs=e.defineComponent({components:{PickerPopup:Cn},emits:{"update:pageDate":o=>Xe(o),select:o=>Xe(o),back:()=>!0,today:()=>!0,clear:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"dd"},headingFormat:{type:String,required:!1,default:"LLLL yyyy"},weekdayFormat:{type:String,required:!1,default:"EE"},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>typeof o=="number"&&Number.isInteger(o)&&o>=0&&o<=6},customWeekdays:{type:Array,required:!1},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>b=>v=>tn(v,b)),r=e.computed(()=>ro(o.pageDate)),l=e.computed(()=>lo(o.pageDate)),a=e.computed(()=>({start:r.value,end:l.value})),s=e.computed(()=>({start:so(r.value,o.weekStartsOn),end:Ja(l.value,o.weekStartsOn)})),i=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),c=e.computed(()=>{const b=o.weekStartsOn,v=i.value;if(v)return Array.from({length:7}).map((B,N)=>v[(b+N)%7]);const w=n.value(o.weekdayFormat);return Array.from(Array(7)).map((B,N)=>(b+N)%7).map(B=>Qa(new Date,B,o.weekStartsOn)).map(w)}),d=(b,v,w,B)=>B?.dates?.some(N=>_n(b,N))||B?.predicate?.(b)?!1:!v&&!w?!0:!(v&&Qt(b,Rt(v))||w&&en(b,Jt(w))),p=e.computed(()=>{const b=new Date,v=n.value(o.format);return Ya(s.value).map(w=>({value:w,display:v(w),selected:!!o.selected&&_n(o.selected,w),current:_n(b,w),disabled:!o.allowOutsideInterval&&!ts(w,a.value)||!d(w,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(w)}))}),m=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),y=e.computed(()=>o.lowerLimit&&(io(o.lowerLimit,o.pageDate)||Qt(o.pageDate,o.lowerLimit))),h=e.computed(()=>o.upperLimit&&(io(o.upperLimit,o.pageDate)||en(o.pageDate,o.upperLimit)));return{weekDays:c,days:p,heading:m,leftDisabled:y,rightDisabled:h,previousPage:()=>t("update:pageDate",Ka(o.pageDate)),nextPage:()=>t("update:pageDate",ao(o.pageDate,1))}}});function Cs(o,t,n,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.days,showButtonBar:!0,viewMode:"day",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=i=>o.$emit("back")),onElementClick:t[1]||(t[1]=i=>o.$emit("select",i)),onToday:t[2]||(t[2]=i=>o.$emit("today")),onClear:t[3]||(t[3]=i=>o.$emit("clear"))},e.createSlots({heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.weekDays,(i,c)=>(e.openBlock(),e.createElementBlock("span",{key:i,class:e.normalizeClass(`v3dp__subheading__weekday__${c}`)},e.toDisplayString(i),3))),128))]),_:2},[o.$slots["after-calendar"]?{name:"after-calendar",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Es=Ce(vs,[["render",Cs]]),Bs=e.defineComponent({components:{PickerPopup:Cn,ChevronUp:W.ChevronUp,ChevronDown:W.ChevronDown},emits:{select:o=>Xe(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1},embedded:{type:Boolean,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>o.pageDate??o.selected),r=e.ref(n.value.getHours()),l=e.ref(n.value.getMinutes());e.watch(()=>o.selected,h=>{let f=0,k=0;h&&(f=h.getHours(),k=h.getMinutes()),r.value=f,l.value=k});const a=(h,f)=>{const k=rs(new Date(n.value.getTime()),{hours:h,minutes:f,seconds:0});m(k)&&(r.value=h,l.value=f,t("select",k))},s=(h,f)=>h<0?f:h>f?0:h,i=()=>a(s(r.value+1,23),l.value),c=()=>a(s(r.value-1,23),l.value),d=()=>a(r.value,s(l.value+1,59)),p=()=>a(r.value,s(l.value-1,59)),m=h=>!(o.disabledTime?.dates?.some(f=>qo(h,f)&&es(h,f))||o.disabledTime?.predicate?.(h));return{hours:r,minutes:l,padStartZero:h=>`0${h}`.substr(-2),isEnabled:m,incrementHours:i,decrementHours:c,incrementMinutes:d,decrementMinutes:p}}}),Vs={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"},Ss={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},$s={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Ns={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},As={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Ms={class:"col-span-2"},Fs={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},Ds={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Ts={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Ls={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Is={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function Os(o,t,n,r,l,a){const s=e.resolveComponent("ChevronUp"),i=e.resolveComponent("ChevronDown"),c=e.resolveComponent("picker-popup");return o.embedded?(e.openBlock(),e.createElementBlock("div",Vs,[e.createElementVNode("div",Ss,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[0]||(t[0]=e.withModifiers((...d)=>o.incrementHours&&o.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",$s,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[1]||(t[1]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])]),t[8]||(t[8]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Ns,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[2]||(t[2]=e.withModifiers((...d)=>o.incrementMinutes&&o.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",As,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[3]||(t[3]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(c,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",Ms,[e.createElementVNode("div",Fs,[e.createElementVNode("div",Ds,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[4]||(t[4]=e.withModifiers((...d)=>o.incrementHours&&o.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Ts,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[5]||(t[5]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])]),t[9]||(t[9]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Ls,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[6]||(t[6]=e.withModifiers((...d)=>o.incrementMinutes&&o.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Is,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[7]||(t[7]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(i,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const Rs=Ce(Bs,[["render",Os]]),En=["time","day","month","year"],Ps=(o,t,n=void 0)=>{let r=n||new Date;const l=ns([o,r]);l&&(r=l);const a=os([t,r]);return a&&(r=a),r},zs=e.defineComponent({components:{YearPicker:ks,MonthPicker:_s,DayPicker:Es,TimePicker:Rs,CalendarDays:W.CalendarDays,Clock3:W.Clock3,X:W.X},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&En.includes(o)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>[0,1,2,3,4,5,6].includes(o)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&En.includes(o)}},emits:{"update:modelValue":o=>o==null||Xe(o),decadePageChanged:o=>!0,yearPageChanged:o=>!0,monthPageChanged:o=>!0,opened:()=>!0,closed:()=>!0},setup(o,{emit:t}){const n=e.ref("none"),r=e.ref(o.startingViewDate),l=e.ref(null),a=e.ref(null),s=e.ref(null),i=e.ref({}),c=e.ref(!1),d=e.ref(!1);let p=null;const m=e.ref(""),y=oe=>{const le=oe.replace(/[a-zA-Z]/g,"0");return/0/.test(le)?le:""},h=e.computed(()=>y(o.inputFormat));let f=null,k=null;const b=()=>{f?.destroy(),f=null},v=async()=>{if(!k){const{default:oe}=await Promise.resolve().then(()=>jn);k=oe}return k},w=()=>{f&&f.value!==m.value&&(f.value=m.value??"")},B=oe=>{const le=oe&&Xe(oe)?tn(oe,o.inputFormat):"";m.value!==le&&(m.value=le),w()},N=async()=>{if(b(),!a.value||!h.value)return;f=(await v())(a.value,{mask:h.value,lazy:!0,overwrite:!1}),w()};e.watch(()=>o.modelValue,oe=>{d.value&&o.typeable||B(oe)},{immediate:!0}),e.watch(()=>o.inputFormat,()=>{d.value&&o.typeable||B(o.modelValue)}),e.onMounted(()=>{h.value&&e.nextTick(()=>{N()})}),e.onBeforeUnmount(()=>{b()}),e.watch(h,oe=>{oe?e.nextTick(()=>{N()}):b()});const I=e.computed(()=>n.value!=="none"),Z=e.computed(()=>o.startingView==="time"&&o.minimumView==="time"),T=e.computed(()=>o.startingView==="day"&&o.minimumView==="time"),E=oe=>{o.disabled||(I.value||(r.value=o.modelValue||Ps(o.lowerLimit,o.upperLimit,r.value),t("opened")),n.value=oe,e.nextTick(()=>Oe()))},V=()=>{I.value&&(p!==null&&(cancelAnimationFrame(p),p=null),n.value="none",t("closed"))},_=(oe="none")=>{oe==="none"?V():E(oe)};e.watchEffect(()=>{o.disabled&&V()});const D=(oe,le)=>{r.value=le,oe==="year"?t("decadePageChanged",le):oe==="month"?t("yearPageChanged",le):oe==="day"&&t("monthPageChanged",le)},H=oe=>{r.value=oe,o.minimumView==="year"?(V(),B(oe),t("update:modelValue",oe)):E("month")},te=oe=>{r.value=oe,o.minimumView==="month"?(V(),B(oe),t("update:modelValue",oe)):E("day")},S=oe=>{const le=T.value?(()=>{const ke=o.modelValue||r.value||new Date,Ee=new Date(oe);return Ee.setHours(ke.getHours(),ke.getMinutes(),0,0),Ee})():oe;r.value=le,o.minimumView==="day"?(V(),B(le),t("update:modelValue",le)):T.value?(B(le),t("update:modelValue",le),E("day")):E("time")},R=oe=>{B(oe),t("update:modelValue",oe)},K=()=>{S(new Date)},q=()=>{o.clearable&&(V(),B(null),t("update:modelValue",null),r.value=o.startingViewDate)},P=()=>{I.value||E(se.value)},Q=()=>{d.value=!0,c.value=!1,E(se.value)},ne=()=>{d.value=!1,o.typeable&&G({closeOnSuccess:!1,revertOnInvalid:!0})},F=oe=>{const le=oe.target;if(m.value=le?.value??"",!o.typeable)return;const ke=Wo(m.value,o.inputFormat);ke&&m.value===tn(ke,o.inputFormat)&&(r.value=ke)},G=({closeOnSuccess:oe,revertOnInvalid:le})=>{const ke=a.value?.value??m.value,Ee=Wo(ke,o.inputFormat);return!!Ee&&ke===tn(Ee,o.inputFormat)&&Ee?(r.value=Ee,B(Ee),t("update:modelValue",Ee),oe&&V(),!0):(B(o.modelValue),!1)},L=oe=>{const le=oe.keyCode?oe.keyCode:oe.which,ke=le===27,Ee=le===13;if(ke){V(),a.value?.blur();return}o.typeable&&Ee&&(G({closeOnSuccess:!0,revertOnInvalid:!0})||a.value?.focus())},se=e.computed(()=>{const oe=En.indexOf(o.startingView),le=En.indexOf(o.minimumView);return oe<le?o.minimumView:o.startingView}),ce=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0),ee=()=>o.startingView==="time"&&o.minimumView==="time"?null:E("day"),ye=()=>{if(!a.value||!s.value)return;const oe=4,le=8,ke=a.value.getBoundingClientRect(),Ee=s.value.getBoundingClientRect(),We=s.value.firstElementChild?.getBoundingClientRect(),O=window.innerWidth,J=window.innerHeight,ae=window.scrollX||window.pageXOffset,ue=window.scrollY||window.pageYOffset,ge=Math.max(160,J-le*2),Ae=Math.min(Ee.height||0,ge),Te=J-ke.bottom-oe-le,Fe=ke.top-oe-le,j=Te<Ae&&Fe>Te;let C=j?ke.top-oe-Ae:ke.bottom+oe;C=Math.max(le,Math.min(C,J-le-Ae));const A=We?.width||Ee.width||268;let z=ke.left;z+A>O-le&&(z=O-le-A),z<le&&(z=le);const ie=j?Math.max(120,ke.top-oe-le):Math.max(120,J-ke.bottom-oe-le);i.value={position:"absolute",top:`${Math.round(C+ue)}px`,left:`${Math.round(z+ae)}px`,maxHeight:`${Math.round(Math.min(ge,ie))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},T.value&&n.value==="day"&&(i.value.minWidth="345px")},Ve=(oe,le)=>oe.bottom>le.top&&oe.top<le.bottom&&oe.right>le.left&&oe.left<le.right,xe=oe=>{const le=[];let ke=oe.parentElement;for(;ke;){const Ee=window.getComputedStyle(ke),ze=Ee.overflowY,We=Ee.overflowX,O=["auto","scroll","hidden","clip"].includes(ze),J=["auto","scroll","hidden","clip"].includes(We);(O||J)&&le.push(ke),ke=ke.parentElement}return le},Le=()=>{if(!a.value)return!1;const oe=a.value.getBoundingClientRect(),le=new DOMRect(0,0,window.innerWidth,window.innerHeight);return Ve(oe,le)?xe(a.value).every(Ee=>Ve(oe,Ee.getBoundingClientRect())):!1},Ne=()=>{if(I.value){if(!Le()){c.value=!0,V();return}Oe();return}c.value&&document.activeElement===a.value&&Le()&&(c.value=!1,E(se.value))};e.watch(n,()=>{I.value&&e.nextTick(()=>Oe())});const Oe=()=>{ye(),p!==null&&cancelAnimationFrame(p),p=requestAnimationFrame(()=>{ye(),p=null})};e.onMounted(()=>{window.addEventListener("resize",Ne),window.addEventListener("scroll",Ne,!0),document.addEventListener("pointerdown",$e,!0)}),e.onBeforeUnmount(()=>{p!==null&&(cancelAnimationFrame(p),p=null),window.removeEventListener("resize",Ne),window.removeEventListener("scroll",Ne,!0),document.removeEventListener("pointerdown",$e,!0)});const $e=oe=>{if(n.value==="none")return;const le=oe.target;if(!le)return;const ke=!!l.value?.contains(le),Ee=!!s.value?.contains(le);!ke&&!Ee&&(c.value=!1,V())};return{rootRef:l,blur:ne,focus:Q,click:P,input:m,inputRef:a,pageDate:r,renderView:_,updatePageDate:D,selectYear:H,selectMonth:te,selectDay:S,selectToday:K,selectTime:R,keyUp:L,onInput:F,isTimeOnlyMode:Z,isDateTimeMode:T,normalizedWeekdayNames:ce,viewShown:n,goBackFromTimepicker:ee,clearModelValue:q,initialView:se,log:oe=>console.log(oe),popupAnchorStyle:i,popupRef:s}}}),js={ref:"rootRef",class:"relative"},Us={class:"p-datepicker p-component p-inputwrapper relative"},Hs=["readonly","value","placeholder","disabled","tabindex"],qs={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},Ks={class:"absolute right-8 top-1/2 -translate-y-1/2"};function Ws(o,t,n,r,l,a){const s=e.resolveComponent("Clock3"),i=e.resolveComponent("CalendarDays"),c=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),p=e.resolveComponent("month-picker"),m=e.resolveComponent("time-picker"),y=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",js,[e.createElementVNode("div",Us,[e.createElementVNode("input",e.mergeProps({type:"text",ref:"inputRef",class:"p-inputtext p-component p-datepicker-input",readonly:!o.typeable,value:o.input},o.$attrs,{placeholder:o.placeholder,disabled:o.disabled,tabindex:o.disabled?-1:0,onInput:t[0]||(t[0]=(...h)=>o.onInput&&o.onInput(...h)),onKeyup:t[1]||(t[1]=(...h)=>o.keyUp&&o.keyUp(...h)),onBlur:t[2]||(t[2]=(...h)=>o.blur&&o.blur(...h)),onFocus:t[3]||(t[3]=(...h)=>o.focus&&o.focus(...h)),onClick:t[4]||(t[4]=(...h)=>o.click&&o.click(...h))}),null,16,Hs),e.createElementVNode("span",qs,[o.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(i,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",Ks,[e.renderSlot(o.$slots,"clear",{onClear:o.clearModelValue},()=>[e.createElementVNode("button",{type:"button",class:"inline-flex h-5 w-5 items-center justify-center rounded-full text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600 focus:outline-none focus:ring-2 focus:ring-blue-500/30","aria-label":"Очистити дату",onClick:t[5]||(t[5]=h=>o.clearModelValue())},[e.createVNode(c,{class:"h-3 w-3"})])])],512),[[e.vShow,o.clearable&&o.modelValue]])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{ref:"popupRef",style:e.normalizeStyle(o.popupAnchorStyle)},[e.withDirectives(e.createVNode(d,{pageDate:o.pageDate,"onUpdate:pageDate":t[6]||(t[6]=h=>o.updatePageDate("year",h)),selected:o.modelValue,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,onSelect:o.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,o.viewShown==="year"]]),e.withDirectives(e.createVNode(p,{pageDate:o.pageDate,"onUpdate:pageDate":t[7]||(t[7]=h=>o.updatePageDate("month",h)),selected:o.modelValue,onSelect:o.selectMonth,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,format:o.monthListFormat,onBack:t[8]||(t[8]=h=>o.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,o.viewShown==="month"]]),e.withDirectives(e.createVNode(y,{pageDate:o.pageDate,"onUpdate:pageDate":t[9]||(t[9]=h=>o.updatePageDate("day",h)),selected:o.modelValue,weekStartsOn:o.weekStartsOn,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,headingFormat:o.dayPickerHeadingFormat,disabledDates:o.disabledDates,weekdayFormat:o.weekdayFormat,"allow-outside-interval":o.allowOutsideInterval,format:o.dayFormat,"custom-weekdays":o.normalizedWeekdayNames,onSelect:o.selectDay,onToday:o.selectToday,onClear:o.clearModelValue,onBack:t[10]||(t[10]=h=>o.viewShown="month")},e.createSlots({_:2},[o.isDateTimeMode?{name:"after-calendar",fn:e.withCtx(()=>[e.createVNode(m,{embedded:!0,pageDate:o.pageDate,visible:o.viewShown==="day"&&o.isDateTimeMode,selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"])]),key:"0"}:void 0]),1032,["pageDate","selected","weekStartsOn","lowerLimit","upperLimit","headingFormat","disabledDates","weekdayFormat","allow-outside-interval","format","custom-weekdays","onSelect","onToday","onClear"]),[[e.vShow,o.viewShown==="day"]]),e.withDirectives(e.createVNode(m,{pageDate:o.pageDate,visible:o.viewShown==="time",selected:o.modelValue,disabledTime:o.disabledTime,onSelect:o.selectTime,onBack:o.goBackFromTimepicker},null,8,["pageDate","visible","selected","disabledTime","onSelect","onBack"]),[[e.vShow,o.viewShown==="time"&&!o.isDateTimeMode]])],4),[[e.vShow,o.viewShown!=="none"]])]))],512)}const Gs=Ce(zs,[["render",Ws]]),Go=Ce(e.defineComponent({__name:"vs-input-date2",props:{clearable:{type:Boolean,default:!0},now:{type:Boolean},editable:{type:Boolean,default:!0},time:{type:Boolean},isInfinity:{type:Boolean},dateFormat:{},mode:{default:"date"},weekStart:{},dayNames:{},maxDaysFromNow:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,{inputClass:l}=et(n.style),a=e.getCurrentInstance(),s=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),i=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",l.value,n.customClass,{"!border-red-600":n.error}]),c=e.computed(()=>!n.modelValue&&n.now?new Date:null),d=e.computed({get:()=>E(n.modelValue??c.value,s.value)||void 0,set:F=>r("update:modelValue",V(F,s.value))}),p=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],m=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:p}),y=e.computed(()=>{const F=n.weekStart,G=typeof F=="string"?Number(F):F;return G===void 0||Number.isNaN(G)?1:Math.min(6,Math.max(0,G))}),h=e.computed(()=>{const F=n.maxDaysFromNow;if(F==null||F==="")return;const G=typeof F=="string"?Number(F):F;if(!Number.isFinite(G)||G<0)return;const L=new Date;return L.setHours(0,0,0,0),L.setDate(L.getDate()+G),L.setHours(23,59,59,999),L}),f=e.computed(()=>{switch(s.value){case"time":return{startingView:"time",minimumView:"time"};case"month":return{startingView:"month",minimumView:"month"};case"year":return{startingView:"year",minimumView:"year"};case"datetime":return{startingView:"day",minimumView:"time"};default:return{startingView:"day",minimumView:"day"}}}),k={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"};function b(){const F=a?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof F=="string"&&F)return F;if(F&&typeof F=="object"&&"value"in F&&F.value)return String(F.value);if(typeof localStorage<"u"){const G=localStorage.getItem("locale")||localStorage.getItem("language");if(G)return G}return"uk"}function v(){const G=a?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!G)return"";if(typeof G=="string")return G;if(typeof G=="object"){const L=b();return G[L]||G[L.split("-")[0]]||G.uk||G.en||""}return""}function w(F){return F?F.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 B=e.computed(()=>{const F=k[s.value]||"dd.MM.yyyy";if(s.value==="time")return F;const G=n.dateFormat||v();if(!G)return F;const L=w(G);return L?s.value==="datetime"?`${L} HH:mm`:L:F});function N(F,G){return F?G==="week"?"рррр-тиждень":F.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",G==="time"||G==="datetime"?"хх":"мм"):""}const I={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},Z=e.computed(()=>{if(n.placeholder)return n.placeholder;const F=s.value;return N(B.value,F)||I[F]||""}),T=e.ref(!1);e.watch(()=>n.modelValue,F=>{F?T.value=!0:n.now||(T.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!T.value&&(r("update:modelValue",V(new Date,s.value)),T.value=!0)}),e.watch(B,()=>{r("update:modelValue",V(d.value,s.value))});function E(F,G){if(!F)return null;if(F instanceof Date&&!Number.isNaN(F.getTime()))return F;if(typeof F!="string")return null;switch(G){case"datetime":return te(F);case"time":return K(F);case"month":return S(F);case"year":return R(F);case"week":return q(F);case"date":default:return H(F)}}function V(F,G){if(!F)return null;const L=F instanceof Date?F:E(F,G);if(!L)return null;switch(G){case"datetime":return`${_(L)}T${D(L)}`;case"time":return D(L);case"month":return`${L.getFullYear()}-${ne(L.getMonth()+1)}`;case"year":return`${L.getFullYear()}`;case"week":{const{year:se,week:ce}=P(L);return`${se}-W${ne(ce)}`}case"date":default:return _(L)}}function _(F){return`${F.getFullYear()}-${ne(F.getMonth()+1)}-${ne(F.getDate())}`}function D(F){return`${ne(F.getHours())}:${ne(F.getMinutes())}`}function H(F){const G=F.split("-");if(G.length<3)return null;const[L,se,ce]=G.map(Number);return!L||!se||!ce?null:new Date(L,se-1,ce)}function te(F){const G=F.includes("T")?F:F.replace(" ","T"),L=new Date(G);return Number.isNaN(L.getTime())?null:L}function S(F){const[G,L]=F.split("-").map(Number);return!G||Number.isNaN(L)?null:new Date(G,(L||1)-1,1)}function R(F){const G=Number(F);return G?new Date(G,0,1):null}function K(F){const G=F.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!G)return null;const[,L,se,ce]=G,ee=new Date;return ee.setHours(Number(L),Number(se),Number(ce||0),0),ee}function q(F){const G=F.match(/^(\d{4})-W(\d{2})$/);if(!G)return null;const[,L,se]=G,ce=Number(se);return Q(Number(L),ce)}function P(F){const G=new Date(Date.UTC(F.getFullYear(),F.getMonth(),F.getDate())),L=G.getUTCDay()||7;G.setUTCDate(G.getUTCDate()+4-L);const se=new Date(Date.UTC(G.getUTCFullYear(),0,1)),ce=Math.ceil(((G.getTime()-se.getTime())/864e5+1)/7);return{year:G.getUTCFullYear(),week:ce}}function Q(F,G){if(!F||!G)return null;const L=new Date(F,0,1+(G-1)*7),se=L.getDay(),ce=L;return se<=4?ce.setDate(L.getDate()-L.getDay()+1):ce.setDate(L.getDate()+8-L.getDay()),ce}function ne(F){return String(F).padStart(2,"0")}return(F,G)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass])},[e.createVNode(Gs,{modelValue:d.value,"onUpdate:modelValue":G[0]||(G[0]=L=>d.value=L),placeholder:Z.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":m.value,"week-starts-on":y.value,"starting-view":f.value.startingView,"minimum-view":f.value.minimumView,"input-format":B.value,"upper-limit":h.value,name:n.name,class:e.normalizeClass(i.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","upper-limit","name","class"])],2))}}),[["__scopeId","data-v-fb3e8176"]]),Ys=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),l=new URLSearchParams(r);Object.entries(t).forEach(([s,i])=>{i==null||i===""||l.set(s,String(i))});const a=l.toString();return a?`${n}?${a}`:n},Xs=async(o,t={})=>{try{const n=new FormData;n.append("unique","true"),n.append("file",o);const{api:r,id:l="1",form:a="form",table:s="table",customParams:i}=t,c=r||`/file/upload/uploads?id=${l||""}&form=${a||""}&table=${s||""}`,d=Ys(c,i);return(await fetch(d,{method:"POST",body:n}).then(m=>m.json()))?.result}catch(n){return be.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},Zs=async o=>{try{return await fetch(`file/delete/${o}`),!0}catch(t){return console.error(t),!1}},Yo=async o=>{try{const t=await fetch(`/file/download/${o}`);if(!t.ok)throw new Error(`Download failed with status ${t.status}`);const n=await t.blob(),l=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),a=l?.[1]?decodeURIComponent(l[1].replace(/"/g,"").trim()):"",s=o.split("/").filter(Boolean).pop()||"download",i=a||s,c=document.createElement("a");c.setAttribute("download",i),c.href=window.URL.createObjectURL(n),c.click(),window.URL.revokeObjectURL(c.href)}catch(t){console.error(t.message)}},Js=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},Qs=o=>{const t=Js(o),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?W.Table:n.textsFormat.includes(t)?W.FileCode:n.documentsFormat.includes(t)?W.FileText:n.archivesFormat.includes(t)?W.FileArchive:W.FileText},ei=["title"],ti={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 text-xs font-medium text-slate-600"},ni=["title"],oi={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},ht=Ce(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},action:{type:Boolean,default:!1},isUploading:{type:Boolean,default:!1},progressPercent:{default:0},title:{default:""}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:e.mergeModels(["click"],["update:value","update:item"]),setup(o,{emit:t}){const n=e.useModel(o,"value"),r=e.useModel(o,"item"),l=t,a=o,s=e.computed(()=>a.action),i=e.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),c=e.computed(()=>a.disabled?"opacity-50 cursor-not-allowed":a.isUploading?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),d=h=>typeof h=="string"?h:h?.file_path||"",p=()=>{const h=i.value;Zs(h),a.multiple&&Array.isArray(n.value)?n.value=n.value.filter(f=>d(f)!==h):n.value=""},m=()=>{i.value&&window.open(i.value,"_blank")},y=()=>{a.disabled||a.isUploading||l("click")};return(h,f)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,title:h.title,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",c.value]),onClick:y},[h.isUploading?(e.openBlock(),e.createElementBlock("div",ti,[f[2]||(f[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(h.progressPercent)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(W.Plus),{key:1,class:"h-4 w-4"}))],10,ei)):(e.openBlock(),e.createElementBlock("div",{key:1,title:i.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(Qs)(i.value)),{src:i.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:f[0]||(f[0]=k=>e.unref(Yo)(i.value))},null,8,["src"])),e.createElementVNode("div",oi,[e.createElementVNode("button",{type:"button",onClick:p,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(W.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:m,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-emerald-600"},[e.createVNode(e.unref(W.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:f[1]||(f[1]=k=>e.unref(Yo)(i.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(W.Download),{class:"w-4 h-4"})])])],8,ni))}}),[["__scopeId","data-v-dfd41538"]]),Xo=o=>o?o.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean).map(t=>t.startsWith(".")?t.slice(1):t):[],Zo=(o,t)=>!t||o.size<=t*1024*1024?!0:(be.notify({type:"error",title:"Помилка!",message:`Файл "${o.name}" занадто великий. Максимальний розмір: ${t} МБ`,position:"right-bottom"}),!1),Jo=(o,t)=>{if(!t.length)return!0;const n=o.name.split(".").pop()?.toLowerCase()||"";return t.includes(n)?!0:(be.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${o.name}". Дозволені формати: ${t.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},Qo=(o,t)=>{const n={},r=[];if(!o?.length)return{ok:!0,params:n,missingSources:r};const l=t?.value??{};return o.forEach(a=>{if(!a)return;const[s,i]=a.split("="),c=s?.trim(),d=i?.trim();if(!c||!d)return;const p=l[d];if(p==null||p===""){r.push(d);return}n[c]=p}),r.length?(be.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:n,missingSources:r}):{ok:!0,params:n,missingSources:r}},er=(o,t)=>!t||!Array.isArray(o)?[]:o,tr=(o,t)=>t||Array.isArray(o)?null:o,nr=o=>{if(!o)return"";const t=o.split(/[/\\]/).pop()||"",n=t.lastIndexOf(".");return n<=0||n===t.length-1?"":t.slice(n+1).toLowerCase()},ri={class:"flex items-center flex-wrap gap-2"},li=["accept","multiple","disabled"],or=e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),l=t,a=e.ref(null),s=e.ref(!1),i=e.ref([]),c=e.inject("values"),d=e.computed(()=>er(r.value,!!n.multiple)),p=e.computed(()=>tr(r.value,!!n.multiple)),m=e.computed(()=>Xo(n.format)),y=e.computed(()=>Qo(n.customParams,c)),h=I=>{be.notify({type:"error",title:"Помилка завантаження",message:I||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},f=()=>{n.disabled||s.value||y.value.ok&&a.value?.click()},k=async I=>{const Z={api:n.api,customParams:Object.keys(y.value.params).length?y.value.params:void 0},T=await Xs(I,Z);return T?.file_path?T.file_path:null},b=e.computed(()=>i.value.filter(I=>I.status!=="done")),v=e.computed(()=>b.value[0]||null),w=I=>typeof I=="string"?I:I?.file_path||"",B=(I,Z)=>({key:`${Date.now()}-${Z}-${I.name}`,file:I,size:I.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),N=async I=>{const{files:Z}=I.target;if(!Z||Z.length===0)return;if(!y.value.ok){a.value&&(a.value.value="");return}const T=Array.from(Z);if(n.max_size&&T.filter(_=>!Zo(_,n.max_size)).length>0){a.value&&(a.value.value="");return}if(T.filter(V=>!Jo(V,m.value)).length>0){a.value&&(a.value.value="");return}s.value=!0,i.value=n.multiple?T.map((V,_)=>B(V,_)):[];try{if(n.multiple){const D=await Promise.all(T.map(async(R,K)=>{const q=i.value[K];q.status="uploading",q.progressPercent=0;const P=await k(R);return P?(q.status="done",q.path=P,q.uploaded=q.size,q.progressPercent=100):(q.status="error",q.error="Помилка при завантаженні"),P})),H=D.filter(R=>!!R);if(H.length===0){h();return}H.length<D.length&&h("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const te=H,S=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...S,...te],l("change",r.value);return}const V=T[0],_=await k(V);if(!_){h();return}r.value=_,l("change",_)}catch(V){h(V?.message||void 0)}finally{s.value=!1,i.value=[],a.value&&(a.value.value="")}};return(I,Z)=>(e.openBlock(),e.createElementBlock("div",ri,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:a,type:"file",accept:n.format,multiple:n.multiple,onChange:N,disabled:s.value||I.disabled},null,40,li),p.value?(e.openBlock(),e.createBlock(ht,{key:0,item:p.value,value:r.value,"onUpdate:value":Z[0]||(Z[0]=T=>r.value=T)},null,8,["item","value"])):e.createCommentVNode("",!0),n.multiple?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(T,E)=>(e.openBlock(),e.createBlock(ht,{key:`${E}-${w(T)}`,multiple:!0,item:T,value:r.value,"onUpdate:value":Z[1]||(Z[1]=V=>r.value=V)},null,8,["item","value"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,T=>(e.openBlock(),e.createBlock(ht,{key:T.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":T.progressPercent,title:T.file.name},null,8,["progress-percent","title"]))),128)),e.createVNode(ht,{action:"","is-uploading":!1,disabled:I.disabled||s.value,title:"Добавить файлы",onClick:f},null,8,["disabled"])],64)):!n.multiple&&!v.value?(e.openBlock(),e.createBlock(ht,{key:2,action:"","is-uploading":!1,disabled:I.disabled||s.value,title:"Обновить файл",onClick:f},null,8,["disabled"])):v.value?(e.openBlock(),e.createBlock(ht,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":v.value.progressPercent,title:v.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0)]))}}),ai={class:"vs-input-file2 flex flex-col gap-4"},si={class:"flex items-center flex-wrap gap-2"},ii=["multiple","accept","disabled"],ci={key:0,class:"text-sm text-rose-600"},Bn=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},multiple:{type:Boolean,default:!1},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),l=e.ref(!1),a=e.ref(""),s=e.ref([]),i=e.inject("values"),c=e.computed(()=>!!t.multiple),d=e.computed(()=>Xo(t.format)),p=e.computed(()=>{if(d.value.length)return d.value.map(E=>`.${E}`).join(",")}),m=e.computed(()=>er(n.value,c.value)),y=e.computed(()=>tr(n.value,c.value)),h=e.computed(()=>Qo(t.customParams,i)),f=e.computed(()=>s.value.filter(E=>E.status!=="done")),k=e.computed(()=>c.value?null:f.value[0]||null),b=e.computed(()=>{const E=f.value,V=E.reduce((D,H)=>D+H.size,0);if(!V)return 0;const _=E.reduce((D,H)=>D+Math.min(H.uploaded,H.size),0);return Math.min(100,Math.round(_/V*100))}),v=()=>{t.disabled||l.value||h.value.ok&&r.value?.click()},w=async(E,V)=>{const _=V||Z(E,0);try{_.status="uploading";const D={id:"",fileName:_.file.name,subdir:t.subdir,size:_.file.size,...h.value.params},H=await fetch(`${t.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)});if(!H.ok)throw new Error("Не вдалося ініціалізувати завантаження");const te=await H.json().catch(()=>({}));_.uploadId=te.id||"",_.uploaded=Number(te.uploaded)||0,_.progressPercent=_.size?Math.min(100,Math.round(_.uploaded/_.size*100)):0;const S=t.chunkSize??5*1024*1024;for(;_.uploaded<_.size;){const q=_.uploaded,P=Math.min(q+S,_.size),ne=await _.file.slice(q,P).arrayBuffer(),F=await fetch(`${t.api||"/file/upload2"}/${_.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${q}-${P-1}/${_.size}`,"Content-Type":"application/octet-stream"},body:ne});if(!F.ok)throw new Error("Помилка завантаження частини");const G=await F.json().catch(()=>({})),L=G.uploaded!=null?Number(G.uploaded):P;if(_.uploaded=L,_.progressPercent=_.size?Math.min(100,Math.round(_.uploaded/_.size*100)):0,G.finished||L>=_.size){const se=nr(_.file.name),ce=G.file_path||G.filepath||G.url||(se?`/files/uploads/${_.uploadId}.${se}`:`/files/uploads/${_.uploadId}`);return _.path=ce,_.status="done",I(ce),ce}}const R=nr(_.file.name),K=`/files/uploads/${_.uploadId}${R?`.${R}`:""}`;return _.path=K,_.status="done",I(K),K}catch(D){return _.status="error",_.error=D?.message||"Помилка при завантаженні",a.value=D?.message||"Помилка при завантаженні",null}},B=E=>typeof E=="string"?E:E?.file_path||"",N=E=>!E||E.length===0?[]:Array.from(E),I=E=>{if(c.value){const V=Array.isArray(n.value)?[...n.value]:n.value?[n.value]:[];V.push(E),n.value=V;return}n.value=E},Z=(E,V)=>({key:`${Date.now()}-${V}-${E.name}`,file:E,size:E.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),T=async E=>{const V=E.target,_=N(V.files);if(!_.length)return;if(!h.value.ok){V.value="";return}const D=_.filter(H=>Zo(H,t.max_size)&&Jo(H,d.value));if(!D.length){V.value="";return}try{l.value=!0,a.value="",s.value=D.map((R,K)=>Z(R,K));const te=(await Promise.allSettled(s.value.map(R=>w(R.file,R)))).filter(R=>R.status==="fulfilled").map(R=>R.value).filter(R=>!!R),S=s.value.filter(R=>R.status==="error").map(R=>R.file.name);if(te.length===0){a.value="Не вдалося завантажити файл";return}S.length>0?be.notify({type:"warning",title:"Частина файлів не завантажилась",message:S.join(", "),position:"right-bottom"}):be.notify({type:"success",title:"Файл завантажено",message:D.length>1?`Завантажено ${te.length} файлів`:D[0].name,position:"right-bottom"})}finally{l.value=!1,s.value=[],V.value=""}};return(E,V)=>(e.openBlock(),e.createElementBlock("div",ai,[e.createElementVNode("div",si,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:c.value,accept:p.value,disabled:l.value||t.disabled,onChange:T},null,40,ii),c.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(m.value,(_,D)=>(e.openBlock(),e.createBlock(ht,{key:`${D}-${B(_)}`,multiple:!0,item:_,value:n.value,"onUpdate:value":V[0]||(V[0]=H=>n.value=H)},null,8,["item","value"]))),128)):y.value?(e.openBlock(),e.createBlock(ht,{key:1,item:y.value,value:n.value,"onUpdate:value":V[1]||(V[1]=_=>n.value=_)},null,8,["item","value"])):e.createCommentVNode("",!0),c.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(f.value,_=>(e.openBlock(),e.createBlock(ht,{key:_.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":_.progressPercent,title:_.file.name},null,8,["progress-percent","title"]))),128)):k.value?(e.openBlock(),e.createBlock(ht,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":k.value.progressPercent,title:k.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0),e.createVNode(ht,{action:"","is-uploading":!1,disabled:t.disabled||l.value,"progress-percent":b.value,title:c.value?"Добавить файлы":"Обновить файл",onClick:v},null,8,["disabled","progress-percent","title"])]),a.value?(e.openBlock(),e.createElementBlock("p",ci,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)]))}}),di={class:"flex items-center justify-center h-[30px] w-[30px]"},ui={class:"max-w-[55vw]"},pi={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},mi={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},fi={class:"px-[5px]"},hi={class:""},Vn=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(o){const t=o,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(l){if(l<1024)return`${l} B`;const a=l/1024;return a<1024?`${a.toFixed(2)} KB`:`${(a/1024).toFixed(2)} MB`}return(l,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",di,[e.createVNode(e.unref(W.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",ui,[e.createElementVNode("p",pi,e.toDisplayString(l.item?.uploaded_name),1),e.createElementVNode("p",mi,[e.createElementVNode("span",null,e.toDisplayString(l.item?.username),1),e.withDirectives(e.createElementVNode("span",fi,"|",512),[[e.vShow,l.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),a[0]||(a[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",hi,e.toDisplayString(r(l.item?.size)),1)])])],64))}}),gi={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},yi={key:0,class:"flex w-full gap-x-3 items-center"},bi={key:1,class:"flex gap-x-3 w-full items-center"},ki={key:2,class:"flex gap-x-3 w-full items-center"},xi=["href"],wi={key:3,class:"flex gap-x-3 w-full items-center"},_i={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},vi={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"},Ci={class:"inline-block"},Ei={class:"inline-block"},Bi={class:"inline-block"},Vi=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(o,{emit:t}){const n=o,r=t;function l(m){return["pdf","json"].includes(m.ext)}function a(m){return["ppt","pptx","doc","docx","xls","xlsx"].includes(m.ext)}function s(m){const y=document.createElement("a");y.setAttribute("download",m?.uploaded_name),y.href=m?.file_path,y.click()}function i(m){m?.file_path&&window.open(m.file_path,"_blank")}async function c(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`),r("update")}catch(m){console.error(m)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:c,updateListOnConfirm:!0})}function p(m){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:m})}return(m,y)=>(e.openBlock(),e.createElementBlock("div",gi,[m.item.ext==="jpg"||m.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",yi,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:y[0]||(y[0]=h=>p(m.index))},[e.createVNode(Vn,{item:m.item},null,8,["item"])])])):l(m.item)?(e.openBlock(),e.createElementBlock("div",bi,[e.createVNode(Vn,{item:m.item},null,8,["item"])])):a(m.item)?(e.openBlock(),e.createElementBlock("div",ki,[e.createElementVNode("a",{href:`/api/file-preview?id=${m.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Vn,{item:m.item},null,8,["item"])],8,xi)])):(e.openBlock(),e.createElementBlock("div",wi,[e.createVNode(Vn,{item:m.item},null,8,["item"])])),e.createElementVNode("div",_i,[e.createElementVNode("div",vi,[e.createElementVNode("div",Ci,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:y[1]||(y[1]=h=>i(m.item))},[e.createVNode(e.unref(W.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",Ei,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:y[2]||(y[2]=h=>s(m.item))},[e.createVNode(e.unref(W.Download),{class:"h-4 w-4"})])]),y[4]||(y[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",Bi,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:y[3]||(y[3]=h=>d())},[e.createVNode(e.unref(W.Trash2),{class:"h-4 w-4"})])])])])]))}}),Si={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},$i={class:"flex w-full mb-[12px] items-center gap-x-2"},Ni={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Ai={class1:"ml-auto"},Mi={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"},Fi={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},Di={class:"relative"},Ti={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},Li={key:1,class:"space-y-3 max-h-[300px] overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500"},Ii={key:0},rr=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(o,{emit:t}){const n=o,r=e.inject("form"),l=e.computed(()=>r.value.formId),a=e.ref(!1),s=e.ref(0),i=t,c=e.ref(!1),d=e.ref({}),p=e.ref([]),m=e.ref(""),y=e.computed(()=>Array.isArray(p.value)?p.value.filter(B=>B.ext==="jpg"||B.ext==="png").map(B=>B?.file_path):[]),h=e.computed(()=>m.value===""?p.value:p.value.filter(B=>B?.uploaded_name?.includes(m.value))),f=B=>{const N=y.value.findIndex(I=>I===B.item.file_path);N!==-1&&(a.value=!0,s.value=N)},k=async()=>{try{const B=await fetch(`${n.prefix}/widget/file/${l.value}`).then(N=>N.json());p.value=B?.rows}catch(B){console.error(B)}},b=async B=>{await Promise.all(Array.from(B.target.files).map(async N=>{const I=new FormData;I.append("file",N);try{const Z=`${n.prefix}/widget/file/${l.value}`,T=await fetch(Z,{method:"POST",body:I});return T.ok?(i("update","file-list"),N):(be.notify({type:T.status>=400&&T.status<500?"warning":"error",title:"Error",message:`Error code: ${T.status}`}),null)}catch(Z){return be.notify({type:"error",title:"Error",message:Z.message||"Unknown error"}),console.error(Z),null}})),await k()},v=B=>{const N={...B};return B.cancel||(N.cancel=()=>{c.value=!1}),B.updateListOnConfirm&&(N.confirm=async()=>{await B.confirm(),c.value=!1,k()}),N},w=B=>{d.value=v(B),c.value=!0};return e.watch(l,B=>{B&&k()}),e.onMounted(()=>{l.value&&k()}),(B,N)=>{const I=e.resolveComponent("Lightbox"),Z=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",Si,[e.createElementVNode("div",$i,[e.createElementVNode("h2",Ni," Файлів: "+e.toDisplayString(p.value?.length),1),e.createElementVNode("div",Ai,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:N[0]||(N[0]=T=>b(T))},null,32),e.createElementVNode("div",Mi,[e.createVNode(e.unref(W.Upload),{class:"h-4 w-4"})])])])]),p.value?.length>4?(e.openBlock(),e.createElementBlock("div",Fi,[e.createElementVNode("div",null,[e.createElementVNode("div",Di,[e.createElementVNode("div",Ti,[e.createVNode(e.unref(W.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":N[1]||(N[1]=T=>m.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),[[e.vModelText,m.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),p.value?.length?(e.openBlock(),e.createElementBlock("div",Li,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(T,E)=>(e.openBlock(),e.createBlock(Vi,{key:E,prefix:B.prefix,item:T,index:E,onUpdate:N[2]||(N[2]=V=>B.$emit("update","file-list")),onOpenModal:N[3]||(N[3]=V=>w(V)),onOpenLightbox:N[4]||(N[4]=V=>f(V))},null,8,["prefix","item","index"]))),128)),h.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ii,N[8]||(N[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(I,{modelValue:a.value,"onUpdate:modelValue":N[5]||(N[5]=T=>a.value=T),startIndex:s.value,"onUpdate:index":N[6]||(N[6]=T=>s.value=T),images:y.value},null,8,["modelValue","startIndex","images"]),e.createVNode(Z,e.mergeProps({modelValue:c.value,"onUpdate:modelValue":N[7]||(N[7]=T=>c.value=T),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),Oi={class:"flex items-center justify-between"},Ri={class:"text-[16px] text-gray-900 font-medium"},Pi={class:"grid gap-3"},zi=Ce(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Oi,[e.createElementVNode("p",Ri,e.toDisplayString(o.title),1),e.createVNode(Qn,{modelValue:n.value,"onUpdate:modelValue":l[0]||(l[0]=a=>n.value=a),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Pi,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),ji={class:"text-[16px] text-gray-900 font-medium"},Ui={class:"grid gap-3"},Hi=Ce(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(o){const t=o,n=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{n.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=a=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(W.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",ji,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Ui,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),qi={class:"flex items-center justify-between"},Ki={switcher:zi,accordion:Hi,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",qi,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},it={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},Wi=(o,t)=>String(o)===String(t),Gi=(o,t)=>String(o)!==String(t),Yi=(o,t)=>o>t,Xi=(o,t)=>o>=t,Zi=(o,t)=>o<t,Ji=(o,t)=>o<=t,Qi=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,ec=(o,t)=>String(o).startsWith(String(t)),tc=(o,t)=>String(o).endsWith(String(t)),nc=(o,t)=>String(o).includes(String(t)),oc=(o,t)=>Array.isArray(t)?t.includes(o):!1,rc=(o,t)=>Array.isArray(t)?!t.includes(o):!0,lc=(o,t)=>{if(!t)return!0;switch(t?.[1]){case it.Equal:return Wi(o,t?.[2]);case it.Inequal:return Gi(o,t?.[2]);case it.Higer:return Yi(o,t?.[2]);case it.HigerOrEqual:return Xi(o,t?.[2]);case it.Lower:return Zi(o,t?.[2]);case it.LowerOrEqual:return Ji(o,t?.[2]);case it.Between:return Qi(o,t?.[2]);case it.StartWith:return ec(o,t?.[2]);case it.EndWith:return tc(o,t?.[2]);case it.Contain:return nc(o,t?.[2]);case it.In:return oc(o,t?.[2]);case it.NotIn:return rc(o,t?.[2]);default:return!0}};function lr(o,t,n){return t==null||!Array.isArray(t)||t.length===0?!0:(Array.isArray(t[0])?t:[t]).every(l=>{if(!Array.isArray(l)||l.length<2)return!0;const a=l[0],s=n?o?.[n]?.[a]??o?.[a]:o?.[a];return lc(s,l)})}const ar=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(o){const t=o,n=e.inject("values",e.ref({})),r=e.inject("form"),l=e.computed(()=>t.schema?.filter(i=>lr(n.value,i?.conditions,t.name||void 0))),a=e.computed(()=>Ki[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const i=n.value[t.name];if(i)return i;const c={};return n.value={...n.value,[t.name]:c},c});return(i,c)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createBlock(Mr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":p=>s.value[d.name]=p,style:o.style,error:e.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),sr=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:l,onCreated:a})=>{const s=e.ref(!1),i=e.ref({}),c=e.ref([]),d=e.ref(null),p=e.computed(()=>o.add?.title||"Додати"),m=e.computed(()=>o.add?.token||o.add?.model||""),y=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:i,addSchema:c,addForm:d,addTitle:p,addOption:async()=>{if(!(!m.value||d?.value.validate()))try{const b=o.add?.api??`/api/table/${m.value}`,v=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i.value)}),w=await v.json().catch(()=>({})),B=w?.error||w?.message,N=Number(w?.code)>=400;if(!v.ok||N){be.notify({title:"Помилка",type:"error",message:B||`Код помилки: ${w?.code||v.status}`});return}const I=w?.[y.value]??w?.id;if(!I){be.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const Z=await t(I);Z&&(n.value.some(E=>String(E?.id)===String(Z.id))||n.value.push(Z)),a?await a(Z,I):Z&&(r.value=Z,l.value=I),s.value=!1,be.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(b){be.notify({title:"Помилка",type:"error",message:b?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!o.add)return null;const k=await fetch(`/api/template/form/${o.add.form}`).then(b=>b.json());return c.value=k.schema,i.value={},s.value=!0,null}}},ac=["aria-expanded","data-focus"],sc={class:"vs-input-select__value-area relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},ic={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},cc={class:"flex items-center gap-1 min-w-0"},dc=["title"],uc=["innerHTML"],pc=["onClick"],mc={class:"flex-1 min-w-[2px]"},fc=["placeholder"],hc=["title"],gc=["innerHTML"],yc={key:3,class:"truncate flex-1 min-w-0"},bc={key:2,class:"flex-1 min-w-[2px]"},kc=["placeholder"],xc={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},wc={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},_c=["disabled"],vc={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Cc=["disabled","title"],Ec=e.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(o,{emit:t}){const n=o,r=t,l=e.computed({get:()=>n.keyWord,set:a=>r("update:keyWord",a)});return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",a.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":a.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...i)=>a.onControlKeydown&&a.onControlKeydown(...i)),onClick:s[11]||(s[11]=(...i)=>a.onControlClick&&a.onControlClick(...i)),"data-focus":a.isOpen||a.inputFocus?"true":"false",ref:a.setTriggerRef},[e.createElementVNode("div",sc,[a.isMulti?(e.openBlock(),e.createElementBlock("div",ic,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.selectedOptions,i=>(e.openBlock(),e.createElementBlock("div",{key:i.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",cc,[a.shouldShowColorDot(i)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:i?.color})},null,4)):e.createCommentVNode("",!0),!a.optionTemplate&&a.optionHasIcon(i)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(a.iconWrapperClass),style:e.normalizeStyle(a.getIconColorStyle(i)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.resolveOptionIcon(i)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:a.getLabel(i)},[a.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:a.renderTemplate(i)},null,8,uc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(i.text),1)],64))],8,dc)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(c=>a.onRemoveSelected(i.id),["stop"])},[e.createVNode(e.unref(W.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,pc)]))),128)),e.createElementVNode("div",mc,[!a.disabled&&a.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:a.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:a.selectedIds.length?" ":a.placeholder,"onUpdate:modelValue":s[0]||(s[0]=i=>l.value=i),onFocus:s[1]||(s[1]=(...i)=>a.onInputFocus&&a.onInputFocus(...i)),onBlur:s[2]||(s[2]=(...i)=>a.onInputBlur&&a.onInputBlur(...i)),onKeydown:s[3]||(s[3]=(...i)=>a.onInputKeydown&&a.onInputKeydown(...i))},null,40,fc)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)])])):!a.isMulti&&a.selectedOptionLabel&&l.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",a.disabled||!a.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:a.selectedOptionLabel},[a.shouldShowColorDot(a.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:a.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!a.optionTemplate&&a.optionHasIcon(a.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(a.iconWrapperClass),style:e.normalizeStyle(a.getIconColorStyle(a.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.resolveOptionIcon(a.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),a.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:a.renderTemplate(a.selectedOption)},null,8,gc)):(e.openBlock(),e.createElementBlock("span",yc,e.toDisplayString(a.selectedOption?.text),1))],10,hc)):e.createCommentVNode("",!0),!a.isMulti&&!a.disabled&&a.search?(e.openBlock(),e.createElementBlock("div",bc,[e.withDirectives(e.createElementVNode("input",{ref:a.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:a.selectedOptionLabel?" ":a.placeholder,"onUpdate:modelValue":s[4]||(s[4]=i=>l.value=i),onFocus:s[5]||(s[5]=(...i)=>a.onInputFocus&&a.onInputFocus(...i)),onBlur:s[6]||(s[6]=(...i)=>a.onInputBlur&&a.onInputBlur(...i)),onKeydown:s[7]||(s[7]=(...i)=>a.onInputKeydown&&a.onInputKeydown(...i))},null,40,kc),[[e.vModelText,l.value]])])):!a.isMulti&&a.disabled&&(!a.selectedOptionLabel||l.value!=="")?(e.openBlock(),e.createElementBlock("div",xc,e.toDisplayString(a.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",wc,[a.showClear?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.disabled,onClick:s[8]||(s[8]=e.withModifiers((...i)=>a.onClearSelected&&a.onClearSelected(...i),["stop"]))},[e.createVNode(e.unref(W.X),{class:"h-4 w-4"})],8,_c)):e.createCommentVNode("",!0),a.showClear?(e.openBlock(),e.createElementBlock("div",vc)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:a.disabled,onClick:s[9]||(s[9]=e.withModifiers((...i)=>a.onToggleSelect&&a.onToggleSelect(...i),["stop"])),title:a.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(W.ChevronDown),{class:"h-4 w-4"})],8,Cc)])],42,ac))}}),Bc=["aria-disabled","onMousedown"],Vc={class:"leading-[19px]"},Sc=["innerHTML"],$c={key:1,class:"px-3 py-2 text-center text-gray-500"},Nc=e.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(o){return(t,n)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,ref:t.setDropdownRef,class:"fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:e.normalizeStyle(t.dropdownStyle),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:t.dropdownStyle.maxHeight||"300px"}),ref:t.setListRef},[t.filteredOptionsList.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.filteredOptionsList,(r,l)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:a=>t.setItemRef(a,l),class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",t.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",t.selectedNavIndex===l&&!t.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":t.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(a=>t.onOptionClick(r),["prevent","stop"])},[t.shouldShowColorDot(r)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:r?.color})},null,4)):e.createCommentVNode("",!0),!t.optionTemplate&&t.optionHasIcon(r)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.iconWrapperClass),style:e.normalizeStyle(t.getIconColorStyle(r)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",Vc,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,Sc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,Bc))),128)):(e.openBlock(),e.createElementBlock("div",$c," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),Ac=["disabled"],Mc="__autoMeta",ir="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",co=Ce(e.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t,l=e.computed(()=>n.multiple),a=e.computed(()=>n.disabled),s=e.computed(()=>n.search);et(n.style);const i=e.computed({get:()=>n.modelValue,set:U=>r("update:modelValue",U)});!i.value&&n.defaultValue&&(i.value=n.defaultValue);const c=e.ref(null),d=e.ref(null),p=e.ref(null),m=e.ref(null),y=e.ref(!1),h=e.ref(!1),f=e.ref(null),k=e.ref(-1),b=e.ref([]),v=e.ref(""),w=e.ref(null),B=U=>{d.value=U},N=U=>{w.value=U},I=U=>{m.value=U},Z=U=>{p.value=U},T=(U,re)=>{b.value[re]=U},E=e.ref({}),V=e.ref([]),_=e.computed(()=>{if(!V.value.length)return[];const U=xe.value,re=new Map(U.map(fe=>[fe.id?.toString(),fe]));return V.value.map(fe=>re.get(fe?.toString())).filter(fe=>!!fe)}),D=e.computed(()=>n.placeholder||"Select..."),H=e.computed(()=>ne(f.value)),te=e.computed(()=>a.value?!1:l.value?V.value.length>0:!!i.value),S=U=>l.value?V.value.some(re=>re?.toString()===U?.toString()):i.value?.toString()===U?.toString(),R=e.computed(()=>{let U=xe.value??[];if(!n.data&&v.value.trim()!==""){const re=v.value.toLowerCase();U=U.filter(fe=>{const Me=ne(fe).toLowerCase(),Re=fe.text?.toLowerCase?.()||"";return Me.includes(re)||Re.includes(re)})}if(l.value&&V.value.length){const re=new Set(V.value.map(fe=>fe?.toString()));U=U.filter(fe=>!re.has(fe.id?.toString()))}return U}),K=e.inject("values"),q=e.inject("field-props"),P=e.computed(()=>n.slot??n?.optionTemplate??""),Q=U=>bn(U,P.value),ne=U=>kn(U,P.value),F=e.computed(()=>hn(P.value)),G=U=>Zt(U),L=U=>!!(!F.value&&St(U)&&!G(U)),se=U=>{const re=St(U);return re?{color:re}:void 0},ce=U=>!!(!F.value&&(Xt(U)||G(U))),ee=(U,re,fe)=>{if(!q)return!1;const Me=q.value?.[U]??{},Re=(He,st,xt)=>{if(!st.length)return He;const[ut,...wt]=st,qe={...He};if(!wt.length)return qe[ut]=xt,qe;const pn=typeof He[ut]=="object"&&He[ut]!==null?He[ut]:{};return qe[ut]=Re(pn,wt,xt),qe},Ue=Re(Me,re,fe);return q.value={...q.value||{},[U]:Ue},!0},ye=U=>{if(!q||!n.name)return;const re=q.value?.[n.name]??{};q.value={...q.value||{},[n.name]:{...re,[Mc]:U}}},Ve=U=>{if(!n.set)return;const re=K?.value;!re&&!q||Object.entries(n.set).forEach(([fe,Me])=>{if(!fe)return;const Re=U?U[Me]:null,Ue=fe.split(".").map(xt=>xt.trim()).filter(Boolean);if(!Ue.length)return;const[He,...st]=Ue;st.length&&ee(He,st,Re??null)||re&&(re[He]=Re??null)})},{optionsList:xe,parentValue:Le,fetchOptions:Ne,fetchOptionByValue:Oe,loadOptions:$e}=yn({props:n,formValues:K,watchParent:!1}),oe=U=>U==null?"":String(U),le=U=>{if(l.value){if(!V.value.length){xe.value=U;return}}else if(!f.value){xe.value=U;return}const re=new Set(U.map(Me=>oe(Me.id)).filter(Boolean));if(l.value){const Me=new Set(V.value.map(Ue=>oe(Ue)).filter(Boolean)),Re=(xe.value??[]).filter(Ue=>{const He=oe(Ue.id);return!He||!Me.has(He)?!1:!re.has(He)});xe.value=[...Re,...U];return}const fe=oe(f.value?.id);if(fe&&!re.has(fe)){xe.value=[f.value,...U];return}xe.value=U},ke=e.ref(0),Ee=async U=>{const re=++ke.value,fe=await Ne(U);return re!==ke.value?null:fe},ze=async()=>{if(n.data){const U=await Ee(v.value);return U&&le(U),xe.value}return $e()},We=async U=>{if(U==null||U==="")return null;const re=xe.value?.find(fe=>fe?.id?.toString()===String(U));return re||Oe(U)},O=async U=>{const re=new Set(xe.value.map(Me=>Me.id?.toString())),fe=U.filter(Me=>!re.has(Me?.toString()));fe.length&&await fe.reduce(async(Me,Re)=>{await Me;const Ue=await We(Re);Ue&&xe.value.push(Ue)},Promise.resolve())},J=()=>{if(!R.value.length){k.value=-1;return}let U=0;if(!l.value&&f.value){const re=f.value.id?.toString(),fe=R.value.findIndex(Me=>Me.id?.toString()===re);fe>=0&&(U=fe)}k.value=U,e.nextTick(()=>{z(b.value[U],p.value)})},ae=async()=>{a.value||(y.value=!0,await e.nextTick(()=>{_e()}),await ze(),await e.nextTick(()=>{_e(),w.value?.focus()}),J())},ue=()=>{y.value=!1,k.value=-1,e.nextTick(()=>{w.value?.blur()})},ge=async U=>{if(a.value)return;(U!==void 0?U:!y.value)?await ae():ue()},Ae=async()=>{if(!a.value){if(y.value){ue();return}await ae()}},Te=()=>{l.value?(V.value=[],i.value=[],r("change",[]),j(null,[])):(f.value=null,i.value=null,r("change",null),j(null,null)),Ve(null),ye(null),v.value="",ue(),e.nextTick(()=>{w.value?.focus()})},Fe=U=>{l.value&&(V.value=V.value.filter(re=>re?.toString()!==U?.toString()),i.value=[...V.value],r("change",i.value),j(null),e.nextTick(()=>w.value?.focus()))},j=(U,re)=>{const fe=re??(l.value?[...V.value]:U?.id??null);r("value-selected",{name:n.name,value:fe,option:U})},C=(U,re="manual")=>{l.value?(S(U.id)||(V.value=[...V.value,U.id],i.value=[...V.value],r("change",i.value),j(U)),v.value="",e.nextTick(()=>{w.value?.focus(),k.value=Math.min(k.value,R.value.length-1)}),Ve(null)):(f.value=U,i.value=U.id,r("change",i.value),j(U),v.value="",ue(),Ve(U),re==="parent-auto"&&ye({source:re,parentField:n.parent??null,parentValue:Le.value??null}))},A=U=>{if(S(U.id)){l.value||ue();return}C(U)},z=(U,re)=>{if(!U||!re)return;const fe=U.offsetTop,Me=fe+U.offsetHeight,Re=re.scrollTop,Ue=Re+re.clientHeight;let He=re.scrollTop;fe<Re?He=fe-80:Me>Ue&&(He=Me-re.clientHeight+4);const st=re;st.scrollTop=He},ie=U=>{let re=U.parentElement;for(;re;){if(re.classList.contains("ui-dialog__content"))return re;const fe=window.getComputedStyle(re),Me=fe.overflow+fe.overflowY+fe.overflowX;if(Me.includes("auto")||Me.includes("scroll")||re===document.body||re===document.documentElement)return re;re=re.parentElement}return document.body},_e=()=>{if(!d.value)return;const U=d.value.getBoundingClientRect(),re=window.innerHeight||document.documentElement.clientHeight,fe=window.innerWidth||document.documentElement.clientWidth,Me=8,Re=8,Ue=n.maxHeight||300,He=re-U.bottom-Re-Me,st=U.top-Re-Me,xt=He>=st,ut=Math.max(fe-Me*2,0);let{width:wt}=U;ut>0&&wt>ut&&(wt=ut);let{left:qe}=U;qe+wt+Me>fe&&(qe=fe-wt-Me),qe=Math.max(qe,Me);const pn=Math.min(Ue,Math.max(xt?He:st,50));E.value={position:"fixed",left:`${qe}px`,width:`${wt}px`,maxHeight:`${pn}px`,transform:xt?"none":"translateY(-100%)",top:xt?`${U.bottom+Re}px`:`${U.top-Re}px`}},Pe=async U=>{a.value||!y.value&&(U.key==="ArrowDown"||U.key==="ArrowUp")&&(U.preventDefault(),await ae())},De=U=>{if(!y.value)return;const{key:re}=U;if(re==="ArrowDown")U.preventDefault(),k.value+1<R.value.length&&(k.value+=1,z(b.value[k.value],p.value));else if(re==="ArrowUp")U.preventDefault(),k.value>0&&(k.value-=1,z(b.value[k.value],p.value));else if(re==="Enter"){U.preventDefault();const fe=R.value[k.value];fe&&C(fe),w.value?.blur()}else re==="Escape"?(U.preventDefault(),ue()):re==="Backspace"?l.value&&v.value===""&&V.value.length&&(V.value=V.value.slice(0,-1),i.value=[...V.value],r("change",i.value)):re==="Home"?(k.value=0,z(b.value[0],p.value)):re==="End"?(k.value=R.value.length-1,z(b.value[k.value],p.value)):re==="Tab"&&ue()},Ge=()=>{a.value||(h.value=!0)},Y=()=>{h.value=!1,v.value=""},pe=U=>{U.key==="Escape"&&y.value&&ue()},Ie=U=>{const re=U.target;c.value?.contains(re)||m.value?.contains(re)||ue()},Qe=U=>{y.value&&p.value&&!p.value.contains(U.target)&&_e()},dt=()=>{y.value&&_e()},Ye=()=>{y.value&&_e()};async function Dt(){if(l.value)Array.isArray(i.value)?V.value=[...i.value]:(V.value=i.value==null?[]:[i.value],i.value=[...V.value]),n.data&&V.value.length&&(await O(V.value),await e.nextTick());else{if(Array.isArray(i.value)){const U=i.value[0]??null;i.value=U??null}i.value!=null&&i.value!==""?f.value=await We(i.value):f.value=null,Ve(f.value??null)}}e.watch(i,()=>{Dt()}),e.onMounted(async()=>{if(addEventListener("keydown",pe),addEventListener("scroll",Qe,!0),addEventListener("resize",dt),document.addEventListener("click",Ie,!0),d.value&&ie(d.value).addEventListener("scroll",Ye,!0),n.options?.length&&!n.data)xe.value=[...n.options];else if(n.data){const U=await Ee("");U&&le(U)}await Dt(),Kn.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",pe),removeEventListener("scroll",Qe,!0),removeEventListener("resize",dt),document.removeEventListener("click",Ie,!0),d.value&&ie(d.value).removeEventListener("scroll",Ye,!0)});const{isOpenAdd:Tt,addData:Ut,addSchema:Lt,addForm:Eo,addTitle:Bo,addOption:Hn,onAddValue:qn}=sr({props:n,fetchOptionByValue:Oe,optionsList:xe,selectedOption:f,modelValue:i});function Vo(U,re=200){let fe;return(...Me)=>{fe&&clearTimeout(fe),fe=window.setTimeout(()=>U(...Me),re)}}const It=Vo(async U=>{const re=await Ee(U);re&&le(re)},200);e.watch(v,U=>{n.data&&It(U.trim())}),e.watch(()=>n.options,U=>{!n.data&&U?.length&&(xe.value=[...U],Dt())},{immediate:!0});const Kn=e.ref(!0);return e.watch(Le,async()=>{if(n.data&&(Kn.value||(l.value?(V.value=[],i.value=[],r("change",[])):(f.value=null,i.value=null,r("change",null))),await ze(),n.auto===1&&Le.value&&xe.value.length>0)){const U=xe.value[0];U&&C(U,"parent-auto")}}),(U,re)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(be.VsModal),{visible:e.unref(Tt),"onUpdate:visible":re[1]||(re[1]=fe=>e.isRef(Tt)?Tt.value=fe:null),class:"z-[1000]",title:e.unref(Bo),buttonText:"Додати",onDone:e.unref(Hn),teleport:U.teleport},{default:e.withCtx(()=>[e.createVNode(ct,{schema:e.unref(Lt),modelValue:e.unref(Ut),"onUpdate:modelValue":re[0]||(re[0]=fe=>e.isRef(Ut)?Ut.value=fe:null),ref_key:"addForm",ref:Eo},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:c,onClick:re[4]||(re[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[re[5]||(re[5]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),re[6]||(re[6]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(Ec,{keyWord:v.value,"onUpdate:keyWord":re[2]||(re[2]=fe=>v.value=fe),disabled:a.value,"is-open":y.value,"input-focus":h.value,"is-multi":l.value,"selected-options":_.value,"selected-ids":V.value,placeholder:D.value,search:s.value,"option-template":P.value,"icon-wrapper-class":ir,"selected-option-label":H.value,"selected-option":f.value,"show-clear":te.value,"set-trigger-ref":B,"set-input-ref":N,"should-show-color-dot":L,"option-has-icon":ce,"get-icon-color-style":se,"resolve-option-icon":G,"render-template":Q,"get-label":ne,"on-control-keydown":Pe,"on-control-click":Ae,"on-input-focus":Ge,"on-input-blur":Y,"on-input-keydown":De,"on-remove-selected":Fe,"on-clear-selected":Te,"on-toggle-select":ge},null,8,["keyWord","disabled","is-open","input-focus","is-multi","selected-options","selected-ids","placeholder","search","option-template","selected-option-label","selected-option","show-clear"]),e.createVNode(Nc,{"is-open":y.value,"dropdown-style":E.value,"filtered-options-list":R.value,"selected-nav-index":k.value,"option-template":P.value,"icon-wrapper-class":ir,"set-dropdown-ref":I,"set-list-ref":Z,"set-item-ref":T,"is-selected":S,"on-option-click":A,"should-show-color-dot":L,"option-has-icon":ce,"get-icon-color-style":se,"resolve-option-icon":G,"render-template":Q},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:re[3]||(re[3]=(...fe)=>e.unref(qn)&&e.unref(qn)(...fe)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:a.value,type:"button"},[e.createVNode(e.unref(W.Plus),{class:"h-4 w-4"}),re[7]||(re[7]=e.createElementVNode("span",null,"Додати",-1))],8,Ac)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-e32c2e90"]]),uo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,Fc=["disabled","aria-expanded"],Dc={class:"truncate"},Tc={class:"py-2 px-4"},Lc={class:"block font-medium text-[13px] text-foreground"},Ic={class:"truncate"},Oc={class:"p-1 border-t border-gray-200"},Rc={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"},Pc=["onClick"],zc=["checked"],jc={class:"shrink-0 size-3.5 flex justify-center items-center"},Uc={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},Hc={class:"truncate"},qc={key:0,class:"px-3 py-2 text-xs text-stone-500"},Sn=e.defineComponent({__name:"vs-input-inline-select",props:{multiple:{type:Boolean},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(o,{emit:t}){const n=o,r=t;et(n.style);const l=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:ee=>r("update:modelValue",ee)});l.value==null&&n.defaultValue!=null&&(l.value=n.defaultValue);const a=e.inject("values"),s=e.inject("field-props"),i=e.computed(()=>!!n.disabled),c=e.ref(null),d=e.ref(!1),p=e.ref(null),m=e.ref(null),y=e.ref(null),h=e.ref({}),f=`vs-input-inline-select-${uo()}`,k=e.computed(()=>n.placeholder||"Оберіть значення"),b=e.computed(()=>I(c.value)||n.placeholder||"Оберіть значення"),v=e.computed(()=>n.slot??""),w=e.computed(()=>hn(v.value)),B=e.computed(()=>n.teleport||"body"),N=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,I=ee=>kn(ee,v.value),Z=ee=>!!(!w.value&&St(ee)),T=e.computed(()=>{const ee=St(c.value).trim();return ee?N.test(ee)?`bg-[${ee}] border-[${ee}]`:`bg-${ee.toLowerCase()}-500 border-${ee.toLowerCase()}-500`:""}),{optionsList:E,parentValue:V,fetchOptions:_,fetchOptionByValue:D,loadOptions:H}=yn({props:n,formValues:a,watchParent:!1}),te=(ee,ye,Ve)=>{if(!s)return!1;const xe=s.value?.[ee]??{},Le=(Oe,$e,oe)=>{if(!$e.length)return Oe;const[le,...ke]=$e,Ee={...Oe};if(!ke.length)return Ee[le]=oe,Ee;const ze=typeof Oe[le]=="object"&&Oe[le]!==null?Oe[le]:{};return Ee[le]=Le(ze,ke,oe),Ee},Ne=Le(xe,ye,Ve);return s.value={...s.value||{},[ee]:Ne},!0},S=ee=>{if(!n.set)return;const ye=a?.value;!ye&&!s||Object.entries(n.set).forEach(([Ve,xe])=>{if(!Ve)return;const Le=ee?ee[xe]:null,Ne=Ve.split(".").map(oe=>oe.trim()).filter(Boolean);if(!Ne.length)return;const[Oe,...$e]=Ne;$e.length&&te(Oe,$e,Le??null)||ye&&(ye[Oe]=Le??null)})},R=ee=>l.value?.toString?.()===ee?.toString?.(),K=()=>{if(!m.value||typeof window>"u")return;const ee=m.value.getBoundingClientRect(),ye=8,Ve=8,xe=window.innerHeight||document.documentElement.clientHeight,Le=window.innerWidth||document.documentElement.clientWidth,Ne=y.value?.offsetHeight||260,Oe=Math.max(ee.width,176),$e=Math.max(Le-ye*2,120),oe=Math.min(Oe,$e);let le=ee.left;le+oe+ye>Le&&(le=Le-oe-ye),le=Math.max(le,ye);const ke=xe-ee.bottom-Ve-ye,Ee=ee.top-Ve-ye,ze=ke<Math.min(Ne,260)&&Ee>ke,We=Math.max(120,Math.min(320,ze?Ee:ke));h.value={position:"fixed",left:`${le}px`,top:ze?`${ee.top-Ve}px`:`${ee.bottom+Ve}px`,transform:ze?"translateY(-100%)":"none",width:`${oe}px`,maxHeight:`${We}px`}},q=async()=>{if(n.data){E.value=await _("");return}await H()},P=async()=>{if(l.value==null||l.value===""){c.value=null,S(null);return}const ee=E.value.find(ye=>ye.id?.toString()===String(l.value));if(ee){c.value=ee,S(ee);return}c.value=await D(l.value),S(c.value??null)},Q=async()=>{i.value||(d.value=!0,await e.nextTick(),K(),await q(),await e.nextTick(),K())},ne=()=>{d.value=!1},F=async()=>{if(d.value){ne();return}await Q()},G=ee=>{r("value-selected",{name:n.name,value:ee?.id??null,option:ee})},L=ee=>{c.value=ee,l.value=ee.id,r("change",ee.id),G(ee),S(ee),ne()},se=ee=>{const ye=ee.target;p.value?.contains(ye)||y.value?.contains(ye)||ne()},ce=()=>{d.value&&K()};return e.watch(()=>n.options,ee=>{n.data||(E.value=ee?[...ee]:[],P())},{immediate:!0,deep:!0}),e.watch(l,()=>{P()}),e.watch(V,async()=>{n.data&&(await q(),c.value&&!E.value.some(ee=>ee.id?.toString()===c.value?.id?.toString())&&(c.value=null,l.value=null,r("change",null),G(null),S(null)))}),e.onMounted(async()=>{document.addEventListener("click",se,!0),window.addEventListener("resize",ce),window.addEventListener("scroll",ce,!0),await q(),await P()}),e.onUnmounted(()=>{document.removeEventListener("click",se,!0),window.removeEventListener("resize",ce),window.removeEventListener("scroll",ce,!0)}),(ee,ye)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:p,onClick:ye[0]||(ye[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:m,type:"button",disabled:i.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:e.normalizeClass(["py-1.5 px-2.5 inline-flex items-center gap-2 text-nowrap text-xs sm:text-[13px] rounded-lg focus:outline-hidden disabled:opacity-50 disabled:pointer-events-none max-w-full border",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:F},[e.createElementVNode("span",Dc,e.toDisplayString(b.value),1)],10,Fc),(e.openBlock(),e.createBlock(e.Teleport,{to:B.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:y,class:"z-[3000] w-44 transition-[opacity,margin] duration-150 bg-white text-gray-900 border border-gray-200 rounded-xl shadow-lg",style:e.normalizeStyle(h.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",Tc,[e.createElementVNode("span",Lc,[e.createElementVNode("span",Ic,e.toDisplayString(k.value),1)])]),e.createElementVNode("div",Oc,[e.createElementVNode("div",Rc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),Ve=>(e.openBlock(),e.createElementBlock("label",{key:Ve.id,class:"py-1.5 px-3 group flex items-center gap-x-3 rounded-lg cursor-pointer text-[13px] text-gray-800 hover:bg-gray-100",onClick:e.withModifiers(xe=>L(Ve),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:f,checked:R(Ve.id),tabindex:"-1"},null,8,zc),e.createElementVNode("span",jc,[Z(Ve)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:Ve.color})},null,4)):(e.openBlock(),e.createElementBlock("span",Uc))]),e.createElementVNode("span",Hc,e.toDisplayString(I(Ve)),1),e.createVNode(e.unref(W.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",R(Ve.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,Pc))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",qc,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),Kc=["placeholder","disabled"],cr=e.defineComponent({__name:"vs-input-textarea",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=et(t.style),r=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(i,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":c[0]||(c[0]=d=>r.value=d),placeholder:a.value,disabled:l.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,Kc)),[[e.vModelText,r.value]])}}),dr=e.defineComponent({__name:"vs-input-richtext",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},format:{default:"html"},richtextProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>sy)),n=o,{inputClass:r}=et(n.style),l=e.useModel(o,"modelValue"),a=e.computed(()=>!!n.disabled),s=e.computed(()=>n.placeholder??""),i=e.computed(()=>({height:n.richtextProps.height||"300px",format:n.format,...n.richtextProps}));return(c,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full",[c.customClass,e.unref(r)]]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=p=>l.value=p),placeholder:s.value},i.value),null,16,["modelValue","placeholder"])],6))}}),Wc={},Gc={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function Yc(o,t){return e.openBlock(),e.createElementBlock("svg",Gc,t[0]||(t[0]=[e.createStaticVNode('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>',12)]))}const Xc=Ce(Wc,[["render",Yc]]),Zc={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},Jc={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"},Qc={key:0,class:"relative flex-1 min-w-0"},ed={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},td={class:"w-full overflow-x-auto"},nd={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},od={class:"bg-gray-50"},rd={class:"border-b border-gray-200"},ld={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},ad=["onClick"],sd={key:0,class:"text-gray-400"},id={key:0,colspan:"100%",class:"text-center"},cd={class:"w-full"},dd={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},ud=["data-row-index","onDragstart","onDragover","onDrop"],pd=["onPointerdown"],md={class:"flex items-center justify-center"},fd=["innerHTML"],hd={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},gd={key:0},yd=["src"],bd={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},kd={key:1,class:"flex items-center justify-center"},xd={key:2,class:"text-sm font-medium text-gray-900"},wd={class:"px-4 py-3 text-right whitespace-nowrap"},_d={class:"flex items-center justify-end gap-2"},vd=["onClick"],Cd=["onClick"],Ed={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},ur=e.defineComponent({__name:"vs-input-datatable",props:e.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useSlots(),r=O=>t.actions===void 0?!0:t.actions.includes(O),l=["search","import","export","add"],a=e.computed(()=>l.some(O=>r(O))),s=e.useModel(o,"modelValue"),i=e.ref({}),c=e.ref(""),d=e.ref(null),p=e.ref("asc"),m=e.computed(()=>{const O=s.value??[],J=c.value?O.filter(ge=>y.value?.some(Ae=>{const Te=Ae.key||Ae.name;if(!Te)return!1;const Fe=ge[Te];return Fe?Array.isArray(Fe)?Fe.join(", ").toLowerCase().includes(c.value.toLowerCase()):String(Fe).toLowerCase().includes(c.value.toLowerCase()):!1})):O;if(!d.value)return J;const ae=d.value,ue=[...J].sort((ge,Ae)=>{const Te=Le(ge?.[ae]),Fe=Le(Ae?.[ae]);return typeof Te=="number"&&typeof Fe=="number"?Te-Fe:String(Te).localeCompare(String(Fe))});return p.value==="asc"?ue:ue.reverse()}),y=e.computed(()=>(t.colModel??[]).filter(O=>!O.tableHidden)),h=e.ref(null),f=e.ref(null),k=e.ref(null);function b(O){return O.pointerType==="touch"||O.pointerType==="pen"}function v(O,J){const ue=document.elementFromPoint(O,J)?.closest?.("[data-row-index]")??null;if(!ue)return null;const ge=ue.getAttribute("data-row-index");if(ge==null)return null;const Ae=Number.parseInt(ge,10);return Number.isNaN(Ae)?null:Ae}function w(O,J){b(O)&&(O.preventDefault(),O.currentTarget.setPointerCapture(O.pointerId),h.value=J,f.value=J)}function B(O){if(h.value===null||!b(O))return;O.preventDefault();const J=v(O.clientX,O.clientY);J!==null&&(f.value=J)}function N(O){if(h.value===null||!b(O))return;O.preventDefault();const J=v(O.clientX,O.clientY);E(J??h.value);try{O.currentTarget.releasePointerCapture(O.pointerId)}catch{}}function I(O){if(b(O)){h.value=null,f.value=null;try{O.currentTarget.releasePointerCapture(O.pointerId)}catch{}}}const Z=O=>{h.value=O},T=O=>{f.value=O},E=O=>{if(h.value===null||h.value===O){h.value=null,f.value=null;return}const J=[...s.value],[ae]=J.splice(h.value,1);J.splice(O,0,ae),s.value=J,h.value=null,f.value=null},V=()=>{k.value&&k.value.click()},_=O=>{const J=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],ae=O.toLowerCase();return J.some(ue=>ae.endsWith(ue))},D=O=>{const ae=O.target.files?.[0];if(!ae)return;const ue=new FileReader;ue.onload=ge=>{try{const Ae=ge.target?.result;if(typeof Ae=="string"){const Te=JSON.parse(Ae);Array.isArray(Te)&&s.value.push(...Te)}}catch(Ae){console.error("Error parsing file:",Ae)}},ue.readAsText(ae)},H=()=>{const O=JSON.stringify(s.value,null,2),J=new Blob([O],{type:"application/json"}),ae=URL.createObjectURL(J),ue=document.createElement("a");ue.href=ae,ue.download="data.json",ue.click(),URL.revokeObjectURL(ae)},te=new Set(["autocomplete","select","radio","checkbox","combobox"]),S=new Map,R=(O,J)=>{const ae=`/api/suggest/${O}`,ue=ae.includes("?")?"&":"?",ge=J?`&val=${J}`:"";return`${ae}${ue}json=1${ge}`},K=O=>O==null||O===""?null:typeof O=="object"?O?.id!==void 0&&O.id!==null&&O.id!==""?O.id:null:O,q=O=>{const J=new Set;return Array.isArray(s.value)&&s.value.forEach(ae=>{const ue=ae?.[O];if(ue==null||ue==="")return;if(Array.isArray(ue)){ue.forEach(Ae=>{const Te=K(Ae);Te!==null&&J.add(Te)});return}const ge=K(ue);ge!==null&&J.add(ge)}),J},P=async()=>{if(!t.colModel?.length)return;const O=t.colModel.filter(J=>J.data&&te.has(J.type?.toLowerCase()||""));O.length&&await Promise.all(O.map(async J=>{const ae=J.key||J.name;if(!ae)return;const ue=q(ae),ge=Array.from(ue).map(Fe=>String(Fe)).sort(),Ae=ge.join(",");if(!ge.length||S.get(ae)===Ae)return;S.set(ae,Ae);const Te=ge.map(encodeURIComponent).join(",");try{const j=await(await fetch(R(J.data,Te))).json();i.value[ae]=j?.data??j}catch(Fe){console.error("Failed to fetch column values",Fe)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{P()},{immediate:!0,deep:!0});const Q=e.ref(""),ne=e.ref(!1);let F="edit",G=0;const L=O=>(O?.format||O?.type||"").toString().toLowerCase(),se=e.computed(()=>(t.colModel?.filter(J=>L(J)!=="slot")??[]).map(J=>{const ae=J.key||J.name;return ae?{...J,name:ae,key:ae}:J})),ce=e.ref({}),ee=e.ref({}),ye=O=>typeof O!="string"?!1:!!n[O],Ve=(O,J)=>J?J.split(".").reduce((ae,ue)=>ae==null?ae:ae[ue.trim()],O):O,xe=(O,J)=>typeof O!="string"?"":O.replace(/{{\s*([^}]+)\s*}}/g,(ae,ue)=>{const ge=Ve(J,ue.trim());return ge??""}),Le=O=>{if(O==null||O==="")return"";if(typeof O=="number")return O;if(typeof O=="boolean")return O?1:0;if(typeof O=="string")return O.toLowerCase();if(Array.isArray(O))return O.map(J=>Le(J)).join(", ");if(typeof O=="object"){if(O.text!==void 0)return String(O.text).toLowerCase();if(O.label!==void 0)return String(O.label).toLowerCase();if(O.id!==void 0)return String(O.id).toLowerCase()}return String(O).toLowerCase()},Ne=O=>{const J=O.key||O.name;if(J){if(d.value===J){p.value=p.value==="asc"?"desc":"asc";return}d.value=J,p.value="asc"}};async function Oe(){Q.value="Додати",ne.value=!0,F="add",ce.value={}}function $e(O,J){if(!O?.length)return null;const ae=typeof J=="object"?J?.id:J;return ae==null||ae===""?null:O.find(ue=>ue?.id?.toString()===ae.toString())?.text??null}function oe(O){return O==null||O===""?"-":Array.isArray(O)?O.map(J=>typeof J=="object"?J?.text??J?.id??"-":J).join(", "):typeof O=="object"?O?.text??O?.id??"-":O}function le(O,J){const ae=J.key||J.name,ue=O?.[ae],ge=i.value[ae];if(!ue)return"-";if(Array.isArray(ue)){const Te=ue.map(Fe=>$e(ge,Fe)).filter(Boolean);return Te.length?Te.join(", "):oe(ue)}const Ae=$e(ge,ue);return Ae||oe(ue)}async function ke(O,J){Q.value="Редагувати",ne.value=!0,F="edit",G=J,ce.value={...O}}function Ee(){const O=ee.value.validate();if(O){be.notify({type:"warning",title:"Помилка валідації",message:Object.entries(O).map(([J,ae])=>`${J}: ${ae}`).join(`
|
|
2
|
-
`)});return}F==="add"?Array.isArray(s.value)?s.value=[...s.value,ce.value]:s.value=[ce.value]:s.value=s.value.map((J,ae)=>ae===G?ce.value:J),ne.value=!1}function ze(O){s.value=s.value.filter((J,ae)=>ae!==O)}function We(){ne.value=!1}return(O,J)=>(e.openBlock(),e.createElementBlock("div",Zc,[a.value?(e.openBlock(),e.createElementBlock("div",Jc,[r("search")?(e.openBlock(),e.createElementBlock("div",Qc,[e.createVNode(e.unref(W.Search),{class:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"}),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":J[0]||(J[0]=ae=>c.value=ae),placeholder:"Пошук",class:"w-full rounded-md border border-gray-200 bg-white pl-10 pr-3 py-2 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-100"},null,512),[[e.vModelText,c.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",ed,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:k,onChange:D,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),r("import")?(e.openBlock(),e.createElementBlock("button",{key:1,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"},[e.createVNode(e.unref(W.Upload),{class:"h-4 w-4 text-gray-700"}),J[4]||(J[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),r("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:H,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(W.Download),{class:"h-4 w-4 text-gray-700"}),J[5]||(J[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),r("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:Oe,type:"button",class:"inline-flex items-center gap-2 rounded-md bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-600 transition-colors"},[e.createVNode(e.unref(W.Plus),{class:"h-4 w-4 text-white"}),J[6]||(J[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",td,[e.createElementVNode("table",nd,[e.createElementVNode("thead",od,[e.createElementVNode("tr",rd,[e.createElementVNode("th",ld,[e.createVNode(e.unref(W.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,ae=>(e.openBlock(),e.createElementBlock("th",{key:ae.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:ue=>Ne(ae),class:"flex items-center gap-1 text-xs font-semibold text-gray-700 hover:text-gray-900 transition-colors"},[e.createElementVNode("span",null,e.toDisplayString(ae.ua||ae.label),1),d.value===(ae.key||ae.name)?(e.openBlock(),e.createElementBlock("span",sd,e.toDisplayString(p.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,ad)]))),128)),J[7]||(J[7]=e.createElementVNode("th",{class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 text-center w-[1%] whitespace-nowrap"}," Дії ",-1))])]),e.createElementVNode("tbody",{class:e.normalizeClass(["divide-y divide-gray-200",{"[&_tr:last-child]:border-0":!f.value}])},[m.value.length===0?(e.openBlock(),e.createElementBlock("td",id,[e.createElementVNode("div",cd,[e.createElementVNode("div",dd,[e.createVNode(Xc,{class:"w-48 mx-auto"}),J[8]||(J[8]=e.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[e.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"Нічого не знайдено"),e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(ae,ue)=>(e.openBlock(),e.createElementBlock("tr",{key:ae.id,"data-row-index":ue,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":h.value===ue,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":f.value===ue}]),draggable:"true",onDragstart:ge=>Z(ue),onDragover:e.withModifiers(ge=>T(ue),["prevent"]),onDrop:ge=>E(ue)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:ge=>w(ge,ue),onPointermove:B,onPointerup:N,onPointercancel:I},[e.createElementVNode("div",md,[e.createVNode(e.unref(W.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,pd),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,ge=>(e.openBlock(),e.createElementBlock("td",{key:ge.key,class:"px-4 py-3 align-middle"},[L(ge)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[ye(ge.slot)?e.renderSlot(O.$slots,ge.slot,{key:0,row:ae,value:ae[ge.key],column:ge}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:xe(ge.slot,ae)},null,8,fd))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[L(ge)==="file"?(e.openBlock(),e.createElementBlock("div",hd,[_(le(ae,ge))?(e.openBlock(),e.createElementBlock("div",gd,[e.createElementVNode("img",{src:le(ae,ge),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,yd)])):(e.openBlock(),e.createElementBlock("div",bd,[e.createVNode(e.unref(W.FileText),{class:"h-4 w-4 min-w-4"})]))])):L(ge)==="color"?(e.openBlock(),e.createElementBlock("div",kd,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:le(ae,ge)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",xd,e.toDisplayString(le(ae,ge)),1))],64))]))),128)),e.createElementVNode("td",wd,[e.createElementVNode("div",_d,[e.createElementVNode("button",{onClick:ge=>ke(ae,ue),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(W.Pencil),{class:"h-4 w-4"})],8,vd),e.createElementVNode("button",{onClick:ge=>ze(ue),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(W.Trash2),{class:"h-4 w-4"})],8,Cd)])])],42,ud))),128))],2)])]),e.createVNode(e.unref(be.VsModal),{visible:ne.value,title:Q.value,size:"lg",onClose:We,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(ct,{schema:se.value,"allow-id-field":"",values:ce.value,"onUpdate:values":J[1]||(J[1]=ae=>ce.value=ae),form:ee.value,"onUpdate:form":J[2]||(J[2]=ae=>ee.value=ae)},null,8,["schema","values","form"]),e.createElementVNode("div",Ed,[e.createElementVNode("button",{type:"button",onClick:J[3]||(J[3]=ae=>ne.value=!1),class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:Ee,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"])]))}}),Bd={},Vd={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 Sd(o,t){return e.openBlock(),e.createElementBlock("svg",Vd,t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M18 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M7.5 16.5l9 -9"},null,-1)]))}const $d=Ce(Bd,[["render",Sd]]),Nd={},Ad={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 Md(o,t){return e.openBlock(),e.createElementBlock("svg",Ad,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M19 8m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M5 11m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M15 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M6.5 9.5l3.5 -3"></path><path d="M14 5.5l3 1.5"></path><path d="M18.5 10l-2.5 7"></path><path d="M13.5 17.5l-7 -5"></path>',9)]))}const Fd=Ce(Nd,[["render",Md]]),Dd={},Td={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 Ld(o,t){return e.openBlock(),e.createElementBlock("svg",Td,t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M8 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M6 8v8"></path><path d="M18 16v-8"></path><path d="M8 6h8"></path><path d="M16 18h-8"></path>',9)]))}const Id=Ce(Dd,[["render",Ld]]);function Od(o,t,n){const r=Math.max(0,Math.min(22,Math.floor(n))),l=2**r,a=Math.floor((o+180)/360*l),s=t*Math.PI/180,i=Math.floor((1-Math.log(Math.tan(s)+1/Math.cos(s))/Math.PI)/2*l);return{z:r,x:a,y:i}}function Rd(o,t){if(typeof o!="string"||!o.trim()||!/\{z\}/i.test(o))return;const n={"{z}":t.z,"{x}":t.x,"{y}":t.y,"{-y}":2**t.z-t.y-1,"{s}":"a"};let r=o;return Object.entries(n).forEach(([l,a])=>{r=r.replace(new RegExp(l.replace(/[{}-]/g,"\\$&"),"gi"),String(a))}),r}const pr=/\/(\d+)\/(\d+)\/(\d+)(\.(?:png|jpe?g|webp))(?:\?.*)?$/i;function mr(o,t){if(typeof o!="string"||!o.trim()||!pr.test(o))return;const n=o.replace(pr,`/${t.z}/${t.x}/${t.y}$4`);return n!==o?n:void 0}function Pd(o,t){if(o?.url){const n=Rd(o.url,t);if(n)return n;const r=mr(o.url,t);if(r)return r}if(o?.preview){const n=mr(o.preview,t);return n||o.preview}}const zd=["title","aria-expanded"],jd=["src"],Ud={class:"map-layers__header"},Hd={class:"map-layers__body"},qd={key:0,class:"map-layers__section"},Kd={class:"map-layers__grid map-layers__grid--4"},Wd=["disabled","title","onClick"],Gd={class:"map-layers__thumb"},Yd=["src"],Xd={class:"map-layers__option-label"},Zd={key:1,class:"map-layers__section"},Jd={class:"map-layers__grid map-layers__grid--4"},Qd=["title","onClick"],eu={class:"map-layers__thumb"},tu=["src"],nu={class:"map-layers__option-label"},ou={key:2,class:"map-layers__section map-layers__section--vector"},ru={class:"map-layers__vector-list"},lu=["checked","disabled","onChange"],$n=.8,au=Ce(e.defineComponent({__name:"map-layers",props:{basemaps:{},activeBaseKey:{},tileOverlays:{},activeTileOverlayKeys:{},vectorOverlays:{},previewTile:{},disabled:{type:Boolean},compact:{type:Boolean}},emits:["onLayerChange","onOverlayToggle","onVectorOverlayToggle"],setup(o,{emit:t}){const n=o,r=t,l=10*$n,a=400*$n,s=400*$n,i=320*$n,c=e.ref(null),d=e.ref(null),p=e.ref(null),m=e.ref(!1),y=e.ref({}),h=e.computed(()=>Object.keys(n.basemaps||{}).length>0),f=e.computed(()=>Object.keys(n.tileOverlays||{}).length>0),k=e.computed(()=>n.vectorOverlays??[]),b=e.computed(()=>k.value.length>0),v=e.computed(()=>h.value||f.value||b.value),w=e.computed(()=>n.basemaps?.[n.activeBaseKey]?.name||n.activeBaseKey||"Шари"),B=e.computed(()=>I(n.basemaps)),N=e.computed(()=>I(n.tileOverlays||{}));function I(P){const Q=n.previewTile;return Q?Object.fromEntries(Object.entries(P).map(([ne,F])=>[String(ne),Pd(F,Q)??F.preview??""])):{}}function Z(P){return B.value[P]||n.basemaps?.[P]?.preview||""}function T(P){return N.value[P]||n.tileOverlays?.[P]?.preview||""}const E=e.computed(()=>Z(n.activeBaseKey));function V(P){return Array.isArray(n.activeTileOverlayKeys)&&n.activeTileOverlayKeys.includes(P)}function _(){const P=d.value;if(!P)return;const Q=P.getBoundingClientRect(),ne=Math.min(a,window.innerWidth-16);let F=Q.left;F+ne>window.innerWidth-8&&(F=window.innerWidth-ne-8),F=Math.max(8,F);const G=Q.top-l-8,L=n.compact?i:s,se=Math.min(L,Math.max(96,G));y.value={position:"fixed",left:`${F}px`,bottom:`${window.innerHeight-Q.top+l}px`,width:`${ne}px`,maxHeight:`${se}px`,zIndex:"10050"}}async function D(){m.value=!m.value,m.value&&(await e.nextTick(),_())}function H(){m.value=!1}function te(P){P!==n.activeBaseKey&&r("onLayerChange",P)}function S(P){n.disabled||r("onOverlayToggle",P)}function R(P){n.disabled||r("onVectorOverlayToggle",P)}function K(P){if(!m.value)return;const Q=P.target;c.value?.contains(Q)||p.value?.contains(Q)||H()}function q(P){P.key==="Escape"&&H()}return e.watch(m,async P=>{P&&(await e.nextTick(),_())}),e.onMounted(()=>{document.addEventListener("click",K),document.addEventListener("keydown",q),window.addEventListener("resize",_),window.addEventListener("scroll",_,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",K),document.removeEventListener("keydown",q),window.removeEventListener("resize",_),window.removeEventListener("scroll",_,!0)}),(P,Q)=>v.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"rootRef",ref:c,class:e.normalizeClass(["map-layers relative",{"map-layers--compact":P.compact}])},[e.createElementVNode("button",{ref_key:"triggerRef",ref:d,type:"button",class:"map-layers__trigger",title:w.value,"aria-haspopup":"dialog","aria-expanded":m.value,onClick:e.withModifiers(D,["stop"])},[E.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:E.value,alt:"",class:"map-layers__trigger-img"},null,8,jd)):e.createCommentVNode("",!0)],8,zd),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"map-layers-panel"},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panelRef",ref:p,class:"map-layers__panel",style:e.normalizeStyle(y.value),role:"dialog","aria-label":"Шари карти"},[e.createElementVNode("header",Ud,[Q[0]||(Q[0]=e.createElementVNode("h3",{class:"map-layers__title"},"Шари карти",-1)),e.createElementVNode("button",{type:"button",class:"map-layers__close","aria-label":"Закрити",onClick:H},[e.createVNode(e.unref(W.X),{class:"map-layers__close-icon"})])]),e.createElementVNode("div",Hd,[f.value?(e.openBlock(),e.createElementBlock("section",qd,[Q[1]||(Q[1]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Додаткові шари",-1)),e.createElementVNode("div",Kd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(P.tileOverlays,(ne,F)=>(e.openBlock(),e.createElementBlock("button",{key:`tile-${F}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":V(String(F))}]),disabled:P.disabled,title:ne.name||String(F),onClick:G=>S(String(F))},[e.createElementVNode("span",Gd,[e.createElementVNode("img",{src:T(String(F)),alt:""},null,8,Yd)]),e.createElementVNode("span",Xd,e.toDisplayString(ne.name||F),1)],10,Wd))),128))])])):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("section",Zd,[Q[2]||(Q[2]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Базові шари",-1)),e.createElementVNode("div",Jd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(P.basemaps,(ne,F)=>(e.openBlock(),e.createElementBlock("button",{key:`base-${F}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":P.activeBaseKey===String(F)}]),title:ne.name||String(F),onClick:G=>te(String(F))},[e.createElementVNode("span",eu,[e.createElementVNode("img",{src:Z(String(F)),alt:""},null,8,tu)]),e.createElementVNode("span",nu,e.toDisplayString(ne.name||F),1)],10,Qd))),128))])])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("section",ou,[Q[3]||(Q[3]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Дані",-1)),e.createElementVNode("div",ru,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,ne=>(e.openBlock(),e.createElementBlock("label",{key:ne.id,class:"map-layers__vector-item"},[e.createElementVNode("input",{type:"checkbox",class:"map-layers__checkbox",checked:ne.visible,disabled:P.disabled,onChange:F=>R(ne.id)},null,40,lu),e.createElementVNode("span",null,e.toDisplayString(ne.label),1)]))),128))])])):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))],2)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-c1206d48"]]),Pt=1e-10,Nn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,su=/^[+-]?\d+(?:\.\d+)?$/;function iu(o,t,n){const r=o.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(r.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(r.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const l=[],a=[];if(r.forEach((d,p)=>{const m=p+1,y=t==="decimal"?cu(d,m,n):hr(d,m,n);if(!y.ok){l.push(...y.errors);return}const h=a[a.length-1];if(h&&yr(h,y.point)){l.push({line:m,message:"Послідовні точки не повинні дублюватися."});return}a.push(y.point)}),l.length)return{ok:!1,errors:l};if(new Set(a.map(uu)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const i=[...a];let c=!1;return yr(i[0],i[i.length-1])||(i.push(i[0]),c=!0),pu(i)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:i,wasClosedAutomatically:c}}function cu(o,t,n){return fr(o,"decimal",n,t)}function fr(o,t,n,r=1){return t==="decimal"?du(o,r,n):hr(o,r,n)}function du(o,t,n){const r=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(o))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const l=o.split(/[\s,;]+/).filter(Boolean);if(l.length<2)return{ok:!1,errors:[{line:t,message:"Кожен рядок має містити дві координати."}]};if(l.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(!l.every(d=>su.test(d)))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const a=Number(l[0]),s=Number(l[1]);if(!Number.isFinite(a)||!Number.isFinite(s))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const i=n==="lat-lon"?a:s,c=n==="lat-lon"?s:a;return(i<-90||i>90)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(c<-180||c>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[c,i]}}function hr(o,t,n){Nn.lastIndex=0;const r=[...o.matchAll(Nn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Nn.lastIndex=0,o.replace(Nn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const a=gr(r[0],t,n==="lat-lon"?"lat":"lon"),s=gr(r[1],t,n==="lat-lon"?"lon":"lat"),i=[];if(a.ok||i.push(a.error),s.ok||i.push(s.error),i.length)return{ok:!1,errors:i};const c=n==="lat-lon"?a.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:a.value,c]}}function gr(o,t,n){const r=Number(o[1]),l=Number(o[2]),a=Number(o[3]),s=String(o[4]).toUpperCase();if(!Number.isFinite(r)||!Number.isFinite(l)||!Number.isFinite(a))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(n==="lat"&&!(s==="N"||s==="S")||n==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:n==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(l<0||l>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(a<0||a>60)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..60."}};const d=Math.abs(r),p=n==="lat"?90:180;if(d>p)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===p&&(l!==0||a!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const m=d+l/60+a/3600;return{ok:!0,value:s==="S"||s==="W"?-m:m}}function uu(o){return`${o[0].toFixed(12)}:${o[1].toFixed(12)}`}function yr(o,t){return Math.abs(o[0]-t[0])<Pt&&Math.abs(o[1]-t[1])<Pt}function pu(o){if(o.length<4)return!1;for(let t=0;t<o.length-1;t+=1){const n=o[t],r=o[t+1];for(let l=t+1;l<o.length-1;l+=1){if(Math.abs(t-l)<=1||t===0&&l===o.length-2)continue;const a=o[l],s=o[l+1];if(mu(n,r,a,s))return!0}}return!1}function mu(o,t,n,r){const l=An(o,t,n),a=An(o,t,r),s=An(n,r,o),i=An(n,r,t);return!!(l!==a&&s!==i||l===0&&Mn(o,n,t)||a===0&&Mn(o,r,t)||s===0&&Mn(n,o,r)||i===0&&Mn(n,t,r))}function An(o,t,n){const r=(t[1]-o[1])*(n[0]-t[0])-(t[0]-o[0])*(n[1]-t[1]);return Math.abs(r)<Pt?0:r>0?1:2}function Mn(o,t,n){return t[0]<=Math.max(o[0],n[0])+Pt&&t[0]+Pt>=Math.min(o[0],n[0])&&t[1]<=Math.max(o[1],n[1])+Pt&&t[1]+Pt>=Math.min(o[1],n[1])}const fu=["title"],hu={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"},gu=["onClick"],yu=["placeholder"],bu={class:"absolute inset-y-0 right-2 flex items-center gap-1"},ku={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},xu={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},wu={class:"max-h-[260px] overflow-auto"},_u={key:0,class:"divide-y divide-gray-100"},vu=["onClick"],Cu={key:1,class:"px-3 py-3 text-xs text-gray-500"},br="formMapSearchAddressHistory",Eu=12,Bu="https://geo.rv.ua/api-user/dzk.api",Vu="https://nominatim.openstreetmap.org/search",Su=Ce(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(o,{emit:t}){const n={mounted(j,C){if(typeof document>"u")return;let A=null;const z=8,ie=()=>{const Pe=String(C?.value??"");if(!Pe)return;A=document.createElement("div"),A.textContent=Pe,Object.assign(A.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(A);const De=j.getBoundingClientRect();A.style.left=`${De.right+window.scrollX+z}px`,A.style.top=`${De.top+window.scrollY+(De.height-A.offsetHeight)/2}px`},_e=()=>{A?.parentNode&&A.parentNode.removeChild(A),A=null};j.addEventListener("mouseenter",ie),j.addEventListener("mouseleave",_e),Object.assign(j,{tooltipRightHandlers:{show:ie,hide:_e}})},unmounted(j){if(typeof document>"u")return;const C=j.tooltipRightHandlers;C&&(j.removeEventListener("mouseenter",C.show),j.removeEventListener("mouseleave",C.hide))}},r=o,l=t,a=e.getCurrentInstance();function s(){return typeof globalThis<"u"&&globalThis.proxy?globalThis.proxy:typeof window<"u"&&window.proxy?window.proxy:null}function i(){const C=a?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(C)return Array.isArray(C)?C.join(","):String(C);const z=s()?.map?.searchViewbox;if(z)return Array.isArray(z)?z.join(","):String(z)}function c(){const C=a?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof C=="string"&&C.trim())return C.trim();const z=s()?.map?.addressSuggest;if(typeof z=="string"&&z.trim())return z.trim()}function d(){if(typeof r.config?.cadastreSuggest=="string"&&r.config.cadastreSuggest.trim())return r.config.cadastreSuggest.trim();const j=a?.appContext.config.globalProperties?.$settings,C=j?.map?.cadastreSuggest??j?.map?.parcelSuggest??j?.map?.parcelSearch;if(typeof C=="string"&&C.trim())return C.trim();const A=s(),z=A?.map?.cadastreSuggest??A?.map?.parcelSuggest??A?.map?.parcelSearch;if(typeof z=="string"&&z.trim())return z.trim()}const p=!!c(),m=!!i(),y=e.computed(()=>{const j=["nominatim","xy","parcel"];return p&&j.unshift("address"),m?j:j.filter(C=>C!=="nominatim")}),h=e.computed(()=>{const j=y.value,C=r.config?.tools?.filter(A=>j.includes(A));return C&&C.length?C:j}),f=e.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),k=e.ref(h.value[0]);e.watch(h,j=>{j.includes(k.value)||(k.value=j[0])});const b=e.ref(""),v=e.ref(!1),w=e.ref(null),B=e.ref(null),N=e.ref(null),I=e.ref(null),Z=e.ref([]),T=e.ref(null),E=e.ref(!1),V=e.ref([]),_=e.computed(()=>(k.value==="address"||k.value==="nominatim")&&E.value),D=e.computed(()=>r.config?.addressDebounceMs??1e3);let H=null;const te=e.ref(!1),S=e.computed(()=>b.value.trim().length>0?Z.value:V.value),R=e.computed(()=>b.value.trim().length?`Знайдено ${Z.value.length}`:"Історія пошуку"),K=e.computed(()=>b.value.trim().length?"Нічого не знайдено":"Історія порожня");function q(){if(typeof window>"u")return[];try{const j=window.localStorage?.getItem?.(br);if(!j)return[];const C=JSON.parse(j);return Array.isArray(C)?C:[]}catch{return[]}}function P(j){typeof window>"u"||window.localStorage?.setItem?.(br,JSON.stringify(j))}function Q(j){const A=[j,...V.value.filter(z=>z.id!==j.id)].slice(0,10);V.value=A,P(A)}const ne=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function F(){if(!I.value)return;const j=I.value.getBoundingClientRect(),C=N.value?.getBoundingClientRect(),A=C?.width??j.width,z=(C?.left??j.left)+window.scrollX,ie=j.bottom+window.scrollY+Eu;ne.left=`${z}px`,ne.top=`${ie}px`,ne.width=`${A}px`,ne.display="block"}const G=()=>{_.value&&F()};function L(){H&&(clearTimeout(H),H=null)}e.watch(k,()=>{b.value="",v.value=!1,Z.value=[],E.value=!1,L(),te.value=!1}),e.watch(_,j=>{j?e.nextTick(()=>{F()}):ne.display="none"}),e.watch(b,j=>{if(k.value!=="address"&&k.value!=="nominatim"){Z.value=[],L();return}if(!j.trim()){Z.value=[],E.value=V.value.length>0,L();return}L(),E.value=!0,H=window.setTimeout(()=>{ae(j).catch(C=>{const A=C?.message||"Помилка пошуку адреси";be.notify({type:"error",title:"Пошук адреси",message:A})})},D.value)});function se(j){const C=[];B.value&&C.push(B.value),j instanceof HTMLElement&&C.push(j),w.value?.querySelectorAll("li")?.forEach(z=>{C.push(z)}),C.forEach(z=>{z.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function ce(j){v.value&&se(j.target),v.value=!v.value}function ee(j,C){se(C?.target),k.value=j}function ye(){b.value="",Z.value=[],E.value=!1,te.value=!1}function Ve(j){const C=j.target;if(v.value){const A=w.value;A&&!A.contains(C)&&(se(C),v.value=!1)}if(_.value){const A=T.value,z=I.value;A&&!A.contains(C)&&(!z||!z.contains(C))&&(E.value=!1)}}e.onMounted(()=>{V.value=q(),window.addEventListener("click",Ve,!0),window.addEventListener("scroll",G,!0),window.addEventListener("resize",G)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",Ve,!0),window.removeEventListener("scroll",G,!0),window.removeEventListener("resize",G),L()});function xe(j){return j==="xy"?"Координати":j==="parcel"?"Кадастр":j==="nominatim"?"Адреса":"Адресний"}function Le(j){switch(j){case"xy":return"Пошук за географічними координатами. Введіть широту і довготу через пробіл або кому (lat lng або lng lat).";case"parcel":return"Пошук земельної ділянки за кадастровим номером у форматі 0000000000:00:000:0000.";case"nominatim":return"Пошук адрес та обʼєктів через Nominatim.";case"address":return"Пошук адрес через локальний сервіс addressSuggest.";default:return""}}function Ne(j){const C=fr(j.trim(),"dms","lat-lon");if(C.ok){const[Ie,Qe]=C.point;return{lat:Qe,lng:Ie}}const A=j.replace(/[,]+/g," ").trim();if(!A)return null;const z=A.split(/\s+/).filter(Boolean);if(z.length<2)return null;const ie=z.slice(0,2).map(Number);if(!ie.every(Ie=>Number.isFinite(Ie)))return null;let[_e,Pe]=ie,De=_e,Ge=Pe;const Y=Ie=>Math.abs(Ie)<=90,pe=Ie=>Math.abs(Ie)<=180;if(!Y(De)||!pe(Ge))if(Y(Ge)&&pe(De))De=Pe,Ge=_e;else return null;return{lat:De,lng:Ge}}function Oe(j){const C=j?.result||j?.data||j;return(Array.isArray(C)?C:C?[C]:[]).map((z,ie)=>{const _e=z?.geom_centroid,Pe=Array.isArray(_e?.coordinates)?_e.coordinates:null;if(!Pe||Pe.length<2)return null;const De=Number(Pe[0]),Ge=Number(Pe[1]);return!Number.isFinite(Ge)||!Number.isFinite(De)?null:{id:String(z?.parcel_id??z?.cad_num??ie),title:z?.cadnum||z?.cad_num||"Земельна ділянка",lat:Ge,lng:De}}).filter(z=>!!z)}function $e(j){return(Array.isArray(j?.features)?j.features:[]).map((A,z)=>{const ie=A?.geometry?.coordinates,_e=Number(ie?.[0]),Pe=Number(ie?.[1]);if(!Number.isFinite(Pe)||!Number.isFinite(_e))return null;const De=A?.properties||{},Ge=De?.geocoding?.label||De?.display_name||De?.label||"Адреса";return{id:String(De?.geocoding?.place_id||De?.place_id||z),title:Ge,lat:Pe,lng:_e}}).filter(A=>!!A)}function oe(j){return Number.isFinite(j.lat)&&Number.isFinite(j.lng)}function le(j){if(j==null||typeof j=="string"&&!j.trim())return null;const C=Number(j);return Number.isFinite(C)?C:null}function ke(j){const C=le(j.lng)??le(j.lon)??le(j.longitude)??le(j.x),A=le(j.lat)??le(j.latitude)??le(j.y);if(C!=null&&A!=null)return{lat:A,lng:C};const z=j?.geometry?.coordinates??j?.geom_centroid?.coordinates??j?.centroid?.coordinates??j?.geojson?.geometry?.coordinates??j?.geom?.coordinates;if(Array.isArray(z)&&z.length>=2){const ie=le(z[0]),_e=le(z[1]);if(ie!=null&&_e!=null)return{lat:_e,lng:ie}}return null}function Ee(j){return(Array.isArray(j?.data)?j.data:[]).map((A,z)=>{const ie=ke(A),_e=String(A.text??A.title??A.label??A.name??A.address??A.display_name??A.id??"Адреса"),Pe=String(A.id??A.code??A.value??z);return ie?{id:Pe,title:_e,...ie}:{id:Pe,title:_e}}).filter(A=>!!A?.title)}function ze(j){const C=d()||Bu;if(C.includes(":id"))return C.replace(":id",encodeURIComponent(j));if(C.includes(":name"))return C.replace(":name",encodeURIComponent(j));try{const A=new URL(C,window.location.origin),z=r.config?.parcelQueryParam?.trim()||"cad_num";return A.searchParams.set(z,j),A.toString()}catch{return C}}function We(j){const C=c();if(!C)return null;if(C.includes(":name"))return C.replace(":name",encodeURIComponent(j));try{const A=new URL(C,window.location.origin);return j.trim()&&A.searchParams.set("q",j),A.toString()}catch{return C}}async function O(j){const C=We(j);if(!C)return[];const A=await fetch(C);if(!A.ok)throw new Error(`HTTP ${A.status}`);const z=await A.json();return Ee(z)}async function J(j){const C=new URL(Vu);C.searchParams.set("format","geojson"),C.searchParams.set("q",j),C.searchParams.set("addressdetails","1"),C.searchParams.set("bounded","1");const A=i();A&&C.searchParams.set("viewbox",A);const z=await fetch(C.toString());if(!z.ok)throw new Error(`HTTP ${z.status}`);const ie=await z.json();return $e(ie)}async function ae(j){if(Z.value=[],L(),k.value==="address"){if(!c()){be.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const z=await O(j);if(!z.length){be.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=z;return}const C=await J(j);if(!C.length){be.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}Z.value=C}async function ue(j){if(oe(j)){Te(j),Q(j);return}be.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function ge(){k.value!=="address"&&k.value!=="nominatim"||(E.value=!0,e.nextTick(()=>{F()}))}function Ae(j){const A=j.replace(/\s+/g,"").split(":");if(A.length!==4)return!1;const z=[10,2,3,4];return A.every((ie,_e)=>ie.length===z[_e]&&/^\d+$/.test(ie))}function Te(j){l("goToCoordinates",[j.lat,j.lng]),te.value=!0}async function Fe(){const j=b.value.trim();if(j){if(k.value==="xy"){const C=Ne(j);if(!C){be.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}Te(C);return}if(k.value==="address"||k.value==="nominatim"){try{await ae(j)}catch(C){const A=C?.message||"Помилка пошуку адреси";be.notify({type:"error",title:"Пошук адреси",message:A})}return}try{if(!Ae(j)){be.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const C=await fetch(ze(j));if(!C.ok)throw new Error(`HTTP ${C.status}`);const A=await C.json(),z=Oe(A);if(!z.length)be.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const ie=z.find(oe);if(!ie){be.notify({type:"warning",title:"Пошук",message:"Геометрія ділянки відсутня"});return}Te(ie)}}catch(C){const A=C?.message||"Помилка пошуку";be.notify({type:"error",title:"Пошук",message:A})}}}return(j,C)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"widgetRef",ref:N,class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},[e.createElementVNode("form",{class:"flex gap-2 text-gray-900",onSubmit:e.withModifiers(Fe,["prevent"])},[h.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:w,class:"relative search-type w-[100px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:ce},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:B,class:"block w-full truncate",title:xe(k.value)},[e.createTextVNode(e.toDisplayString(xe(k.value)),1)],8,fu)),[[n,Le(k.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":v.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},C[3]||(C[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)]),2))]),v.value?(e.openBlock(),e.createElementBlock("div",hu,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,A=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:A,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:z=>ee(A,z)},[e.createTextVNode(e.toDisplayString(xe(A)),1)],8,gu)),[[n,Le(A)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:I,class:"relative flex-1 min-w-[140px]"},[k.value==="parcel"?(e.openBlock(),e.createBlock(gn,{key:0,modelValue:b.value,"onUpdate:modelValue":C[0]||(C[0]=A=>b.value=A),mask:"0000000000:00:000:0000",class:e.normalizeClass(["vs-input !h-[34px] transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",te.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":C[1]||(C[1]=A=>b.value=A),placeholder:f.value,type:"text",class:e.normalizeClass(["vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",te.value?"!pr-14":"!pr-8"]),onFocus:ge},null,42,yu)),[[e.vModelText,b.value,void 0,{trim:!0}]]),e.createElementVNode("div",bu,[te.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Очистити",onClick:ye},C[4]||(C[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)]))):e.createCommentVNode("",!0),C[5]||(C[5]=e.createElementVNode("button",{type:"submit",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-4.35-4.35m0 0A7.5 7.5 0 1 0 5 5a7.5 7.5 0 0 0 11.65 11.65Z"})])],-1))]),_.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref: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:e.normalizeStyle(ne)},[e.createElementVNode("div",ku,[e.createElementVNode("span",xu,e.toDisplayString(R.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:C[2]||(C[2]=A=>E.value=!1)}," ✕ ")]),e.createElementVNode("div",wu,[S.value.length?(e.openBlock(),e.createElementBlock("ul",_u,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.value,A=>(e.openBlock(),e.createElementBlock("li",{key:A.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:z=>ue(A)},e.toDisplayString(A.title),9,vu))),128))])):(e.openBlock(),e.createElementBlock("div",Cu,e.toDisplayString(K.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-4d528cf7"]]),$u={class:"pt-1 border-t border-gray-100"},Nu={class:"space-y-1"},Au=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(o,{emit:t}){const n=t,r=e.ref(null),l=e.ref(null),a=(c,d,p)=>Math.min(Math.max(c,d),p),s=()=>{if(r.value===null||l.value===null||!Number.isFinite(r.value)||!Number.isFinite(l.value))return;const c=a(r.value,-90,90),d=a(l.value,-180,180);n("submit",{lat:c,lng:d}),r.value=null,l.value=null},i=()=>{r.value=null,l.value=null,n("cancel")};return(c,d)=>(e.openBlock(),e.createElementBlock("div",$u,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",Nu,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=p=>r.value=p),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта (50.4501)"},null,512),[[e.vModelText,r.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=p=>l.value=p),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота (30.5234)"},null,512),[[e.vModelText,l.value,void 0,{number:!0}]]),e.createElementVNode("div",{class:"flex gap-1.5"},[e.createElementVNode("button",{class:"flex-1 px-2 py-1 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors",type:"button",onClick:s}," Додати "),e.createElementVNode("button",{class:"px-2 py-1 bg-gray-200 hover:bg-gray-300 text-gray-700 text-xs font-medium rounded transition-colors",type:"button",onClick:i}," Скасувати ")])])]))}}),Mu=e.defineComponent({__name:"BtnAdd",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(W.Plus),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Додати ",-1))]))}}),Fu=e.defineComponent({__name:"BtnClear",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"w-full px-2 py-1.5 bg-rose-500 hover:bg-rose-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(W.Trash2),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Очистити ",-1))]))}}),Du=e.defineComponent({__name:"BtnComplete",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-emerald-500 hover:bg-emerald-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(W.Circle),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode("Замкнути ",-1))]))}}),Tu=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function zt(o){return Tu.format(o)}function kr(o){return o>=1e3?`${zt(o/1e3)} км`:`${zt(o)} м`}const Lu={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},Iu={key:0,class:"flex-1 flex gap-1"},Ou={key:1,class:"flex-1 font-mono text-gray-700"},Ru=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(o,{emit:t}){const n=o,r=t,l=e.computed(()=>`${n.coords.lat.toFixed(4)}°, ${n.coords.lng.toFixed(4)}°`),a=e.ref(!1),s=e.ref(n.coords.lat),i=e.ref(n.coords.lng);e.watch(()=>n.coords,y=>{s.value=y.lat,i.value=y.lng},{deep:!0,immediate:!0});const c=(y,h,f)=>Math.min(Math.max(y,h),f),d=()=>{a.value=!0},p=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(i.value))return;const y=c(s.value,-90,90),h=c(i.value,-180,180);r("update",{id:n.id,coords:{lat:y,lng:h}}),a.value=!1},m=()=>{r("delete",n.id)};return(y,h)=>(e.openBlock(),e.createElementBlock("div",Lu,[e.createVNode(e.unref(W.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),a.value?(e.openBlock(),e.createElementBlock("div",Iu,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=f=>s.value=f),type:"number",step:"0.0001",min:"-90",max:"90",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта"},null,512),[[e.vModelText,s.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[1]||(h[1]=f=>i.value=f),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[e.vModelText,i.value,void 0,{number:!0}]]),e.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:p}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",Ou,e.toDisplayString(l.value),1)),a.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:2,class:"text-blue-500 hover:text-blue-600 px-0.5",type:"button",onClick:d}," ✎ ")),e.createElementVNode("button",{class:"text-rose-500 hover:text-rose-600 px-0.5",type:"button",onClick:m}," ✕ ")]))}}),Pu={class:"ruler-control px-3 py-2.5 space-y-2"},zu={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},ju={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Сумарна довжина всіх відрізків","aria-hidden":"true"},Uu={class:"text-sm font-semibold text-slate-700"},Hu={class:"ruler-row"},qu={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},Ku={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Площа замкнутого контуру","aria-hidden":"true"},Wu={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},Gu=["onClick"],Yu={class:"flex items-center gap-2 mt-0.5 pl-7"},Xu={key:0,class:"text-base font-semibold text-green-600"},Zu={key:1,class:"text-xs text-gray-400"},Ju={class:"ruler-row flex items-center gap-2 cursor-pointer"},Qu={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Список точок","aria-hidden":"true"},ep={class:"text-xs font-medium text-gray-600 flex-1"},tp={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},np=e.defineComponent({__name:"ControlPanel",props:{points:{},isShapeClosed:{type:Boolean}},emits:["update-point","delete-point"],setup(o){const t=o,n=e.ref(!1),r=e.ref("km2"),l=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],a=()=>{n.value=!n.value},s=(f,k)=>{const b=V=>V*Math.PI/180,v=b(k.lat-f.lat),w=b(k.lng-f.lng),B=b(f.lat),N=b(k.lat),I=Math.sin(v/2),Z=Math.sin(w/2);return 6371e3*(2*Math.asin(Math.sqrt(I*I+Math.cos(B)*Math.cos(N)*Z*Z)))},i=e.computed(()=>{if(t.points.length<2)return 0;let f=0;for(let k=1;k<t.points.length;k+=1)f+=s(t.points[k-1].coords,t.points[k].coords);return t.isShapeClosed&&t.points.length>=2&&(f+=s(t.points[t.points.length-1].coords,t.points[0].coords)),f}),c=e.computed(()=>i.value>=1e3?`${zt(i.value/1e3)} км`:`${zt(i.value)} м`);function d(f){if(f.length<3)return 0;const k=f[0].lat,b=f[0].lng,v=(B,N)=>{const I=(B-k)*110574;return{x:(N-b)*111320*Math.cos(k*Math.PI/180),y:I}};let w=0;for(let B=0;B<f.length;B++){const N=(B+1)%f.length,I=v(f[B].lat,f[B].lng),Z=v(f[N].lat,f[N].lng);w+=I.x*Z.y-I.y*Z.x}return Math.abs(w)*.5}const p=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const f=t.points.map(k=>k.coords);return d(f)}),m=e.computed(()=>p.value>0),y=e.computed(()=>{const f=p.value;if(f===0)return"—";if(r.value==="km2"){const b=f/1e6;return`${zt(b)} км²`}if(r.value==="ha"){const b=f/1e4;return`${zt(b)} га`}const k=f>=1?Math.round(f):f;return`${zt(k)} м²`}),h=e.computed(()=>{const f=t.points.length;return f===1?"1 точка":f>=2&&f<=4?`${f} точки`:`${f} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(f,k)=>(e.openBlock(),e.createElementBlock("div",Pu,[e.createElementVNode("button",zu,[e.createElementVNode("span",ju,[e.createVNode(e.unref(W.Info),{size:12,"stroke-width":2.5})]),k[1]||(k[1]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),e.createElementVNode("span",Uu,e.toDisplayString(c.value),1)]),e.createElementVNode("div",Hu,[e.createElementVNode("button",qu,[e.createElementVNode("span",Ku,[e.createVNode(e.unref(W.Info),{size:12,"stroke-width":2.5})]),k[2]||(k[2]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),e.createElementVNode("div",Wu,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,(b,v)=>e.createElementVNode("button",{key:b.id,type:"button",class:e.normalizeClass(["px-2.5 py-1 text-xs font-medium transition-colors border-r border-gray-200 last:border-r-0",v===0&&"rounded-l-md",v===l.length-1&&"rounded-r-md",r.value===b.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(w=>r.value=b.id,["stop"])},e.toDisplayString(b.label),11,Gu)),64))])]),e.createElementVNode("div",Yu,[m.value?(e.openBlock(),e.createElementBlock("span",Xu,e.toDisplayString(y.value),1)):(e.openBlock(),e.createElementBlock("span",Zu,"—"))])]),e.createElementVNode("div",Ju,[e.createElementVNode("span",Qu,[e.createVNode(e.unref(W.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",ep,e.toDisplayString(h.value),1),e.createElementVNode("button",{type:"button",class:"text-xs text-blue-500 hover:text-blue-600 font-medium transition-colors",onClick:e.withModifiers(a,["stop"])}," Координати ")]),n.value?(e.openBlock(),e.createElementBlock("div",tp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.points,(b,v)=>(e.openBlock(),e.createBlock(Ru,{key:b.id,id:b.id,index:v+1,coords:b.coords,onUpdate:k[0]||(k[0]=w=>f.$emit("update-point",w)),onDelete:w=>f.$emit("delete-point",b.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),op={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},rp={class:"flex items-start gap-2"},lp=e.defineComponent({__name:"InfoHint",setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",op,[e.createElementVNode("div",rp,[e.createVNode(e.unref(W.Info),{size:16,"stroke-width":2,class:"text-blue-600 flex-shrink-0 mt-0.5"}),n[0]||(n[0]=e.createElementVNode("div",{class:"space-y-1"},[e.createElementVNode("p",{class:"text-xs font-medium text-blue-900"}," Натискайте на карту, щоб додати точки вимірювання "),e.createElementVNode("p",{class:"text-[10px] text-blue-700"},' Або скористайтесь кнопкою "Додати" внизу для введення координат вручну ')],-1))])]))}}),ap={class:"space-y-1.5"},sp={class:"space-y-1 max-h-40 overflow-y-auto"},ip={class:"text-gray-700"},cp={class:"font-semibold text-slate-800"},dp=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(o){const t=o;function n(a,s){const i=h=>h*Math.PI/180,c=i(s.lat-a.lat),d=i(s.lng-a.lng),p=i(a.lat),m=i(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(c/2)**2+Math.cos(p)*Math.cos(m)*Math.sin(d/2)**2)))}function r(a){return kr(a)}const l=e.computed(()=>{const a=[],s=t.points;if(s.length<2)return a;for(let i=0;i<s.length;i++){const c=i===s.length-1&&t.isShapeClosed?0:i+1;if(c>=s.length)break;const d=n(s[i].coords,s[c].coords);a.push({from:i+1,to:c+1,label:r(d)})}return a});return(a,s)=>(e.openBlock(),e.createElementBlock("div",ap,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",sp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(i,c)=>(e.openBlock(),e.createElementBlock("div",{key:c,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[e.createElementVNode("span",ip,"Точка "+e.toDisplayString(i.from)+" → Точка "+e.toDisplayString(i.to),1),e.createElementVNode("span",cp,e.toDisplayString(i.label),1)]))),128))])]))}}),up={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},pp={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},mp={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},fp={class:"flex items-center gap-2"},hp={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},gp={class:"flex border-b border-gray-200"},yp={key:1,class:"px-3 py-2.5"},bp={key:1,class:"text-xs text-gray-500"},kp={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},xp={class:"flex gap-1.5"},wp=e.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(o,{expose:t,emit:n}){const r=n,l=e.ref([]),a=e.computed(()=>l.value.length>0),s=e.ref(!1),i=e.ref(!1),c=e.ref("general");function d(_){c.value=_,r("tab-change",_)}e.onMounted(()=>{r("tab-change",c.value)});const p=e.computed(()=>l.value.length>=3&&!i.value);let m=1;const y=()=>l.value.map(_=>({id:_.id,coords:{..._.coords}})),h=()=>{l.value.length<3&&i.value&&(i.value=!1,r("shape-closed-change",!1)),r("points-change",y())},f=()=>{const _=m;return m+=1,_},k=_=>{l.value=[...l.value,{id:f(),coords:{lat:_.lat,lng:_.lng}}],h()},b=({id:_,coords:D})=>{const H=l.value.findIndex(S=>S.id===_);if(H===-1)return;const te=[...l.value];te[H]={id:_,coords:{...D}},l.value=te,h()},v=_=>{l.value=l.value.filter(D=>D.id!==_),h()},w=()=>{l.value=[],i.value&&(i.value=!1,r("shape-closed-change",!1)),h()},B=_=>{b(_)},N=_=>{v(_)},I=()=>{s.value=!0,r("add-request")},Z=_=>{k(_),s.value=!1},T=()=>{s.value=!1},E=()=>{p.value&&(i.value=!0,r("complete"),r("shape-closed-change",!0))},V=()=>{w(),s.value=!1,r("close")};return t({addPoint:k,clearPoints:w}),(_,D)=>(e.openBlock(),e.createElementBlock("div",up,[e.createElementVNode("div",pp,[e.createElementVNode("div",mp,[e.createElementVNode("div",fp,[e.createElementVNode("div",hp,[e.createVNode(e.unref(W.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),D[2]||(D[2]=e.createElementVNode("h3",{class:"text-white font-semibold text-xs"},"Вимірювання",-1))]),e.createElementVNode("button",{class:"w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors","aria-label":"Закрити",onClick:V},[e.createVNode(e.unref(W.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",gp,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:D[0]||(D[0]=H=>d("general"))}," Загальна ",2),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",c.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:D[1]||(D[1]=H=>d("topoint"))}," До точки ",2)]),c.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[a.value?(e.openBlock(),e.createBlock(np,{key:1,points:l.value,"is-shape-closed":i.value,onUpdatePoint:B,onDeletePoint:N},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(lp,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",yp,[a.value?(e.openBlock(),e.createBlock(dp,{key:0,points:l.value,"is-shape-closed":i.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",bp,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",kp,[e.createElementVNode("div",xp,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Mu,{key:0,onClick:I})),p.value?(e.openBlock(),e.createBlock(Du,{key:1,onClick:E})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(Au,{key:0,onSubmit:Z,onCancel:T})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Fu,{key:1,onClick:w})):e.createCommentVNode("",!0)])])]))}}),nt="ruler-points",Ct="ruler-line",Et="ruler-polygon",Bt="ruler-segments",_p=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(o){function t(f,k){const b=Z=>Z*Math.PI/180,v=b(k.lat-f.lat),w=b(k.lng-f.lng),B=b(f.lat),N=b(k.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(v/2)**2+Math.cos(B)*Math.cos(N)*Math.sin(w/2)**2)))}function n(f){return kr(f)}const r=o;function l(){return{type:"FeatureCollection",features:[]}}function a(f,k,b){const v=b??"general",w=[];let B=0;w.push(0);for(let N=1;N<f.length;N++)B+=t(f[N-1].coords,f[N].coords),w.push(B);return k&&f.length>=2&&(B+=t(f[f.length-1].coords,f[0].coords)),{type:"FeatureCollection",features:f.map((N,I)=>{const Z=v==="general"?I===0?"0":n(w[I]):I===0?"0":n(t(f[I-1].coords,f[I].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[N.coords.lng,N.coords.lat]},properties:{id:N.id,index:I+1,label:Z}}})}}function s(f,k){if(f.length<2)return l();const b=[];for(let v=0;v<f.length;v++){const w=v===f.length-1&&k?0:v+1;if(w>=f.length)break;const B=f[v].coords,N=f[w].coords,I=t(B,N);b.push({type:"Feature",geometry:{type:"LineString",coordinates:[[B.lng,B.lat],[N.lng,N.lat]]},properties:{distance:n(I)}})}return{type:"FeatureCollection",features:b}}function i(f,k){if(f.length<2)return l();const b=f.map(v=>[v.coords.lng,v.coords.lat]);return k&&b.push(b[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:b},properties:{}}]}}function c(f){if(f.length<3)return l();const k=f.map(b=>[b.coords.lng,b.coords.lat]);return k.push(k[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[k]},properties:{}}]}}let d=!1;function p(f){f.getSource(nt)||(f.addSource(nt,{type:"geojson",data:l()}),f.addLayer({id:`${nt}-circle`,type:"circle",source:nt,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),f.addLayer({id:`${nt}-labels`,type:"symbol",source:nt,layout:{"text-field":["get","label"],"text-size":14,"text-offset":[0,1.3]},paint:{"text-color":"#0f172a","text-halo-color":"#ffffff","text-halo-width":1}})),f.getSource(Bt)||(f.addSource(Bt,{type:"geojson",data:l()}),f.addLayer({id:`${Bt}-labels`,type:"symbol",source:Bt,layout:{"text-field":["get","distance"],"text-size":13,"symbol-placement":"line-center","text-rotation-alignment":"map","text-pitch-alignment":"map"},paint:{"text-color":"#1e293b","text-halo-color":"#ffffff","text-halo-width":1.5}})),f.getSource(Ct)||(f.addSource(Ct,{type:"geojson",data:l()}),f.addLayer({id:`${Ct}-layer`,type:"line",source:Ct,paint:{"line-color":"#3b82f6","line-width":2}})),f.getSource(Et)||(f.addSource(Et,{type:"geojson",data:l()}),f.addLayer({id:`${Et}-layer`,type:"fill",source:Et,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function m(f){if(f){try{f.getLayer(`${Et}-layer`)&&f.removeLayer(`${Et}-layer`),f.getSource(Et)&&f.removeSource(Et),f.getLayer(`${Ct}-layer`)&&f.removeLayer(`${Ct}-layer`),f.getSource(Ct)&&f.removeSource(Ct),f.getLayer(`${Bt}-labels`)&&f.removeLayer(`${Bt}-labels`),f.getSource(Bt)&&f.removeSource(Bt),f.getLayer(`${nt}-labels`)&&f.removeLayer(`${nt}-labels`),f.getLayer(`${nt}-circle`)&&f.removeLayer(`${nt}-circle`),f.getSource(nt)&&f.removeSource(nt)}catch{}d=!1}}function y(f){if(!f)return;const k=f.getSource(nt),b=f.getSource(Ct),v=f.getSource(Et),w=f.getSource(Bt),B=r.points,N=r.labelMode??"general";k&&k.setData(a(B,r.isShapeClosed,N)),b&&b.setData(i(B,r.isShapeClosed)),v&&v.setData(c(B)),w&&w.setData(N==="topoint"?s(B,r.isShapeClosed):l())}function h(){const f=r.map;f&&(d||p(f),y(f))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>h(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>h(),{immediate:!0}),e.onBeforeUnmount(()=>{m(r.map)}),(f,k)=>null}});function vp(o={}){const t=e.ref(!1),n=e.ref([]),r=e.ref(!1),l=e.ref("general"),a=e.ref(null);function s(){t.value?i():(t.value=!0,o.onActivate?.())}function i(){t.value=!1,n.value=[],r.value=!1,a.value?.clearPoints(),o.onDeactivate?.()}function c(h){n.value=h}function d(h){l.value=h}function p(h){r.value=h}function m(h){t.value&&a.value?.addPoint({lat:h.lat,lng:h.lng})}const y=e.computed(()=>n.value.length>0);return{isRulerActive:t,rulerPoints:n,rulerShapeClosed:r,rulerActiveTab:l,rulerPanelRef:a,hasRulerPoints:y,toggleRuler:s,closeRuler:i,onRulerPointsChange:c,onRulerTabChange:d,onRulerShapeClosedChange:p,handleRulerMapClick:m}}const Cp={class:"vs-map-body"},Ep={key:0,class:"absolute top-2 left-2 z-[1000] w-[calc(100%-16px)] sm:w-[320px]"},Bp={key:1,class:"form-geom__panel flex items-center gap-1 mt-1"},Vp={class:"flex items-center gap-1"},Sp=["disabled"],$p={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"},Np=["disabled"],Ap=["disabled"],Mp={class:"mt-4 flex justify-end gap-2"},Fp=["disabled"],Dp={class:"vs-map-controls vs-map-controls--tr"},Tp={class:"vs-map-toolbar"},Lp=["disabled"],Ip=["disabled"],Op=["disabled"],Rp=["disabled"],Pp={key:1,class:"vs-map-toolbar__divider"},zp={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"},jp={class:"space-y-0.5"},Up={class:"text-gray-500"},Hp={class:"text-gray-900 text-right break-all"},qp={class:"absolute left-2 bottom-2 z-[1000]"},Kp={key:0,class:"vs-map-status"},Wp={class:"form-geom__feature vs-map-status__inner"},Gp={class:"vs-map-status__type"},Yp={class:"vs-map-status__values"},Xp=["onClick","disabled"],Zp={key:1,class:"vs-map-status__chip"},Jp={key:2,class:"vs-map-status__sep"},Qp={key:1,class:"vs-map-status__chip"},em={class:"vs-map-status__meta"},tm={class:"vs-map-status__coords"},nm={key:0,class:"vs-map-status__value"},om={key:1,class:"vs-map-status__value"},rm={key:0,class:"vs-map-status__area"},lm={class:"vs-map-status__value"},am={class:"vs-map-status__actions"},sm=["disabled"],im=["disabled"],cm=11,dm=15,um=.7,pm="vs-tile-ov-src-",mm="vs-tile-ov-raster-",Fn="__vs_form_maplibre_loader__",Dn="vs-global-bounds-src",Wt="vs-global-bounds-line",xr="rasterLayer",wr=Ce(e.defineComponent({__name:"vs-input-map",props:{tools:{},multi:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},handleZoom:{type:Boolean,default:!0},ctrlZoom:{type:Boolean,default:!0},geomType:{default:()=>[]},prefix:{default:""},katottg:{default:""},layers:{default:()=>[]},bounds:{},api:{},center:{default:void 0},zoom:{default:void 0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue","valueSelected"],setup(o,{emit:t}){const n=o,r=t,l=e.useAttrs(),a=e.computed(()=>{const u=l?.multiple,g=l?.multi,x=$=>$===""||$===!0||$==="true"||$===1||$==="1";return!!n.multi||!!n.multiple||x(g)||x(u)}),s=e.computed(()=>!!n.disabled),i=e.ref(!1),c=e.ref(null),d=e.ref(0),p=e.ref(""),m=e.ref(null),y=e.ref([]),h=e.ref(null),f=e.ref(null),k=vp({onActivate(){if(pe)try{pe.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""},onDeactivate(){}});function b(){k.toggleRuler()}const v=e.getCurrentInstance(),w=v?.appContext?.config?.globalProperties?.$settings??{},B=w?.map??{},N=v?.vnode?.props??{};function I(u){return Object.prototype.hasOwnProperty.call(N,u)||Object.prototype.hasOwnProperty.call(N,u.replace(/[A-Z]/g,g=>`-${g.toLowerCase()}`))}const Z=Array.isArray(B.center)&&B.center.length===2?B.center:Array.isArray(w.center)&&w.center.length===2?w.center:[30,50],T=typeof B.zoom=="number"?B.zoom:typeof w.zoom=="number"?w.zoom:typeof w.defaultZoom=="number"?w.defaultZoom:10;function E(u){if(u!=null){if(Array.isArray(u)&&u.length>=2){const g=Number(u[0]),x=Number(u[1]);return!Number.isFinite(g)||!Number.isFinite(x)?void 0:[g,x]}if(typeof u=="object"){const g=u,x=g.geom;if(g.type==="Point"&&Array.isArray(g.coordinates)){const X=g.coordinates,de=Number(X[0]),me=Number(X[1]);if(Number.isFinite(de)&&Number.isFinite(me))return[de,me]}if(x?.type==="Point"&&Array.isArray(x.coordinates)){const X=x.coordinates,de=Number(X[0]),me=Number(X[1]);if(Number.isFinite(de)&&Number.isFinite(me))return[de,me]}const $=Number(g.lat),M=Number(g.lng??g.lon);if(Number.isFinite($)&&Number.isFinite(M))return[M,$]}}}const V=e.computed(()=>{const u=E(n.center);if(u)return u;if(!I("center"))return E(B.center)??E(w.center)}),_=e.computed(()=>I("zoom")?n.zoom:B.zoom??n.zoom),D=e.computed(()=>I("katottg")?String(n.katottg??""):String(B.katottg??n.katottg??"")),H=e.computed(()=>I("layers")?n.layers??[]:B.layers??n.layers??[]),te=e.computed(()=>I("bounds")?n.bounds:B.bounds??n.bounds),S=e.ref(Array.isArray(V.value)&&V.value.length===2?[...V.value]:Z),R=e.ref(typeof _.value=="number"?_.value:T),K=e.ref(null);let q=null;function P(u){const g=typeof u=="number"&&Number.isFinite(u)?u:R.value;return Math.min(dm,Math.max(cm,Math.round(g)))}function Q(u,g,x){if(!Number.isFinite(u)||!Number.isFinite(g))return;const $=Od(u,g,P(x)),M=K.value;M&&M.z===$.z&&M.x===$.x&&M.y===$.y||(K.value=$)}function ne(){if(Y){const u=Y.getCenter?.(),g=Y.getZoom?.();if(u&&Number.isFinite(g)){Q(u.lng,u.lat,g);return}}Array.isArray(S.value)&&S.value.length===2&&Q(S.value[0],S.value[1])}function F(){q&&clearTimeout(q),q=setTimeout(()=>{q=null,ne()},120)}Q(S.value[0],S.value[1]);const G=e.ref(n.modelValue),L=e.ref(null),se=e.ref(null),ce=e.ref([]),ee=e.ref(!1),ye=e.ref(!1),Ve=e.ref([]),xe=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),Le={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
|
|
1
|
+
(function(xe,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@opengis/core"),require("lucide-vue-next")):typeof define=="function"&&define.amd?define(["exports","vue","@opengis/core","lucide-vue-next"],e):(xe=typeof globalThis<"u"?globalThis:xe||self,e(xe.FormBuilder={},xe.Vue,xe.OpenGISCore,xe.lucide))})(this,(function(xe,e,be,J){"use strict";function kn(n,t,o){if(!Array.isArray(o)||!o.length)return null;const r=String(n?.preset??n?.renderer??"").trim().toLowerCase();if(r){const l=o.find(a=>String(a.id).trim().toLowerCase()===r);if(l)return l}return o.find(l=>typeof l.match=="function"&&l.match(n,t))??null}function Ho(n,t,o){return!!kn(n,t,o)}const qo=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(n){const t=n,o=e.ref(!1),r=e.ref({top:"0px",left:"0px"});function l(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();r.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},o.value=!0}function a(){o.value=!1}return(s,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:l,onMouseleave:a},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(J.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[o.value&&n.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(r.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none"},e.toDisplayString(n.text),5)):e.createCommentVNode("",!0)]))],64))}}),Jn={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"}}},Qn={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:"Скасувати"}}},Pl={class:"w-full relative"},Rl={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},zl={class:"opacity-100"},jl={key:0,class:"text-red-500 text-[14px]"},Ul={key:2,class:"text-[11px] text-slate-500 font-normal"},Hl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ql=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(n){const t=n,o=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),r=e.computed(()=>!!o.value),l=e.computed(()=>!!t.item?.rules?.includes("required")),a=e.computed(()=>t.item?.info||""),s=e.inject("schema-by-name"),c={en:Jn?.form?.autofillFrom,uk:Qn?.form?.autofillFrom},i=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const p=String(t.item?.__locale||"uk"),m=String(d.parentField),y=s?.value?.[m],h=y?.[`label:${p}`]||(p!=="uk"?y?.[p]:void 0)||y?.label||y?.ua||y?.en||m;return`${c[p]||c.uk}: ${h}`});return(d,p)=>(e.openBlock(),e.createElementBlock("div",Pl,[r.value?(e.openBlock(),e.createElementBlock("div",Rl,[e.createElementVNode("span",zl,e.toDisplayString(o.value),1),l.value?(e.openBlock(),e.createElementBlock("span",jl,"*")):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(qo,{key:1,text:a.value},null,8,["text"])):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",Ul," ("+e.toDisplayString(i.value)+") ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.mergeProps(d.$attrs,{class:{"opacity-60":n.item.disabled}})),n.error?(e.openBlock(),e.createElementBlock("span",Hl,e.toDisplayString(n.error),1)):e.createCommentVNode("",!0)]))}}),Kl={class:"w-full relative flex flex-row items-center gap-2"},Wl={key:0,class:"text-red-500 text-[14px]"},Gl={key:2,class:"text-[11px] text-slate-500 font-normal"},Yl={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Xl=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(n){const t=n,o=e.computed(()=>t.item?.label||t.label||t.ua),r=e.computed(()=>t.item?.info||""),l=e.inject("schema-by-name"),a={en:Jn?.form?.autofillFrom,uk:Qn?.form?.autofillFrom},s=e.computed(()=>{const y=t.item?.__autoMeta;if(!y||y?.source!=="parent-auto"||!y?.parentField)return"";const h=String(t.item?.__locale||"uk"),f=String(y.parentField),x=l?.value?.[f],b=x?.[`label:${h}`]||(h!=="uk"?x?.[h]:void 0)||x?.label||x?.ua||x?.en||f;return`${a[h]||a.uk}: ${b}`}),c=e.computed(()=>t.columns??{container:12,label:3}),i=e.computed(()=>{const{container:y,label:h}=c.value;return!y||y<=0?0:Math.min(Math.max(h??0,0),y)/y}),d=e.computed(()=>t.item?.type==="html"||i.value<=0?!1:!!o.value),p=e.computed(()=>{if(!d.value)return{};const y=`${i.value*100}%`;return{flexBasis:y,maxWidth:y}}),m=e.computed(()=>{const{container:y,label:h}=c.value;if(!y||y<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const f=Math.max(y-Math.max(h??0,0),0)/y;if(!f)return{};const x=`${f*100}%`;return{flexBasis:x,maxWidth:x}});return(y,h)=>(e.openBlock(),e.createElementBlock("div",Kl,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(p.value)},[e.createTextVNode(e.toDisplayString(o.value)+" ",1),n.item?.rules?.includes("required")&&o.value?(e.openBlock(),e.createElementBlock("span",Wl,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(qo,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",Gl," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(m.value)},[e.renderSlot(y.$slots,"default",e.normalizeProps(e.guardReactiveProps(y.$attrs)))],4),n.error?(e.openBlock(),e.createElementBlock("span",Yl,e.toDisplayString(n.error),1)):e.createCommentVNode("",!0)]))}}),Zl={class:"w-full relative"},Jl={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},Ql=e.defineComponent({__name:"vs-layout-inline",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(n){return(t,o)=>(e.openBlock(),e.createElementBlock("div",Zl,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),n.error?(e.openBlock(),e.createElementBlock("span",Jl,e.toDisplayString(n.error),1)):e.createCommentVNode("",!0)]))}}),ea={class:"flex-1 min-w-0"},ta={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},na={class:"truncate"},oa={key:0,class:"text-red-500 text-[14px]"},ra=["innerHTML"],la={key:0,class:"mt-1 text-xs text-red-500"},aa={default:ql,horizontal:Xl,inline:Ql,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(n){const t=n,o=e.ref("uk");e.computed(()=>(t.item??{})?.[o.value]??t.ua??t.label??"");const r=e.computed(()=>t.item?.description??""),l=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),a=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const c=typeof localStorage<"u"?localStorage.getItem("locale"):null;o.value=c||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(o.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":n.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(n.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",ea,[n.ua||n.label?(e.openBlock(),e.createElementBlock("p",ta,[e.createElementVNode("span",na,e.toDisplayString(n.item[o.value]||n.ua||n.label),1),l.value?(e.openBlock(),e.createElementBlock("span",oa,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("p",{key:1,class:"text-xs text-slate-500 dark:text-slate-400",innerHTML:r.value},null,8,ra)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(n.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(c.$attrs)))],2)],2),a.value?(e.openBlock(),e.createElementBlock("p",la,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)],2))}})};function Je(n){return{inputClass:e.computed(()=>{const o=`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"?`${o}h-[32px]`:`${o}h-[38px]`})}}const sa=["placeholder","disabled"],ia=e.defineComponent({__name:"vs-input-password",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,{inputClass:o}=Je(t.style),r=e.useModel(n,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");return(s,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),placeholder:a.value,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(o),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,sa)),[[e.vModelText,r.value]])}}),ca=["placeholder","disabled","maxlength","minlength"],qt=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,{inputClass:o}=Je(t.style),r=e.useModel(n,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),c=e.computed(()=>t.minlength??void 0);function i(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,p)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":p[0]||(p[0]=m=>r.value=m),placeholder:a.value,disabled:l.value,maxlength:s.value,minlength:c.value,onBlur:i,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[n.customClass,e.unref(o),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,ca)),[[e.vModelText,r.value]])}}),da=["step","placeholder","disabled","min","max"],Ko=e.defineComponent({__name:"vs-input-number",props:e.mergeModels({style:{type:Object,default:()=>({})},placeholder:{type:String,default:""},disabled:{type:Boolean,default:!1},min:{type:Number,default:void 0},max:{type:Number,default:void 0},step:{type:[Number,String],default:void 0}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,{inputClass:o}=Je(t.style),r=e.useAttrs(),l=e.useModel(n,"modelValue"),a=e.computed(()=>!!t.disabled),s=p=>{if(p==null||p==="")return;const m=typeof p=="string"?p.trim().replace(",","."):p,y=Number(m);return Number.isFinite(y)?y:void 0},c=e.computed(()=>s(t.min??r.min)),i=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const p=r.step;return typeof p=="number"||typeof p=="string"?p:"any"});return(p,m)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":m[0]||(m[0]=y=>l.value=y),placeholder:n.placeholder,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(o)]]),style:{border:"1px solid #CFD9E0"},min:c.value,max:i.value},null,10,da)),[[e.vModelText,l.value]])}}),xn=n=>!!String(n??"").trim(),Nt=n=>n?.color?String(n.color):"",Jt=n=>{const t=n?.icon;if(typeof t=="string")return t;const o=n?.imgUrl;return typeof o=="string"?o:""},Qt=n=>{const t=n?.icon;return t&&typeof t!="string"?t:null},ua={class:"flex items-center gap-[4px]"},pa=["value","id","disabled"],ma=["for"],fa=["innerHTML"],ha={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},ga=["src"],ya=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(n,{emit:t}){const o=t,r=n,l=e.computed({get:()=>r.modelValue,set:h=>o("update:modelValue",h)}),a=e.computed(()=>!!r.disabled),s=e.computed(()=>Jt(r.option)),c=e.computed(()=>Qt(r.option)),i=e.computed(()=>Nt(r.option)),d=e.computed(()=>!!(i.value&&!s.value&&!c.value)),p=e.computed(()=>!!(s.value&&i.value)),m=e.computed(()=>i.value?{color:i.value}:void 0),y=e.computed(()=>{if(!(!s.value||!i.value))return{backgroundColor:i.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(h,f)=>(e.openBlock(),e.createElementBlock("div",ua,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:n.value,"onUpdate:modelValue":f[0]||(f[0]=x=>l.value=x),class:e.normalizeClass(["shrink-0 border border-solid hidden border-gray-700 w-3.5 h-3.5 rounded text-blue-600 focus:ring-offset-0 dark:bg-neutral-800 dark:border-neutral-700 cursor-pointer",{"!cursor-not-allowed":a.value}]),id:n.id,disabled:a.value},null,10,pa),[[e.vModelCheckbox,l.value]]),e.createElementVNode("label",{for:n.id,class:e.normalizeClass(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300",{"!cursor-not-allowed":a.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[l.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",n.error?"border-red-600":""]])},[e.createVNode(e.unref(J.Check),{class:"h-4 w-4"})],2),n.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:n.html},null,8,fa)):(e.openBlock(),e.createElementBlock("span",ha,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:i.value})},null,4)):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(y.value)},null,4)):s.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:s.value,alt:"icon"},null,8,ga)):c.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(m.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(h.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.label),1)])]))],10,ma)]))}}),ba=["name","value","disabled"],ka=["innerHTML"],xa={key:1,class:"flex items-center gap-[6px] text-[14px]"},wa={key:2,class:"text-[16px] inline-flex items-center justify-center"},va=["src"],Ca=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(n,{emit:t}){const o=n,r=t,l=e.computed({get:()=>o.modelValue,set:x=>{r("update:modelValue",x)}}),a=e.computed(()=>Array.isArray(l.value)?l.value.includes(o.value):l.value===!0||l.value===o.value),s=e.computed(()=>o.style?.size==="xs"?"p-1.5 text-xs":o.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),c=e.computed(()=>({...o.option??{},icon:o.option?.icon??o.icon,imgUrl:o.option?.imgUrl??o.imgUrl,color:o.option?.color})),i=e.computed(()=>Jt(c.value)),d=e.computed(()=>Qt(c.value)),p=e.computed(()=>Nt(c.value)),m=e.computed(()=>!!(p.value&&!i.value&&!d.value)),y=e.computed(()=>!!(i.value&&p.value)),h=e.computed(()=>p.value?{color:p.value}:void 0),f=e.computed(()=>{if(!(!i.value||!p.value))return{backgroundColor:p.value,WebkitMaskImage:`url(${i.value})`,maskImage:`url(${i.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(x,b)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["group relative flex justify-center items-center gap-x-3 text-center bg-white text-gray-800 ring-ring ring-2 cursor-pointer rounded-lg",[s.value,a.value?"ring-blue-500":"border border-gray-200 ring-transparent"]])},[e.withDirectives(e.createElementVNode("input",{type:"checkbox",class:"hidden",name:n.id,value:n.value,"onUpdate:modelValue":b[0]||(b[0]=E=>l.value=E),disabled:n.disabled},null,8,ba),[[e.vModelCheckbox,l.value]]),n.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:n.html},null,8,ka)):(e.openBlock(),e.createElementBlock("span",xa,[m.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:p.value})},null,4)):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(f.value)},null,4)):i.value||d.value?(e.openBlock(),e.createElementBlock("span",wa,[i.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:i.value,width:"16",height:"16",alt:"icon"},null,8,va)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(h.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(x.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(n.label),1)])]))],2))}}),Ea={class:"flex items-center"},eo=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(n,{emit:t}){const o=n,r=t,l=`radio-${Math.floor(Math.random()*1e4)}`,a=e.computed({get:()=>Array.isArray(o.modelValue)?Array.isArray(o.modelValue)&&o.modelValue.includes(o.value):o.modelValue,set:c=>{if(Array.isArray(o.modelValue)){let i=[...o.modelValue];c?i.includes(o.value)||i.push(o.value):i=i.filter(d=>d!==o.value),r("update:modelValue",i)}else r("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${o.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Ea,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(Ca):e.unref(ya)),{value:n.value,label:n.label,html:n.labelHtml,info:n.option?.info,disabled:n.disabled,modelValue:a.value,"onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),id:l,icon:n.icon,imgUrl:n.imgUrl,option:n.option,style:e.normalizeStyle(n.style),error:n.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),_a={key:0,class:"flex items-start gap-x-1"},Ba={key:0,class:"text-red-500 text-[14px]"},Va=["title"],Sa=["disabled"],to=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useModel(n,"modelValue");return(r,l)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",_a,[e.createVNode(eo,{modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=a=>o.value=a),error:n.error||""},null,8,["modelValue","error"]),n.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Ba,"*")):e.createCommentVNode("",!0),n.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:n.i,onClick:l[1]||(l[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(J.Info),{class:"h-4 w-4 text-gray-500"})],8,Va)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[o.value?`bg-${n.style?.primaryColor||"blue"}-500`:"bg-stone-200",n.customClass]]),disabled:n.disabled,onClick:l[2]||(l[2]=a=>o.value=!o.value)},[e.createElementVNode("span",{"data-state":"checked",class:e.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[o.value?"translate-x-4":"translate-x-0"]])},null,2)],10,Sa))}}),$a=["id","innerHTML"],no=e.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(t,o)=>(e.openBlock(),e.createElementBlock("div",{id:n.name,class:e.normalizeClass(["text-gray-900",n.customClass]),innerHTML:n.html?n.html:n.text},null,10,$a))}}),Aa=["placeholder","disabled","name"],wn=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,{inputClass:o}=Je(t.style),r=e.useModel(n,"modelValue"),l=e.ref(null);let a=null;function s(c){const i=c==null?"":String(c),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let m=!1;for(let h=0;h<i.length;h+=1){const f=i[h];f==="{"?m=!0:f==="}"?m=!1:m&&p.add(f)}const y={};return Object.keys(d).forEach(h=>{p.has(h)||(y[h]=d[h])}),{mask:i,definitions:y,lazy:!1}}return e.onMounted(async()=>{if(l.value){const{default:c}=await Promise.resolve().then(()=>Wn),i=s(t.mask||"");a=c(l.value,i),a.on("accept",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.on("complete",()=>{r.value=t.unmask?a.unmaskedValue:a.value}),a.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{a?.destroy()}),e.watch(()=>t.mask,c=>{if(a){const i=s(c||"");a.updateOptions(i)}}),e.watch(r,c=>{a&&a.unmaskedValue!==c&&(a.value=c!=null?String(c):"")}),(c,i)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:l,placeholder:n.placeholder,disabled:n.disabled,name:n.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(o)]]),style:{border:"1px solid #CFD9E0"}},null,10,Aa))}}),Na={class:"relative w-full bg-white rounded-lg"},Ma={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Fa=["placeholder","disabled"],oo=e.defineComponent({__name:"vs-input-email",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,{inputClass:o}=Je(t.style),r=e.useModel(n,"modelValue");return(l,a)=>(e.openBlock(),e.createElementBlock("div",Na,[e.createElementVNode("div",Ma,[e.createVNode(e.unref(J.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":a[0]||(a[0]=s=>r.value=s),placeholder:n.placeholder,disabled:n.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(o),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Fa),[[e.vModelText,r.value]])]))}}),Ct="+99(999)-999-99-99";function Mt(n){if(!n?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let o=!1,r=0;for(let l=0;l<n.length;l+=1){const a=n[l];if(a==="{"){o=!0;continue}if(a==="}"){o=!1;continue}!o&&t.has(a)&&(r+=1)}return r}const Da={class:"relative w-full bg-white rounded-lg"},Ta={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},La=["name","placeholder","disabled","pattern"],ro=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:Ct}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.computed(()=>`^\\+[1-9]\\d{${(Mt(t.mask||Ct)||Mt(Ct))-1}}$`),{inputClass:r}=Je(t.style),l=e.useModel(n,"modelValue"),a=e.ref(null);let s=null;function c(p){const m={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},y=new Set;let h=!1;for(let x=0;x<p.length;x+=1){const b=p[x];b==="{"?h=!0:b==="}"?h=!1:h&&y.add(b)}const f={};return Object.keys(m).forEach(x=>{y.has(x)||(f[x]=m[x])}),{mask:p,definitions:f,lazy:!1,disabled:t.disabled}}function i(p){if(p==null||p==="")return"";const m=String(p).trim();return m?m.replace(/\D/g,""):""}function d(){if(!s)return;const p=s.unmaskedValue??"";l.value=p?`+${p}`:""}return e.onMounted(async()=>{if(!a.value)return;const{default:p}=await Promise.resolve().then(()=>Wn),m=c(t.mask||"");s=p(a.value,m),s.on("accept",d),s.on("complete",d);const y=i(l.value);s.unmaskedValue=y}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,p=>{s&&s.updateOptions(c(p||""))}),e.watch(()=>t.disabled,p=>{s&&s.updateOptions({disabled:p})}),e.watch(l,p=>{if(!s)return;const m=i(p);s.unmaskedValue!==m&&(s.unmaskedValue=m)}),(p,m)=>(e.openBlock(),e.createElementBlock("div",Da,[e.createElementVNode("div",Ta,[e.createVNode(e.unref(J.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:a,type:"tel",name:n.name,placeholder:n.placeholder,disabled:n.disabled,pattern:o.value,title:"Міжнародний номер (E.164), наприклад +380XXXXXXXXX",autocomplete:"tel",class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(r),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,La)]))}}),Ia=["value","disabled"],Oa=["innerHTML"],Pa={key:1,class:"flex items-center gap-2"},Ra=["src"],za={class:"text-[13px] text-gray-700"},ja=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useModel(n,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Jt(t.option)),a=e.computed(()=>Qt(t.option)),s=e.computed(()=>Nt(t.option)),c=e.computed(()=>!!(s.value&&!l.value&&!a.value)),i=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),p=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(m,y)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=h=>o.value=h),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Ia),[[e.vModelRadio,o.value]]),e.createElementVNode("span",{class:e.normalizeClass(["w-[16px] shrink-0 h-[16px] border rounded-full flex items-center justify-center mr-[10px]",[`border-${t.style?.primaryColor||"blue"}-500`,r.value?"opacity-50 cursor-not-allowed":""]])},[o.value==t.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["w-[12px] h-[12px] shrink-0 rounded-full",[`bg-${t.style?.primaryColor||"blue"}-500`]])},null,2)):e.createCommentVNode("",!0)],2),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Oa)):(e.openBlock(),e.createElementBlock("div",Pa,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(p.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,Ra)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",za,e.toDisplayString(t.text),1)]))],2))}}),Ua=["value","disabled"],Ha=["innerHTML"],qa={key:1,class:"flex items-center gap-2"},Ka=["src"],Wa={class:"text-[13px] text-gray-700"},Ga={"vs-input-radio-default":ja,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useModel(n,"modelValue"),r=e.computed(()=>!!t.disabled),l=e.computed(()=>Jt(t.option)),a=e.computed(()=>Qt(t.option)),s=e.computed(()=>Nt(t.option)),c=e.computed(()=>!!(s.value&&!l.value&&!a.value)),i=e.computed(()=>!!(l.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),p=e.computed(()=>{if(!(!l.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${l.value})`,maskImage:`url(${l.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(m,y)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[o.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":y[0]||(y[0]=h=>o.value=h),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Ua),[[e.vModelRadio,o.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,Ha)):(e.openBlock(),e.createElementBlock("div",qa,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(p.value)},null,4)):l.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:l.value,alt:"icon"},null,8,Ka)):a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",Wa,e.toDisplayString(t.text),1)]))],2))}})},Wo=n=>Array.isArray(n)?n:Array.isArray(n?.data)?n.data:[],Go=n=>{const t=n.host??"",o=n.prefix??"api",r=n.api??`/${o}/suggest/${n.data}`;return`${t}${r}`},Ya=n=>({fetchOptions:async(r="")=>{const l=n();if(!l.data)return l.options?[...l.options]:[];try{const a=new URLSearchParams;a.set("json","1"),r&&a.set("key",r),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const c=await(await fetch(`${Go(l)}?${a.toString()}`)).json();return Wo(c)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const l=n();if(!l.data)return(l.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const a=new URLSearchParams;a.set("json","1"),a.set("val",String(r)),l.parentValue!==void 0&&l.parentValue!==null&&l.parentValue!==""&&a.set("parent",String(l.parentValue)),l.start===1&&a.set("start","1");const c=await(await fetch(`${Go(l)}?${a.toString()}`)).json();return Wo(c)[0]??null}catch{return null}}}),vn=({props:n,formValues:t=null,watchParent:o=!0})=>{const r=e.ref([]),l=e.computed(()=>n.parent?t?.value?.[n.parent]?.toString?.()??null:null),{fetchOptions:a,fetchOptionByValue:s}=Ya(()=>({data:n.data,options:n.options,api:n.api,prefix:n.prefix,host:n.host,start:n.start,parentValue:l.value})),c=async(i="")=>{const d=n.data?await a(i):n.options?[...n.options]:[];return r.value=d,r.value};return e.watch(()=>n.options,()=>{n.data||(r.value=n.options?[...n.options]:[])},{immediate:!0,deep:!0}),o&&e.watch(l,async()=>{n.data&&(r.value=await a())},{immediate:!1}),{optionsList:r,parentValue:l,fetchOptions:a,fetchOptionByValue:s,loadOptions:c}},Xa=/\{\{\s*([^}]+?)\s*\}\}/g,Za=n=>(n?String(n):"").replace(/<[^>]*>/g,"").trim(),Ja=(n,t)=>t.split(".").reduce((o,r)=>o==null?o:o[r.trim()],n),Cn=(n,t)=>{if(!n)return"";const o=(t??"").trim();return o?o.replace(Xa,(r,l)=>{const a=String(l).trim(),s=n,i=(a.includes(".")?Ja(s,a):void 0)??s[a];return i!=null?String(i):""}):n.text??""},En=(n,t)=>{if(!n)return"";const o=Cn(n,t);return Za(o)||n.text||""},lo=e.defineComponent({__name:"vs-input-radio",props:e.mergeModels({options:{},slot:{},data:{},api:{},prefix:{},host:{},start:{},parent:{},position:{default:"vertical"},view:{default:"default"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useModel(n,"modelValue"),r=e.computed(()=>Ga[`vs-input-radio-${t.view}`]),l=e.computed(()=>t.slot??t?.optionTemplate??""),a=e.computed(()=>xn(l.value)),s=h=>Cn(h,l.value),c=h=>En(h,l.value),i=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),p=e.inject("values",null),{optionsList:m,loadOptions:y}=vn({props:t,formValues:p});return e.onMounted(async()=>{await y()}),(h,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(m),x=>(e.openBlock(),e.createElementBlock("div",{key:x?.id,class:e.normalizeClass(["flex items-stretch",n.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:c(x),html:a.value?s(x):"",option:x,value:x.id.toString(),checked:o.value?.toString?.()===x.id?.toString?.(),"custom-class":n.position==="horizontal"?"":t.customClass,modelValue:o.value,"onUpdate:modelValue":f[0]||(f[0]=b=>o.value=b)},{ref_for:!0},h.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),Qa={key:1,class:"w-full flex flex-col gap-4"},es={key:0,class:"text-sm font-medium text-muted-foreground my-2"},ts="Без категорії",ns=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(n,{emit:t}){const o=n,r=t,l=e.reactive({}),a=e.inject("values",null),{optionsList:s,loadOptions:c}=vn({props:{...o,options:o.options},formValues:a}),i=e.computed(()=>s.value),d=v=>v?.value||v?.id||v?.text||v,p=e.computed(()=>o.slot??o?.optionTemplate??""),m=e.computed(()=>xn(p.value)),y=v=>Cn(v,p.value),h=v=>En(v,p.value),f=v=>`lg:col-span-${v||12}`,x=e.computed(()=>[o.position==="vertical"?"flex flex-col":"",o.colSpan?"grid":"flex justify-start"]),b=v=>v==null||v===""?null:typeof v=="string"||typeof v=="number"?v:String(v),E=e.computed(()=>{if(!o.group)return[];const v=new Map;i.value.forEach(j=>{const V=j[o.group],S=b(V);v.has(S)||v.set(S,[]),v.get(S)?.push(j)});const _=[];o.values?.length&&o.values.forEach(j=>{const V=b(j);_.push(V)});const N=new Set,R=j=>{const V=v.get(j)||[];if(!V.length)return null;const S=j===null?"group-null":`group-${String(j)}`,C=j===null?ts:String(j);return N.add(j),{key:S,label:C,options:V}},ee=[];return _.forEach(j=>{const V=R(j);V&&ee.push(V)}),v.forEach((j,V)=>{if(N.has(V))return;const S=R(V);S&&ee.push(S)}),ee});return e.watch(()=>o.modelValue,v=>{if(typeof v=="boolean"&&i.value.length===1){const _=d(i.value[0]);l[_]=v}else if(Array.isArray(v)){const _=new Set(v);i.value.forEach(N=>{if(!N.disabled){const R=d(N);l[R]=_.has(R)}})}},{immediate:!0}),e.watch(l,()=>{if(!i.value.length){r("update:modelValue",null);return}const v=Object.entries(l).filter(([,_])=>_).map(([_])=>_);r("update:modelValue",v.length===0?[]:v)},{deep:!0}),e.onMounted(async()=>{if(await c(),typeof o.modelValue=="boolean"&&i.value.length===1){const v=d(i.value[0]);l[v]=o.modelValue}else if(Array.isArray(o.modelValue)){const v=new Set(o.modelValue);i.value.forEach(_=>{if(!_.disabled){const N=d(_);l[N]=v.has(N)}})}}),(v,_)=>o.group?(e.openBlock(),e.createElementBlock("div",Qa,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(E.value,N=>(e.openBlock(),e.createElementBlock("div",{key:N.key,class:"flex flex-col gap-2"},[N.label?(e.openBlock(),e.createElementBlock("span",es,e.toDisplayString(N.label),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-0 w-full gap-[12px]",x.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.options,R=>(e.openBlock(),e.createBlock(eo,{modelValue:l[d(R)],"onUpdate:modelValue":ee=>l[d(R)]=ee,value:d(R),class:e.normalizeClass(f(n.colSpan)),disabled:o.disabled||R.disabled,label:h(R),labelHtml:m.value?y(R):"",key:`${N.key}-${d(R)}`,icon:R?.icon,imgUrl:R?.imgUrl,option:R,view:n.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",x.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,N=>(e.openBlock(),e.createBlock(eo,{modelValue:l[d(N)],"onUpdate:modelValue":R=>l[d(N)]=R,value:d(N),class:e.normalizeClass(f(n.colSpan)),disabled:o.disabled||N.disabled,label:h(N),labelHtml:m.value?y(N):"",key:d(N),icon:N?.icon,imgUrl:N?.imgUrl,option:N,view:n.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),Ve=(n,t)=>{const o=n.__vccOpts||n;for(const[r,l]of t)o[r]=l;return o},Yo=Ve(ns,[["__scopeId","data-v-16c6c9cd"]]),os=1440*60*1e3,rs=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],ls=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],as=["нд","пн","вт","ср","чт","пт","сб"];function Ge(n){return n instanceof Date&&!Number.isNaN(n.getTime())}const Kt=n=>new Date(n.getTime());function Rt(n){const t=Kt(n);return t.setHours(0,0,0,0),t}function en(n){const t=Kt(n);return t.setHours(23,59,59,999),t}function ao(n){return Rt(new Date(n.getFullYear(),n.getMonth(),1))}function so(n){return en(new Date(n.getFullYear(),n.getMonth()+1,0))}function io(n,t){const o=new Date(n),r=o.getDate();o.setDate(1),o.setMonth(o.getMonth()+t);const l=new Date(o.getFullYear(),o.getMonth()+1,0).getDate();return o.setDate(Math.min(r,l)),o}function ss(n,t){return io(n,-1)}function _n(n,t){const o=new Date(n);return o.setFullYear(o.getFullYear()+t),o}function Xo(n,t){return _n(n,-t)}function Zo(n){return Rt(new Date(n.getFullYear(),0,1))}function Jo(n){return en(new Date(n.getFullYear(),11,31))}function is(n){const t=Math.floor(n.getFullYear()/10)*10;return Rt(new Date(t,0,1))}function cs(n){const t=Math.floor(n.getFullYear()/10)*10+9;return en(new Date(t,11,31))}const mt=n=>n.getFullYear(),Bn=n=>Math.floor(n.getFullYear()/10)*10;function ds(n){const t=[];let o=Rt(n.start);const r=Rt(n.end);for(;o<=r;)t.push(Kt(o)),o=new Date(o.getTime()+os);return t}function us(n){const t=[];let o=ao(n.start);const r=so(n.end);for(;o<=r;)t.push(Kt(o)),o=io(o,1);return t}function ps(n){const t=[];let o=Zo(n.start);const r=Jo(n.end);for(;o<=r;)t.push(Kt(o)),o=_n(o,1);return t}function co(n,t=1){const o=Rt(n),r=(o.getDay()-t+7)%7;return o.setDate(o.getDate()-r),o}function ms(n,t=1){const o=co(n,t);return o.setDate(o.getDate()+6),en(o)}function fs(n,t,o=0){const r=co(n,o),l=(t-o+7)%7;return r.setDate(r.getDate()+l),r}const Vn=(n,t)=>!!n&&!!t&&n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth()&&n.getDate()===t.getDate(),uo=(n,t)=>!!n&&!!t&&n.getFullYear()===t.getFullYear()&&n.getMonth()===t.getMonth(),Qo=(n,t)=>!!n&&!!t&&n.getFullYear()===t.getFullYear(),er=(n,t)=>!!n&&!!t&&Vn(n,t)&&n.getHours()===t.getHours(),hs=(n,t)=>!!n&&!!t&&er(n,t)&&n.getMinutes()===t.getMinutes();function gs(n,t){const o=n.getTime();return o>=t.start.getTime()&&o<=t.end.getTime()}const tn=(n,t)=>!!n&&!!t&&n.getTime()<t.getTime(),nn=(n,t)=>!!n&&!!t&&n.getTime()>t.getTime();function ys(n){const t=n.filter(o=>Ge(o));if(t.length)return t.reduce((o,r)=>o.getTime()>=r.getTime()?o:r)}function bs(n){const t=n.filter(o=>Ge(o));if(t.length)return t.reduce((o,r)=>o.getTime()<=r.getTime()?o:r)}function ks(n,t){const o=Kt(n);return typeof t.year=="number"&&o.setFullYear(t.year),typeof t.month=="number"&&o.setMonth(t.month),typeof t.date=="number"&&o.setDate(t.date),typeof t.hours=="number"&&o.setHours(t.hours),typeof t.minutes=="number"&&o.setMinutes(t.minutes),typeof t.seconds=="number"&&o.setSeconds(t.seconds),typeof t.milliseconds=="number"&&o.setMilliseconds(t.milliseconds),o}const Sn=(n,t=2)=>String(n).padStart(t,"0");function tr(n,t){return t==="wide"?rs[n]:ls[n]}function xs(n){return as[n]}const ws=[{token:"LLLL",format:n=>tr(n.getMonth(),"wide")},{token:"LLL",format:n=>tr(n.getMonth(),"abbreviated")},{token:"EE",format:n=>xs(n.getDay())},{token:"yyyy",format:n=>String(n.getFullYear())},{token:"MM",format:n=>Sn(n.getMonth()+1)},{token:"dd",format:n=>Sn(n.getDate())},{token:"HH",format:n=>Sn(n.getHours())},{token:"mm",format:n=>Sn(n.getMinutes())}];function on(n,t){if(!Ge(n))return"";let o="",r=0;for(;r<t.length;){const l=ws.find(a=>t.startsWith(a.token,r));l?(o+=l.format(n),r+=l.token.length):(o+=t[r],r+=1)}return o}const vs={"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 nr(n,t){const o=vs[t];if(!o){const l=new Date(n);return Ge(l)?l:null}const r=n.match(o);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,l,a,s]=r,c=new Date(Number(l),Number(a)-1,Number(s));return Ge(c)?c:null}case"dd.MM.yyyy":{const[,l,a,s]=r,c=new Date(Number(s),Number(a)-1,Number(l));return Ge(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,l,a,s,c,i,d]=r,p=new Date(Number(s),Number(a)-1,Number(l),Number(c),Number(i),Number(d||0));return Ge(p)?p:null}case"HH:mm":{const[,l,a,s]=r,c=new Date;return c.setHours(Number(l),Number(a),Number(s||0),0),c}case"MM.yyyy":{const[,l,a]=r;return new Date(Number(a),Number(l)-1,1)}case"yyyy":{const[,l]=r;return new Date(Number(l),0,1)}default:return null}}const Cs=["year","month","day","time","custom"],Es=e.defineComponent({components:{ChevronLeft:J.ChevronLeft,ChevronRight:J.ChevronRight},emits:{elementClick:n=>Ge(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"&&Cs.includes(n)},showButtonBar:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1}},setup(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties?.$t,o=e.computed(()=>{const l=t?.("form.date.today");return l&&l!=="form.date.today"?l:"Сьогодні"}),r=e.computed(()=>{const l=t?.("form.date.clear");return l&&l!=="form.date.clear"?l:"Очистити"});return{todayLabel:o,clearLabel:r}}}),_s={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},Bs=["disabled"],Vs=["disabled"],Ss={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},$s=["disabled","onClick"],As={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function Ns(n,t,o,r,l,a){const s=e.resolveComponent("ChevronLeft"),c=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",n.viewMode==="month"||n.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${n.columnCount}, 1fr)`}),onMousedown:t[5]||(t[5]=e.withModifiers(()=>{},["prevent"]))},[n.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",_s,[e.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:n.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(i=>n.$emit("left"),["stop","prevent"]))},[e.renderSlot(n.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,Bs),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.headingClickable?"button":"span"),{class:e.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",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:t[1]||(t[1]=e.withModifiers(i=>n.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"heading")]),_:3},8,["class"])),e.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:n.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(i=>n.$emit("right"),["stop","prevent"]))},[e.renderSlot(n.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"h-3.5 w-3.5"})])],8,Vs)])),e.createElementVNode("div",null,["subheading"in n.$slots?(e.openBlock(),e.createElementBlock("div",Ss,[e.renderSlot(n.$slots,"subheading")])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",n.viewMode==="month"?"p-datepicker-month-view":"",n.viewMode==="year"?"p-datepicker-year-view":"",n.viewMode==="month"?"gap-y-1":""])},[e.renderSlot(n.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>n.$emit("elementClick",i.value),["stop","prevent"])},[e.createElementVNode("span",{class:e.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":"",i.selected?"bg-blue-500 text-white font-semibold":"",i.current&&!i.selected&&n.viewMode!=="month"&&n.viewMode!=="year"?"border border-slate-300 font-medium":"",!i.disabled&&!i.selected?"hover:bg-slate-100 hover:text-slate-700":"",!i.current&&!i.selected&&i.disabled?"text-slate-300":""])},e.toDisplayString(i.display),3)],8,$s))),128))])],2),e.renderSlot(n.$slots,"after-calendar"),n.showButtonBar?(e.openBlock(),e.createElementBlock("div",As,[e.createElementVNode("button",{type:"button",class:"p-datepicker-today-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[3]||(t[3]=e.withModifiers(i=>n.$emit("today"),["stop","prevent"]))},e.toDisplayString(n.todayLabel),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-clear-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[4]||(t[4]=e.withModifiers(i=>n.$emit("clear"),["stop","prevent"]))},e.toDisplayString(n.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const $n=Ve(Es,[["render",Ns]]),Ms=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":n=>Ge(n),select:n=>Ge(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:t}){const o=e.computed(()=>is(n.pageDate)),r=e.computed(()=>cs(n.pageDate)),l=(m,y,h)=>!y&&!h?!0:!(y&&mt(m)<mt(y)||h&&mt(m)>mt(h)),a=e.computed(()=>ps({start:o.value,end:r.value}).map(m=>({value:m,key:String(mt(m)),display:mt(m),selected:!!n.selected&&mt(m)===mt(n.selected),disabled:!l(m,n.lowerLimit,n.upperLimit)}))),s=e.computed(()=>{const m=mt(o.value),y=mt(r.value);return`${m} - ${y}`}),c=e.computed(()=>n.lowerLimit&&(Bn(n.lowerLimit)===Bn(n.pageDate)||tn(n.pageDate,n.lowerLimit))),i=e.computed(()=>n.upperLimit&&(Bn(n.upperLimit)===Bn(n.pageDate)||nn(n.pageDate,n.upperLimit)));return{years:a,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",Xo(n.pageDate,10)),nextPage:()=>t("update:pageDate",_n(n.pageDate,10))}}});function Fs(n,t,o,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:2,leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,items:n.years,viewMode:"year",onLeft:n.previousPage,onRight:n.nextPage,onElementClick:t[0]||(t[0]=c=>n.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Ds=Ve(Ms,[["render",Fs]]),Ts=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":n=>Ge(n),select:n=>Ge(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:t}){const o=e.computed(()=>Zo(n.pageDate)),r=e.computed(()=>Jo(n.pageDate)),l=e.computed(()=>y=>on(y,n.format)),a=(y,h,f)=>!h&&!f?!0:!(h&&tn(y,ao(h))||f&&nn(y,so(f))),s=e.computed(()=>us({start:o.value,end:r.value}).map(y=>({value:y,display:l.value(y),key:l.value(y),selected:!!n.selected&&uo(n.selected,y),disabled:!a(y,n.lowerLimit,n.upperLimit)}))),c=e.computed(()=>mt(o.value)),i=e.computed(()=>n.lowerLimit&&(Qo(n.lowerLimit,n.pageDate)||tn(n.pageDate,n.lowerLimit))),d=e.computed(()=>n.upperLimit&&(Qo(n.upperLimit,n.pageDate)||nn(n.pageDate,n.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",Xo(n.pageDate,1)),nextPage:()=>t("update:pageDate",_n(n.pageDate,1))}}});function Ls(n,t,o,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:n.months,leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,viewMode:"month",onLeft:n.previousPage,onRight:n.nextPage,onHeading:t[0]||(t[0]=c=>n.$emit("back")),onElementClick:t[1]||(t[1]=c=>n.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Is=Ve(Ts,[["render",Ls]]),Os=e.defineComponent({components:{PickerPopup:$n},emits:{"update:pageDate":n=>Ge(n),select:n=>Ge(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:t}){const o=e.computed(()=>b=>E=>on(E,b)),r=e.computed(()=>ao(n.pageDate)),l=e.computed(()=>so(n.pageDate)),a=e.computed(()=>({start:r.value,end:l.value})),s=e.computed(()=>({start:co(r.value,n.weekStartsOn),end:ms(l.value,n.weekStartsOn)})),c=e.computed(()=>n.customWeekdays?.length===7?n.customWeekdays:null),i=e.computed(()=>{const b=n.weekStartsOn,E=c.value;if(E)return Array.from({length:7}).map((_,N)=>E[(b+N)%7]);const v=o.value(n.weekdayFormat);return Array.from(Array(7)).map((_,N)=>(b+N)%7).map(_=>fs(new Date,_,n.weekStartsOn)).map(v)}),d=(b,E,v,_)=>_?.dates?.some(N=>Vn(b,N))||_?.predicate?.(b)?!1:!E&&!v?!0:!(E&&tn(b,Rt(E))||v&&nn(b,en(v))),p=e.computed(()=>{const b=new Date,E=o.value(n.format);return ds(s.value).map(v=>({value:v,display:E(v),selected:!!n.selected&&Vn(n.selected,v),current:Vn(b,v),disabled:!n.allowOutsideInterval&&!gs(v,a.value)||!d(v,n.lowerLimit,n.upperLimit,n.disabledDates),key:o.value("yyyy-MM-dd")(v)}))}),m=e.computed(()=>o.value(n.headingFormat)(n.pageDate)),y=e.computed(()=>n.lowerLimit&&(uo(n.lowerLimit,n.pageDate)||tn(n.pageDate,n.lowerLimit))),h=e.computed(()=>n.upperLimit&&(uo(n.upperLimit,n.pageDate)||nn(n.pageDate,n.upperLimit)));return{weekDays:i,days:p,heading:m,leftDisabled:y,rightDisabled:h,previousPage:()=>t("update:pageDate",ss(n.pageDate)),nextPage:()=>t("update:pageDate",io(n.pageDate,1))}}});function Ps(n,t,o,r,l,a){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:n.leftDisabled,rightDisabled:n.rightDisabled,items:n.days,showButtonBar:!0,viewMode:"day",onLeft:n.previousPage,onRight:n.nextPage,onHeading:t[0]||(t[0]=c=>n.$emit("back")),onElementClick:t[1]||(t[1]=c=>n.$emit("select",c)),onToday:t[2]||(t[2]=c=>n.$emit("today")),onClear:t[3]||(t[3]=c=>n.$emit("clear"))},e.createSlots({heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.weekDays,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),3))),128))]),_:2},[n.$slots["after-calendar"]?{name:"after-calendar",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Rs=Ve(Os,[["render",Ps]]),zs=e.defineComponent({components:{PickerPopup:$n,ChevronUp:J.ChevronUp,ChevronDown:J.ChevronDown},emits:{select:n=>Ge(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:t}){const o=e.computed(()=>n.pageDate??n.selected),r=e.ref(o.value.getHours()),l=e.ref(o.value.getMinutes());e.watch(()=>n.selected,h=>{let f=0,x=0;h&&(f=h.getHours(),x=h.getMinutes()),r.value=f,l.value=x});const a=(h,f)=>{const x=ks(new Date(o.value.getTime()),{hours:h,minutes:f,seconds:0});m(x)&&(r.value=h,l.value=f,t("select",x))},s=(h,f)=>h<0?f:h>f?0:h,c=()=>a(s(r.value+1,23),l.value),i=()=>a(s(r.value-1,23),l.value),d=()=>a(r.value,s(l.value+1,59)),p=()=>a(r.value,s(l.value-1,59)),m=h=>!(n.disabledTime?.dates?.some(f=>er(h,f)&&hs(h,f))||n.disabledTime?.predicate?.(h));return{hours:r,minutes:l,padStartZero:h=>`0${h}`.substr(-2),isEnabled:m,incrementHours:c,decrementHours:i,incrementMinutes:d,decrementMinutes:p}}}),js={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"},Us={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Hs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},qs={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Ks={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Ws={class:"col-span-2"},Gs={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},Ys={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},Xs={class:"min-w-8 text-center text-sm font-medium text-slate-700"},Zs={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},Js={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function Qs(n,t,o,r,l,a){const s=e.resolveComponent("ChevronUp"),c=e.resolveComponent("ChevronDown"),i=e.resolveComponent("picker-popup");return n.embedded?(e.openBlock(),e.createElementBlock("div",js,[e.createElementVNode("div",Us,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[0]||(t[0]=e.withModifiers((...d)=>n.incrementHours&&n.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Hs,e.toDisplayString(n.padStartZero(n.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[1]||(t[1]=e.withModifiers((...d)=>n.decrementHours&&n.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[8]||(t[8]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",qs,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[2]||(t[2]=e.withModifiers((...d)=>n.incrementMinutes&&n.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Ks,e.toDisplayString(n.padStartZero(n.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[3]||(t[3]=e.withModifiers((...d)=>n.decrementMinutes&&n.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(i,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",Ws,[e.createElementVNode("div",Gs,[e.createElementVNode("div",Ys,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[4]||(t[4]=e.withModifiers((...d)=>n.incrementHours&&n.incrementHours(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Xs,e.toDisplayString(n.padStartZero(n.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[5]||(t[5]=e.withModifiers((...d)=>n.decrementHours&&n.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[9]||(t[9]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",Zs,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[6]||(t[6]=e.withModifiers((...d)=>n.incrementMinutes&&n.incrementMinutes(...d),["stop","prevent"]))},[e.createVNode(s,{class:"h-3.5 w-3.5"})]),e.createElementVNode("span",Js,e.toDisplayString(n.padStartZero(n.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[7]||(t[7]=e.withModifiers((...d)=>n.decrementMinutes&&n.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const ei=Ve(zs,[["render",Qs]]),An=["time","day","month","year"],ti=(n,t,o=void 0)=>{let r=o||new Date;const l=ys([n,r]);l&&(r=l);const a=bs([t,r]);return a&&(r=a),r},ni=e.defineComponent({components:{YearPicker:Ds,MonthPicker:Is,DayPicker:Rs,TimePicker:ei,CalendarDays:J.CalendarDays,Clock3:J.Clock3,X:J.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"&&An.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"&&An.includes(n)}},emits:{"update:modelValue":n=>n==null||Ge(n),decadePageChanged:n=>!0,yearPageChanged:n=>!0,monthPageChanged:n=>!0,opened:()=>!0,closed:()=>!0},setup(n,{emit:t}){const o=e.ref("none"),r=e.ref(n.startingViewDate),l=e.ref(null),a=e.ref(null),s=e.ref(null),c=e.ref({}),i=e.ref(!1),d=e.ref(!1);let p=null;const m=e.ref(""),y=ne=>{const le=ne.replace(/[a-zA-Z]/g,"0");return/0/.test(le)?le:""},h=e.computed(()=>y(n.inputFormat));let f=null,x=null;const b=()=>{f?.destroy(),f=null},E=async()=>{if(!x){const{default:ne}=await Promise.resolve().then(()=>Wn);x=ne}return x},v=()=>{f&&f.value!==m.value&&(f.value=m.value??"")},_=ne=>{const le=ne&&Ge(ne)?on(ne,n.inputFormat):"";m.value!==le&&(m.value=le),v()},N=async()=>{if(b(),!a.value||!h.value)return;f=(await E())(a.value,{mask:h.value,lazy:!0,overwrite:!1}),v()};e.watch(()=>n.modelValue,ne=>{d.value&&n.typeable||_(ne)},{immediate:!0}),e.watch(()=>n.inputFormat,()=>{d.value&&n.typeable||_(n.modelValue)}),e.onMounted(()=>{h.value&&e.nextTick(()=>{N()})}),e.onBeforeUnmount(()=>{b()}),e.watch(h,ne=>{ne?e.nextTick(()=>{N()}):b()});const R=e.computed(()=>o.value!=="none"),ee=e.computed(()=>n.startingView==="time"&&n.minimumView==="time"),j=e.computed(()=>n.startingView==="day"&&n.minimumView==="time"),V=ne=>{n.disabled||(R.value||(r.value=n.modelValue||ti(n.lowerLimit,n.upperLimit,r.value),t("opened")),o.value=ne,e.nextTick(()=>$e()))},S=()=>{R.value&&(p!==null&&(cancelAnimationFrame(p),p=null),o.value="none",t("closed"))},C=(ne="none")=>{ne==="none"?S():V(ne)};e.watchEffect(()=>{n.disabled&&S()});const T=(ne,le)=>{r.value=le,ne==="year"?t("decadePageChanged",le):ne==="month"?t("yearPageChanged",le):ne==="day"&&t("monthPageChanged",le)},H=ne=>{r.value=ne,n.minimumView==="year"?(S(),_(ne),t("update:modelValue",ne)):V("month")},oe=ne=>{r.value=ne,n.minimumView==="month"?(S(),_(ne),t("update:modelValue",ne)):V("day")},A=ne=>{const le=j.value?(()=>{const ve=n.modelValue||r.value||new Date,Ce=new Date(ne);return Ce.setHours(ve.getHours(),ve.getMinutes(),0,0),Ce})():ne;r.value=le,n.minimumView==="day"?(S(),_(le),t("update:modelValue",le)):j.value?(_(le),t("update:modelValue",le),V("day")):V("time")},L=ne=>{_(ne),t("update:modelValue",ne)},Z=()=>{A(new Date)},W=()=>{n.clearable&&(S(),_(null),t("update:modelValue",null),r.value=n.startingViewDate)},I=()=>{R.value||V(ie.value)},z=()=>{d.value=!0,i.value=!1,V(ie.value)},G=()=>{d.value=!1,n.typeable&&O({closeOnSuccess:!1,revertOnInvalid:!0})},$=ne=>{const le=ne.target;if(m.value=le?.value??"",!n.typeable)return;const ve=nr(m.value,n.inputFormat);ve&&m.value===on(ve,n.inputFormat)&&(r.value=ve)},O=({closeOnSuccess:ne,revertOnInvalid:le})=>{const ve=a.value?.value??m.value,Ce=nr(ve,n.inputFormat);return!!Ce&&ve===on(Ce,n.inputFormat)&&Ce?(r.value=Ce,_(Ce),t("update:modelValue",Ce),ne&&S(),!0):(_(n.modelValue),!1)},D=ne=>{const le=ne.keyCode?ne.keyCode:ne.which,ve=le===27,Ce=le===13;if(ve){S(),a.value?.blur();return}n.typeable&&Ce&&(O({closeOnSuccess:!0,revertOnInvalid:!0})||a.value?.focus())},ie=e.computed(()=>{const ne=An.indexOf(n.startingView),le=An.indexOf(n.minimumView);return ne<le?n.minimumView:n.startingView}),ce=e.computed(()=>n.weekDayNames?.length===7?n.weekDayNames:void 0),te=()=>n.startingView==="time"&&n.minimumView==="time"?null:V("day"),fe=()=>{if(!a.value||!s.value)return;const ne=4,le=8,ve=a.value.getBoundingClientRect(),Ce=s.value.getBoundingClientRect(),We=s.value.firstElementChild?.getBoundingClientRect(),Y=window.innerWidth,Q=window.innerHeight,ae=window.scrollX||window.pageXOffset,me=window.scrollY||window.pageYOffset,ge=Math.max(160,Q-le*2),Me=Math.min(Ce.height||0,ge),Fe=Q-ve.bottom-ne-le,De=ve.top-ne-le,q=Fe<Me&&De>Fe;let w=q?ve.top-ne-Me:ve.bottom+ne;w=Math.max(le,Math.min(w,Q-le-Me));const M=We?.width||Ce.width||268;let P=ve.left;P+M>Y-le&&(P=Y-le-M),P<le&&(P=le);const de=q?Math.max(120,ve.top-ne-le):Math.max(120,Q-ve.bottom-ne-le);c.value={position:"absolute",top:`${Math.round(w+me)}px`,left:`${Math.round(P+ae)}px`,maxHeight:`${Math.round(Math.min(ge,de))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},j.value&&o.value==="day"&&(c.value.minWidth="345px")},_e=(ne,le)=>ne.bottom>le.top&&ne.top<le.bottom&&ne.right>le.left&&ne.left<le.right,ke=ne=>{const le=[];let ve=ne.parentElement;for(;ve;){const Ce=window.getComputedStyle(ve),Ie=Ce.overflowY,We=Ce.overflowX,Y=["auto","scroll","hidden","clip"].includes(Ie),Q=["auto","scroll","hidden","clip"].includes(We);(Y||Q)&&le.push(ve),ve=ve.parentElement}return le},Ne=()=>{if(!a.value)return!1;const ne=a.value.getBoundingClientRect(),le=new DOMRect(0,0,window.innerWidth,window.innerHeight);return _e(ne,le)?ke(a.value).every(Ce=>_e(ne,Ce.getBoundingClientRect())):!1},Ue=()=>{if(R.value){if(!Ne()){i.value=!0,S();return}$e();return}i.value&&document.activeElement===a.value&&Ne()&&(i.value=!1,V(ie.value))};e.watch(o,()=>{R.value&&e.nextTick(()=>$e())});const $e=()=>{fe(),p!==null&&cancelAnimationFrame(p),p=requestAnimationFrame(()=>{fe(),p=null})};e.onMounted(()=>{window.addEventListener("resize",Ue),window.addEventListener("scroll",Ue,!0),document.addEventListener("pointerdown",Le,!0)}),e.onBeforeUnmount(()=>{p!==null&&(cancelAnimationFrame(p),p=null),window.removeEventListener("resize",Ue),window.removeEventListener("scroll",Ue,!0),document.removeEventListener("pointerdown",Le,!0)});const Le=ne=>{if(o.value==="none")return;const le=ne.target;if(!le)return;const ve=!!l.value?.contains(le),Ce=!!s.value?.contains(le);!ve&&!Ce&&(i.value=!1,S())};return{rootRef:l,blur:G,focus:z,click:I,input:m,inputRef:a,pageDate:r,renderView:C,updatePageDate:T,selectYear:H,selectMonth:oe,selectDay:A,selectToday:Z,selectTime:L,keyUp:D,onInput:$,isTimeOnlyMode:ee,isDateTimeMode:j,normalizedWeekdayNames:ce,viewShown:o,goBackFromTimepicker:te,clearModelValue:W,initialView:ie,log:ne=>console.log(ne),popupAnchorStyle:c,popupRef:s}}}),oi={ref:"rootRef",class:"relative"},ri={class:"p-datepicker p-component p-inputwrapper relative"},li=["readonly","value","placeholder","disabled","tabindex"],ai={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},si={class:"absolute right-8 top-1/2 -translate-y-1/2"};function ii(n,t,o,r,l,a){const s=e.resolveComponent("Clock3"),c=e.resolveComponent("CalendarDays"),i=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),p=e.resolveComponent("month-picker"),m=e.resolveComponent("time-picker"),y=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",oi,[e.createElementVNode("div",ri,[e.createElementVNode("input",e.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:t[0]||(t[0]=(...h)=>n.onInput&&n.onInput(...h)),onKeyup:t[1]||(t[1]=(...h)=>n.keyUp&&n.keyUp(...h)),onBlur:t[2]||(t[2]=(...h)=>n.blur&&n.blur(...h)),onFocus:t[3]||(t[3]=(...h)=>n.focus&&n.focus(...h)),onClick:t[4]||(t[4]=(...h)=>n.click&&n.click(...h))}),null,16,li),e.createElementVNode("span",ai,[n.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(c,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",si,[e.renderSlot(n.$slots,"clear",{onClear:n.clearModelValue},()=>[e.createElementVNode("button",{type:"button",class:"inline-flex h-5 w-5 items-center justify-center rounded-full text-slate-400 transition-colors hover:bg-slate-100 hover:text-slate-600 focus:outline-none focus:ring-2 focus:ring-blue-500/30","aria-label":"Очистити дату",onClick:t[5]||(t[5]=h=>n.clearModelValue())},[e.createVNode(i,{class:"h-3 w-3"})])])],512),[[e.vShow,n.clearable&&n.modelValue]])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.withDirectives(e.createElementVNode("div",{ref:"popupRef",style:e.normalizeStyle(n.popupAnchorStyle)},[e.withDirectives(e.createVNode(d,{pageDate:n.pageDate,"onUpdate:pageDate":t[6]||(t[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"]),[[e.vShow,n.viewShown==="year"]]),e.withDirectives(e.createVNode(p,{pageDate:n.pageDate,"onUpdate:pageDate":t[7]||(t[7]=h=>n.updatePageDate("month",h)),selected:n.modelValue,onSelect:n.selectMonth,lowerLimit:n.lowerLimit,upperLimit:n.upperLimit,format:n.monthListFormat,onBack:t[8]||(t[8]=h=>n.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,n.viewShown==="month"]]),e.withDirectives(e.createVNode(y,{pageDate:n.pageDate,"onUpdate:pageDate":t[9]||(t[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:t[10]||(t[10]=h=>n.viewShown="month")},e.createSlots({_:2},[n.isDateTimeMode?{name:"after-calendar",fn:e.withCtx(()=>[e.createVNode(m,{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"]),[[e.vShow,n.viewShown==="day"]]),e.withDirectives(e.createVNode(m,{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"]),[[e.vShow,n.viewShown==="time"&&!n.isDateTimeMode]])],4),[[e.vShow,n.viewShown!=="none"]])]))],512)}const ci=Ve(ni,[["render",ii]]),or=Ve(e.defineComponent({__name:"vs-input-date2",props:{clearable:{type:Boolean,default:!0},now:{type:Boolean},editable:{type:Boolean,default:!0},time:{type:Boolean},isInfinity:{type:Boolean},dateFormat:{},mode:{default:"date"},weekStart:{},dayNames:{},maxDaysFromNow:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(n,{emit:t}){const o=n,r=t,{inputClass:l}=Je(o.style),a=e.getCurrentInstance(),s=e.computed(()=>o.mode?o.mode:o.time?"datetime":"date"),c=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",l.value,o.customClass,{"!border-red-600":o.error}]),i=e.computed(()=>!o.modelValue&&o.now?new Date:null),d=e.computed({get:()=>V(o.modelValue??i.value,s.value)||void 0,set:$=>r("update:modelValue",S($,s.value))}),p=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],m=e.computed(()=>{if(o.dayNames?.length)return o.dayNames.length===7?o.dayNames:p}),y=e.computed(()=>{const $=o.weekStart,O=typeof $=="string"?Number($):$;return O===void 0||Number.isNaN(O)?1:Math.min(6,Math.max(0,O))}),h=e.computed(()=>{const $=o.maxDaysFromNow;if($==null||$==="")return;const O=typeof $=="string"?Number($):$;if(!Number.isFinite(O)||O<0)return;const D=new Date;return D.setHours(0,0,0,0),D.setDate(D.getDate()+O),D.setHours(23,59,59,999),D}),f=e.computed(()=>{switch(s.value){case"time":return{startingView:"time",minimumView:"time"};case"month":return{startingView:"month",minimumView:"month"};case"year":return{startingView:"year",minimumView:"year"};case"datetime":return{startingView:"day",minimumView:"time"};default:return{startingView:"day",minimumView:"day"}}}),x={date:"dd.MM.yyyy",datetime:"dd.MM.yyyy HH:mm",month:"MM.yyyy",time:"HH:mm",week:"dd.MM.yyyy",year:"yyyy"};function b(){const $=a?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof $=="string"&&$)return $;if($&&typeof $=="object"&&"value"in $&&$.value)return String($.value);if(typeof localStorage<"u"){const O=localStorage.getItem("locale")||localStorage.getItem("language");if(O)return O}return"uk"}function E(){const O=a?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!O)return"";if(typeof O=="string")return O;if(typeof O=="object"){const D=b();return O[D]||O[D.split("-")[0]]||O.uk||O.en||""}return""}function v($){return $?$.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 _=e.computed(()=>{const $=x[s.value]||"dd.MM.yyyy";if(s.value==="time")return $;const O=o.dateFormat||E();if(!O)return $;const D=v(O);return D?s.value==="datetime"?`${D} HH:mm`:D:$});function N($,O){return $?O==="week"?"рррр-тиждень":$.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",O==="time"||O==="datetime"?"хх":"мм"):""}const R={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},ee=e.computed(()=>{if(o.placeholder)return o.placeholder;const $=s.value;return N(_.value,$)||R[$]||""}),j=e.ref(!1);e.watch(()=>o.modelValue,$=>{$?j.value=!0:o.now||(j.value=!1)},{immediate:!0}),e.watchEffect(()=>{o.now&&!o.modelValue&&!j.value&&(r("update:modelValue",S(new Date,s.value)),j.value=!0)}),e.watch(_,()=>{r("update:modelValue",S(d.value,s.value))});function V($,O){if(!$)return null;if($ instanceof Date&&!Number.isNaN($.getTime()))return $;if(typeof $!="string")return null;switch(O){case"datetime":return oe($);case"time":return Z($);case"month":return A($);case"year":return L($);case"week":return W($);default:return H($)}}function S($,O){if(!$)return null;const D=$ instanceof Date?$:V($,O);if(!D)return null;switch(O){case"datetime":return`${C(D)}T${T(D)}`;case"time":return T(D);case"month":return`${D.getFullYear()}-${G(D.getMonth()+1)}`;case"year":return`${D.getFullYear()}`;case"week":{const{year:ie,week:ce}=I(D);return`${ie}-W${G(ce)}`}default:return C(D)}}function C($){return`${$.getFullYear()}-${G($.getMonth()+1)}-${G($.getDate())}`}function T($){return`${G($.getHours())}:${G($.getMinutes())}`}function H($){const O=$.split("-");if(O.length<3)return null;const[D,ie,ce]=O.map(Number);return!D||!ie||!ce?null:new Date(D,ie-1,ce)}function oe($){const O=$.includes("T")?$:$.replace(" ","T"),D=new Date(O);return Number.isNaN(D.getTime())?null:D}function A($){const[O,D]=$.split("-").map(Number);return!O||Number.isNaN(D)?null:new Date(O,(D||1)-1,1)}function L($){const O=Number($);return O?new Date(O,0,1):null}function Z($){const O=$.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!O)return null;const[,D,ie,ce]=O,te=new Date;return te.setHours(Number(D),Number(ie),Number(ce||0),0),te}function W($){const O=$.match(/^(\d{4})-W(\d{2})$/);if(!O)return null;const[,D,ie]=O,ce=Number(ie);return z(Number(D),ce)}function I($){const O=new Date(Date.UTC($.getFullYear(),$.getMonth(),$.getDate())),D=O.getUTCDay()||7;O.setUTCDate(O.getUTCDate()+4-D);const ie=new Date(Date.UTC(O.getUTCFullYear(),0,1)),ce=Math.ceil(((O.getTime()-ie.getTime())/864e5+1)/7);return{year:O.getUTCFullYear(),week:ce}}function z($,O){if(!$||!O)return null;const D=new Date($,0,1+(O-1)*7),ie=D.getDay(),ce=D;return ie<=4?ce.setDate(D.getDate()-D.getDay()+1):ce.setDate(D.getDate()+8-D.getDay()),ce}function G($){return String($).padStart(2,"0")}return($,O)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",o.customClass])},[e.createVNode(ci,{modelValue:d.value,"onUpdate:modelValue":O[0]||(O[0]=D=>d.value=D),placeholder:ee.value,disabled:o.disabled,clearable:o.clearable,typeable:o.editable,"week-day-names":m.value,"week-starts-on":y.value,"starting-view":f.value.startingView,"minimum-view":f.value.minimumView,"input-format":_.value,"upper-limit":h.value,name:o.name,class:e.normalizeClass(c.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","upper-limit","name","class"])],2))}}),[["__scopeId","data-v-cb1232a6"]]),di=(n,t)=>{if(!t||!Object.keys(t).length)return n;const[o,r=""]=n.split("?"),l=new URLSearchParams(r);Object.entries(t).forEach(([s,c])=>{c==null||c===""||l.set(s,String(c))});const a=l.toString();return a?`${o}?${a}`:o},ui=async(n,t={})=>{try{const o=new FormData;o.append("unique","true"),o.append("file",n);const{api:r,id:l="1",form:a="form",table:s="table",customParams:c}=t,i=r||`/file/upload/uploads?id=${l||""}&form=${a||""}&table=${s||""}`,d=di(i,c);return(await fetch(d,{method:"POST",body:o}).then(m=>m.json()))?.result}catch(o){return be.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",o),null}},pi=async n=>{try{return await fetch(`file/delete/${n}`),!0}catch(t){return console.error(t),!1}},rr=async n=>{try{const t=await fetch(`/file/download/${n}`);if(!t.ok)throw new Error(`Download failed with status ${t.status}`);const o=await t.blob(),l=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),a=l?.[1]?decodeURIComponent(l[1].replace(/"/g,"").trim()):"",s=n.split("/").filter(Boolean).pop()||"download",c=a||s,i=document.createElement("a");i.setAttribute("download",c),i.href=window.URL.createObjectURL(o),i.click(),window.URL.revokeObjectURL(i.href)}catch(t){console.error(t.message)}},mi=n=>{if(!n)return"";const t=n?.split(".");return t[t.length-1]},fi=n=>{const t=mi(n),o={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 o.imageFormat.includes(t)?"img":o.sheetsFormat.includes(t)?J.Table:o.textsFormat.includes(t)?J.FileCode:o.documentsFormat.includes(t)?J.FileText:o.archivesFormat.includes(t)?J.FileArchive:J.FileText},hi=["title"],gi={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 text-xs font-medium text-slate-600"},yi=["title"],bi={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},ft=Ve(e.defineComponent({__name:"vs-input-file-list-item",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},action:{type:Boolean,default:!1},isUploading:{type:Boolean,default:!1},progressPercent:{default:0},title:{default:""}},{value:{},valueModifiers:{},item:{},itemModifiers:{}}),emits:e.mergeModels(["click"],["update:value","update:item"]),setup(n,{emit:t}){const o=e.useModel(n,"value"),r=e.useModel(n,"item"),l=t,a=n,s=e.computed(()=>a.action),c=e.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),i=e.computed(()=>a.disabled?"opacity-50 cursor-not-allowed":a.isUploading?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),d=h=>typeof h=="string"?h:h?.file_path||"",p=()=>{const h=c.value;pi(h),a.multiple&&Array.isArray(o.value)?o.value=o.value.filter(f=>d(f)!==h):o.value=""},m=()=>{c.value&&window.open(c.value,"_blank")},y=()=>{a.disabled||a.isUploading||l("click")};return(h,f)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,title:n.title,class:e.normalizeClass(["relative h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg flex items-center justify-center transition-all duration-300",i.value]),onClick:y},[n.isUploading?(e.openBlock(),e.createElementBlock("div",gi,[f[2]||(f[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(n.progressPercent)+"%",1)])):(e.openBlock(),e.createBlock(e.unref(J.Plus),{key:1,class:"h-4 w-4"}))],10,hi)):(e.openBlock(),e.createElementBlock("div",{key:1,title:c.value,class:"h-[120px] w-[120px] border text-gray-300 border-dashed border-[#CFD9E0] rounded-lg overflow-hidden relative item-file"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(fi)(c.value)),{src:c.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:f[0]||(f[0]=x=>e.unref(rr)(c.value))},null,8,["src"])),e.createElementVNode("div",bi,[e.createElementVNode("button",{type:"button",onClick:p,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(J.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:m,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-emerald-600"},[e.createVNode(e.unref(J.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:f[1]||(f[1]=x=>e.unref(rr)(c.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(J.Download),{class:"w-4 h-4"})])])],8,yi))}}),[["__scopeId","data-v-b2a1c6a2"]]),lr=n=>n?n.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean).map(t=>t.startsWith(".")?t.slice(1):t):[],ar=(n,t)=>!t||n.size<=t*1024*1024?!0:(be.notify({type:"error",title:"Помилка!",message:`Файл "${n.name}" занадто великий. Максимальний розмір: ${t} МБ`,position:"right-bottom"}),!1),sr=(n,t)=>{if(!t.length)return!0;const o=n.name.split(".").pop()?.toLowerCase()||"";return t.includes(o)?!0:(be.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${n.name}". Дозволені формати: ${t.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},ir=(n,t)=>{const o={},r=[];if(!n?.length)return{ok:!0,params:o,missingSources:r};const l=t?.value??{};return n.forEach(a=>{if(!a)return;const[s,c]=a.split("="),i=s?.trim(),d=c?.trim();if(!i||!d)return;const p=l[d];if(p==null||p===""){r.push(d);return}o[i]=p}),r.length?(be.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:o,missingSources:r}):{ok:!0,params:o,missingSources:r}},cr=(n,t)=>!t||!Array.isArray(n)?[]:n,dr=(n,t)=>t||Array.isArray(n)?null:n,ur=n=>{if(!n)return"";const t=n.split(/[/\\]/).pop()||"",o=t.lastIndexOf(".");return o<=0||o===t.length-1?"":t.slice(o+1).toLowerCase()},ki={class:"flex items-center flex-wrap gap-2"},xi=["accept","multiple","disabled"],pr=e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(n,{emit:t}){const o=n,r=e.useModel(n,"modelValue"),l=t,a=e.ref(null),s=e.ref(!1),c=e.ref([]),i=e.inject("values"),d=e.computed(()=>cr(r.value,!!o.multiple)),p=e.computed(()=>dr(r.value,!!o.multiple)),m=e.computed(()=>lr(o.format)),y=e.computed(()=>ir(o.customParams,i)),h=R=>{be.notify({type:"error",title:"Помилка завантаження",message:R||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},f=()=>{o.disabled||s.value||y.value.ok&&a.value?.click()},x=async R=>{const ee={api:o.api,customParams:Object.keys(y.value.params).length?y.value.params:void 0},j=await ui(R,ee);return j?.file_path?j.file_path:null},b=e.computed(()=>c.value.filter(R=>R.status!=="done")),E=e.computed(()=>b.value[0]||null),v=R=>typeof R=="string"?R:R?.file_path||"",_=(R,ee)=>({key:`${Date.now()}-${ee}-${R.name}`,file:R,size:R.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),N=async R=>{const{files:ee}=R.target;if(!ee||ee.length===0)return;if(!y.value.ok){a.value&&(a.value.value="");return}const j=Array.from(ee);if(o.max_size&&j.filter(C=>!ar(C,o.max_size)).length>0){a.value&&(a.value.value="");return}if(j.filter(S=>!sr(S,m.value)).length>0){a.value&&(a.value.value="");return}s.value=!0,c.value=o.multiple?j.map((S,C)=>_(S,C)):[];try{if(o.multiple){const T=await Promise.all(j.map(async(L,Z)=>{const W=c.value[Z];W.status="uploading",W.progressPercent=0;const I=await x(L);return I?(W.status="done",W.path=I,W.uploaded=W.size,W.progressPercent=100):(W.status="error",W.error="Помилка при завантаженні"),I})),H=T.filter(L=>!!L);if(H.length===0){h();return}H.length<T.length&&h("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const oe=H,A=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...A,...oe],l("change",r.value);return}const S=j[0],C=await x(S);if(!C){h();return}r.value=C,l("change",C)}catch(S){h(S?.message||void 0)}finally{s.value=!1,c.value=[],a.value&&(a.value.value="")}};return(R,ee)=>(e.openBlock(),e.createElementBlock("div",ki,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:a,type:"file",accept:o.format,multiple:o.multiple,onChange:N,disabled:s.value||n.disabled},null,40,xi),p.value?(e.openBlock(),e.createBlock(ft,{key:0,item:p.value,value:r.value,"onUpdate:value":ee[0]||(ee[0]=j=>r.value=j)},null,8,["item","value"])):e.createCommentVNode("",!0),o.multiple?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(j,V)=>(e.openBlock(),e.createBlock(ft,{key:`${V}-${v(j)}`,multiple:!0,item:j,value:r.value,"onUpdate:value":ee[1]||(ee[1]=S=>r.value=S)},null,8,["item","value"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,j=>(e.openBlock(),e.createBlock(ft,{key:j.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":j.progressPercent,title:j.file.name},null,8,["progress-percent","title"]))),128)),e.createVNode(ft,{action:"","is-uploading":!1,disabled:n.disabled||s.value,title:"Добавить файлы",onClick:f},null,8,["disabled"])],64)):!o.multiple&&!E.value?(e.openBlock(),e.createBlock(ft,{key:2,action:"","is-uploading":!1,disabled:n.disabled||s.value,title:"Обновить файл",onClick:f},null,8,["disabled"])):E.value?(e.openBlock(),e.createBlock(ft,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":E.value.progressPercent,title:E.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0)]))}}),wi={class:"vs-input-file2 flex flex-col gap-4"},vi={class:"flex items-center flex-wrap gap-2"},Ci=["multiple","accept","disabled"],Ei={key:0,class:"text-sm text-rose-600"},Nn=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},multiple:{type:Boolean,default:!1},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref(null),l=e.ref(!1),a=e.ref(""),s=e.ref([]),c=e.inject("values"),i=e.computed(()=>!!t.multiple),d=e.computed(()=>lr(t.format)),p=e.computed(()=>{if(d.value.length)return d.value.map(V=>`.${V}`).join(",")}),m=e.computed(()=>cr(o.value,i.value)),y=e.computed(()=>dr(o.value,i.value)),h=e.computed(()=>ir(t.customParams,c)),f=e.computed(()=>s.value.filter(V=>V.status!=="done")),x=e.computed(()=>i.value?null:f.value[0]||null),b=e.computed(()=>{const V=f.value,S=V.reduce((T,H)=>T+H.size,0);if(!S)return 0;const C=V.reduce((T,H)=>T+Math.min(H.uploaded,H.size),0);return Math.min(100,Math.round(C/S*100))}),E=()=>{t.disabled||l.value||h.value.ok&&r.value?.click()},v=async(V,S)=>{const C=S||ee(V,0);try{C.status="uploading";const T={id:"",fileName:C.file.name,subdir:t.subdir,size:C.file.size,...h.value.params},H=await fetch(`${t.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T)});if(!H.ok)throw new Error("Не вдалося ініціалізувати завантаження");const oe=await H.json().catch(()=>({}));C.uploadId=oe.id||"",C.uploaded=Number(oe.uploaded)||0,C.progressPercent=C.size?Math.min(100,Math.round(C.uploaded/C.size*100)):0;const A=t.chunkSize??5*1024*1024;for(;C.uploaded<C.size;){const W=C.uploaded,I=Math.min(W+A,C.size),G=await C.file.slice(W,I).arrayBuffer(),$=await fetch(`${t.api||"/file/upload2"}/${C.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${W}-${I-1}/${C.size}`,"Content-Type":"application/octet-stream"},body:G});if(!$.ok)throw new Error("Помилка завантаження частини");const O=await $.json().catch(()=>({})),D=O.uploaded!=null?Number(O.uploaded):I;if(C.uploaded=D,C.progressPercent=C.size?Math.min(100,Math.round(C.uploaded/C.size*100)):0,O.finished||D>=C.size){const ie=ur(C.file.name),ce=O.file_path||O.filepath||O.url||(ie?`/files/uploads/${C.uploadId}.${ie}`:`/files/uploads/${C.uploadId}`);return C.path=ce,C.status="done",R(ce),ce}}const L=ur(C.file.name),Z=`/files/uploads/${C.uploadId}${L?`.${L}`:""}`;return C.path=Z,C.status="done",R(Z),Z}catch(T){return C.status="error",C.error=T?.message||"Помилка при завантаженні",a.value=T?.message||"Помилка при завантаженні",null}},_=V=>typeof V=="string"?V:V?.file_path||"",N=V=>!V||V.length===0?[]:Array.from(V),R=V=>{if(i.value){const S=Array.isArray(o.value)?[...o.value]:o.value?[o.value]:[];S.push(V),o.value=S;return}o.value=V},ee=(V,S)=>({key:`${Date.now()}-${S}-${V.name}`,file:V,size:V.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),j=async V=>{const S=V.target,C=N(S.files);if(!C.length)return;if(!h.value.ok){S.value="";return}const T=C.filter(H=>ar(H,t.max_size)&&sr(H,d.value));if(!T.length){S.value="";return}try{l.value=!0,a.value="",s.value=T.map((L,Z)=>ee(L,Z));const oe=(await Promise.allSettled(s.value.map(L=>v(L.file,L)))).filter(L=>L.status==="fulfilled").map(L=>L.value).filter(L=>!!L),A=s.value.filter(L=>L.status==="error").map(L=>L.file.name);if(oe.length===0){a.value="Не вдалося завантажити файл";return}A.length>0?be.notify({type:"warning",title:"Частина файлів не завантажилась",message:A.join(", "),position:"right-bottom"}):be.notify({type:"success",title:"Файл завантажено",message:T.length>1?`Завантажено ${oe.length} файлів`:T[0].name,position:"right-bottom"})}finally{l.value=!1,s.value=[],S.value=""}};return(V,S)=>(e.openBlock(),e.createElementBlock("div",wi,[e.createElementVNode("div",vi,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:i.value,accept:p.value,disabled:l.value||t.disabled,onChange:j},null,40,Ci),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(m.value,(C,T)=>(e.openBlock(),e.createBlock(ft,{key:`${T}-${_(C)}`,multiple:!0,item:C,value:o.value,"onUpdate:value":S[0]||(S[0]=H=>o.value=H)},null,8,["item","value"]))),128)):y.value?(e.openBlock(),e.createBlock(ft,{key:1,item:y.value,value:o.value,"onUpdate:value":S[1]||(S[1]=C=>o.value=C)},null,8,["item","value"])):e.createCommentVNode("",!0),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(f.value,C=>(e.openBlock(),e.createBlock(ft,{key:C.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":C.progressPercent,title:C.file.name},null,8,["progress-percent","title"]))),128)):x.value?(e.openBlock(),e.createBlock(ft,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":x.value.progressPercent,title:x.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0),e.createVNode(ft,{action:"","is-uploading":!1,disabled:t.disabled||l.value,"progress-percent":b.value,title:i.value?"Добавить файлы":"Обновить файл",onClick:E},null,8,["disabled","progress-percent","title"])]),a.value?(e.openBlock(),e.createElementBlock("p",Ei,e.toDisplayString(a.value),1)):e.createCommentVNode("",!0)]))}}),_i={class:"flex items-center justify-center h-[30px] w-[30px]"},Bi={class:"max-w-[55vw]"},Vi={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},Si={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},$i={class:"px-[5px]"},Ai={class:""},Mn=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(n){const t=n,o=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(l){if(l<1024)return`${l} B`;const a=l/1024;return a<1024?`${a.toFixed(2)} KB`:`${(a/1024).toFixed(2)} MB`}return(l,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",_i,[e.createVNode(e.unref(J.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",Bi,[e.createElementVNode("p",Vi,e.toDisplayString(n.item?.uploaded_name),1),e.createElementVNode("p",Si,[e.createElementVNode("span",null,e.toDisplayString(n.item?.username),1),e.withDirectives(e.createElementVNode("span",$i,"|",512),[[e.vShow,n.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(o.value),1),a[0]||(a[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",Ai,e.toDisplayString(r(n.item?.size)),1)])])],64))}}),Ni={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},Mi={key:0,class:"flex w-full gap-x-3 items-center"},Fi={key:1,class:"flex gap-x-3 w-full items-center"},Di={key:2,class:"flex gap-x-3 w-full items-center"},Ti=["href"],Li={key:3,class:"flex gap-x-3 w-full items-center"},Ii={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},Oi={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"},Pi={class:"inline-block"},Ri={class:"inline-block"},zi={class:"inline-block"},ji=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(n,{emit:t}){const o=n,r=t;function l(m){return["pdf","json"].includes(m.ext)}function a(m){return["ppt","pptx","doc","docx","xls","xlsx"].includes(m.ext)}function s(m){const y=document.createElement("a");y.setAttribute("download",m?.uploaded_name),y.href=m?.file_path,y.click()}function c(m){m?.file_path&&window.open(m.file_path,"_blank")}async function i(){try{await fetch(`${o.prefix}/widget/file/${o.item.entity_id}/${o.item.file_id}`),r("update")}catch(m){console.error(m)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:i,updateListOnConfirm:!0})}function p(m){(o.item.ext==="jpg"||o.item.ext==="png")&&r("openLightbox",{item:o.item,index:m})}return(m,y)=>(e.openBlock(),e.createElementBlock("div",Ni,[n.item.ext==="jpg"||n.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",Mi,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:y[0]||(y[0]=h=>p(n.index))},[e.createVNode(Mn,{item:n.item},null,8,["item"])])])):l(n.item)?(e.openBlock(),e.createElementBlock("div",Fi,[e.createVNode(Mn,{item:n.item},null,8,["item"])])):a(n.item)?(e.openBlock(),e.createElementBlock("div",Di,[e.createElementVNode("a",{href:`/api/file-preview?id=${n.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(Mn,{item:n.item},null,8,["item"])],8,Ti)])):(e.openBlock(),e.createElementBlock("div",Li,[e.createVNode(Mn,{item:n.item},null,8,["item"])])),e.createElementVNode("div",Ii,[e.createElementVNode("div",Oi,[e.createElementVNode("div",Pi,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:y[1]||(y[1]=h=>c(n.item))},[e.createVNode(e.unref(J.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",Ri,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:y[2]||(y[2]=h=>s(n.item))},[e.createVNode(e.unref(J.Download),{class:"h-4 w-4"})])]),y[4]||(y[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",zi,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:y[3]||(y[3]=h=>d())},[e.createVNode(e.unref(J.Trash2),{class:"h-4 w-4"})])])])])]))}}),Ui={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},Hi={class:"flex w-full mb-[12px] items-center gap-x-2"},qi={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},Ki={class1:"ml-auto"},Wi={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"},Gi={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},Yi={class:"relative"},Xi={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},Zi={key:1,class:"space-y-3 max-h-[300px] overflow-y-auto [&::-webkit-scrollbar]:w-2 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-track]:bg-gray-100 [&::-webkit-scrollbar-thumb]:bg-gray-300 dark:[&::-webkit-scrollbar-track]:bg-neutral-700 dark:[&::-webkit-scrollbar-thumb]:bg-neutral-500"},Ji={key:0},mr=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(n,{emit:t}){const o=n,r=e.inject("form"),l=e.computed(()=>r.value.formId),a=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),p=e.ref([]),m=e.ref(""),y=e.computed(()=>Array.isArray(p.value)?p.value.filter(_=>_.ext==="jpg"||_.ext==="png").map(_=>_?.file_path):[]),h=e.computed(()=>m.value===""?p.value:p.value.filter(_=>_?.uploaded_name?.includes(m.value))),f=_=>{const N=y.value.findIndex(R=>R===_.item.file_path);N!==-1&&(a.value=!0,s.value=N)},x=async()=>{try{const _=await fetch(`${o.prefix}/widget/file/${l.value}`).then(N=>N.json());p.value=_?.rows}catch(_){console.error(_)}},b=async _=>{await Promise.all(Array.from(_.target.files).map(async N=>{const R=new FormData;R.append("file",N);try{const ee=`${o.prefix}/widget/file/${l.value}`,j=await fetch(ee,{method:"POST",body:R});return j.ok?(c("update","file-list"),N):(be.notify({type:j.status>=400&&j.status<500?"warning":"error",title:"Error",message:`Error code: ${j.status}`}),null)}catch(ee){return be.notify({type:"error",title:"Error",message:ee.message||"Unknown error"}),console.error(ee),null}})),await x()},E=_=>{const N={..._};return _.cancel||(N.cancel=()=>{i.value=!1}),_.updateListOnConfirm&&(N.confirm=async()=>{await _.confirm(),i.value=!1,x()}),N},v=_=>{d.value=E(_),i.value=!0};return e.watch(l,_=>{_&&x()}),e.onMounted(()=>{l.value&&x()}),(_,N)=>{const R=e.resolveComponent("Lightbox"),ee=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",Ui,[e.createElementVNode("div",Hi,[e.createElementVNode("h2",qi," Файлів: "+e.toDisplayString(p.value?.length),1),e.createElementVNode("div",Ki,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:N[0]||(N[0]=j=>b(j))},null,32),e.createElementVNode("div",Wi,[e.createVNode(e.unref(J.Upload),{class:"h-4 w-4"})])])])]),p.value?.length>4?(e.openBlock(),e.createElementBlock("div",Gi,[e.createElementVNode("div",null,[e.createElementVNode("div",Yi,[e.createElementVNode("div",Xi,[e.createVNode(e.unref(J.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":N[1]||(N[1]=j=>m.value=j),class:"py-2 px-3 ps-10 pe-16 block w-full bg-gray-200 xl:bg-gray-100 rounded-lg text-sm focus:border-blue-500 h-[40px] focus:border-2 focus:outline-none disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:border-transparent dark:text-neutral-400 dark:placeholder:text-neutral-400 dark:focus:ring-neutral-600",placeholder:"Введіть назву файлу"},null,512),[[e.vModelText,m.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),p.value?.length?(e.openBlock(),e.createElementBlock("div",Zi,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(j,V)=>(e.openBlock(),e.createBlock(ji,{key:V,prefix:n.prefix,item:j,index:V,onUpdate:N[2]||(N[2]=S=>_.$emit("update","file-list")),onOpenModal:N[3]||(N[3]=S=>v(S)),onOpenLightbox:N[4]||(N[4]=S=>f(S))},null,8,["prefix","item","index"]))),128)),h.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ji,[...N[8]||(N[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])]))])):e.createCommentVNode("",!0),e.createVNode(R,{modelValue:a.value,"onUpdate:modelValue":N[5]||(N[5]=j=>a.value=j),startIndex:s.value,"onUpdate:index":N[6]||(N[6]=j=>s.value=j),images:y.value},null,8,["modelValue","startIndex","images"]),e.createVNode(ee,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":N[7]||(N[7]=j=>i.value=j),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),Qi={class:"flex items-center justify-between"},ec={class:"text-[16px] text-gray-900 font-medium"},tc={class:"grid gap-3"},nc=Ve(e.defineComponent({__name:"vs-container-switcher",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(n){const t=n,o=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{o.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Qi,[e.createElementVNode("p",ec,e.toDisplayString(n.title),1),e.createVNode(to,{modelValue:o.value,"onUpdate:modelValue":l[0]||(l[0]=a=>o.value=a),style:e.normalizeStyle(n.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",tc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,o.value]])]),_:3})]))}}),[["__scopeId","data-v-00f2f0fc"]]),oc={class:"text-[16px] text-gray-900 font-medium"},rc={class:"grid gap-3"},lc=Ve(e.defineComponent({__name:"vs-container-accordion",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})},isOpen:{type:Boolean,default:!1}},setup(n){const t=n,o=e.ref(t.isOpen);return e.watch(()=>t.isOpen,r=>{o.value=r}),(r,l)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:l[0]||(l[0]=a=>o.value=!o.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(J.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[o.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",oc,e.toDisplayString(n.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",rc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,o.value]])]),_:3})]))}}),[["__scopeId","data-v-dde48964"]]),ac={class:"flex items-center justify-between"},sc={switcher:nc,accordion:lc,default:e.defineComponent({__name:"vs-container-default",props:{title:{type:String,default:""},style:{type:Object,default:()=>({})}},setup(n){return(t,o)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",ac,[e.createElementVNode("p",null,e.toDisplayString(n.title),1)]),e.renderSlot(t.$slots,"default")]))}})},it={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},ic=(n,t)=>String(n)===String(t),cc=(n,t)=>String(n)!==String(t),dc=(n,t)=>n>t,uc=(n,t)=>n>=t,pc=(n,t)=>n<t,mc=(n,t)=>n<=t,fc=(n,t)=>Array.isArray(t)&&t.length===2?n>=t[0]&&n<=t[1]:!1,hc=(n,t)=>String(n).startsWith(String(t)),gc=(n,t)=>String(n).endsWith(String(t)),yc=(n,t)=>String(n).includes(String(t)),bc=(n,t)=>Array.isArray(t)?t.includes(n):!1,kc=(n,t)=>Array.isArray(t)?!t.includes(n):!0,xc=(n,t)=>{if(!t)return!0;switch(t?.[1]){case it.Equal:return ic(n,t?.[2]);case it.Inequal:return cc(n,t?.[2]);case it.Higer:return dc(n,t?.[2]);case it.HigerOrEqual:return uc(n,t?.[2]);case it.Lower:return pc(n,t?.[2]);case it.LowerOrEqual:return mc(n,t?.[2]);case it.Between:return fc(n,t?.[2]);case it.StartWith:return hc(n,t?.[2]);case it.EndWith:return gc(n,t?.[2]);case it.Contain:return yc(n,t?.[2]);case it.In:return bc(n,t?.[2]);case it.NotIn:return kc(n,t?.[2]);default:return!0}};function fr(n,t,o){return t==null||!Array.isArray(t)||t.length===0?!0:(Array.isArray(t[0])?t:[t]).every(l=>{if(!Array.isArray(l)||l.length<2)return!0;const a=l[0],s=o?n?.[o]?.[a]??n?.[a]:n?.[a];return xc(s,l)})}const hr=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(n){const t=n,o=e.inject("values",e.ref({})),r=e.inject("form"),l=e.computed(()=>t.schema?.filter(c=>fr(o.value,c?.conditions,t.name||void 0))),a=e.computed(()=>sc[t.view]),s=e.computed(()=>{if(o.value||(o.value={}),!t.name)return o.value;const c=o.value[t.name];if(c)return c;const i={};return o.value={...o.value,[t.name]:i},i});return(c,i)=>n.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{key:0,title:n.title,style:e.normalizeStyle(n.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createBlock(zr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":p=>s.value[d.name]=p,style:n.style,error:e.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),gr=({props:n,fetchOptionByValue:t,optionsList:o,selectedOption:r,modelValue:l,onCreated:a})=>{const s=e.ref(!1),c=e.ref({}),i=e.ref([]),d=e.ref(null),p=e.computed(()=>n.add?.title||"Додати"),m=e.computed(()=>n.add?.token||n.add?.model||""),y=e.computed(()=>n.add?.pk||"id");return{isOpenAdd:s,addData:c,addSchema:i,addForm:d,addTitle:p,addOption:async()=>{if(!(!m.value||d?.value.validate()))try{const b=n.add?.api??`/api/table/${m.value}`,E=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c.value)}),v=await E.json().catch(()=>({})),_=v?.error||v?.message,N=Number(v?.code)>=400;if(!E.ok||N){be.notify({title:"Помилка",type:"error",message:_||`Код помилки: ${v?.code||E.status}`});return}const R=v?.[y.value]??v?.id;if(!R){be.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const ee=await t(R);ee&&(o.value.some(V=>String(V?.id)===String(ee.id))||o.value.push(ee)),a?await a(ee,R):ee&&(r.value=ee,l.value=R),s.value=!1,be.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(b){be.notify({title:"Помилка",type:"error",message:b?.message||"Не вдалося створити обʼєкт."})}},onAddValue:async()=>{if(!n.add)return null;const x=await fetch(`/api/template/form/${n.add.form}`).then(b=>b.json());return i.value=x.schema,c.value={},s.value=!0,null}}},wc=["aria-expanded","data-focus"],vc={class:"vs-input-select__value-area relative flex flex-1 items-center gap-1 py-0.5 pl-1 pr-0 overflow-hidden h-full min-w-0"},Cc={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Ec={class:"flex items-center gap-1 min-w-0"},_c=["title"],Bc=["innerHTML"],Vc=["onClick"],Sc={class:"flex-1 min-w-[2px]"},$c=["placeholder"],Ac=["title"],Nc=["innerHTML"],Mc={key:3,class:"truncate flex-1 min-w-0"},Fc={key:2,class:"flex-1 min-w-[2px]"},Dc=["placeholder"],Tc={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},Lc={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},Ic=["disabled"],Oc={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},Pc=["disabled","title"],Rc=e.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(n,{emit:t}){const o=n,r=t,l=e.computed({get:()=>o.keyWord,set:a=>r("update:keyWord",a)});return(a,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",n.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":n.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...c)=>n.onControlKeydown&&n.onControlKeydown(...c)),onClick:s[11]||(s[11]=(...c)=>n.onControlClick&&n.onControlClick(...c)),"data-focus":n.isOpen||n.inputFocus?"true":"false",ref:n.setTriggerRef},[e.createElementVNode("div",vc,[n.isMulti?(e.openBlock(),e.createElementBlock("div",Cc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.selectedOptions,c=>(e.openBlock(),e.createElementBlock("div",{key:c.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Ec,[n.shouldShowColorDot(c)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:c?.color})},null,4)):e.createCommentVNode("",!0),!n.optionTemplate&&n.optionHasIcon(c)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(n.iconWrapperClass),style:e.normalizeStyle(n.getIconColorStyle(c)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.resolveOptionIcon(c)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:n.getLabel(c)},[n.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:n.renderTemplate(c)},null,8,Bc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c.text),1)],64))],8,_c)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(i=>n.onRemoveSelected(c.id),["stop"])},[e.createVNode(e.unref(J.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,Vc)]))),128)),e.createElementVNode("div",Sc,[!n.disabled&&n.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:n.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:n.selectedIds.length?" ":n.placeholder,"onUpdate:modelValue":s[0]||(s[0]=c=>l.value=c),onFocus:s[1]||(s[1]=(...c)=>n.onInputFocus&&n.onInputFocus(...c)),onBlur:s[2]||(s[2]=(...c)=>n.onInputBlur&&n.onInputBlur(...c)),onKeydown:s[3]||(s[3]=(...c)=>n.onInputKeydown&&n.onInputKeydown(...c))},null,40,$c)),[[e.vModelText,l.value]]):e.createCommentVNode("",!0)])])):!n.isMulti&&n.selectedOptionLabel&&l.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",n.disabled||!n.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:n.selectedOptionLabel},[n.shouldShowColorDot(n.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:n.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!n.optionTemplate&&n.optionHasIcon(n.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(n.iconWrapperClass),style:e.normalizeStyle(n.getIconColorStyle(n.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.resolveOptionIcon(n.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),n.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:n.renderTemplate(n.selectedOption)},null,8,Nc)):(e.openBlock(),e.createElementBlock("span",Mc,e.toDisplayString(n.selectedOption?.text),1))],10,Ac)):e.createCommentVNode("",!0),!n.isMulti&&!n.disabled&&n.search?(e.openBlock(),e.createElementBlock("div",Fc,[e.withDirectives(e.createElementVNode("input",{ref:n.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:n.selectedOptionLabel?" ":n.placeholder,"onUpdate:modelValue":s[4]||(s[4]=c=>l.value=c),onFocus:s[5]||(s[5]=(...c)=>n.onInputFocus&&n.onInputFocus(...c)),onBlur:s[6]||(s[6]=(...c)=>n.onInputBlur&&n.onInputBlur(...c)),onKeydown:s[7]||(s[7]=(...c)=>n.onInputKeydown&&n.onInputKeydown(...c))},null,40,Dc),[[e.vModelText,l.value]])])):!n.isMulti&&n.disabled&&(!n.selectedOptionLabel||l.value!=="")?(e.openBlock(),e.createElementBlock("div",Tc,e.toDisplayString(n.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Lc,[n.showClear?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:n.disabled,onClick:s[8]||(s[8]=e.withModifiers((...c)=>n.onClearSelected&&n.onClearSelected(...c),["stop"]))},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,Ic)):e.createCommentVNode("",!0),n.showClear?(e.openBlock(),e.createElementBlock("div",Oc)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:n.disabled,onClick:s[9]||(s[9]=e.withModifiers((...c)=>n.onToggleSelect&&n.onToggleSelect(...c),["stop"])),title:n.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(J.ChevronDown),{class:"h-4 w-4"})],8,Pc)])],42,wc))}}),zc=["aria-disabled","onMousedown"],jc={class:"leading-[19px]"},Uc=["innerHTML"],Hc={key:1,class:"px-3 py-2 text-center text-gray-500"},qc=e.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(n){return(t,o)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,ref:n.setDropdownRef,class:"fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:e.normalizeStyle(n.dropdownStyle),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:n.dropdownStyle.maxHeight||"300px"}),ref:n.setListRef},[n.filteredOptionsList.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(n.filteredOptionsList,(r,l)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:a=>n.setItemRef(a,l),class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",n.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",n.selectedNavIndex===l&&!n.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":n.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(a=>n.onOptionClick(r),["prevent","stop"])},[n.shouldShowColorDot(r)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:r?.color})},null,4)):e.createCommentVNode("",!0),!n.optionTemplate&&n.optionHasIcon(r)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(n.iconWrapperClass),style:e.normalizeStyle(n.getIconColorStyle(r)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",jc,[n.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:n.renderTemplate(r)},null,8,Uc)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,zc))),128)):(e.openBlock(),e.createElementBlock("div",Hc," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),Kc=["disabled"],Wc="__autoMeta",yr="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",po=Ve(e.defineComponent({__name:"vs-input-select",props:{multiple:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean,default:!0},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{default:400},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{default:0},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(n,{emit:t}){const o=n,r=t,l=e.computed(()=>o.multiple),a=e.computed(()=>o.disabled),s=e.computed(()=>o.search);Je(o.style);const c=e.computed({get:()=>o.modelValue,set:K=>r("update:modelValue",K)});!c.value&&o.defaultValue&&(c.value=o.defaultValue);const i=e.ref(null),d=e.ref(null),p=e.ref(null),m=e.ref(null),y=e.ref(!1),h=e.ref(!1),f=e.ref(null),x=e.ref(-1),b=e.ref([]),E=e.ref(""),v=e.ref(null),_=K=>{d.value=K},N=K=>{v.value=K},R=K=>{m.value=K},ee=K=>{p.value=K},j=(K,re)=>{b.value[re]=K},V=e.ref({}),S=e.ref([]),C=e.computed(()=>{if(!S.value.length)return[];const K=ke.value,re=new Map(K.map(he=>[he.id?.toString(),he]));return S.value.map(he=>re.get(he?.toString())).filter(he=>!!he)}),T=e.computed(()=>o.placeholder||"Select..."),H=e.computed(()=>G(f.value)),oe=e.computed(()=>a.value?!1:l.value?S.value.length>0:!!c.value),A=K=>l.value?S.value.some(re=>re?.toString()===K?.toString()):c.value?.toString()===K?.toString(),L=e.computed(()=>{let K=ke.value??[];if(!o.data&&E.value.trim()!==""){const re=E.value.toLowerCase();K=K.filter(he=>{const Ae=G(he).toLowerCase(),Oe=he.text?.toLowerCase?.()||"";return Ae.includes(re)||Oe.includes(re)})}if(l.value&&S.value.length){const re=new Set(S.value.map(he=>he?.toString()));K=K.filter(he=>!re.has(he.id?.toString()))}return K}),Z=e.inject("values"),W=e.inject("field-props"),I=e.computed(()=>o.slot??o?.optionTemplate??""),z=K=>Cn(K,I.value),G=K=>En(K,I.value),$=e.computed(()=>xn(I.value)),O=K=>Qt(K),D=K=>!!(!$.value&&Nt(K)&&!O(K)),ie=K=>{const re=Nt(K);return re?{color:re}:void 0},ce=K=>!!(!$.value&&(Jt(K)||O(K))),te=(K,re,he)=>{if(!W)return!1;const Ae=W.value?.[K]??{},Oe=(ze,dt,ut)=>{if(!dt.length)return ze;const[Qe,...nt]=dt,pt={...ze};if(!nt.length)return pt[Qe]=ut,pt;const Xt=typeof ze[Qe]=="object"&&ze[Qe]!==null?ze[Qe]:{};return pt[Qe]=Oe(Xt,nt,ut),pt},Ze=Oe(Ae,re,he);return W.value={...W.value||{},[K]:Ze},!0},fe=K=>{if(!W||!o.name)return;const re=W.value?.[o.name]??{};W.value={...W.value||{},[o.name]:{...re,[Wc]:K}}},_e=K=>{if(!o.set)return;const re=Z?.value;!re&&!W||Object.entries(o.set).forEach(([he,Ae])=>{if(!he)return;const Oe=K?K[Ae]:null,Ze=he.split(".").map(ut=>ut.trim()).filter(Boolean);if(!Ze.length)return;const[ze,...dt]=Ze;dt.length&&te(ze,dt,Oe??null)||re&&(re[ze]=Oe??null)})},{optionsList:ke,parentValue:Ne,fetchOptions:Ue,fetchOptionByValue:$e,loadOptions:Le}=vn({props:o,formValues:Z,watchParent:!1}),ne=K=>K==null?"":String(K),le=K=>{if(l.value){if(!S.value.length){ke.value=K;return}}else if(!f.value){ke.value=K;return}const re=new Set(K.map(Ae=>ne(Ae.id)).filter(Boolean));if(l.value){const Ae=new Set(S.value.map(Ze=>ne(Ze)).filter(Boolean)),Oe=(ke.value??[]).filter(Ze=>{const ze=ne(Ze.id);return!ze||!Ae.has(ze)?!1:!re.has(ze)});ke.value=[...Oe,...K];return}const he=ne(f.value?.id);if(he&&!re.has(he)){ke.value=[f.value,...K];return}ke.value=K},ve=e.ref(0),Ce=async K=>{const re=++ve.value,he=await Ue(K);return re!==ve.value?null:he},Ie=async()=>{if(o.data){const K=await Ce(E.value);return K&&le(K),ke.value}return Le()},We=async K=>{if(K==null||K==="")return null;const re=ke.value?.find(he=>he?.id?.toString()===String(K));return re||$e(K)},Y=async K=>{const re=new Set(ke.value.map(Ae=>Ae.id?.toString())),he=K.filter(Ae=>!re.has(Ae?.toString()));he.length&&await he.reduce(async(Ae,Oe)=>{await Ae;const Ze=await We(Oe);Ze&&ke.value.push(Ze)},Promise.resolve())},Q=()=>{if(!L.value.length){x.value=-1;return}let K=0;if(!l.value&&f.value){const re=f.value.id?.toString(),he=L.value.findIndex(Ae=>Ae.id?.toString()===re);he>=0&&(K=he)}x.value=K,e.nextTick(()=>{P(b.value[K],p.value)})},ae=async()=>{a.value||(y.value=!0,await e.nextTick(()=>{we()}),await Ie(),await e.nextTick(()=>{we(),v.value?.focus()}),Q())},me=()=>{y.value=!1,x.value=-1,e.nextTick(()=>{v.value?.blur()})},ge=async K=>{if(a.value)return;(K!==void 0?K:!y.value)?await ae():me()},Me=async()=>{if(!a.value){if(y.value){me();return}await ae()}},Fe=()=>{l.value?(S.value=[],c.value=[],r("change",[]),q(null,[])):(f.value=null,c.value=null,r("change",null),q(null,null)),_e(null),fe(null),E.value="",me(),e.nextTick(()=>{v.value?.focus()})},De=K=>{l.value&&(S.value=S.value.filter(re=>re?.toString()!==K?.toString()),c.value=[...S.value],r("change",c.value),q(null),e.nextTick(()=>v.value?.focus()))},q=(K,re)=>{const he=re??(l.value?[...S.value]:K?.id??null);r("value-selected",{name:o.name,value:he,option:K})},w=(K,re="manual")=>{l.value?(A(K.id)||(S.value=[...S.value,K.id],c.value=[...S.value],r("change",c.value),q(K)),E.value="",e.nextTick(()=>{v.value?.focus(),x.value=Math.min(x.value,L.value.length-1)}),_e(null)):(f.value=K,c.value=K.id,r("change",c.value),q(K),E.value="",me(),_e(K),re==="parent-auto"&&fe({source:re,parentField:o.parent??null,parentValue:Ne.value??null}))},M=K=>{if(A(K.id)){l.value||me();return}w(K)},P=(K,re)=>{if(!K||!re)return;const he=K.offsetTop,Ae=he+K.offsetHeight,Oe=re.scrollTop,Ze=Oe+re.clientHeight;let ze=re.scrollTop;he<Oe?ze=he-80:Ae>Ze&&(ze=Ae-re.clientHeight+4);const dt=re;dt.scrollTop=ze},de=K=>{let re=K.parentElement;for(;re;){if(re.classList.contains("ui-dialog__content"))return re;const he=window.getComputedStyle(re),Ae=he.overflow+he.overflowY+he.overflowX;if(Ae.includes("auto")||Ae.includes("scroll")||re===document.body||re===document.documentElement)return re;re=re.parentElement}return document.body},we=()=>{if(!d.value)return;const K=d.value.getBoundingClientRect(),re=window.innerHeight||document.documentElement.clientHeight,he=window.innerWidth||document.documentElement.clientWidth,Ae=8,Oe=8,Ze=o.maxHeight||300,ze=re-K.bottom-Oe-Ae,dt=K.top-Oe-Ae,ut=ze>=dt,Qe=Math.max(he-Ae*2,0);let{width:nt}=K;Qe>0&&nt>Qe&&(nt=Qe);let{left:pt}=K;pt+nt+Ae>he&&(pt=he-nt-Ae),pt=Math.max(pt,Ae);const Xt=Math.min(Ze,Math.max(ut?ze:dt,50));V.value={position:"fixed",left:`${pt}px`,width:`${nt}px`,maxHeight:`${Xt}px`,transform:ut?"none":"translateY(-100%)",top:ut?`${K.bottom+Oe}px`:`${K.top-Oe}px`}},Pe=async K=>{a.value||!y.value&&(K.key==="ArrowDown"||K.key==="ArrowUp")&&(K.preventDefault(),await ae())},Te=K=>{if(!y.value)return;const{key:re}=K;if(re==="ArrowDown")K.preventDefault(),x.value+1<L.value.length&&(x.value+=1,P(b.value[x.value],p.value));else if(re==="ArrowUp")K.preventDefault(),x.value>0&&(x.value-=1,P(b.value[x.value],p.value));else if(re==="Enter"){K.preventDefault();const he=L.value[x.value];he&&w(he),v.value?.blur()}else re==="Escape"?(K.preventDefault(),me()):re==="Backspace"?l.value&&E.value===""&&S.value.length&&(S.value=S.value.slice(0,-1),c.value=[...S.value],r("change",c.value)):re==="Home"?(x.value=0,P(b.value[0],p.value)):re==="End"?(x.value=L.value.length-1,P(b.value[x.value],p.value)):re==="Tab"&&me()},He=()=>{a.value||(h.value=!0)},tt=()=>{h.value=!1,E.value=""},U=K=>{K.key==="Escape"&&y.value&&me()},ue=K=>{const re=K.target;i.value?.contains(re)||m.value?.contains(re)||me()},Re=K=>{y.value&&p.value&&!p.value.contains(K.target)&&we()},gt=()=>{y.value&&we()},xt=()=>{y.value&&we()};async function qe(){if(l.value)Array.isArray(c.value)?S.value=[...c.value]:(S.value=c.value==null?[]:[c.value],c.value=[...S.value]),o.data&&S.value.length&&(await Y(S.value),await e.nextTick());else{if(Array.isArray(c.value)){const K=c.value[0]??null;c.value=K??null}c.value!=null&&c.value!==""?f.value=await We(c.value):f.value=null,_e(f.value??null)}}e.watch(c,()=>{qe()}),e.onMounted(async()=>{if(addEventListener("keydown",U),addEventListener("scroll",Re,!0),addEventListener("resize",gt),document.addEventListener("click",ue,!0),d.value&&de(d.value).addEventListener("scroll",xt,!0),o.options?.length&&!o.data)ke.value=[...o.options];else if(o.data){const K=await Ce("");K&&le(K)}await qe(),Vt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",U),removeEventListener("scroll",Re,!0),removeEventListener("resize",gt),document.removeEventListener("click",ue,!0),d.value&&de(d.value).removeEventListener("scroll",xt,!0)});const{isOpenAdd:Lt,addData:It,addSchema:Yt,addForm:Ot,addTitle:No,addOption:Mo,onAddValue:hn}=gr({props:o,fetchOptionByValue:$e,optionsList:ke,selectedOption:f,modelValue:c});function Fo(K,re=200){let he;return(...Ae)=>{he&&clearTimeout(he),he=window.setTimeout(()=>K(...Ae),re)}}const Gn=Fo(async K=>{const re=await Ce(K);re&&le(re)},200);e.watch(E,K=>{o.data&&Gn(K.trim())}),e.watch(()=>o.options,K=>{!o.data&&K?.length&&(ke.value=[...K],qe())},{immediate:!0});const Vt=e.ref(!0);return e.watch(Ne,async()=>{if(o.data&&(Vt.value||(l.value?(S.value=[],c.value=[],r("change",[])):(f.value=null,c.value=null,r("change",null))),await Ie(),o.auto===1&&Ne.value&&ke.value.length>0)){const K=ke.value[0];K&&w(K,"parent-auto")}}),(K,re)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(be.VsModal),{visible:e.unref(Lt),"onUpdate:visible":re[1]||(re[1]=he=>e.isRef(Lt)?Lt.value=he:null),class:"z-[1000]",title:e.unref(No),buttonText:"Додати",onDone:e.unref(Mo),teleport:n.teleport},{default:e.withCtx(()=>[e.createVNode(ct,{schema:e.unref(Yt),modelValue:e.unref(It),"onUpdate:modelValue":re[0]||(re[0]=he=>e.isRef(It)?It.value=he:null),ref_key:"addForm",ref:Ot},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:i,onClick:re[4]||(re[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",o.customClass])},[re[5]||(re[5]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),re[6]||(re[6]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(Rc,{keyWord:E.value,"onUpdate:keyWord":re[2]||(re[2]=he=>E.value=he),disabled:a.value,"is-open":y.value,"input-focus":h.value,"is-multi":l.value,"selected-options":C.value,"selected-ids":S.value,placeholder:T.value,search:s.value,"option-template":I.value,"icon-wrapper-class":yr,"selected-option-label":H.value,"selected-option":f.value,"show-clear":oe.value,"set-trigger-ref":_,"set-input-ref":N,"should-show-color-dot":D,"option-has-icon":ce,"get-icon-color-style":ie,"resolve-option-icon":O,"render-template":z,"get-label":G,"on-control-keydown":Pe,"on-control-click":Me,"on-input-focus":He,"on-input-blur":tt,"on-input-keydown":Te,"on-remove-selected":De,"on-clear-selected":Fe,"on-toggle-select":ge},null,8,["keyWord","disabled","is-open","input-focus","is-multi","selected-options","selected-ids","placeholder","search","option-template","selected-option-label","selected-option","show-clear"]),e.createVNode(qc,{"is-open":y.value,"dropdown-style":V.value,"filtered-options-list":L.value,"selected-nav-index":x.value,"option-template":I.value,"icon-wrapper-class":yr,"set-dropdown-ref":R,"set-list-ref":ee,"set-item-ref":j,"is-selected":A,"on-option-click":M,"should-show-color-dot":D,"option-has-icon":ce,"get-icon-color-style":ie,"resolve-option-icon":O,"render-template":z},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),o.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:re[3]||(re[3]=(...he)=>e.unref(hn)&&e.unref(hn)(...he)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:a.value,type:"button"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),re[7]||(re[7]=e.createElementVNode("span",null,"Додати",-1))],8,Kc)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-5487673a"]]),mo=(n="")=>`${n}${Math.floor(Math.random()*1e4)}`,Gc=["disabled","aria-expanded"],Yc={class:"truncate"},Xc={class:"py-2 px-4"},Zc={class:"block font-medium text-[13px] text-foreground"},Jc={class:"truncate"},Qc={class:"p-1 border-t border-gray-200"},ed={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"},td=["onClick"],nd=["checked"],od={class:"shrink-0 size-3.5 flex justify-center items-center"},rd={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},ld={class:"truncate"},ad={key:0,class:"px-3 py-2 text-xs text-stone-500"},Fn=e.defineComponent({__name:"vs-input-inline-select",props:{multiple:{type:Boolean},disabled:{type:Boolean,default:!1},mode:{},defaultValue:{},search:{type:Boolean},placeholder:{default:"Оберіть значення"},prefix:{default:"api"},host:{default:""},data:{default:""},options:{default:()=>[]},api:{default:null},maxHeight:{},parent:{},set:{},slot:{},add:{},teleport:{default:"body"},auto:{},start:{default:0},style:{default:()=>({})},customClass:{default:""},modelValue:{},error:{default:null},name:{},maxlength:{},minlength:{}},emits:["change","update:modelValue","value-selected"],setup(n,{emit:t}){const o=n,r=t;Je(o.style);const l=e.computed({get:()=>Array.isArray(o.modelValue)?o.modelValue[0]??null:o.modelValue??null,set:te=>r("update:modelValue",te)});l.value==null&&o.defaultValue!=null&&(l.value=o.defaultValue);const a=e.inject("values"),s=e.inject("field-props"),c=e.computed(()=>!!o.disabled),i=e.ref(null),d=e.ref(!1),p=e.ref(null),m=e.ref(null),y=e.ref(null),h=e.ref({}),f=`vs-input-inline-select-${mo()}`,x=e.computed(()=>o.placeholder||"Оберіть значення"),b=e.computed(()=>R(i.value)||o.placeholder||"Оберіть значення"),E=e.computed(()=>o.slot??""),v=e.computed(()=>xn(E.value)),_=e.computed(()=>o.teleport||"body"),N=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,R=te=>En(te,E.value),ee=te=>!!(!v.value&&Nt(te)),j=e.computed(()=>{const te=Nt(i.value).trim();return te?N.test(te)?`bg-[${te}] border-[${te}]`:`bg-${te.toLowerCase()}-500 border-${te.toLowerCase()}-500`:""}),{optionsList:V,parentValue:S,fetchOptions:C,fetchOptionByValue:T,loadOptions:H}=vn({props:o,formValues:a,watchParent:!1}),oe=(te,fe,_e)=>{if(!s)return!1;const ke=s.value?.[te]??{},Ne=($e,Le,ne)=>{if(!Le.length)return $e;const[le,...ve]=Le,Ce={...$e};if(!ve.length)return Ce[le]=ne,Ce;const Ie=typeof $e[le]=="object"&&$e[le]!==null?$e[le]:{};return Ce[le]=Ne(Ie,ve,ne),Ce},Ue=Ne(ke,fe,_e);return s.value={...s.value||{},[te]:Ue},!0},A=te=>{if(!o.set)return;const fe=a?.value;!fe&&!s||Object.entries(o.set).forEach(([_e,ke])=>{if(!_e)return;const Ne=te?te[ke]:null,Ue=_e.split(".").map(ne=>ne.trim()).filter(Boolean);if(!Ue.length)return;const[$e,...Le]=Ue;Le.length&&oe($e,Le,Ne??null)||fe&&(fe[$e]=Ne??null)})},L=te=>l.value?.toString?.()===te?.toString?.(),Z=()=>{if(!m.value||typeof window>"u")return;const te=m.value.getBoundingClientRect(),fe=8,_e=8,ke=window.innerHeight||document.documentElement.clientHeight,Ne=window.innerWidth||document.documentElement.clientWidth,Ue=y.value?.offsetHeight||260,$e=Math.max(te.width,176),Le=Math.max(Ne-fe*2,120),ne=Math.min($e,Le);let le=te.left;le+ne+fe>Ne&&(le=Ne-ne-fe),le=Math.max(le,fe);const ve=ke-te.bottom-_e-fe,Ce=te.top-_e-fe,Ie=ve<Math.min(Ue,260)&&Ce>ve,We=Math.max(120,Math.min(320,Ie?Ce:ve));h.value={position:"fixed",left:`${le}px`,top:Ie?`${te.top-_e}px`:`${te.bottom+_e}px`,transform:Ie?"translateY(-100%)":"none",width:`${ne}px`,maxHeight:`${We}px`}},W=async()=>{if(o.data){V.value=await C("");return}await H()},I=async()=>{if(l.value==null||l.value===""){i.value=null,A(null);return}const te=V.value.find(fe=>fe.id?.toString()===String(l.value));if(te){i.value=te,A(te);return}i.value=await T(l.value),A(i.value??null)},z=async()=>{c.value||(d.value=!0,await e.nextTick(),Z(),await W(),await e.nextTick(),Z())},G=()=>{d.value=!1},$=async()=>{if(d.value){G();return}await z()},O=te=>{r("value-selected",{name:o.name,value:te?.id??null,option:te})},D=te=>{i.value=te,l.value=te.id,r("change",te.id),O(te),A(te),G()},ie=te=>{const fe=te.target;p.value?.contains(fe)||y.value?.contains(fe)||G()},ce=()=>{d.value&&Z()};return e.watch(()=>o.options,te=>{o.data||(V.value=te?[...te]:[],I())},{immediate:!0,deep:!0}),e.watch(l,()=>{I()}),e.watch(S,async()=>{o.data&&(await W(),i.value&&!V.value.some(te=>te.id?.toString()===i.value?.id?.toString())&&(i.value=null,l.value=null,r("change",null),O(null),A(null)))}),e.onMounted(async()=>{document.addEventListener("click",ie,!0),window.addEventListener("resize",ce),window.addEventListener("scroll",ce,!0),await W(),await I()}),e.onUnmounted(()=>{document.removeEventListener("click",ie,!0),window.removeEventListener("resize",ce),window.removeEventListener("scroll",ce,!0)}),(te,fe)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:p,onClick:fe[0]||(fe[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:m,type:"button",disabled:c.value,"aria-expanded":d.value?"true":"false","aria-haspopup":"menu",class:e.normalizeClass(["py-1.5 px-2.5 inline-flex items-center gap-2 text-nowrap text-xs sm:text-[13px] rounded-lg focus:outline-hidden disabled:opacity-50 disabled:pointer-events-none max-w-full border",j.value?`${j.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:$},[e.createElementVNode("span",Yc,e.toDisplayString(b.value),1)],10,Gc),(e.openBlock(),e.createBlock(e.Teleport,{to:_.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:y,class:"z-[3000] w-44 transition-[opacity,margin] duration-150 bg-white text-gray-900 border border-gray-200 rounded-xl shadow-lg",style:e.normalizeStyle(h.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",Xc,[e.createElementVNode("span",Zc,[e.createElementVNode("span",Jc,e.toDisplayString(x.value),1)])]),e.createElementVNode("div",Qc,[e.createElementVNode("div",ed,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(V),_e=>(e.openBlock(),e.createElementBlock("label",{key:_e.id,class:"py-1.5 px-3 group flex items-center gap-x-3 rounded-lg cursor-pointer text-[13px] text-gray-800 hover:bg-gray-100",onClick:e.withModifiers(ke=>D(_e),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:f,checked:L(_e.id),tabindex:"-1"},null,8,nd),e.createElementVNode("span",od,[ee(_e)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:_e.color})},null,4)):(e.openBlock(),e.createElementBlock("span",rd))]),e.createElementVNode("span",ld,e.toDisplayString(R(_e)),1),e.createVNode(e.unref(J.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",L(_e.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,td))),128))]),e.unref(V).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",ad,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),sd=["placeholder","disabled"],br=e.defineComponent({__name:"vs-input-textarea",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,{inputClass:o}=Je(t.style),r=e.useModel(n,"modelValue"),l=e.computed(()=>!!t.disabled),a=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:a.value,disabled:l.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(o)]]),style:{border:"1px solid #CFD9E0"}},null,42,sd)),[[e.vModelText,r.value]])}}),kr=e.defineComponent({__name:"vs-input-richtext",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},format:{default:"html"},richtextProps:{default:()=>({})}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=e.defineAsyncComponent(()=>Promise.resolve().then(()=>_y)),o=n,{inputClass:r}=Je(o.style),l=e.useModel(n,"modelValue"),a=e.computed(()=>!!o.disabled),s=e.computed(()=>o.placeholder??""),c=e.computed(()=>({height:o.richtextProps.height||"300px",format:o.format,...o.richtextProps}));return(i,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full",[n.customClass,e.unref(r)]]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:l.value,"onUpdate:modelValue":d[0]||(d[0]=p=>l.value=p),placeholder:s.value},c.value),null,16,["modelValue","placeholder"])],6))}}),id={},cd={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function dd(n,t){return e.openBlock(),e.createElementBlock("svg",cd,[...t[0]||(t[0]=[e.createStaticVNode('<rect x="27" y="50.5" width="124" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="27" y="50.5" width="124" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-50 dark:stroke-neutral-700/10"></rect><rect x="34.5" y="58" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="61" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="66.5" y="73" width="77" height="6" rx="3" fill="currentColor" class="fill-gray-50 dark:fill-neutral-700/30"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" fill="currentColor" class="fill-white dark:fill-neutral-800"></rect><rect x="19.5" y="28.5" width="139" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/30"></rect><rect x="27" y="36" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="39" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><rect x="59" y="51" width="92" height="6" rx="3" fill="currentColor" class="fill-gray-100 dark:fill-neutral-700/70"></rect><g filter="url(#filter1)"><rect x="12" y="6" width="154" height="40" rx="8" fill="currentColor" class="fill-white dark:fill-neutral-800" shape-rendering="crispEdges"></rect><rect x="12.5" y="6.5" width="153" height="39" rx="7.5" stroke="currentColor" class="stroke-gray-100 dark:stroke-neutral-700/60" shape-rendering="crispEdges"></rect><rect x="20" y="14" width="24" height="24" rx="4" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="17" width="60" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect><rect x="52" y="29" width="106" height="6" rx="3" fill="currentColor" class="fill-gray-200 dark:fill-neutral-700"></rect></g><defs><filter id="filter1" x="0" y="0" width="178" height="64" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"></feColorMatrix><feOffset dy="6"></feOffset><feGaussianBlur stdDeviation="6"></feGaussianBlur><feComposite in2="hardAlpha" operator="out"></feComposite><feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.03 0"></feColorMatrix><feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_1187_14810"></feBlend><feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_1187_14810" result="shape"></feBlend></filter></defs>',12)])])}const ud=Ve(id,[["render",dd]]),pd={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},md={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"},fd={key:0,class:"relative flex-1 min-w-0"},hd={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},gd={class:"w-full overflow-x-auto"},yd={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},bd={class:"bg-gray-50"},kd={class:"border-b border-gray-200"},xd={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},wd=["onClick"],vd={key:0,class:"text-gray-400"},Cd={key:0,colspan:"100%",class:"text-center"},Ed={class:"w-full"},_d={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},Bd=["data-row-index","onDragstart","onDragover","onDrop"],Vd=["onPointerdown"],Sd={class:"flex items-center justify-center"},$d=["innerHTML"],Ad={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},Nd={key:0},Md=["src"],Fd={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},Dd={key:1,class:"flex items-center justify-center"},Td={key:2,class:"text-sm font-medium text-gray-900"},Ld={class:"px-4 py-3 text-right whitespace-nowrap"},Id={class:"flex items-center justify-end gap-2"},Od=["onClick"],Pd=["onClick"],Rd={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},xr=e.defineComponent({__name:"vs-input-datatable",props:e.mergeModels({actions:{},colModel:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useSlots(),r=Y=>t.actions===void 0?!0:t.actions.includes(Y),l=["search","import","export","add"],a=e.computed(()=>l.some(Y=>r(Y))),s=e.useModel(n,"modelValue"),c=e.ref({}),i=e.ref(""),d=e.ref(null),p=e.ref("asc"),m=e.computed(()=>{const Y=s.value??[],Q=i.value?Y.filter(ge=>y.value?.some(Me=>{const Fe=Me.key||Me.name;if(!Fe)return!1;const De=ge[Fe];return De?Array.isArray(De)?De.join(", ").toLowerCase().includes(i.value.toLowerCase()):String(De).toLowerCase().includes(i.value.toLowerCase()):!1})):Y;if(!d.value)return Q;const ae=d.value,me=[...Q].sort((ge,Me)=>{const Fe=Ne(ge?.[ae]),De=Ne(Me?.[ae]);return typeof Fe=="number"&&typeof De=="number"?Fe-De:String(Fe).localeCompare(String(De))});return p.value==="asc"?me:me.reverse()}),y=e.computed(()=>(t.colModel??[]).filter(Y=>!Y.tableHidden)),h=e.ref(null),f=e.ref(null),x=e.ref(null);function b(Y){return Y.pointerType==="touch"||Y.pointerType==="pen"}function E(Y,Q){const me=document.elementFromPoint(Y,Q)?.closest?.("[data-row-index]")??null;if(!me)return null;const ge=me.getAttribute("data-row-index");if(ge==null)return null;const Me=Number.parseInt(ge,10);return Number.isNaN(Me)?null:Me}function v(Y,Q){b(Y)&&(Y.preventDefault(),Y.currentTarget.setPointerCapture(Y.pointerId),h.value=Q,f.value=Q)}function _(Y){if(h.value===null||!b(Y))return;Y.preventDefault();const Q=E(Y.clientX,Y.clientY);Q!==null&&(f.value=Q)}function N(Y){if(h.value===null||!b(Y))return;Y.preventDefault();const Q=E(Y.clientX,Y.clientY);V(Q??h.value);try{Y.currentTarget.releasePointerCapture(Y.pointerId)}catch{}}function R(Y){if(b(Y)){h.value=null,f.value=null;try{Y.currentTarget.releasePointerCapture(Y.pointerId)}catch{}}}const ee=Y=>{h.value=Y},j=Y=>{f.value=Y},V=Y=>{if(h.value===null||h.value===Y){h.value=null,f.value=null;return}const Q=[...s.value],[ae]=Q.splice(h.value,1);Q.splice(Y,0,ae),s.value=Q,h.value=null,f.value=null},S=()=>{x.value&&x.value.click()},C=Y=>{const Q=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],ae=Y.toLowerCase();return Q.some(me=>ae.endsWith(me))},T=Y=>{const ae=Y.target.files?.[0];if(!ae)return;const me=new FileReader;me.onload=ge=>{try{const Me=ge.target?.result;if(typeof Me=="string"){const Fe=JSON.parse(Me);Array.isArray(Fe)&&s.value.push(...Fe)}}catch(Me){console.error("Error parsing file:",Me)}},me.readAsText(ae)},H=()=>{const Y=JSON.stringify(s.value,null,2),Q=new Blob([Y],{type:"application/json"}),ae=URL.createObjectURL(Q),me=document.createElement("a");me.href=ae,me.download="data.json",me.click(),URL.revokeObjectURL(ae)},oe=new Set(["autocomplete","select","radio","checkbox","combobox"]),A=new Map,L=(Y,Q)=>{const ae=`/api/suggest/${Y}`,me=ae.includes("?")?"&":"?",ge=Q?`&val=${Q}`:"";return`${ae}${me}json=1${ge}`},Z=Y=>Y==null||Y===""?null:typeof Y=="object"?Y?.id!==void 0&&Y.id!==null&&Y.id!==""?Y.id:null:Y,W=Y=>{const Q=new Set;return Array.isArray(s.value)&&s.value.forEach(ae=>{const me=ae?.[Y];if(me==null||me==="")return;if(Array.isArray(me)){me.forEach(Me=>{const Fe=Z(Me);Fe!==null&&Q.add(Fe)});return}const ge=Z(me);ge!==null&&Q.add(ge)}),Q},I=async()=>{if(!t.colModel?.length)return;const Y=t.colModel.filter(Q=>Q.data&&oe.has(Q.type?.toLowerCase()||""));Y.length&&await Promise.all(Y.map(async Q=>{const ae=Q.key||Q.name;if(!ae)return;const me=W(ae),ge=Array.from(me).map(De=>String(De)).sort(),Me=ge.join(",");if(!ge.length||A.get(ae)===Me)return;A.set(ae,Me);const Fe=ge.map(encodeURIComponent).join(",");try{const q=await(await fetch(L(Q.data,Fe))).json();c.value[ae]=q?.data??q}catch(De){console.error("Failed to fetch column values",De)}}))};e.watch([()=>t.colModel,()=>s.value],()=>{I()},{immediate:!0,deep:!0});const z=e.ref(""),G=e.ref(!1);let $="edit",O=0;const D=Y=>(Y?.format||Y?.type||"").toString().toLowerCase(),ie=e.computed(()=>(t.colModel?.filter(Q=>D(Q)!=="slot")??[]).map(Q=>{const ae=Q.key||Q.name;return ae?{...Q,name:ae,key:ae}:Q})),ce=e.ref({}),te=e.ref({}),fe=Y=>typeof Y!="string"?!1:!!o[Y],_e=(Y,Q)=>Q?Q.split(".").reduce((ae,me)=>ae==null?ae:ae[me.trim()],Y):Y,ke=(Y,Q)=>typeof Y!="string"?"":Y.replace(/{{\s*([^}]+)\s*}}/g,(ae,me)=>{const ge=_e(Q,me.trim());return ge??""}),Ne=Y=>{if(Y==null||Y==="")return"";if(typeof Y=="number")return Y;if(typeof Y=="boolean")return Y?1:0;if(typeof Y=="string")return Y.toLowerCase();if(Array.isArray(Y))return Y.map(Q=>Ne(Q)).join(", ");if(typeof Y=="object"){if(Y.text!==void 0)return String(Y.text).toLowerCase();if(Y.label!==void 0)return String(Y.label).toLowerCase();if(Y.id!==void 0)return String(Y.id).toLowerCase()}return String(Y).toLowerCase()},Ue=Y=>{const Q=Y.key||Y.name;if(Q){if(d.value===Q){p.value=p.value==="asc"?"desc":"asc";return}d.value=Q,p.value="asc"}};async function $e(){z.value="Додати",G.value=!0,$="add",ce.value={}}function Le(Y,Q){if(!Y?.length)return null;const ae=typeof Q=="object"?Q?.id:Q;return ae==null||ae===""?null:Y.find(me=>me?.id?.toString()===ae.toString())?.text??null}function ne(Y){return Y==null||Y===""?"-":Array.isArray(Y)?Y.map(Q=>typeof Q=="object"?Q?.text??Q?.id??"-":Q).join(", "):typeof Y=="object"?Y?.text??Y?.id??"-":Y}function le(Y,Q){const ae=Q.key||Q.name,me=Y?.[ae],ge=c.value[ae];if(!me)return"-";if(Array.isArray(me)){const Fe=me.map(De=>Le(ge,De)).filter(Boolean);return Fe.length?Fe.join(", "):ne(me)}const Me=Le(ge,me);return Me||ne(me)}async function ve(Y,Q){z.value="Редагувати",G.value=!0,$="edit",O=Q,ce.value={...Y}}function Ce(){const Y=te.value.validate();if(Y){be.notify({type:"warning",title:"Помилка валідації",message:Object.entries(Y).map(([Q,ae])=>`${Q}: ${ae}`).join(`
|
|
2
|
+
`)});return}$==="add"?Array.isArray(s.value)?s.value=[...s.value,ce.value]:s.value=[ce.value]:s.value=s.value.map((Q,ae)=>ae===O?ce.value:Q),G.value=!1}function Ie(Y){s.value=s.value.filter((Q,ae)=>ae!==Y)}function We(){G.value=!1}return(Y,Q)=>(e.openBlock(),e.createElementBlock("div",pd,[a.value?(e.openBlock(),e.createElementBlock("div",md,[r("search")?(e.openBlock(),e.createElementBlock("div",fd,[e.createVNode(e.unref(J.Search),{class:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"}),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":Q[0]||(Q[0]=ae=>i.value=ae),placeholder:"Пошук",class:"w-full rounded-md border border-gray-200 bg-white pl-10 pr-3 py-2 text-sm text-gray-900 placeholder:text-gray-400 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-100"},null,512),[[e.vModelText,i.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",hd,[r("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:x,onChange:T,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),r("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:S,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(J.Upload),{class:"h-4 w-4 text-gray-700"}),Q[4]||(Q[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),r("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:H,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(J.Download),{class:"h-4 w-4 text-gray-700"}),Q[5]||(Q[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),r("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:$e,type:"button",class:"inline-flex items-center gap-2 rounded-md bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-600 transition-colors"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4 text-white"}),Q[6]||(Q[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",gd,[e.createElementVNode("table",yd,[e.createElementVNode("thead",bd,[e.createElementVNode("tr",kd,[e.createElementVNode("th",xd,[e.createVNode(e.unref(J.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,ae=>(e.openBlock(),e.createElementBlock("th",{key:ae.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:me=>Ue(ae),class:"flex items-center gap-1 text-xs font-semibold text-gray-700 hover:text-gray-900 transition-colors"},[e.createElementVNode("span",null,e.toDisplayString(ae.ua||ae.label),1),d.value===(ae.key||ae.name)?(e.openBlock(),e.createElementBlock("span",vd,e.toDisplayString(p.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,wd)]))),128)),Q[7]||(Q[7]=e.createElementVNode("th",{class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 text-center w-[1%] whitespace-nowrap"}," Дії ",-1))])]),e.createElementVNode("tbody",{class:e.normalizeClass(["divide-y divide-gray-200",{"[&_tr:last-child]:border-0":!f.value}])},[m.value.length===0?(e.openBlock(),e.createElementBlock("td",Cd,[e.createElementVNode("div",Ed,[e.createElementVNode("div",_d,[e.createVNode(ud,{class:"w-48 mx-auto"}),Q[8]||(Q[8]=e.createElementVNode("div",{class:"max-w-sm mx-auto mt-6"},[e.createElementVNode("p",{class:"font-medium text-gray-800 dark:text-neutral-200"},"Нічого не знайдено"),e.createElementVNode("p",{class:"mt-2 text-sm text-gray-500 dark:text-neutral-500"})],-1))])])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,(ae,me)=>(e.openBlock(),e.createElementBlock("tr",{key:ae.id,"data-row-index":me,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":h.value===me,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":f.value===me}]),draggable:"true",onDragstart:ge=>ee(me),onDragover:e.withModifiers(ge=>j(me),["prevent"]),onDrop:ge=>V(me)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:ge=>v(ge,me),onPointermove:_,onPointerup:N,onPointercancel:R},[e.createElementVNode("div",Sd,[e.createVNode(e.unref(J.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,Vd),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,ge=>(e.openBlock(),e.createElementBlock("td",{key:ge.key,class:"px-4 py-3 align-middle"},[D(ge)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[fe(ge.slot)?e.renderSlot(Y.$slots,ge.slot,{key:0,row:ae,value:ae[ge.key],column:ge}):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:ke(ge.slot,ae)},null,8,$d))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[D(ge)==="file"?(e.openBlock(),e.createElementBlock("div",Ad,[C(le(ae,ge))?(e.openBlock(),e.createElementBlock("div",Nd,[e.createElementVNode("img",{src:le(ae,ge),alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,Md)])):(e.openBlock(),e.createElementBlock("div",Fd,[e.createVNode(e.unref(J.FileText),{class:"h-4 w-4 min-w-4"})]))])):D(ge)==="color"?(e.openBlock(),e.createElementBlock("div",Dd,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:le(ae,ge)||"#ffffff"})},null,4)])):(e.openBlock(),e.createElementBlock("div",Td,e.toDisplayString(le(ae,ge)),1))],64))]))),128)),e.createElementVNode("td",Ld,[e.createElementVNode("div",Id,[e.createElementVNode("button",{onClick:ge=>ve(ae,me),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(J.Pencil),{class:"h-4 w-4"})],8,Od),e.createElementVNode("button",{onClick:ge=>Ie(me),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(J.Trash2),{class:"h-4 w-4"})],8,Pd)])])],42,Bd))),128))],2)])]),e.createVNode(e.unref(be.VsModal),{visible:G.value,title:z.value,size:"lg",onClose:We,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(ct,{schema:ie.value,"allow-id-field":"",values:ce.value,"onUpdate:values":Q[1]||(Q[1]=ae=>ce.value=ae),form:te.value,"onUpdate:form":Q[2]||(Q[2]=ae=>te.value=ae)},null,8,["schema","values","form"]),e.createElementVNode("div",Rd,[e.createElementVNode("button",{type:"button",onClick:Q[3]||(Q[3]=ae=>G.value=!1),class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:Ce,type:"button",class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"}," Зберегти ")])]),_:1},8,["visible","title"])]))}}),zd={},jd={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 Ud(n,t){return e.openBlock(),e.createElementBlock("svg",jd,[...t[0]||(t[0]=[e.createElementVNode("path",{stroke:"none",d:"M0 0h24v24H0z",fill:"none"},null,-1),e.createElementVNode("path",{d:"M6 18m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M18 6m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"},null,-1),e.createElementVNode("path",{d:"M7.5 16.5l9 -9"},null,-1)])])}const Hd=Ve(zd,[["render",Ud]]),qd={},Kd={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 Wd(n,t){return e.openBlock(),e.createElementBlock("svg",Kd,[...t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M12 5m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M19 8m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M5 11m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M15 19m-2 0a2 2 0 1 0 4 0a2 2 0 1 0 -4 0"></path><path d="M6.5 9.5l3.5 -3"></path><path d="M14 5.5l3 1.5"></path><path d="M18.5 10l-2.5 7"></path><path d="M13.5 17.5l-7 -5"></path>',9)])])}const Gd=Ve(qd,[["render",Wd]]),Yd={},Xd={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 Zd(n,t){return e.openBlock(),e.createElementBlock("svg",Xd,[...t[0]||(t[0]=[e.createStaticVNode('<path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 18a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M20 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M8 6a2 2 0 1 0 -4 0a2 2 0 0 0 4 0z"></path><path d="M6 8v8"></path><path d="M18 16v-8"></path><path d="M8 6h8"></path><path d="M16 18h-8"></path>',9)])])}const Jd=Ve(Yd,[["render",Zd]]);function Qd(n,t,o){const r=Math.max(0,Math.min(22,Math.floor(o))),l=2**r,a=Math.floor((n+180)/360*l),s=t*Math.PI/180,c=Math.floor((1-Math.log(Math.tan(s)+1/Math.cos(s))/Math.PI)/2*l);return{z:r,x:a,y:c}}function eu(n,t){if(typeof n!="string"||!n.trim()||!/\{z\}/i.test(n))return;const o={"{z}":t.z,"{x}":t.x,"{y}":t.y,"{-y}":2**t.z-t.y-1,"{s}":"a"};let r=n;return Object.entries(o).forEach(([l,a])=>{r=r.replace(new RegExp(l.replace(/[{}-]/g,"\\$&"),"gi"),String(a))}),r}const wr=/\/(\d+)\/(\d+)\/(\d+)(\.(?:png|jpe?g|webp))(?:\?.*)?$/i;function vr(n,t){if(typeof n!="string"||!n.trim()||!wr.test(n))return;const o=n.replace(wr,`/${t.z}/${t.x}/${t.y}$4`);return o!==n?o:void 0}function tu(n,t){if(n?.url){const o=eu(n.url,t);if(o)return o;const r=vr(n.url,t);if(r)return r}if(n?.preview){const o=vr(n.preview,t);return o||n.preview}}const nu=["title","aria-expanded"],ou=["src"],ru={class:"map-layers__header"},lu={class:"map-layers__body"},au={key:0,class:"map-layers__section"},su={class:"map-layers__grid map-layers__grid--4"},iu=["disabled","title","onClick"],cu={class:"map-layers__thumb"},du=["src"],uu={class:"map-layers__option-label"},pu={key:1,class:"map-layers__section"},mu={class:"map-layers__grid map-layers__grid--4"},fu=["title","onClick"],hu={class:"map-layers__thumb"},gu=["src"],yu={class:"map-layers__option-label"},bu={key:2,class:"map-layers__section map-layers__section--vector"},ku={class:"map-layers__vector-list"},xu=["checked","disabled","onChange"],Dn=.8,wu=Ve(e.defineComponent({__name:"map-layers",props:{basemaps:{},activeBaseKey:{},tileOverlays:{},activeTileOverlayKeys:{},vectorOverlays:{},previewTile:{},disabled:{type:Boolean},compact:{type:Boolean}},emits:["onLayerChange","onOverlayToggle","onVectorOverlayToggle"],setup(n,{emit:t}){const o=n,r=t,l=10*Dn,a=400*Dn,s=400*Dn,c=320*Dn,i=e.ref(null),d=e.ref(null),p=e.ref(null),m=e.ref(!1),y=e.ref({}),h=e.computed(()=>Object.keys(o.basemaps||{}).length>0),f=e.computed(()=>Object.keys(o.tileOverlays||{}).length>0),x=e.computed(()=>o.vectorOverlays??[]),b=e.computed(()=>x.value.length>0),E=e.computed(()=>h.value||f.value||b.value),v=e.computed(()=>o.basemaps?.[o.activeBaseKey]?.name||o.activeBaseKey||"Шари"),_=e.computed(()=>R(o.basemaps)),N=e.computed(()=>R(o.tileOverlays||{}));function R(I){const z=o.previewTile;return z?Object.fromEntries(Object.entries(I).map(([G,$])=>[String(G),tu($,z)??$.preview??""])):{}}function ee(I){return _.value[I]||o.basemaps?.[I]?.preview||""}function j(I){return N.value[I]||o.tileOverlays?.[I]?.preview||""}const V=e.computed(()=>ee(o.activeBaseKey));function S(I){return Array.isArray(o.activeTileOverlayKeys)&&o.activeTileOverlayKeys.includes(I)}function C(){const I=d.value;if(!I)return;const z=I.getBoundingClientRect(),G=Math.min(a,window.innerWidth-16);let $=z.left;$+G>window.innerWidth-8&&($=window.innerWidth-G-8),$=Math.max(8,$);const O=z.top-l-8,D=o.compact?c:s,ie=Math.min(D,Math.max(96,O));y.value={position:"fixed",left:`${$}px`,bottom:`${window.innerHeight-z.top+l}px`,width:`${G}px`,maxHeight:`${ie}px`,zIndex:"10050"}}async function T(){m.value=!m.value,m.value&&(await e.nextTick(),C())}function H(){m.value=!1}function oe(I){I!==o.activeBaseKey&&r("onLayerChange",I)}function A(I){o.disabled||r("onOverlayToggle",I)}function L(I){o.disabled||r("onVectorOverlayToggle",I)}function Z(I){if(!m.value)return;const z=I.target;i.value?.contains(z)||p.value?.contains(z)||H()}function W(I){I.key==="Escape"&&H()}return e.watch(m,async I=>{I&&(await e.nextTick(),C())}),e.onMounted(()=>{document.addEventListener("click",Z),document.addEventListener("keydown",W),window.addEventListener("resize",C),window.addEventListener("scroll",C,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",Z),document.removeEventListener("keydown",W),window.removeEventListener("resize",C),window.removeEventListener("scroll",C,!0)}),(I,z)=>E.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"rootRef",ref:i,class:e.normalizeClass(["map-layers relative",{"map-layers--compact":n.compact}])},[e.createElementVNode("button",{ref_key:"triggerRef",ref:d,type:"button",class:"map-layers__trigger",title:v.value,"aria-haspopup":"dialog","aria-expanded":m.value,onClick:e.withModifiers(T,["stop"])},[V.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:V.value,alt:"",class:"map-layers__trigger-img"},null,8,ou)):e.createCommentVNode("",!0)],8,nu),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"map-layers-panel"},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panelRef",ref:p,class:"map-layers__panel",style:e.normalizeStyle(y.value),role:"dialog","aria-label":"Шари карти"},[e.createElementVNode("header",ru,[z[0]||(z[0]=e.createElementVNode("h3",{class:"map-layers__title"},"Шари карти",-1)),e.createElementVNode("button",{type:"button",class:"map-layers__close","aria-label":"Закрити",onClick:H},[e.createVNode(e.unref(J.X),{class:"map-layers__close-icon"})])]),e.createElementVNode("div",lu,[f.value?(e.openBlock(),e.createElementBlock("section",au,[z[1]||(z[1]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Додаткові шари",-1)),e.createElementVNode("div",su,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.tileOverlays,(G,$)=>(e.openBlock(),e.createElementBlock("button",{key:`tile-${$}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":S(String($))}]),disabled:n.disabled,title:G.name||String($),onClick:O=>A(String($))},[e.createElementVNode("span",cu,[e.createElementVNode("img",{src:j(String($)),alt:""},null,8,du)]),e.createElementVNode("span",uu,e.toDisplayString(G.name||$),1)],10,iu))),128))])])):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("section",pu,[z[2]||(z[2]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Базові шари",-1)),e.createElementVNode("div",mu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.basemaps,(G,$)=>(e.openBlock(),e.createElementBlock("button",{key:`base-${$}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":n.activeBaseKey===String($)}]),title:G.name||String($),onClick:O=>oe(String($))},[e.createElementVNode("span",hu,[e.createElementVNode("img",{src:ee(String($)),alt:""},null,8,gu)]),e.createElementVNode("span",yu,e.toDisplayString(G.name||$),1)],10,fu))),128))])])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("section",bu,[z[3]||(z[3]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Дані",-1)),e.createElementVNode("div",ku,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,G=>(e.openBlock(),e.createElementBlock("label",{key:G.id,class:"map-layers__vector-item"},[e.createElementVNode("input",{type:"checkbox",class:"map-layers__checkbox",checked:G.visible,disabled:n.disabled,onChange:$=>L(G.id)},null,40,xu),e.createElementVNode("span",null,e.toDisplayString(G.label),1)]))),128))])])):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))],2)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-7f1be7f7"]]),zt=1e-10,Tn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,vu=/^[+-]?\d+(?:\.\d+)?$/;function Cu(n,t,o){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 l=[],a=[];if(r.forEach((d,p)=>{const m=p+1,y=t==="decimal"?Eu(d,m,o):Er(d,m,o);if(!y.ok){l.push(...y.errors);return}const h=a[a.length-1];if(h&&Br(h,y.point)){l.push({line:m,message:"Послідовні точки не повинні дублюватися."});return}a.push(y.point)}),l.length)return{ok:!1,errors:l};if(new Set(a.map(Bu)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const c=[...a];let i=!1;return Br(c[0],c[c.length-1])||(c.push(c[0]),i=!0),Vu(c)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:c,wasClosedAutomatically:i}}function Eu(n,t,o){return Cr(n,"decimal",o,t)}function Cr(n,t,o,r=1){return t==="decimal"?_u(n,r,o):Er(n,r,o)}function _u(n,t,o){const r=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(n))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const l=n.split(/[\s,;]+/).filter(Boolean);if(l.length<2)return{ok:!1,errors:[{line:t,message:"Кожен рядок має містити дві координати."}]};if(l.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(!l.every(d=>vu.test(d)))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const a=Number(l[0]),s=Number(l[1]);if(!Number.isFinite(a)||!Number.isFinite(s))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const c=o==="lat-lon"?a:s,i=o==="lat-lon"?s:a;return(c<-90||c>90)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(i<-180||i>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[i,c]}}function Er(n,t,o){Tn.lastIndex=0;const r=[...n.matchAll(Tn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Tn.lastIndex=0,n.replace(Tn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const a=_r(r[0],t,o==="lat-lon"?"lat":"lon"),s=_r(r[1],t,o==="lat-lon"?"lon":"lat"),c=[];if(a.ok||c.push(a.error),s.ok||c.push(s.error),c.length)return{ok:!1,errors:c};const i=o==="lat-lon"?a.value:s.value;return{ok:!0,point:[o==="lat-lon"?s.value:a.value,i]}}function _r(n,t,o){const r=Number(n[1]),l=Number(n[2]),a=Number(n[3]),s=String(n[4]).toUpperCase();if(!Number.isFinite(r)||!Number.isFinite(l)||!Number.isFinite(a))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(o==="lat"&&!(s==="N"||s==="S")||o==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:o==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(l<0||l>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(a<0||a>60)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..60."}};const d=Math.abs(r),p=o==="lat"?90:180;if(d>p)return{ok:!1,error:{line:t,message:o==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===p&&(l!==0||a!==0))return{ok:!1,error:{line:t,message:o==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const m=d+l/60+a/3600;return{ok:!0,value:s==="S"||s==="W"?-m:m}}function Bu(n){return`${n[0].toFixed(12)}:${n[1].toFixed(12)}`}function Br(n,t){return Math.abs(n[0]-t[0])<zt&&Math.abs(n[1]-t[1])<zt}function Vu(n){if(n.length<4)return!1;for(let t=0;t<n.length-1;t+=1){const o=n[t],r=n[t+1];for(let l=t+1;l<n.length-1;l+=1){if(Math.abs(t-l)<=1||t===0&&l===n.length-2)continue;const a=n[l],s=n[l+1];if(Su(o,r,a,s))return!0}}return!1}function Su(n,t,o,r){const l=Ln(n,t,o),a=Ln(n,t,r),s=Ln(o,r,n),c=Ln(o,r,t);return!!(l!==a&&s!==c||l===0&&In(n,o,t)||a===0&&In(n,r,t)||s===0&&In(o,n,r)||c===0&&In(o,t,r))}function Ln(n,t,o){const r=(t[1]-n[1])*(o[0]-t[0])-(t[0]-n[0])*(o[1]-t[1]);return Math.abs(r)<zt?0:r>0?1:2}function In(n,t,o){return t[0]<=Math.max(n[0],o[0])+zt&&t[0]+zt>=Math.min(n[0],o[0])&&t[1]<=Math.max(n[1],o[1])+zt&&t[1]+zt>=Math.min(n[1],o[1])}const $u=["title"],Au={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"},Nu=["onClick"],Mu=["placeholder"],Fu={class:"absolute inset-y-0 right-2 flex items-center gap-1"},Du={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},Tu={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},Lu={class:"max-h-[260px] overflow-auto"},Iu={key:0,class:"divide-y divide-gray-100"},Ou=["onClick"],Pu={key:1,class:"px-3 py-3 text-xs text-gray-500"},Vr="formMapSearchAddressHistory",Ru=12,zu="https://geo.rv.ua/api-user/dzk.api",ju="https://nominatim.openstreetmap.org/search",Uu=Ve(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(n,{emit:t}){const o={mounted(q,w){if(typeof document>"u")return;let M=null;const P=8,de=()=>{const Pe=String(w?.value??"");if(!Pe)return;M=document.createElement("div"),M.textContent=Pe,Object.assign(M.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(M);const Te=q.getBoundingClientRect();M.style.left=`${Te.right+window.scrollX+P}px`,M.style.top=`${Te.top+window.scrollY+(Te.height-M.offsetHeight)/2}px`},we=()=>{M?.parentNode&&M.parentNode.removeChild(M),M=null};q.addEventListener("mouseenter",de),q.addEventListener("mouseleave",we),Object.assign(q,{tooltipRightHandlers:{show:de,hide:we}})},unmounted(q){if(typeof document>"u")return;const w=q.tooltipRightHandlers;w&&(q.removeEventListener("mouseenter",w.show),q.removeEventListener("mouseleave",w.hide))}},r=n,l=t,a=e.getCurrentInstance();function s(){return typeof globalThis<"u"&&globalThis.proxy?globalThis.proxy:typeof window<"u"&&window.proxy?window.proxy:null}function c(){const w=a?.appContext.config.globalProperties?.$settings?.map?.searchViewbox;if(w)return Array.isArray(w)?w.join(","):String(w);const P=s()?.map?.searchViewbox;if(P)return Array.isArray(P)?P.join(","):String(P)}function i(){const w=a?.appContext.config.globalProperties?.$settings?.map?.addressSuggest;if(typeof w=="string"&&w.trim())return w.trim();const P=s()?.map?.addressSuggest;if(typeof P=="string"&&P.trim())return P.trim()}function d(){if(typeof r.config?.cadastreSuggest=="string"&&r.config.cadastreSuggest.trim())return r.config.cadastreSuggest.trim();const q=a?.appContext.config.globalProperties?.$settings,w=q?.map?.cadastreSuggest??q?.map?.parcelSuggest??q?.map?.parcelSearch;if(typeof w=="string"&&w.trim())return w.trim();const M=s(),P=M?.map?.cadastreSuggest??M?.map?.parcelSuggest??M?.map?.parcelSearch;if(typeof P=="string"&&P.trim())return P.trim()}const p=!!i(),m=!!c(),y=e.computed(()=>{const q=["nominatim","xy","parcel"];return p&&q.unshift("address"),m?q:q.filter(w=>w!=="nominatim")}),h=e.computed(()=>{const q=y.value,w=r.config?.tools?.filter(M=>q.includes(M));return w&&w.length?w:q}),f=e.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),x=e.ref(h.value[0]);e.watch(h,q=>{q.includes(x.value)||(x.value=q[0])});const b=e.ref(""),E=e.ref(!1),v=e.ref(null),_=e.ref(null),N=e.ref(null),R=e.ref(null),ee=e.ref([]),j=e.ref(null),V=e.ref(!1),S=e.ref([]),C=e.computed(()=>(x.value==="address"||x.value==="nominatim")&&V.value),T=e.computed(()=>r.config?.addressDebounceMs??1e3);let H=null;const oe=e.ref(!1),A=e.computed(()=>b.value.trim().length>0?ee.value:S.value),L=e.computed(()=>b.value.trim().length?`Знайдено ${ee.value.length}`:"Історія пошуку"),Z=e.computed(()=>b.value.trim().length?"Нічого не знайдено":"Історія порожня");function W(){if(typeof window>"u")return[];try{const q=window.localStorage?.getItem?.(Vr);if(!q)return[];const w=JSON.parse(q);return Array.isArray(w)?w:[]}catch{return[]}}function I(q){typeof window>"u"||window.localStorage?.setItem?.(Vr,JSON.stringify(q))}function z(q){const M=[q,...S.value.filter(P=>P.id!==q.id)].slice(0,10);S.value=M,I(M)}const G=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function $(){if(!R.value)return;const q=R.value.getBoundingClientRect(),w=N.value?.getBoundingClientRect(),M=w?.width??q.width,P=(w?.left??q.left)+window.scrollX,de=q.bottom+window.scrollY+Ru;G.left=`${P}px`,G.top=`${de}px`,G.width=`${M}px`,G.display="block"}const O=()=>{C.value&&$()};function D(){H&&(clearTimeout(H),H=null)}e.watch(x,()=>{b.value="",E.value=!1,ee.value=[],V.value=!1,D(),oe.value=!1}),e.watch(C,q=>{q?e.nextTick(()=>{$()}):G.display="none"}),e.watch(b,q=>{if(x.value!=="address"&&x.value!=="nominatim"){ee.value=[],D();return}if(!q.trim()){ee.value=[],V.value=S.value.length>0,D();return}D(),V.value=!0,H=window.setTimeout(()=>{ae(q).catch(w=>{const M=w?.message||"Помилка пошуку адреси";be.notify({type:"error",title:"Пошук адреси",message:M})})},T.value)});function ie(q){const w=[];_.value&&w.push(_.value),q instanceof HTMLElement&&w.push(q),v.value?.querySelectorAll("li")?.forEach(P=>{w.push(P)}),w.forEach(P=>{P.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function ce(q){E.value&&ie(q.target),E.value=!E.value}function te(q,w){ie(w?.target),x.value=q}function fe(){b.value="",ee.value=[],V.value=!1,oe.value=!1}function _e(q){const w=q.target;if(E.value){const M=v.value;M&&!M.contains(w)&&(ie(w),E.value=!1)}if(C.value){const M=j.value,P=R.value;M&&!M.contains(w)&&(!P||!P.contains(w))&&(V.value=!1)}}e.onMounted(()=>{S.value=W(),window.addEventListener("click",_e,!0),window.addEventListener("scroll",O,!0),window.addEventListener("resize",O)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",_e,!0),window.removeEventListener("scroll",O,!0),window.removeEventListener("resize",O),D()});function ke(q){return q==="xy"?"Координати":q==="parcel"?"Кадастр":q==="nominatim"?"Адреса":"Адресний"}function Ne(q){switch(q){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 Ue(q){const w=Cr(q.trim(),"dms","lat-lon");if(w.ok){const[ue,Re]=w.point;return{lat:Re,lng:ue}}const M=q.replace(/[,]+/g," ").trim();if(!M)return null;const P=M.split(/\s+/).filter(Boolean);if(P.length<2)return null;const de=P.slice(0,2).map(Number);if(!de.every(ue=>Number.isFinite(ue)))return null;let[we,Pe]=de,Te=we,He=Pe;const tt=ue=>Math.abs(ue)<=90,U=ue=>Math.abs(ue)<=180;if(!tt(Te)||!U(He))if(tt(He)&&U(Te))Te=Pe,He=we;else return null;return{lat:Te,lng:He}}function $e(q){const w=q?.result||q?.data||q;return(Array.isArray(w)?w:w?[w]:[]).map((P,de)=>{const we=P?.geom_centroid,Pe=Array.isArray(we?.coordinates)?we.coordinates:null;if(!Pe||Pe.length<2)return null;const Te=Number(Pe[0]),He=Number(Pe[1]);return!Number.isFinite(He)||!Number.isFinite(Te)?null:{id:String(P?.parcel_id??P?.cad_num??de),title:P?.cadnum||P?.cad_num||"Земельна ділянка",lat:He,lng:Te}}).filter(P=>!!P)}function Le(q){return(Array.isArray(q?.features)?q.features:[]).map((M,P)=>{const de=M?.geometry?.coordinates,we=Number(de?.[0]),Pe=Number(de?.[1]);if(!Number.isFinite(Pe)||!Number.isFinite(we))return null;const Te=M?.properties||{},He=Te?.geocoding?.label||Te?.display_name||Te?.label||"Адреса";return{id:String(Te?.geocoding?.place_id||Te?.place_id||P),title:He,lat:Pe,lng:we}}).filter(M=>!!M)}function ne(q){return Number.isFinite(q.lat)&&Number.isFinite(q.lng)}function le(q){if(q==null||typeof q=="string"&&!q.trim())return null;const w=Number(q);return Number.isFinite(w)?w:null}function ve(q){const w=le(q.lng)??le(q.lon)??le(q.longitude)??le(q.x),M=le(q.lat)??le(q.latitude)??le(q.y);if(w!=null&&M!=null)return{lat:M,lng:w};const P=q?.geometry?.coordinates??q?.geom_centroid?.coordinates??q?.centroid?.coordinates??q?.geojson?.geometry?.coordinates??q?.geom?.coordinates;if(Array.isArray(P)&&P.length>=2){const de=le(P[0]),we=le(P[1]);if(de!=null&&we!=null)return{lat:we,lng:de}}return null}function Ce(q){return(Array.isArray(q?.data)?q.data:[]).map((M,P)=>{const de=ve(M),we=String(M.text??M.title??M.label??M.name??M.address??M.display_name??M.id??"Адреса"),Pe=String(M.id??M.code??M.value??P);return de?{id:Pe,title:we,...de}:{id:Pe,title:we}}).filter(M=>!!M?.title)}function Ie(q){const w=d()||zu;if(w.includes(":id"))return w.replace(":id",encodeURIComponent(q));if(w.includes(":name"))return w.replace(":name",encodeURIComponent(q));try{const M=new URL(w,window.location.origin),P=r.config?.parcelQueryParam?.trim()||"cad_num";return M.searchParams.set(P,q),M.toString()}catch{return w}}function We(q){const w=i();if(!w)return null;if(w.includes(":name"))return w.replace(":name",encodeURIComponent(q));try{const M=new URL(w,window.location.origin);return q.trim()&&M.searchParams.set("q",q),M.toString()}catch{return w}}async function Y(q){const w=We(q);if(!w)return[];const M=await fetch(w);if(!M.ok)throw new Error(`HTTP ${M.status}`);const P=await M.json();return Ce(P)}async function Q(q){const w=new URL(ju);w.searchParams.set("format","geojson"),w.searchParams.set("q",q),w.searchParams.set("addressdetails","1"),w.searchParams.set("bounded","1");const M=c();M&&w.searchParams.set("viewbox",M);const P=await fetch(w.toString());if(!P.ok)throw new Error(`HTTP ${P.status}`);const de=await P.json();return Le(de)}async function ae(q){if(ee.value=[],D(),x.value==="address"){if(!i()){be.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const P=await Y(q);if(!P.length){be.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}ee.value=P;return}const w=await Q(q);if(!w.length){be.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}ee.value=w}async function me(q){if(ne(q)){Fe(q),z(q);return}be.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function ge(){x.value!=="address"&&x.value!=="nominatim"||(V.value=!0,e.nextTick(()=>{$()}))}function Me(q){const M=q.replace(/\s+/g,"").split(":");if(M.length!==4)return!1;const P=[10,2,3,4];return M.every((de,we)=>de.length===P[we]&&/^\d+$/.test(de))}function Fe(q){l("goToCoordinates",[q.lat,q.lng]),oe.value=!0}async function De(){const q=b.value.trim();if(q){if(x.value==="xy"){const w=Ue(q);if(!w){be.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}Fe(w);return}if(x.value==="address"||x.value==="nominatim"){try{await ae(q)}catch(w){const M=w?.message||"Помилка пошуку адреси";be.notify({type:"error",title:"Пошук адреси",message:M})}return}try{if(!Me(q)){be.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const w=await fetch(Ie(q));if(!w.ok)throw new Error(`HTTP ${w.status}`);const M=await w.json(),P=$e(M);if(!P.length)be.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const de=P.find(ne);if(!de){be.notify({type:"warning",title:"Пошук",message:"Геометрія ділянки відсутня"});return}Fe(de)}}catch(w){const M=w?.message||"Помилка пошуку";be.notify({type:"error",title:"Пошук",message:M})}}}return(q,w)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"widgetRef",ref:N,class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},[e.createElementVNode("form",{class:"flex gap-2 text-gray-900",onSubmit:e.withModifiers(De,["prevent"])},[h.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:v,class:"relative search-type w-[100px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:ce},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:_,class:"block w-full truncate",title:ke(x.value)},[e.createTextVNode(e.toDisplayString(ke(x.value)),1)],8,$u)),[[o,Ne(x.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":E.value}]),viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[...w[3]||(w[3]=[e.createElementVNode("path",{d:"M6 9l6 6 6-6",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},null,-1)])],2))]),E.value?(e.openBlock(),e.createElementBlock("div",Au,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,M=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:M,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:P=>te(M,P)},[e.createTextVNode(e.toDisplayString(ke(M)),1)],8,Nu)),[[o,Ne(M)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:R,class:"relative flex-1 min-w-[140px]"},[x.value==="parcel"?(e.openBlock(),e.createBlock(wn,{key:0,modelValue:b.value,"onUpdate:modelValue":w[0]||(w[0]=M=>b.value=M),mask:"0000000000:00:000:0000",class:e.normalizeClass(["vs-input !h-[34px] transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",oe.value?"!pr-14":"!pr-8"])},null,8,["modelValue","class"])):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:1,"onUpdate:modelValue":w[1]||(w[1]=M=>b.value=M),placeholder:f.value,type:"text",class:e.normalizeClass(["vs-input transition-all border block w-full border-gray-200 rounded-md focus:border-blue-100 border-solid py-1.5 pl-3 text-sm",oe.value?"!pr-14":"!pr-8"]),onFocus:ge},null,42,Mu)),[[e.vModelText,b.value,void 0,{trim:!0}]]),e.createElementVNode("div",Fu,[oe.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Очистити",onClick:fe},[...w[4]||(w[4]=[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 18L18 6M6 6l12 12"})],-1)])])):e.createCommentVNode("",!0),w[5]||(w[5]=e.createElementVNode("button",{type:"submit",class:"flex items-center text-gray-400 hover:text-gray-600","aria-label":"Пошук"},[e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",class:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2"},[e.createElementVNode("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-4.35-4.35m0 0A7.5 7.5 0 1 0 5 5a7.5 7.5 0 0 0 11.65 11.65Z"})])],-1))]),C.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref:j,class:"vs-select__options mt-1 bg-white border border-gray-300 rounded-lg shadow-lg text-sm text-gray-900 z-50",style:e.normalizeStyle(G)},[e.createElementVNode("div",Du,[e.createElementVNode("span",Tu,e.toDisplayString(L.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:w[2]||(w[2]=M=>V.value=!1)}," ✕ ")]),e.createElementVNode("div",Lu,[A.value.length?(e.openBlock(),e.createElementBlock("ul",Iu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,M=>(e.openBlock(),e.createElementBlock("li",{key:M.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:P=>me(M)},e.toDisplayString(M.title),9,Ou))),128))])):(e.openBlock(),e.createElementBlock("div",Pu,e.toDisplayString(Z.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-8c9147ac"]]),Hu={class:"pt-1 border-t border-gray-100"},qu={class:"space-y-1"},Ku=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(n,{emit:t}){const o=t,r=e.ref(null),l=e.ref(null),a=(i,d,p)=>Math.min(Math.max(i,d),p),s=()=>{if(r.value===null||l.value===null||!Number.isFinite(r.value)||!Number.isFinite(l.value))return;const i=a(r.value,-90,90),d=a(l.value,-180,180);o("submit",{lat:i,lng:d}),r.value=null,l.value=null},c=()=>{r.value=null,l.value=null,o("cancel")};return(i,d)=>(e.openBlock(),e.createElementBlock("div",Hu,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",qu,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=p=>r.value=p),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта (50.4501)"},null,512),[[e.vModelText,r.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=p=>l.value=p),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота (30.5234)"},null,512),[[e.vModelText,l.value,void 0,{number:!0}]]),e.createElementVNode("div",{class:"flex gap-1.5"},[e.createElementVNode("button",{class:"flex-1 px-2 py-1 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors",type:"button",onClick:s}," Додати "),e.createElementVNode("button",{class:"px-2 py-1 bg-gray-200 hover:bg-gray-300 text-gray-700 text-xs font-medium rounded transition-colors",type:"button",onClick:c}," Скасувати ")])])]))}}),Wu=e.defineComponent({__name:"BtnAdd",emits:["click"],setup(n){return(t,o)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:o[0]||(o[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(J.Plus),{size:12,"stroke-width":2}),o[1]||(o[1]=e.createTextVNode(" Додати ",-1))]))}}),Gu=e.defineComponent({__name:"BtnClear",emits:["click"],setup(n){return(t,o)=>(e.openBlock(),e.createElementBlock("button",{class:"w-full px-2 py-1.5 bg-rose-500 hover:bg-rose-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:o[0]||(o[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(J.Trash2),{size:12,"stroke-width":2}),o[1]||(o[1]=e.createTextVNode(" Очистити ",-1))]))}}),Yu=e.defineComponent({__name:"BtnComplete",emits:["click"],setup(n){return(t,o)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-emerald-500 hover:bg-emerald-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:o[0]||(o[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(J.Circle),{size:12,"stroke-width":2}),o[1]||(o[1]=e.createTextVNode("Замкнути ",-1))]))}}),Xu=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function jt(n){return Xu.format(n)}function Sr(n){return n>=1e3?`${jt(n/1e3)} км`:`${jt(n)} м`}const Zu={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},Ju={key:0,class:"flex-1 flex gap-1"},Qu={key:1,class:"flex-1 font-mono text-gray-700"},ep=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(n,{emit:t}){const o=n,r=t,l=e.computed(()=>`${o.coords.lat.toFixed(4)}°, ${o.coords.lng.toFixed(4)}°`),a=e.ref(!1),s=e.ref(o.coords.lat),c=e.ref(o.coords.lng);e.watch(()=>o.coords,y=>{s.value=y.lat,c.value=y.lng},{deep:!0,immediate:!0});const i=(y,h,f)=>Math.min(Math.max(y,h),f),d=()=>{a.value=!0},p=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(c.value))return;const y=i(s.value,-90,90),h=i(c.value,-180,180);r("update",{id:o.id,coords:{lat:y,lng:h}}),a.value=!1},m=()=>{r("delete",o.id)};return(y,h)=>(e.openBlock(),e.createElementBlock("div",Zu,[e.createVNode(e.unref(J.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),a.value?(e.openBlock(),e.createElementBlock("div",Ju,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[0]||(h[0]=f=>s.value=f),type:"number",step:"0.0001",min:"-90",max:"90",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта"},null,512),[[e.vModelText,s.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":h[1]||(h[1]=f=>c.value=f),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[e.vModelText,c.value,void 0,{number:!0}]]),e.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:p}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",Qu,e.toDisplayString(l.value),1)),a.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:2,class:"text-blue-500 hover:text-blue-600 px-0.5",type:"button",onClick:d}," ✎ ")),e.createElementVNode("button",{class:"text-rose-500 hover:text-rose-600 px-0.5",type:"button",onClick:m}," ✕ ")]))}}),tp={class:"ruler-control px-3 py-2.5 space-y-2"},np={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},op={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Сумарна довжина всіх відрізків","aria-hidden":"true"},rp={class:"text-sm font-semibold text-slate-700"},lp={class:"ruler-row"},ap={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},sp={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Площа замкнутого контуру","aria-hidden":"true"},ip={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},cp=["onClick"],dp={class:"flex items-center gap-2 mt-0.5 pl-7"},up={key:0,class:"text-base font-semibold text-green-600"},pp={key:1,class:"text-xs text-gray-400"},mp={class:"ruler-row flex items-center gap-2 cursor-pointer"},fp={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Список точок","aria-hidden":"true"},hp={class:"text-xs font-medium text-gray-600 flex-1"},gp={key:0,class:"pt-1.5 border-t border-gray-100 max-h-32 overflow-y-auto space-y-1"},yp=e.defineComponent({__name:"ControlPanel",props:{points:{},isShapeClosed:{type:Boolean}},emits:["update-point","delete-point"],setup(n){const t=n,o=e.ref(!1),r=e.ref("km2"),l=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],a=()=>{o.value=!o.value},s=(f,x)=>{const b=S=>S*Math.PI/180,E=b(x.lat-f.lat),v=b(x.lng-f.lng),_=b(f.lat),N=b(x.lat),R=Math.sin(E/2),ee=Math.sin(v/2);return 6371e3*(2*Math.asin(Math.sqrt(R*R+Math.cos(_)*Math.cos(N)*ee*ee)))},c=e.computed(()=>{if(t.points.length<2)return 0;let f=0;for(let x=1;x<t.points.length;x+=1)f+=s(t.points[x-1].coords,t.points[x].coords);return t.isShapeClosed&&t.points.length>=2&&(f+=s(t.points[t.points.length-1].coords,t.points[0].coords)),f}),i=e.computed(()=>c.value>=1e3?`${jt(c.value/1e3)} км`:`${jt(c.value)} м`);function d(f){if(f.length<3)return 0;const x=f[0].lat,b=f[0].lng,E=(_,N)=>{const R=(_-x)*110574;return{x:(N-b)*111320*Math.cos(x*Math.PI/180),y:R}};let v=0;for(let _=0;_<f.length;_++){const N=(_+1)%f.length,R=E(f[_].lat,f[_].lng),ee=E(f[N].lat,f[N].lng);v+=R.x*ee.y-R.y*ee.x}return Math.abs(v)*.5}const p=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const f=t.points.map(x=>x.coords);return d(f)}),m=e.computed(()=>p.value>0),y=e.computed(()=>{const f=p.value;if(f===0)return"—";if(r.value==="km2"){const b=f/1e6;return`${jt(b)} км²`}if(r.value==="ha"){const b=f/1e4;return`${jt(b)} га`}const x=f>=1?Math.round(f):f;return`${jt(x)} м²`}),h=e.computed(()=>{const f=t.points.length;return f===1?"1 точка":f>=2&&f<=4?`${f} точки`:`${f} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(o.value=!1)}),(f,x)=>(e.openBlock(),e.createElementBlock("div",tp,[e.createElementVNode("button",np,[e.createElementVNode("span",op,[e.createVNode(e.unref(J.Info),{size:12,"stroke-width":2.5})]),x[1]||(x[1]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Загальна відстань",-1)),e.createElementVNode("span",rp,e.toDisplayString(i.value),1)]),e.createElementVNode("div",lp,[e.createElementVNode("button",ap,[e.createElementVNode("span",sp,[e.createVNode(e.unref(J.Info),{size:12,"stroke-width":2.5})]),x[2]||(x[2]=e.createElementVNode("span",{class:"text-xs font-medium text-gray-600 flex-1"},"Площа",-1)),e.createElementVNode("div",ip,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,(b,E)=>e.createElementVNode("button",{key:b.id,type:"button",class:e.normalizeClass(["px-2.5 py-1 text-xs font-medium transition-colors border-r border-gray-200 last:border-r-0",E===0&&"rounded-l-md",E===l.length-1&&"rounded-r-md",r.value===b.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(v=>r.value=b.id,["stop"])},e.toDisplayString(b.label),11,cp)),64))])]),e.createElementVNode("div",dp,[m.value?(e.openBlock(),e.createElementBlock("span",up,e.toDisplayString(y.value),1)):(e.openBlock(),e.createElementBlock("span",pp,"—"))])]),e.createElementVNode("div",mp,[e.createElementVNode("span",fp,[e.createVNode(e.unref(J.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",hp,e.toDisplayString(h.value),1),e.createElementVNode("button",{type:"button",class:"text-xs text-blue-500 hover:text-blue-600 font-medium transition-colors",onClick:e.withModifiers(a,["stop"])}," Координати ")]),o.value?(e.openBlock(),e.createElementBlock("div",gp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.points,(b,E)=>(e.openBlock(),e.createBlock(ep,{key:b.id,id:b.id,index:E+1,coords:b.coords,onUpdate:x[0]||(x[0]=v=>f.$emit("update-point",v)),onDelete:v=>f.$emit("delete-point",b.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),bp={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},kp={class:"flex items-start gap-2"},xp=e.defineComponent({__name:"InfoHint",setup(n){return(t,o)=>(e.openBlock(),e.createElementBlock("div",bp,[e.createElementVNode("div",kp,[e.createVNode(e.unref(J.Info),{size:16,"stroke-width":2,class:"text-blue-600 flex-shrink-0 mt-0.5"}),o[0]||(o[0]=e.createElementVNode("div",{class:"space-y-1"},[e.createElementVNode("p",{class:"text-xs font-medium text-blue-900"}," Натискайте на карту, щоб додати точки вимірювання "),e.createElementVNode("p",{class:"text-[10px] text-blue-700"},' Або скористайтесь кнопкою "Додати" внизу для введення координат вручну ')],-1))])]))}}),wp={class:"space-y-1.5"},vp={class:"space-y-1 max-h-40 overflow-y-auto"},Cp={class:"text-gray-700"},Ep={class:"font-semibold text-slate-800"},_p=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(n){const t=n;function o(a,s){const c=h=>h*Math.PI/180,i=c(s.lat-a.lat),d=c(s.lng-a.lng),p=c(a.lat),m=c(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(i/2)**2+Math.cos(p)*Math.cos(m)*Math.sin(d/2)**2)))}function r(a){return Sr(a)}const l=e.computed(()=>{const a=[],s=t.points;if(s.length<2)return a;for(let c=0;c<s.length;c++){const i=c===s.length-1&&t.isShapeClosed?0:c+1;if(i>=s.length)break;const d=o(s[c].coords,s[i].coords);a.push({from:c+1,to:i+1,label:r(d)})}return a});return(a,s)=>(e.openBlock(),e.createElementBlock("div",wp,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",vp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(c,i)=>(e.openBlock(),e.createElementBlock("div",{key:i,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[e.createElementVNode("span",Cp,"Точка "+e.toDisplayString(c.from)+" → Точка "+e.toDisplayString(c.to),1),e.createElementVNode("span",Ep,e.toDisplayString(c.label),1)]))),128))])]))}}),Bp={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},Vp={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},Sp={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},$p={class:"flex items-center gap-2"},Ap={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},Np={class:"flex border-b border-gray-200"},Mp={key:1,class:"px-3 py-2.5"},Fp={key:1,class:"text-xs text-gray-500"},Dp={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},Tp={class:"flex gap-1.5"},Lp=e.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(n,{expose:t,emit:o}){const r=o,l=e.ref([]),a=e.computed(()=>l.value.length>0),s=e.ref(!1),c=e.ref(!1),i=e.ref("general");function d(C){i.value=C,r("tab-change",C)}e.onMounted(()=>{r("tab-change",i.value)});const p=e.computed(()=>l.value.length>=3&&!c.value);let m=1;const y=()=>l.value.map(C=>({id:C.id,coords:{...C.coords}})),h=()=>{l.value.length<3&&c.value&&(c.value=!1,r("shape-closed-change",!1)),r("points-change",y())},f=()=>{const C=m;return m+=1,C},x=C=>{l.value=[...l.value,{id:f(),coords:{lat:C.lat,lng:C.lng}}],h()},b=({id:C,coords:T})=>{const H=l.value.findIndex(A=>A.id===C);if(H===-1)return;const oe=[...l.value];oe[H]={id:C,coords:{...T}},l.value=oe,h()},E=C=>{l.value=l.value.filter(T=>T.id!==C),h()},v=()=>{l.value=[],c.value&&(c.value=!1,r("shape-closed-change",!1)),h()},_=C=>{b(C)},N=C=>{E(C)},R=()=>{s.value=!0,r("add-request")},ee=C=>{x(C),s.value=!1},j=()=>{s.value=!1},V=()=>{p.value&&(c.value=!0,r("complete"),r("shape-closed-change",!0))},S=()=>{v(),s.value=!1,r("close")};return t({addPoint:x,clearPoints:v}),(C,T)=>(e.openBlock(),e.createElementBlock("div",Bp,[e.createElementVNode("div",Vp,[e.createElementVNode("div",Sp,[e.createElementVNode("div",$p,[e.createElementVNode("div",Ap,[e.createVNode(e.unref(J.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),T[2]||(T[2]=e.createElementVNode("h3",{class:"text-white font-semibold text-xs"},"Вимірювання",-1))]),e.createElementVNode("button",{class:"w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors","aria-label":"Закрити",onClick:S},[e.createVNode(e.unref(J.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",Np,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[0]||(T[0]=H=>d("general"))}," Загальна ",2),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[1]||(T[1]=H=>d("topoint"))}," До точки ",2)]),i.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[a.value?(e.openBlock(),e.createBlock(yp,{key:1,points:l.value,"is-shape-closed":c.value,onUpdatePoint:_,onDeletePoint:N},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(xp,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",Mp,[a.value?(e.openBlock(),e.createBlock(_p,{key:0,points:l.value,"is-shape-closed":c.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",Fp,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",Dp,[e.createElementVNode("div",Tp,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Wu,{key:0,onClick:R})),p.value?(e.openBlock(),e.createBlock(Yu,{key:1,onClick:V})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(Ku,{key:0,onSubmit:ee,onCancel:j})):e.createCommentVNode("",!0),a.value?(e.openBlock(),e.createBlock(Gu,{key:1,onClick:v})):e.createCommentVNode("",!0)])])]))}}),ot="ruler-points",Et="ruler-line",_t="ruler-polygon",Bt="ruler-segments",Ip=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(n){function t(f,x){const b=ee=>ee*Math.PI/180,E=b(x.lat-f.lat),v=b(x.lng-f.lng),_=b(f.lat),N=b(x.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(E/2)**2+Math.cos(_)*Math.cos(N)*Math.sin(v/2)**2)))}function o(f){return Sr(f)}const r=n;function l(){return{type:"FeatureCollection",features:[]}}function a(f,x,b){const E=b??"general",v=[];let _=0;v.push(0);for(let N=1;N<f.length;N++)_+=t(f[N-1].coords,f[N].coords),v.push(_);return x&&f.length>=2&&(_+=t(f[f.length-1].coords,f[0].coords)),{type:"FeatureCollection",features:f.map((N,R)=>{const ee=E==="general"?R===0?"0":o(v[R]):R===0?"0":o(t(f[R-1].coords,f[R].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[N.coords.lng,N.coords.lat]},properties:{id:N.id,index:R+1,label:ee}}})}}function s(f,x){if(f.length<2)return l();const b=[];for(let E=0;E<f.length;E++){const v=E===f.length-1&&x?0:E+1;if(v>=f.length)break;const _=f[E].coords,N=f[v].coords,R=t(_,N);b.push({type:"Feature",geometry:{type:"LineString",coordinates:[[_.lng,_.lat],[N.lng,N.lat]]},properties:{distance:o(R)}})}return{type:"FeatureCollection",features:b}}function c(f,x){if(f.length<2)return l();const b=f.map(E=>[E.coords.lng,E.coords.lat]);return x&&b.push(b[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:b},properties:{}}]}}function i(f){if(f.length<3)return l();const x=f.map(b=>[b.coords.lng,b.coords.lat]);return x.push(x[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"Polygon",coordinates:[x]},properties:{}}]}}let d=!1;function p(f){f.getSource(ot)||(f.addSource(ot,{type:"geojson",data:l()}),f.addLayer({id:`${ot}-circle`,type:"circle",source:ot,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),f.addLayer({id:`${ot}-labels`,type:"symbol",source:ot,layout:{"text-field":["get","label"],"text-size":14,"text-offset":[0,1.3]},paint:{"text-color":"#0f172a","text-halo-color":"#ffffff","text-halo-width":1}})),f.getSource(Bt)||(f.addSource(Bt,{type:"geojson",data:l()}),f.addLayer({id:`${Bt}-labels`,type:"symbol",source:Bt,layout:{"text-field":["get","distance"],"text-size":13,"symbol-placement":"line-center","text-rotation-alignment":"map","text-pitch-alignment":"map"},paint:{"text-color":"#1e293b","text-halo-color":"#ffffff","text-halo-width":1.5}})),f.getSource(Et)||(f.addSource(Et,{type:"geojson",data:l()}),f.addLayer({id:`${Et}-layer`,type:"line",source:Et,paint:{"line-color":"#3b82f6","line-width":2}})),f.getSource(_t)||(f.addSource(_t,{type:"geojson",data:l()}),f.addLayer({id:`${_t}-layer`,type:"fill",source:_t,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function m(f){if(f){try{f.getLayer(`${_t}-layer`)&&f.removeLayer(`${_t}-layer`),f.getSource(_t)&&f.removeSource(_t),f.getLayer(`${Et}-layer`)&&f.removeLayer(`${Et}-layer`),f.getSource(Et)&&f.removeSource(Et),f.getLayer(`${Bt}-labels`)&&f.removeLayer(`${Bt}-labels`),f.getSource(Bt)&&f.removeSource(Bt),f.getLayer(`${ot}-labels`)&&f.removeLayer(`${ot}-labels`),f.getLayer(`${ot}-circle`)&&f.removeLayer(`${ot}-circle`),f.getSource(ot)&&f.removeSource(ot)}catch{}d=!1}}function y(f){if(!f)return;const x=f.getSource(ot),b=f.getSource(Et),E=f.getSource(_t),v=f.getSource(Bt),_=r.points,N=r.labelMode??"general";x&&x.setData(a(_,r.isShapeClosed,N)),b&&b.setData(c(_,r.isShapeClosed)),E&&E.setData(i(_)),v&&v.setData(N==="topoint"?s(_,r.isShapeClosed):l())}function h(){const f=r.map;f&&(d||p(f),y(f))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>h(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>h(),{immediate:!0}),e.onBeforeUnmount(()=>{m(r.map)}),(f,x)=>null}});function Op(n={}){const t=e.ref(!1),o=e.ref([]),r=e.ref(!1),l=e.ref("general"),a=e.ref(null);function s(){t.value?c():(t.value=!0,n.onActivate?.())}function c(){t.value=!1,o.value=[],r.value=!1,a.value?.clearPoints(),n.onDeactivate?.()}function i(h){o.value=h}function d(h){l.value=h}function p(h){r.value=h}function m(h){t.value&&a.value?.addPoint({lat:h.lat,lng:h.lng})}const y=e.computed(()=>o.value.length>0);return{isRulerActive:t,rulerPoints:o,rulerShapeClosed:r,rulerActiveTab:l,rulerPanelRef:a,hasRulerPoints:y,toggleRuler:s,closeRuler:c,onRulerPointsChange:i,onRulerTabChange:d,onRulerShapeClosedChange:p,handleRulerMapClick:m}}const fo="vs-safe-raster",rn=new ArrayBuffer(0);let ho=!1;function Pp(n){const t=`${fo}://`;return typeof n!="string"||!n.startsWith(t)?n:n.slice(t.length)}function Rp(n){if(!n||n.byteLength<4)return!1;const t=new Uint8Array(n);return t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71||t[0]===255&&t[1]===216&&t[2]===255||t[0]===82&&t[1]===73&&t[2]===70&&t[3]===70&&n.byteLength>=12&&String.fromCharCode(t[8],t[9],t[10],t[11])==="WEBP"}async function zp(n,t){try{const o=await fetch(n,{signal:t});if(!o.ok||o.status===204)return rn;const r=await o.arrayBuffer();return!r.byteLength||!Rp(r)?rn:r}catch{return rn}}function jp(n){ho||!n?.addProtocol||(ho=!0,n.addProtocol(fo,(t,o)=>{const r=Pp(String(t?.url??""));if(!r)return o(null,{data:rn}),{cancel:()=>{}};const l=new AbortController;return zp(r,l.signal).then(a=>o(null,{data:a})).catch(()=>o(null,{data:rn})),{cancel:()=>l.abort()}}))}function Up(n){const t=typeof n=="string"?n.trim():"";if(!t)return t;const o=`${fo}://`;return t.startsWith(o)?t:`${o}${t}`}function Hp(n,t){const o=typeof n=="string"?n.trim():"";return o?t&&ho?[Up(o)]:[o]:[]}function go(n,t,o){const r={type:"raster",tiles:Hp(n,!!o?.safe),tileSize:typeof t?.tileSize=="number"?t.tileSize:256};return typeof t?.minzoom=="number"&&(r.minzoom=t.minzoom),typeof t?.maxzoom=="number"&&(r.maxzoom=t.maxzoom),Array.isArray(t?.bounds)&&t.bounds.length===4&&(r.bounds=t.bounds),r}function qp(n){const t=String(n??"").toLowerCase();return t.includes("could not be decoded")||t.includes("source image could not be decoded")||t.includes("unsupported image type")}const Kp={class:"vs-map-body"},Wp={key:0,class:"absolute top-2 left-2 z-[1000] w-[calc(100%-16px)] sm:w-[320px]"},Gp={key:1,class:"form-geom__panel flex items-center gap-1 mt-1"},Yp={class:"flex items-center gap-1"},Xp=["disabled"],Zp={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"},Jp=["disabled"],Qp=["disabled"],em={class:"mt-4 flex justify-end gap-2"},tm=["disabled"],nm={class:"vs-map-controls vs-map-controls--tr"},om={class:"vs-map-toolbar"},rm=["disabled"],lm=["disabled"],am=["disabled"],sm=["disabled"],im={key:1,class:"vs-map-toolbar__divider"},cm=["title"],dm={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"},um={class:"space-y-0.5"},pm={class:"text-gray-500"},mm={class:"text-gray-900 text-right break-all"},fm={class:"absolute left-2 bottom-2 z-[1000]"},hm={key:0,class:"vs-map-status"},gm={class:"form-geom__feature vs-map-status__inner"},ym={class:"vs-map-status__type"},bm={class:"vs-map-status__values"},km=["onClick","disabled"],xm={key:1,class:"vs-map-status__chip"},wm={key:2,class:"vs-map-status__sep"},vm={key:1,class:"vs-map-status__chip"},Cm={class:"vs-map-status__meta"},Em={class:"vs-map-status__coords"},_m={key:0,class:"vs-map-status__value"},Bm={key:1,class:"vs-map-status__value"},Vm={key:0,class:"vs-map-status__area"},Sm={class:"vs-map-status__value"},$m={class:"vs-map-status__actions"},Am=["disabled"],Nm=["disabled"],Mm=11,Fm=15,Dm=.7,Tm="vs-tile-ov-src-",Lm="vs-tile-ov-raster-",On="__vs_form_maplibre_loader__",Im="https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",Pn="vs-global-bounds-src",Wt="vs-global-bounds-line",$r="rasterLayer",Ar=Ve(e.defineComponent({__name:"vs-input-map",props:{tools:{},multi:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},handleZoom:{type:Boolean,default:!0},ctrlZoom:{type:Boolean,default:!0},geomType:{default:()=>[]},prefix:{default:""},katottg:{default:""},layers:{default:()=>[]},bounds:{},api:{},center:{default:void 0},zoom:{default:void 0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue","valueSelected"],setup(n,{emit:t}){const o=n,r=t,l=e.useAttrs(),a=e.computed(()=>{const u=l?.multiple,g=l?.multi,k=B=>B===""||B===!0||B==="true"||B===1||B==="1";return!!o.multi||!!o.multiple||k(g)||k(u)}),s=e.computed(()=>!!o.disabled),c=e.ref(!1),i=e.ref(null),d=e.ref(0),p=e.ref(""),m=e.ref(null),y=e.ref([]),h=e.ref(null),f=e.ref(null),x=Op({onActivate(){if(ue)try{ue.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""},onDeactivate(){}});function b(){x.toggleRuler()}const E=e.getCurrentInstance(),v=E?.appContext?.config?.globalProperties?.$settings??{},_=v?.map??{},N=e.computed(()=>{const u=_.layerPresets;return Array.isArray(u)?u:[]}),R=E?.vnode?.props??{};function ee(u){return Object.prototype.hasOwnProperty.call(R,u)||Object.prototype.hasOwnProperty.call(R,u.replace(/[A-Z]/g,g=>`-${g.toLowerCase()}`))}const j=Array.isArray(_.center)&&_.center.length===2?_.center:Array.isArray(v.center)&&v.center.length===2?v.center:[30,50],V=typeof _.zoom=="number"?_.zoom:typeof v.zoom=="number"?v.zoom:typeof v.defaultZoom=="number"?v.defaultZoom:10;function S(u){if(u!=null){if(Array.isArray(u)&&u.length>=2){const g=Number(u[0]),k=Number(u[1]);return!Number.isFinite(g)||!Number.isFinite(k)?void 0:[g,k]}if(typeof u=="object"){const g=u,k=g.geom;if(g.type==="Point"&&Array.isArray(g.coordinates)){const X=g.coordinates,se=Number(X[0]),pe=Number(X[1]);if(Number.isFinite(se)&&Number.isFinite(pe))return[se,pe]}if(k?.type==="Point"&&Array.isArray(k.coordinates)){const X=k.coordinates,se=Number(X[0]),pe=Number(X[1]);if(Number.isFinite(se)&&Number.isFinite(pe))return[se,pe]}const B=Number(g.lat),F=Number(g.lng??g.lon);if(Number.isFinite(B)&&Number.isFinite(F))return[F,B]}}}const C=e.computed(()=>{const u=S(o.center);if(u)return u;if(!ee("center"))return S(_.center)??S(v.center)}),T=e.computed(()=>ee("zoom")?o.zoom:_.zoom??o.zoom),H=e.computed(()=>ee("katottg")?String(o.katottg??""):String(_.katottg??o.katottg??"")),oe=e.computed(()=>ee("layers")?o.layers??[]:_.layers??o.layers??[]),A=e.computed(()=>ee("bounds")?o.bounds:_.bounds??o.bounds),L=e.ref(Array.isArray(C.value)&&C.value.length===2?[...C.value]:j),Z=e.ref(typeof T.value=="number"?T.value:V),W=e.ref(null);let I=null;function z(u){const g=typeof u=="number"&&Number.isFinite(u)?u:Z.value;return Math.min(Fm,Math.max(Mm,Math.round(g)))}function G(u,g,k){if(!Number.isFinite(u)||!Number.isFinite(g))return;const B=Qd(u,g,z(k)),F=W.value;F&&F.z===B.z&&F.x===B.x&&F.y===B.y||(W.value=B)}function $(){if(U){const u=U.getCenter?.(),g=U.getZoom?.();if(u&&Number.isFinite(g)){G(u.lng,u.lat,g);return}}Array.isArray(L.value)&&L.value.length===2&&G(L.value[0],L.value[1])}function O(){I&&clearTimeout(I),I=setTimeout(()=>{I=null,$()},120)}G(L.value[0],L.value[1]);const D=e.ref(o.modelValue),ie=e.ref(null),ce=e.ref(null),te=e.ref([]),fe=e.ref(!1),_e=e.ref(!1),ke=e.ref([]),Ne=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),Ue={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
|
|
3
3
|
50.4510, 30.5242
|
|
4
|
-
50.4494, 30.5260`},format:{type:"Radio",label:"Формат координат",options:[{id:"decimal",text:"Десяткові (Decimal)"},{id:"dms",text:"Градуси-хвилини-секунди (DMS)"}]},order:{type:"Radio",label:"Порядок координат",options:[{id:"lat-lon",text:"lat, lon"},{id:"lon-lat",text:"lon, lat"}]}};let Ne=!1,Oe=!1;const $e=e.reactive({}),oe=e.ref([]),le=e.computed(()=>oe.value.map(u=>$e[u]).filter(Boolean)),ke=e.ref(null),Ee=e.computed(()=>ke.value?.entries??[]),ze=e.computed(()=>{if(ke.value)return{left:`${ke.value.point.x+12}px`,top:`${ke.value.point.y+12}px`}}),We=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const u=l?.tools;return Array.isArray(u)?u.map(g=>String(g)):typeof u=="string"?u.split(",").map(g=>g.trim()).filter(Boolean):[]}),O=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!We.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const g=new Set(We.value.map(x=>x.toLowerCase()));return{search:g.has("search"),import:g.has("import"),export:g.has("export"),point:g.has("point"),line:g.has("line"),polygon:g.has("polygon"),rectangle:g.has("rectangle"),ruler:g.has("ruler")}});function J(u){if(typeof u!="string"||!u.trim())return"";if(/^https?:\/\//i.test(u))return u;const g=window?.location?.origin??"",x=u.replace(/^\/+/,"");return x?g?`${g}/${x}`:`/${x}`:g}function ae(){const u=Array.isArray(B.basemaps)&&B.basemaps.length?B.basemaps:w.basemaps;if(Array.isArray(u)&&u.length){const x=u.map(($,M)=>{const X=String($?.key??$?.id??$?.name??`b${M}`),de=J(String($?.url??""));if(!de)return null;const me=typeof $?.preview=="string"&&$.preview?J($.preview):"";return[X,{...$,url:de,preview:me}]}).filter($=>Array.isArray($)&&$.length===2).reduce(($,[M,X])=>($[M]=X,$),{});if(Object.keys(x).length)return x}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 ue=ae(),ge=Object.keys(ue),Ae=e.ref(ge.length?ge[0]:"");function Te(){const u=Array.isArray(B.overlays)&&B.overlays.length?B.overlays:w.overlays;return!Array.isArray(u)||!u.length?{}:u.map((x,$)=>{const X=(typeof x?.name=="string"?x.name.trim():"")||`o${$}`,de=J(String(x?.url??""));if(!de)return null;const me=typeof x?.preview=="string"&&x.preview?J(x.preview):"";return[X,{...x,name:X,url:de,preview:me}]}).filter(x=>Array.isArray(x)&&x.length===2).reduce((x,[$,M])=>(x[$]=M,x),{})}const Fe=Te(),j=e.ref(Object.keys(Fe).filter(u=>!!Fe[u]?.visible)),C=e.computed(()=>O.value.point||O.value.line||O.value.polygon||O.value.rectangle),A=e.computed(()=>le.value.map(u=>({id:u.id,label:String(u.config.title||u.config.name||u.id),visible:u.visible})));function z(u){return`${pm}${u}`}function ie(u){return`${mm}${u}`}async function _e(){if(typeof window>"u")return null;const u=window;if(u[Fn])return u[Fn];const g=X=>{if(Array.from(document.styleSheets).some(Se=>Se?.href?.includes(X)))return;const me=document.createElement("link");me.rel="stylesheet",me.href=X,document.head.appendChild(me)},x=async()=>{const X=new Function("u","return import(u)"),de=await X("https://esm.sh/maplibre-gl@3.6.2"),me=de?.default??de;if(!me)throw new Error("maplibre esm fallback failed");window.maplibregl=me,window.mapboxgl=me;const Se=await X("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),je=Se?.default??Se;if(!je)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=je},M=(async()=>{g("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),g("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await x();const X=window.maplibregl,de=window.MapboxDraw;if(!X)throw new Error("maplibregl not available after load");if(!de)throw new Error("MapboxDraw not available after load");return{maplibregl:X,MapboxDraw:de}})().catch(X=>{throw delete u[Fn],X});return u[Fn]=M,M}function Pe(u){return{version:8,sources:{rasterSource:{type:"raster",tiles:[u],tileSize:256}},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let De=null,Ge=null,Y=null,pe=null,Ie=[],Qe=null,dt=null,Ye=null,Dt=!1,Tt=!1,Ut=!1,Lt=null;function Eo(){return{onSetup(){const u=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(u),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:u,startPoint:null,hasCoordinates:!1}},onMouseMove(u,g){if(!u.startPoint)return;const[x,$]=u.startPoint,M=g.lngLat.lng,X=g.lngLat.lat;u.rectangle.setCoordinates([[[x,$],[M,$],[M,X],[x,X],[x,$]]])},onClick(u,g){if(!u.startPoint){u.startPoint=[g.lngLat.lng,g.lngLat.lat],u.hasCoordinates=!0,u.rectangle.setCoordinates([[[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat]]]);return}const[x,$]=u.startPoint,M=g.lngLat.lng,X=g.lngLat.lat;return Math.abs(x-M)>0&&Math.abs($-X)>0?(u.rectangle.setCoordinates([[[x,$],[M,$],[M,X],[x,X],[x,$]]]),this.map.fire("draw.create",{features:[u.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[u.rectangle.id]})):(this.deleteFeature([u.rectangle.id],{silent:!0}),u.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(u){this.deleteFeature([u.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(u,g,x){const $=g.properties.id===u.rectangle.id;$&&!u.hasCoordinates||(g.properties.active=$?"true":"false",x(g))}}}const Bo=[{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 Hn(){const u=Ae.value;return!u||!ue[u]?.url?"":ue[u].url}function qn(u,g){return u?.id?String(u.id):u?.url?`${u.url}-${g}`:`layer-${g}`}function Vo(u){const g=String(u?.url??"").trim();if(!g)return"";if(/^https?:\/\//i.test(g))return g;const x=window.location?.origin??"",$=g.replace(/^\/+/,"");return`${x}/${$}`}function It(u){u&&ke.value?.layerId!==u||(ke.value=null)}function Kn(u,g={}){return u.popup===!1?[]:Array.isArray(u.popup)?u.popup.length?u.popup.map(x=>{const $=x?.field||x?.name;if(!$)return null;const M=g[$];return M==null||M===""?null:{key:x.label||$,value:String(M)}}).filter(Boolean):[]:Object.entries(g).slice(0,5).map(([x,$])=>({key:x,value:$==null?"—":String($)}))}function U(u){if(!Array.isArray(u))return[];const g=$=>Array.isArray($)&&$.length>=2&&Number.isFinite(Number($[0]))&&Number.isFinite(Number($[1])),x=$=>{if(!$.length)return $;const M=$[0],X=$[$.length-1];return!X||M[0]!==X[0]||M[1]!==X[1]?[...$,M]:$};if(u.length&&g(u[0])){const $=u.map(M=>[Number(M[0]),Number(M[1])]).filter(g);return $.length?[x($)]:[]}return u.length&&Array.isArray(u[0])&&g(u[0][0])?u.map(M=>Array.isArray(M)?M.map(X=>[Number(X[0]),Number(X[1])]):[]).filter(M=>M.length).map(x):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&g(u[0][0][0])?u.flatMap(M=>Array.isArray(M)?M:[]).map(M=>Array.isArray(M)?M.map(X=>[Number(X[0]),Number(X[1])]):[]).filter(M=>M.length).map(x):[]}function re(u){const g=u.style??{},x=g.color??"#3b82f6";if(!g.colorAttr||!g.colorSet)return x;const $=Object.keys(g.colorSet);if(!$.length)return x;const M=["match",["to-string",["get",g.colorAttr]]];return $.forEach(X=>{M.push(String(X),g.colorSet?.[X]??x)}),M.push(x),M}function fe(u){if(!Y)return;u.handlers.forEach(x=>{try{Y.off(x.type,x.layerId,x.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(x=>{Y.getLayer(x)&&Y.removeLayer(x)}),Y.getSource(u.sourceId)&&Y.removeSource(u.sourceId);const g=`vs-ov-bounds-src-${u.id}`;Y.getSource(g)&&Y.removeSource(g),It(u.id)}function Me(u,g){if(!Y)return[];const x=`vs-ov-bounds-src-${g}`,$=`vs-ov-bounds-line-${g}`,M=u.bounds??te.value??ce.value,X=U(M);if(!X.length)return[];const de={type:"FeatureCollection",features:X.map(me=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:me}}))};return Y.getSource(x)&&Y.removeSource(x),Y.addSource(x,{type:"geojson",data:de}),Y.addLayer({id:$,type:"line",source:x,paint:{"line-color":u.style?.stroke??u.style?.color??"#2563eb","line-width":u.style?.width??2,"line-opacity":u.style?.opacity??.8,"line-dasharray":[2,2]}}),[$]}function Re(u){if(!Y)return;fe(u);const g=u.config,x=Vo(g);if(!x)return;const $=[],M=[];if(/\.v(?:m)?t(?:\?|$)/i.test(x)||/\.pbf(?:\?|$)/i.test(x)){const me=g.sourceLayer||g.layer||g.service_layer||g.dataset?.layer||g.id;Y.addSource(u.sourceId,{type:"vector",tiles:[x]});const Se=String(g.style?.type??"polygon").toLowerCase(),je=re(g),pt=g.style?.opacity??.5;if(Se==="point"){const mt=`vs-ov-point-${u.id}`;Y.addLayer({id:mt,type:"circle",source:u.sourceId,"source-layer":me,paint:{"circle-color":je,"circle-radius":5,"circle-opacity":pt}}),$.push(mt)}else if(Se==="polyline"||Se==="line"){const mt=`vs-ov-line-${u.id}`;Y.addLayer({id:mt,type:"line",source:u.sourceId,"source-layer":me,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":je,"line-width":g.style?.width??2,"line-opacity":pt}}),$.push(mt)}else{const mt=`vs-ov-fill-${u.id}`,Ht=`vs-ov-border-${u.id}`;Y.addLayer({id:mt,type:"fill",source:u.sourceId,"source-layer":me,paint:{"fill-color":je,"fill-opacity":pt}}),Y.addLayer({id:Ht,type:"line",source:u.sourceId,"source-layer":me,paint:{"line-color":g.style?.stroke??g.style?.color??"#2563eb","line-width":g.style?.width??1,"line-opacity":pt}}),$.push(mt,Ht)}}else{Y.addSource(u.sourceId,{type:"raster",tiles:[x],tileSize:256});const me=`vs-ov-raster-${u.id}`;Y.addLayer({id:me,type:"raster",source:u.sourceId,paint:{"raster-opacity":g.style?.opacity??1}}),$.push(me)}$.forEach(me=>{const Se=pt=>{if(!pt?.features?.length){It(u.id);return}const mt=pt.features[0]?.properties??{},Ht=Kn(u.config,mt);if(!Ht.length){It(u.id);return}ke.value={layerId:u.id,entries:Ht,point:{x:pt.point.x,y:pt.point.y}}},je=()=>It(u.id);Y.on("mousemove",me,Se),Y.on("mouseleave",me,je),M.push({layerId:me,type:"mousemove",handler:Se},{layerId:me,type:"mouseleave",handler:je})}),u.layerIds=$,u.boundsIds=Me(u.config,u.id),u.handlers=M;const de=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(me=>{Y.getLayer(me)&&Y.setLayoutProperty(me,"visibility",de)})}function Ue(){if(!Y)return;const g={type:"FeatureCollection",features:U(te.value??ce.value).map(x=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:x}}))};Y.getSource(Dn)?Y.getSource(Dn).setData(g):Y.addSource(Dn,{type:"geojson",data:g}),Y.getLayer(Wt)||Y.addLayer({id:Wt,type:"line",source:Dn,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function He(u){if(!Y||s.value)return;const g=$e[u];if(!g)return;g.visible=!g.visible;const x=g.visible?"visible":"none";[...g.layerIds,...g.boundsIds].forEach($=>{Y.getLayer($)&&Y.setLayoutProperty($,"visibility",x)}),qe(),g.visible||It(u)}function st(u){if(!Y)return;const g=Fe[u];if(!g?.url)return;const x=z(u),$=ie(u);Y.getLayer($)&&Y.removeLayer($),Y.getSource(x)&&Y.removeSource(x),Y.addSource(x,{type:"raster",tiles:[g.url],tileSize:256});const M=g?.opacity??g?.style?.opacity,X=typeof M=="number"?M:um;Y.addLayer({id:$,type:"raster",source:x,paint:{"raster-opacity":X}})}function xt(u){if(!Y)return;const g=z(u),x=ie(u);Y.getLayer(x)&&Y.removeLayer(x),Y.getSource(g)&&Y.removeSource(g)}function ut(){Y&&j.value.forEach(u=>st(u))}function wt(u){if(!Y||s.value||!Fe[u])return;j.value.includes(u)?(j.value=j.value.filter(x=>x!==u),xt(u)):(j.value=[...j.value,u],st(u)),qe()}function qe(){if(!Y)return;const u=j.value.map(Se=>ie(Se)).filter(Se=>Y.getLayer(Se)),g=[],x=[],$=[],M=[];oe.value.forEach(Se=>{const je=$e[Se];if(!je)return;const pt=String(je.config?.url??""),mt=/\.v(?:m)?t(?:\?|$)/i.test(pt),Ht=/\.png(?:\?|$)/i.test(pt);mt?$.push(...je.layerIds):Ht?g.push(...je.layerIds):x.push(...je.layerIds),M.push(...je.boundsIds)});const X=[...u,...g,...x,...$,...M];X.forEach(Se=>{Y.getLayer(Se)&&Y.moveLayer(Se)}),Y.getLayer(Wt)&&Y.moveLayer(Wt);const me=(Y.getStyle?.()?.layers??[]).map(Se=>String(Se?.id??"")).filter(Se=>Se.startsWith("gl-draw-"));if(me.forEach(Se=>{Y.getLayer(Se)&&Y.moveLayer(Se)}),Y.getLayer(xr)){const Se=X.find(je=>Y.getLayer(je))??(Y.getLayer(Wt)?Wt:null)??me.find(je=>Y.getLayer(je));Se&&Y.moveLayer(xr,Se)}}function pn(u){if(!ue[u]||(Ae.value=u,!Y))return;const g=Hn();if(!g)return;const x=Y.getSource("rasterSource");if(x&&typeof x.setTiles=="function"){x.setTiles([g]),qe();return}const $=Y.getCenter?.(),M=Y.getZoom?.(),X=pe?.getAll?.();Y.setStyle(Pe(g)),Y.once("style.load",()=>{if(Y&&($&&Number.isFinite(M)&&Y.jumpTo({center:[$.lng,$.lat],zoom:M}),Ue(),ut(),oe.value.forEach(de=>{const me=$e[de];me&&Re(me)}),qe(),X?.features?.length&&pe))try{X.features.forEach(de=>pe.add(de)),d.value=X.features.length}catch{d.value=0}})}function So(u){return{type:"Feature",properties:{},geometry:u}}function _t(u){if(!u)return null;try{return JSON.parse(JSON.stringify(u))}catch{return null}}function $o(u){if(!u)return null;const g=_t(u.geometry);return g?{...u.id!==void 0?{id:u.id}:{},type:"Feature",properties:{...u.properties??{}},geometry:g}:null}function mn(u){if(!u)return[];const g=(M,X)=>{if(!M?.type)return[];const de={...X??{}};return M.type==="MultiPoint"&&Array.isArray(M.coordinates)?M.coordinates.map(me=>So({type:"Point",coordinates:me})).map(me=>({...me,properties:de})):M.type==="MultiLineString"&&Array.isArray(M.coordinates)?M.coordinates.map(me=>So({type:"LineString",coordinates:me})).map(me=>({...me,properties:de})):M.type==="MultiPolygon"&&Array.isArray(M.coordinates)?M.coordinates.map(me=>So({type:"Polygon",coordinates:me})).map(me=>({...me,properties:de})):M.type==="GeometryCollection"&&Array.isArray(M.geometries)?M.geometries.flatMap(me=>g(me,de)):[{type:"Feature",properties:de,geometry:_t(M)}]},x=M=>{if(!M)return null;if(M.type==="Feature"){const X=$o(M);return X?g(X.geometry,X.properties):null}return M.geom?.type&&Array.isArray(M.geom.coordinates)?g({type:M.geom.type,coordinates:M.geom.coordinates},M.properties??{}):M.type==="GeometryCollection"&&Array.isArray(M.geometries)?g(M,M.properties??{}):typeof M.type=="string"&&Array.isArray(M.coordinates)?g(_t(M),M.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(x).filter(Boolean);if(Array.isArray(u))return u.flatMap(M=>M?.type==="FeatureCollection"?mn(M):[x(M)]).flat().filter(Boolean);const $=x(u);return $?Array.isArray($)?$:[$]:[]}function ul(u){if(!u.length)return null;if(!a.value)return _t(u[0]?.geometry??null);const g=u.map(X=>_t(X?.geometry)).filter(Boolean);return g.every(X=>X?.type==="Point")?{type:"MultiPoint",coordinates:g.map(X=>X.coordinates)}:g.every(X=>X?.type==="LineString")?{type:"MultiLineString",coordinates:g.map(X=>X.coordinates)}:g.every(X=>X?.type==="Polygon")?{type:"MultiPolygon",coordinates:g.map(X=>X.coordinates)}:{type:"GeometryCollection",geometries:g}}function pl(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function iy(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length<2||g.length<2)return!1;const x=1e-12;return Math.abs(Number(u[0])-Number(g[0]))<x&&Math.abs(Number(u[1])-Number(g[1]))<x}function ml(u,g){if(!Array.isArray(u)||u.length<4)return null;const $=iy(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(g)||g<0||g>=$.length||$.length<=3||($.splice(g,1),$.length<3)?null:[...$,[...$[0]]]}function fl(u,g){if(!Array.isArray(u)||u.length<2||!Number.isInteger(g)||g<0||g>=u.length||u.length<=2)return null;const x=u.slice();return x.splice(g,1),x.length<2?null:x}function cy(u,g){const x=_t(u);if(!x||!Array.isArray(g))return null;if(x.type==="LineString"){const[$]=g,M=fl(x.coordinates,$);return M?(x.coordinates=M,x):null}if(x.type==="MultiLineString"){const[$,M]=g,X=x.coordinates?.[$],de=fl(X,M);return de?(x.coordinates[$]=de,x):null}if(x.type==="Polygon"){const[$,M]=g,X=x.coordinates?.[$],de=ml(X,M);return de?(x.coordinates[$]=de,x):null}if(x.type==="MultiPolygon"){const[$,M,X]=g,de=x.coordinates?.[$]?.[M],me=ml(de,X);return me?(x.coordinates[$][M]=me,x):null}return null}function dy(u){return u?u.split(".").map(g=>Number(g)).filter(g=>Number.isInteger(g)&&g>=0):[]}function hl(u){return!pe||!u?null:typeof pe.get=="function"?pe.get(u)??null:pe.getAll?.()?.features?.find(x=>String(x?.id??"")===u)??null}function gl(u){const g=u?.properties?.id??u?.id;return g==null||g===""?null:String(g)}function uy(u){if(!Y||!u)return null;const g=[[u.x-8,u.y-8],[u.x+8,u.y+8]],$=Y.queryRenderedFeatures(g).find(M=>{const X=String(M?.properties?.meta??"");return X&&X!=="feature"?!1:!!gl(M)});return gl($)}function py(u,g){if(!pe||!u||!g.length)return;const x=hl(u);if(!x?.geometry)return;const $=cy(x.geometry,g);if(!$)return;const M={...x,id:x.id??u,geometry:$};Oe=!0,Ne=!0;try{pe.delete(u),pe.add(M)}finally{Ne=!1,Oe=!1}Ot(),Vt()}function my(u){if(!Y||!pe||s.value||k.isRulerActive.value||p.value!=="edit")return;const g=u?.point;if(!g)return;const x=[[g.x-8,g.y-8],[g.x+8,g.y+8]],M=Y.queryRenderedFeatures(x).find(de=>de?.properties?.meta==="vertex"&&de?.properties?.parent&&de?.properties?.coord_path);if(!M)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const X=dy(String(M.properties.coord_path));X.length&&py(String(M.properties.parent),X)}function fy(u){const g=kl(u);if(!g)return null;const[[x,$],[M,X]]=g;return{lat:($+X)/2,lng:(x+M)/2}}function yl(u){if(!Array.isArray(u)||u.length<3)return 0;const g=($,M)=>{const X=$*2003750834e-2/180,de=Math.log(Math.tan((90+M)*Math.PI/360))/(Math.PI/180);return[X,de*2003750834e-2/180]};let x=0;for(let $=0;$<u.length-1;$+=1){const[M,X]=g(Number(u[$][0]),Number(u[$][1])),[de,me]=g(Number(u[$+1][0]),Number(u[$+1][1]));x+=M*me-de*X}return Math.abs(x/2)/1e6}function hy(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const g=u.coordinates?.[0];return Array.isArray(g)?yl(g):null}return u.type==="MultiPolygon"?u.coordinates.reduce((g,x)=>{const $=x?.[0];return Array.isArray($)?g+yl($):g},0):null}function No(u){if(!u){m.value=null;return}const g=fy(u);if(!g){m.value=null;return}m.value={type:String(u.type??"Feature"),center:g,areaKm2:hy(u)}}function Ao(u){if(!u){const $=Ie[Ie.length-1],M=_t($?.geometry??null);Qe=M,No(M);return}const g=Ie.find($=>String($?.id??"")===String(u))??null,x=_t(g?.geometry??null);Qe=x,No(x)}function Mo(u){y.value=(u??[]).map((g,x)=>{const $=String(g?.id??`feature-${x+1}`),M=Fo(String(g?.geometry?.type??"Feature"));return{id:$,label:`${M} ${x+1}`}})}function Fo(u){switch(String(u)){case"Point":return"Точка";case"MultiPoint":return"Мультиточка";case"LineString":return"Лінія";case"MultiLineString":return"Мультилінія";case"Polygon":return"Полігон";case"MultiPolygon":return"Мультиполігон";case"GeometryCollection":return"Колекція геометрій";default:return String(u||"Невідомо")}}function bl(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length!==2||g.length!==2)return!1;const x=1e-9;return Math.abs(Number(u[0])-Number(g[0]))<x&&Math.abs(Number(u[1])-Number(g[1]))<x}function kl(u){if(!u)return null;let g=1/0,x=1/0,$=-1/0,M=-1/0;const X=de=>{if(Array.isArray(de)){if(de.length>=2&&Number.isFinite(de[0])&&Number.isFinite(de[1])){const me=Number(de[0]),Se=Number(de[1]);g=Math.min(g,me),x=Math.min(x,Se),$=Math.max($,me),M=Math.max(M,Se);return}de.forEach(X)}};return X(u.coordinates),!Number.isFinite(g)||!Number.isFinite(x)?null:[[g,x],[$,M]]}function xl(u){if(!Y||!u)return;const g=kl(u);if(!g)return;const[[x,$],[M,X]]=g;if(x===M&&$===X){Y.easeTo({center:[x,$],zoom:Math.max(R.value,14)}),F();return}Y.fitBounds(g,{padding:30,duration:250,maxZoom:18}),F()}function Do(){if(!pe){d.value=0;return}const u=pe.getAll();d.value=u?.features?.length??0}function fn(){if(!pe)return null;const g=pe.getAll?.()?.features??[],x=X=>!!X&&g.some(de=>String(de?.id??"")===String(X??"")),$=pe.getSelectedIds?.();if(Array.isArray($)&&$.length>0){const X=$[0];return X!=null?String(X):null}if(x(Ye))return String(Ye);if(!g.length)return null;const M=a.value?g[g.length-1]:g[0];return M?.id!==void 0&&M?.id!==null?String(M.id):null}function Ot(){if(!pe)return;const u=pe.getAll();if(d.value=u?.features?.length??0,!u?.features?.length){Ie=[],y.value=[],Qe=null,Ye=null,m.value=null,Ne||(dt="__null__",r("update:modelValue",null));return}const g=(u.features??[]).map($o).filter(Boolean);if(Ie=g,Mo(g),Ye=fn(),Ao(Ye),!Ne){const x=ul(g);dt=pl(x),r("update:modelValue",x)}}function Wn(){if(!pe)return;(pe.getAll()?.features||[]).forEach(g=>pe.delete(g.id)),y.value=[],Do()}function Gn(u){if(!pe)return;const g=mn(u),x=a.value?g:g.slice(0,1);Ne=!0,Wn(),x.forEach(X=>{try{pe.add(X)}catch{}}),Ne=!1,Ie=(pe.getAll?.()?.features??x).map($o).filter(Boolean),Mo(Ie),Ye=null;const M=_t(Ie[Ie.length-1]?.geometry??null);Qe=_t(M),Do(),No(M),M&&(xl(M),s.value||Vt())}function gy(){pe&&(Ne=!0,Wn(),Ie.forEach(u=>{try{pe.add(u)}catch{}}),Ne=!1,Mo(Ie),Do(),Ao(Ye))}function Yt(){if(pe){try{pe.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""}}function Yn(u){if(s.value||!pe)return;k.isRulerActive.value&&k.closeRuler(),Ut=!0,Yt(),p.value=u;const g=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";a.value||(Ne=!0,Wn(),Ne=!1);try{pe.changeMode(g)}catch{p.value=""}finally{requestAnimationFrame(()=>{Ut=!1})}}function Vt(u){if(s.value||!pe||!pe.getAll()?.features?.length)return;const x=u||fn();if(x)try{pe.changeMode("direct_select",{featureId:x}),Ye=x,Ao(Ye),p.value="edit"}catch{p.value=""}}function yy(u){s.value||!pe||!u||Vt(u)}function by(){if(!(s.value||!pe)){if(a.value){const u=fn();if(u)try{Dt=!0,pe.delete(u),Dt=!1,Ot();const g=fn();g?Vt(g):Yt();return}catch{Dt=!1}}Yt(),Wn(),Ie=[],y.value=[],Ye=null,dt="__null__",m.value=null,r("update:modelValue",null)}}function ky(){s.value||!Qe||xl(Qe)}function xy(u){if(!Y||!De)return;const g=[u[1],u[0]];Lt||(Lt=new De.Marker({color:"#2563eb"})),Lt.setLngLat(g).addTo(Y),Y.easeTo({center:g,zoom:13,duration:250})}function wy(){s.value||L.value?.click()}function _y(){s.value||(ee.value=!ee.value)}function wl(u){if(!ee.value)return;const g=se.value;g&&!g.contains(u.target)&&(ee.value=!1)}function vy(){ee.value=!1,wy()}function Cy(){s.value||(Ve.value=[],ee.value=!1,ye.value=!0)}function Ey(){ye.value=!1,Ve.value=[]}function By(){if(s.value||!pe)return;const u=iu(xe.value.coordinates??"",xe.value.format||"decimal",xe.value.order||"lat-lon");if(!u.ok){Ve.value=u.errors,Vy(u.errors);return}Ve.value=[],Gn({type:"Polygon",coordinates:[u.ring]}),Ot(),ye.value=!1,u.wasClosedAutomatically&&be.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function Vy(u){if(!u.length)return;const g=5;u.slice(0,g).forEach(x=>{const $=x.line>0?`Рядок ${x.line}`:"Загальна помилка";be.notify({type:"warning",title:"Імпорт координат",message:`${$} — ${x.message}`})}),u.length>g&&be.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-g}`})}function Sy(u){if(s.value||!pe)return;ee.value=!1;const g=u.target,x=g.files?.[0];if(!x)return;const $=new FileReader;$.onload=()=>{try{const M=JSON.parse(String($.result));if(!mn(M).length){be.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}Gn(M),Ot()}catch{be.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{g.value=""}},$.onerror=()=>{be.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),g.value=""},$.readAsText(x)}function $y(){if(s.value||!pe)return;const u=pe.getAll(),g=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),x=URL.createObjectURL(g),$=document.createElement("a");$.href=x,$.download="data.geojson",$.click(),URL.revokeObjectURL(x)}e.onMounted(async()=>{if(window.addEventListener("click",wl,!0),!c.value)return;const u=await _e();De=u.maplibregl,Ge=u.MapboxDraw;const g=Hn();g&&(Y=new De.Map({container:c.value,style:Pe(g),center:[S.value[0],S.value[1]],zoom:R.value,attributionControl:!1}),h.value=Y,Y.addControl(new De.NavigationControl({showCompass:!0}),"bottom-right"),Y.on("load",()=>{if(!(!Ge||!Y)){if(pe=new Ge({displayControlsDefault:!1,modes:{...Ge.modes,draw_rectangle:Eo()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Bo}),Y.addControl(pe),Y.on("click",x=>{if(k.isRulerActive.value){const M=x?.lngLat;if(!M)return;f.value?.addPoint?.({lat:M.lat,lng:M.lng});return}if(!pe||s.value||p.value!=="edit")return;const $=uy(x?.point);!$||$===Ye||requestAnimationFrame(()=>{!pe||s.value||Vt($)})}),Y.on("draw.create",()=>{if(pe&&!k.isRulerActive.value){if(!a.value){const x=pe.getAll();if(x.features.length>1){const $=x.features[x.features.length-1];Ne=!0,x.features.slice(0,-1).forEach(M=>pe.delete(M.id)),Ne=!1,$&&(Ne=!0,pe.add($),Ne=!1)}}Ot(),Vt()}}),Y.on("draw.update",x=>{if(Tt||k.isRulerActive.value)return;const $=Array.isArray(x?.features)?x.features:[],M=x?.action==="move"&&$.length>0&&$.every(X=>X?.geometry?.type==="Point");if(x?.action==="move"){if(M){Ot();return}if(Tt=!0,gy(),Tt=!1,p.value==="edit"){const X=fn(),de=X?hl(X):pe?.getAll?.()?.features?.[0];if(de?.id)try{pe.changeMode("direct_select",{featureId:de.id}),Ye=String(de.id)}catch{p.value=""}}return}Ot()}),Y.on("draw.delete",()=>{Oe||Dt||k.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"||(Ot(),pe?.getAll?.()?.features?.length||(Ye=null),p.value="",Yt())}),Y.on("draw.selectionchange",x=>{if(!pe||Tt||k.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle")return;const $=x?.features?.[0]?.id!==void 0&&x?.features?.[0]?.id!==null?String(x.features[0].id):null;if(!s.value&&$){if(p.value==="edit"&&Ye===$)return;requestAnimationFrame(()=>{!pe||s.value||Vt($)});return}const M=pe.getSelectedIds?.(),X=Array.isArray(M)&&M.length>0?String(M[0]):null;if(!s.value&&X){if(p.value==="edit"&&Ye===X)return;requestAnimationFrame(()=>{!pe||s.value||Vt(X)});return}try{pe.changeMode("simple_select",{featureIds:[]})}catch{}}),G.value!==void 0){const x=G.value;G.value=void 0,requestAnimationFrame(()=>{pe&&Gn(x)})}Ue(),ut(),oe.value.forEach(x=>{const $=$e[x];$&&Re($)}),qe(),ne()}}),Y.on("contextmenu",my),Y.on("moveend",F),Y.on("zoomend",()=>{Y&&(R.value=Y.getZoom())}))}),e.onUnmounted(()=>{q&&(clearTimeout(q),q=null),k.isRulerActive.value&&k.closeRuler(),window.removeEventListener("click",wl,!0),Object.values($e).forEach(u=>{Y&&fe(u)}),It(),Lt?.remove&&Lt.remove(),Lt=null,Y?.remove&&Y.remove(),Y=null,pe=null,h.value=null}),e.watch(()=>n.modelValue,u=>{if(!pe){G.value=u;return}const g=ul((a.value?mn(u):mn(u).slice(0,1))||[]),x=pl(g);if(dt&&x===dt){dt=null;return}dt=null,Gn(u)},{deep:!0}),e.watch(()=>H.value,u=>{const g=Array.isArray(u)?u:[],x=[],$=new Set;g.forEach((M,X)=>{if(!M)return;const de=qn(M,X);x.push(de),$.add(de);const me={...M,id:de},Se=$e[de],je=Se?.visible??!!me.visible;Se&&Y&&fe(Se),$e[de]={id:de,config:me,visible:je,sourceId:`vs-ov-src-${de}`,layerIds:[],boundsIds:[],handlers:[]}}),Object.keys($e).forEach(M=>{if($.has(M))return;const X=$e[M];X&&Y&&fe(X),delete $e[M]}),oe.value=x,Y&&(oe.value.forEach(M=>{const X=$e[M];X&&Re(X)}),qe())},{immediate:!0,deep:!0}),e.watch(()=>te.value,()=>{Y&&(Ue(),oe.value.forEach(u=>{const g=$e[u];g&&Re(g)}),qe())},{deep:!0}),e.watch(()=>D.value,async u=>{if(ce.value=[],!u){Y&&(Ue(),oe.value.forEach(g=>{const x=$e[g];x&&Re(x)}),qe());return}try{const g=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!g?.ok)return;const $=(await g.json())?.geometry?.coordinates;Array.isArray($)&&$.length&&(ce.value=$)}catch(g){console.error("Failed to fetch KATOTTG bounds",g)}finally{if(!Y)return;Ue(),oe.value.forEach(g=>{const x=$e[g];x&&Re(x)}),qe()}},{immediate:!0}),e.watch(()=>V.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const g=[Number(u[0]),Number(u[1])];if(bl(S.value,g)||(S.value=[...g],!Y))return;const x=Y.getCenter?.();x&&bl([x.lng,x.lat],S.value)||Y.easeTo({center:[S.value[0],S.value[1]]})},{deep:!0}),e.watch(()=>_.value,u=>{typeof u=="number"&&(R.value=u,Y&&Y.setZoom(u))}),e.watch(()=>m.value?.center,u=>{u&&Q(u.lng,u.lat,Y?.getZoom?.())},{deep:!0}),e.watch(s,u=>{u&&Yt()}),e.watch(d,u=>{if(u>0){s.value||Vt();return}Ut||Yt()});const _l=e.computed(()=>y.value.length>0||!!m.value),To=e.computed(()=>{const u=y.value,g=u.length>1;return u.length?u.map(x=>({id:x.id,label:g?x.label:m.value?.type?Fo(m.value.type):x.label,interactive:g})):m.value?.type?[{id:"__feature",label:Fo(m.value.type),interactive:!1}]:[]});function vl(){setTimeout(()=>{Y?.resize&&Y.resize()},50)}return e.watch(i,vl),e.watch(_l,vl),(u,g)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!i.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:i.value}])},[e.createElementVNode("div",Cp,[e.createElementVNode("div",{ref_key:"mapContainer",ref:c,class:"vs-map-canvas"},null,512),O.value.search||O.value.import||O.value.export?(e.openBlock(),e.createElementBlock("div",Ep,[O.value.search?(e.openBlock(),e.createBlock(Su,{key:0,onGoToCoordinates:xy})):e.createCommentVNode("",!0),O.value.import||O.value.export?(e.openBlock(),e.createElementBlock("div",Bp,[e.createElementVNode("div",Vp,[O.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:se,class:"relative"},[e.createElementVNode("button",{type:"button",class:"vs-map-action-btn",onClick:_y,disabled:s.value},[g[8]||(g[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(W.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":ee.value}])},null,8,["class"])],8,Sp),ee.value?(e.openBlock(),e.createElementBlock("div",$p,[O.value.import?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:vy}," З файлу ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:Cy}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),O.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:$y,disabled:s.value||d.value===0}," Експорт ",8,Np)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:L,type:"file",onChange:Sy,accept:".json,.geojson",class:"hidden",disabled:s.value},null,40,Ap)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(be.VsModal),{visible:ye.value,"onUpdate:visible":g[1]||(g[1]=x=>ye.value=x),title:"Імпорт координат полігону",size:"lg",teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(ct,{schema:Le,values:xe.value,"onUpdate:values":g[0]||(g[0]=x=>xe.value=x)},null,8,["values"]),e.createElementVNode("div",Mp,[e.createElementVNode("button",{type:"button",class:"px-3 py-2 rounded-md border border-gray-300 text-gray-700 text-sm hover:bg-gray-100",onClick:Ey}," Скасувати "),e.createElementVNode("button",{type:"button",class:"px-3 py-2 rounded-md bg-blue-600 text-white text-sm hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed",onClick:By,disabled:s.value}," Побудувати ",8,Fp)])]),_:1},8,["visible"]),e.createElementVNode("div",Dp,[e.createElementVNode("div",Tp,[C.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[O.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="marker"}]),title:"Точка",onClick:g[2]||(g[2]=x=>Yn("marker")),disabled:s.value},[e.createVNode(e.unref(W.MapPin),{class:"vs-btn-icon"})],10,Lp)):e.createCommentVNode("",!0),O.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polyline"}]),title:"Лінія",onClick:g[3]||(g[3]=x=>Yn("polyline")),disabled:s.value},[e.createVNode($d,{class:"vs-btn-icon"})],10,Ip)):e.createCommentVNode("",!0),O.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polygon"}]),title:"Полігон",onClick:g[4]||(g[4]=x=>Yn("polygon")),disabled:s.value},[e.createVNode(Fd,{class:"vs-btn-icon"})],10,Op)):e.createCommentVNode("",!0),O.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="rectangle"}]),title:"Прямокутник",onClick:g[5]||(g[5]=x=>Yn("rectangle")),disabled:s.value},[e.createVNode(Id,{class:"vs-btn-icon"})],10,Rp)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),C.value?(e.openBlock(),e.createElementBlock("div",Pp)):e.createCommentVNode("",!0),O.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(k).isRulerActive.value}]),title:"Лінійка",onClick:b},[e.createVNode(e.unref(W.Ruler),{class:"vs-btn-icon"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn",onClick:g[6]||(g[6]=x=>i.value=!i.value),title:"На весь екран"},[e.createVNode(e.unref(W.Maximize),{class:"vs-btn-icon"})])])]),O.value.ruler&&e.unref(k).isRulerActive.value?(e.openBlock(),e.createBlock(wp,{key:1,ref_key:"rulerPanelRefEl",ref:f,onClose:g[7]||(g[7]=x=>e.unref(k).closeRuler()),onTabChange:e.unref(k).onRulerTabChange,onPointsChange:e.unref(k).onRulerPointsChange,onShapeClosedChange:e.unref(k).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),O.value.ruler&&e.unref(k).isRulerActive.value&&e.unref(k).hasRulerPoints.value?(e.openBlock(),e.createBlock(_p,{key:2,map:h.value,points:e.unref(k).rulerPoints.value,"is-shape-closed":e.unref(k).rulerShapeClosed.value,"label-mode":e.unref(k).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),Ee.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(ze.value)},[e.createElementVNode("div",zp,[e.createElementVNode("dl",jp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Ee.value,x=>(e.openBlock(),e.createElementBlock("div",{key:`${x.key}-${x.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Up,e.toDisplayString(x.key),1),e.createElementVNode("dd",Hp,e.toDisplayString(x.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",qp,[e.createVNode(au,{compact:"",basemaps:e.unref(ue),"active-base-key":Ae.value,"tile-overlays":e.unref(Fe),"active-tile-overlay-keys":j.value,"vector-overlays":A.value,"preview-tile":K.value,disabled:s.value,onOnLayerChange:pn,onOnOverlayToggle:wt,onOnVectorOverlayToggle:He},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),_l.value?(e.openBlock(),e.createElementBlock("div",Kp,[e.createElementVNode("div",Wp,[e.createElementVNode("div",Gp,[g[9]||(g[9]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",Yp,[To.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(To.value,(x,$)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:x.id},[x.interactive?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(["vs-map-status__chip",{"vs-map-status__chip--active":x.id===e.unref(Ye)}]),onClick:M=>yy(x.id),disabled:s.value},e.toDisplayString(x.label),11,Xp)):(e.openBlock(),e.createElementBlock("span",Zp,e.toDisplayString(x.label),1)),$<To.value.length-1?(e.openBlock(),e.createElementBlock("span",Jp,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",Qp,"—"))])]),e.createElementVNode("div",em,[e.createElementVNode("span",tm,[g[10]||(g[10]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),m.value?(e.openBlock(),e.createElementBlock("span",nm,e.toDisplayString(m.value.center.lng.toFixed(5))+", "+e.toDisplayString(m.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",om,"—"))]),m.value&&m.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",rm,[g[11]||(g[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",lm,e.toDisplayString(m.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",am,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:ky,disabled:s.value},[e.createVNode(e.unref(W.ZoomIn),{class:"vs-status-btn__icon"})],8,sm),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:by,disabled:s.value},[e.createVNode(e.unref(W.Trash2),{class:"vs-status-btn__icon"})],8,im)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-4d649995"]]),fm=["data-focus"],hm={class:"flex items-center"},gm={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},ym=["onClick","aria-label"],bm={key:0,class:"absolute text-gray-500 truncate pl-2"},km={class:"flex-1 min-w-[2px]"},xm=["placeholder"],wm={class:"flex items-center shrink-0"},_m=["disabled"],_r=e.defineComponent({__name:"vs-input-tag",props:e.mergeModels({unique:{type:Boolean,default:!0},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:"Введіть тег"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t;et(n.style);const l=e.ref(null),a=e.ref(null),s=e.ref(null),i=e.ref(!1),c=e.ref(""),d=e.useModel(o,"modelValue"),p=e.computed(()=>n.placeholder||"Add tag…"),m=e.computed(()=>d.value?.length===0&&c.value===""),y=e.computed(()=>!n.disabled&&d.value?.length>0),h=e.computed(()=>n.disabled),f=async()=>{h.value||await e.nextTick(()=>s.value?.focus())},k=Z=>{const T=Z.trim();T!==""&&(!d.value||!Array.isArray(d.value)?d.value=[T]:n.unique?d.value.includes(T)||(d.value=[...d.value,T]):d.value=[...d.value,T],c.value="")},b=()=>{const Z=c.value;Z.trim()!==""&&k(Z),c.value=""},v=Z=>{const T=d.value.slice();T.splice(Z,1),r("update:modelValue",T)},w=()=>{r("update:modelValue",[])},B=()=>{h.value||(i.value=!0)},N=()=>{i.value=!1,!h.value&&b()},I=Z=>{const{key:T}=Z;T==="Enter"?(Z.preventDefault(),b()):T==="Backspace"&&c.value===""&&d.value.length>0&&v(d.value.length-1)};return(Z,T)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:l,onClick:T[1]||(T[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",i.value?"border-blue-500 ring-1 ring-blue-500":"",h.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":i.value?"true":"false",onClick:f},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:a},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(E,V)=>(e.openBlock(),e.createElementBlock("div",{key:V,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",hm,[e.createElementVNode("div",gm,e.toDisplayString(E),1)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:e.withModifiers(_=>v(V),["stop"]),"aria-label":`Remove ${E}`},[e.createVNode(e.unref(W.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,ym)]))),128)),m.value?(e.openBlock(),e.createElementBlock("div",bm,e.toDisplayString(p.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",km,[h.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:s,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":T[0]||(T[0]=E=>c.value=E),onFocus:B,onBlur:N,onKeydown:I,placeholder:d.value&&d.value.length?"":void 0},null,40,xm)),[[e.vModelText,c.value]])])],512),e.createElementVNode("div",wm,[y.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:h.value,onClick:e.withModifiers(w,["stop"])},[e.createVNode(e.unref(W.X),{class:"h-4 w-4"})],8,_m)):e.createCommentVNode("",!0)])],10,fm)],2)],512))}}),vm={class:"relative flex gap-1 bg-white w-full"},Cm=["disabled","placeholder"],vr=Ce(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=e.inject("values"),n=o,r=e.useModel(o,"modelValue");function l(s){const i={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return s.toLowerCase().split("").map(c=>i[c]||c).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const a=()=>{const s=t?.value?.[n.parent||""]?.toString(),i=l(s);r.value=i.toString()};return(s,i)=>(e.openBlock(),e.createElementBlock("div",vm,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:s.disabled,placeholder:s.placeholder,"onUpdate:modelValue":i[0]||(i[0]=c=>r.value=c),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Cm),[[e.vModelText,r.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:a}," Gen ")]))}}),[["__scopeId","data-v-b0eba370"]]),Em={class:"relative flex gap-1 bg-white w-full"},Bm=["disabled","placeholder"],Vm=["disabled"],Sm={key:0},$m={key:1},Cr=Ce(e.defineComponent({__name:"vs-input-codegen",props:e.mergeModels({table:{},code:{},init:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(!1),l=e.computed(()=>t.init!==!1),a=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!a.value)return"";const d=encodeURIComponent(String(t.table)),p=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${p}`},i=async()=>{if(!a.value||r.value)return;const d=s();if(d){r.value=!0;try{const m=await(await fetch(d)).text();n.value=m}finally{r.value=!1}}},c=()=>{l.value&&(n.value||i())};return e.onMounted(()=>{c()}),e.watch(()=>[t.table,t.code,t.init],()=>{c()}),(d,p)=>(e.openBlock(),e.createElementBlock("div",Em,[e.withDirectives(e.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":p[0]||(p[0]=m=>n.value=m),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Bm),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",disabled:r.value||d.disabled||!a.value,onClick:i},[r.value?(e.openBlock(),e.createElementBlock("span",$m,"...")):(e.openBlock(),e.createElementBlock("span",Sm,"Gen"))],8,Vm)]))}}),[["__scopeId","data-v-6ee5237d"]]),Nm={class:"w-full"},Am={ref:"sortableContainer",class:"flex flex-col gap-1"},Mm=["onDragstart","onDrop"],Fm={class:"cursor-move",type:"button"},Dm={class:"w-1/3"},Tm={class:"w-2/3"},Lm=["onClick"],Im={key:0,class:"text-[14px] text-gray-700"},Om={class:"mt-2 w-full flex items-center"},Rm=["disabled"],Er=Ce(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,r=e.inject("values"),l=o,a=t,s=l.addButtonText??"Додати",i=l.ignore??[],c=e.ref([]),d=e.ref(null);(()=>{const b=l.parent&&r?.value?.[l.parent]||l.modelValue||{};c.value=Object.entries(b).filter(([v])=>!i.includes(v)).map(([v,w])=>({id:n("key-value-"),key:v,value:w}))})();function m(b){d.value=b}function y(b){if(d.value===null||d.value===b)return;const v=c.value.splice(d.value,1)[0];c.value.splice(b,0,v),d.value=null}const h=e.computed(()=>c.value.some(b=>b.key&&!b.value||!b.key&&b.value)),f=()=>{c.value.push({id:n("key-value-"),key:"",value:""})},k=b=>{c.value=c.value.filter(v=>v.id!==b)};return e.watch(c,b=>{const v={};b.forEach(B=>{B.key&&B.value!==void 0&&(v[B.key]=B.value)});const w={};i.length&&i.forEach(B=>{w[B]=l.parent?r?.value?.[l.parent]?.[B]:void 0}),r?.value&&l.parent&&(r.value[l.parent]={...w,...v}),a("update:modelValue",v)},{deep:!0}),(b,v)=>(e.openBlock(),e.createElementBlock("div",Nm,[e.createElementVNode("div",Am,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,(w,B)=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===B}]),draggable:"true",onDragstart:N=>m(B),onDragover:v[0]||(v[0]=e.withModifiers(()=>{},["prevent"])),onDrop:N=>y(B)},[e.createElementVNode("button",Fm,[e.createVNode(e.unref(W.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",Dm,[e.createVNode(qt,{modelValue:w.key,"onUpdate:modelValue":N=>w.key=N,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",Tm,[e.createVNode(qt,{modelValue:w.value,"onUpdate:modelValue":N=>w.value=N,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:N=>k(w.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(W.X),{class:"h-4 w-4"})],8,Lm)],42,Mm))),128))],512),c.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Im," Дані для відображення відсутні ")),e.createElementVNode("div",Om,[e.createElementVNode("button",{type:"button",onClick:f,disabled:h.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(W.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,Rm)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),Pm={class:"w-full"},zm={ref:"sortableContainer",class:"flex flex-col gap-1"},jm=["onDragstart","onDrop"],Um=["disabled"],Hm={class:"flex-1"},qm=["onClick","disabled"],Km={key:0,class:"text-[14px] text-gray-700"},Wm={class:"mt-2 w-full flex items-center"},Gm=["disabled"],Br=Ce(e.defineComponent({__name:"vs-input-text-array",props:e.mergeModels({addButtonText:{default:"Додати"},inputType:{default:"text"},placeholder:{default:"Значення"},mask:{default:""},disabled:{type:Boolean,default:!1}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),l=e.ref(null),a=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),i=e.computed(()=>t.addButtonText??"Додати");let c=!1;const d=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,p=b=>{const v=b??n.value??[];r.value=v.map((w,B)=>({id:r.value[B]?.id??d("text-array"),value:w??""}))};p(),e.watch(()=>n.value,b=>{if(c){c=!1;return}p(b||[])},{deep:!0}),e.watch(r,b=>{c=!0,n.value=b.map(v=>v.value).filter(v=>v!=null&&v!=="")},{deep:!0});const m=e.computed(()=>a.value||r.value.some(b=>!b.value));function y(){m.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function h(b){a.value||(r.value=r.value.filter(v=>v.id!==b))}function f(b){a.value||(l.value=b)}function k(b){if(a.value||l.value===null||l.value===b)return;const v=[...r.value],[w]=v.splice(l.value,1);v.splice(b,0,w),r.value=v,l.value=null}return(b,v)=>(e.openBlock(),e.createElementBlock("div",Pm,[e.createElementVNode("div",zm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(w,B)=>(e.openBlock(),e.createElementBlock("div",{key:w.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":l.value===B}]),draggable:"true",onDragstart:N=>f(B),onDragover:v[0]||(v[0]=e.withModifiers(()=>{},["prevent"])),onDrop:N=>k(B)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:a.value},[e.createVNode(e.unref(W.GripVertical),{class:"h-4 w-4"})],8,Um),e.createElementVNode("div",Hm,[b.inputType==="text"?(e.openBlock(),e.createBlock(qt,{key:0,modelValue:w.value,"onUpdate:modelValue":N=>w.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="tel"?(e.openBlock(),e.createBlock(no,{key:1,modelValue:w.value,"onUpdate:modelValue":N=>w.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="email"?(e.openBlock(),e.createBlock(to,{key:2,modelValue:w.value,"onUpdate:modelValue":N=>w.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="mask"?(e.openBlock(),e.createBlock(gn,{key:3,modelValue:w.value,"onUpdate:modelValue":N=>w.value=N,mask:b.mask,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:N=>h(w.id),disabled:a.value,class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200 disabled:opacity-50"},[e.createVNode(e.unref(W.X),{class:"h-4 w-4"})],8,qm)],42,jm))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Km," Дані для відображення відсутні ")),e.createElementVNode("div",Wm,[e.createElementVNode("button",{type:"button",onClick:y,disabled:m.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(W.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(i.value),1)],8,Gm)])]))}}),[["__scopeId","data-v-2c229b1f"]]),Ym={class:"flex items-center gap-2 w-full"},Xm=["disabled"],Zm=["disabled"],Vr=e.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,{inputClass:r}=et(n.style),l=t,a=e.computed({get:()=>n.modelValue||"#000000",set:i=>l("update:modelValue",i)}),s=e.computed(()=>!!n.disabled);return(i,c)=>(e.openBlock(),e.createElementBlock("div",Ym,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":c[0]||(c[0]=d=>a.value=d),disabled:s.value,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[i.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,Xm),[[e.vModelText,a.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":c[1]||(c[1]=d=>a.value=d),disabled:s.value},null,8,Zm),[[e.vModelText,a.value]])]))}}),Jm={class:"flex items-center gap-2 w-full"},Qm=["min","max","step","disabled"],ef=["value","min","max","step","disabled"],Sr=e.defineComponent({__name:"vs-input-range",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},min:{default:0},max:{default:100},step:{default:1}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,{inputClass:r}=et(n.style),l=t,a=p=>{const m=Number(p),y=Number(n.min),h=Number(n.max);return Number.isNaN(m)?y:Math.min(h,Math.max(y,m))},s=e.computed({get:()=>a(n.modelValue??n.min),set:p=>l("update:modelValue",a(p))}),i=p=>{const m=p.target,y=a(m.value);m.value=String(y),l("update:modelValue",y)},c=p=>{Number(n.min)>=0&&p.key==="-"&&p.preventDefault()},d=e.computed(()=>!!n.disabled);return(p,m)=>(e.openBlock(),e.createElementBlock("div",Jm,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":m[0]||(m[0]=y=>s.value=y),min:p.min,max:p.max,step:p.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[p.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,Qm),[[e.vModelText,s.value]]),e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number",value:s.value,min:p.min,max:p.max,step:p.step,onInput:i,onKeydown:c,disabled:d.value},null,40,ef)]))}}),tf=["placeholder","disabled","name"],nf=["type","value","onInput","placeholder","disabled"],of=["onClick"],$r=e.defineComponent({__name:"vs-input-array",props:e.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.ref(t.count),r=e.computed(()=>t.limit),{inputClass:l}=et(t.style),a=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),i=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const k=a.value?.length??0;k<n.value&&(a.value=[...a.value??[],...Array(n.value-k)])});const c=e.ref({}),d=e.ref({});function p(k,b){k&&(c.value[b]=k)}async function m(k,b){if(!k||t.inputType!=="mask")return;const{default:v}=await Promise.resolve().then(()=>jn);d.value[b]&&d.value[b].destroy(),d.value[b]=v(k,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[b].on("accept",()=>{const w=[...a.value||[]];w[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,a.value=w}),d.value[b].on("complete",()=>{const w=[...a.value||[]];w[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,a.value=w}),a.value?.[b]&&(d.value[b].value=a.value[b])}function y(k,b){if(s.value)return;const v=k.target.value??null,w=[...a.value];w[b]=t.inputType==="text"?v:Number(v),a.value=w}function h(){n.value+=1;const k=t.inputType==="text"||t.inputType==="mask"?null:0;a.value=[...a.value,k],t.inputType==="mask"&&setTimeout(()=>{const b=n.value-1;c.value[b]&&m(c.value[b],b)},0)}function f(k){if(n.value>1){d.value[k]&&(d.value[k].destroy(),delete d.value[k]),n.value-=1,a.value=a.value.filter((v,w)=>w!==k);const b={};Object.keys(d.value).forEach(v=>{const w=parseInt(v,10);w>k?b[w-1]=d.value[w]:w<k&&(b[w]=d.value[w])}),d.value=b}}return e.onMounted(()=>{if(t.inputType==="mask")for(let k=0;k<n.value;k+=1)c.value[k]&&m(c.value[k],k)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(k=>{k&&k.destroy()})}),e.watch(()=>t.mask,k=>{t.inputType==="mask"&&Object.values(d.value).forEach(b=>{b&&b.updateOptions({mask:k,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(a,k=>{t.inputType==="mask"&&k&&k.forEach((b,v)=>{d.value[v]&&d.value[v].value!==b&&(d.value[v].value=b||"")})},{deep:!0}),(k,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${r.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,v=>(e.openBlock(),e.createElementBlock("div",{key:v,class:"flex items-center gap-2 w-full"},[k.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:w=>p(w,v-1),placeholder:k.placeholder,disabled:k.disabled,name:`${k.name}[${v-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":k.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,tf)):(e.openBlock(),e.createElementBlock("input",{key:1,type:k.inputType,value:a.value?.[v-1],onInput:w=>y(w,v-1),placeholder:i.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":k.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,nf)),!k.disabled&&v===n.value&&k.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(h,["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-green-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(W.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!k.disabled&&n.value>1&&k.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(w=>f(v-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(W.X),{class:"h-4 w-4"})],8,of)):e.createCommentVNode("",!0)]))),128))],2))}}),rf={class:"flex gap-1 w-full"},lf=["aria-expanded","data-focus"],af=["placeholder","disabled","readonly"],sf={class:"max-h-full"},cf=["onClick","disabled"],df={key:0,class:"px-3 py-2 text-sm text-stone-500"},uf=["disabled"],pf={class:"flex flex-col gap-1"},mf=["onDragstart","onDrop"],ff=["disabled"],hf=["title"],gf=["disabled","onClick","aria-label"],yf={key:0,class:"text-xs text-stone-500"},Tn=Ce(e.defineComponent({__name:"vs-input-array-select",props:e.mergeModels({options:{default:()=>[]},data:{default:""},api:{default:""},prefix:{default:"api"},host:{default:""},parent:{},search:{type:Boolean,default:!0},maxHeight:{default:280},start:{default:0},slot:{},disabled:{type:Boolean,default:!1},add:{},style:{},customClass:{},modelValue:{},error:{},name:{},placeholder:{default:"Оберіть значення"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=t,l=e.useModel(o,"modelValue"),a=e.ref([]),s=e.ref(n.options??[]),i=e.ref({}),c=e.ref({}),d=e.ref({keyword:"",parent:null}),p=e.ref(""),m=e.ref(!1),y=e.ref(null),h=e.ref(null),f=e.ref(null),k=e.ref(null),b=e.ref(null),v=e.ref({});let w=!1,B=!1;const N=e.inject("values"),I=e.computed(()=>!!n.disabled),Z=e.computed(()=>n.placeholder??"Оберіть значення"),T=e.computed(()=>n.search!==!1),E=e.computed(()=>{const C=n.parent??n.parentValue;return C?String(C):""}),V=e.computed(()=>E.value?N?.value?.[E.value]??null:null),_=C=>C==null?"__null__":String(C),D=C=>{if(!C)return"";const A=C.label??C.text??C.name??C.ua??C.en;return A?String(A):C.id!==void 0&&C.id!==null?String(C.id):""},H=C=>{const A=_(C);return c.value[A]||(c.value[A]=`array-select-${A}-${Math.random().toString(36).slice(2,8)}`),c.value[A]},te=e.computed(()=>new Set(a.value.map(C=>_(C.id)))),S=e.computed(()=>{const C=te.value;let A=[...s.value];if(!n.data&&p.value.trim()){const z=p.value.toLowerCase();A=A.filter(ie=>D(ie).toLowerCase().includes(z))}return A.filter(z=>!C.has(_(z.id)))}),R=()=>{if(!n.data)return"";const C=n.prefix??"api",A=n.api??`/${C}/suggest/${n.data}`;return`${n.host??""}${A}`},K=()=>{a.value.length&&(w=!0,a.value=a.value.map(C=>({...C,text:i.value[_(C.id)]??C.text})))},q=C=>{const A=_(C.id),z=D(C);z&&(i.value[A]=z)},P=C=>{s.value=C?[...C]:[],C?.forEach(q),K()},Q=C=>{if(!C.length)return;const A=new Map(s.value.map(z=>[_(z.id),z]));C.forEach(z=>{const ie=_(z.id);A.set(ie,z),q(z)}),s.value=Array.from(A.values()),K()},ne=async(C="")=>{if(!n.data)return[];const A=R();if(!A)return[];const z=new URLSearchParams;z.set("json","1"),C&&z.set("key",C),n.start===1&&z.set("start","1"),V.value!==null&&V.value!==void 0&&V.value!==""&&z.set("parent",String(V.value));try{return(await(await fetch(`${A}?${z.toString()}`)).json())?.data??[]}catch{return[]}},F=async C=>{if(!n.data||!C.length)return[];const A=R();if(!A)return[];const z=Array.from(new Set(C.map(_e=>_(_e)))),ie=new URLSearchParams;ie.set("json","1"),ie.set("val",z.join(",")),n.start===1&&ie.set("start","1"),V.value!==null&&V.value!==void 0&&V.value!==""&&ie.set("parent",String(V.value));try{const De=(await(await fetch(`${A}?${ie.toString()}`)).json())?.data??[];return Q(De),De}catch{return[]}},G=async C=>{if(C==null||C==="")return null;const A=_(C),z=s.value.find(_e=>_(_e.id)===A);if(z)return z;const[ie]=await F([C]);return ie??null},L=async(C="",{force:A=!1}={})=>{if(!n.data)return;const z=V.value??null;if(!A&&d.value.keyword===C&&d.value.parent===z&&s.value.length>0)return;d.value={keyword:C,parent:z};const _e=await ne(C);P(_e)},ce=((C,A=200)=>{let z;return(...ie)=>{z&&clearTimeout(z),z=setTimeout(()=>C(...ie),A)}})(async C=>{n.data&&await L(C,{force:!0})},250),ee=e.ref(null),ye=()=>{if(!f.value)return;const C=f.value.getBoundingClientRect(),A=window.innerHeight??document.documentElement.clientHeight,z=window.innerWidth??document.documentElement.clientWidth,ie=8,_e=8,Pe=n.maxHeight??280,De=A-C.bottom-_e-ie,Ge=C.top-_e-ie,Y=De>=Ge,pe=Math.max(z-ie*2,0);let{width:Ie}=C;pe>0&&Ie>pe&&(Ie=pe);let{left:Qe}=C;Qe+Ie+ie>z&&(Qe=z-Ie-ie),Qe=Math.max(Qe,ie);const dt=Math.min(Pe,Math.max(Y?De:Ge,50));v.value={position:"fixed",left:`${Qe}px`,width:`${Ie}px`,maxHeight:`${dt}px`,transform:Y?"none":"translateY(-100%)",top:Y?`${C.bottom+_e}px`:`${C.top-_e}px`}},Ve=async(C="click")=>{I.value||m.value||(ee.value=C,await L(p.value.trim()),m.value=!0,await e.nextTick(),ye(),b.value?.focus())},xe=()=>{m.value=!1,ee.value=null,e.nextTick(()=>{b.value?.blur()})},Le=async C=>{if(C.stopPropagation(),!I.value){if(m.value){if(ee.value==="focus"){ee.value=null;return}xe();return}await Ve("click")}},Ne=C=>{C.key==="Escape"&&xe()},Oe=C=>{if(!m.value)return;const A=C.target;k.value?.contains(A)||xe()},$e=C=>{const A=C.target;h.value?.contains(A)||k.value?.contains(A)||xe()},oe=C=>{if(C.key==="Escape"){C.preventDefault(),xe();return}if(C.key==="Enter"){C.preventDefault();const A=S.value[0];A&&le(A)}},le=C=>{if(!C)return;const A=_(C.id);if(te.value.has(A))return;q(C);const z={id:C.id,text:D(C)||String(C.id??""),key:H(C.id)};a.value=[...a.value,z],ke(C),p.value="",e.nextTick(()=>{b.value?.focus()})},ke=C=>{const A=a.value.map(z=>z.id);r("value-selected",{name:n.name,value:A,option:C})},Ee=C=>{if(I.value)return;const A=a.value.filter(z=>_(z.id)!==_(C));a.value=A},{isOpenAdd:ze,addData:We,addSchema:O,addForm:J,addTitle:ae,addOption:ue,onAddValue:ge}=sr({props:n,fetchOptionByValue:G,optionsList:s,selectedOption:e.ref(null),modelValue:l,onCreated:async(C,A)=>{const z=C??await G(A),ie=z?.id??A;te.value.has(_(ie))||(z&&q(z),a.value=[...a.value,{id:ie,text:z?D(z):String(ie),key:H(ie)}],ke(z??null))}}),Ae=C=>{I.value||(y.value=C)},Te=C=>{if(I.value||y.value===null||y.value===C)return;const A=[...a.value],[z]=A.splice(y.value,1);A.splice(C,0,z),y.value=null,a.value=A},Fe=async()=>{const A=(Array.isArray(l.value)?[...l.value]:[]).filter(ie=>ie!=null);if(n.data&&A.length){const ie=A.filter(_e=>!i.value[_(_e)]);ie.length&&await F(ie)}const z=A.map(ie=>({id:ie,text:i.value[_(ie)]??String(ie),key:H(ie)}));w=!0,a.value=z};e.watch(a,C=>{if(w){w=!1;return}const A=C.map(z=>z.id);B=!0,l.value=A,r("change",A)},{deep:!0}),e.watch(l,()=>{if(B){B=!1;return}Fe()},{deep:!0}),e.watch(p,C=>{!n.data||!m.value||ce(C.trim())}),e.watch(I,C=>{C&&xe()}),e.watch(()=>n.options,async C=>{n.data||(P(C??[]),await Fe())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async C=>{C&&(await L(p.value.trim()),await Fe())},{immediate:!0});const j=e.ref(!1);return e.watch(V,async()=>{if(n.data){if(!j.value){j.value=!0;return}a.value=[],await L(p.value.trim()),await Fe()}}),e.onMounted(async()=>{document.addEventListener("click",$e,!0),window.addEventListener("keydown",Ne),window.addEventListener("scroll",Oe,!0),await Fe()}),e.onUnmounted(()=>{document.removeEventListener("click",$e,!0),window.removeEventListener("keydown",Ne),window.removeEventListener("scroll",Oe,!0)}),(C,A)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(be.VsModal),{visible:e.unref(ze),"onUpdate:visible":A[1]||(A[1]=z=>e.isRef(ze)?ze.value=z:null),class:"z-[1000]",title:e.unref(ae),buttonText:"Додати",onDone:e.unref(ue)},{default:e.withCtx(()=>[e.createVNode(ct,{schema:e.unref(O),modelValue:e.unref(We),"onUpdate:modelValue":A[0]||(A[0]=z=>e.isRef(We)?We.value=z:null),ref_key:"addForm",ref:J},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),e.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:h},[e.createElementVNode("div",rf,[e.createElementVNode("div",{class:"relative flex-1",onClick:A[4]||(A[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:f,class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white px-3","border-gray-300 hover:border-[#b3d4ff]",m.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",I.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":m.value,"aria-haspopup":"listbox","data-focus":m.value?"true":"false",onClick:Le},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:b,"onUpdate:modelValue":A[2]||(A[2]=z=>p.value=z),placeholder:Z.value,disabled:I.value,readonly:!T.value,onFocus:A[3]||(A[3]=()=>Ve("focus")),onKeydown:oe,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,af),[[e.vModelText,p.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",m.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(W.ChevronDown),{class:"h-4 w-4"})],2)],10,lf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:k,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(v.value)},[e.createElementVNode("div",sf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(S.value,z=>(e.openBlock(),e.createElementBlock("button",{key:_(z.id),type:"button",class:"w-full px-3 py-2 text-left text-sm text-stone-900 hover:bg-stone-100 disabled:opacity-50",onClick:e.withModifiers(ie=>le(z),["stop"]),disabled:I.value},e.toDisplayString(D(z)),9,cf))),128)),S.value.length===0?(e.openBlock(),e.createElementBlock("p",df," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:A[5]||(A[5]=(...z)=>e.unref(ge)&&e.unref(ge)(...z)),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"},[e.createVNode(e.unref(W.Plus),{class:"h-4 w-4"}),A[8]||(A[8]=e.createElementVNode("span",null,"Додати",-1))],8,uf)):e.createCommentVNode("",!0)]),e.createElementVNode("div",pf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(z,ie)=>(e.openBlock(),e.createElementBlock("div",{key:z.key,class:e.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":y.value===ie}]),draggable:"true",onDragstart:_e=>Ae(ie),onDragover:A[6]||(A[6]=e.withModifiers(()=>{},["prevent"])),onDrop:_e=>Te(ie),onDragend:A[7]||(A[7]=_e=>y.value=null)},[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-500 hover:text-stone-900",disabled:I.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(W.GripVertical),{class:"h-4 w-4"})],8,ff),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:z.text},e.toDisplayString(z.text),9,hf),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-400 hover:text-stone-900",disabled:I.value,onClick:e.withModifiers(_e=>Ee(z.id),["stop"]),"aria-label":`Видалити ${z.text}`},[e.createVNode(e.unref(W.X),{class:"h-4 w-4"})],8,gf)],42,mf))),128)),a.value.length===0?(e.openBlock(),e.createElementBlock("p",yf,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),bf={class:"flex items-center gap-2 w-full"},kf={class:"relative flex-1"},xf=["placeholder","disabled","onKeydown"],wf=["disabled"],_f={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},vf={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Cf={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},Ef=["onClick"],Bf={key:0,class:"p-4 text-sm text-gray-500"},Nr=e.defineComponent({__name:"vs-input-address",props:e.mergeModels({api:{default:""},geom:{default:""},includes:{default:()=>[]},bbox:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","update:geom"],["update:modelValue"]),setup(o,{emit:t}){const n=/{{\s*([^}]+?)\s*}}/g,r=o,l=t,{inputClass:a}=et(r.style),s=e.useModel(o,"modelValue"),i=e.computed({get:()=>s.value,set:T=>{s.value=T}}),c=e.ref(!1),d=e.ref([]),p=e.ref(!1),m=e.ref(null);e.watch(p,T=>{typeof document>"u"||(T?(m.value=document.body.style.overflow,document.body.style.overflow="hidden"):m.value!=null?(document.body.style.overflow=m.value,m.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(m.value!=null?document.body.style.overflow=m.value:document.body.style.removeProperty("overflow"))});const y=e.computed(()=>r.placeholder??""),h=e.computed(()=>!!r.disabled),f=T=>{if(!T)return null;if(Array.isArray(T))return T;if(typeof T=="string"){const E=T.split(",").map(V=>V.trim()).filter(Boolean);return E.length!==4?null:E.map(Number)}return null},k=e.computed(()=>{const T=f(r.bbox);if(!T||T.length!==4)return null;const E=T.map(Number);return E.some(V=>Number.isNaN(V))?null:E}),b=e.computed(()=>{const T=k.value;if(!T)return"";const[E,V,_,D]=T;return`${E},${Math.max(V,D)},${_},${Math.min(V,D)}`});e.computed(()=>b.value?"1":"0");const v=e.inject("values");function w(){!h.value&&i.value.trim()&&B()}async function B(){const T=(i.value||"").trim();if(!T)return;let E=T;if(r.includes?.length&&v?.value){const _=r.includes.map(D=>v.value?.[D]).filter(Boolean);_.length&&(E=`${_.join(", ")}, ${T}`)}const V=Z(E);if(V){c.value=!0;try{const D=await(await fetch(V)).json();d.value=Array.isArray(D)?D:[],p.value=!0}catch(_){console.error("Address search error:",_)}finally{c.value=!1}}}function N(){p.value=!p.value}function I(T){if(!T)return;p.value=!1;const E=parseFloat(T.lat),_={type:"Point",coordinates:[parseFloat(T.lon),E]};r.geom&&v?.value&&(v.value[r.geom]=_),l("update:geom",_)}function Z(T){if(!r.api)return"";const E={value:encodeURIComponent(T),bbox:k.value?k.value.join(","):""};return r.api.replace(n,(V,_)=>E[_.trim()]??"")}return(T,E)=>(e.openBlock(),e.createElementBlock("div",bf,[e.createElementVNode("div",kf,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=V=>i.value=V),placeholder:y.value,disabled:h.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white border rounded-md placeholder:text-gray-400 focus:ring-2 focus:ring-blue-500",[e.unref(a),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(w,["prevent"]),["enter"])},null,42,xf),[[e.vModelText,i.value]]),d.value.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-blue-600",onClick:N,title:"Show search results"},[e.createVNode(e.unref(W.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:B,class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px]",disabled:c.value||!i.value?.trim()},[c.value?(e.openBlock(),e.createBlock(e.unref(W.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(W.Search),{key:0,class:"h-4 w-4"}))],8,wf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[p.value?(e.openBlock(),e.createElementBlock("div",_f,[e.createElementVNode("div",vf,[e.createElementVNode("div",Cf,[E[2]||(E[2]=e.createElementVNode("span",null,"Результати пошуку",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:E[1]||(E[1]=V=>p.value=!1),title:"Close"},[e.createVNode(e.unref(W.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(V,_)=>(e.openBlock(),e.createElementBlock("li",{key:_,onClick:D=>I(V),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(V.display_name),9,Ef))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Bf," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),Vf={class:"vs-datalist space-y-3"},Sf={class:"space-y-3"},$f=["onClick","disabled"],Nf={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Af=["disabled"],Mf=Ce(e.defineComponent({__name:"vs-input-datalist",props:e.mergeModels({schema:{default:()=>[]},minItems:{default:0},maxItems:{default:void 0},addButtonText:{default:"Додати позицію"},emptyLabel:{default:"Немає рядків"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>Array.isArray(n.value)?n.value:[]),l=e.ref([]),a=e.computed(()=>t.schema?.map(b=>({...b,disabled:t.disabled||b.disabled}))??[]),s=e.computed(()=>a.value.map(b=>k(b))),i=e.computed(()=>a.value.reduce((v,w)=>{const B=Number(w?.col??12);return v+(Number.isFinite(B)&&B>0?B:12)},0)>12),c=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),d=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{p(),m()},{immediate:!0}),e.watch(()=>t.schema,m,{immediate:!0,deep:!0});function p(){const b=r.value.length;l.value.length<b?l.value=[...l.value,...Array.from({length:b-l.value.length},()=>uo())]:l.value.length>b&&l.value.splice(b)}function m(){if(!t.minItems||r.value.length>=t.minItems)return;const b=t.minItems-r.value.length,v=Array.from({length:b},y);n.value=[...r.value,...v]}function y(){const b={};return a.value.forEach(v=>{b[v.name]=v?.default??null}),b}function h(){c.value&&(n.value=[...r.value,y()],p())}function f(b){d.value||(n.value=r.value.filter((v,w)=>w!==b),p(),m())}function k(b){return{...b}}return(b,v)=>(e.openBlock(),e.createElementBlock("div",Vf,[e.createElementVNode("div",Sf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(w,B)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[B],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":i.value}])},[e.createVNode(ct,{schema:s.value,layout:"inline",navigation:!1,values:r.value[B],"onUpdate:values":N=>r.value[B]=N,"form-id":l.value[B]},null,8,["schema","values","onUpdate:values","form-id"]),e.createElementVNode("button",{type:"button",class:"h-[38px] w-[38px] flex items-center justify-center text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",onClick:N=>f(B),disabled:d.value},[e.createVNode(e.unref(W.Trash2),{class:"h-4 w-4"})],8,$f)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",Nf,e.toDisplayString(t.emptyLabel),1)):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:h,disabled:!c.value},[e.createVNode(e.unref(W.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Af)]))}}),[["__scopeId","data-v-d0065868"]]),Ff={class:"vs-dataform space-y-4"},Df=["draggable","onDragstart","onDragover","onDragenter","onDrop"],Tf={class:"flex items-center gap-2"},Lf=["onClick"],If={class:"text-sm font-medium text-gray-700"},Of={class:"flex items-center gap-2"},Rf=["title","onClick","disabled"],Pf=["title","onClick","disabled"],zf={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},jf=["disabled"],Uf=Ce(e.defineComponent({__name:"vs-input-dataform",props:e.mergeModels({schema:{default:()=>[]},minGroups:{default:0},maxGroups:{default:void 0},addButtonText:{default:"Додати групу фільтрів"},groupLabel:{default:void 0},duplicateTitle:{default:"Дублювати групу"},removeTitle:{default:"Видалити групу"},emptyLabel:{},view:{default:"default"},collapsible:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref([]),l=e.ref([]),a=e.ref(0),s=e.ref(null),i=e.ref(null),c=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),p=e.computed(()=>t.emptyLabel??"Ще немає груп"),m=e.computed(()=>t.schema?.map(L=>({...L,disabled:t.disabled||L.disabled}))??[]),y=e.computed(()=>m.value.map(L=>V(L))),h=e.computed(()=>t.view==="accordion"),f=e.computed(()=>!!(t.collapsible||h.value)),k=e.computed(()=>t.draggable!==!1),b=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),v=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{w(),B(),N()},{immediate:!0}),e.watch(()=>t.schema,N,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{B()},{immediate:!0});function w(){const L=n.value.length;r.value.length<L?r.value=[...r.value,...Array.from({length:L-r.value.length},()=>uo())]:r.value.length>L&&r.value.splice(L)}function B(){const L=n.value.length;h.value?L===0?a.value=-1:a.value>=L?a.value=L-1:a.value<0&&(a.value=0):l.value.length<L?l.value=[...l.value,...Array.from({length:L-l.value.length},()=>!1)]:l.value.length>L&&l.value.splice(L)}function N(){if(!t.minGroups||n.value.length>=t.minGroups)return;const L=t.minGroups-n.value.length,se=Array.from({length:L},I);n.value=[...n.value,...se],B()}function I(){const L={};return m.value.forEach(se=>{L[se.name]=se?.default??null}),L}function Z(){b.value&&(n.value=[...n.value,I()],w(),B())}function T(L){v.value||(n.value=n.value.filter((se,ce)=>ce!==L),w(),h.value?a.value>=n.value.length&&(a.value=n.value.length-1):l.value.splice(L,1),N())}function E(L){if(t.disabled)return;const se=JSON.parse(JSON.stringify(n.value[L]??{}));n.value=[...n.value.slice(0,L+1),se,...n.value.slice(L+1)],w(),h.value?a.value>L&&(a.value+=1):l.value.splice(L+1,0,l.value[L]??!1)}function V(L){return{...L}}function _(L){return h.value?a.value===-1&&L===0?!1:a.value!==L:!!l.value[L]}function D(L){if(f.value){if(h.value){a.value=L;return}l.value[L]=!l.value[L]}}function H(L,se){if(!k.value||t.disabled){se.preventDefault();return}s.value=L,i.value=L,c.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...l.value]},se.dataTransfer?.setData("text/plain",String(L)),se.dataTransfer?.setDragImage?.(se.currentTarget,0,0)}function te(L,se){!k.value||t.disabled||s.value!==null&&Q(L,se)}function S(L,se){Q(L,se)}function R(L){!k.value||t.disabled||G()}function K(){c.value&&P(),s.value=null,i.value=null,c.value=null}function q(L,se){const ce=[...n.value],[ee]=ce.splice(L,1);ce.splice(se,0,ee),n.value=ce;const ye=[...r.value],[Ve]=ye.splice(L,1);if(ye.splice(se,0,Ve),r.value=ye,h.value)a.value===L&&(a.value=se);else{const xe=[...l.value],[Le]=xe.splice(L,1);xe.splice(se,0,Le),l.value=xe}}function P(){c.value&&(n.value=c.value.groups,r.value=c.value.keys,l.value=c.value.states,c.value=null,i.value=null)}function Q(L,se){if(s.value===null)return;const ce=ne(L,se);i.value=ce,F(ce)}function ne(L,se){if(!se?.currentTarget)return L;const ce=se.currentTarget.getBoundingClientRect(),ye=se.clientY-ce.top>ce.height/2?L+1:L;return Math.max(0,Math.min(ye,n.value.length))}function F(L){const se=s.value;if(se===null)return;let ce=L;if(ce>n.value.length&&(ce=n.value.length),ce===se||ce===se+1)return;const ee=ce>se?ce-1:ce;q(se,ee),s.value=ee,i.value=ce>se?ee+1:ee}function G(){c.value=null,s.value=null,i.value=null}return(L,se)=>(e.openBlock(),e.createElementBlock("div",Ff,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(ce,ee)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[ee],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":_(ee)?"pt-6 px-6":"p-6"]]),draggable:k.value&&!t.disabled,onDragstart:ye=>H(ee,ye),onDragend:K,onDragover:e.withModifiers(ye=>te(ee,ye),["prevent"]),onDragenter:e.withModifiers(ye=>S(ee,ye),["prevent"]),onDrop:e.withModifiers(ye=>R(),["prevent"])},[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center justify-between gap-2 border-b border-gray-100 px-4 py-3",[t.view!=="accordion"?"-mx-6 -mt-6 px-6":"",t.view!=="accordion"&&!_(ee)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",Tf,[k.value?(e.openBlock(),e.createBlock(e.unref(W.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:ye=>D(ee)},[e.createVNode(e.unref(W.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",_(ee)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,Lf)):e.createCommentVNode("",!0),e.createElementVNode("div",If,e.toDisplayString(`${d.value} (${ee+1})`),1)]),e.createElementVNode("div",Of,[e.createElementVNode("button",{type:"button",class:"p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",title:t.duplicateTitle,onClick:ye=>E(ee),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(W.Copy),{class:"h-4 w-4"})],8,Rf),e.createElementVNode("button",{type:"button",class:"p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",title:t.removeTitle,onClick:ye=>T(ee),disabled:v.value,draggable:"false"},[e.createVNode(e.unref(W.Trash2),{class:"h-4 w-4"})],8,Pf)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(ct,{class:"vs-dataform__form",schema:y.value,layout:"inline",navigation:!1,values:n.value[ee],"onUpdate:values":ye=>n.value[ee]=ye,"form-id":r.value[ee],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!_(ee)]])],42,Df))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",zf,e.toDisplayString(p.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:Z,disabled:!b.value},[e.createVNode(e.unref(W.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,jf)]))}}),[["__scopeId","data-v-cfbcfed8"]]),Ln="__vs_form_monaco_loader__",jt="__vs_form_monaco_script_loader__",In="__vs_form_monaco_editor_loader__",po=e.defineComponent({__name:"vs-input-monaco",props:e.mergeModels({syntax:{default:"xml"},theme:{default:"vs-light"},height:{default:280},minimap:{type:Boolean,default:!1},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:t}){const n=o,r=e.useModel(o,"modelValue"),l=e.ref(null),a=e.computed(()=>typeof n.height=="number"?`${n.height}px`:n.height||"280px");let s=null,i=null,c=!1;const d=()=>{if(i)return Promise.resolve(i);if(typeof window>"u")return Promise.resolve(null);const f=window;if(f.monaco?.editor?.create)return i=f.monaco,Promise.resolve(i);if(f[Ln])return f[Ln];const b=(async()=>{const v=N=>{if(Array.from(document.styleSheets||[]).some(T=>T?.href?.includes(N)))return;const Z=document.createElement("link");Z.rel="stylesheet",Z.href=N,document.head.appendChild(Z)},w=N=>{if(f[jt]?.[N])return f[jt][N];f[jt]||={};const I=Array.from(document.scripts).find(Z=>Z.src===N);return I?(f[jt][N]=new Promise((Z,T)=>{const E=I.readyState;if(I.dataset.loaded==="true"||E==="loaded"||E==="complete"){Z();return}I.addEventListener("load",()=>{I.dataset.loaded="true",Z()},{once:!0}),I.addEventListener("error",V=>T(V),{once:!0})}),f[jt][N]):(f[jt][N]=new Promise((Z,T)=>{const E=document.createElement("script");E.src=N,E.async=!0,E.onload=()=>{E.dataset.loaded="true",Z()},E.onerror=V=>T(V),document.body.appendChild(E)}),f[jt][N])},B="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return v(`${B}/editor/editor.main.min.css`),await w(`${B}/loader.min.js`),f[In]||(f[In]=new Promise((N,I)=>{window.require.config({paths:{vs:B}}),window.require(["vs/editor/editor.main"],()=>{i=window.monaco,f.monaco=i,N(i)},Z=>I(Z))}).catch(N=>{throw delete f[In],N})),f[In]})().catch(v=>{throw delete f[Ln],v});return f[Ln]=b,b},p=()=>{!l.value||!i||(s&&(s.dispose(),s=null),s=i.editor.create(l.value,{value:r.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{c||(r.value=s.getValue())}))},m=()=>{s?.focus()},y=()=>s,h=()=>i;return e.watch(()=>r.value,f=>{if(!s)return;const k=s.getValue();f!==k&&(c=!0,s.setValue(f||""),c=!1)}),e.watch(()=>n.syntax,f=>{!s||!i||i.editor.setModelLanguage(s.getModel(),f||"xml")}),e.watch(()=>n.theme,f=>{i&&i.editor.setTheme(f||"vs-light")}),e.watch(()=>n.disabled,f=>{s&&s.updateOptions({readOnly:!!f})}),e.watch(()=>n.minimap,f=>{s&&s.updateOptions({minimap:{enabled:!!f}})}),e.onMounted(async()=>{try{const f=await d();if(!f||!f.editor)return;i=f,p()}catch(f){console.error("Failed to load Monaco editor",f)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:m,getEditor:y,getMonaco:h}),(f,k)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:a.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:l,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),Ar={VsInputText:qt,VsInputRadio:oo,VsInputInlineSelect:Sn,"vs-input-text":qt,"vs-input-password":Wl,"vs-input-textarea":cr,"vs-input-richtext":dr,"vs-input-mask":gn,"vs-input-number":Io,"vs-input-radio":oo,"vs-input-select":co,"vs-input-inline-select":Sn,"inline-select":Sn,"vs-input-switcher":Qn,"vs-input-static":eo,"vs-input-container":ar,"vs-input-date":Go,"vs-input-checkbox":Po,"vs-input-file":or,"vs-input-file2":Bn,file2:Bn,File2:Bn,"vs-input-html":eo,"vs-input-email":to,"vs-input-tel":no,"vs-input-datatable":ur,"vs-input-map":wr,"vs-input-file-list":rr,"vs-input-tags":_r,"vs-input-slug":vr,"vs-input-codegen":Cr,"vs-input-key-value":Er,"vs-input-text[]":Br,"vs-input-range":Sr,"vs-input-color":Vr,"vs-input-native-select":co,VsInputArraySelect:Tn,"vs-input-array":$r,"vs-input-array-select":Tn,"array-select":Tn,"vs-input-address":Nr,"vs-input-datalist":Mf,"vs-input-dataform":Uf,"vs-input-monaco":po},Hf=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(o){const t=o,n=e.inject("values");async function r(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),a=await fetch(l);if(!a.ok){be.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const s=await a.json();if(!t.set||!n)return;for(const[i,c]of Object.entries(t.set))n.value[i]=s.result[c]}catch(l){console.error(t.error,l)}}return(l,a)=>(e.openBlock(),e.createElementBlock("button",{onClick:r,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(l.button),1))}}),qf={class:"flex flex-col gap-1 w-full"},Kf={class:"w-full"},Wf=["disabled"],Gf=["innerHTML"],Yf=2e3,Xf=10,Mr=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]},columns:{default:()=>({container:12,label:3})}},{modelValue:{default:null},modelModifiers:{}}),emits:e.mergeModels(["value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),l=t,a=e.computed(()=>ql[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],i=e.ref(H()),c=e.computed(()=>V(n.item,i.value)),d=e.computed(()=>{const S={...c.value??{}},R=n.item?.name;return R&&m?.value?.[R]&&Object.assign(S,m.value[R]),S.__locale=i.value,S}),p=e.computed(()=>Ar?.[`vs-input-${n.item.type}`]),m=e.inject("field-props"),y=e.computed(()=>{const S=e.unref(p);if(!S)return new Set;const R=S.props??S.__vccOpts?.props;if(!R)return new Set;const K=Array.isArray(R)?R:Object.keys(R);return new Set(K)}),f=[...["min","max","step"],"api","set","mask"],k=new Set(["name","type","label","ua","col","rules","validators","conditions","schema","hidden","behavior","default","columns","layout","multiple","data","info","description","text","html","view","groupLabel","emptyLabel","minGroups","maxGroups","collapsible","draggable","props","__locale","slot","slots","component"]);function b(S){const R={};Object.entries(S).forEach(([q,P])=>{k.has(q)||q.includes(":")||P!==void 0&&(R[q]=P)});const K=S.props;return K&&typeof K=="object"&&!Array.isArray(K)&&Object.entries(K).forEach(([q,P])=>{P!==void 0&&(R[q]=P)}),R}const v=e.computed(()=>{const S={...c.value??{}},R=n.item?.name;R&&m?.value?.[R]&&Object.assign(S,m.value[R]);const K=y.value;let q;return K.size?q=Object.fromEntries(Object.entries(S).filter(([P])=>K.has(P))):q={...S},Object.assign(q,b(S)),f.forEach(P=>{const Q=S[P];Q!=null&&(q[P]=Q)}),q}),w=S=>{const R=typeof S=="object"&&S!==null?S:{value:S};l("value-selected",{...R,name:R.name??n.item?.name})},B=/{{\s*([^}]+?)\s*}}/g,N=e.inject("values"),I=e.ref(!1),Z=e.computed(()=>{const S=n.item?.api,R=n.item?.type?.toLowerCase();return typeof S=="string"&&S.trim().length>0&&(R==="text"||R==="mask")});function T(S,R){if(!(S==null||!R))return R.split(".").reduce((K,q)=>K?.[q.trim()],S)}async function E(){const S=String(r.value??"").trim();if(!S)return;const R=(n.item?.api??"").trim();if(!R)return;const K=R.replace(B,(q,P)=>P.trim()==="value"?encodeURIComponent(S):"");I.value=!0;try{let q=await fetch(K),P=0;for(;q.status===202&&P<Xf;)P+=1,await new Promise(L=>{setTimeout(L,Yf)}),q=await fetch(K);if(q.status===202){be.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!q.ok){be.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const Q=await q.json(),ne=Q?.result!==void 0?Q.result:Q,F=n.item?.set;if(!F||!N?.value)return;const G=n.item?.name;Object.entries(F).forEach(([L,se])=>{if(!L)return;let ce=se;G&&ce.startsWith(`${G}.`)&&(ce=ce.slice(G.length+1));const ee=T(ne,ce);N.value[L]=ee??null})}catch(q){console.error("API lookup error:",q),be.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{I.value=!1}}e.onMounted(()=>{i.value=H(),window.addEventListener("storage",te)}),e.onUnmounted(()=>{window.removeEventListener("storage",te)});function V(S,R){if(!S)return{};const K={...S};return s.forEach(q=>{const P=D(S,q,R);P!=null&&(K[q]=P)}),Array.isArray(S.options)&&(K.options=S.options.map(q=>_(q,R))),K}function _(S,R){if(!S)return S;const K={...S},q=D(S,"label",R),P=D(S,"text",R);return q!=null&&(K.label=q),P!=null?K.text=P:q!=null&&(K.text=q),K}function D(S,R,K){const q=`${R}:${K}`;if(S?.[q]!=null)return S[q];if(R==="label"&&S?.[K]!=null)return S[K];if(S?.[R]!=null)return S[R];if(R==="label"){if(S?.ua!=null)return S.ua;if(S?.en!=null)return S.en}if(R==="text"||R==="html"){if(S?.ua!=null)return S.ua;if(S?.en!=null)return S.en}return null}function H(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function te(){i.value=H()}return(S,R)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{ua:d.value.ua,error:n.error||"",item:d.value,columns:n.columns,label:d.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${n.item.type}-component`])},[e.createElementVNode("div",qf,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":Z.value}])},[e.createElementVNode("div",Kf,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),e.mergeProps(v.value,{modelValue:r.value,"onUpdate:modelValue":R[0]||(R[0]=K=>r.value=K),onValueSelected:w}),null,16,["modelValue"]))]),Z.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px] shrink-0",disabled:I.value||!r.value?.toString().trim(),onClick:E},[I.value?(e.openBlock(),e.createBlock(e.unref(W.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(W.Search),{key:0,class:"h-4 w-4"}))],8,Wf)):e.createCommentVNode("",!0)],2),d.value.description&&n.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:d.value.description},null,8,Gf)):e.createCommentVNode("",!0)]),d.value.behavior?.api&&d.value.behavior?.button?(e.openBlock(),e.createBlock(Hf,e.mergeProps({key:0},d.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),Zf={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},Jf={class:"vs-compact-form-navigation__rail mt-[6px]"},Qf=["onClick"],eh=Ce(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(o,{expose:t}){const n=o,r=e.ref([]),l=e.ref(""),a=e.ref(""),s=e.computed(()=>!!n.enabled),i=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),c=e.computed(()=>{const D=n.width;if(D==null)return{};const H=typeof D=="number"?`${D}px`:`${D}`;return{width:H,minWidth:H}});let d=null,p=0,m=0,y=null,h=null,f=null;const k=()=>V(),b=()=>w();e.watch(()=>n.target,async D=>{if(Z(),!D){y=null,r.value=[],l.value="";return}y=D,s.value&&(await e.nextTick(),I(D),w())},{immediate:!0}),e.watch(()=>n.scrollContainer,D=>{if(!s.value){h=D??null;return}v(D??null),e.nextTick(()=>w())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||v(null),w()}),e.onBeforeUnmount(()=>{Z(),v(null,!0),y=null,typeof window<"u"&&(p&&window.cancelAnimationFrame(p),m&&window.cancelAnimationFrame(m))});function v(D,H=!1){if(f&&(f(),f=null),H){h=null;return}if(h=D??null,typeof window>"u")return;const te=D??window,S=window;te.addEventListener("scroll",k,{passive:!0}),S.addEventListener("resize",b),f=()=>{te.removeEventListener("scroll",k),S.removeEventListener("resize",b)}}function w(){if(!s.value||!y)return;p&&typeof window<"u"&&window.cancelAnimationFrame(p);const D=()=>{B(),p=0};typeof window>"u"?D():p=window.requestAnimationFrame(D)}function B(){if(!s.value||!y)return;const D=Array.from(y.querySelectorAll("h1, h2")),H=new Set,te=[];D.forEach((S,R)=>{const K=S.textContent?.trim()??"";if(!K)return;let q=(S.getAttribute("id")??"").trim();q||(q=N(K)||`heading-${R+1}`);let P=q,Q=1;for(;H.has(P);)P=`${q}-${Q+=1}`;S.id!==P&&Object.assign(S,{id:P}),H.add(P),te.push({id:P,text:K,level:S.tagName.toLowerCase()==="h1"?1:2})}),r.value=te,te.length||(l.value=""),E()}function N(D){return D.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function I(D){!D||!s.value||typeof MutationObserver>"u"||(Z(),d=new MutationObserver(()=>w()),d.observe(D,{childList:!0,subtree:!0}))}function Z(){d&&(d.disconnect(),d=null)}function T(D){const H=h;if(!H)return typeof window>"u"?D.offsetTop:D.getBoundingClientRect().top+window.scrollY;const te=D.getBoundingClientRect(),S=H.getBoundingClientRect();return te.top-S.top+H.scrollTop}function E(){if(!s.value||!r.value.length)return;const D=h,H=(D?D.scrollTop:null)||(typeof window<"u"?window.scrollY:0),te=(D?D.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),S=H+te;let R=null;for(let q=0;q<r.value.length;q+=1){const P=r.value[q],Q=document.getElementById(P.id);if(Q){const ne=T(Q);ne+Q.offsetHeight>H&&ne<S&&(R=P.id)}}!R&&a.value&&(R=a.value),R&&(a.value=R);const K=D?D.scrollHeight-D.clientHeight:document.documentElement.scrollHeight-window.innerHeight;H+5>=K&&(R=r.value[r.value.length-1].id),R&&(l.value=R)}function V(){s.value&&(m&&window.cancelAnimationFrame(m),m=window.requestAnimationFrame(()=>{E(),m=0}))}function _(D){if(!s.value)return;const H=document.getElementById(D);if(!H)return;const te=h,S=Math.max(0,T(H));te?te.scrollTo({top:S,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:S,behavior:"smooth"})}return t({refresh:w}),(D,H)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(i.value),style:e.normalizeStyle(c.value)},[e.createElementVNode("h2",Zf,e.toDisplayString(D.title),1),e.createElementVNode("div",Jf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,te=>(e.openBlock(),e.createElementBlock("div",{key:te.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",te.level===2?"vs-compact-form-navigation__item--nested":"",te.id===l.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:S=>_(te.id),class:e.normalizeClass(["vs-compact-form-navigation__button flex gap-x-3 py-[6px] pr-3 text-sm duration-200 hover:text-gray-800",te.level===2?"pl-[15px]":"pl-[18px]",te.id===l.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(te.text),1)],10,Qf)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),gt={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},th=o=>typeof o=="string"?o.trim()?!1:gt.required:Array.isArray(o)?o.map(n=>typeof n=="string"?n.trim():n).filter(n=>n!=null&&n!=="").length?!1:gt.required:typeof o=="number"?Number?.isNaN(o)?gt?.required:!1:o?!1:gt.required,nh=o=>{const t=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;return o?t.test(o)?!1:gt.email:!1},oh=(o,t)=>{if(!o)return!1;const n=String(o).trim();if(!/^\+[1-9]\d{1,14}$/.test(n))return gt.tel;const a=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:$t(vt))||$t(vt);return n.length-1!==a?gt.tel:!1},Fr=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,rh=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Fr(o)<n?t?.message||gt.minlength(n):!1},lh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&Fr(o)>n?t?.message||gt.maxlength(n):!1},Dr=o=>{if(typeof o=="number")return o;if(typeof o=="string"){const t=o.trim().replace(",",".");return t?Number(t):Number.NaN}return Number(o)},ah=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Dr(o);return Number.isFinite(r)&&r<n?t?.message||gt.min(n):!1},sh=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Dr(o);return Number.isFinite(r)&&r>n?t?.message||gt.max(n):!1},ih=(o,t)=>{const n=t.pattern??t.regexp,r=typeof n=="string"?new RegExp(n):n;if(Array.isArray(o)){const l=o.filter(Boolean);return l.length===0||l.every(a=>r.test(a))?!1:t.message}return!r.test(o)&&o?t.message:!1},ch=(o,t)=>!1,dh=(o,t)=>{switch(typeof t=="string"?t:t.type){case"required":return th(o);case"email":return nh(o);case"tel":return oh(o,typeof t=="object"?t:void 0);case"regexp":return ih(o,t);case"minlength":return rh(o,t);case"maxlength":return lh(o,t);case"min":return ah(o,t);case"max":return sh(o,t);case"custom":return ch();default:return!1}},uh={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function Tr(o){const t=o?.toLowerCase();return uh[t]||t}function mo(o,t=!1){if(Array.isArray(o)){const r=[];return o.forEach(l=>{const a={...l};if(a.name=(l.name||l.id||l.key||"").toString(),a.type=Tr(l.type),a.label=l.label||l.ua,a.rules=l.rules||l.validators,a.type==="email"&&!a.rules&&(a.rules=["email"]),a.type==="tel"&&!a.rules){const s=a.mask||vt,i=$t(s)||$t(vt);a.rules=[{type:"tel",digits:i}]}l.data&&(a.api=`/api/suggest/${l.data}`),a.disabled=a.disabled??t,Array.isArray(a.schema)&&(a.schema=mo(a.schema,a.disabled)),r.push(a)}),r}const n=[];return Object.entries(o).forEach(r=>{const l={name:r[0],...r[1],type:Tr(r[1].type),label:r[1].label||r[1].ua,rules:r[1].rules||r[1].validators,disabled:r[1].disabled??t};if(l.type==="email"&&!l.rules&&(l.rules=["email"]),l.type==="tel"&&!l.rules){const a=l.mask||vt,s=$t(a)||$t(vt);l.rules=[{type:"tel",digits:s}]}r[1].type?.includes("list")&&(l.multiple=!0),!l.api&&r[1].data&&(l.api=`/api/suggest/${r[1].data}`),Array.isArray(l.schema)&&(l.schema=mo(l.schema,l.disabled)),n.push(l)}),n}function ph(o,t,n=!1){const r=e.computed(()=>mo((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),l=e.ref({});function a(d){return lr(o?.value,d?.conditions)}const s=(d=r.value,p=!0)=>(d.forEach(m=>{const y=[],h=Number(m?.minlength),f=Number(m?.maxlength),k=Number(m?.min),b=Number(m?.max);!Number.isNaN(h)&&Number.isFinite(h)&&y.push({type:"minlength",value:h}),!Number.isNaN(f)&&Number.isFinite(f)&&y.push({type:"maxlength",value:f}),!Number.isNaN(k)&&Number.isFinite(k)&&y.push({type:"min",value:k}),!Number.isNaN(b)&&Number.isFinite(b)&&y.push({type:"max",value:b});const v=[...y,...m.rules||[]];if(v.length){if(!a(m)){delete l.value[m.name];return}let w=!1,B=null;v.forEach(N=>{const I=dh(o.value[m.name],N);I&&(w=!0,!B&&typeof I=="string"&&(B=I))}),w&&B?l.value[m.name]=B:delete l.value[m.name]}m.schema&&s(m.schema,!1)}),p&&Object.values(l.value).some(Boolean)?l.value:null),i=e.computed(()=>r.value?.filter(d=>d.hidden!==!0&&a(d)));return{errors:l,validate:s,reset:()=>{o.value={},l.value={}},visibleSchema:i}}const mh={class:"flex w-full h-full min-h-0 gap-6"},fh={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},ct=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},allowIdField:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(o,{expose:t,emit:n}){const r=n,l=o,a=e.computed(()=>!!l.formId||l.allowIdField),s=e.useModel(o,"form"),i=e.useModel(o,"modelValue"),c=e.useModel(o,"values"),d=e.computed({get:()=>c.value??i.value,set:K=>{i.value=K,c.value=K}}),{errors:p,validate:m,reset:y,visibleSchema:h}=ph(d,l.schema,e.toRef(l,"disabled")),f=e.ref(null),k=e.ref(null),b=e.ref({}),v=e.computed(()=>l.navigation),w=e.computed(()=>l.navWidth),B=e.computed(()=>l.style?.columns),N=Object.freeze({container:12,label:3}),I=e.computed(()=>l.columns??B.value??N),Z=e.computed(()=>l.columns!=null||B.value!=null),T=e.computed(()=>Z.value?"horizontal":l.layout),E=K=>K?.columns?"horizontal":T.value,V=K=>K?.columns??I.value,_=e.computed(()=>{const K={},q=P=>{if(!P)return;(Array.isArray(P)?P.map((ne,F)=>({key:String(F),entry:ne})):typeof P=="object"?Object.entries(P).map(([ne,F])=>({key:ne,entry:F})):[]).forEach(({key:ne,entry:F})=>{if(!F||typeof F!="object")return;const G=F.name?String(F.name):ne;G&&(K[G]={...F,name:G}),Array.isArray(F.schema)&&q(F.schema)})};return q(l.schema),K}),D=()=>{!a.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),m(),r("handle-submit",d.value)},H=K=>{r("value-selected",K)};t({validate:m,reset:y,errors:p}),e.onMounted(()=>{s.value={value:d.value,errors:p.value,reset:y,validate:m,formId:l.formId}});function te(K,q){if(K===q)return!0;if(typeof K!="object"||typeof q!="object"||!K||!q)return!1;const P=Object.keys(K),Q=Object.keys(q);return P.length!==Q.length?!1:P.every(ne=>K[ne]===q[ne])}function S(K){return Array.isArray(K)?[...K]:K&&typeof K=="object"?{...K}:K}function R(K){Array.isArray(K)&&K.forEach(q=>{if(!q)return;const P=q.name,Q=q.default!==void 0;P&&Q&&d.value[P]===void 0&&(d.value[P]=S(q.default)),Array.isArray(q.schema)&&R(q.schema)})}return e.watch(h,K=>{R(K)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.provide("field-props",b),e.provide("schema-by-name",_),(K,q)=>(e.openBlock(),e.createElementBlock("div",mh,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:k},[e.createElementVNode("form",{ref_key:"formRef",ref:f,onSubmit:e.withModifiers(D,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",T.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(h),(P,Q)=>(e.openBlock(),e.createElementBlock("div",{key:P.name,class:e.normalizeClass(E(P)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${P.col||12}`)},[e.createVNode(Mr,{style:e.normalizeStyle(K.style),item:P,layout:E(P),columns:V(P),"model-value":d.value[P.name],"onUpdate:modelValue":ne=>{if(P.name==="id"&&!a.value)return;const F=d.value[P.name];te(F,ne)||(d.value[P.name]=ne)},error:e.unref(p)[P.name],onValueSelected:H},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),E(P)==="settings"&&Q+1!==e.unref(h).length?(e.openBlock(),e.createElementBlock("div",fh)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(eh,{target:f.value,"scroll-container":k.value,enabled:v.value,width:w.value},null,8,["target","scroll-container","enabled","width"])]))}}),hh={class:"relative"},gh={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},yh={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"},bh={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},kh={class:"font-medium text-gray-800 dark:text-[#ffffff]"},xh={class:"p-4 mim-h-0 h-full overflow-auto"},Lr=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(o,{emit:t}){const n=o,r=t,l=e.ref(n.schema),a=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),i=e.ref(n.token||""),c=e.ref(n.token||""),d=e.ref(n.mode),p=()=>{const b=n.method?.trim().toUpperCase();return b==="GET"||b==="POST"||b==="PUT"?b:d.value==="add"?"POST":"PUT"},m=()=>{be.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},y=b=>{const v={};b.id!==void 0&&b.id!==null&&(v.id=b.id,c.value=b.id.toString()),b.obj&&typeof b.obj=="object"&&Object.assign(v,b.obj),Object.keys(v).length&&(a.value={...a.value,...v})},h=async b=>{if(console.log(b),b.ok){await b.json().catch(()=>({})),m(),r("save",a.value);return}const v=await b.json().catch(()=>({})),w=v.message||v.error;if(b.status===400){be.notify({type:"warning",title:"Помилка валідації",message:w||"Некоректні дані (400)"});return}if(b.status===500){be.notify({type:"error",title:"Серверна помилка",message:w||"Виникла помилка на сервері (500)"});return}be.notify({type:"error",title:"Помилка",message:`Статус: ${b.status}`})};async function f(){const b=s.value.validate();if(b){be.notify({type:"warning",title:"Помилка валідації",message:Object.entries(b).map(([w,B])=>`${w}: ${B}`).join(`
|
|
5
|
-
`)});return}d.value==="add"&&a.value&&delete a.value.id;const v=n.api?.trim();if(v){const w=p();try{const B=await fetch(v,{method:w,headers:w==="GET"?void 0:{"Content-Type":"application/json"},body:w==="GET"?void 0:JSON.stringify(a.value)});await h(B)}catch(B){be.notify({type:"error",title:"Помилка з’єднання",message:B.message||"Не вдалося виконати запит"})}return}if(i.value)try{const w=await fetch(`/api/table/${i.value}`,{method:d.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a.value)});await h(w)}catch(w){be.notify({type:"error",title:"Помилка з’єднання",message:w.message||"Не вдалося виконати запит"})}else r("edit",a.value),k()}function k(){r("close")}return e.onMounted(async()=>{try{if(n.form&&!n.schema){const b=await fetch(`/api/template/form/${n.form}`);if(!b.ok){be.notify({type:b.status>=400&&b.status<500?"warning":"error",title:"Error",message:`Error code: ${b.status}`});return}const v=await b.json();l.value=v.schema,v.id&&(c.value=v.id),v.token&&(i.value=v.token,c.value||(c.value=v.token))}else if(n.token&&!n.defaultValue){i.value=n.token;const b=await fetch(`/api/form/${i.value}`);if(!b.ok){be.notify({type:b.status>=400&&b.status<500?"warning":"error",title:"Error",message:`Error code: ${b.status}`});return}const v=await b.json();l.value=v.schema,v.data?a.value=v.data:d.value="add",y({id:v.id,obj:v.obj})}}catch(b){be.notify({type:"error",title:"Error",message:b.message||"Unexpected error"}),console.error(b)}}),(b,v)=>(e.openBlock(),e.createElementBlock("div",hh,[e.createElementVNode("div",gh,[e.createElementVNode("div",yh,[e.createElementVNode("div",bh,[e.createElementVNode("h3",kh,e.toDisplayString(d.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:k,type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"},[v[2]||(v[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(W.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",xh,[l.value?(e.openBlock(),e.createBlock(ct,{key:0,schema:l.value,values:a.value,"onUpdate:values":v[0]||(v[0]=w=>a.value=w),form:s.value,"onUpdate:form":v[1]||(v[1]=w=>s.value=w),formId:c.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:k,class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:f,type:"button",class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"}," Зберегти ")])])])]))}}),Ir=Xn.form.richtext,Or=Zn.form.richtext,fo={en:{form:{richtext:Ir}},uk:{form:{richtext:Or}}},Rr=(o={mode:"edit",schema:null})=>new Promise(t=>{const{close:n}=be.modal({title:o.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:Lr,contentProps:{...o,onClose:()=>{t(null),n()},onSave:r=>{t(r),n()}}})});ct.install=function(t){t.component("VForm",ct),Object.assign(t.config.globalProperties,{$form:Rr}),t.provide("form",Rr),window.v3plugin||(window.v3plugin={})};function Nt(o){return typeof o=="string"||o instanceof String}function Pr(o){var t;return typeof o=="object"&&o!=null&&(o==null||(t=o.constructor)==null?void 0:t.name)==="Object"}function zr(o,t){return Array.isArray(t)?zr(o,(n,r)=>t.includes(r)):Object.entries(o).reduce((n,r)=>{let[l,a]=r;return t(a,l)&&(n[l]=a),n},{})}const he={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function jr(o){switch(o){case he.LEFT:return he.FORCE_LEFT;case he.RIGHT:return he.FORCE_RIGHT;default:return o}}function ho(o){return o.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function On(o,t){if(t===o)return!0;const n=Array.isArray(t),r=Array.isArray(o);let l;if(n&&r){if(t.length!=o.length)return!1;for(l=0;l<t.length;l++)if(!On(t[l],o[l]))return!1;return!0}if(n!=r)return!1;if(t&&o&&typeof t=="object"&&typeof o=="object"){const a=t instanceof Date,s=o instanceof Date;if(a&&s)return t.getTime()==o.getTime();if(a!=s)return!1;const i=t instanceof RegExp,c=o instanceof RegExp;if(i&&c)return t.toString()==o.toString();if(i!=c)return!1;const d=Object.keys(t);for(l=0;l<d.length;l++)if(!Object.prototype.hasOwnProperty.call(o,d[l]))return!1;for(l=0;l<d.length;l++)if(!On(o[d[l]],t[d[l]]))return!1;return!0}else if(t&&o&&typeof t=="function"&&typeof o=="function")return t.toString()===o.toString();return!1}class wh{constructor(t){for(Object.assign(this,t);this.value.slice(0,this.startChangePos)!==this.oldValue.slice(0,this.startChangePos);)--this.oldSelection.start;if(this.insertedCount)for(;this.value.slice(this.cursorPos)!==this.oldValue.slice(this.oldSelection.end);)this.value.length-this.cursorPos<this.oldValue.length-this.oldSelection.end?++this.oldSelection.end:++this.cursorPos}get startChangePos(){return Math.min(this.cursorPos,this.oldSelection.start)}get insertedCount(){return this.cursorPos-this.startChangePos}get inserted(){return this.value.substr(this.startChangePos,this.insertedCount)}get removedCount(){return Math.max(this.oldSelection.end-this.startChangePos||this.oldValue.length-this.value.length,0)}get removed(){return this.oldValue.substr(this.startChangePos,this.removedCount)}get head(){return this.value.substring(0,this.startChangePos)}get tail(){return this.value.substring(this.startChangePos+this.insertedCount)}get removeDirection(){return!this.removedCount||this.insertedCount?he.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?he.RIGHT:he.LEFT}}function ve(o,t){return new ve.InputMask(o,t)}function Ur(o){if(o==null)throw new Error("mask property should be defined");return o instanceof RegExp?ve.MaskedRegExp:Nt(o)?ve.MaskedPattern:o===Date?ve.MaskedDate:o===Number?ve.MaskedNumber:Array.isArray(o)||o===Array?ve.MaskedDynamic:ve.Masked&&o.prototype instanceof ve.Masked?o:ve.Masked&&o instanceof ve.Masked?o.constructor:o instanceof Function?ve.MaskedFunction:(console.warn("Mask not found for mask",o),ve.Masked)}function Gt(o){if(!o)throw new Error("Options in not defined");if(ve.Masked){if(o.prototype instanceof ve.Masked)return{mask:o};const{mask:t=void 0,...n}=o instanceof ve.Masked?{mask:o}:Pr(o)&&o.mask instanceof ve.Masked?o:{};if(t){const r=t.mask;return{...zr(t,(l,a)=>!a.startsWith("_")),mask:t.constructor,_mask:r,...n}}}return Pr(o)?{...o}:{mask:o}}function yt(o){if(ve.Masked&&o instanceof ve.Masked)return o;const t=Gt(o),n=Ur(t.mask);if(!n)throw new Error("Masked class is not found for provided mask "+t.mask+", appropriate module needs to be imported manually before creating mask.");return t.mask===n&&delete t.mask,t._mask&&(t.mask=t._mask,delete t._mask),new n(t)}ve.createMask=yt;class Rn{get selectionStart(){let t;try{t=this._unsafeSelectionStart}catch{}return t??this.value.length}get selectionEnd(){let t;try{t=this._unsafeSelectionEnd}catch{}return t??this.value.length}select(t,n){if(!(t==null||n==null||t===this.selectionStart&&n===this.selectionEnd))try{this._unsafeSelect(t,n)}catch{}}get isActive(){return!1}}ve.MaskElement=Rn;const Hr=90,_h=89;class nn extends Rn{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,n,r;return(t=(n=(r=this.input).getRootNode)==null?void 0:n.call(r))!=null?t:document}get isActive(){return this.input===this.rootElement.activeElement}bindEvents(t){this.input.addEventListener("keydown",this._onKeydown),this.input.addEventListener("input",this._onInput),this.input.addEventListener("beforeinput",this._onBeforeinput),this.input.addEventListener("compositionend",this._onCompositionEnd),this.input.addEventListener("drop",t.drop),this.input.addEventListener("click",t.click),this.input.addEventListener("focus",t.focus),this.input.addEventListener("blur",t.commit),this._handlers=t}_onKeydown(t){if(this._handlers.redo&&(t.keyCode===Hr&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===_h&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===Hr&&(t.metaKey||t.ctrlKey))return t.preventDefault(),this._handlers.undo(t);t.isComposing||this._handlers.selectionChange(t)}_onBeforeinput(t){if(t.inputType==="historyUndo"&&this._handlers.undo)return t.preventDefault(),this._handlers.undo(t);if(t.inputType==="historyRedo"&&this._handlers.redo)return t.preventDefault(),this._handlers.redo(t)}_onCompositionEnd(t){this._handlers.input(t)}_onInput(t){t.isComposing||this._handlers.input(t)}unbindEvents(){this.input.removeEventListener("keydown",this._onKeydown),this.input.removeEventListener("input",this._onInput),this.input.removeEventListener("beforeinput",this._onBeforeinput),this.input.removeEventListener("compositionend",this._onCompositionEnd),this.input.removeEventListener("drop",this._handlers.drop),this.input.removeEventListener("click",this._handlers.click),this.input.removeEventListener("focus",this._handlers.focus),this.input.removeEventListener("blur",this._handlers.commit),this._handlers={}}}ve.HTMLMaskElement=nn;class qr extends nn{constructor(t){super(t),this.input=t}get _unsafeSelectionStart(){return this.input.selectionStart!=null?this.input.selectionStart:this.value.length}get _unsafeSelectionEnd(){return this.input.selectionEnd}_unsafeSelect(t,n){this.input.setSelectionRange(t,n)}get value(){return this.input.value}set value(t){this.input.value=t}}ve.HTMLMaskElement=nn;class go extends nn{get _unsafeSelectionStart(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||r==null||r<l?r:l}get _unsafeSelectionEnd(){const t=this.rootElement,n=t.getSelection&&t.getSelection(),r=n&&n.anchorOffset,l=n&&n.focusOffset;return l==null||r==null||r>l?r:l}_unsafeSelect(t,n){if(!this.rootElement.createRange)return;const r=this.rootElement.createRange();r.setStart(this.input.firstChild||this.input,t),r.setEnd(this.input.lastChild||this.input,n);const l=this.rootElement,a=l.getSelection&&l.getSelection();a&&(a.removeAllRanges(),a.addRange(r))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}ve.HTMLContenteditableMaskElement=go;class Pn{constructor(){this.states=[],this.currentIndex=0}get currentState(){return this.states[this.currentIndex]}get isEmpty(){return this.states.length===0}push(t){this.currentIndex<this.states.length-1&&(this.states.length=this.currentIndex+1),this.states.push(t),this.states.length>Pn.MAX_LENGTH&&this.states.shift(),this.currentIndex=this.states.length-1}go(t){return this.currentIndex=Math.min(Math.max(this.currentIndex+t,0),this.states.length-1),this.currentState}undo(){return this.go(-1)}redo(){return this.go(1)}clear(){this.states.length=0,this.currentIndex=0}}Pn.MAX_LENGTH=100;class Kr{constructor(t,n){this.el=t instanceof Rn?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new go(t):new qr(t),this.masked=yt(n),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new Pn,this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this._onUndo=this._onUndo.bind(this),this._onRedo=this._onRedo.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}maskEquals(t){var n;return t==null||((n=this.masked)==null?void 0:n.maskEquals(t))}get mask(){return this.masked.mask}set mask(t){if(this.maskEquals(t))return;if(!(t instanceof ve.Masked)&&this.masked.constructor===Ur(t)){this.masked.updateOptions({mask:t});return}const n=t instanceof ve.Masked?t:yt({mask:t});n.unmaskedValue=this.masked.unmaskedValue,this.masked=n}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,n){const r=this._listeners[t];r&&r.forEach(l=>l(n))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const n=this.masked.unmaskedValue,r=this.masked.value,l=this.masked.rawInputValue,a=this.displayValue,s=this.unmaskedValue!==n||this.value!==r||this._rawInputValue!==l;this._unmaskedValue=n,this._value=r,this._rawInputValue=l,this.el.value!==a&&(this.el.value=a),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:n,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:n,...r}=t,l=!this.maskEquals(n),a=this.masked.optionsIsChanged(r);l&&(this.mask=n),a&&this.masked.updateOptions(r),(l||a)&&this.updateControl()}updateCursor(t){t!=null&&(this.cursorPos=t,this._delayUpdateCursor(t))}_delayUpdateCursor(t){this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(()=>{this.el&&(this.cursorPos=this._changingCursorPos,this._abortUpdateCursor())},10)}_fireChangeEvents(){this._fireEvent("accept",this._inputEvent),this.masked.isComplete&&this._fireEvent("complete",this._inputEvent)}_abortUpdateCursor(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)}alignCursor(){this.cursorPos=this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos,he.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,n){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(n),this}off(t,n){if(!this._listeners[t])return this;if(!n)return delete this._listeners[t],this;const r=this._listeners[t].indexOf(n);return r>=0&&this._listeners[t].splice(r,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const n=new wh({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),r=this.masked.rawInputValue,l=this.masked.splice(n.startChangePos,n.removed.length,n.inserted,n.removeDirection,{input:!0,raw:!0}).offset,a=r===this.masked.rawInputValue?n.removeDirection:he.NONE;let s=this.masked.nearestInputPos(n.startChangePos+l,a);a!==he.NONE&&(s=this.masked.nearestInputPos(s,he.NONE)),this.updateControl(s),delete this._inputEvent}_onChange(){this.displayValue!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}_onDrop(t){t.preventDefault(),t.stopPropagation()}_onFocus(t){this.alignCursorFriendly()}_onClick(t){this.alignCursorFriendly()}_onUndo(){this._applyHistoryState(this.history.undo())}_onRedo(){this._applyHistoryState(this.history.redo())}_applyHistoryState(t){t&&(this._historyChanging=!0,this.unmaskedValue=t.unmaskedValue,this.el.select(t.selection.start,t.selection.end),this._saveSelection(),this._historyChanging=!1)}destroy(){this._unbindEvents(),this._listeners.length=0,delete this.el}}ve.InputMask=Kr;class Be{static normalize(t){return Array.isArray(t)?t:[t,new Be]}constructor(t){Object.assign(this,{inserted:"",rawInserted:"",tailShift:0,skip:!1},t)}aggregate(t){return this.inserted+=t.inserted,this.rawInserted+=t.rawInserted,this.tailShift+=t.tailShift,this.skip=this.skip||t.skip,this}get offset(){return this.tailShift+this.inserted.length}get consumed(){return!!this.rawInserted||this.skip}equals(t){return this.inserted===t.inserted&&this.tailShift===t.tailShift&&this.rawInserted===t.rawInserted&&this.skip===t.skip}}ve.ChangeDetails=Be;class bt{constructor(t,n,r){t===void 0&&(t=""),n===void 0&&(n=0),this.value=t,this.from=n,this.stop=r}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const n=this.value[0];return this.value=this.value.slice(1),n}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class Ze{constructor(t){this._value="",this._update({...Ze.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,n){n===void 0&&(n={input:!0}),this.reset(),this.append(t,n,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,n){return t}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),Math.min(this.displayValue.length,n-t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this.displayValue.slice(t,n)}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new bt(this.extractInput(t,n),t)}appendTail(t){return Nt(t)&&(t=new bt(String(t))),t.appendTo(this)}_appendCharRaw(t,n){return t?(this._value+=t,new Be({inserted:t,rawInserted:t})):new Be}_appendChar(t,n,r){n===void 0&&(n={});const l=this.state;let a;if([t,a]=this.doPrepareChar(t,n),t&&(a=a.aggregate(this._appendCharRaw(t,n)),!a.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=l;let i=this.pad(n);const c=this._appendCharRaw(t,n);i=i.aggregate(c),c.rawInserted||i.equals(a)?a=i:this.state=s}if(a.inserted){let s,i=this.doValidate(n)!==!1;if(i&&r!=null){const c=this.state;if(this.overwrite===!0){s=r.state;for(let p=0;p<a.rawInserted.length;++p)r.unshift(this.displayValue.length-a.tailShift)}let d=this.appendTail(r);if(i=d.rawInserted.length===r.toString().length,!(i&&d.inserted)&&this.overwrite==="shift"){this.state=c,s=r.state;for(let p=0;p<a.rawInserted.length;++p)r.shift();d=this.appendTail(r),i=d.rawInserted.length===r.toString().length}i&&d.inserted&&(this.state=c)}i||(a=new Be,this.state=l,r&&s&&(r.state=s))}return a}_appendPlaceholder(){return new Be}_appendEager(){return new Be}append(t,n,r){if(!Nt(t))throw new Error("value should be string");const l=Nt(r)?new bt(String(r)):r;n!=null&&n.tail&&(n._beforeTailState=this.state);let a;[t,a]=this.doPrepare(t,n);for(let s=0;s<t.length;++s){const i=this._appendChar(t[s],n,l);if(!i.rawInserted&&!this.doSkipInvalid(t[s],n,l))break;a.aggregate(i)}return(this.eager===!0||this.eager==="append")&&n!=null&&n.input&&t&&a.aggregate(this._appendEager()),l!=null&&(a.tailShift+=this.appendTail(l).tailShift),a}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(n),new Be}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const n=this.rawInputValue,r=this.value,l=t();return this.rawInputValue=n,this.value&&this.value!==r&&r.indexOf(this.value)===0&&(this.append(r.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,l}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const n=this.state,r=t(this);return this.state=n,delete this._isolated,r}doSkipInvalid(t,n,r){return!!this.skipInvalid}doPrepare(t,n){return n===void 0&&(n={}),Be.normalize(this.prepare?this.prepare(t,this,n):t)}doPrepareChar(t,n){return n===void 0&&(n={}),Be.normalize(this.prepareChar?this.prepareChar(t,this,n):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,n,r,l,a){r===void 0&&(r=""),l===void 0&&(l=he.NONE),a===void 0&&(a={input:!0});const s=t+n,i=this.extractTail(s),c=this.eager===!0||this.eager==="remove";let d;c&&(l=jr(l),d=this.extractInput(0,s,{raw:!0}));let p=t;const m=new Be;if(l!==he.NONE&&(p=this.nearestInputPos(t,n>1&&t!==0&&!c?he.NONE:l),m.tailShift=p-t),m.aggregate(this.remove(p)),c&&l!==he.NONE&&d===this.rawInputValue)if(l===he.FORCE_LEFT){let y;for(;d===this.rawInputValue&&(y=this.displayValue.length);)m.aggregate(new Be({tailShift:-1})).aggregate(this.remove(y-1))}else l===he.FORCE_RIGHT&&i.unshift();return m.aggregate(this.append(r,a,i))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!On(this,t)}typedValueEquals(t){const n=this.typedValue;return t===n||Ze.EMPTY_VALUES.includes(t)&&Ze.EMPTY_VALUES.includes(n)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new Be}}Ze.DEFAULTS={skipInvalid:!0},Ze.EMPTY_VALUES=[void 0,null,""],ve.Masked=Ze;class At{constructor(t,n){t===void 0&&(t=[]),n===void 0&&(n=0),this.chunks=t,this.from=n}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=Nt(t)?new bt(String(t)):t;const n=this.chunks[this.chunks.length-1],r=n&&(n.stop===t.stop||t.stop==null)&&t.from===n.from+n.toString().length;if(t instanceof bt)r?n.extend(t.toString()):this.chunks.push(t);else if(t instanceof At){if(t.stop==null){let l;for(;t.chunks.length&&t.chunks[0].stop==null;)l=t.chunks.shift(),l.from+=t.from,this.extend(l)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof ve.MaskedPattern))return new bt(this.toString()).appendTo(t);const n=new Be;for(let r=0;r<this.chunks.length;++r){const l=this.chunks[r],a=t._mapPosToBlock(t.displayValue.length),s=l.stop;let i;if(s!=null&&(!a||a.index<=s)&&((l instanceof At||t._stops.indexOf(s)>=0)&&n.aggregate(t._appendPlaceholder(s)),i=l instanceof At&&t._blocks[s]),i){const c=i.appendTail(l);n.aggregate(c);const d=l.toString().slice(c.rawInserted.length);d&&n.aggregate(t.append(d,{tail:!0}))}else n.aggregate(t.append(l.toString(),{tail:!0}))}return n}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:n,...r}=t;Object.assign(this,r),this.chunks=n.map(l=>{const a="chunks"in l?new At:new bt;return a.state=l,a})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const n=t!=null?t-this.from:t;let r=0;for(;r<this.chunks.length;){const l=this.chunks[r],a=l.unshift(n);if(l.toString()){if(!a)break;++r}else this.chunks.splice(r,1);if(a)return a}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const n=this.chunks[t],r=n.shift();if(n.toString()){if(!r)break;--t}else this.chunks.splice(t,1);if(r)return r}return""}}class vh{constructor(t,n){this.masked=t,this._log=[];const{offset:r,index:l}=t._mapPosToBlock(n)||(n<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=r,this.index=l,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((n=this.block)==null?void 0:n.displayValue.length)||0){var n;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,he.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,he.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,he.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,he.FORCE_RIGHT),this.offset!==this.block.value.length))return!0})}pushRightBeforeInput(){return this._pushRight(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,he.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,he.NONE),!0})}}class yo{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(n),this._value||(this._isRawInput=!1),new Be}nearestInputPos(t,n){n===void 0&&(n=he.NONE);const r=0,l=this._value.length;switch(n){case he.LEFT:case he.FORCE_LEFT:return r;case he.NONE:case he.RIGHT:case he.FORCE_RIGHT:default:return l}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),this._isRawInput?n-t:0}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this._value.length),r===void 0&&(r={}),r.raw&&this._isRawInput&&this._value.slice(t,n)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Be;const r=this.eager===!0||this.eager==="append",a=this.char===t&&(this.isUnmasking||n.input||n.raw)&&(!n.raw||!r)&&!n.tail,s=new Be({inserted:this.char,rawInserted:a?this.char:""});return this._value=this.char,this._isRawInput=a&&(n.raw||n.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new Be;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new bt("")}appendTail(t){return Nt(t)&&(t=new bt(String(t))),t.appendTo(this)}append(t,n,r){const l=this._appendChar(t[0],n);return r!=null&&(l.tailShift+=this.appendTail(r).tailShift),l}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class on{constructor(t){const{parent:n,isOptional:r,placeholderChar:l,displayChar:a,lazy:s,eager:i,...c}=t;this.masked=yt(c),Object.assign(this,{parent:n,isOptional:r,placeholderChar:l,displayChar:a,lazy:s,eager:i})}reset(){this.isFilled=!1,this.masked.reset()}remove(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),t===0&&n>=1?(this.isFilled=!1,this.masked.remove(t,n)):new Be}get value(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}get unmaskedValue(){return this.masked.unmaskedValue}get rawInputValue(){return this.masked.rawInputValue}get displayValue(){return this.masked.value&&this.displayChar||this.value}get isComplete(){return!!this.masked.value||this.isOptional}_appendChar(t,n){if(n===void 0&&(n={}),this.isFilled)return new Be;const r=this.masked.state;let l=this.masked._appendChar(t,this.currentMaskFlags(n));return l.inserted&&this.doValidate(n)===!1&&(l=new Be,this.masked.state=r),!l.inserted&&!this.isOptional&&!this.lazy&&!n.input&&(l.inserted=this.placeholderChar),l.skip=!l.inserted&&!this.isOptional,this.isFilled=!!l.inserted,l}append(t,n,r){return this.masked.append(t,this.currentMaskFlags(n),r)}_appendPlaceholder(){return this.isFilled||this.isOptional?new Be:(this.isFilled=!0,new Be({inserted:this.placeholderChar}))}_appendEager(){return new Be}extractTail(t,n){return this.masked.extractTail(t,n)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.masked.extractInput(t,n,r)}nearestInputPos(t,n){n===void 0&&(n=he.NONE);const r=0,l=this.value.length,a=Math.min(Math.max(t,r),l);switch(n){case he.LEFT:case he.FORCE_LEFT:return this.isComplete?a:r;case he.RIGHT:case he.FORCE_RIGHT:return this.isComplete?a:l;case he.NONE:default:return a}}totalInputPositions(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.value.length),this.value.slice(t,n).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var n;return{...t,_beforeTailState:(t==null||(n=t._beforeTailState)==null?void 0:n.masked)||t?._beforeTailState}}pad(t){return new Be}}on.DEFAULT_DEFINITIONS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./};class Wr extends Ze{updateOptions(t){super.updateOptions(t)}_update(t){const n=t.mask;n&&(t.validate=r=>r.search(n)>=0),super._update(t)}}ve.MaskedRegExp=Wr;class Je extends Ze{constructor(t){super({...Je.DEFAULTS,...t,definitions:Object.assign({},on.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const n=this.mask;if(!n||!t)return;let r=!1,l=!1;for(let a=0;a<n.length;++a){if(this.blocks){const d=n.slice(a),p=Object.keys(this.blocks).filter(y=>d.indexOf(y)===0);p.sort((y,h)=>h.length-y.length);const m=p[0];if(m){const{expose:y,repeat:h,...f}=Gt(this.blocks[m]),k={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...f,repeat:h,parent:this},b=h!=null?new ve.RepeatBlock(k):yt(k);b&&(this._blocks.push(b),y&&(this.exposeBlock=b),this._maskedBlocks[m]||(this._maskedBlocks[m]=[]),this._maskedBlocks[m].push(this._blocks.length-1)),a+=m.length-1;continue}}let s=n[a],i=s in t;if(s===Je.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){r=!r;continue}if(s==="["||s==="]"){l=!l;continue}if(s===Je.ESCAPE_CHAR){if(++a,s=n[a],!s)break;i=!1}const c=i?new on({isOptional:l,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...Gt(t[s]),parent:this}):new yo({char:s,eager:this.eager,isUnmasking:r});this._blocks.push(c)}}get state(){return{...super.state,_blocks:this._blocks.map(t=>t.state)}}set state(t){if(!t){this.reset();return}const{_blocks:n,...r}=t;this._blocks.forEach((l,a)=>l.state=n[a]),super.state=r}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,n)=>t+=n.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(n),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,n)=>t+=n.value,"")}set value(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(n),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const n=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(n),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,n)=>t+=n.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const n=new Be;let r=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(r==null)return n;this._blocks[r].isFilled&&++r;for(let l=r;l<this._blocks.length;++l){const a=this._blocks[l]._appendEager();if(!a.inserted)break;n.aggregate(a)}return n}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._mapPosToBlock(this.displayValue.length),l=new Be;if(!r)return l;for(let s=r.index,i;i=this._blocks[s];++s){var a;const c=i._appendChar(t,{...n,_beforeTailState:(a=n._beforeTailState)==null||(a=a._blocks)==null?void 0:a[s]});if(l.aggregate(c),c.consumed)break}return l}extractTail(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=new At;return t===n||this._forEachBlocksInRange(t,n,(l,a,s,i)=>{const c=l.extractTail(s,i);c.stop=this._findStopBefore(a),c.from=this._blockStartPos(a),c instanceof At&&(c.blockIndex=a),r.extend(c)}),r}extractInput(t,n,r){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),r===void 0&&(r={}),t===n)return"";let l="";return this._forEachBlocksInRange(t,n,(a,s,i,c)=>{l+=a.extractInput(i,c,r)}),l}_findStopBefore(t){let n;for(let r=0;r<this._stops.length;++r){const l=this._stops[r];if(l<=t)n=l;else break}return n}_appendPlaceholder(t){const n=new Be;if(this.lazy&&t==null)return n;const r=this._mapPosToBlock(this.displayValue.length);if(!r)return n;const l=r.index,a=t??this._blocks.length;return this._blocks.slice(l,a).forEach(s=>{if(!s.lazy||t!=null){var i;n.aggregate(s._appendPlaceholder((i=s._blocks)==null?void 0:i.length))}}),n}_mapPosToBlock(t){let n="";for(let r=0;r<this._blocks.length;++r){const l=this._blocks[r],a=n.length;if(n+=l.displayValue,t<=n.length)return{index:r,offset:t-a}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((n,r)=>n+=r.displayValue.length,0)}_forEachBlocksInRange(t,n,r){n===void 0&&(n=this.displayValue.length);const l=this._mapPosToBlock(t);if(l){const a=this._mapPosToBlock(n),s=a&&l.index===a.index,i=l.offset,c=a&&s?a.offset:this._blocks[l.index].displayValue.length;if(r(this._blocks[l.index],l.index,i,c),a&&!s){for(let d=l.index+1;d<a.index;++d)r(this._blocks[d],d,0,this._blocks[d].displayValue.length);r(this._blocks[a.index],a.index,0,a.offset)}}}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._forEachBlocksInRange(t,n,(l,a,s,i)=>{r.aggregate(l.remove(s,i))}),r}nearestInputPos(t,n){if(n===void 0&&(n=he.NONE),!this._blocks.length)return 0;const r=new vh(this,t);if(n===he.NONE)return r.pushRightBeforeInput()||(r.popState(),r.pushLeftBeforeInput())?r.pos:this.displayValue.length;if(n===he.LEFT||n===he.FORCE_LEFT){if(n===he.LEFT){if(r.pushRightBeforeFilled(),r.ok&&r.pos===t)return t;r.popState()}if(r.pushLeftBeforeInput(),r.pushLeftBeforeRequired(),r.pushLeftBeforeFilled(),n===he.LEFT){if(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.ok&&r.pos<=t||(r.popState(),r.ok&&r.pos<=t))return r.pos;r.popState()}return r.ok?r.pos:n===he.FORCE_LEFT?0:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:0)}return n===he.RIGHT||n===he.FORCE_RIGHT?(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.pushRightBeforeFilled()?r.pos:n===he.FORCE_RIGHT?this.displayValue.length:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:this.nearestInputPos(t,he.LEFT))):t}totalInputPositions(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);let r=0;return this._forEachBlocksInRange(t,n,(l,a,s,i)=>{r+=l.totalInputPositions(s,i)}),r}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const n=this._maskedBlocks[t];return n?n.map(r=>this._blocks[r]):[]}pad(t){const n=new Be;return this._forEachBlocksInRange(0,this.displayValue.length,r=>n.aggregate(r.pad(t))),n}}Je.DEFAULTS={...Ze.DEFAULTS,lazy:!0,placeholderChar:"_"},Je.STOP_CHAR="`",Je.ESCAPE_CHAR="\\",Je.InputDefinition=on,Je.FixedDefinition=yo,ve.MaskedPattern=Je;class rn extends Je{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:n=this.to||0,from:r=this.from||0,maxLength:l=this.maxLength||0,autofix:a=this.autofix,...s}=t;this.to=n,this.from=r,this.maxLength=Math.max(String(n).length,l),this.autofix=a;const i=String(this.from).padStart(this.maxLength,"0"),c=String(this.to).padStart(this.maxLength,"0");let d=0;for(;d<c.length&&c[d]===i[d];)++d;s.mask=c.slice(0,d).replace(/0/g,"\\0")+"0".repeat(this.maxLength-d),super._update(s)}get isComplete(){return super.isComplete&&!!this.value}boundaries(t){let n="",r="";const[,l,a]=t.match(/^(\D*)(\d*)(\D*)/)||[];return a&&(n="0".repeat(l.length)+a,r="9".repeat(l.length)+a),n=n.padEnd(this.maxLength,"0"),r=r.padEnd(this.maxLength,"9"),[n,r]}doPrepareChar(t,n){n===void 0&&(n={});let r;return[t,r]=super.doPrepareChar(t.replace(/\D/g,""),n),t||(r.skip=!this.isComplete),[t,r]}_appendCharRaw(t,n){if(n===void 0&&(n={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,n);const r=String(this.from).padStart(this.maxLength,"0"),l=String(this.to).padStart(this.maxLength,"0"),[a,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(r[this.value.length],n):Number(a)>this.to?!n.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(r[this.value.length],n).aggregate(this._appendCharRaw(t,n)):super._appendCharRaw(l[this.value.length],n):super._appendCharRaw(t,n)}doValidate(t){const n=this.value;if(n.search(/[^0]/)===-1&&n.length<=this._matchFrom)return!0;const[l,a]=this.boundaries(n);return this.from<=Number(a)&&Number(l)<=this.to&&super.doValidate(t)}pad(t){const n=new Be;if(this.value.length===this.maxLength)return n;const r=this.value,l=this.maxLength-this.value.length;if(l){this.reset();for(let a=0;a<l;++a)n.aggregate(super._appendCharRaw("0",t));r.split("").forEach(a=>this._appendCharRaw(a))}return n}}ve.MaskedRange=rn;const Ch="d{.}`m{.}`Y";class kt extends Je{static extractPatternOptions(t){const{mask:n,pattern:r,...l}=t;return{...l,mask:Nt(n)?n:r}}constructor(t){super(kt.extractPatternOptions({...kt.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:n,pattern:r,blocks:l,...a}={...kt.DEFAULTS,...t},s=Object.assign({},kt.GET_DEFAULT_BLOCKS());t.min&&(s.Y.from=t.min.getFullYear()),t.max&&(s.Y.to=t.max.getFullYear()),t.min&&t.max&&s.Y.from===s.Y.to&&(s.m.from=t.min.getMonth()+1,s.m.to=t.max.getMonth()+1,s.m.from===s.m.to&&(s.d.from=t.min.getDate(),s.d.to=t.max.getDate())),Object.assign(s,this.blocks,l),super._update({...a,mask:Nt(n)?n:r,blocks:s})}doValidate(t){const n=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&n!=null&&(this.min==null||this.min<=n)&&(this.max==null||n<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(kt.extractPatternOptions(t))}}kt.GET_DEFAULT_BLOCKS=()=>({d:{mask:rn,from:1,to:31,maxLength:2},m:{mask:rn,from:1,to:12,maxLength:2},Y:{mask:rn,from:1900,to:9999}}),kt.DEFAULTS={...Je.DEFAULTS,mask:Date,pattern:Ch,format:(o,t)=>{if(!o)return"";const n=String(o.getDate()).padStart(2,"0"),r=String(o.getMonth()+1).padStart(2,"0"),l=o.getFullYear();return[n,r,l].join(".")},parse:(o,t)=>{const[n,r,l]=o.split(".").map(Number);return new Date(l,r-1,n)}},ve.MaskedDate=kt;class ln extends Ze{constructor(t){super({...ln.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(n=>{const{expose:r,...l}=Gt(n),a=yt({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...l});return r&&(this.exposeMask=a),a}):[])}_appendCharRaw(t,n){n===void 0&&(n={});const r=this._applyDispatch(t,n);return this.currentMask&&r.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(n))),r}_applyDispatch(t,n,r){t===void 0&&(t=""),n===void 0&&(n={}),r===void 0&&(r="");const l=n.tail&&n._beforeTailState!=null?n._beforeTailState._value:this.value,a=this.rawInputValue,s=n.tail&&n._beforeTailState!=null?n._beforeTailState._rawInputValue:a,i=a.slice(s.length),c=this.currentMask,d=new Be,p=c?.state;return this.currentMask=this.doDispatch(t,{...n},r),this.currentMask&&(this.currentMask!==c?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-l.length),i&&(d.tailShift+=this.currentMask.append(i,{raw:!0,tail:!0}).tailShift)):p&&(this.currentMask.state=p)),d}_appendPlaceholder(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}_appendEager(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}appendTail(t){const n=new Be;return t&&n.aggregate(this._applyDispatch("",{},t)),n.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var n,r;return{...t,_beforeTailState:((n=t._beforeTailState)==null?void 0:n.currentMaskRef)===this.currentMask&&((r=t._beforeTailState)==null?void 0:r.currentMask)||t._beforeTailState}}doDispatch(t,n,r){return n===void 0&&(n={}),r===void 0&&(r=""),this.dispatch(t,this,n,r)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,n){n===void 0&&(n={});let[r,l]=super.doPrepare(t,n);if(this.currentMask){let a;[r,a]=super.doPrepare(r,this.currentMaskFlags(n)),l=l.aggregate(a)}return[r,l]}doPrepareChar(t,n){n===void 0&&(n={});let[r,l]=super.doPrepareChar(t,n);if(this.currentMask){let a;[r,a]=super.doPrepareChar(r,this.currentMaskFlags(n)),l=l.aggregate(a)}return[r,l]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(n=>n.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let n=String(t);this.currentMask&&(this.currentMask.typedValue=t,n=this.currentMask.unmaskedValue),this.unmaskedValue=n}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,n){const r=new Be;return this.currentMask&&r.aggregate(this.currentMask.remove(t,n)).aggregate(this._applyDispatch()),r}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(n=>n.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:n,currentMaskRef:r,currentMask:l,...a}=t;n&&this.compiledMasks.forEach((s,i)=>s.state=n[i]),r!=null&&(this.currentMask=r,this.currentMask.state=l),super.state=a}extractInput(t,n,r){return this.currentMask?this.currentMask.extractInput(t,n,r):""}extractTail(t,n){return this.currentMask?this.currentMask.extractTail(t,n):super.extractTail(t,n)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,n){return this.currentMask?this.currentMask.nearestInputPos(t,n):super.nearestInputPos(t,n)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((n,r)=>{if(!t[r])return;const{mask:l,...a}=t[r];return On(n,a)&&n.maskEquals(l)}):super.maskEquals(t)}typedValueEquals(t){var n;return!!((n=this.currentMask)!=null&&n.typedValueEquals(t))}}ln.DEFAULTS={...Ze.DEFAULTS,dispatch:(o,t,n,r)=>{if(!t.compiledMasks.length)return;const l=t.rawInputValue,a=t.compiledMasks.map((s,i)=>{const c=t.currentMask===s,d=c?s.displayValue.length:s.nearestInputPos(s.displayValue.length,he.FORCE_LEFT);return s.rawInputValue!==l?(s.reset(),s.append(l,{raw:!0})):c||s.remove(d),s.append(o,t.currentMaskFlags(n)),s.appendTail(r),{index:i,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,he.FORCE_LEFT)))}});return a.sort((s,i)=>i.weight-s.weight||i.totalInputPositions-s.totalInputPositions),t.compiledMasks[a[0].index]}},ve.MaskedDynamic=ln;class an extends Je{constructor(t){super({...an.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:n,...r}=t;if(n){const l=n.map(i=>i.length),a=Math.min(...l),s=Math.max(...l)-a;r.mask="*".repeat(a),s&&(r.mask+="["+"*".repeat(s)+"]"),this.enum=n}super._update(r)}_appendCharRaw(t,n){n===void 0&&(n={});const r=Math.min(this.nearestInputPos(0,he.FORCE_RIGHT),this.value.length),l=this.enum.filter(a=>this.matchValue(a,this.unmaskedValue+t,r));if(l.length){l.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,i)=>{const c=l[0][i];i>=this.value.length||c===s.value||(s.reset(),s._appendChar(c,n))});const a=super._appendCharRaw(l[0][this.value.length],n);return l.length===1&&l[0].slice(this.unmaskedValue.length).split("").forEach(s=>a.aggregate(super._appendCharRaw(s))),a}return new Be({skip:!this.isComplete})}extractTail(t,n){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),new bt("",t)}remove(t,n){if(t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),t===n)return new Be;const r=Math.min(super.nearestInputPos(0,he.FORCE_RIGHT),this.value.length);let l;for(l=t;l>=0&&!(this.enum.filter(i=>this.matchValue(i,this.value.slice(r,l),r)).length>1);--l);const a=super.remove(l,n);return a.tailShift+=l-t,a}get isComplete(){return this.enum.indexOf(this.value)>=0}}an.DEFAULTS={...Je.DEFAULTS,matchValue:(o,t,n)=>o.indexOf(t,n)===n},ve.MaskedEnum=an;class Gr extends Ze{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}ve.MaskedFunction=Gr;var Yr;class tt extends Ze{constructor(t){super({...tt.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),n="\\d*",r=(this.scale?"("+ho(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+n+r),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(ho).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(ho(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const n=t.split(this.radix);return n[0]=n[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),n.join(this.radix)}doPrepareChar(t,n){n===void 0&&(n={});const[r,l]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(n.input&&n.raw||!n.input&&!n.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),n);return t&&!r&&(l.skip=!0),r&&!this.allowPositive&&!this.value&&r!=="-"&&l.aggregate(this._appendChar("-")),[r,l]}_separatorsCount(t,n){n===void 0&&(n=!1);let r=0;for(let l=0;l<t;++l)this._value.indexOf(this.thousandsSeparator,l)===l&&(++r,n&&(t+=this.thousandsSeparator.length));return r}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,n,r){return t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n),this._removeThousandsSeparators(super.extractInput(t,n,r))}_appendCharRaw(t,n){n===void 0&&(n={});const r=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,l=this._separatorsCountFromSlice(r);this._value=this._removeThousandsSeparators(this.value);const a=this._value;this._value+=t;const s=this.number;let i=!isNaN(s),c=!1;if(i){let y;this.min!=null&&this.min<0&&this.number<this.min&&(y=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(y=this.max),y!=null&&(this.autofix?(this._value=this.format(y,this).replace(tt.UNMASKED_RADIX,this.radix),c||(c=a===this._value&&!n.tail)):i=!1),i&&(i=!!this._value.match(this._numberRegExp))}let d;i?d=new Be({inserted:this._value.slice(a.length),rawInserted:c?"":t,skip:c}):(this._value=a,d=new Be),this._value=this._insertThousandsSeparators(this._value);const p=n.tail&&n._beforeTailState?n._beforeTailState._value:this._value,m=this._separatorsCountFromSlice(p);return d.tailShift+=(m-l)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const n=t-this.thousandsSeparator.length+1,r=this.value.indexOf(this.thousandsSeparator,n);if(r<=t)return r}return-1}_adjustRangeWithSeparators(t,n){const r=this._findSeparatorAround(t);r>=0&&(t=r);const l=this._findSeparatorAround(n);return l>=0&&(n=l+this.thousandsSeparator.length),[t,n]}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length),[t,n]=this._adjustRangeWithSeparators(t,n);const r=this.value.slice(0,t),l=this.value.slice(n),a=this._separatorsCount(r.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(r+l));const s=this._separatorsCountFromSlice(r);return new Be({tailShift:(s-a)*this.thousandsSeparator.length})}nearestInputPos(t,n){if(!this.thousandsSeparator)return t;switch(n){case he.NONE:case he.LEFT:case he.FORCE_LEFT:{const r=this._findSeparatorAround(t-1);if(r>=0){const l=r+this.thousandsSeparator.length;if(t<l||this.value.length<=l||n===he.FORCE_LEFT)return r}break}case he.RIGHT:case he.FORCE_RIGHT:{const r=this._findSeparatorAround(t);if(r>=0)return r+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let n=t;this.min!=null&&(n=Math.max(n,this.min)),this.max!=null&&(n=Math.min(n,this.max)),n!==t&&(this.unmaskedValue=this.format(n,this));let r=this.value;this.normalizeZeros&&(r=this._normalizeZeros(r)),this.padFractionalZeros&&this.scale>0&&(r=this._padFractionalZeros(r)),this._value=r}super.doCommit()}_normalizeZeros(t){const n=this._removeThousandsSeparators(t).split(this.radix);return n[0]=n[0].replace(/^(\D*)(0*)(\d*)/,(r,l,a,s)=>l+s),t.length&&!/\d$/.test(n[0])&&(n[0]=n[0]+"0"),n.length>1&&(n[1]=n[1].replace(/0*$/,""),n[1].length||(n.length=1)),this._insertThousandsSeparators(n.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const n=t.split(this.radix);return n.length<2&&n.push(""),n[1]=n[1].padEnd(this.scale,"0"),n.join(this.radix)}doSkipInvalid(t,n,r){n===void 0&&(n={});const l=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===tt.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,n,r)&&!l}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,tt.UNMASKED_RADIX)}set unmaskedValue(t){super.unmaskedValue=t}get typedValue(){return this.parse(this.unmaskedValue,this)}set typedValue(t){this.rawInputValue=this.format(t,this).replace(tt.UNMASKED_RADIX,this.radix)}get number(){return this.typedValue}set number(t){this.typedValue=t}get allowNegative(){return this.min!=null&&this.min<0||this.max!=null&&this.max<0}get allowPositive(){return this.min!=null&&this.min>0||this.max!=null&&this.max>0}typedValueEquals(t){return(super.typedValueEquals(t)||tt.EMPTY_VALUES.includes(t)&&tt.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}Yr=tt,tt.UNMASKED_RADIX=".",tt.EMPTY_VALUES=[...Ze.EMPTY_VALUES,0],tt.DEFAULTS={...Ze.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[Yr.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:o=>o.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},ve.MaskedNumber=tt;const zn={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function bo(o,t,n){t===void 0&&(t=zn.MASKED),n===void 0&&(n=zn.MASKED);const r=yt(o);return l=>r.runIsolated(a=>(a[t]=l,a[n]))}function Xr(o,t,n,r){return bo(t,n,r)(o)}ve.PIPE_TYPE=zn,ve.createPipe=bo,ve.pipe=Xr;class Zr extends Je{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var n,r,l;const{repeat:a,...s}=Gt(t);this._blockOpts=Object.assign({},this._blockOpts,s);const i=yt(this._blockOpts);this.repeat=(n=(r=a??i.repeat)!=null?r:this.repeat)!=null?n:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((l=this._blocks)==null?void 0:l.length)||0,this.repeatFrom)),blocks:{m:i},eager:i.eager,overwrite:i.overwrite,skipInvalid:i.skipInvalid,lazy:i.lazy,placeholderChar:i.placeholderChar,displayChar:i.displayChar})}_allocateBlock(t){if(t<this._blocks.length)return this._blocks[t];if(this.repeatTo===1/0||this._blocks.length<this.repeatTo)return this._blocks.push(yt(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,n){n===void 0&&(n={});const r=new Be;for(let c=(l=(a=this._mapPosToBlock(this.displayValue.length))==null?void 0:a.index)!=null?l:Math.max(this._blocks.length-1,0),d,p;d=(s=this._blocks[c])!=null?s:p=!p&&this._allocateBlock(c);++c){var l,a,s,i;const m=d._appendChar(t,{...n,_beforeTailState:(i=n._beforeTailState)==null||(i=i._blocks)==null?void 0:i[c]});if(m.skip&&p){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(r.aggregate(m),m.consumed)break}return r}_trimEmptyTail(t,n){var r,l;t===void 0&&(t=0);const a=Math.max(((r=this._mapPosToBlock(t))==null?void 0:r.index)||0,this.repeatFrom,0);let s;n!=null&&(s=(l=this._mapPosToBlock(n))==null?void 0:l.index),s==null&&(s=this._blocks.length-1);let i=0;for(let c=s;a<=c&&!this._blocks[c].unmaskedValue;--c,++i);i&&(this._blocks.splice(s-i+1,i),this.mask=this.mask.slice(i))}reset(){super.reset(),this._trimEmptyTail()}remove(t,n){t===void 0&&(t=0),n===void 0&&(n=this.displayValue.length);const r=super.remove(t,n);return this._trimEmptyTail(t,n),r}totalInputPositions(t,n){return t===void 0&&(t=0),n==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,n)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}ve.RepeatBlock=Zr;try{globalThis.IMask=ve}catch{}const jn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:Be,ChunksTailDetails:At,DIRECTION:he,HTMLContenteditableMaskElement:go,HTMLInputMaskElement:qr,HTMLMaskElement:nn,InputMask:Kr,MaskElement:Rn,Masked:Ze,MaskedDate:kt,MaskedDynamic:ln,MaskedEnum:an,MaskedFunction:Gr,MaskedNumber:tt,MaskedPattern:Je,MaskedRange:rn,MaskedRegExp:Wr,PIPE_TYPE:zn,PatternFixedDefinition:yo,PatternInputDefinition:on,RepeatBlock:Zr,createMask:yt,createPipe:bo,default:ve,forceDirection:jr,normalizeOpts:Gt,pipe:Xr},Symbol.toStringTag,{value:"Module"})),Eh=async o=>{try{const t=new FormData;return t.append("unique","true"),t.append("file",o),(await(await fetch("/file/upload/uploads?id=&form=&table=",{method:"POST",body:t})).json())?.result}catch(t){console.error(t)}},Bh=async(o,t,n)=>{const r=t.clipboardData?.items;if(r){const l=t.clipboardData?.getData("text/html"),a=t.clipboardData?.getData("text/plain");if(l){const{state:s,dispatch:i}=o,{tr:c}=s,d=n.fromSchema(o.state.schema),p=new DOMParser().parseFromString(l,"text/html").body,m=d.parse(p),y=c.replaceSelectionWith(m);return i(y),t.preventDefault(),!0}if(a){const{state:s,dispatch:i}=o,{tr:c}=s,d=c.insertText(a,s.selection.from,s.selection.to);return i(d),t.preventDefault(),!0}for(let s=0;s<r.length;s++){const i=r[s];if(i.type.startsWith("image/")){const c=i.getAsFile();if(c){const d=await Eh(c),{schema:p}=o.state,m=p.nodes.image.create({src:d?.file_path}),y=o.state.tr.replaceSelectionWith(m);return o.dispatch(y),t.preventDefault(),!0}}}}return!1},Vh="https://esm.sh",ot="3.7.2",Jr="3.7.2",Sh=`?deps=@tiptap/core@${ot},@tiptap/pm@${Jr}`,rt=o=>`${Vh}/${o}${Sh}`,lt={core:rt(`@tiptap/core@${ot}`),starterKit:rt(`@tiptap/starter-kit@${ot}`),textStyle:rt(`@tiptap/extension-text-style@${ot}`),table:rt(`@tiptap/extension-table@${ot}`),highlight:rt(`@tiptap/extension-highlight@${ot}`),subscript:rt(`@tiptap/extension-subscript@${ot}`),superscript:rt(`@tiptap/extension-superscript@${ot}`),link:rt(`@tiptap/extension-link@${ot}`),image:rt(`@tiptap/extension-image@${ot}`),textAlign:rt(`@tiptap/extension-text-align@${ot}`),heading:rt(`@tiptap/extension-heading@${ot}`),paragraph:rt(`@tiptap/extension-paragraph@${ot}`),pmModel:rt(`@tiptap/pm@${Jr}/model`)},sn="__vs_form_tiptap_loader__",at=o=>import(o),Ke=(o,t)=>o?.[t]||o?.default?.[t]||o?.default?.default?.[t]||o?.default||o,Qr={1:"font-weight:700; font-size:30px;",2:"font-weight:700; font-size:26px;",3:"font-weight:700; font-size:22px;",4:"font-weight:700; font-size:18px;",5:"font-weight:500; font-size:16px;",6:"font-weight:400; font-size:14px;"},$h=o=>o.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}).extend({addAttributes(){return{...this.parent?.(),level:{default:1,renderHTML:t=>{const n=t.level||1;return{class:`heading-level-${n}`,style:Qr[n]||Qr[1]}}}}}}),Nh=o=>o.configure({HTMLAttributes:{style:"min-height: 1rem;"}}),Ah=(o,t,n,r,l)=>{const a=t.extend({renderHTML({HTMLAttributes:s}){return["div",{style:"overflow-x: auto;"},["table",s,0]]},parseHTML(){return[{tag:"div.table-wrapper table",priority:100},{tag:"table"}]}});return o.extend({addExtensions(){return[a.configure({HTMLAttributes:{class:"editor-content"},resizable:!0}),n,r,l]}})},Mh=o=>o.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:n})=>n().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:n})=>n().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:n})=>n().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:n})=>n().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),Fh=o=>o.create({name:"iframe",group:"block",inline:!1,atom:!0,selectable:!0,addAttributes(){return{src:{default:null},width:{default:"100%"},height:{default:"280"},frameborder:{default:"0"},allow:{default:null},allowfullscreen:{default:null},referrerpolicy:{default:null},loading:{default:null},class:{default:null},title:{default:null},style:{default:null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["iframe",t]}});async function Dh(){if(typeof window>"u")return null;const o=window;return o[sn]||(o[sn]=Promise.all([at(lt.core),at(lt.starterKit),at(lt.textStyle),at(lt.table),at(lt.highlight),at(lt.subscript),at(lt.superscript),at(lt.link),at(lt.image),at(lt.textAlign),at(lt.heading),at(lt.paragraph),at(lt.pmModel)]).then(([t,n,r,l,a,s,i,c,d,p,m,y,h])=>{const f=Ke(t,"Editor"),k=Ke(t,"Node"),b=Ke(t,"Extension"),v=Ke(n,"StarterKit"),w=Ke(r,"TextStyle"),B=Ke(l,"TableKit"),N=Ke(l,"Table"),I=Ke(l,"TableRow"),Z=Ke(l,"TableCell"),T=Ke(l,"TableHeader"),E=Ke(a,"Highlight"),V=Ke(s,"Subscript"),_=Ke(i,"Superscript"),D=Ke(c,"Link"),H=Ke(d,"Image"),te=Ke(p,"TextAlign"),S=Ke(m,"Heading"),R=Ke(y,"Paragraph"),K=Ke(h,"DOMParser");if(!f||!k||!v||!w||!B||!N||!I||!Z||!T||!E||!V||!_||!D||!H||!te||!S||!R||!K)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:f,Extension:b,ProseMirrorDOMParser:K,StarterKit:v,ExtendedTextStyle:Mh(w),Highlight:E,Subscript:V,Superscript:_,Link:D,Image:H,TextAlign:te,CustomHeading:$h(S),CustomParagraph:Nh(R),CustomTableKit:Ah(B,N,I,Z,T),Iframe:Fh(k)}}).catch(t=>{throw delete o[sn],t})),o[sn]}function Th(o){let t=!1;const n=e.shallowRef(null),r=e.ref(!1),l=e.ref(""),a=async(d,p="")=>{if(!d)return null;r.value=!0,l.value="";try{const m=await Dh();if(!m)return null;const y=new m.Editor({element:d,content:p,extensions:[m.StarterKit.configure({history:{depth:100,newGroupDelay:500},code:{HTMLAttributes:{class:"editor-code"}},codeBlock:{HTMLAttributes:{class:"editor-codeblock"}},paragraph:!1,heading:!1,link:!1}),m.Superscript,m.Subscript,m.ExtendedTextStyle,m.CustomParagraph,m.CustomHeading,m.Highlight,m.Image.configure({inline:!0,allowBase64:!0,HTMLAttributes:{class:"editor-image"}}),m.TextAlign.configure({types:["heading","paragraph"]}),m.Link.configure({HTMLAttributes:{class:"editor-link"},openOnClick:!1,autolink:!0}),m.CustomTableKit,m.Iframe],editorProps:{handlePaste:(h,f)=>Bh(h,f,m.ProseMirrorDOMParser),handleKeyDown:(h,f)=>{if(f.key==="Tab"){const k=h.state,{$anchor:b}=k.selection;let v=!1;for(let w=b.depth;w>0;w--){const B=b.node(w);if(B&&(B.type.name==="bulletList"||B.type.name==="orderedList")){v=!0;break}}return v?!1:(f.preventDefault(),!0)}return!1}}});return n.value=e.markRaw(y),y}catch(m){return l.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",m),null}finally{r.value=!1}},s=e.computed(()=>n.value||null);return e.watch(n,d=>{d&&n.value.on("update",p=>{if(!t){t=!0;const m=p.editor.getHTML();o.modelValue,setTimeout(()=>{t=!1},10)}})}),{editor:n,editorInstance:s,focusEditor:()=>{n.value&&!n.value.isFocused&&n.value.commands.focus()},createEditor:a,destroyEditor:()=>{n.value&&(n.value.destroy(),n.value=null)},isLoading:r,loadError:l}}function Lh(o,t,n,{toEditorContent:r,toSourceContent:l}={}){const a=e.ref(!1),s=e.ref(""),i=e.ref(null);return{isHtmlMode:a,htmlContent:s,htmlTextarea:i,toggleHtmlMode:async p=>{if(a.value=p,p)o.value&&(s.value=l?await l(o.value.getHTML(),t):o.value.getHTML()),e.nextTick(()=>{i.value&&i.value.focus?.()});else if(o.value){const m=r?await r(s.value,t):s.value;o.value.commands.setContent(m,!0),e.nextTick(()=>{o.value?.commands?.focus?.()})}},onHtmlInput:p=>{s.value=p,n&&n("update:modelValue",p)}}}function Ih(){const o=e.ref(!1);return{isFullscreen:o,toggleFullscreen:()=>{o.value=!o.value}}}const Mt=o=>o.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),cn=o=>{let t=Mt(o||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,l,a)=>{const s=a?` title="${Mt(a)}"`:"";return`<img src="${Mt(l)}" alt="${Mt(r)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(n,r,l,a)=>{const s=a?` title="${Mt(a)}"`:"";return`<a href="${Mt(l)}"${s} target="_blank" rel="noopener noreferrer">${r}</a>`}),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_\n]+)_/g,"<em>$1</em>"),t},dn=o=>/^\s*\d+\.\s+/.test(o),ko=o=>/^\s*[-*+]\s+/.test(o),el=o=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(o),xo=o=>/^\s*>\s?/.test(o),wo=o=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(o),tl=o=>o.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>cn(t.trim())),Oh=(o,t)=>{const n=o[t],r=o[t+1];if(!n||!r||!n.includes("|")||!wo(r))return null;const l=tl(n),a=[];let s=t+2;for(;s<o.length&&o[s].includes("|")&&o[s].trim()!=="";){const d=tl(o[s]);a.push(`<tr>${d.map(p=>`<td>${p}</td>`).join("")}</tr>`),s+=1}const i=`<thead><tr>${l.map(d=>`<th>${d}</th>`).join("")}</tr></thead>`,c=a.length?`<tbody>${a.join("")}</tbody>`:"";return{html:`<table>${i}${c}</table>`,nextIndex:s}},Rh=(o,t)=>{const n=dn(o[t]),r=n?"ol":"ul",l=[];let a=t;for(;a<o.length;){const s=o[a];if(s.trim()===""||!(n?dn(s):(ko(s)||el(s))&&!dn(s)))break;const c=s.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.*)$/);if(c){const d=c[1].toLowerCase()==="x";l.push(`<li><input type="checkbox" disabled${d?" checked":""}> ${cn(c[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");l.push(`<li>${cn(d)}</li>`)}a+=1}return{html:`<${r}>${l.join("")}</${r}>`,nextIndex:a}},Ph=(o,t)=>{const r=o[t].replace(/^```/,"").trim(),l=[];let a=t+1;for(;a<o.length&&!o[a].startsWith("```");)l.push(o[a]),a+=1;return{html:`<pre><code${r?` class="language-${Mt(r)}"`:""}>${Mt(l.join(`
|
|
6
|
-
`))}</code></pre>`,nextIndex:a<
|
|
4
|
+
50.4494, 30.5260`},format:{type:"Radio",label:"Формат координат",options:[{id:"decimal",text:"Десяткові (Decimal)"},{id:"dms",text:"Градуси-хвилини-секунди (DMS)"}]},order:{type:"Radio",label:"Порядок координат",options:[{id:"lat-lon",text:"lat, lon"},{id:"lon-lat",text:"lon, lat"}]}};let $e=!1,Le=!1;const ne=e.reactive({}),le=e.ref([]),ve=e.computed(()=>le.value.map(u=>ne[u]).filter(Boolean)),Ce=e.ref(null),Ie=e.computed(()=>Ce.value?.entries??[]),We=e.computed(()=>{if(Ce.value)return{left:`${Ce.value.point.x+12}px`,top:`${Ce.value.point.y+12}px`}}),Y=e.computed(()=>{if(Array.isArray(o.tools)&&o.tools.length)return o.tools;const u=l?.tools;return Array.isArray(u)?u.map(g=>String(g)):typeof u=="string"?u.split(",").map(g=>g.trim()).filter(Boolean):[]}),Q=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!Y.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const g=new Set(Y.value.map(k=>k.toLowerCase()));return{search:g.has("search"),import:g.has("import"),export:g.has("export"),point:g.has("point"),line:g.has("line"),polygon:g.has("polygon"),rectangle:g.has("rectangle"),ruler:g.has("ruler")}});function ae(u){const g=typeof u=="string"?u.trim():"";if(!g)return"";if(/^https?:\/\//i.test(g))return g;const k=window?.location?.origin??"",B=g.replace(/^\/+/,"");return B?k?`${k}/${B}`:`/${B}`:k}function me(){const u=Array.isArray(_.basemaps)&&_.basemaps.length?_.basemaps:v.basemaps;if(Array.isArray(u)&&u.length){const k=u.map((B,F)=>{const X=String(B?.key??B?.id??B?.name??`b${F}`),se=ae(String(B?.url??""));if(!se)return null;const pe=typeof B?.preview=="string"&&B.preview?ae(B.preview):"";return[X,{...B,url:se,preview:pe}]}).filter(B=>Array.isArray(B)&&B.length===2).reduce((B,[F,X])=>(B[F]=X,B),{});if(Object.keys(k).length)return k}return{voyager:{name:"Оглядова карта",url:"https://data.gki.com.ua/api-user/rtile/voyager/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/voyager/ua/13/4790/2762.png"},orto10:{name:"Ортофото 1:10K",url:"https://data.gki.com.ua/api-user/rtile/orto10/ua/{z}/{x}/{y}.png",preview:"https://data.gki.com.ua/api-user/rtile/orto10/ua/13/4790/2762.png"},osmb:{name:"Open Street Maps",url:"https://tile.openstreetmap.org.ua/styles/osm-bright/{z}/{x}/{y}.png",preview:"https://tile.openstreetmap.org.ua/styles/osm-bright/13/4790/2762.png"}}}const ge=me(),Me=Object.keys(ge),Fe=e.ref(Me.length?Me[0]:"");function De(){const u=Array.isArray(_.overlays)&&_.overlays.length?_.overlays:v.overlays;return!Array.isArray(u)||!u.length?{}:u.map((k,B)=>{const X=(typeof k?.name=="string"?k.name.trim():"")||`o${B}`,se=ae(String(k?.url??""));if(!se)return null;const pe=typeof k?.preview=="string"&&k.preview?ae(k.preview):"";return[X,{...k,name:X,url:se,preview:pe}]}).filter(k=>Array.isArray(k)&&k.length===2).reduce((k,[B,F])=>(k[B]=F,k),{})}const q=De(),w=e.ref(Object.keys(q).filter(u=>!!q[u]?.visible)),M=e.computed(()=>Q.value.point||Q.value.line||Q.value.polygon||Q.value.rectangle),P=e.computed(()=>ve.value.filter(u=>u.config?.overlay!==!1).map(u=>({id:u.id,label:String(u.config.title||u.config.name||u.id),visible:u.visible})));function de(u){return`${Tm}${u}`}function we(u){return`${Lm}${u}`}async function Pe(){if(typeof window>"u")return null;const u=window;if(u[On])return u[On];const g=X=>{if(Array.from(document.styleSheets).some(Be=>Be?.href?.includes(X)))return;const pe=document.createElement("link");pe.rel="stylesheet",pe.href=X,document.head.appendChild(pe)},k=async()=>{const X=new Function("u","return import(u)"),se=await X("https://esm.sh/maplibre-gl@3.6.2"),pe=se?.default??se;if(!pe)throw new Error("maplibre esm fallback failed");window.maplibregl=pe,window.mapboxgl=pe;const Be=await X("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),je=Be?.default??Be;if(!je)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=je},F=(async()=>{g("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),g("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await k();const X=window.maplibregl,se=window.MapboxDraw;if(!X)throw new Error("maplibregl not available after load");if(!se)throw new Error("MapboxDraw not available after load");return jp(X),{maplibregl:X,MapboxDraw:se}})().catch(X=>{throw delete u[On],X});return u[On]=F,F}function Te(u){return{version:8,glyphs:Im,sources:{rasterSource:go(u,void 0,{safe:!1})},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let He=null,tt=null,U=null,ue=null,Re=[],gt=null,xt=null,qe=null,Lt=!1,It=!1,Yt=!1,Ot=null;function No(){return{onSetup(){const u=this.newFeature({type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[0,0],[0,0],[0,0],[0,0],[0,0]]]}});return this.addFeature(u),this.clearSelectedFeatures(),this.updateUIClasses({mouse:"add"}),this.setActionableState({trash:!0}),{rectangle:u,startPoint:null,hasCoordinates:!1}},onMouseMove(u,g){if(!u.startPoint)return;const[k,B]=u.startPoint,F=g.lngLat.lng,X=g.lngLat.lat;u.rectangle.setCoordinates([[[k,B],[F,B],[F,X],[k,X],[k,B]]])},onClick(u,g){if(!u.startPoint){u.startPoint=[g.lngLat.lng,g.lngLat.lat],u.hasCoordinates=!0,u.rectangle.setCoordinates([[[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat],[g.lngLat.lng,g.lngLat.lat]]]);return}const[k,B]=u.startPoint,F=g.lngLat.lng,X=g.lngLat.lat;return Math.abs(k-F)>0&&Math.abs(B-X)>0?(u.rectangle.setCoordinates([[[k,B],[F,B],[F,X],[k,X],[k,B]]]),this.map.fire("draw.create",{features:[u.rectangle.toGeoJSON()]}),this.changeMode("simple_select",{featureIds:[u.rectangle.id]})):(this.deleteFeature([u.rectangle.id],{silent:!0}),u.hasCoordinates=!1,this.changeMode("simple_select"))},onStop(){},onTrash(u){this.deleteFeature([u.rectangle.id],{silent:!0}),this.changeMode("simple_select")},toDisplayFeatures(u,g,k){const B=g.properties.id===u.rectangle.id;B&&!u.hasCoordinates||(g.properties.active=B?"true":"false",k(g))}}}const Mo=[{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 hn(){const u=Fe.value;return!u||!ge[u]?.url?"":ge[u].url}function Fo(u,g){return u?.id?String(u.id):u?.url?`${u.url}-${g}`:`layer-${g}`}function Gn(u){const g=String(u?.url??"").trim();if(!g)return"";if(/^https?:\/\//i.test(g))return g;const k=window.location?.origin??"",B=g.replace(/^\/+/,"");return`${k}/${B}`}function Vt(u){u&&Ce.value?.layerId!==u||(Ce.value=null)}function K(u,g={}){if(u.popup===!1)return[];const k=Number(g?.point_count);if(Number.isFinite(k)&&k>1)return[{key:"Об'єктів у кластері",value:String(k)}];const B=Gn(u),F=kn(u,B,N.value);return Array.isArray(u.popup)?u.popup.length?u.popup.map(X=>{const se=X?.field||X?.name;if(!se)return null;const pe=g[se];if(pe==null||pe==="")return null;const Be=F?.formatPopupValue?F.formatPopupValue(se,pe):String(pe);return{key:X.label||se,value:Be}}).filter(Boolean):[]:Object.entries(g).slice(0,5).map(([X,se])=>({key:X,value:se==null?"—":String(se)}))}function re(u){if(!Array.isArray(u))return[];const g=B=>Array.isArray(B)&&B.length>=2&&Number.isFinite(Number(B[0]))&&Number.isFinite(Number(B[1])),k=B=>{if(!B.length)return B;const F=B[0],X=B[B.length-1];return!X||F[0]!==X[0]||F[1]!==X[1]?[...B,F]:B};if(u.length&&g(u[0])){const B=u.map(F=>[Number(F[0]),Number(F[1])]).filter(g);return B.length?[k(B)]:[]}return u.length&&Array.isArray(u[0])&&g(u[0][0])?u.map(F=>Array.isArray(F)?F.map(X=>[Number(X[0]),Number(X[1])]):[]).filter(F=>F.length).map(k):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&g(u[0][0][0])?u.flatMap(F=>Array.isArray(F)?F:[]).map(F=>Array.isArray(F)?F.map(X=>[Number(X[0]),Number(X[1])]):[]).filter(F=>F.length).map(k):[]}function he(u){const g=u.style??{},k=g.color??"#3b82f6";if(!g.colorAttr||!g.colorSet)return k;const B=Object.keys(g.colorSet);if(!B.length)return k;const F=["match",["to-string",["get",g.colorAttr]]];return B.forEach(X=>{F.push(String(X),g.colorSet?.[X]??k)}),F.push(k),F}function Ae(u){if(!U)return;const g=U.getStyle()?.layers;Array.isArray(g)&&[...g].reverse().forEach(k=>{k.source===u&&U.getLayer(k.id)&&U.removeLayer(k.id)})}function Oe(u){if(!U)return;u.handlers.forEach(B=>{try{U.off(B.type,B.layerId,B.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(B=>{U.getLayer(B)&&U.removeLayer(B)}),Ae(u.sourceId),U.getSource(u.sourceId)&&U.removeSource(u.sourceId);const g=`vs-ov-bounds-src-${u.id}`,k=`vs-ov-bounds-line-${u.id}`;U.getLayer(k)&&U.removeLayer(k),U.getSource(g)&&U.removeSource(g),Vt(u.id)}function Ze(u,g){if(!U)return[];const k=`vs-ov-bounds-src-${g}`,B=`vs-ov-bounds-line-${g}`,F=u.bounds??A.value??te.value,X=re(F);if(!X.length)return[];const se={type:"FeatureCollection",features:X.map(pe=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:pe}}))};return U.getLayer(B)&&U.removeLayer(B),U.getSource(k)&&U.removeSource(k),U.addSource(k,{type:"geojson",data:se}),U.addLayer({id:B,type:"line",source:k,paint:{"line-color":u.style?.stroke??u.style?.color??"#2563eb","line-width":u.style?.width??2,"line-opacity":u.style?.opacity??.8,"line-dasharray":[2,2]}}),[B]}function ze(){return Yt||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"}function dt(u,g){if(!U)return;u.handlers.forEach(B=>{try{U.off(B.type,B.layerId,B.handler)}catch{}});const k=[];g.forEach(B=>{const F=se=>{if(ze())return;if(!se?.features?.length){Vt(u.id);return}const pe=se.features[0]?.properties??{},Be=K(u.config,pe);if(!Be.length){Vt(u.id);return}Ce.value={layerId:u.id,entries:Be,point:{x:se.point.x,y:se.point.y}}},X=()=>Vt(u.id);U.on("mousemove",B,F),U.on("mouseleave",B,X),k.push({layerId:B,type:"mousemove",handler:F},{layerId:B,type:"mouseleave",handler:X})}),u.handlers=k}function ut(u,g){if(!U)return;u.layerIds=g,u.boundsIds=Ze(u.config,u.id),dt(u,g);const k=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(B=>{U.getLayer(B)&&U.setLayoutProperty(B,"visibility",k)}),wt()}function Qe(u){if(!U)return;Oe(u),u.renderToken=(u.renderToken??0)+1;const g=u.renderToken,k=u.config,B=Gn(k);if(!B)return;const F=[],X=/\.v(?:m)?t(?:\?|$|\/)/i.test(B)||/\.pbf(?:\?|$)/i.test(B)||/\/vtile(?:\/|\?|$)/i.test(B)||String(k?.service??"").toLowerCase()==="vector"||String(k?.format??"").toLowerCase()==="mvt",se=kn(k,B,N.value);if(X&&se){const pe=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;U.addSource(u.sourceId,{type:"vector",tiles:[B],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22}),(async()=>{try{if(!U||!U.getSource(u.sourceId)||u.renderToken!==g)return;const Be=await se.render({map:U,overlayId:u.id,sourceId:u.sourceId,sourceLayer:pe,url:B,config:k});if(!U||!U.getSource(u.sourceId)||u.renderToken!==g){Be.forEach(je=>{U.getLayer(je)&&U.removeLayer(je)});return}ut(u,Be)}catch(Be){u.renderToken===g&&console.error(`Failed to render map layer preset "${se.id}"`,Be)}})();return}if(X){const pe=k.sourceLayer||k.layer||k.service_layer||k.dataset?.layer||k.id;U.addSource(u.sourceId,{type:"vector",tiles:[B],minzoom:typeof k.minzoom=="number"?k.minzoom:0,maxzoom:typeof k.maxzoom=="number"?k.maxzoom:22});const Be=Array.isArray(k.style?.types)?k.style.types.map(At=>String(At).toLowerCase()):[String(k.style?.type??"polygon").toLowerCase()],je=he(k),$t=k.style?.opacity??.5,Uo=At=>{if(At==="point"){const bn=`vs-ov-point-${u.id}`;U.addLayer({id:bn,type:"circle",source:u.sourceId,"source-layer":pe,paint:{"circle-color":je,"circle-radius":k.style?.radius??5,"circle-opacity":$t}}),F.push(bn);return}if(At==="polyline"||At==="line"){const bn=`vs-ov-line-${u.id}`;U.addLayer({id:bn,type:"line",source:u.sourceId,"source-layer":pe,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":je,"line-width":k.style?.width??2,"line-opacity":$t}}),F.push(bn);return}const Il=`vs-ov-fill-${u.id}`,Ol=`vs-ov-border-${u.id}`;U.addLayer({id:Il,type:"fill",source:u.sourceId,"source-layer":pe,paint:{"fill-color":je,"fill-opacity":$t}}),U.addLayer({id:Ol,type:"line",source:u.sourceId,"source-layer":pe,paint:{"line-color":k.style?.stroke??k.style?.color??"#2563eb","line-width":k.style?.width??1,"line-opacity":$t}}),F.push(Il,Ol)};[...new Set(Be)].forEach(At=>Uo(At)),ut(u,F);return}else{U.addSource(u.sourceId,go(B,k,{safe:!1}));const pe=`vs-ov-raster-${u.id}`;U.addLayer({id:pe,type:"raster",source:u.sourceId,paint:{"raster-opacity":k.style?.opacity??1}}),F.push(pe)}ut(u,F)}function nt(){if(!U)return;const g={type:"FeatureCollection",features:re(A.value??te.value).map(k=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:k}}))};U.getSource(Pn)?U.getSource(Pn).setData(g):U.addSource(Pn,{type:"geojson",data:g}),U.getLayer(Wt)||U.addLayer({id:Wt,type:"line",source:Pn,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function pt(u){if(!U||s.value)return;const g=ne[u];if(!g)return;g.visible=!g.visible;const k=g.visible?"visible":"none";[...g.layerIds,...g.boundsIds].forEach(B=>{U.getLayer(B)&&U.setLayoutProperty(B,"visibility",k)}),wt(),g.visible||Vt(u)}function Xt(u){if(!U)return;const g=q[u];if(!g?.url)return;const k=de(u),B=we(u);U.getLayer(B)&&U.removeLayer(B),U.getSource(k)&&U.removeSource(k),U.addSource(k,go(g.url,g,{safe:!0}));const F=g?.opacity??g?.style?.opacity,X=typeof F=="number"?F:Dm;U.addLayer({id:B,type:"raster",source:k,paint:{"raster-opacity":X}})}function By(u){if(!U)return;const g=de(u),k=we(u);U.getLayer(k)&&U.removeLayer(k),U.getSource(g)&&U.removeSource(g)}function Cl(){U&&w.value.forEach(u=>Xt(u))}function Vy(u){if(!U||s.value||!q[u])return;w.value.includes(u)?(w.value=w.value.filter(k=>k!==u),By(u)):(w.value=[...w.value,u],Xt(u)),wt()}function wt(){if(!U)return;const u=w.value.map(Be=>we(Be)).filter(Be=>U.getLayer(Be)),g=[],k=[],B=[],F=[];le.value.forEach(Be=>{const je=ne[Be];if(!je)return;const $t=String(je.config?.url??""),Uo=/\.v(?:m)?t(?:\?|$|\/)/i.test($t)||/\/vtile(?:\/|\?|$)/i.test($t)||Ho(je.config,$t,N.value),At=/\.png(?:\?|$)/i.test($t);Uo?B.push(...je.layerIds):At?g.push(...je.layerIds):k.push(...je.layerIds),F.push(...je.boundsIds)});const X=[...u,...g,...k,...B,...F];X.forEach(Be=>{U.getLayer(Be)&&U.moveLayer(Be)}),U.getLayer(Wt)&&U.moveLayer(Wt);const pe=(U.getStyle?.()?.layers??[]).map(Be=>String(Be?.id??"")).filter(Be=>Be.startsWith("gl-draw-"));if(pe.forEach(Be=>{U.getLayer(Be)&&U.moveLayer(Be)}),U.getLayer($r)){const Be=X.find(je=>U.getLayer(je))??(U.getLayer(Wt)?Wt:null)??pe.find(je=>U.getLayer(je));Be&&U.moveLayer($r,Be)}}function Sy(u){if(!ge[u]||(Fe.value=u,!U))return;const g=hn();if(!g)return;const k=U.getSource("rasterSource");if(k&&typeof k.setTiles=="function"){k.setTiles([g]),wt();return}const B=U.getCenter?.(),F=U.getZoom?.(),X=ue?.getAll?.();U.setStyle(Te(g)),U.once("style.load",()=>{if(U&&(B&&Number.isFinite(F)&&U.jumpTo({center:[B.lng,B.lat],zoom:F}),nt(),Cl(),le.value.forEach(se=>{const pe=ne[se];pe&&Qe(pe)}),wt(),X?.features?.length&&ue))try{X.features.forEach(se=>ue.add(se)),d.value=X.features.length}catch{d.value=0}})}function Do(u){return{type:"Feature",properties:{},geometry:u}}function vt(u){if(!u)return null;try{return JSON.parse(JSON.stringify(u))}catch{return null}}function To(u){if(!u)return null;const g=vt(u.geometry);return g?{...u.id!==void 0?{id:u.id}:{},type:"Feature",properties:{...u.properties??{}},geometry:g}:null}function gn(u){if(!u)return[];const g=(F,X)=>{if(!F?.type)return[];const se={...X??{}};return F.type==="MultiPoint"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Do({type:"Point",coordinates:pe})).map(pe=>({...pe,properties:se})):F.type==="MultiLineString"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Do({type:"LineString",coordinates:pe})).map(pe=>({...pe,properties:se})):F.type==="MultiPolygon"&&Array.isArray(F.coordinates)?F.coordinates.map(pe=>Do({type:"Polygon",coordinates:pe})).map(pe=>({...pe,properties:se})):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?F.geometries.flatMap(pe=>g(pe,se)):[{type:"Feature",properties:se,geometry:vt(F)}]},k=F=>{if(!F)return null;if(F.type==="Feature"){const X=To(F);return X?g(X.geometry,X.properties):null}return F.geom?.type&&Array.isArray(F.geom.coordinates)?g({type:F.geom.type,coordinates:F.geom.coordinates},F.properties??{}):F.type==="GeometryCollection"&&Array.isArray(F.geometries)?g(F,F.properties??{}):typeof F.type=="string"&&Array.isArray(F.coordinates)?g(vt(F),F.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(k).filter(Boolean);if(Array.isArray(u))return u.flatMap(F=>F?.type==="FeatureCollection"?gn(F):[k(F)]).flat().filter(Boolean);const B=k(u);return B?Array.isArray(B)?B:[B]:[]}function El(u){if(!u.length)return null;if(!a.value)return vt(u[0]?.geometry??null);const g=u.map(X=>vt(X?.geometry)).filter(Boolean);return g.every(X=>X?.type==="Point")?{type:"MultiPoint",coordinates:g.map(X=>X.coordinates)}:g.every(X=>X?.type==="LineString")?{type:"MultiLineString",coordinates:g.map(X=>X.coordinates)}:g.every(X=>X?.type==="Polygon")?{type:"MultiPolygon",coordinates:g.map(X=>X.coordinates)}:{type:"GeometryCollection",geometries:g}}function _l(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function $y(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length<2||g.length<2)return!1;const k=1e-12;return Math.abs(Number(u[0])-Number(g[0]))<k&&Math.abs(Number(u[1])-Number(g[1]))<k}function Bl(u,g){if(!Array.isArray(u)||u.length<4)return null;const B=$y(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(g)||g<0||g>=B.length||B.length<=3||(B.splice(g,1),B.length<3)?null:[...B,[...B[0]]]}function Vl(u,g){if(!Array.isArray(u)||u.length<2||!Number.isInteger(g)||g<0||g>=u.length||u.length<=2)return null;const k=u.slice();return k.splice(g,1),k.length<2?null:k}function Ay(u,g){const k=vt(u);if(!k||!Array.isArray(g))return null;if(k.type==="LineString"){const[B]=g,F=Vl(k.coordinates,B);return F?(k.coordinates=F,k):null}if(k.type==="MultiLineString"){const[B,F]=g,X=k.coordinates?.[B],se=Vl(X,F);return se?(k.coordinates[B]=se,k):null}if(k.type==="Polygon"){const[B,F]=g,X=k.coordinates?.[B],se=Bl(X,F);return se?(k.coordinates[B]=se,k):null}if(k.type==="MultiPolygon"){const[B,F,X]=g,se=k.coordinates?.[B]?.[F],pe=Bl(se,X);return pe?(k.coordinates[B][F]=pe,k):null}return null}function Ny(u){return u?u.split(".").map(g=>Number(g)).filter(g=>Number.isInteger(g)&&g>=0):[]}function Sl(u){return!ue||!u?null:typeof ue.get=="function"?ue.get(u)??null:ue.getAll?.()?.features?.find(k=>String(k?.id??"")===u)??null}function $l(u){const g=u?.properties?.id??u?.id;return g==null||g===""?null:String(g)}function My(u){if(!U||!u)return null;const g=[[u.x-8,u.y-8],[u.x+8,u.y+8]],B=U.queryRenderedFeatures(g).find(F=>{const X=String(F?.properties?.meta??"");return X&&X!=="feature"?!1:!!$l(F)});return $l(B)}function Fy(u,g){if(!ue||!u||!g.length)return;const k=Sl(u);if(!k?.geometry)return;const B=Ay(k.geometry,g);if(!B)return;const F={...k,id:k.id??u,geometry:B};Le=!0,$e=!0;try{ue.delete(u),ue.add(F)}finally{$e=!1,Le=!1}Pt(),St()}function Dy(u){if(!U||!ue||s.value||x.isRulerActive.value||p.value!=="edit")return;const g=u?.point;if(!g)return;const k=[[g.x-8,g.y-8],[g.x+8,g.y+8]],F=U.queryRenderedFeatures(k).find(se=>se?.properties?.meta==="vertex"&&se?.properties?.parent&&se?.properties?.coord_path);if(!F)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const X=Ny(String(F.properties.coord_path));X.length&&Fy(String(F.properties.parent),X)}function Ty(u){const g=Ml(u);if(!g)return null;const[[k,B],[F,X]]=g;return{lat:(B+X)/2,lng:(k+F)/2}}function Al(u){if(!Array.isArray(u)||u.length<3)return 0;const g=(B,F)=>{const X=B*2003750834e-2/180,se=Math.log(Math.tan((90+F)*Math.PI/360))/(Math.PI/180);return[X,se*2003750834e-2/180]};let k=0;for(let B=0;B<u.length-1;B+=1){const[F,X]=g(Number(u[B][0]),Number(u[B][1])),[se,pe]=g(Number(u[B+1][0]),Number(u[B+1][1]));k+=F*pe-se*X}return Math.abs(k/2)/1e6}function Ly(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const g=u.coordinates?.[0];return Array.isArray(g)?Al(g):null}return u.type==="MultiPolygon"?u.coordinates.reduce((g,k)=>{const B=k?.[0];return Array.isArray(B)?g+Al(B):g},0):null}function Lo(u){if(!u){m.value=null;return}const g=Ty(u);if(!g){m.value=null;return}m.value={type:String(u.type??"Feature"),center:g,areaKm2:Ly(u)}}function Io(u){if(!u){const B=Re[Re.length-1],F=vt(B?.geometry??null);gt=F,Lo(F);return}const g=Re.find(B=>String(B?.id??"")===String(u))??null,k=vt(g?.geometry??null);gt=k,Lo(k)}function Oo(u){y.value=(u??[]).map((g,k)=>{const B=String(g?.id??`feature-${k+1}`),F=Po(String(g?.geometry?.type??"Feature"));return{id:B,label:`${F} ${k+1}`}})}function Po(u){switch(String(u)){case"Point":return"Точка";case"MultiPoint":return"Мультиточка";case"LineString":return"Лінія";case"MultiLineString":return"Мультилінія";case"Polygon":return"Полігон";case"MultiPolygon":return"Мультиполігон";case"GeometryCollection":return"Колекція геометрій";default:return String(u||"Невідомо")}}function Nl(u,g){if(!Array.isArray(u)||!Array.isArray(g)||u.length!==2||g.length!==2)return!1;const k=1e-9;return Math.abs(Number(u[0])-Number(g[0]))<k&&Math.abs(Number(u[1])-Number(g[1]))<k}function Ml(u){if(!u)return null;let g=1/0,k=1/0,B=-1/0,F=-1/0;const X=se=>{if(Array.isArray(se)){if(se.length>=2&&Number.isFinite(se[0])&&Number.isFinite(se[1])){const pe=Number(se[0]),Be=Number(se[1]);g=Math.min(g,pe),k=Math.min(k,Be),B=Math.max(B,pe),F=Math.max(F,Be);return}se.forEach(X)}};return X(u.coordinates),!Number.isFinite(g)||!Number.isFinite(k)?null:[[g,k],[B,F]]}function Fl(u){if(!U||!u)return;const g=Ml(u);if(!g)return;const[[k,B],[F,X]]=g;if(k===F&&B===X){U.easeTo({center:[k,B],zoom:Math.max(Z.value,14)}),O();return}U.fitBounds(g,{padding:30,duration:250,maxZoom:18}),O()}function Ro(){if(!ue){d.value=0;return}const u=ue.getAll();d.value=u?.features?.length??0}function yn(){if(!ue)return null;const g=ue.getAll?.()?.features??[],k=X=>!!X&&g.some(se=>String(se?.id??"")===String(X??"")),B=ue.getSelectedIds?.();if(Array.isArray(B)&&B.length>0){const X=B[0];return X!=null?String(X):null}if(k(qe))return String(qe);if(!g.length)return null;const F=a.value?g[g.length-1]:g[0];return F?.id!==void 0&&F?.id!==null?String(F.id):null}function Pt(){if(!ue)return;const u=ue.getAll();if(d.value=u?.features?.length??0,!u?.features?.length){Re=[],y.value=[],gt=null,qe=null,m.value=null,$e||(xt="__null__",r("update:modelValue",null));return}const g=(u.features??[]).map(To).filter(Boolean);if(Re=g,Oo(g),qe=yn(),Io(qe),!$e){const k=El(g);xt=_l(k),r("update:modelValue",k)}}function Yn(){if(!ue)return;(ue.getAll()?.features||[]).forEach(g=>ue.delete(g.id)),y.value=[],Ro()}function Xn(u){if(!ue)return;const g=gn(u),k=a.value?g:g.slice(0,1);$e=!0,Yn(),k.forEach(X=>{try{ue.add(X)}catch{}}),$e=!1,Re=(ue.getAll?.()?.features??k).map(To).filter(Boolean),Oo(Re),qe=null;const F=vt(Re[Re.length-1]?.geometry??null);gt=vt(F),Ro(),Lo(F),F&&(Fl(F),s.value||St())}function Iy(){ue&&($e=!0,Yn(),Re.forEach(u=>{try{ue.add(u)}catch{}}),$e=!1,Oo(Re),Ro(),Io(qe))}function Zt(){if(ue){try{ue.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""}}function Zn(u){if(s.value||!ue)return;x.isRulerActive.value&&x.closeRuler(),Yt=!0,Zt(),p.value=u;const g=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";a.value||($e=!0,Yn(),$e=!1);try{ue.changeMode(g)}catch{p.value=""}finally{requestAnimationFrame(()=>{Yt=!1})}}function St(u){if(s.value||!ue||!ue.getAll()?.features?.length)return;const k=u||yn();if(k)try{ue.changeMode("direct_select",{featureId:k}),qe=k,Io(qe),p.value="edit"}catch{p.value=""}}function Oy(u){s.value||!ue||!u||St(u)}function Py(){if(!(s.value||!ue)){if(a.value){const u=yn();if(u)try{Lt=!0,ue.delete(u),Lt=!1,Pt();const g=yn();g?St(g):Zt();return}catch{Lt=!1}}Zt(),Yn(),Re=[],y.value=[],qe=null,xt="__null__",m.value=null,r("update:modelValue",null)}}function Ry(){s.value||!gt||Fl(gt)}function zy(u){if(!U||!He)return;const g=[u[1],u[0]];Ot||(Ot=new He.Marker({color:"#2563eb"})),Ot.setLngLat(g).addTo(U),U.easeTo({center:g,zoom:13,duration:250})}function jy(){s.value||ie.value?.click()}function Uy(){s.value||(fe.value=!fe.value)}function Dl(u){if(!fe.value)return;const g=ce.value;g&&!g.contains(u.target)&&(fe.value=!1)}function Hy(){fe.value=!1,jy()}function qy(){s.value||(ke.value=[],fe.value=!1,_e.value=!0)}function Ky(){_e.value=!1,ke.value=[]}function Wy(){if(s.value||!ue)return;const u=Cu(Ne.value.coordinates??"",Ne.value.format||"decimal",Ne.value.order||"lat-lon");if(!u.ok){ke.value=u.errors,Gy(u.errors);return}ke.value=[],Xn({type:"Polygon",coordinates:[u.ring]}),Pt(),_e.value=!1,u.wasClosedAutomatically&&be.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function Gy(u){if(!u.length)return;const g=5;u.slice(0,g).forEach(k=>{const B=k.line>0?`Рядок ${k.line}`:"Загальна помилка";be.notify({type:"warning",title:"Імпорт координат",message:`${B} — ${k.message}`})}),u.length>g&&be.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-g}`})}function Yy(u){if(s.value||!ue)return;fe.value=!1;const g=u.target,k=g.files?.[0];if(!k)return;const B=new FileReader;B.onload=()=>{try{const F=JSON.parse(String(B.result));if(!gn(F).length){be.notify({type:"warning",title:"Імпорт файлу",message:"Файл не містить коректний GeoJSON-обʼєкт."});return}Xn(F),Pt()}catch{be.notify({type:"error",title:"Імпорт файлу",message:"Не вдалося прочитати файл. Перевірте формат GeoJSON/JSON."})}finally{g.value=""}},B.onerror=()=>{be.notify({type:"error",title:"Імпорт файлу",message:"Помилка читання файлу."}),g.value=""},B.readAsText(k)}function Xy(){if(s.value||!ue)return;const u=ue.getAll(),g=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),k=URL.createObjectURL(g),B=document.createElement("a");B.href=k,B.download="data.geojson",B.click(),URL.revokeObjectURL(k)}e.onMounted(async()=>{if(window.addEventListener("click",Dl,!0),!i.value)return;const u=await Pe();He=u.maplibregl,tt=u.MapboxDraw;const g=hn();g&&(U=new He.Map({container:i.value,style:Te(g),center:[L.value[0],L.value[1]],zoom:Z.value,attributionControl:!1}),h.value=U,U.addControl(new He.NavigationControl({showCompass:!0}),"bottom-right"),U.on("error",k=>{const B=k?.error?.message??k?.message??"";qp(B)}),U.on("load",()=>{if(!(!tt||!U)){if(ue=new tt({displayControlsDefault:!1,modes:{...tt.modes,draw_rectangle:No()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Mo}),U.addControl(ue),U.on("click",k=>{if(x.isRulerActive.value){const F=k?.lngLat;if(!F)return;f.value?.addPoint?.({lat:F.lat,lng:F.lng});return}if(!ue||s.value||p.value!=="edit")return;const B=My(k?.point);!B||B===qe||requestAnimationFrame(()=>{!ue||s.value||St(B)})}),U.on("draw.create",()=>{if(ue&&!x.isRulerActive.value){if(!a.value){const k=ue.getAll();if(k.features.length>1){const B=k.features[k.features.length-1];$e=!0,k.features.slice(0,-1).forEach(F=>ue.delete(F.id)),$e=!1,B&&($e=!0,ue.add(B),$e=!1)}}Pt(),St()}}),U.on("draw.update",k=>{if(It||x.isRulerActive.value||ze())return;const B=Array.isArray(k?.features)?k.features:[],F=k?.action==="move"&&B.length>0&&B.every(X=>X?.geometry?.type==="Point");if(k?.action==="move"){if(F){Pt();return}if(It=!0,Iy(),It=!1,p.value==="edit"){const X=yn(),se=X?Sl(X):ue?.getAll?.()?.features?.[0];if(se?.id)try{ue.changeMode("direct_select",{featureId:se.id}),qe=String(se.id)}catch{p.value=""}}return}Pt()}),U.on("draw.delete",()=>{Le||Lt||x.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"||(Pt(),ue?.getAll?.()?.features?.length||(qe=null),p.value="",Zt())}),U.on("draw.selectionchange",k=>{if(!ue||It||x.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle")return;const B=k?.features?.[0]?.id!==void 0&&k?.features?.[0]?.id!==null?String(k.features[0].id):null;if(!s.value&&B){if(p.value==="edit"&&qe===B)return;requestAnimationFrame(()=>{!ue||s.value||St(B)});return}const F=ue.getSelectedIds?.(),X=Array.isArray(F)&&F.length>0?String(F[0]):null;if(!s.value&&X){if(p.value==="edit"&&qe===X)return;requestAnimationFrame(()=>{!ue||s.value||St(X)});return}try{ue.changeMode("simple_select",{featureIds:[]})}catch{}}),D.value!==void 0){const k=D.value;D.value=void 0,requestAnimationFrame(()=>{ue&&Xn(k)})}nt(),Cl(),le.value.forEach(k=>{const B=ne[k];B&&Qe(B)}),wt(),$()}}),U.on("contextmenu",Dy),U.on("moveend",O),U.on("zoomend",()=>{U&&(Z.value=U.getZoom())}))}),e.onUnmounted(()=>{typeof document<"u"&&(document.body.style.overflow=""),typeof window<"u"&&window.removeEventListener("keydown",jo),I&&(clearTimeout(I),I=null),x.isRulerActive.value&&x.closeRuler(),window.removeEventListener("click",Dl,!0),Object.values(ne).forEach(u=>{U&&Oe(u)}),Vt(),Ot?.remove&&Ot.remove(),Ot=null,U?.remove&&U.remove(),U=null,ue=null,h.value=null}),e.watch(()=>o.modelValue,u=>{if(!ue){D.value=u;return}if(ze())return;const g=El((a.value?gn(u):gn(u).slice(0,1))||[]),k=_l(g);if(xt&&k===xt){xt=null;return}xt=null,Xn(u)},{deep:!0}),e.watch(()=>oe.value,u=>{const g=Array.isArray(u)?u:[],k=[],B=new Set;g.forEach((F,X)=>{if(!F)return;const se=Fo(F,X);k.push(se),B.add(se);const pe={...F,id:se},Be=ne[se],je=Be?.visible??!!pe.visible;Be&&U&&Oe(Be),ne[se]={id:se,config:pe,visible:je,sourceId:`vs-ov-src-${se}`,layerIds:[],boundsIds:[],handlers:[],renderToken:Be?.renderToken??0}}),Object.keys(ne).forEach(F=>{if(B.has(F))return;const X=ne[F];X&&U&&Oe(X),delete ne[F]}),le.value=k,U&&(le.value.forEach(F=>{const X=ne[F];X&&Qe(X)}),wt())},{immediate:!0,deep:!0}),e.watch(()=>A.value,()=>{U&&(nt(),le.value.forEach(u=>{const g=ne[u];g&&Qe(g)}),wt())},{deep:!0}),e.watch(()=>H.value,async u=>{if(te.value=[],!u){U&&(nt(),le.value.forEach(g=>{const k=ne[g];k&&Qe(k)}),wt());return}try{const g=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!g?.ok)return;const B=(await g.json())?.geometry?.coordinates;Array.isArray(B)&&B.length&&(te.value=B)}catch(g){console.error("Failed to fetch KATOTTG bounds",g)}finally{if(!U)return;nt(),le.value.forEach(g=>{const k=ne[g];k&&Qe(k)}),wt()}},{immediate:!0}),e.watch(()=>C.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const g=[Number(u[0]),Number(u[1])];if(Nl(L.value,g)||(L.value=[...g],!U))return;const k=U.getCenter?.();k&&Nl([k.lng,k.lat],L.value)||U.easeTo({center:[L.value[0],L.value[1]]})},{deep:!0}),e.watch(()=>T.value,u=>{typeof u=="number"&&(Z.value=u,U&&U.setZoom(u))}),e.watch(()=>m.value?.center,u=>{u&&G(u.lng,u.lat,U?.getZoom?.())},{deep:!0}),e.watch(s,u=>{u&&Zt()}),e.watch(d,u=>{if(u>0){s.value||St();return}Yt||Zt()});const Tl=e.computed(()=>y.value.length>0||!!m.value),zo=e.computed(()=>{const u=y.value,g=u.length>1;return u.length?u.map(k=>({id:k.id,label:g?k.label:m.value?.type?Po(m.value.type):k.label,interactive:g})):m.value?.type?[{id:"__feature",label:Po(m.value.type),interactive:!1}]:[]});function Ll(){setTimeout(()=>{U?.resize&&U.resize()},50)}function jo(u){u.key==="Escape"&&c.value&&(c.value=!1)}return e.watch(c,u=>{typeof document<"u"&&(document.body.style.overflow=u?"hidden":""),typeof window<"u"&&(u?window.addEventListener("keydown",jo):window.removeEventListener("keydown",jo)),Ll()}),e.watch(Tl,Ll),(u,g)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!c.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:c.value}])},[e.createElementVNode("div",Kp,[e.createElementVNode("div",{ref_key:"mapContainer",ref:i,class:"vs-map-canvas"},null,512),Q.value.search||Q.value.import||Q.value.export?(e.openBlock(),e.createElementBlock("div",Wp,[Q.value.search?(e.openBlock(),e.createBlock(Uu,{key:0,onGoToCoordinates:zy})):e.createCommentVNode("",!0),Q.value.import||Q.value.export?(e.openBlock(),e.createElementBlock("div",Gp,[e.createElementVNode("div",Yp,[Q.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:ce,class:"relative"},[e.createElementVNode("button",{type:"button",class:"vs-map-action-btn",onClick:Uy,disabled:s.value},[g[8]||(g[8]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(J.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":fe.value}])},null,8,["class"])],8,Xp),fe.value?(e.openBlock(),e.createElementBlock("div",Zp,[Q.value.import?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:Hy}," З файлу ")):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"block w-full text-left px-3 py-2 hover:bg-gray-100 text-gray-900",onClick:qy}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),Q.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:Xy,disabled:s.value||d.value===0}," Експорт ",8,Jp)):e.createCommentVNode("",!0)]),e.createElementVNode("input",{ref_key:"importRef",ref:ie,type:"file",onChange:Yy,accept:".json,.geojson",class:"hidden",disabled:s.value},null,40,Qp)])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(be.VsModal),{visible:_e.value,"onUpdate:visible":g[1]||(g[1]=k=>_e.value=k),title:"Імпорт координат полігону",size:"lg",teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(ct,{schema:Ue,values:Ne.value,"onUpdate:values":g[0]||(g[0]=k=>Ne.value=k)},null,8,["values"]),e.createElementVNode("div",em,[e.createElementVNode("button",{type:"button",class:"px-3 py-2 rounded-md border border-gray-300 text-gray-700 text-sm hover:bg-gray-100",onClick:Ky}," Скасувати "),e.createElementVNode("button",{type:"button",class:"px-3 py-2 rounded-md bg-blue-600 text-white text-sm hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed",onClick:Wy,disabled:s.value}," Побудувати ",8,tm)])]),_:1},8,["visible"]),e.createElementVNode("div",nm,[e.createElementVNode("div",om,[M.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[Q.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="marker"}]),title:"Точка",onClick:g[2]||(g[2]=k=>Zn("marker")),disabled:s.value},[e.createVNode(e.unref(J.MapPin),{class:"vs-btn-icon"})],10,rm)):e.createCommentVNode("",!0),Q.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polyline"}]),title:"Лінія",onClick:g[3]||(g[3]=k=>Zn("polyline")),disabled:s.value},[e.createVNode(Hd,{class:"vs-btn-icon"})],10,lm)):e.createCommentVNode("",!0),Q.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polygon"}]),title:"Полігон",onClick:g[4]||(g[4]=k=>Zn("polygon")),disabled:s.value},[e.createVNode(Gd,{class:"vs-btn-icon"})],10,am)):e.createCommentVNode("",!0),Q.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="rectangle"}]),title:"Прямокутник",onClick:g[5]||(g[5]=k=>Zn("rectangle")),disabled:s.value},[e.createVNode(Jd,{class:"vs-btn-icon"})],10,sm)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),M.value?(e.openBlock(),e.createElementBlock("div",im)):e.createCommentVNode("",!0),Q.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(x).isRulerActive.value}]),title:"Лінійка",onClick:b},[e.createVNode(e.unref(J.Ruler),{class:"vs-btn-icon"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn",onClick:g[6]||(g[6]=k=>c.value=!c.value),title:c.value?"Згорнути":"На весь екран"},[c.value?(e.openBlock(),e.createBlock(e.unref(J.Minimize),{key:0,class:"vs-btn-icon"})):(e.openBlock(),e.createBlock(e.unref(J.Maximize),{key:1,class:"vs-btn-icon"}))],8,cm)])]),Q.value.ruler&&e.unref(x).isRulerActive.value?(e.openBlock(),e.createBlock(Lp,{key:1,ref_key:"rulerPanelRefEl",ref:f,onClose:g[7]||(g[7]=k=>e.unref(x).closeRuler()),onTabChange:e.unref(x).onRulerTabChange,onPointsChange:e.unref(x).onRulerPointsChange,onShapeClosedChange:e.unref(x).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),Q.value.ruler&&e.unref(x).isRulerActive.value&&e.unref(x).hasRulerPoints.value?(e.openBlock(),e.createBlock(Ip,{key:2,map:h.value,points:e.unref(x).rulerPoints.value,"is-shape-closed":e.unref(x).rulerShapeClosed.value,"label-mode":e.unref(x).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),Ie.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(We.value)},[e.createElementVNode("div",dm,[e.createElementVNode("dl",um,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(Ie.value,k=>(e.openBlock(),e.createElementBlock("div",{key:`${k.key}-${k.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",pm,e.toDisplayString(k.key),1),e.createElementVNode("dd",mm,e.toDisplayString(k.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",fm,[e.createVNode(wu,{compact:"",basemaps:e.unref(ge),"active-base-key":Fe.value,"tile-overlays":e.unref(q),"active-tile-overlay-keys":w.value,"vector-overlays":P.value,"preview-tile":W.value,disabled:s.value,onOnLayerChange:Sy,onOnOverlayToggle:Vy,onOnVectorOverlayToggle:pt},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),Tl.value?(e.openBlock(),e.createElementBlock("div",hm,[e.createElementVNode("div",gm,[e.createElementVNode("div",ym,[g[9]||(g[9]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",bm,[zo.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(zo.value,(k,B)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k.id},[k.interactive?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass(["vs-map-status__chip",{"vs-map-status__chip--active":k.id===e.unref(qe)}]),onClick:F=>Oy(k.id),disabled:s.value},e.toDisplayString(k.label),11,km)):(e.openBlock(),e.createElementBlock("span",xm,e.toDisplayString(k.label),1)),B<zo.value.length-1?(e.openBlock(),e.createElementBlock("span",wm,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",vm,"—"))])]),e.createElementVNode("div",Cm,[e.createElementVNode("span",Em,[g[10]||(g[10]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),m.value?(e.openBlock(),e.createElementBlock("span",_m,e.toDisplayString(m.value.center.lng.toFixed(5))+", "+e.toDisplayString(m.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",Bm,"—"))]),m.value&&m.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",Vm,[g[11]||(g[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",Sm,e.toDisplayString(m.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",$m,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:Ry,disabled:s.value},[e.createVNode(e.unref(J.ZoomIn),{class:"vs-status-btn__icon"})],8,Am),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:Py,disabled:s.value},[e.createVNode(e.unref(J.Trash2),{class:"vs-status-btn__icon"})],8,Nm)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-0d5f3827"]]),Om=["data-focus"],Pm={class:"flex items-center"},Rm={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},zm=["onClick","aria-label"],jm={key:0,class:"absolute text-gray-500 truncate pl-2"},Um={class:"flex-1 min-w-[2px]"},Hm=["placeholder"],qm={class:"flex items-center shrink-0"},Km=["disabled"],Nr=e.defineComponent({__name:"vs-input-tag",props:e.mergeModels({unique:{type:Boolean,default:!0},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:"Введіть тег"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(n,{emit:t}){const o=n,r=t;Je(o.style);const l=e.ref(null),a=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref(""),d=e.useModel(n,"modelValue"),p=e.computed(()=>o.placeholder||"Add tag…"),m=e.computed(()=>d.value?.length===0&&i.value===""),y=e.computed(()=>!o.disabled&&d.value?.length>0),h=e.computed(()=>o.disabled),f=async()=>{h.value||await e.nextTick(()=>s.value?.focus())},x=ee=>{const j=ee.trim();j!==""&&(!d.value||!Array.isArray(d.value)?d.value=[j]:o.unique?d.value.includes(j)||(d.value=[...d.value,j]):d.value=[...d.value,j],i.value="")},b=()=>{const ee=i.value;ee.trim()!==""&&x(ee),i.value=""},E=ee=>{const j=d.value.slice();j.splice(ee,1),r("update:modelValue",j)},v=()=>{r("update:modelValue",[])},_=()=>{h.value||(c.value=!0)},N=()=>{c.value=!1,!h.value&&b()},R=ee=>{const{key:j}=ee;j==="Enter"?(ee.preventDefault(),b()):j==="Backspace"&&i.value===""&&d.value.length>0&&E(d.value.length-1)};return(ee,j)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:l,onClick:j[1]||(j[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",o.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",c.value?"border-blue-500 ring-1 ring-blue-500":"",h.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.value?"true":"false",onClick:f},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:a},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(V,S)=>(e.openBlock(),e.createElementBlock("div",{key:S,class:"flex min-w-0 bg-[#e6e6e6] rounded-sm m-0.5 box-border"},[e.createElementVNode("div",Pm,[e.createElementVNode("div",Rm,e.toDisplayString(V),1)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border hover:bg-[#ffbdad] hover:text-[#de350b]",onClick:e.withModifiers(C=>E(S),["stop"]),"aria-label":`Remove ${V}`},[e.createVNode(e.unref(J.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,zm)]))),128)),m.value?(e.openBlock(),e.createElementBlock("div",jm,e.toDisplayString(p.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Um,[h.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:s,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":j[0]||(j[0]=V=>i.value=V),onFocus:_,onBlur:N,onKeydown:R,placeholder:d.value&&d.value.length?"":void 0},null,40,Hm)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",qm,[y.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:h.value,onClick:e.withModifiers(v,["stop"])},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,Km)):e.createCommentVNode("",!0)])],10,Om)],2)],512))}}),Wm={class:"relative flex gap-1 bg-white w-full"},Gm=["disabled","placeholder"],Mr=Ve(e.defineComponent({__name:"vs-input-slug",props:e.mergeModels({disabled:{type:Boolean},placeholder:{},parent:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=e.inject("values"),o=n,r=e.useModel(n,"modelValue");function l(s){const c={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return s.toLowerCase().split("").map(i=>c[i]||i).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const a=()=>{const s=t?.value?.[o.parent||""]?.toString(),c=l(s);r.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",Wm,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:n.disabled,placeholder:n.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Gm),[[e.vModelText,r.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:a}," Gen ")]))}}),[["__scopeId","data-v-cb7b2b74"]]),Ym={class:"relative flex gap-1 bg-white w-full"},Xm=["disabled","placeholder"],Zm=["disabled"],Jm={key:0},Qm={key:1},Fr=Ve(e.defineComponent({__name:"vs-input-codegen",props:e.mergeModels({table:{},code:{},init:{type:Boolean},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref(!1),l=e.computed(()=>t.init!==!1),a=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!a.value)return"";const d=encodeURIComponent(String(t.table)),p=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${p}`},c=async()=>{if(!a.value||r.value)return;const d=s();if(d){r.value=!0;try{const m=await(await fetch(d)).text();o.value=m}finally{r.value=!1}}},i=()=>{l.value&&(o.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,p)=>(e.openBlock(),e.createElementBlock("div",Ym,[e.withDirectives(e.createElementVNode("input",{disabled:n.disabled,placeholder:n.placeholder,"onUpdate:modelValue":p[0]||(p[0]=m=>o.value=m),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Xm),[[e.vModelText,o.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",disabled:r.value||n.disabled||!a.value,onClick:c},[r.value?(e.openBlock(),e.createElementBlock("span",Qm,"...")):(e.openBlock(),e.createElementBlock("span",Jm,"Gen"))],8,Zm)]))}}),[["__scopeId","data-v-8f88fb66"]]),ef={class:"w-full"},tf={ref:"sortableContainer",class:"flex flex-col gap-1"},nf=["onDragstart","onDrop"],of={class:"cursor-move",type:"button"},rf={class:"w-1/3"},lf={class:"w-2/3"},af=["onClick"],sf={key:0,class:"text-[14px] text-gray-700"},cf={class:"mt-2 w-full flex items-center"},df=["disabled"],Dr=Ve(e.defineComponent({__name:"vs-input-key-value",props:{parent:{},ignore:{},addButtonText:{},modelValue:{}},emits:["update:modelValue"],setup(n,{emit:t}){const o=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,r=e.inject("values"),l=n,a=t,s=l.addButtonText??"Додати",c=l.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const b=l.parent&&r?.value?.[l.parent]||l.modelValue||{};i.value=Object.entries(b).filter(([E])=>!c.includes(E)).map(([E,v])=>({id:o("key-value-"),key:E,value:v}))})();function m(b){d.value=b}function y(b){if(d.value===null||d.value===b)return;const E=i.value.splice(d.value,1)[0];i.value.splice(b,0,E),d.value=null}const h=e.computed(()=>i.value.some(b=>b.key&&!b.value||!b.key&&b.value)),f=()=>{i.value.push({id:o("key-value-"),key:"",value:""})},x=b=>{i.value=i.value.filter(E=>E.id!==b)};return e.watch(i,b=>{const E={};b.forEach(_=>{_.key&&_.value!==void 0&&(E[_.key]=_.value)});const v={};c.length&&c.forEach(_=>{v[_]=l.parent?r?.value?.[l.parent]?.[_]:void 0}),r?.value&&l.parent&&(r.value[l.parent]={...v,...E}),a("update:modelValue",E)},{deep:!0}),(b,E)=>(e.openBlock(),e.createElementBlock("div",ef,[e.createElementVNode("div",tf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(v,_)=>(e.openBlock(),e.createElementBlock("div",{key:v.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===_}]),draggable:"true",onDragstart:N=>m(_),onDragover:E[0]||(E[0]=e.withModifiers(()=>{},["prevent"])),onDrop:N=>y(_)},[e.createElementVNode("button",of,[e.createVNode(e.unref(J.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",rf,[e.createVNode(qt,{modelValue:v.key,"onUpdate:modelValue":N=>v.key=N,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",lf,[e.createVNode(qt,{modelValue:v.value,"onUpdate:modelValue":N=>v.value=N,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:N=>x(v.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,af)],42,nf))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",sf," Дані для відображення відсутні ")),e.createElementVNode("div",cf,[e.createElementVNode("button",{type:"button",onClick:f,disabled:h.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,df)])]))}}),[["__scopeId","data-v-ac321a0f"]]),uf={class:"w-full"},pf={ref:"sortableContainer",class:"flex flex-col gap-1"},mf=["onDragstart","onDrop"],ff=["disabled"],hf={class:"flex-1"},gf=["onClick","disabled"],yf={key:0,class:"text-[14px] text-gray-700"},bf={class:"mt-2 w-full flex items-center"},kf=["disabled"],Tr=Ve(e.defineComponent({__name:"vs-input-text-array",props:e.mergeModels({addButtonText:{default:"Додати"},inputType:{default:"text"},placeholder:{default:"Значення"},mask:{default:""},disabled:{type:Boolean,default:!1}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref([]),l=e.ref(null),a=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),c=e.computed(()=>t.addButtonText??"Додати");let i=!1;const d=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,p=b=>{const E=b??o.value??[];r.value=E.map((v,_)=>({id:r.value[_]?.id??d("text-array"),value:v??""}))};p(),e.watch(()=>o.value,b=>{if(i){i=!1;return}p(b||[])},{deep:!0}),e.watch(r,b=>{i=!0,o.value=b.map(E=>E.value).filter(E=>E!=null&&E!=="")},{deep:!0});const m=e.computed(()=>a.value||r.value.some(b=>!b.value));function y(){m.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function h(b){a.value||(r.value=r.value.filter(E=>E.id!==b))}function f(b){a.value||(l.value=b)}function x(b){if(a.value||l.value===null||l.value===b)return;const E=[...r.value],[v]=E.splice(l.value,1);E.splice(b,0,v),r.value=E,l.value=null}return(b,E)=>(e.openBlock(),e.createElementBlock("div",uf,[e.createElementVNode("div",pf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(v,_)=>(e.openBlock(),e.createElementBlock("div",{key:v.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":l.value===_}]),draggable:"true",onDragstart:N=>f(_),onDragover:E[0]||(E[0]=e.withModifiers(()=>{},["prevent"])),onDrop:N=>x(_)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:a.value},[e.createVNode(e.unref(J.GripVertical),{class:"h-4 w-4"})],8,ff),e.createElementVNode("div",hf,[n.inputType==="text"?(e.openBlock(),e.createBlock(qt,{key:0,modelValue:v.value,"onUpdate:modelValue":N=>v.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),n.inputType==="tel"?(e.openBlock(),e.createBlock(ro,{key:1,modelValue:v.value,"onUpdate:modelValue":N=>v.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),n.inputType==="email"?(e.openBlock(),e.createBlock(oo,{key:2,modelValue:v.value,"onUpdate:modelValue":N=>v.value=N,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),n.inputType==="mask"?(e.openBlock(),e.createBlock(wn,{key:3,modelValue:v.value,"onUpdate:modelValue":N=>v.value=N,mask:n.mask,disabled:a.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:N=>h(v.id),disabled:a.value,class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200 disabled:opacity-50"},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,gf)],42,mf))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",yf," Дані для відображення відсутні ")),e.createElementVNode("div",bf,[e.createElementVNode("button",{type:"button",onClick:y,disabled:m.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,kf)])]))}}),[["__scopeId","data-v-972a598a"]]),xf={class:"flex items-center gap-2 w-full"},wf=["disabled"],vf=["disabled"],Lr=e.defineComponent({__name:"vs-input-color",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(n,{emit:t}){const o=n,{inputClass:r}=Je(o.style),l=t,a=e.computed({get:()=>o.modelValue||"#000000",set:c=>l("update:modelValue",c)}),s=e.computed(()=>!!o.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",xf,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":i[0]||(i[0]=d=>a.value=d),disabled:s.value,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[n.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,wf),[[e.vModelText,a.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":i[1]||(i[1]=d=>a.value=d),disabled:s.value},null,8,vf),[[e.vModelText,a.value]])]))}}),Cf={class:"flex items-center gap-2 w-full"},Ef=["min","max","step","disabled"],_f=["value","min","max","step","disabled"],Ir=e.defineComponent({__name:"vs-input-range",props:{style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{default:""},maxlength:{},minlength:{},min:{default:0},max:{default:100},step:{default:1}},emits:["update:modelValue"],setup(n,{emit:t}){const o=n,{inputClass:r}=Je(o.style),l=t,a=p=>{const m=Number(p),y=Number(o.min),h=Number(o.max);return Number.isNaN(m)?y:Math.min(h,Math.max(y,m))},s=e.computed({get:()=>a(o.modelValue??o.min),set:p=>l("update:modelValue",a(p))}),c=p=>{const m=p.target,y=a(m.value);m.value=String(y),l("update:modelValue",y)},i=p=>{Number(o.min)>=0&&p.key==="-"&&p.preventDefault()},d=e.computed(()=>!!o.disabled);return(p,m)=>(e.openBlock(),e.createElementBlock("div",Cf,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":m[0]||(m[0]=y=>s.value=y),min:n.min,max:n.max,step:n.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[n.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,Ef),[[e.vModelText,s.value]]),e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number",value:s.value,min:n.min,max:n.max,step:n.step,onInput:c,onKeydown:i,disabled:d.value},null,40,_f)]))}}),Bf=["placeholder","disabled","name"],Vf=["type","value","onInput","placeholder","disabled"],Sf=["onClick"],Or=e.defineComponent({__name:"vs-input-array",props:e.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.ref(t.count),r=e.computed(()=>t.limit),{inputClass:l}=Je(t.style),a=e.useModel(n,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const x=a.value?.length??0;x<o.value&&(a.value=[...a.value??[],...Array(o.value-x)])});const i=e.ref({}),d=e.ref({});function p(x,b){x&&(i.value[b]=x)}async function m(x,b){if(!x||t.inputType!=="mask")return;const{default:E}=await Promise.resolve().then(()=>Wn);d.value[b]&&d.value[b].destroy(),d.value[b]=E(x,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[b].on("accept",()=>{const v=[...a.value||[]];v[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,a.value=v}),d.value[b].on("complete",()=>{const v=[...a.value||[]];v[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,a.value=v}),a.value?.[b]&&(d.value[b].value=a.value[b])}function y(x,b){if(s.value)return;const E=x.target.value??null,v=[...a.value];v[b]=t.inputType==="text"?E:Number(E),a.value=v}function h(){o.value+=1;const x=t.inputType==="text"||t.inputType==="mask"?null:0;a.value=[...a.value,x],t.inputType==="mask"&&setTimeout(()=>{const b=o.value-1;i.value[b]&&m(i.value[b],b)},0)}function f(x){if(o.value>1){d.value[x]&&(d.value[x].destroy(),delete d.value[x]),o.value-=1,a.value=a.value.filter((E,v)=>v!==x);const b={};Object.keys(d.value).forEach(E=>{const v=parseInt(E,10);v>x?b[v-1]=d.value[v]:v<x&&(b[v]=d.value[v])}),d.value=b}}return e.onMounted(()=>{if(t.inputType==="mask")for(let x=0;x<o.value;x+=1)i.value[x]&&m(i.value[x],x)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(x=>{x&&x.destroy()})}),e.watch(()=>t.mask,x=>{t.inputType==="mask"&&Object.values(d.value).forEach(b=>{b&&b.updateOptions({mask:x,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(a,x=>{t.inputType==="mask"&&x&&x.forEach((b,E)=>{d.value[E]&&d.value[E].value!==b&&(d.value[E].value=b||"")})},{deep:!0}),(x,b)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["grid gap-2",`grid-cols-${r.value}`])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,E=>(e.openBlock(),e.createElementBlock("div",{key:E,class:"flex items-center gap-2 w-full"},[n.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:v=>p(v,E-1),placeholder:n.placeholder,disabled:n.disabled,name:`${n.name}[${E-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Bf)):(e.openBlock(),e.createElementBlock("input",{key:1,type:n.inputType,value:a.value?.[E-1],onInput:v=>y(v,E-1),placeholder:c.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(l),{"!border-red-600":n.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,Vf)),!n.disabled&&E===o.value&&n.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(h,["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-green-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"})])):e.createCommentVNode("",!0),!n.disabled&&o.value>1&&n.isAdded?(e.openBlock(),e.createElementBlock("button",{key:3,type:"button",onClick:e.withModifiers(v=>f(E-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,Sf)):e.createCommentVNode("",!0)]))),128))],2))}}),$f={class:"flex gap-1 w-full"},Af=["aria-expanded","data-focus"],Nf=["placeholder","disabled","readonly"],Mf={class:"max-h-full"},Ff=["onClick","disabled"],Df={key:0,class:"px-3 py-2 text-sm text-stone-500"},Tf=["disabled"],Lf={class:"flex flex-col gap-1"},If=["onDragstart","onDrop"],Of=["disabled"],Pf=["title"],Rf=["disabled","onClick","aria-label"],zf={key:0,class:"text-xs text-stone-500"},Rn=Ve(e.defineComponent({__name:"vs-input-array-select",props:e.mergeModels({options:{default:()=>[]},data:{default:""},api:{default:""},prefix:{default:"api"},host:{default:""},parent:{},search:{type:Boolean,default:!0},maxHeight:{default:280},start:{default:0},slot:{},disabled:{type:Boolean,default:!1},add:{},style:{},customClass:{},modelValue:{},error:{},name:{},placeholder:{default:"Оберіть значення"},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:e.mergeModels(["change","update:modelValue","value-selected"],["update:modelValue"]),setup(n,{emit:t}){const o=n,r=t,l=e.useModel(n,"modelValue"),a=e.ref([]),s=e.ref(o.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),p=e.ref(""),m=e.ref(!1),y=e.ref(null),h=e.ref(null),f=e.ref(null),x=e.ref(null),b=e.ref(null),E=e.ref({});let v=!1,_=!1;const N=e.inject("values"),R=e.computed(()=>!!o.disabled),ee=e.computed(()=>o.placeholder??"Оберіть значення"),j=e.computed(()=>o.search!==!1),V=e.computed(()=>{const w=o.parent??o.parentValue;return w?String(w):""}),S=e.computed(()=>V.value?N?.value?.[V.value]??null:null),C=w=>w==null?"__null__":String(w),T=w=>{if(!w)return"";const M=w.label??w.text??w.name??w.ua??w.en;return M?String(M):w.id!==void 0&&w.id!==null?String(w.id):""},H=w=>{const M=C(w);return i.value[M]||(i.value[M]=`array-select-${M}-${Math.random().toString(36).slice(2,8)}`),i.value[M]},oe=e.computed(()=>new Set(a.value.map(w=>C(w.id)))),A=e.computed(()=>{const w=oe.value;let M=[...s.value];if(!o.data&&p.value.trim()){const P=p.value.toLowerCase();M=M.filter(de=>T(de).toLowerCase().includes(P))}return M.filter(P=>!w.has(C(P.id)))}),L=()=>{if(!o.data)return"";const w=o.prefix??"api",M=o.api??`/${w}/suggest/${o.data}`;return`${o.host??""}${M}`},Z=()=>{a.value.length&&(v=!0,a.value=a.value.map(w=>({...w,text:c.value[C(w.id)]??w.text})))},W=w=>{const M=C(w.id),P=T(w);P&&(c.value[M]=P)},I=w=>{s.value=w?[...w]:[],w?.forEach(W),Z()},z=w=>{if(!w.length)return;const M=new Map(s.value.map(P=>[C(P.id),P]));w.forEach(P=>{const de=C(P.id);M.set(de,P),W(P)}),s.value=Array.from(M.values()),Z()},G=async(w="")=>{if(!o.data)return[];const M=L();if(!M)return[];const P=new URLSearchParams;P.set("json","1"),w&&P.set("key",w),o.start===1&&P.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&P.set("parent",String(S.value));try{return(await(await fetch(`${M}?${P.toString()}`)).json())?.data??[]}catch{return[]}},$=async w=>{if(!o.data||!w.length)return[];const M=L();if(!M)return[];const P=Array.from(new Set(w.map(we=>C(we)))),de=new URLSearchParams;de.set("json","1"),de.set("val",P.join(",")),o.start===1&&de.set("start","1"),S.value!==null&&S.value!==void 0&&S.value!==""&&de.set("parent",String(S.value));try{const Te=(await(await fetch(`${M}?${de.toString()}`)).json())?.data??[];return z(Te),Te}catch{return[]}},O=async w=>{if(w==null||w==="")return null;const M=C(w),P=s.value.find(we=>C(we.id)===M);if(P)return P;const[de]=await $([w]);return de??null},D=async(w="",{force:M=!1}={})=>{if(!o.data)return;const P=S.value??null;if(!M&&d.value.keyword===w&&d.value.parent===P&&s.value.length>0)return;d.value={keyword:w,parent:P};const we=await G(w);I(we)},ce=((w,M=200)=>{let P;return(...de)=>{P&&clearTimeout(P),P=setTimeout(()=>w(...de),M)}})(async w=>{o.data&&await D(w,{force:!0})},250),te=e.ref(null),fe=()=>{if(!f.value)return;const w=f.value.getBoundingClientRect(),M=window.innerHeight??document.documentElement.clientHeight,P=window.innerWidth??document.documentElement.clientWidth,de=8,we=8,Pe=o.maxHeight??280,Te=M-w.bottom-we-de,He=w.top-we-de,tt=Te>=He,U=Math.max(P-de*2,0);let{width:ue}=w;U>0&&ue>U&&(ue=U);let{left:Re}=w;Re+ue+de>P&&(Re=P-ue-de),Re=Math.max(Re,de);const gt=Math.min(Pe,Math.max(tt?Te:He,50));E.value={position:"fixed",left:`${Re}px`,width:`${ue}px`,maxHeight:`${gt}px`,transform:tt?"none":"translateY(-100%)",top:tt?`${w.bottom+we}px`:`${w.top-we}px`}},_e=async(w="click")=>{R.value||m.value||(te.value=w,await D(p.value.trim()),m.value=!0,await e.nextTick(),fe(),b.value?.focus())},ke=()=>{m.value=!1,te.value=null,e.nextTick(()=>{b.value?.blur()})},Ne=async w=>{if(w.stopPropagation(),!R.value){if(m.value){if(te.value==="focus"){te.value=null;return}ke();return}await _e("click")}},Ue=w=>{w.key==="Escape"&&ke()},$e=w=>{if(!m.value)return;const M=w.target;x.value?.contains(M)||ke()},Le=w=>{const M=w.target;h.value?.contains(M)||x.value?.contains(M)||ke()},ne=w=>{if(w.key==="Escape"){w.preventDefault(),ke();return}if(w.key==="Enter"){w.preventDefault();const M=A.value[0];M&&le(M)}},le=w=>{if(!w)return;const M=C(w.id);if(oe.value.has(M))return;W(w);const P={id:w.id,text:T(w)||String(w.id??""),key:H(w.id)};a.value=[...a.value,P],ve(w),p.value="",e.nextTick(()=>{b.value?.focus()})},ve=w=>{const M=a.value.map(P=>P.id);r("value-selected",{name:o.name,value:M,option:w})},Ce=w=>{if(R.value)return;const M=a.value.filter(P=>C(P.id)!==C(w));a.value=M},{isOpenAdd:Ie,addData:We,addSchema:Y,addForm:Q,addTitle:ae,addOption:me,onAddValue:ge}=gr({props:o,fetchOptionByValue:O,optionsList:s,selectedOption:e.ref(null),modelValue:l,onCreated:async(w,M)=>{const P=w??await O(M),de=P?.id??M;oe.value.has(C(de))||(P&&W(P),a.value=[...a.value,{id:de,text:P?T(P):String(de),key:H(de)}],ve(P??null))}}),Me=w=>{R.value||(y.value=w)},Fe=w=>{if(R.value||y.value===null||y.value===w)return;const M=[...a.value],[P]=M.splice(y.value,1);M.splice(w,0,P),y.value=null,a.value=M},De=async()=>{const M=(Array.isArray(l.value)?[...l.value]:[]).filter(de=>de!=null);if(o.data&&M.length){const de=M.filter(we=>!c.value[C(we)]);de.length&&await $(de)}const P=M.map(de=>({id:de,text:c.value[C(de)]??String(de),key:H(de)}));v=!0,a.value=P};e.watch(a,w=>{if(v){v=!1;return}const M=w.map(P=>P.id);_=!0,l.value=M,r("change",M)},{deep:!0}),e.watch(l,()=>{if(_){_=!1;return}De()},{deep:!0}),e.watch(p,w=>{!o.data||!m.value||ce(w.trim())}),e.watch(R,w=>{w&&ke()}),e.watch(()=>o.options,async w=>{o.data||(I(w??[]),await De())},{immediate:!0,deep:!0}),e.watch(()=>o.data,async w=>{w&&(await D(p.value.trim()),await De())},{immediate:!0});const q=e.ref(!1);return e.watch(S,async()=>{if(o.data){if(!q.value){q.value=!0;return}a.value=[],await D(p.value.trim()),await De()}}),e.onMounted(async()=>{document.addEventListener("click",Le,!0),window.addEventListener("keydown",Ue),window.addEventListener("scroll",$e,!0),await De()}),e.onUnmounted(()=>{document.removeEventListener("click",Le,!0),window.removeEventListener("keydown",Ue),window.removeEventListener("scroll",$e,!0)}),(w,M)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(be.VsModal),{visible:e.unref(Ie),"onUpdate:visible":M[1]||(M[1]=P=>e.isRef(Ie)?Ie.value=P:null),class:"z-[1000]",title:e.unref(ae),buttonText:"Додати",onDone:e.unref(me)},{default:e.withCtx(()=>[e.createVNode(ct,{schema:e.unref(Y),modelValue:e.unref(We),"onUpdate:modelValue":M[0]||(M[0]=P=>e.isRef(We)?We.value=P:null),ref_key:"addForm",ref:Q},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),e.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:h},[e.createElementVNode("div",$f,[e.createElementVNode("div",{class:"relative flex-1",onClick:M[4]||(M[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:f,class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white px-3","border-gray-300 hover:border-[#b3d4ff]",m.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",R.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":m.value,"aria-haspopup":"listbox","data-focus":m.value?"true":"false",onClick:Ne},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:b,"onUpdate:modelValue":M[2]||(M[2]=P=>p.value=P),placeholder:ee.value,disabled:R.value,readonly:!j.value,onFocus:M[3]||(M[3]=()=>_e("focus")),onKeydown:ne,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,Nf),[[e.vModelText,p.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",m.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(J.ChevronDown),{class:"h-4 w-4"})],2)],10,Af),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:x,class:"fixed z-[3000] rounded-md border border-stone-200 bg-white shadow-lg overflow-auto",style:e.normalizeStyle(E.value)},[e.createElementVNode("div",Mf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(A.value,P=>(e.openBlock(),e.createElementBlock("button",{key:C(P.id),type:"button",class:"w-full px-3 py-2 text-left text-sm text-stone-900 hover:bg-stone-100 disabled:opacity-50",onClick:e.withModifiers(de=>le(P),["stop"]),disabled:R.value},e.toDisplayString(T(P)),9,Ff))),128)),A.value.length===0?(e.openBlock(),e.createElementBlock("p",Df," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),o.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:M[5]||(M[5]=(...P)=>e.unref(ge)&&e.unref(ge)(...P)),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:R.value,type:"button"},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),M[8]||(M[8]=e.createElementVNode("span",null,"Додати",-1))],8,Tf)):e.createCommentVNode("",!0)]),e.createElementVNode("div",Lf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(P,de)=>(e.openBlock(),e.createElementBlock("div",{key:P.key,class:e.normalizeClass(["flex items-center gap-2 rounded-md border border-stone-200 bg-white px-2 py-2",{"opacity-60":y.value===de}]),draggable:"true",onDragstart:we=>Me(de),onDragover:M[6]||(M[6]=e.withModifiers(()=>{},["prevent"])),onDrop:we=>Fe(de),onDragend:M[7]||(M[7]=we=>y.value=null)},[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-500 hover:text-stone-900",disabled:R.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(J.GripVertical),{class:"h-4 w-4"})],8,Of),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:P.text},e.toDisplayString(P.text),9,Pf),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-400 hover:text-stone-900",disabled:R.value,onClick:e.withModifiers(we=>Ce(P.id),["stop"]),"aria-label":`Видалити ${P.text}`},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})],8,Rf)],42,If))),128)),a.value.length===0?(e.openBlock(),e.createElementBlock("p",zf,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-9f0cb9d4"]]),jf={class:"flex items-center gap-2 w-full"},Uf={class:"relative flex-1"},Hf=["placeholder","disabled","onKeydown"],qf=["disabled"],Kf={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},Wf={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},Gf={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},Yf=["onClick"],Xf={key:0,class:"p-4 text-sm text-gray-500"},Pr=e.defineComponent({__name:"vs-input-address",props:e.mergeModels({api:{default:""},geom:{default:""},includes:{default:()=>[]},bbox:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","update:geom"],["update:modelValue"]),setup(n,{emit:t}){const o=/{{\s*([^}]+?)\s*}}/g,r=n,l=t,{inputClass:a}=Je(r.style),s=e.useModel(n,"modelValue"),c=e.computed({get:()=>s.value,set:j=>{s.value=j}}),i=e.ref(!1),d=e.ref([]),p=e.ref(!1),m=e.ref(null);e.watch(p,j=>{typeof document>"u"||(j?(m.value=document.body.style.overflow,document.body.style.overflow="hidden"):m.value!=null?(document.body.style.overflow=m.value,m.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(m.value!=null?document.body.style.overflow=m.value:document.body.style.removeProperty("overflow"))});const y=e.computed(()=>r.placeholder??""),h=e.computed(()=>!!r.disabled),f=j=>{if(!j)return null;if(Array.isArray(j))return j;if(typeof j=="string"){const V=j.split(",").map(S=>S.trim()).filter(Boolean);return V.length!==4?null:V.map(Number)}return null},x=e.computed(()=>{const j=f(r.bbox);if(!j||j.length!==4)return null;const V=j.map(Number);return V.some(S=>Number.isNaN(S))?null:V}),b=e.computed(()=>{const j=x.value;if(!j)return"";const[V,S,C,T]=j;return`${V},${Math.max(S,T)},${C},${Math.min(S,T)}`});e.computed(()=>b.value?"1":"0");const E=e.inject("values");function v(){!h.value&&c.value.trim()&&_()}async function _(){const j=(c.value||"").trim();if(!j)return;let V=j;if(r.includes?.length&&E?.value){const C=r.includes.map(T=>E.value?.[T]).filter(Boolean);C.length&&(V=`${C.join(", ")}, ${j}`)}const S=ee(V);if(S){i.value=!0;try{const T=await(await fetch(S)).json();d.value=Array.isArray(T)?T:[],p.value=!0}catch(C){console.error("Address search error:",C)}finally{i.value=!1}}}function N(){p.value=!p.value}function R(j){if(!j)return;p.value=!1;const V=parseFloat(j.lat),C={type:"Point",coordinates:[parseFloat(j.lon),V]};r.geom&&E?.value&&(E.value[r.geom]=C),l("update:geom",C)}function ee(j){if(!r.api)return"";const V={value:encodeURIComponent(j),bbox:x.value?x.value.join(","):""};return r.api.replace(o,(S,C)=>V[C.trim()]??"")}return(j,V)=>(e.openBlock(),e.createElementBlock("div",jf,[e.createElementVNode("div",Uf,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":V[0]||(V[0]=S=>c.value=S),placeholder:y.value,disabled:h.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white border rounded-md placeholder:text-gray-400 focus:ring-2 focus:ring-blue-500",[e.unref(a),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(v,["prevent"]),["enter"])},null,42,Hf),[[e.vModelText,c.value]]),d.value.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-blue-600",onClick:N,title:"Show search results"},[e.createVNode(e.unref(J.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:_,class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px]",disabled:i.value||!c.value?.trim()},[i.value?(e.openBlock(),e.createBlock(e.unref(J.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(J.Search),{key:0,class:"h-4 w-4"}))],8,qf),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[p.value?(e.openBlock(),e.createElementBlock("div",Kf,[e.createElementVNode("div",Wf,[e.createElementVNode("div",Gf,[V[2]||(V[2]=e.createElementVNode("span",null,"Результати пошуку",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-blue-600",onClick:V[1]||(V[1]=S=>p.value=!1),title:"Close"},[e.createVNode(e.unref(J.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(S,C)=>(e.openBlock(),e.createElementBlock("li",{key:C,onClick:T=>R(S),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(S.display_name),9,Yf))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Xf," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),Zf={class:"vs-datalist space-y-3"},Jf={class:"space-y-3"},Qf=["onClick","disabled"],eh={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},th=["disabled"],nh=Ve(e.defineComponent({__name:"vs-input-datalist",props:e.mergeModels({schema:{default:()=>[]},minItems:{default:0},maxItems:{default:void 0},addButtonText:{default:"Додати позицію"},emptyLabel:{default:"Немає рядків"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useModel(n,"modelValue"),r=e.computed(()=>Array.isArray(o.value)?o.value:[]),l=e.ref([]),a=e.computed(()=>t.schema?.map(b=>({...b,disabled:t.disabled||b.disabled}))??[]),s=e.computed(()=>a.value.map(b=>x(b))),c=e.computed(()=>a.value.reduce((E,v)=>{const _=Number(v?.col??12);return E+(Number.isFinite(_)&&_>0?_:12)},0)>12),i=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),d=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{p(),m()},{immediate:!0}),e.watch(()=>t.schema,m,{immediate:!0,deep:!0});function p(){const b=r.value.length;l.value.length<b?l.value=[...l.value,...Array.from({length:b-l.value.length},()=>mo())]:l.value.length>b&&l.value.splice(b)}function m(){if(!t.minItems||r.value.length>=t.minItems)return;const b=t.minItems-r.value.length,E=Array.from({length:b},y);o.value=[...r.value,...E]}function y(){const b={};return a.value.forEach(E=>{b[E.name]=E?.default??null}),b}function h(){i.value&&(o.value=[...r.value,y()],p())}function f(b){d.value||(o.value=r.value.filter((E,v)=>v!==b),p(),m())}function x(b){return{...b}}return(b,E)=>(e.openBlock(),e.createElementBlock("div",Zf,[e.createElementVNode("div",Jf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(v,_)=>(e.openBlock(),e.createElementBlock("div",{key:l.value[_],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":c.value}])},[e.createVNode(ct,{schema:s.value,layout:"inline",navigation:!1,values:r.value[_],"onUpdate:values":N=>r.value[_]=N,"form-id":l.value[_]},null,8,["schema","values","onUpdate:values","form-id"]),e.createElementVNode("button",{type:"button",class:"h-[38px] w-[38px] flex items-center justify-center text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",onClick:N=>f(_),disabled:d.value},[e.createVNode(e.unref(J.Trash2),{class:"h-4 w-4"})],8,Qf)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",eh,e.toDisplayString(t.emptyLabel),1)):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:h,disabled:!i.value},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,th)]))}}),[["__scopeId","data-v-8df8e72a"]]),oh={class:"vs-dataform space-y-4"},rh=["draggable","onDragstart","onDragover","onDragenter","onDrop"],lh={class:"flex items-center gap-2"},ah=["onClick"],sh={class:"text-sm font-medium text-gray-700"},ih={class:"flex items-center gap-2"},ch=["title","onClick","disabled"],dh=["title","onClick","disabled"],uh={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},ph=["disabled"],mh=Ve(e.defineComponent({__name:"vs-input-dataform",props:e.mergeModels({schema:{default:()=>[]},minGroups:{default:0},maxGroups:{default:void 0},addButtonText:{default:"Додати групу фільтрів"},groupLabel:{default:void 0},duplicateTitle:{default:"Дублювати групу"},removeTitle:{default:"Видалити групу"},emptyLabel:{},view:{default:"default"},collapsible:{type:Boolean,default:!1},draggable:{type:Boolean,default:!0},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref([]),l=e.ref([]),a=e.ref(0),s=e.ref(null),c=e.ref(null),i=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),p=e.computed(()=>t.emptyLabel??"Ще немає груп"),m=e.computed(()=>t.schema?.map(D=>({...D,disabled:t.disabled||D.disabled}))??[]),y=e.computed(()=>m.value.map(D=>S(D))),h=e.computed(()=>t.view==="accordion"),f=e.computed(()=>!!(t.collapsible||h.value)),x=e.computed(()=>t.draggable!==!1),b=e.computed(()=>t.disabled?!1:t.maxGroups?o.value.length<t.maxGroups:!0),E=e.computed(()=>t.disabled||o.value.length<=(t.minGroups||0));e.watch(()=>o.value.length,()=>{v(),_(),N()},{immediate:!0}),e.watch(()=>t.schema,N,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{_()},{immediate:!0});function v(){const D=o.value.length;r.value.length<D?r.value=[...r.value,...Array.from({length:D-r.value.length},()=>mo())]:r.value.length>D&&r.value.splice(D)}function _(){const D=o.value.length;h.value?D===0?a.value=-1:a.value>=D?a.value=D-1:a.value<0&&(a.value=0):l.value.length<D?l.value=[...l.value,...Array.from({length:D-l.value.length},()=>!1)]:l.value.length>D&&l.value.splice(D)}function N(){if(!t.minGroups||o.value.length>=t.minGroups)return;const D=t.minGroups-o.value.length,ie=Array.from({length:D},R);o.value=[...o.value,...ie],_()}function R(){const D={};return m.value.forEach(ie=>{D[ie.name]=ie?.default??null}),D}function ee(){b.value&&(o.value=[...o.value,R()],v(),_())}function j(D){E.value||(o.value=o.value.filter((ie,ce)=>ce!==D),v(),h.value?a.value>=o.value.length&&(a.value=o.value.length-1):l.value.splice(D,1),N())}function V(D){if(t.disabled)return;const ie=JSON.parse(JSON.stringify(o.value[D]??{}));o.value=[...o.value.slice(0,D+1),ie,...o.value.slice(D+1)],v(),h.value?a.value>D&&(a.value+=1):l.value.splice(D+1,0,l.value[D]??!1)}function S(D){return{...D}}function C(D){return h.value?a.value===-1&&D===0?!1:a.value!==D:!!l.value[D]}function T(D){if(f.value){if(h.value){a.value=D;return}l.value[D]=!l.value[D]}}function H(D,ie){if(!x.value||t.disabled){ie.preventDefault();return}s.value=D,c.value=D,i.value={groups:JSON.parse(JSON.stringify(o.value)),keys:[...r.value],states:[...l.value]},ie.dataTransfer?.setData("text/plain",String(D)),ie.dataTransfer?.setDragImage?.(ie.currentTarget,0,0)}function oe(D,ie){!x.value||t.disabled||s.value!==null&&z(D,ie)}function A(D,ie){z(D,ie)}function L(D){!x.value||t.disabled||O()}function Z(){i.value&&I(),s.value=null,c.value=null,i.value=null}function W(D,ie){const ce=[...o.value],[te]=ce.splice(D,1);ce.splice(ie,0,te),o.value=ce;const fe=[...r.value],[_e]=fe.splice(D,1);if(fe.splice(ie,0,_e),r.value=fe,h.value)a.value===D&&(a.value=ie);else{const ke=[...l.value],[Ne]=ke.splice(D,1);ke.splice(ie,0,Ne),l.value=ke}}function I(){i.value&&(o.value=i.value.groups,r.value=i.value.keys,l.value=i.value.states,i.value=null,c.value=null)}function z(D,ie){if(s.value===null)return;const ce=G(D,ie);c.value=ce,$(ce)}function G(D,ie){if(!ie?.currentTarget)return D;const ce=ie.currentTarget.getBoundingClientRect(),fe=ie.clientY-ce.top>ce.height/2?D+1:D;return Math.max(0,Math.min(fe,o.value.length))}function $(D){const ie=s.value;if(ie===null)return;let ce=D;if(ce>o.value.length&&(ce=o.value.length),ce===ie||ce===ie+1)return;const te=ce>ie?ce-1:ce;W(ie,te),s.value=te,c.value=ce>ie?te+1:te}function O(){i.value=null,s.value=null,c.value=null}return(D,ie)=>(e.openBlock(),e.createElementBlock("div",oh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,(ce,te)=>(e.openBlock(),e.createElementBlock("div",{key:r.value[te],class:e.normalizeClass(["relative border border-gray-200 rounded-lg bg-white transition vs-dataform__group",[t.view==="accordion"?"overflow-hidden":C(te)?"pt-6 px-6":"p-6"]]),draggable:x.value&&!t.disabled,onDragstart:fe=>H(te,fe),onDragend:Z,onDragover:e.withModifiers(fe=>oe(te,fe),["prevent"]),onDragenter:e.withModifiers(fe=>A(te,fe),["prevent"]),onDrop:e.withModifiers(fe=>L(),["prevent"])},[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center justify-between gap-2 border-b border-gray-100 px-4 py-3",[t.view!=="accordion"?"-mx-6 -mt-6 px-6":"",t.view!=="accordion"&&!C(te)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",lh,[x.value?(e.openBlock(),e.createBlock(e.unref(J.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:fe=>T(te)},[e.createVNode(e.unref(J.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",C(te)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,ah)):e.createCommentVNode("",!0),e.createElementVNode("div",sh,e.toDisplayString(`${d.value} (${te+1})`),1)]),e.createElementVNode("div",ih,[e.createElementVNode("button",{type:"button",class:"p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",title:t.duplicateTitle,onClick:fe=>V(te),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(J.Copy),{class:"h-4 w-4"})],8,ch),e.createElementVNode("button",{type:"button",class:"p-2 text-gray-400 hover:text-gray-600 hover:bg-gray-50 rounded-lg transition-all disabled:opacity-40",title:t.removeTitle,onClick:fe=>j(te),disabled:E.value,draggable:"false"},[e.createVNode(e.unref(J.Trash2),{class:"h-4 w-4"})],8,dh)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(ct,{class:"vs-dataform__form",schema:y.value,layout:"inline",navigation:!1,values:o.value[te],"onUpdate:values":fe=>o.value[te]=fe,"form-id":r.value[te],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!C(te)]])],42,rh))),128)),o.value.length===0?(e.openBlock(),e.createElementBlock("div",uh,e.toDisplayString(p.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:ee,disabled:!b.value},[e.createVNode(e.unref(J.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,ph)]))}}),[["__scopeId","data-v-accd044e"]]),zn="__vs_form_monaco_loader__",Ut="__vs_form_monaco_script_loader__",jn="__vs_form_monaco_editor_loader__",yo=e.defineComponent({__name:"vs-input-monaco",props:e.mergeModels({syntax:{default:"xml"},theme:{default:"vs-light"},height:{default:280},minimap:{type:Boolean,default:!1},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n,{expose:t}){const o=n,r=e.useModel(n,"modelValue"),l=e.ref(null),a=e.computed(()=>typeof o.height=="number"?`${o.height}px`:o.height||"280px");let s=null,c=null,i=!1;const d=()=>{if(c)return Promise.resolve(c);if(typeof window>"u")return Promise.resolve(null);const f=window;if(f.monaco?.editor?.create)return c=f.monaco,Promise.resolve(c);if(f[zn])return f[zn];const b=(async()=>{const E=N=>{if(Array.from(document.styleSheets||[]).some(j=>j?.href?.includes(N)))return;const ee=document.createElement("link");ee.rel="stylesheet",ee.href=N,document.head.appendChild(ee)},v=N=>{if(f[Ut]?.[N])return f[Ut][N];f[Ut]||={};const R=Array.from(document.scripts).find(ee=>ee.src===N);return R?(f[Ut][N]=new Promise((ee,j)=>{const V=R.readyState;if(R.dataset.loaded==="true"||V==="loaded"||V==="complete"){ee();return}R.addEventListener("load",()=>{R.dataset.loaded="true",ee()},{once:!0}),R.addEventListener("error",S=>j(S),{once:!0})}),f[Ut][N]):(f[Ut][N]=new Promise((ee,j)=>{const V=document.createElement("script");V.src=N,V.async=!0,V.onload=()=>{V.dataset.loaded="true",ee()},V.onerror=S=>j(S),document.body.appendChild(V)}),f[Ut][N])},_="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return E(`${_}/editor/editor.main.min.css`),await v(`${_}/loader.min.js`),f[jn]||(f[jn]=new Promise((N,R)=>{window.require.config({paths:{vs:_}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,f.monaco=c,N(c)},ee=>R(ee))}).catch(N=>{throw delete f[jn],N})),f[jn]})().catch(E=>{throw delete f[zn],E});return f[zn]=b,b},p=()=>{!l.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(l.value,{value:r.value||"",language:o.syntax,theme:o.theme,automaticLayout:!0,minimap:{enabled:!!o.minimap},readOnly:!!o.disabled}),s.onDidChangeModelContent(()=>{i||(r.value=s.getValue())}))},m=()=>{s?.focus()},y=()=>s,h=()=>c;return e.watch(()=>r.value,f=>{if(!s)return;const x=s.getValue();f!==x&&(i=!0,s.setValue(f||""),i=!1)}),e.watch(()=>o.syntax,f=>{!s||!c||c.editor.setModelLanguage(s.getModel(),f||"xml")}),e.watch(()=>o.theme,f=>{c&&c.editor.setTheme(f||"vs-light")}),e.watch(()=>o.disabled,f=>{s&&s.updateOptions({readOnly:!!f})}),e.watch(()=>o.minimap,f=>{s&&s.updateOptions({minimap:{enabled:!!f}})}),e.onMounted(async()=>{try{const f=await d();if(!f||!f.editor)return;c=f,p()}catch(f){console.error("Failed to load Monaco editor",f)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:m,getEditor:y,getMonaco:h}),(f,x)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:a.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:l,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),Rr={VsInputText:qt,VsInputRadio:lo,VsInputInlineSelect:Fn,"vs-input-text":qt,"vs-input-password":ia,"vs-input-textarea":br,"vs-input-richtext":kr,"vs-input-mask":wn,"vs-input-number":Ko,"vs-input-radio":lo,"vs-input-select":po,"vs-input-inline-select":Fn,"inline-select":Fn,"vs-input-switcher":to,"vs-input-static":no,"vs-input-container":hr,"vs-input-date":or,"vs-input-checkbox":Yo,"vs-input-file":pr,"vs-input-file2":Nn,file2:Nn,File2:Nn,"vs-input-html":no,"vs-input-email":oo,"vs-input-tel":ro,"vs-input-datatable":xr,"vs-input-map":Ar,"vs-input-file-list":mr,"vs-input-tags":Nr,"vs-input-slug":Mr,"vs-input-codegen":Fr,"vs-input-key-value":Dr,"vs-input-text[]":Tr,"vs-input-range":Ir,"vs-input-color":Lr,"vs-input-native-select":po,VsInputArraySelect:Rn,"vs-input-array":Or,"vs-input-array-select":Rn,"array-select":Rn,"vs-input-address":Pr,"vs-input-datalist":nh,"vs-input-dataform":mh,"vs-input-monaco":yo},fh=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(n){const t=n,o=e.inject("values");async function r(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),a=await fetch(l);if(!a.ok){be.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const s=await a.json();if(!t.set||!o)return;for(const[c,i]of Object.entries(t.set))o.value[c]=s.result[i]}catch(l){console.error(t.error,l)}}return(l,a)=>(e.openBlock(),e.createElementBlock("button",{onClick:r,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(n.button),1))}}),hh={class:"flex flex-col gap-1 w-full"},gh={class:"w-full"},yh=["disabled"],bh=["innerHTML"],kh=2e3,xh=10,zr=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]},columns:{default:()=>({container:12,label:3})}},{modelValue:{default:null},modelModifiers:{}}),emits:e.mergeModels(["value-selected"],["update:modelValue"]),setup(n,{emit:t}){const o=n,r=e.useModel(n,"modelValue"),l=t,a=e.computed(()=>aa[`${o.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(H()),i=e.computed(()=>S(o.item,c.value)),d=e.computed(()=>{const A={...i.value??{}},L=o.item?.name;return L&&m?.value?.[L]&&Object.assign(A,m.value[L]),A.__locale=c.value,A}),p=e.computed(()=>Rr?.[`vs-input-${o.item.type}`]),m=e.inject("field-props"),y=e.computed(()=>{const A=e.unref(p);if(!A)return new Set;const L=A.props??A.__vccOpts?.props;if(!L)return new Set;const Z=Array.isArray(L)?L:Object.keys(L);return new Set(Z)}),f=[...["min","max","step"],"api","set","mask","layers"],x=new Set(["name","type","label","ua","col","rules","validators","conditions","schema","hidden","behavior","default","columns","layout","multiple","data","info","description","text","html","view","groupLabel","emptyLabel","minGroups","maxGroups","collapsible","draggable","props","__locale","slot","slots","component"]);function b(A){const L={};Object.entries(A).forEach(([W,I])=>{x.has(W)||W.includes(":")||I!==void 0&&(L[W]=I)});const Z=A.props;return Z&&typeof Z=="object"&&!Array.isArray(Z)&&Object.entries(Z).forEach(([W,I])=>{I!==void 0&&(L[W]=I)}),L}const E=e.computed(()=>{const A={...i.value??{}},L=o.item?.name;L&&m?.value?.[L]&&Object.assign(A,m.value[L]);const Z=y.value;let W;return Z.size?W=Object.fromEntries(Object.entries(A).filter(([I])=>Z.has(I))):W={...A},Object.assign(W,b(A)),f.forEach(I=>{const z=A[I];z!=null&&(W[I]=z)}),W}),v=A=>{const L=typeof A=="object"&&A!==null?A:{value:A};l("value-selected",{...L,name:L.name??o.item?.name})},_=/{{\s*([^}]+?)\s*}}/g,N=e.inject("values"),R=e.ref(!1),ee=e.computed(()=>{const A=o.item?.api,L=o.item?.type?.toLowerCase();return typeof A=="string"&&A.trim().length>0&&(L==="text"||L==="mask")});function j(A,L){if(!(A==null||!L))return L.split(".").reduce((Z,W)=>Z?.[W.trim()],A)}async function V(){const A=String(r.value??"").trim();if(!A)return;const L=(o.item?.api??"").trim();if(!L)return;const Z=L.replace(_,(W,I)=>I.trim()==="value"?encodeURIComponent(A):"");R.value=!0;try{let W=await fetch(Z),I=0;for(;W.status===202&&I<xh;)I+=1,await new Promise(D=>{setTimeout(D,kh)}),W=await fetch(Z);if(W.status===202){be.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!W.ok){be.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const z=await W.json(),G=z?.result!==void 0?z.result:z,$=o.item?.set;if(!$||!N?.value)return;const O=o.item?.name;Object.entries($).forEach(([D,ie])=>{if(!D)return;let ce=ie;O&&ce.startsWith(`${O}.`)&&(ce=ce.slice(O.length+1));const te=j(G,ce);N.value[D]=te??null})}catch(W){console.error("API lookup error:",W),be.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{R.value=!1}}e.onMounted(()=>{c.value=H(),window.addEventListener("storage",oe)}),e.onUnmounted(()=>{window.removeEventListener("storage",oe)});function S(A,L){if(!A)return{};const Z={...A};return s.forEach(W=>{const I=T(A,W,L);I!=null&&(Z[W]=I)}),Array.isArray(A.options)&&(Z.options=A.options.map(W=>C(W,L))),Z}function C(A,L){if(!A)return A;const Z={...A},W=T(A,"label",L),I=T(A,"text",L);return W!=null&&(Z.label=W),I!=null?Z.text=I:W!=null&&(Z.text=W),Z}function T(A,L,Z){const W=`${L}:${Z}`;if(A?.[W]!=null)return A[W];if(L==="label"&&A?.[Z]!=null)return A[Z];if(A?.[L]!=null)return A[L];if(L==="label"){if(A?.ua!=null)return A.ua;if(A?.en!=null)return A.en}if(L==="text"||L==="html"){if(A?.ua!=null)return A.ua;if(A?.en!=null)return A.en}return null}function H(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function oe(){c.value=H()}return(A,L)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(a.value),{ua:d.value.ua,error:o.error||"",item:d.value,columns:o.columns,label:d.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${o.item.type}-component`])},[e.createElementVNode("div",hh,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":ee.value}])},[e.createElementVNode("div",gh,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value),e.mergeProps(E.value,{modelValue:r.value,"onUpdate:modelValue":L[0]||(L[0]=Z=>r.value=Z),onValueSelected:v}),null,16,["modelValue"]))]),ee.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px] shrink-0",disabled:R.value||!r.value?.toString().trim(),onClick:V},[R.value?(e.openBlock(),e.createBlock(e.unref(J.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(J.Search),{key:0,class:"h-4 w-4"}))],8,yh)):e.createCommentVNode("",!0)],2),d.value.description&&o.layout!=="settings"?(e.openBlock(),e.createElementBlock("p",{key:0,class:"text-sm text-gray-500",innerHTML:d.value.description},null,8,bh)):e.createCommentVNode("",!0)]),d.value.behavior?.api&&d.value.behavior?.button?(e.openBlock(),e.createBlock(fh,e.mergeProps({key:0},d.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),wh={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},vh={class:"vs-compact-form-navigation__rail mt-[6px]"},Ch=["onClick"],Eh=Ve(e.defineComponent({__name:"vs-compact-form-navigation",props:{target:{},scrollContainer:{},title:{default:"Навігація"},enabled:{type:Boolean,default:!0},width:{default:400}},setup(n,{expose:t}){const o=n,r=e.ref([]),l=e.ref(""),a=e.ref(""),s=e.computed(()=>!!o.enabled),c=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),i=e.computed(()=>{const T=o.width;if(T==null)return{};const H=typeof T=="number"?`${T}px`:`${T}`;return{width:H,minWidth:H}});let d=null,p=0,m=0,y=null,h=null,f=null;const x=()=>S(),b=()=>v();e.watch(()=>o.target,async T=>{if(ee(),!T){y=null,r.value=[],l.value="";return}y=T,s.value&&(await e.nextTick(),R(T),v())},{immediate:!0}),e.watch(()=>o.scrollContainer,T=>{if(!s.value){h=T??null;return}E(T??null),e.nextTick(()=>v())},{immediate:!0}),e.onMounted(()=>{o.scrollContainer||E(null),v()}),e.onBeforeUnmount(()=>{ee(),E(null,!0),y=null,typeof window<"u"&&(p&&window.cancelAnimationFrame(p),m&&window.cancelAnimationFrame(m))});function E(T,H=!1){if(f&&(f(),f=null),H){h=null;return}if(h=T??null,typeof window>"u")return;const oe=T??window,A=window;oe.addEventListener("scroll",x,{passive:!0}),A.addEventListener("resize",b),f=()=>{oe.removeEventListener("scroll",x),A.removeEventListener("resize",b)}}function v(){if(!s.value||!y)return;p&&typeof window<"u"&&window.cancelAnimationFrame(p);const T=()=>{_(),p=0};typeof window>"u"?T():p=window.requestAnimationFrame(T)}function _(){if(!s.value||!y)return;const T=Array.from(y.querySelectorAll("h1, h2")),H=new Set,oe=[];T.forEach((A,L)=>{const Z=A.textContent?.trim()??"";if(!Z)return;let W=(A.getAttribute("id")??"").trim();W||(W=N(Z)||`heading-${L+1}`);let I=W,z=1;for(;H.has(I);)I=`${W}-${z+=1}`;A.id!==I&&Object.assign(A,{id:I}),H.add(I),oe.push({id:I,text:Z,level:A.tagName.toLowerCase()==="h1"?1:2})}),r.value=oe,oe.length||(l.value=""),V()}function N(T){return T.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function R(T){!T||!s.value||typeof MutationObserver>"u"||(ee(),d=new MutationObserver(()=>v()),d.observe(T,{childList:!0,subtree:!0}))}function ee(){d&&(d.disconnect(),d=null)}function j(T){const H=h;if(!H)return typeof window>"u"?T.offsetTop:T.getBoundingClientRect().top+window.scrollY;const oe=T.getBoundingClientRect(),A=H.getBoundingClientRect();return oe.top-A.top+H.scrollTop}function V(){if(!s.value||!r.value.length)return;const T=h,H=(T?T.scrollTop:null)||(typeof window<"u"?window.scrollY:0),oe=(T?T.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),A=H+oe;let L=null;for(let W=0;W<r.value.length;W+=1){const I=r.value[W],z=document.getElementById(I.id);if(z){const G=j(z);G+z.offsetHeight>H&&G<A&&(L=I.id)}}!L&&a.value&&(L=a.value),L&&(a.value=L);const Z=T?T.scrollHeight-T.clientHeight:document.documentElement.scrollHeight-window.innerHeight;H+5>=Z&&(L=r.value[r.value.length-1].id),L&&(l.value=L)}function S(){s.value&&(m&&window.cancelAnimationFrame(m),m=window.requestAnimationFrame(()=>{V(),m=0}))}function C(T){if(!s.value)return;const H=document.getElementById(T);if(!H)return;const oe=h,A=Math.max(0,j(H));oe?oe.scrollTo({top:A,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:A,behavior:"smooth"})}return t({refresh:v}),(T,H)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",wh,e.toDisplayString(n.title),1),e.createElementVNode("div",vh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,oe=>(e.openBlock(),e.createElementBlock("div",{key:oe.id,class:e.normalizeClass(["vs-compact-form-navigation__item relative",oe.level===2?"vs-compact-form-navigation__item--nested":"",oe.id===l.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:A=>C(oe.id),class:e.normalizeClass(["vs-compact-form-navigation__button flex gap-x-3 py-[6px] pr-3 text-sm duration-200 hover:text-gray-800",oe.level===2?"pl-[15px]":"pl-[18px]",oe.id===l.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(oe.text),1)],10,Ch)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-b3e16a91"]]),ht={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:n=>`Мінімальна довжина — ${n} символів`,maxlength:n=>`Максимальна довжина — ${n} символів`,min:n=>`Значення має бути не менше ${n}`,max:n=>`Значення має бути не більше ${n}`},_h=n=>typeof n=="string"?n.trim()?!1:ht.required:Array.isArray(n)?n.map(o=>typeof o=="string"?o.trim():o).filter(o=>o!=null&&o!=="").length?!1:ht.required:typeof n=="number"?Number?.isNaN(n)?ht?.required:!1:n?!1:ht.required,Bh=n=>{const t=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;return n?t.test(n)?!1:ht.email:!1},Vh=(n,t)=>{if(!n)return!1;const o=String(n).trim();if(!/^\+[1-9]\d{1,14}$/.test(o))return ht.tel;const a=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:Mt(Ct))||Mt(Ct);return o.length-1!==a?ht.tel:!1},jr=n=>n==null?0:typeof n=="string"?n.trim().length:Array.isArray(n)?n.length:typeof n=="number"?n.toString().length:String(n).length,Sh=(n,t)=>{if(n==null)return!1;const o=Number(t?.value??t?.length);return Number.isFinite(o)&&jr(n)<o?t?.message||ht.minlength(o):!1},$h=(n,t)=>{if(n==null||n==="")return!1;const o=Number(t?.value??t?.length);return Number.isFinite(o)&&jr(n)>o?t?.message||ht.maxlength(o):!1},Ur=n=>{if(typeof n=="number")return n;if(typeof n=="string"){const t=n.trim().replace(",",".");return t?Number(t):Number.NaN}return Number(n)},Ah=(n,t)=>{if(n==null||n==="")return!1;const o=Number(t?.value);if(!Number.isFinite(o))return!1;const r=Ur(n);return Number.isFinite(r)&&r<o?t?.message||ht.min(o):!1},Nh=(n,t)=>{if(n==null||n==="")return!1;const o=Number(t?.value);if(!Number.isFinite(o))return!1;const r=Ur(n);return Number.isFinite(r)&&r>o?t?.message||ht.max(o):!1},Mh=(n,t)=>{const o=t.pattern??t.regexp,r=typeof o=="string"?new RegExp(o):o;if(Array.isArray(n)){const l=n.filter(Boolean);return l.length===0||l.every(a=>r.test(a))?!1:t.message}return!r.test(n)&&n?t.message:!1},Fh=(n,t)=>!1,Dh=(n,t)=>{switch(typeof t=="string"?t:t.type){case"required":return _h(n);case"email":return Bh(n);case"tel":return Vh(n,typeof t=="object"?t:void 0);case"regexp":return Mh(n,t);case"minlength":return Sh(n,t);case"maxlength":return $h(n,t);case"min":return Ah(n,t);case"max":return Nh(n,t);case"custom":return Fh();default:return!1}},Th={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",dropzone:"file",inlineselect:"inline-select"};function Hr(n){const t=n?.toLowerCase();return Th[t]||t}function bo(n,t=!1){if(Array.isArray(n)){const r=[];return n.forEach(l=>{const a={...l};if(a.name=(l.name||l.id||l.key||"").toString(),a.type=Hr(l.type),a.label=l.label||l.ua,a.rules=l.rules||l.validators,a.type==="email"&&!a.rules&&(a.rules=["email"]),a.type==="tel"&&!a.rules){const s=a.mask||Ct,c=Mt(s)||Mt(Ct);a.rules=[{type:"tel",digits:c}]}l.data&&(a.api=`/api/suggest/${l.data}`),a.disabled=a.disabled??t,Array.isArray(a.schema)&&(a.schema=bo(a.schema,a.disabled)),r.push(a)}),r}const o=[];return Object.entries(n).forEach(r=>{const l={name:r[0],...r[1],type:Hr(r[1].type),label:r[1].label||r[1].ua,rules:r[1].rules||r[1].validators,disabled:r[1].disabled??t};if(l.type==="email"&&!l.rules&&(l.rules=["email"]),l.type==="tel"&&!l.rules){const a=l.mask||Ct,s=Mt(a)||Mt(Ct);l.rules=[{type:"tel",digits:s}]}r[1].type?.includes("list")&&(l.multiple=!0),!l.api&&r[1].data&&(l.api=`/api/suggest/${r[1].data}`),Array.isArray(l.schema)&&(l.schema=bo(l.schema,l.disabled)),o.push(l)}),o}function Lh(n,t,o=!1){const r=e.computed(()=>bo((Array.isArray(t),t),typeof o=="boolean"?o:o.value)),l=e.ref({});function a(d){return fr(n?.value,d?.conditions)}const s=(d=r.value,p=!0)=>(d.forEach(m=>{const y=[],h=Number(m?.minlength),f=Number(m?.maxlength),x=Number(m?.min),b=Number(m?.max);!Number.isNaN(h)&&Number.isFinite(h)&&y.push({type:"minlength",value:h}),!Number.isNaN(f)&&Number.isFinite(f)&&y.push({type:"maxlength",value:f}),!Number.isNaN(x)&&Number.isFinite(x)&&y.push({type:"min",value:x}),!Number.isNaN(b)&&Number.isFinite(b)&&y.push({type:"max",value:b});const E=[...y,...m.rules||[]];if(E.length){if(!a(m)){delete l.value[m.name];return}let v=!1,_=null;E.forEach(N=>{const R=Dh(n.value[m.name],N);R&&(v=!0,!_&&typeof R=="string"&&(_=R))}),v&&_?l.value[m.name]=_:delete l.value[m.name]}m.schema&&s(m.schema,!1)}),p&&Object.values(l.value).some(Boolean)?l.value:null),c=e.computed(()=>r.value?.filter(d=>d.hidden!==!0&&a(d)));return{errors:l,validate:s,reset:()=>{n.value={},l.value={}},visibleSchema:c}}const Ih={class:"flex w-full h-full min-h-0 gap-6"},Oh={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},ct=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},allowIdField:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(n,{expose:t,emit:o}){const r=o,l=n,a=e.computed(()=>!!l.formId||l.allowIdField),s=e.useModel(n,"form"),c=e.useModel(n,"modelValue"),i=e.useModel(n,"values"),d=e.computed({get:()=>i.value??c.value,set:Z=>{c.value=Z,i.value=Z}}),{errors:p,validate:m,reset:y,visibleSchema:h}=Lh(d,l.schema,e.toRef(l,"disabled")),f=e.ref(null),x=e.ref(null),b=e.ref({}),E=e.computed(()=>l.navigation),v=e.computed(()=>l.navWidth),_=e.computed(()=>l.style?.columns),N=Object.freeze({container:12,label:3}),R=e.computed(()=>l.columns??_.value??N),ee=e.computed(()=>l.columns!=null||_.value!=null),j=e.computed(()=>ee.value?"horizontal":l.layout),V=Z=>Z?.columns?"horizontal":j.value,S=Z=>Z?.columns??R.value,C=e.computed(()=>{const Z={},W=I=>{if(!I)return;(Array.isArray(I)?I.map((G,$)=>({key:String($),entry:G})):typeof I=="object"?Object.entries(I).map(([G,$])=>({key:G,entry:$})):[]).forEach(({key:G,entry:$})=>{if(!$||typeof $!="object")return;const O=$.name?String($.name):G;O&&(Z[O]={...$,name:O}),Array.isArray($.schema)&&W($.schema)})};return W(l.schema),Z}),T=()=>{!a.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),m(),r("handle-submit",d.value)},H=Z=>{r("value-selected",Z)};t({validate:m,reset:y,errors:p}),e.onMounted(()=>{s.value={value:d.value,errors:p.value,reset:y,validate:m,formId:l.formId}});function oe(Z,W){if(Z===W)return!0;if(typeof Z!="object"||typeof W!="object"||!Z||!W)return!1;const I=Object.keys(Z),z=Object.keys(W);return I.length!==z.length?!1:I.every(G=>Z[G]===W[G])}function A(Z){return Array.isArray(Z)?[...Z]:Z&&typeof Z=="object"?{...Z}:Z}function L(Z){Array.isArray(Z)&&Z.forEach(W=>{if(!W)return;const I=W.name,z=W.default!==void 0;I&&z&&d.value[I]===void 0&&(d.value[I]=A(W.default)),Array.isArray(W.schema)&&L(W.schema)})}return e.watch(h,Z=>{L(Z)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.provide("field-props",b),e.provide("schema-by-name",C),(Z,W)=>(e.openBlock(),e.createElementBlock("div",Ih,[e.createElementVNode("div",{class:"flex-1 min-h-0 overflow-y-auto overflow-x-visible",ref_key:"formScrollContainer",ref:x},[e.createElementVNode("form",{ref_key:"formRef",ref:f,onSubmit:e.withModifiers(T,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",j.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(h),(I,z)=>(e.openBlock(),e.createElementBlock("div",{key:I.name,class:e.normalizeClass(V(I)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${I.col||12}`)},[e.createVNode(zr,{style:e.normalizeStyle(n.style),item:I,layout:V(I),columns:S(I),"model-value":d.value[I.name],"onUpdate:modelValue":G=>{if(I.name==="id"&&!a.value)return;const $=d.value[I.name];oe($,G)||(d.value[I.name]=G)},error:e.unref(p)[I.name],onValueSelected:H},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),V(I)==="settings"&&z+1!==e.unref(h).length?(e.openBlock(),e.createElementBlock("div",Oh)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(Eh,{target:f.value,"scroll-container":x.value,enabled:E.value,width:v.value},null,8,["target","scroll-container","enabled","width"])]))}}),Ph={class:"relative"},Rh={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},zh={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"},jh={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Uh={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Hh={class:"p-4 mim-h-0 h-full overflow-auto"},qr=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(n,{emit:t}){const o=n,r=t,l=e.ref(o.schema),a=e.ref(o.defaultValue?JSON.parse(JSON.stringify(o.defaultValue)):{}),s=e.ref({}),c=e.ref(o.token||""),i=e.ref(o.token||""),d=e.ref(o.mode),p=()=>{const b=o.method?.trim().toUpperCase();return b==="GET"||b==="POST"||b==="PUT"?b:d.value==="add"?"POST":"PUT"},m=()=>{be.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},y=b=>{const E={};b.id!==void 0&&b.id!==null&&(E.id=b.id,i.value=b.id.toString()),b.obj&&typeof b.obj=="object"&&Object.assign(E,b.obj),Object.keys(E).length&&(a.value={...a.value,...E})},h=async b=>{if(console.log(b),b.ok){await b.json().catch(()=>({})),m(),r("save",a.value);return}const E=await b.json().catch(()=>({})),v=E.message||E.error;if(b.status===400){be.notify({type:"warning",title:"Помилка валідації",message:v||"Некоректні дані (400)"});return}if(b.status===500){be.notify({type:"error",title:"Серверна помилка",message:v||"Виникла помилка на сервері (500)"});return}be.notify({type:"error",title:"Помилка",message:`Статус: ${b.status}`})};async function f(){const b=s.value.validate();if(b){be.notify({type:"warning",title:"Помилка валідації",message:Object.entries(b).map(([v,_])=>`${v}: ${_}`).join(`
|
|
5
|
+
`)});return}d.value==="add"&&a.value&&delete a.value.id;const E=o.api?.trim();if(E){const v=p();try{const _=await fetch(E,{method:v,headers:v==="GET"?void 0:{"Content-Type":"application/json"},body:v==="GET"?void 0:JSON.stringify(a.value)});await h(_)}catch(_){be.notify({type:"error",title:"Помилка з’єднання",message:_.message||"Не вдалося виконати запит"})}return}if(c.value)try{const v=await fetch(`/api/table/${c.value}`,{method:d.value==="add"?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a.value)});await h(v)}catch(v){be.notify({type:"error",title:"Помилка з’єднання",message:v.message||"Не вдалося виконати запит"})}else r("edit",a.value),x()}function x(){r("close")}return e.onMounted(async()=>{try{if(o.form&&!o.schema){const b=await fetch(`/api/template/form/${o.form}`);if(!b.ok){be.notify({type:b.status>=400&&b.status<500?"warning":"error",title:"Error",message:`Error code: ${b.status}`});return}const E=await b.json();l.value=E.schema,E.id&&(i.value=E.id),E.token&&(c.value=E.token,i.value||(i.value=E.token))}else if(o.token&&!o.defaultValue){c.value=o.token;const b=await fetch(`/api/form/${c.value}`);if(!b.ok){be.notify({type:b.status>=400&&b.status<500?"warning":"error",title:"Error",message:`Error code: ${b.status}`});return}const E=await b.json();l.value=E.schema,E.data?a.value=E.data:d.value="add",y({id:E.id,obj:E.obj})}}catch(b){be.notify({type:"error",title:"Error",message:b.message||"Unexpected error"}),console.error(b)}}),(b,E)=>(e.openBlock(),e.createElementBlock("div",Ph,[e.createElementVNode("div",Rh,[e.createElementVNode("div",zh,[e.createElementVNode("div",jh,[e.createElementVNode("h3",Uh,e.toDisplayString(d.value==="add"?"Додати":"Змінити"),1),e.createElementVNode("button",{onClick:x,type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600"},[E[2]||(E[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(e.unref(J.X),{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",Hh,[l.value?(e.openBlock(),e.createBlock(ct,{key:0,schema:l.value,values:a.value,"onUpdate:values":E[0]||(E[0]=v=>a.value=v),form:s.value,"onUpdate:form":E[1]||(E[1]=v=>s.value=v),formId:i.value},null,8,["schema","values","form","formId"])):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:"vs-form__head mr-5 mb-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},[e.createElementVNode("button",{type:"button",onClick:x,class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-red-500 hover:border-red-500 hover:bg-red-500 focus:ring-red-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 mr-2"}," Скасувати "),e.createElementVNode("button",{onClick:f,type:"button",class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"}," Зберегти ")])])])]))}}),Kr=Jn.form.richtext,Wr=Qn.form.richtext,ko={en:{form:{richtext:Kr}},uk:{form:{richtext:Wr}}},Gr=(n={mode:"edit",schema:null})=>new Promise(t=>{const{close:o}=be.modal({title:n.mode==="add"?"Додати":"Редагувати",template:"",visible:!0,size:"medium",closeClickBack:!0,content:qr,contentProps:{...n,onClose:()=>{t(null),o()},onSave:r=>{t(r),o()}}})});ct.install=function(t){t.component("VForm",ct),Object.assign(t.config.globalProperties,{$form:Gr}),t.provide("form",Gr),window.v3plugin||(window.v3plugin={})};function Ft(n){return typeof n=="string"||n instanceof String}function Yr(n){var t;return typeof n=="object"&&n!=null&&(n==null||(t=n.constructor)==null?void 0:t.name)==="Object"}function Xr(n,t){return Array.isArray(t)?Xr(n,(o,r)=>t.includes(r)):Object.entries(n).reduce((o,r)=>{let[l,a]=r;return t(a,l)&&(o[l]=a),o},{})}const ye={NONE:"NONE",LEFT:"LEFT",FORCE_LEFT:"FORCE_LEFT",RIGHT:"RIGHT",FORCE_RIGHT:"FORCE_RIGHT"};function Zr(n){switch(n){case ye.LEFT:return ye.FORCE_LEFT;case ye.RIGHT:return ye.FORCE_RIGHT;default:return n}}function xo(n){return n.replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1")}function Un(n,t){if(t===n)return!0;const o=Array.isArray(t),r=Array.isArray(n);let l;if(o&&r){if(t.length!=n.length)return!1;for(l=0;l<t.length;l++)if(!Un(t[l],n[l]))return!1;return!0}if(o!=r)return!1;if(t&&n&&typeof t=="object"&&typeof n=="object"){const a=t instanceof Date,s=n instanceof Date;if(a&&s)return t.getTime()==n.getTime();if(a!=s)return!1;const c=t instanceof RegExp,i=n instanceof RegExp;if(c&&i)return t.toString()==n.toString();if(c!=i)return!1;const d=Object.keys(t);for(l=0;l<d.length;l++)if(!Object.prototype.hasOwnProperty.call(n,d[l]))return!1;for(l=0;l<d.length;l++)if(!Un(n[d[l]],t[d[l]]))return!1;return!0}else if(t&&n&&typeof t=="function"&&typeof n=="function")return t.toString()===n.toString();return!1}class qh{constructor(t){for(Object.assign(this,t);this.value.slice(0,this.startChangePos)!==this.oldValue.slice(0,this.startChangePos);)--this.oldSelection.start;if(this.insertedCount)for(;this.value.slice(this.cursorPos)!==this.oldValue.slice(this.oldSelection.end);)this.value.length-this.cursorPos<this.oldValue.length-this.oldSelection.end?++this.oldSelection.end:++this.cursorPos}get startChangePos(){return Math.min(this.cursorPos,this.oldSelection.start)}get insertedCount(){return this.cursorPos-this.startChangePos}get inserted(){return this.value.substr(this.startChangePos,this.insertedCount)}get removedCount(){return Math.max(this.oldSelection.end-this.startChangePos||this.oldValue.length-this.value.length,0)}get removed(){return this.oldValue.substr(this.startChangePos,this.removedCount)}get head(){return this.value.substring(0,this.startChangePos)}get tail(){return this.value.substring(this.startChangePos+this.insertedCount)}get removeDirection(){return!this.removedCount||this.insertedCount?ye.NONE:(this.oldSelection.end===this.cursorPos||this.oldSelection.start===this.cursorPos)&&this.oldSelection.end===this.oldSelection.start?ye.RIGHT:ye.LEFT}}function Ee(n,t){return new Ee.InputMask(n,t)}function Jr(n){if(n==null)throw new Error("mask property should be defined");return n instanceof RegExp?Ee.MaskedRegExp:Ft(n)?Ee.MaskedPattern:n===Date?Ee.MaskedDate:n===Number?Ee.MaskedNumber:Array.isArray(n)||n===Array?Ee.MaskedDynamic:Ee.Masked&&n.prototype instanceof Ee.Masked?n:Ee.Masked&&n instanceof Ee.Masked?n.constructor:n instanceof Function?Ee.MaskedFunction:(console.warn("Mask not found for mask",n),Ee.Masked)}function Gt(n){if(!n)throw new Error("Options in not defined");if(Ee.Masked){if(n.prototype instanceof Ee.Masked)return{mask:n};const{mask:t=void 0,...o}=n instanceof Ee.Masked?{mask:n}:Yr(n)&&n.mask instanceof Ee.Masked?n:{};if(t){const r=t.mask;return{...Xr(t,(l,a)=>!a.startsWith("_")),mask:t.constructor,_mask:r,...o}}}return Yr(n)?{...n}:{mask:n}}function yt(n){if(Ee.Masked&&n instanceof Ee.Masked)return n;const t=Gt(n),o=Jr(t.mask);if(!o)throw new Error("Masked class is not found for provided mask "+t.mask+", appropriate module needs to be imported manually before creating mask.");return t.mask===o&&delete t.mask,t._mask&&(t.mask=t._mask,delete t._mask),new o(t)}Ee.createMask=yt;class Hn{get selectionStart(){let t;try{t=this._unsafeSelectionStart}catch{}return t??this.value.length}get selectionEnd(){let t;try{t=this._unsafeSelectionEnd}catch{}return t??this.value.length}select(t,o){if(!(t==null||o==null||t===this.selectionStart&&o===this.selectionEnd))try{this._unsafeSelect(t,o)}catch{}}get isActive(){return!1}}Ee.MaskElement=Hn;const Qr=90,Kh=89;class ln extends Hn{constructor(t){super(),this.input=t,this._onKeydown=this._onKeydown.bind(this),this._onInput=this._onInput.bind(this),this._onBeforeinput=this._onBeforeinput.bind(this),this._onCompositionEnd=this._onCompositionEnd.bind(this)}get rootElement(){var t,o,r;return(t=(o=(r=this.input).getRootNode)==null?void 0:o.call(r))!=null?t:document}get isActive(){return this.input===this.rootElement.activeElement}bindEvents(t){this.input.addEventListener("keydown",this._onKeydown),this.input.addEventListener("input",this._onInput),this.input.addEventListener("beforeinput",this._onBeforeinput),this.input.addEventListener("compositionend",this._onCompositionEnd),this.input.addEventListener("drop",t.drop),this.input.addEventListener("click",t.click),this.input.addEventListener("focus",t.focus),this.input.addEventListener("blur",t.commit),this._handlers=t}_onKeydown(t){if(this._handlers.redo&&(t.keyCode===Qr&&t.shiftKey&&(t.metaKey||t.ctrlKey)||t.keyCode===Kh&&t.ctrlKey))return t.preventDefault(),this._handlers.redo(t);if(this._handlers.undo&&t.keyCode===Qr&&(t.metaKey||t.ctrlKey))return t.preventDefault(),this._handlers.undo(t);t.isComposing||this._handlers.selectionChange(t)}_onBeforeinput(t){if(t.inputType==="historyUndo"&&this._handlers.undo)return t.preventDefault(),this._handlers.undo(t);if(t.inputType==="historyRedo"&&this._handlers.redo)return t.preventDefault(),this._handlers.redo(t)}_onCompositionEnd(t){this._handlers.input(t)}_onInput(t){t.isComposing||this._handlers.input(t)}unbindEvents(){this.input.removeEventListener("keydown",this._onKeydown),this.input.removeEventListener("input",this._onInput),this.input.removeEventListener("beforeinput",this._onBeforeinput),this.input.removeEventListener("compositionend",this._onCompositionEnd),this.input.removeEventListener("drop",this._handlers.drop),this.input.removeEventListener("click",this._handlers.click),this.input.removeEventListener("focus",this._handlers.focus),this.input.removeEventListener("blur",this._handlers.commit),this._handlers={}}}Ee.HTMLMaskElement=ln;class el extends ln{constructor(t){super(t),this.input=t}get _unsafeSelectionStart(){return this.input.selectionStart!=null?this.input.selectionStart:this.value.length}get _unsafeSelectionEnd(){return this.input.selectionEnd}_unsafeSelect(t,o){this.input.setSelectionRange(t,o)}get value(){return this.input.value}set value(t){this.input.value=t}}Ee.HTMLMaskElement=ln;class wo extends ln{get _unsafeSelectionStart(){const t=this.rootElement,o=t.getSelection&&t.getSelection(),r=o&&o.anchorOffset,l=o&&o.focusOffset;return l==null||r==null||r<l?r:l}get _unsafeSelectionEnd(){const t=this.rootElement,o=t.getSelection&&t.getSelection(),r=o&&o.anchorOffset,l=o&&o.focusOffset;return l==null||r==null||r>l?r:l}_unsafeSelect(t,o){if(!this.rootElement.createRange)return;const r=this.rootElement.createRange();r.setStart(this.input.firstChild||this.input,t),r.setEnd(this.input.lastChild||this.input,o);const l=this.rootElement,a=l.getSelection&&l.getSelection();a&&(a.removeAllRanges(),a.addRange(r))}get value(){return this.input.textContent||""}set value(t){this.input.textContent=t}}Ee.HTMLContenteditableMaskElement=wo;class qn{constructor(){this.states=[],this.currentIndex=0}get currentState(){return this.states[this.currentIndex]}get isEmpty(){return this.states.length===0}push(t){this.currentIndex<this.states.length-1&&(this.states.length=this.currentIndex+1),this.states.push(t),this.states.length>qn.MAX_LENGTH&&this.states.shift(),this.currentIndex=this.states.length-1}go(t){return this.currentIndex=Math.min(Math.max(this.currentIndex+t,0),this.states.length-1),this.currentState}undo(){return this.go(-1)}redo(){return this.go(1)}clear(){this.states.length=0,this.currentIndex=0}}qn.MAX_LENGTH=100;class tl{constructor(t,o){this.el=t instanceof Hn?t:t.isContentEditable&&t.tagName!=="INPUT"&&t.tagName!=="TEXTAREA"?new wo(t):new el(t),this.masked=yt(o),this._listeners={},this._value="",this._unmaskedValue="",this._rawInputValue="",this.history=new qn,this._saveSelection=this._saveSelection.bind(this),this._onInput=this._onInput.bind(this),this._onChange=this._onChange.bind(this),this._onDrop=this._onDrop.bind(this),this._onFocus=this._onFocus.bind(this),this._onClick=this._onClick.bind(this),this._onUndo=this._onUndo.bind(this),this._onRedo=this._onRedo.bind(this),this.alignCursor=this.alignCursor.bind(this),this.alignCursorFriendly=this.alignCursorFriendly.bind(this),this._bindEvents(),this.updateValue(),this._onChange()}maskEquals(t){var o;return t==null||((o=this.masked)==null?void 0:o.maskEquals(t))}get mask(){return this.masked.mask}set mask(t){if(this.maskEquals(t))return;if(!(t instanceof Ee.Masked)&&this.masked.constructor===Jr(t)){this.masked.updateOptions({mask:t});return}const o=t instanceof Ee.Masked?t:yt({mask:t});o.unmaskedValue=this.masked.unmaskedValue,this.masked=o}get value(){return this._value}set value(t){this.value!==t&&(this.masked.value=t,this.updateControl("auto"))}get unmaskedValue(){return this._unmaskedValue}set unmaskedValue(t){this.unmaskedValue!==t&&(this.masked.unmaskedValue=t,this.updateControl("auto"))}get rawInputValue(){return this._rawInputValue}set rawInputValue(t){this.rawInputValue!==t&&(this.masked.rawInputValue=t,this.updateControl(),this.alignCursor())}get typedValue(){return this.masked.typedValue}set typedValue(t){this.masked.typedValueEquals(t)||(this.masked.typedValue=t,this.updateControl("auto"))}get displayValue(){return this.masked.displayValue}_bindEvents(){this.el.bindEvents({selectionChange:this._saveSelection,input:this._onInput,drop:this._onDrop,click:this._onClick,focus:this._onFocus,commit:this._onChange,undo:this._onUndo,redo:this._onRedo})}_unbindEvents(){this.el&&this.el.unbindEvents()}_fireEvent(t,o){const r=this._listeners[t];r&&r.forEach(l=>l(o))}get selectionStart(){return this._cursorChanging?this._changingCursorPos:this.el.selectionStart}get cursorPos(){return this._cursorChanging?this._changingCursorPos:this.el.selectionEnd}set cursorPos(t){!this.el||!this.el.isActive||(this.el.select(t,t),this._saveSelection())}_saveSelection(){this.displayValue!==this.el.value&&console.warn("Element value was changed outside of mask. Syncronize mask using `mask.updateValue()` to work properly."),this._selection={start:this.selectionStart,end:this.cursorPos}}updateValue(){this.masked.value=this.el.value,this._value=this.masked.value,this._unmaskedValue=this.masked.unmaskedValue,this._rawInputValue=this.masked.rawInputValue}updateControl(t){const o=this.masked.unmaskedValue,r=this.masked.value,l=this.masked.rawInputValue,a=this.displayValue,s=this.unmaskedValue!==o||this.value!==r||this._rawInputValue!==l;this._unmaskedValue=o,this._value=r,this._rawInputValue=l,this.el.value!==a&&(this.el.value=a),t==="auto"?this.alignCursor():t!=null&&(this.cursorPos=t),s&&this._fireChangeEvents(),!this._historyChanging&&(s||this.history.isEmpty)&&this.history.push({unmaskedValue:o,selection:{start:this.selectionStart,end:this.cursorPos}})}updateOptions(t){const{mask:o,...r}=t,l=!this.maskEquals(o),a=this.masked.optionsIsChanged(r);l&&(this.mask=o),a&&this.masked.updateOptions(r),(l||a)&&this.updateControl()}updateCursor(t){t!=null&&(this.cursorPos=t,this._delayUpdateCursor(t))}_delayUpdateCursor(t){this._abortUpdateCursor(),this._changingCursorPos=t,this._cursorChanging=setTimeout(()=>{this.el&&(this.cursorPos=this._changingCursorPos,this._abortUpdateCursor())},10)}_fireChangeEvents(){this._fireEvent("accept",this._inputEvent),this.masked.isComplete&&this._fireEvent("complete",this._inputEvent)}_abortUpdateCursor(){this._cursorChanging&&(clearTimeout(this._cursorChanging),delete this._cursorChanging)}alignCursor(){this.cursorPos=this.masked.nearestInputPos(this.masked.nearestInputPos(this.cursorPos,ye.LEFT))}alignCursorFriendly(){this.selectionStart===this.cursorPos&&this.alignCursor()}on(t,o){return this._listeners[t]||(this._listeners[t]=[]),this._listeners[t].push(o),this}off(t,o){if(!this._listeners[t])return this;if(!o)return delete this._listeners[t],this;const r=this._listeners[t].indexOf(o);return r>=0&&this._listeners[t].splice(r,1),this}_onInput(t){this._inputEvent=t,this._abortUpdateCursor();const o=new qh({value:this.el.value,cursorPos:this.cursorPos,oldValue:this.displayValue,oldSelection:this._selection}),r=this.masked.rawInputValue,l=this.masked.splice(o.startChangePos,o.removed.length,o.inserted,o.removeDirection,{input:!0,raw:!0}).offset,a=r===this.masked.rawInputValue?o.removeDirection:ye.NONE;let s=this.masked.nearestInputPos(o.startChangePos+l,a);a!==ye.NONE&&(s=this.masked.nearestInputPos(s,ye.NONE)),this.updateControl(s),delete this._inputEvent}_onChange(){this.displayValue!==this.el.value&&this.updateValue(),this.masked.doCommit(),this.updateControl(),this._saveSelection()}_onDrop(t){t.preventDefault(),t.stopPropagation()}_onFocus(t){this.alignCursorFriendly()}_onClick(t){this.alignCursorFriendly()}_onUndo(){this._applyHistoryState(this.history.undo())}_onRedo(){this._applyHistoryState(this.history.redo())}_applyHistoryState(t){t&&(this._historyChanging=!0,this.unmaskedValue=t.unmaskedValue,this.el.select(t.selection.start,t.selection.end),this._saveSelection(),this._historyChanging=!1)}destroy(){this._unbindEvents(),this._listeners.length=0,delete this.el}}Ee.InputMask=tl;class Se{static normalize(t){return Array.isArray(t)?t:[t,new Se]}constructor(t){Object.assign(this,{inserted:"",rawInserted:"",tailShift:0,skip:!1},t)}aggregate(t){return this.inserted+=t.inserted,this.rawInserted+=t.rawInserted,this.tailShift+=t.tailShift,this.skip=this.skip||t.skip,this}get offset(){return this.tailShift+this.inserted.length}get consumed(){return!!this.rawInserted||this.skip}equals(t){return this.inserted===t.inserted&&this.tailShift===t.tailShift&&this.rawInserted===t.rawInserted&&this.skip===t.skip}}Ee.ChangeDetails=Se;class bt{constructor(t,o,r){t===void 0&&(t=""),o===void 0&&(o=0),this.value=t,this.from=o,this.stop=r}toString(){return this.value}extend(t){this.value+=String(t)}appendTo(t){return t.append(this.toString(),{tail:!0}).aggregate(t._appendPlaceholder())}get state(){return{value:this.value,from:this.from,stop:this.stop}}set state(t){Object.assign(this,t)}unshift(t){if(!this.value.length||t!=null&&this.from>=t)return"";const o=this.value[0];return this.value=this.value.slice(1),o}shift(){if(!this.value.length)return"";const t=this.value[this.value.length-1];return this.value=this.value.slice(0,-1),t}}class Ye{constructor(t){this._value="",this._update({...Ye.DEFAULTS,...t}),this._initialized=!0}updateOptions(t){this.optionsIsChanged(t)&&this.withValueRefresh(this._update.bind(this,t))}_update(t){Object.assign(this,t)}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value}reset(){this._value=""}get value(){return this._value}set value(t){this.resolve(t,{input:!0})}resolve(t,o){o===void 0&&(o={input:!0}),this.reset(),this.append(t,o,""),this.doCommit()}get unmaskedValue(){return this.value}set unmaskedValue(t){this.resolve(t,{})}get typedValue(){return this.parse?this.parse(this.value,this):this.unmaskedValue}set typedValue(t){this.format?this.value=this.format(t,this):this.unmaskedValue=String(t)}get rawInputValue(){return this.extractInput(0,this.displayValue.length,{raw:!0})}set rawInputValue(t){this.resolve(t,{raw:!0})}get displayValue(){return this.value}get isComplete(){return!0}get isFilled(){return this.isComplete}nearestInputPos(t,o){return t}totalInputPositions(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),Math.min(this.displayValue.length,o-t)}extractInput(t,o,r){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),this.displayValue.slice(t,o)}extractTail(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),new bt(this.extractInput(t,o),t)}appendTail(t){return Ft(t)&&(t=new bt(String(t))),t.appendTo(this)}_appendCharRaw(t,o){return t?(this._value+=t,new Se({inserted:t,rawInserted:t})):new Se}_appendChar(t,o,r){o===void 0&&(o={});const l=this.state;let a;if([t,a]=this.doPrepareChar(t,o),t&&(a=a.aggregate(this._appendCharRaw(t,o)),!a.rawInserted&&this.autofix==="pad")){const s=this.state;this.state=l;let c=this.pad(o);const i=this._appendCharRaw(t,o);c=c.aggregate(i),i.rawInserted||c.equals(a)?a=c:this.state=s}if(a.inserted){let s,c=this.doValidate(o)!==!1;if(c&&r!=null){const i=this.state;if(this.overwrite===!0){s=r.state;for(let p=0;p<a.rawInserted.length;++p)r.unshift(this.displayValue.length-a.tailShift)}let d=this.appendTail(r);if(c=d.rawInserted.length===r.toString().length,!(c&&d.inserted)&&this.overwrite==="shift"){this.state=i,s=r.state;for(let p=0;p<a.rawInserted.length;++p)r.shift();d=this.appendTail(r),c=d.rawInserted.length===r.toString().length}c&&d.inserted&&(this.state=i)}c||(a=new Se,this.state=l,r&&s&&(r.state=s))}return a}_appendPlaceholder(){return new Se}_appendEager(){return new Se}append(t,o,r){if(!Ft(t))throw new Error("value should be string");const l=Ft(r)?new bt(String(r)):r;o!=null&&o.tail&&(o._beforeTailState=this.state);let a;[t,a]=this.doPrepare(t,o);for(let s=0;s<t.length;++s){const c=this._appendChar(t[s],o,l);if(!c.rawInserted&&!this.doSkipInvalid(t[s],o,l))break;a.aggregate(c)}return(this.eager===!0||this.eager==="append")&&o!=null&&o.input&&t&&a.aggregate(this._appendEager()),l!=null&&(a.tailShift+=this.appendTail(l).tailShift),a}remove(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),this._value=this.displayValue.slice(0,t)+this.displayValue.slice(o),new Se}withValueRefresh(t){if(this._refreshing||!this._initialized)return t();this._refreshing=!0;const o=this.rawInputValue,r=this.value,l=t();return this.rawInputValue=o,this.value&&this.value!==r&&r.indexOf(this.value)===0&&(this.append(r.slice(this.displayValue.length),{},""),this.doCommit()),delete this._refreshing,l}runIsolated(t){if(this._isolated||!this._initialized)return t(this);this._isolated=!0;const o=this.state,r=t(this);return this.state=o,delete this._isolated,r}doSkipInvalid(t,o,r){return!!this.skipInvalid}doPrepare(t,o){return o===void 0&&(o={}),Se.normalize(this.prepare?this.prepare(t,this,o):t)}doPrepareChar(t,o){return o===void 0&&(o={}),Se.normalize(this.prepareChar?this.prepareChar(t,this,o):t)}doValidate(t){return(!this.validate||this.validate(this.value,this,t))&&(!this.parent||this.parent.doValidate(t))}doCommit(){this.commit&&this.commit(this.value,this)}splice(t,o,r,l,a){r===void 0&&(r=""),l===void 0&&(l=ye.NONE),a===void 0&&(a={input:!0});const s=t+o,c=this.extractTail(s),i=this.eager===!0||this.eager==="remove";let d;i&&(l=Zr(l),d=this.extractInput(0,s,{raw:!0}));let p=t;const m=new Se;if(l!==ye.NONE&&(p=this.nearestInputPos(t,o>1&&t!==0&&!i?ye.NONE:l),m.tailShift=p-t),m.aggregate(this.remove(p)),i&&l!==ye.NONE&&d===this.rawInputValue)if(l===ye.FORCE_LEFT){let y;for(;d===this.rawInputValue&&(y=this.displayValue.length);)m.aggregate(new Se({tailShift:-1})).aggregate(this.remove(y-1))}else l===ye.FORCE_RIGHT&&c.unshift();return m.aggregate(this.append(r,a,c))}maskEquals(t){return this.mask===t}optionsIsChanged(t){return!Un(this,t)}typedValueEquals(t){const o=this.typedValue;return t===o||Ye.EMPTY_VALUES.includes(t)&&Ye.EMPTY_VALUES.includes(o)||(this.format?this.format(t,this)===this.format(this.typedValue,this):!1)}pad(t){return new Se}}Ye.DEFAULTS={skipInvalid:!0},Ye.EMPTY_VALUES=[void 0,null,""],Ee.Masked=Ye;class Dt{constructor(t,o){t===void 0&&(t=[]),o===void 0&&(o=0),this.chunks=t,this.from=o}toString(){return this.chunks.map(String).join("")}extend(t){if(!String(t))return;t=Ft(t)?new bt(String(t)):t;const o=this.chunks[this.chunks.length-1],r=o&&(o.stop===t.stop||t.stop==null)&&t.from===o.from+o.toString().length;if(t instanceof bt)r?o.extend(t.toString()):this.chunks.push(t);else if(t instanceof Dt){if(t.stop==null){let l;for(;t.chunks.length&&t.chunks[0].stop==null;)l=t.chunks.shift(),l.from+=t.from,this.extend(l)}t.toString()&&(t.stop=t.blockIndex,this.chunks.push(t))}}appendTo(t){if(!(t instanceof Ee.MaskedPattern))return new bt(this.toString()).appendTo(t);const o=new Se;for(let r=0;r<this.chunks.length;++r){const l=this.chunks[r],a=t._mapPosToBlock(t.displayValue.length),s=l.stop;let c;if(s!=null&&(!a||a.index<=s)&&((l instanceof Dt||t._stops.indexOf(s)>=0)&&o.aggregate(t._appendPlaceholder(s)),c=l instanceof Dt&&t._blocks[s]),c){const i=c.appendTail(l);o.aggregate(i);const d=l.toString().slice(i.rawInserted.length);d&&o.aggregate(t.append(d,{tail:!0}))}else o.aggregate(t.append(l.toString(),{tail:!0}))}return o}get state(){return{chunks:this.chunks.map(t=>t.state),from:this.from,stop:this.stop,blockIndex:this.blockIndex}}set state(t){const{chunks:o,...r}=t;Object.assign(this,r),this.chunks=o.map(l=>{const a="chunks"in l?new Dt:new bt;return a.state=l,a})}unshift(t){if(!this.chunks.length||t!=null&&this.from>=t)return"";const o=t!=null?t-this.from:t;let r=0;for(;r<this.chunks.length;){const l=this.chunks[r],a=l.unshift(o);if(l.toString()){if(!a)break;++r}else this.chunks.splice(r,1);if(a)return a}return""}shift(){if(!this.chunks.length)return"";let t=this.chunks.length-1;for(;0<=t;){const o=this.chunks[t],r=o.shift();if(o.toString()){if(!r)break;--t}else this.chunks.splice(t,1);if(r)return r}return""}}class Wh{constructor(t,o){this.masked=t,this._log=[];const{offset:r,index:l}=t._mapPosToBlock(o)||(o<0?{index:0,offset:0}:{index:this.masked._blocks.length,offset:0});this.offset=r,this.index=l,this.ok=!1}get block(){return this.masked._blocks[this.index]}get pos(){return this.masked._blockStartPos(this.index)+this.offset}get state(){return{index:this.index,offset:this.offset,ok:this.ok}}set state(t){Object.assign(this,t)}pushState(){this._log.push(this.state)}popState(){const t=this._log.pop();return t&&(this.state=t),t}bindBlock(){this.block||(this.index<0&&(this.index=0,this.offset=0),this.index>=this.masked._blocks.length&&(this.index=this.masked._blocks.length-1,this.offset=this.block.displayValue.length))}_pushLeft(t){for(this.pushState(),this.bindBlock();0<=this.index;--this.index,this.offset=((o=this.block)==null?void 0:o.displayValue.length)||0){var o;if(t())return this.ok=!0}return this.ok=!1}_pushRight(t){for(this.pushState(),this.bindBlock();this.index<this.masked._blocks.length;++this.index,this.offset=0)if(t())return this.ok=!0;return this.ok=!1}pushLeftBeforeFilled(){return this._pushLeft(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ye.FORCE_LEFT),this.offset!==0))return!0})}pushLeftBeforeInput(){return this._pushLeft(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,ye.LEFT),!0})}pushLeftBeforeRequired(){return this._pushLeft(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ye.LEFT),!0})}pushRightBeforeFilled(){return this._pushRight(()=>{if(!(this.block.isFixed||!this.block.value)&&(this.offset=this.block.nearestInputPos(this.offset,ye.FORCE_RIGHT),this.offset!==this.block.value.length))return!0})}pushRightBeforeInput(){return this._pushRight(()=>{if(!this.block.isFixed)return this.offset=this.block.nearestInputPos(this.offset,ye.NONE),!0})}pushRightBeforeRequired(){return this._pushRight(()=>{if(!(this.block.isFixed||this.block.isOptional&&!this.block.value))return this.offset=this.block.nearestInputPos(this.offset,ye.NONE),!0})}}class vo{constructor(t){Object.assign(this,t),this._value="",this.isFixed=!0}get value(){return this._value}get unmaskedValue(){return this.isUnmasking?this.value:""}get rawInputValue(){return this._isRawInput?this.value:""}get displayValue(){return this.value}reset(){this._isRawInput=!1,this._value=""}remove(t,o){return t===void 0&&(t=0),o===void 0&&(o=this._value.length),this._value=this._value.slice(0,t)+this._value.slice(o),this._value||(this._isRawInput=!1),new Se}nearestInputPos(t,o){o===void 0&&(o=ye.NONE);const r=0,l=this._value.length;switch(o){case ye.LEFT:case ye.FORCE_LEFT:return r;case ye.NONE:case ye.RIGHT:case ye.FORCE_RIGHT:default:return l}}totalInputPositions(t,o){return t===void 0&&(t=0),o===void 0&&(o=this._value.length),this._isRawInput?o-t:0}extractInput(t,o,r){return t===void 0&&(t=0),o===void 0&&(o=this._value.length),r===void 0&&(r={}),r.raw&&this._isRawInput&&this._value.slice(t,o)||""}get isComplete(){return!0}get isFilled(){return!!this._value}_appendChar(t,o){if(o===void 0&&(o={}),this.isFilled)return new Se;const r=this.eager===!0||this.eager==="append",a=this.char===t&&(this.isUnmasking||o.input||o.raw)&&(!o.raw||!r)&&!o.tail,s=new Se({inserted:this.char,rawInserted:a?this.char:""});return this._value=this.char,this._isRawInput=a&&(o.raw||o.input),s}_appendEager(){return this._appendChar(this.char,{tail:!0})}_appendPlaceholder(){const t=new Se;return this.isFilled||(this._value=t.inserted=this.char),t}extractTail(){return new bt("")}appendTail(t){return Ft(t)&&(t=new bt(String(t))),t.appendTo(this)}append(t,o,r){const l=this._appendChar(t[0],o);return r!=null&&(l.tailShift+=this.appendTail(r).tailShift),l}doCommit(){}get state(){return{_value:this._value,_rawInputValue:this.rawInputValue}}set state(t){this._value=t._value,this._isRawInput=!!t._rawInputValue}pad(t){return this._appendPlaceholder()}}class an{constructor(t){const{parent:o,isOptional:r,placeholderChar:l,displayChar:a,lazy:s,eager:c,...i}=t;this.masked=yt(i),Object.assign(this,{parent:o,isOptional:r,placeholderChar:l,displayChar:a,lazy:s,eager:c})}reset(){this.isFilled=!1,this.masked.reset()}remove(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.value.length),t===0&&o>=1?(this.isFilled=!1,this.masked.remove(t,o)):new Se}get value(){return this.masked.value||(this.isFilled&&!this.isOptional?this.placeholderChar:"")}get unmaskedValue(){return this.masked.unmaskedValue}get rawInputValue(){return this.masked.rawInputValue}get displayValue(){return this.masked.value&&this.displayChar||this.value}get isComplete(){return!!this.masked.value||this.isOptional}_appendChar(t,o){if(o===void 0&&(o={}),this.isFilled)return new Se;const r=this.masked.state;let l=this.masked._appendChar(t,this.currentMaskFlags(o));return l.inserted&&this.doValidate(o)===!1&&(l=new Se,this.masked.state=r),!l.inserted&&!this.isOptional&&!this.lazy&&!o.input&&(l.inserted=this.placeholderChar),l.skip=!l.inserted&&!this.isOptional,this.isFilled=!!l.inserted,l}append(t,o,r){return this.masked.append(t,this.currentMaskFlags(o),r)}_appendPlaceholder(){return this.isFilled||this.isOptional?new Se:(this.isFilled=!0,new Se({inserted:this.placeholderChar}))}_appendEager(){return new Se}extractTail(t,o){return this.masked.extractTail(t,o)}appendTail(t){return this.masked.appendTail(t)}extractInput(t,o,r){return t===void 0&&(t=0),o===void 0&&(o=this.value.length),this.masked.extractInput(t,o,r)}nearestInputPos(t,o){o===void 0&&(o=ye.NONE);const r=0,l=this.value.length,a=Math.min(Math.max(t,r),l);switch(o){case ye.LEFT:case ye.FORCE_LEFT:return this.isComplete?a:r;case ye.RIGHT:case ye.FORCE_RIGHT:return this.isComplete?a:l;case ye.NONE:default:return a}}totalInputPositions(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.value.length),this.value.slice(t,o).length}doValidate(t){return this.masked.doValidate(this.currentMaskFlags(t))&&(!this.parent||this.parent.doValidate(this.currentMaskFlags(t)))}doCommit(){this.masked.doCommit()}get state(){return{_value:this.value,_rawInputValue:this.rawInputValue,masked:this.masked.state,isFilled:this.isFilled}}set state(t){this.masked.state=t.masked,this.isFilled=t.isFilled}currentMaskFlags(t){var o;return{...t,_beforeTailState:(t==null||(o=t._beforeTailState)==null?void 0:o.masked)||t?._beforeTailState}}pad(t){return new Se}}an.DEFAULT_DEFINITIONS={0:/\d/,a:/[\u0041-\u005A\u0061-\u007A\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,"*":/./};class nl extends Ye{updateOptions(t){super.updateOptions(t)}_update(t){const o=t.mask;o&&(t.validate=r=>r.search(o)>=0),super._update(t)}}Ee.MaskedRegExp=nl;class Xe extends Ye{constructor(t){super({...Xe.DEFAULTS,...t,definitions:Object.assign({},an.DEFAULT_DEFINITIONS,t?.definitions)})}updateOptions(t){super.updateOptions(t)}_update(t){t.definitions=Object.assign({},this.definitions,t.definitions),super._update(t),this._rebuildMask()}_rebuildMask(){const t=this.definitions;this._blocks=[],this.exposeBlock=void 0,this._stops=[],this._maskedBlocks={};const o=this.mask;if(!o||!t)return;let r=!1,l=!1;for(let a=0;a<o.length;++a){if(this.blocks){const d=o.slice(a),p=Object.keys(this.blocks).filter(y=>d.indexOf(y)===0);p.sort((y,h)=>h.length-y.length);const m=p[0];if(m){const{expose:y,repeat:h,...f}=Gt(this.blocks[m]),x={lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,overwrite:this.overwrite,autofix:this.autofix,...f,repeat:h,parent:this},b=h!=null?new Ee.RepeatBlock(x):yt(x);b&&(this._blocks.push(b),y&&(this.exposeBlock=b),this._maskedBlocks[m]||(this._maskedBlocks[m]=[]),this._maskedBlocks[m].push(this._blocks.length-1)),a+=m.length-1;continue}}let s=o[a],c=s in t;if(s===Xe.STOP_CHAR){this._stops.push(this._blocks.length);continue}if(s==="{"||s==="}"){r=!r;continue}if(s==="["||s==="]"){l=!l;continue}if(s===Xe.ESCAPE_CHAR){if(++a,s=o[a],!s)break;c=!1}const i=c?new an({isOptional:l,lazy:this.lazy,eager:this.eager,placeholderChar:this.placeholderChar,displayChar:this.displayChar,...Gt(t[s]),parent:this}):new vo({char:s,eager:this.eager,isUnmasking:r});this._blocks.push(i)}}get state(){return{...super.state,_blocks:this._blocks.map(t=>t.state)}}set state(t){if(!t){this.reset();return}const{_blocks:o,...r}=t;this._blocks.forEach((l,a)=>l.state=o[a]),super.state=r}reset(){super.reset(),this._blocks.forEach(t=>t.reset())}get isComplete(){return this.exposeBlock?this.exposeBlock.isComplete:this._blocks.every(t=>t.isComplete)}get isFilled(){return this._blocks.every(t=>t.isFilled)}get isFixed(){return this._blocks.every(t=>t.isFixed)}get isOptional(){return this._blocks.every(t=>t.isOptional)}doCommit(){this._blocks.forEach(t=>t.doCommit()),super.doCommit()}get unmaskedValue(){return this.exposeBlock?this.exposeBlock.unmaskedValue:this._blocks.reduce((t,o)=>t+=o.unmaskedValue,"")}set unmaskedValue(t){if(this.exposeBlock){const o=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.unmaskedValue=t,this.appendTail(o),this.doCommit()}else super.unmaskedValue=t}get value(){return this.exposeBlock?this.exposeBlock.value:this._blocks.reduce((t,o)=>t+=o.value,"")}set value(t){if(this.exposeBlock){const o=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.value=t,this.appendTail(o),this.doCommit()}else super.value=t}get typedValue(){return this.exposeBlock?this.exposeBlock.typedValue:super.typedValue}set typedValue(t){if(this.exposeBlock){const o=this.extractTail(this._blockStartPos(this._blocks.indexOf(this.exposeBlock))+this.exposeBlock.displayValue.length);this.exposeBlock.typedValue=t,this.appendTail(o),this.doCommit()}else super.typedValue=t}get displayValue(){return this._blocks.reduce((t,o)=>t+=o.displayValue,"")}appendTail(t){return super.appendTail(t).aggregate(this._appendPlaceholder())}_appendEager(){var t;const o=new Se;let r=(t=this._mapPosToBlock(this.displayValue.length))==null?void 0:t.index;if(r==null)return o;this._blocks[r].isFilled&&++r;for(let l=r;l<this._blocks.length;++l){const a=this._blocks[l]._appendEager();if(!a.inserted)break;o.aggregate(a)}return o}_appendCharRaw(t,o){o===void 0&&(o={});const r=this._mapPosToBlock(this.displayValue.length),l=new Se;if(!r)return l;for(let s=r.index,c;c=this._blocks[s];++s){var a;const i=c._appendChar(t,{...o,_beforeTailState:(a=o._beforeTailState)==null||(a=a._blocks)==null?void 0:a[s]});if(l.aggregate(i),i.consumed)break}return l}extractTail(t,o){t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length);const r=new Dt;return t===o||this._forEachBlocksInRange(t,o,(l,a,s,c)=>{const i=l.extractTail(s,c);i.stop=this._findStopBefore(a),i.from=this._blockStartPos(a),i instanceof Dt&&(i.blockIndex=a),r.extend(i)}),r}extractInput(t,o,r){if(t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),r===void 0&&(r={}),t===o)return"";let l="";return this._forEachBlocksInRange(t,o,(a,s,c,i)=>{l+=a.extractInput(c,i,r)}),l}_findStopBefore(t){let o;for(let r=0;r<this._stops.length;++r){const l=this._stops[r];if(l<=t)o=l;else break}return o}_appendPlaceholder(t){const o=new Se;if(this.lazy&&t==null)return o;const r=this._mapPosToBlock(this.displayValue.length);if(!r)return o;const l=r.index,a=t??this._blocks.length;return this._blocks.slice(l,a).forEach(s=>{if(!s.lazy||t!=null){var c;o.aggregate(s._appendPlaceholder((c=s._blocks)==null?void 0:c.length))}}),o}_mapPosToBlock(t){let o="";for(let r=0;r<this._blocks.length;++r){const l=this._blocks[r],a=o.length;if(o+=l.displayValue,t<=o.length)return{index:r,offset:t-a}}}_blockStartPos(t){return this._blocks.slice(0,t).reduce((o,r)=>o+=r.displayValue.length,0)}_forEachBlocksInRange(t,o,r){o===void 0&&(o=this.displayValue.length);const l=this._mapPosToBlock(t);if(l){const a=this._mapPosToBlock(o),s=a&&l.index===a.index,c=l.offset,i=a&&s?a.offset:this._blocks[l.index].displayValue.length;if(r(this._blocks[l.index],l.index,c,i),a&&!s){for(let d=l.index+1;d<a.index;++d)r(this._blocks[d],d,0,this._blocks[d].displayValue.length);r(this._blocks[a.index],a.index,0,a.offset)}}}remove(t,o){t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length);const r=super.remove(t,o);return this._forEachBlocksInRange(t,o,(l,a,s,c)=>{r.aggregate(l.remove(s,c))}),r}nearestInputPos(t,o){if(o===void 0&&(o=ye.NONE),!this._blocks.length)return 0;const r=new Wh(this,t);if(o===ye.NONE)return r.pushRightBeforeInput()||(r.popState(),r.pushLeftBeforeInput())?r.pos:this.displayValue.length;if(o===ye.LEFT||o===ye.FORCE_LEFT){if(o===ye.LEFT){if(r.pushRightBeforeFilled(),r.ok&&r.pos===t)return t;r.popState()}if(r.pushLeftBeforeInput(),r.pushLeftBeforeRequired(),r.pushLeftBeforeFilled(),o===ye.LEFT){if(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.ok&&r.pos<=t||(r.popState(),r.ok&&r.pos<=t))return r.pos;r.popState()}return r.ok?r.pos:o===ye.FORCE_LEFT?0:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:0)}return o===ye.RIGHT||o===ye.FORCE_RIGHT?(r.pushRightBeforeInput(),r.pushRightBeforeRequired(),r.pushRightBeforeFilled()?r.pos:o===ye.FORCE_RIGHT?this.displayValue.length:(r.popState(),r.ok||(r.popState(),r.ok)?r.pos:this.nearestInputPos(t,ye.LEFT))):t}totalInputPositions(t,o){t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length);let r=0;return this._forEachBlocksInRange(t,o,(l,a,s,c)=>{r+=l.totalInputPositions(s,c)}),r}maskedBlock(t){return this.maskedBlocks(t)[0]}maskedBlocks(t){const o=this._maskedBlocks[t];return o?o.map(r=>this._blocks[r]):[]}pad(t){const o=new Se;return this._forEachBlocksInRange(0,this.displayValue.length,r=>o.aggregate(r.pad(t))),o}}Xe.DEFAULTS={...Ye.DEFAULTS,lazy:!0,placeholderChar:"_"},Xe.STOP_CHAR="`",Xe.ESCAPE_CHAR="\\",Xe.InputDefinition=an,Xe.FixedDefinition=vo,Ee.MaskedPattern=Xe;class sn extends Xe{get _matchFrom(){return this.maxLength-String(this.from).length}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){const{to:o=this.to||0,from:r=this.from||0,maxLength:l=this.maxLength||0,autofix:a=this.autofix,...s}=t;this.to=o,this.from=r,this.maxLength=Math.max(String(o).length,l),this.autofix=a;const c=String(this.from).padStart(this.maxLength,"0"),i=String(this.to).padStart(this.maxLength,"0");let d=0;for(;d<i.length&&i[d]===c[d];)++d;s.mask=i.slice(0,d).replace(/0/g,"\\0")+"0".repeat(this.maxLength-d),super._update(s)}get isComplete(){return super.isComplete&&!!this.value}boundaries(t){let o="",r="";const[,l,a]=t.match(/^(\D*)(\d*)(\D*)/)||[];return a&&(o="0".repeat(l.length)+a,r="9".repeat(l.length)+a),o=o.padEnd(this.maxLength,"0"),r=r.padEnd(this.maxLength,"9"),[o,r]}doPrepareChar(t,o){o===void 0&&(o={});let r;return[t,r]=super.doPrepareChar(t.replace(/\D/g,""),o),t||(r.skip=!this.isComplete),[t,r]}_appendCharRaw(t,o){if(o===void 0&&(o={}),!this.autofix||this.value.length+1>this.maxLength)return super._appendCharRaw(t,o);const r=String(this.from).padStart(this.maxLength,"0"),l=String(this.to).padStart(this.maxLength,"0"),[a,s]=this.boundaries(this.value+t);return Number(s)<this.from?super._appendCharRaw(r[this.value.length],o):Number(a)>this.to?!o.tail&&this.autofix==="pad"&&this.value.length+1<this.maxLength?super._appendCharRaw(r[this.value.length],o).aggregate(this._appendCharRaw(t,o)):super._appendCharRaw(l[this.value.length],o):super._appendCharRaw(t,o)}doValidate(t){const o=this.value;if(o.search(/[^0]/)===-1&&o.length<=this._matchFrom)return!0;const[l,a]=this.boundaries(o);return this.from<=Number(a)&&Number(l)<=this.to&&super.doValidate(t)}pad(t){const o=new Se;if(this.value.length===this.maxLength)return o;const r=this.value,l=this.maxLength-this.value.length;if(l){this.reset();for(let a=0;a<l;++a)o.aggregate(super._appendCharRaw("0",t));r.split("").forEach(a=>this._appendCharRaw(a))}return o}}Ee.MaskedRange=sn;const Gh="d{.}`m{.}`Y";class kt extends Xe{static extractPatternOptions(t){const{mask:o,pattern:r,...l}=t;return{...l,mask:Ft(o)?o:r}}constructor(t){super(kt.extractPatternOptions({...kt.DEFAULTS,...t}))}updateOptions(t){super.updateOptions(t)}_update(t){const{mask:o,pattern:r,blocks:l,...a}={...kt.DEFAULTS,...t},s=Object.assign({},kt.GET_DEFAULT_BLOCKS());t.min&&(s.Y.from=t.min.getFullYear()),t.max&&(s.Y.to=t.max.getFullYear()),t.min&&t.max&&s.Y.from===s.Y.to&&(s.m.from=t.min.getMonth()+1,s.m.to=t.max.getMonth()+1,s.m.from===s.m.to&&(s.d.from=t.min.getDate(),s.d.to=t.max.getDate())),Object.assign(s,this.blocks,l),super._update({...a,mask:Ft(o)?o:r,blocks:s})}doValidate(t){const o=this.date;return super.doValidate(t)&&(!this.isComplete||this.isDateExist(this.value)&&o!=null&&(this.min==null||this.min<=o)&&(this.max==null||o<=this.max))}isDateExist(t){return this.format(this.parse(t,this),this).indexOf(t)>=0}get date(){return this.typedValue}set date(t){this.typedValue=t}get typedValue(){return this.isComplete?super.typedValue:null}set typedValue(t){super.typedValue=t}maskEquals(t){return t===Date||super.maskEquals(t)}optionsIsChanged(t){return super.optionsIsChanged(kt.extractPatternOptions(t))}}kt.GET_DEFAULT_BLOCKS=()=>({d:{mask:sn,from:1,to:31,maxLength:2},m:{mask:sn,from:1,to:12,maxLength:2},Y:{mask:sn,from:1900,to:9999}}),kt.DEFAULTS={...Xe.DEFAULTS,mask:Date,pattern:Gh,format:(n,t)=>{if(!n)return"";const o=String(n.getDate()).padStart(2,"0"),r=String(n.getMonth()+1).padStart(2,"0"),l=n.getFullYear();return[o,r,l].join(".")},parse:(n,t)=>{const[o,r,l]=n.split(".").map(Number);return new Date(l,r-1,o)}},Ee.MaskedDate=kt;class cn extends Ye{constructor(t){super({...cn.DEFAULTS,...t}),this.currentMask=void 0}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),"mask"in t&&(this.exposeMask=void 0,this.compiledMasks=Array.isArray(t.mask)?t.mask.map(o=>{const{expose:r,...l}=Gt(o),a=yt({overwrite:this._overwrite,eager:this._eager,skipInvalid:this._skipInvalid,...l});return r&&(this.exposeMask=a),a}):[])}_appendCharRaw(t,o){o===void 0&&(o={});const r=this._applyDispatch(t,o);return this.currentMask&&r.aggregate(this.currentMask._appendChar(t,this.currentMaskFlags(o))),r}_applyDispatch(t,o,r){t===void 0&&(t=""),o===void 0&&(o={}),r===void 0&&(r="");const l=o.tail&&o._beforeTailState!=null?o._beforeTailState._value:this.value,a=this.rawInputValue,s=o.tail&&o._beforeTailState!=null?o._beforeTailState._rawInputValue:a,c=a.slice(s.length),i=this.currentMask,d=new Se,p=i?.state;return this.currentMask=this.doDispatch(t,{...o},r),this.currentMask&&(this.currentMask!==i?(this.currentMask.reset(),s&&(this.currentMask.append(s,{raw:!0}),d.tailShift=this.currentMask.value.length-l.length),c&&(d.tailShift+=this.currentMask.append(c,{raw:!0,tail:!0}).tailShift)):p&&(this.currentMask.state=p)),d}_appendPlaceholder(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendPlaceholder()),t}_appendEager(){const t=this._applyDispatch();return this.currentMask&&t.aggregate(this.currentMask._appendEager()),t}appendTail(t){const o=new Se;return t&&o.aggregate(this._applyDispatch("",{},t)),o.aggregate(this.currentMask?this.currentMask.appendTail(t):super.appendTail(t))}currentMaskFlags(t){var o,r;return{...t,_beforeTailState:((o=t._beforeTailState)==null?void 0:o.currentMaskRef)===this.currentMask&&((r=t._beforeTailState)==null?void 0:r.currentMask)||t._beforeTailState}}doDispatch(t,o,r){return o===void 0&&(o={}),r===void 0&&(r=""),this.dispatch(t,this,o,r)}doValidate(t){return super.doValidate(t)&&(!this.currentMask||this.currentMask.doValidate(this.currentMaskFlags(t)))}doPrepare(t,o){o===void 0&&(o={});let[r,l]=super.doPrepare(t,o);if(this.currentMask){let a;[r,a]=super.doPrepare(r,this.currentMaskFlags(o)),l=l.aggregate(a)}return[r,l]}doPrepareChar(t,o){o===void 0&&(o={});let[r,l]=super.doPrepareChar(t,o);if(this.currentMask){let a;[r,a]=super.doPrepareChar(r,this.currentMaskFlags(o)),l=l.aggregate(a)}return[r,l]}reset(){var t;(t=this.currentMask)==null||t.reset(),this.compiledMasks.forEach(o=>o.reset())}get value(){return this.exposeMask?this.exposeMask.value:this.currentMask?this.currentMask.value:""}set value(t){this.exposeMask?(this.exposeMask.value=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.value=t}get unmaskedValue(){return this.exposeMask?this.exposeMask.unmaskedValue:this.currentMask?this.currentMask.unmaskedValue:""}set unmaskedValue(t){this.exposeMask?(this.exposeMask.unmaskedValue=t,this.currentMask=this.exposeMask,this._applyDispatch()):super.unmaskedValue=t}get typedValue(){return this.exposeMask?this.exposeMask.typedValue:this.currentMask?this.currentMask.typedValue:""}set typedValue(t){if(this.exposeMask){this.exposeMask.typedValue=t,this.currentMask=this.exposeMask,this._applyDispatch();return}let o=String(t);this.currentMask&&(this.currentMask.typedValue=t,o=this.currentMask.unmaskedValue),this.unmaskedValue=o}get displayValue(){return this.currentMask?this.currentMask.displayValue:""}get isComplete(){var t;return!!((t=this.currentMask)!=null&&t.isComplete)}get isFilled(){var t;return!!((t=this.currentMask)!=null&&t.isFilled)}remove(t,o){const r=new Se;return this.currentMask&&r.aggregate(this.currentMask.remove(t,o)).aggregate(this._applyDispatch()),r}get state(){var t;return{...super.state,_rawInputValue:this.rawInputValue,compiledMasks:this.compiledMasks.map(o=>o.state),currentMaskRef:this.currentMask,currentMask:(t=this.currentMask)==null?void 0:t.state}}set state(t){const{compiledMasks:o,currentMaskRef:r,currentMask:l,...a}=t;o&&this.compiledMasks.forEach((s,c)=>s.state=o[c]),r!=null&&(this.currentMask=r,this.currentMask.state=l),super.state=a}extractInput(t,o,r){return this.currentMask?this.currentMask.extractInput(t,o,r):""}extractTail(t,o){return this.currentMask?this.currentMask.extractTail(t,o):super.extractTail(t,o)}doCommit(){this.currentMask&&this.currentMask.doCommit(),super.doCommit()}nearestInputPos(t,o){return this.currentMask?this.currentMask.nearestInputPos(t,o):super.nearestInputPos(t,o)}get overwrite(){return this.currentMask?this.currentMask.overwrite:this._overwrite}set overwrite(t){this._overwrite=t}get eager(){return this.currentMask?this.currentMask.eager:this._eager}set eager(t){this._eager=t}get skipInvalid(){return this.currentMask?this.currentMask.skipInvalid:this._skipInvalid}set skipInvalid(t){this._skipInvalid=t}get autofix(){return this.currentMask?this.currentMask.autofix:this._autofix}set autofix(t){this._autofix=t}maskEquals(t){return Array.isArray(t)?this.compiledMasks.every((o,r)=>{if(!t[r])return;const{mask:l,...a}=t[r];return Un(o,a)&&o.maskEquals(l)}):super.maskEquals(t)}typedValueEquals(t){var o;return!!((o=this.currentMask)!=null&&o.typedValueEquals(t))}}cn.DEFAULTS={...Ye.DEFAULTS,dispatch:(n,t,o,r)=>{if(!t.compiledMasks.length)return;const l=t.rawInputValue,a=t.compiledMasks.map((s,c)=>{const i=t.currentMask===s,d=i?s.displayValue.length:s.nearestInputPos(s.displayValue.length,ye.FORCE_LEFT);return s.rawInputValue!==l?(s.reset(),s.append(l,{raw:!0})):i||s.remove(d),s.append(n,t.currentMaskFlags(o)),s.appendTail(r),{index:c,weight:s.rawInputValue.length,totalInputPositions:s.totalInputPositions(0,Math.max(d,s.nearestInputPos(s.displayValue.length,ye.FORCE_LEFT)))}});return a.sort((s,c)=>c.weight-s.weight||c.totalInputPositions-s.totalInputPositions),t.compiledMasks[a[0].index]}},Ee.MaskedDynamic=cn;class dn extends Xe{constructor(t){super({...dn.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){const{enum:o,...r}=t;if(o){const l=o.map(c=>c.length),a=Math.min(...l),s=Math.max(...l)-a;r.mask="*".repeat(a),s&&(r.mask+="["+"*".repeat(s)+"]"),this.enum=o}super._update(r)}_appendCharRaw(t,o){o===void 0&&(o={});const r=Math.min(this.nearestInputPos(0,ye.FORCE_RIGHT),this.value.length),l=this.enum.filter(a=>this.matchValue(a,this.unmaskedValue+t,r));if(l.length){l.length===1&&this._forEachBlocksInRange(0,this.value.length,(s,c)=>{const i=l[0][c];c>=this.value.length||i===s.value||(s.reset(),s._appendChar(i,o))});const a=super._appendCharRaw(l[0][this.value.length],o);return l.length===1&&l[0].slice(this.unmaskedValue.length).split("").forEach(s=>a.aggregate(super._appendCharRaw(s))),a}return new Se({skip:!this.isComplete})}extractTail(t,o){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),new bt("",t)}remove(t,o){if(t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),t===o)return new Se;const r=Math.min(super.nearestInputPos(0,ye.FORCE_RIGHT),this.value.length);let l;for(l=t;l>=0&&!(this.enum.filter(c=>this.matchValue(c,this.value.slice(r,l),r)).length>1);--l);const a=super.remove(l,o);return a.tailShift+=l-t,a}get isComplete(){return this.enum.indexOf(this.value)>=0}}dn.DEFAULTS={...Xe.DEFAULTS,matchValue:(n,t,o)=>n.indexOf(t,o)===o},Ee.MaskedEnum=dn;class ol extends Ye{updateOptions(t){super.updateOptions(t)}_update(t){super._update({...t,validate:t.mask})}}Ee.MaskedFunction=ol;var rl;class et extends Ye{constructor(t){super({...et.DEFAULTS,...t})}updateOptions(t){super.updateOptions(t)}_update(t){super._update(t),this._updateRegExps()}_updateRegExps(){const t="^"+(this.allowNegative?"[+|\\-]?":""),o="\\d*",r=(this.scale?"("+xo(this.radix)+"\\d{0,"+this.scale+"})?":"")+"$";this._numberRegExp=new RegExp(t+o+r),this._mapToRadixRegExp=new RegExp("["+this.mapToRadix.map(xo).join("")+"]","g"),this._thousandsSeparatorRegExp=new RegExp(xo(this.thousandsSeparator),"g")}_removeThousandsSeparators(t){return t.replace(this._thousandsSeparatorRegExp,"")}_insertThousandsSeparators(t){const o=t.split(this.radix);return o[0]=o[0].replace(/\B(?=(\d{3})+(?!\d))/g,this.thousandsSeparator),o.join(this.radix)}doPrepareChar(t,o){o===void 0&&(o={});const[r,l]=super.doPrepareChar(this._removeThousandsSeparators(this.scale&&this.mapToRadix.length&&(o.input&&o.raw||!o.input&&!o.raw)?t.replace(this._mapToRadixRegExp,this.radix):t),o);return t&&!r&&(l.skip=!0),r&&!this.allowPositive&&!this.value&&r!=="-"&&l.aggregate(this._appendChar("-")),[r,l]}_separatorsCount(t,o){o===void 0&&(o=!1);let r=0;for(let l=0;l<t;++l)this._value.indexOf(this.thousandsSeparator,l)===l&&(++r,o&&(t+=this.thousandsSeparator.length));return r}_separatorsCountFromSlice(t){return t===void 0&&(t=this._value),this._separatorsCount(this._removeThousandsSeparators(t).length,!0)}extractInput(t,o,r){return t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),[t,o]=this._adjustRangeWithSeparators(t,o),this._removeThousandsSeparators(super.extractInput(t,o,r))}_appendCharRaw(t,o){o===void 0&&(o={});const r=o.tail&&o._beforeTailState?o._beforeTailState._value:this._value,l=this._separatorsCountFromSlice(r);this._value=this._removeThousandsSeparators(this.value);const a=this._value;this._value+=t;const s=this.number;let c=!isNaN(s),i=!1;if(c){let y;this.min!=null&&this.min<0&&this.number<this.min&&(y=this.min),this.max!=null&&this.max>0&&this.number>this.max&&(y=this.max),y!=null&&(this.autofix?(this._value=this.format(y,this).replace(et.UNMASKED_RADIX,this.radix),i||(i=a===this._value&&!o.tail)):c=!1),c&&(c=!!this._value.match(this._numberRegExp))}let d;c?d=new Se({inserted:this._value.slice(a.length),rawInserted:i?"":t,skip:i}):(this._value=a,d=new Se),this._value=this._insertThousandsSeparators(this._value);const p=o.tail&&o._beforeTailState?o._beforeTailState._value:this._value,m=this._separatorsCountFromSlice(p);return d.tailShift+=(m-l)*this.thousandsSeparator.length,d}_findSeparatorAround(t){if(this.thousandsSeparator){const o=t-this.thousandsSeparator.length+1,r=this.value.indexOf(this.thousandsSeparator,o);if(r<=t)return r}return-1}_adjustRangeWithSeparators(t,o){const r=this._findSeparatorAround(t);r>=0&&(t=r);const l=this._findSeparatorAround(o);return l>=0&&(o=l+this.thousandsSeparator.length),[t,o]}remove(t,o){t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length),[t,o]=this._adjustRangeWithSeparators(t,o);const r=this.value.slice(0,t),l=this.value.slice(o),a=this._separatorsCount(r.length);this._value=this._insertThousandsSeparators(this._removeThousandsSeparators(r+l));const s=this._separatorsCountFromSlice(r);return new Se({tailShift:(s-a)*this.thousandsSeparator.length})}nearestInputPos(t,o){if(!this.thousandsSeparator)return t;switch(o){case ye.NONE:case ye.LEFT:case ye.FORCE_LEFT:{const r=this._findSeparatorAround(t-1);if(r>=0){const l=r+this.thousandsSeparator.length;if(t<l||this.value.length<=l||o===ye.FORCE_LEFT)return r}break}case ye.RIGHT:case ye.FORCE_RIGHT:{const r=this._findSeparatorAround(t);if(r>=0)return r+this.thousandsSeparator.length}}return t}doCommit(){if(this.value){const t=this.number;let o=t;this.min!=null&&(o=Math.max(o,this.min)),this.max!=null&&(o=Math.min(o,this.max)),o!==t&&(this.unmaskedValue=this.format(o,this));let r=this.value;this.normalizeZeros&&(r=this._normalizeZeros(r)),this.padFractionalZeros&&this.scale>0&&(r=this._padFractionalZeros(r)),this._value=r}super.doCommit()}_normalizeZeros(t){const o=this._removeThousandsSeparators(t).split(this.radix);return o[0]=o[0].replace(/^(\D*)(0*)(\d*)/,(r,l,a,s)=>l+s),t.length&&!/\d$/.test(o[0])&&(o[0]=o[0]+"0"),o.length>1&&(o[1]=o[1].replace(/0*$/,""),o[1].length||(o.length=1)),this._insertThousandsSeparators(o.join(this.radix))}_padFractionalZeros(t){if(!t)return t;const o=t.split(this.radix);return o.length<2&&o.push(""),o[1]=o[1].padEnd(this.scale,"0"),o.join(this.radix)}doSkipInvalid(t,o,r){o===void 0&&(o={});const l=this.scale===0&&t!==this.thousandsSeparator&&(t===this.radix||t===et.UNMASKED_RADIX||this.mapToRadix.includes(t));return super.doSkipInvalid(t,o,r)&&!l}get unmaskedValue(){return this._removeThousandsSeparators(this._normalizeZeros(this.value)).replace(this.radix,et.UNMASKED_RADIX)}set unmaskedValue(t){super.unmaskedValue=t}get typedValue(){return this.parse(this.unmaskedValue,this)}set typedValue(t){this.rawInputValue=this.format(t,this).replace(et.UNMASKED_RADIX,this.radix)}get number(){return this.typedValue}set number(t){this.typedValue=t}get allowNegative(){return this.min!=null&&this.min<0||this.max!=null&&this.max<0}get allowPositive(){return this.min!=null&&this.min>0||this.max!=null&&this.max>0}typedValueEquals(t){return(super.typedValueEquals(t)||et.EMPTY_VALUES.includes(t)&&et.EMPTY_VALUES.includes(this.typedValue))&&!(t===0&&this.value==="")}}rl=et,et.UNMASKED_RADIX=".",et.EMPTY_VALUES=[...Ye.EMPTY_VALUES,0],et.DEFAULTS={...Ye.DEFAULTS,mask:Number,radix:",",thousandsSeparator:"",mapToRadix:[rl.UNMASKED_RADIX],min:Number.MIN_SAFE_INTEGER,max:Number.MAX_SAFE_INTEGER,scale:2,normalizeZeros:!0,padFractionalZeros:!1,parse:Number,format:n=>n.toLocaleString("en-US",{useGrouping:!1,maximumFractionDigits:20})},Ee.MaskedNumber=et;const Kn={MASKED:"value",UNMASKED:"unmaskedValue",TYPED:"typedValue"};function Co(n,t,o){t===void 0&&(t=Kn.MASKED),o===void 0&&(o=Kn.MASKED);const r=yt(n);return l=>r.runIsolated(a=>(a[t]=l,a[o]))}function ll(n,t,o,r){return Co(t,o,r)(n)}Ee.PIPE_TYPE=Kn,Ee.createPipe=Co,Ee.pipe=ll;class al extends Xe{get repeatFrom(){var t;return(t=Array.isArray(this.repeat)?this.repeat[0]:this.repeat===1/0?0:this.repeat)!=null?t:0}get repeatTo(){var t;return(t=Array.isArray(this.repeat)?this.repeat[1]:this.repeat)!=null?t:1/0}constructor(t){super(t)}updateOptions(t){super.updateOptions(t)}_update(t){var o,r,l;const{repeat:a,...s}=Gt(t);this._blockOpts=Object.assign({},this._blockOpts,s);const c=yt(this._blockOpts);this.repeat=(o=(r=a??c.repeat)!=null?r:this.repeat)!=null?o:1/0,super._update({mask:"m".repeat(Math.max(this.repeatTo===1/0&&((l=this._blocks)==null?void 0:l.length)||0,this.repeatFrom)),blocks:{m:c},eager:c.eager,overwrite:c.overwrite,skipInvalid:c.skipInvalid,lazy:c.lazy,placeholderChar:c.placeholderChar,displayChar:c.displayChar})}_allocateBlock(t){if(t<this._blocks.length)return this._blocks[t];if(this.repeatTo===1/0||this._blocks.length<this.repeatTo)return this._blocks.push(yt(this._blockOpts)),this.mask+="m",this._blocks[this._blocks.length-1]}_appendCharRaw(t,o){o===void 0&&(o={});const r=new Se;for(let i=(l=(a=this._mapPosToBlock(this.displayValue.length))==null?void 0:a.index)!=null?l:Math.max(this._blocks.length-1,0),d,p;d=(s=this._blocks[i])!=null?s:p=!p&&this._allocateBlock(i);++i){var l,a,s,c;const m=d._appendChar(t,{...o,_beforeTailState:(c=o._beforeTailState)==null||(c=c._blocks)==null?void 0:c[i]});if(m.skip&&p){this._blocks.pop(),this.mask=this.mask.slice(1);break}if(r.aggregate(m),m.consumed)break}return r}_trimEmptyTail(t,o){var r,l;t===void 0&&(t=0);const a=Math.max(((r=this._mapPosToBlock(t))==null?void 0:r.index)||0,this.repeatFrom,0);let s;o!=null&&(s=(l=this._mapPosToBlock(o))==null?void 0:l.index),s==null&&(s=this._blocks.length-1);let c=0;for(let i=s;a<=i&&!this._blocks[i].unmaskedValue;--i,++c);c&&(this._blocks.splice(s-c+1,c),this.mask=this.mask.slice(c))}reset(){super.reset(),this._trimEmptyTail()}remove(t,o){t===void 0&&(t=0),o===void 0&&(o=this.displayValue.length);const r=super.remove(t,o);return this._trimEmptyTail(t,o),r}totalInputPositions(t,o){return t===void 0&&(t=0),o==null&&this.repeatTo===1/0?1/0:super.totalInputPositions(t,o)}get state(){return super.state}set state(t){this._blocks.length=t._blocks.length,this.mask=this.mask.slice(0,this._blocks.length),super.state=t}}Ee.RepeatBlock=al;try{globalThis.IMask=Ee}catch{}const Wn=Object.freeze(Object.defineProperty({__proto__:null,ChangeDetails:Se,ChunksTailDetails:Dt,DIRECTION:ye,HTMLContenteditableMaskElement:wo,HTMLInputMaskElement:el,HTMLMaskElement:ln,InputMask:tl,MaskElement:Hn,Masked:Ye,MaskedDate:kt,MaskedDynamic:cn,MaskedEnum:dn,MaskedFunction:ol,MaskedNumber:et,MaskedPattern:Xe,MaskedRange:sn,MaskedRegExp:nl,PIPE_TYPE:Kn,PatternFixedDefinition:vo,PatternInputDefinition:an,RepeatBlock:al,createMask:yt,createPipe:Co,default:Ee,forceDirection:Zr,normalizeOpts:Gt,pipe:ll},Symbol.toStringTag,{value:"Module"}));function Yh(){const n=e.ref(!1);return{isFullscreen:n,toggleFullscreen:()=>{n.value=!n.value}}}const Xh="https://esm.sh",rt="3.7.2",sl="3.7.2",Zh=`?deps=@tiptap/core@${rt},@tiptap/pm@${sl}`,lt=n=>`${Xh}/${n}${Zh}`,at={core:lt(`@tiptap/core@${rt}`),starterKit:lt(`@tiptap/starter-kit@${rt}`),textStyle:lt(`@tiptap/extension-text-style@${rt}`),table:lt(`@tiptap/extension-table@${rt}`),highlight:lt(`@tiptap/extension-highlight@${rt}`),subscript:lt(`@tiptap/extension-subscript@${rt}`),superscript:lt(`@tiptap/extension-superscript@${rt}`),link:lt(`@tiptap/extension-link@${rt}`),image:lt(`@tiptap/extension-image@${rt}`),textAlign:lt(`@tiptap/extension-text-align@${rt}`),heading:lt(`@tiptap/extension-heading@${rt}`),paragraph:lt(`@tiptap/extension-paragraph@${rt}`),pmModel:lt(`@tiptap/pm@${sl}/model`)},un="__vs_form_tiptap_loader__",st=n=>import(n),Ke=(n,t)=>n?.[t]||n?.default?.[t]||n?.default?.default?.[t]||n?.default||n,Jh=n=>n.extend({addOptions(){return{...this.parent?.(),levels:[1,2,3,4,5,6]}}}),Qh=(n,t,o,r,l)=>{const a=t.extend({addAttributes(){return{...this.parent?.(),border:{default:null,parseHTML:s=>s.getAttribute("border"),renderHTML:s=>s.border?{border:s.border}:{}},cellpadding:{default:null,parseHTML:s=>s.getAttribute("cellpadding"),renderHTML:s=>s.cellpadding?{cellpadding:s.cellpadding}:{}},cellspacing:{default:null,parseHTML:s=>s.getAttribute("cellspacing"),renderHTML:s=>s.cellspacing?{cellspacing:s.cellspacing}:{}},style:{default:null,parseHTML:s=>s.getAttribute("style"),renderHTML:s=>s.style?{style:s.style}:{}},width:{default:null,parseHTML:s=>s.getAttribute("width"),renderHTML:s=>s.width?{width:s.width}:{}}}},parseHTML(){return[{tag:"div.tableWrapper table",priority:100},{tag:"table"}]}});return n.extend({addExtensions(){return[a.configure({resizable:!0}),o,r,l]}})},eg=n=>n.extend({addAttributes(){return{...this.parent?.(),fontFamily:{default:null,parseHTML:t=>t.style.fontFamily?.replace(/['"]/g,""),renderHTML:t=>t.fontFamily?{style:`font-family: ${t.fontFamily}`}:{}},fontSize:{default:null,parseHTML:t=>t.style.fontSize?.replace(/['"]/g,""),renderHTML:t=>t.fontSize?{style:`font-size: ${t.fontSize}`}:{}},color:{default:null,parseHTML:t=>t.style.color?.replace(/['"]/g,""),renderHTML:t=>t.color?{style:`color: ${t.color}`}:{}},backgroundColor:{default:null,parseHTML:t=>t.style.backgroundColor?.replace(/['"]/g,""),renderHTML:t=>!t.backgroundColor||t.backgroundColor==="transparent"?{}:{style:`background-color: ${t.backgroundColor}`}}}},addCommands(){return{setFontFamily:t=>({chain:o})=>o().setMark("textStyle",{fontFamily:t}).run(),unsetFontFamily:()=>({chain:t})=>t().setMark("textStyle",{fontFamily:null}).removeEmptyTextStyle().run(),setFontSize:t=>({chain:o})=>o().setMark("textStyle",{fontSize:t}).run(),unsetFontSize:()=>({chain:t})=>t().setMark("textStyle",{fontSize:null}).removeEmptyTextStyle().run(),setColor:t=>({chain:o})=>o().setMark("textStyle",{color:t}).run(),unsetColor:()=>({chain:t})=>t().setMark("textStyle",{color:null}).removeEmptyTextStyle().run(),setBackgroundColor:t=>({chain:o})=>o().setMark("textStyle",{backgroundColor:t}).run(),unsetBackgroundColor:()=>({chain:t})=>t().setMark("textStyle",{backgroundColor:null}).removeEmptyTextStyle().run()}}}),tg=n=>n.create({name:"iframe",group:"block",inline:!1,atom:!0,selectable:!0,addAttributes(){return{src:{default:null},width:{default:"100%"},height:{default:"280"},frameborder:{default:"0"},allow:{default:null},allowfullscreen:{default:null},referrerpolicy:{default:null},loading:{default:null},class:{default:null},title:{default:null},style:{default:null}}},parseHTML(){return[{tag:"iframe"}]},renderHTML({HTMLAttributes:t}){return["iframe",t]}});async function ng(){if(typeof window>"u")return null;const n=window;return n[un]||(n[un]=Promise.all([st(at.core),st(at.starterKit),st(at.textStyle),st(at.table),st(at.highlight),st(at.subscript),st(at.superscript),st(at.link),st(at.image),st(at.textAlign),st(at.heading),st(at.paragraph),st(at.pmModel)]).then(([t,o,r,l,a,s,c,i,d,p,m,y,h])=>{const f=Ke(t,"Editor"),x=Ke(t,"Node"),b=Ke(o,"StarterKit"),E=Ke(r,"TextStyle"),v=Ke(l,"TableKit"),_=Ke(l,"Table"),N=Ke(l,"TableRow"),R=Ke(l,"TableCell"),ee=Ke(l,"TableHeader"),j=Ke(a,"Highlight"),V=Ke(s,"Subscript"),S=Ke(c,"Superscript"),C=Ke(i,"Link"),T=Ke(d,"Image"),H=Ke(p,"TextAlign"),oe=Ke(m,"Heading"),A=Ke(y,"Paragraph"),L=Ke(h,"DOMParser");if(!f||!x||!b||!E||!v||!_||!N||!R||!ee||!j||!V||!S||!C||!T||!H||!oe||!A||!L)throw new Error("Failed to resolve one or more Tiptap modules");return{Editor:f,ProseMirrorDOMParser:L,StarterKit:b,ExtendedTextStyle:eg(E),Highlight:j,Subscript:V,Superscript:S,Link:C,Image:T,TextAlign:H,CustomHeading:Jh(oe),CustomParagraph:A,CustomTableKit:Qh(v,_,N,R,ee),Iframe:tg(x)}}).catch(t=>{throw delete n[un],t})),n[un]}const Tt=n=>n.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),pn=n=>{let t=Tt(n||"");return t=t.replace(/!\[([^\]]*)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(o,r,l,a)=>{const s=a?` title="${Tt(a)}"`:"";return`<img src="${Tt(l)}" alt="${Tt(r)}"${s}>`}),t=t.replace(/\[([^\]]+)]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,(o,r,l,a)=>{const s=a?` title="${Tt(a)}"`:"";return`<a href="${Tt(l)}"${s} target="_blank" rel="noopener noreferrer">${r}</a>`}),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),t=t.replace(/__([^_]+)__/g,"<strong>$1</strong>"),t=t.replace(/~~([^~]+)~~/g,"<del>$1</del>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/_([^_\n]+)_/g,"<em>$1</em>"),t},mn=n=>/^\s*\d+\.\s+/.test(n),Eo=n=>/^\s*[-*+]\s+/.test(n),il=n=>/^\s*[-*+]\s+\[[ xX]\]\s+/.test(n),_o=n=>/^\s*>\s?/.test(n),Bo=n=>/^\s*\|?(?:\s*:?-{3,}:?\s*\|)+\s*:?-{3,}:?\s*\|?\s*$/.test(n),cl=n=>n.trim().replace(/^\|/,"").replace(/\|$/,"").split("|").map(t=>pn(t.trim())),og=(n,t)=>{const o=n[t],r=n[t+1];if(!o||!r||!o.includes("|")||!Bo(r))return null;const l=cl(o),a=[];let s=t+2;for(;s<n.length&&n[s].includes("|")&&n[s].trim()!=="";){const d=cl(n[s]);a.push(`<tr>${d.map(p=>`<td>${p}</td>`).join("")}</tr>`),s+=1}const c=`<thead><tr>${l.map(d=>`<th>${d}</th>`).join("")}</tr></thead>`,i=a.length?`<tbody>${a.join("")}</tbody>`:"";return{html:`<table>${c}${i}</table>`,nextIndex:s}},rg=(n,t)=>{const o=mn(n[t]),r=o?"ol":"ul",l=[];let a=t;for(;a<n.length;){const s=n[a];if(s.trim()===""||!(o?mn(s):(Eo(s)||il(s))&&!mn(s)))break;const i=s.match(/^\s*[-*+]\s+\[([ xX])\]\s+(.*)$/);if(i){const d=i[1].toLowerCase()==="x";l.push(`<li><input type="checkbox" disabled${d?" checked":""}> ${pn(i[2])}</li>`)}else{const d=s.replace(/^\s*(?:[-*+]|\d+\.)\s+/,"");l.push(`<li>${pn(d)}</li>`)}a+=1}return{html:`<${r}>${l.join("")}</${r}>`,nextIndex:a}},lg=(n,t)=>{const r=n[t].replace(/^```/,"").trim(),l=[];let a=t+1;for(;a<n.length&&!n[a].startsWith("```");)l.push(n[a]),a+=1;return{html:`<pre><code${r?` class="language-${Tt(r)}"`:""}>${Tt(l.join(`
|
|
6
|
+
`))}</code></pre>`,nextIndex:a<n.length?a+1:a}},ag=(n,t)=>{const o=[];let r=t;for(;r<n.length;){const l=n[r];if(l.trim()===""||l.startsWith("```")||/^#{1,6}\s+/.test(l)||/^---+$/.test(l.trim())||/^\*\*\*+$/.test(l.trim())||_o(l)||mn(l)||Eo(l)||r+1<n.length&&l.includes("|")&&Bo(n[r+1]))break;o.push(l.trim()),r+=1}return{html:`<p>${pn(o.join(" "))}</p>`,nextIndex:r}},dl=n=>{const o=(n||"").replace(/\r\n/g,`
|
|
7
7
|
`).split(`
|
|
8
|
-
`),r=[];let l=0;for(;l<
|
|
9
|
-
`))}</blockquote>`);continue}if(
|
|
10
|
-
`)},
|
|
11
|
-
`);function
|
|
8
|
+
`),r=[];let l=0;for(;l<o.length;){const a=o[l],s=a.trim();if(!s){l+=1;continue}if(a.startsWith("```")){const d=lg(o,l);r.push(d.html),l=d.nextIndex;continue}const c=a.match(/^(#{1,6})\s+(.*)$/);if(c){const d=c[1].length;r.push(`<h${d}>${pn(c[2])}</h${d}>`),l+=1;continue}if(/^---+$/.test(s)||/^\*\*\*+$/.test(s)){r.push("<hr>"),l+=1;continue}if(a.includes("|")&&l+1<o.length&&Bo(o[l+1])){const d=og(o,l);if(d){r.push(d.html),l=d.nextIndex;continue}}if(_o(a)){const d=[];for(;l<o.length&&_o(o[l]);)d.push(o[l].replace(/^\s*>\s?/,"")),l+=1;r.push(`<blockquote>${dl(d.join(`
|
|
9
|
+
`))}</blockquote>`);continue}if(mn(a)||Eo(a)||il(a)){const d=rg(o,l);r.push(d.html),l=d.nextIndex;continue}const i=ag(o,l);r.push(i.html),l=i.nextIndex}return r.join("")},Vo=n=>(n.textContent||"").replace(/\u00a0/g," "),ul=n=>Array.from(n.childNodes).map(t=>So(t)).join(""),sg=n=>{const t=Array.from(n.querySelectorAll("tr"));if(!t.length)return"";const o=c=>`| ${Array.from(c.children).map(d=>ul(d).trim()).join(" | ")} |`,r=t[0],l=r?Array.from(r.children).length:0,a=`| ${Array(Math.max(l,1)).fill("---").join(" | ")} |`,s=t.slice(1).map(c=>o(c));return[o(r),a,...s].join(`
|
|
10
|
+
`)},pl=(n,t=!1)=>Array.from(n.children).filter(o=>o.nodeType===Node.ELEMENT_NODE).map((o,r)=>{const l=o,a=l.querySelector('input[type="checkbox"]'),s=Array.from(l.childNodes).filter(c=>!(c instanceof HTMLInputElement)).map(c=>So(c)).join("").trim();return a?`- [${a.checked?"x":" "}] ${s}`:t?`${r+1}. ${s}`:`- ${s}`}).join(`
|
|
11
|
+
`);function So(n){if(n.nodeType===Node.TEXT_NODE)return Vo(n);if(n.nodeType!==Node.ELEMENT_NODE)return"";const t=n,o=t.tagName.toLowerCase(),r=ul(t);switch(o){case"br":return`
|
|
12
12
|
`;case"p":return`${r.trim()}
|
|
13
13
|
|
|
14
|
-
`;case"strong":case"b":return`**${r}**`;case"em":case"i":return`*${r}*`;case"del":case"s":return`~~${r}~~`;case"code":return t.parentElement?.tagName.toLowerCase()==="pre"?r:`\`${r}\``;case"pre":{const l=t.querySelector("code"),
|
|
15
|
-
${
|
|
14
|
+
`;case"strong":case"b":return`**${r}**`;case"em":case"i":return`*${r}*`;case"del":case"s":return`~~${r}~~`;case"code":return t.parentElement?.tagName.toLowerCase()==="pre"?r:`\`${r}\``;case"pre":{const l=t.querySelector("code"),c=(l?.className||"").match(/language-([a-z0-9_-]+)/i)?.[1]||"",i=Vo(l||t);return`\`\`\`${c}
|
|
15
|
+
${i}
|
|
16
16
|
\`\`\`
|
|
17
17
|
|
|
18
18
|
`}case"blockquote":return`${r.trim().split(`
|
|
19
19
|
`).map(l=>`> ${l}`).join(`
|
|
20
20
|
`)}
|
|
21
21
|
|
|
22
|
-
`;case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":{const l=Number(
|
|
22
|
+
`;case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":{const l=Number(o[1]);return`${"#".repeat(l)} ${r.trim()}
|
|
23
23
|
|
|
24
|
-
`}case"ul":return`${
|
|
24
|
+
`}case"ul":return`${pl(t,!1)}
|
|
25
25
|
|
|
26
|
-
`;case"ol":return`${
|
|
26
|
+
`;case"ol":return`${pl(t,!0)}
|
|
27
27
|
|
|
28
28
|
`;case"a":{const l=t.getAttribute("href")||"";return`[${r||l}](${l})`}case"img":{const l=t.getAttribute("alt")||"",a=t.getAttribute("src")||"";return a?``:""}case"hr":return`---
|
|
29
29
|
|
|
30
|
-
`;case"table":return`${
|
|
30
|
+
`;case"table":return`${sg(t)}
|
|
31
31
|
|
|
32
|
-
`;default:return r}}const
|
|
32
|
+
`;default:return r}}const ml=n=>{if(!n)return"";if(typeof window>"u"||typeof DOMParser>"u")return n;const o=new DOMParser().parseFromString(n,"text/html");return Array.from(o.body.childNodes).map(r=>So(r)).join("").replace(/\n{3,}/g,`
|
|
33
33
|
|
|
34
|
-
`).trim()},
|
|
35
|
-
`)},Co=async(o,t)=>t!=="md"?o||"":nl(o||""),qh=async(o,t)=>t!=="md"?Hh(o||""):ll(o||""),Kh=async(o,t)=>t!=="md"?o||"":ll(o||""),Wh=o=>String(o).trim().toLowerCase().split("-")[0],Gh=()=>typeof window>"u"?"uk":Wh(localStorage.getItem("language")||localStorage.getItem("locale")||navigator.language||"uk"),Yh=(o,t)=>{const n=t.replace(/^form\.richtext\./,"");return fo?.[o]?.form?.richtext?.[n]||fo?.uk?.form?.richtext?.[n]||t},al=o=>o.startsWith("form.richtext.")?o:`form.richtext.${o}`;function Un(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties,n=t?.$i18n;return{t:l=>{const a=t?.$t,s=t?.$te,i=typeof n?.te=="function"?n.te.bind(n):null;if(typeof a=="function"){const c=al(l);if((typeof s=="function"?s(c):typeof i=="function"?i(c):null)!==!1){const p=a(c);if(p&&p!==c)return p}}return Yh(Gh(),al(l))}}}const Xh={components:{Quote:W.Quote},props:{editor:Object},methods:{toggleBlockquote(){this.editor&&this.editor.chain().toggleBlockquote().run()}}};function Zh(o,t,n,r,l,a){const s=e.resolveComponent("Quote");return e.openBlock(),e.createElementBlock("button",{title:"Blockquote",onClick:t[0]||(t[0]=(...i)=>a.toggleBlockquote&&a.toggleBlockquote(...i)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":n.editor?.isActive("blockquote")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const Jh=Ce(Xh,[["render",Zh]]),Qh={components:{List:W.List},props:{editor:Object},methods:{toggleBulletList(){this.editor&&this.editor.chain().focus().toggleBulletList().run()}}};function eg(o,t,n,r,l,a){const s=e.resolveComponent("List");return e.openBlock(),e.createElementBlock("button",{title:"Bullet List",onClick:t[0]||(t[0]=(...i)=>a.toggleBulletList&&a.toggleBulletList(...i)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("bulletList")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const tg=Ce(Qh,[["render",eg]]),ng={components:{ListOrdered:W.ListOrdered},props:{editor:Object},methods:{toggleOrderedList(){this.editor&&this.editor.chain().focus().toggleOrderedList().run()}}};function og(o,t,n,r,l,a){const s=e.resolveComponent("ListOrdered");return e.openBlock(),e.createElementBlock("button",{title:"Ordered List",onClick:t[0]||(t[0]=(...i)=>a.toggleOrderedList&&a.toggleOrderedList(...i)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("orderedList")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const rg=Ce(ng,[["render",og]]),lg={components:{CodeXml:W.CodeXml},props:{editor:Object},methods:{toggleCodeBlock(){this.editor&&this.editor.chain().focus().toggleCodeBlock().run()}}};function ag(o,t,n,r,l,a){const s=e.resolveComponent("CodeXml");return e.openBlock(),e.createElementBlock("button",{title:"Code Block",onClick:t[0]||(t[0]=(...i)=>a.toggleCodeBlock&&a.toggleCodeBlock(...i)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("codeBlock")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const sg=Ce(lg,[["render",ag]]),ig={components:{Bold:W.Bold},props:{editor:Object},methods:{toggleBold(){this.editor&&this.editor.commands.toggleBold()}}};function cg(o,t,n,r,l,a){const s=e.resolveComponent("Bold");return e.openBlock(),e.createElementBlock("button",{title:"Bold Text",onClick:t[0]||(t[0]=(...i)=>a.toggleBold&&a.toggleBold(...i)),class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("bold")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Bold",-1))],2)}const dg=Ce(ig,[["render",cg]]),ug={components:{Italic:W.Italic},props:{editor:Object},methods:{toggleItalic(){this.editor&&this.editor.chain().toggleItalic().run()}}};function pg(o,t,n,r,l,a){const s=e.resolveComponent("Italic");return e.openBlock(),e.createElementBlock("button",{title:"Italic Text",onClick:t[0]||(t[0]=(...i)=>a.toggleItalic&&a.toggleItalic(...i)),class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("italic")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Italic",-1))],2)}const mg=Ce(ug,[["render",pg]]),fg={__name:"vs-editor-underline",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().toggleUnderline().run()};return(r,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Underline",onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[o.editor?.isActive("underline")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(W.Underline),{class:"h-4 w-4"})],2))}},hg={__name:"vs-editor-strike",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().toggleStrike().run()};return(r,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Strikethrough",onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[o.editor?.isActive("strike")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(W.Strikethrough),{class:"h-4 w-4"})],2))}},gg={components:{X:W.X},props:{visible:{type:Boolean,default:()=>!1},modelValue:{type:Boolean,default:()=>!1},title:{type:String,default:()=>""},size:{type:String,default:()=>""},closeClickBack:{type:Boolean,default:()=>!1}},emits:["update:visible","update:modelValue","onClose","confirm","cancel"],inheritAttrs:!1,name:"vs-dialog",mounted(){window.addEventListener("keydown",this.checkKey)},unmounted(){window.removeEventListener("keydown",this.checkKey)},computed:{hasSlot(){return!!this.$slots?.footer},checkSize(){return this.size==="small"?"md:w-5/12 w-9/12":this.size==="medium"?"md:w-6/12 w-9/12":"lg:w-7/12 w-11/12"}},methods:{checkKey({key:o}){o==="Escape"&&this.handleClose()},handleClose(){this.$emit("update:visible",!1),this.$emit("update:modelValue",!1),this.$emit("onClose")},handleConfirm(){this.$emit("confirm"),this.handleClose()},handleCancel(){this.$emit("cancel"),this.handleClose()},closeByClickBack(o,t){t&&o.target.classList.contains("vs-dialog-overlay")&&this.handleClose()}}},yg={key:0,class:"vsTailwind ui-dialog__wrapper"},bg={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},kg={class:"font-medium text-gray-800 dark:text-[#ffffff]"},xg={class:"ui-dialog__content p-4"},wg={key:0,class:"flex justify-end gap-x-2"};function _g(o,t,n,r,l,a){const s=e.resolveComponent("X");return e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.visible||n.modelValue?(e.openBlock(),e.createElementBlock("div",yg,[e.createElementVNode("div",{onMousedown:t[1]||(t[1]=i=>a.closeByClickBack(i,n.closeClickBack)),class:"vs-dialog-overlay vs-dialog w-full h-full fixed top-0 start-0 z-[100001] bg-black bg-opacity-50"},[e.createVNode(e.Transition,{name:"content",appear:""},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["ui-dialog__modal opacity-1 flex flex-col bg-white dark:bg-[#1A1A1A] border dark:border-[#454545] pointer-events-auto shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-xl",[a.checkSize]])},[e.createElementVNode("div",bg,[e.createElementVNode("h3",kg,e.toDisplayString(n.title),1),e.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600",onClick:t[0]||(t[0]=(...i)=>a.handleClose&&a.handleClose(...i))},[t[2]||(t[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(s,{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",xg,[e.renderSlot(o.$slots,"default",{},void 0,!0)]),a.hasSlot?(e.openBlock(),e.createElementBlock("div",wg,[e.renderSlot(o.$slots,"footer",{handleClose:a.handleClose,handleConfirm:a.handleConfirm,handleCancel:a.handleCancel},void 0,!0)])):e.createCommentVNode("",!0)],2)]),_:3})],32)])):e.createCommentVNode("",!0)])}const sl=Ce(gg,[["render",_g],["__scopeId","data-v-56ad9010"]]),vg=e.defineComponent({components:{IconClose:W.X,IconSearch:W.Search,IconEmail:W.Mail},inheritAttrs:!1,props:{icon:{type:String,default:()=>""},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},modelValue:{type:String,default:()=>""},placeholder:{type:String,default:()=>""},iconPosition:{type:String,default:()=>"right"},type:{type:String,default:()=>"text"},style:{type:Object,default:()=>null},size:{type:String,default:()=>"md"},attrs:{type:Object,default:()=>{}}},emits:["onInput","update:modelValue","blur","focus"],computed:{checkSize(){return(this.style?.size||this.size)==="xs"?"h-[32px] text-sm":(this.style?.size||this.size)==="md"?"h-[38px] text-sm":(this.style?.size||this.size)==="lg"?"h-[46px] text-[20px]":"h-[38px] text-sm"},value:{get(){return this.modelValue},set(o){this.$emit("update:modelValue",o.trim())}},clearIconStyle(){return[{"right-8":this.icon&&this.iconPosition==="right","right-3":!this.icon||this.iconPosition!=="right","pointer-events-none":this.disabled}]},iconStylePosition(){return[{"left-3":this.icon&&this.iconPosition==="left","right-3":this.icon&&this.iconPosition==="right"}]},inputStyle(){return[{"!pr-8":this.clearable&&!this.icon,"!pr-7":this.clearable,"!pr-16":this.clearable&&this.icon&&this.iconPosition==="right","!pl-8":this.icon&&this.iconPosition==="left","!pr-[50px]":this.clearable&&this.value&&this.icon&&this.iconPosition==="right","!cursor-not-allowed bg-slate-100":this.disabled,"bg-white":!this.disabled}]}},methods:{handleInput(){this.$emit("onInput",this.modelValue)},handleBlur(){this.$emit("blur")},handleFocus(){this.$emit("focus")},clearInput(){this.$emit("update:modelValue",""),this.$emit("onInput","")},async inputFocus(){await this.$refs.vsText?.focus()}}}),Cg={class:"vs-form-text relative bg-white rounded-lg"},Eg={key:2,class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Bg=["disabled","type","placeholder"];function Vg(o,t,n,r,l,a){const s=e.resolveComponent("IconClose"),i=e.resolveComponent("IconSearch"),c=e.resolveComponent("IconEmail");return e.openBlock(),e.createElementBlock("div",Cg,[o.clearable&&o.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[0]||(t[0]=(...d)=>o.clearInput&&o.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),o.icon&&o.icon==="search"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 cursor-pointer",o.iconStylePosition])},[e.createVNode(i,{class:"h-4 w-4 stroke-gray-500 transition-all"})],2)):o.icon&&o.icon==="email"?(e.openBlock(),e.createElementBlock("div",Eg,[e.createVNode(c,{class:"h-4 w-4 stroke-gray-500 transition-all"})])):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 text-gray-500 cursor-pointer",["ti "+o.icon,o.iconStylePosition]])},null,2)),o.clearable&&o.value?(e.openBlock(),e.createElementBlock("div",{key:4,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[1]||(t[1]=(...d)=>o.clearInput&&o.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",e.mergeProps({ref:"vsText",disabled:o.disabled,type:o.type,onInput:t[2]||(t[2]=(...d)=>o.handleInput&&o.handleInput(...d)),placeholder:o.placeholder,"onUpdate:modelValue":t[3]||(t[3]=d=>o.value=d)},o.style?.attrs||o.attrs||{},{onFocus:t[4]||(t[4]=(...d)=>o.handleFocus&&o.handleFocus(...d)),onBlur:t[5]||(t[5]=(...d)=>o.handleBlur&&o.handleBlur(...d)),class:[[o.inputStyle,o.checkSize],"py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-sm text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"]}),null,16,Bg),[[e.vModelDynamic,o.value]])])}const il=Ce(vg,[["render",Vg],["__scopeId","data-v-eb21a54f"]]),Sg=["title"],$g={class:"flex flex-col gap-3 p-[20px]"},Ng={class:"relative flex items-center gap-2"},Ag={class:"flex-1"},Mg={key:0,class:"flex items-center gap-2 flex-shrink-0"},Fg=["title"],Dg=["title"],Tg={class:"flex items-center gap-2"},Lg={for:"openInNewTab",class:"text-sm text-gray-700 cursor-pointer"},Ig={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},Og=Object.assign({inheritAttrs:!1},{__name:"vs-editor-link",props:{editor:Object},setup(o){const{t}=Un(),n=o,r=e.ref(!1),l=e.ref(""),a=e.ref(!1),s=e.ref(!1),i=()=>{if(!n.editor)return;n.editor.chain().focus().extendMarkRange("link").run();const y=n.editor.getAttributes("link");y.href?(a.value=!0,l.value=y.href,s.value=y.target==="_blank"):(a.value=!1,l.value="",s.value=!1),r.value=!0},c=()=>{r.value=!1,l.value="",a.value=!1,s.value=!1},d=()=>{if(!n.editor||!l.value.trim())return;let y=l.value.trim();y.match(/^https?:\/\//i)||(y="https://"+y),n.editor.chain().focus().setLink({href:y,target:s.value?"_blank":null}).run(),c()},p=()=>{n.editor&&(n.editor.chain().focus().unsetLink().run(),c())},m=()=>{if(!l.value)return;let y=l.value.trim();y.match(/^https?:\/\//i)||(y="https://"+y),window.open(y,"_blank","noopener,noreferrer")};return(y,h)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("button",{title:e.unref(t)("form.richtext.link")||"Посилання",onClick:i,class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":o.editor?.isActive("link")}])},[e.createVNode(e.unref(W.Link2),{class:"h-4 w-4"})],10,Sg),e.createVNode(sl,{title:a.value?e.unref(t)("form.richtext.editLink")||"Редагувати посилання":e.unref(t)("form.richtext.linkTitle")||"Додати посилання",visible:r.value,"onUpdate:visible":h[2]||(h[2]=f=>r.value=f),size:"small"},{footer:e.withCtx(()=>[e.createElementVNode("div",Ig,[e.createElementVNode("button",{style:{border:"1px solid #000"},onClick:c,class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-black border-gray-200 rounded-lg !border-gray-200 hover:bg-gray-100 duration-300"},e.toDisplayString(e.unref(t)("form.richtext.cancel")||"Скасувати"),1),e.createElementVNode("button",{onClick:d,class:"py-2 px-3 inline-flex items-center gap-x-2 text-[14px] font-[400] whitespace-nowrap text-white bg-blue-500 rounded-lg !border-gray-200 hover:bg-blue-700 duration-300"},e.toDisplayString(a.value?e.unref(t)("form.richtext.update")||"Оновити":e.unref(t)("form.richtext.create")||"Створити"),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",$g,[e.createElementVNode("div",Ng,[e.createElementVNode("div",Ag,[e.createVNode(il,{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=f=>l.value=f),placeholder:e.unref(t)("form.richtext.linkUrl")||"Введіть URL",class:"w-full"},null,8,["modelValue","placeholder"])]),a.value?(e.openBlock(),e.createElementBlock("div",Mg,[e.createElementVNode("button",{onClick:m,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none transition-colors",title:e.unref(t)("form.richtext.openLink")||"Відкрити посилання"},[e.createVNode(e.unref(W.ExternalLink),{class:"h-4 w-4"})],8,Fg),e.createElementVNode("button",{onClick:p,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-red-600 hover:bg-red-50 focus:outline-none transition-colors",title:e.unref(t)("form.richtext.removeLink")||"Видалити посилання"},[e.createVNode(e.unref(W.Trash2),{class:"h-4 w-4"})],8,Dg)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",Tg,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"openInNewTab","onUpdate:modelValue":h[1]||(h[1]=f=>s.value=f),class:"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500"},null,512),[[e.vModelCheckbox,s.value]]),e.createElementVNode("label",Lg,e.toDisplayString(e.unref(t)("form.richtext.openInNewTab")||"Відкривати в новій вкладці"),1)])])]),_:1},8,["title","visible"])],64))}}),un=async(o,t,n,r=10)=>{if(!t||!n)return;await e.nextTick();const l=await n?.getBoundingClientRect(),a=await t?.getBoundingClientRect();if(!a||!l)return;const s=await parseInt(t?.getBoundingClientRect()?.height),i=await parseInt(t?.getBoundingClientRect()?.width),c=await parseInt(n?.getBoundingClientRect()?.height),d=await parseInt(n?.getBoundingClientRect()?.width),p=await window.innerHeight,m=await window.innerWidth;let y=0,h=0;const f=a.bottom+r+c;switch(o){case"top":a.top-l.height-r<0?y=a.top-l.height+r+c+s:y=a.top-l.height-r,m>d+a.right+30?h=a.left-l.width/2+a.width/2:h=m-30-d;break;case"bottom":p>f?y=a.bottom+r:y=a.bottom-r-c-s,h=a.left-l.width/2+a.width/2;break;case"left":y=a.top-l.height/2+a.height/2,a.left-l.width-r>0?h=a.left-l.width-r:h=10;break;case"right":y=a.top-l.height/2+a.height/2,m-i>d?h=a.right+r:h=m-30-d;break;case"top-right":a.top-l.height-r<0?y=a.top-l.height+r+c+s:y=a.top-l.height-r,m-i>d?h=a.right+r:h=m-30-d;break;case"top-left":a.top-l.height-r<0?y=a.top-l.height+r+c+s:y=a.top-l.height-r,a.left-l.width-r>0?h=a.left-l.width-r:h=10;break;case"top-start":a.top-l.height-r<0?y=a.top-l.height+r+c+s:y=a.top-l.height-r,a.left>0?h=a.left:h=10;break;case"bottom-right":p>f?y=a.bottom+r:y=a.bottom-r-c-s,m-i>d?h=a.left:h=m-30-d;break;case"bottom-left":p>f?y=a.bottom+r:y=a.bottom-r-c-s,a.left>0?h=a.right-d:h=10;break;case"bottom-start":p>f?y=a.bottom+r:y=a.bottom-r-c-s,a.left>0?h=a.left:h=10;break}y+c>p?y=p-c-r:y<0&&(y=r),h+d>m?h=m-d-r:h<0&&(h=r),n instanceof HTMLElement&&(n.style.top=`${y}px`,n.style.left=`${h}px`,n.style.position="fixed")},Rg={class:"text-center"},Pg={class:"py-2 px-4 w-full text-sm text-stone-800 bg-white shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-lg focus:outline-none focus:bg-stone-100 dark:bg-neutral-900 dark:text-neutral-200 dark:focus:bg-neutral-800 after:h-4 after:absolute after:-bottom-4 after:start-0 after:w-full before:h-4 before:absolute before:-top-4 before:start-0 before:w-full"},Ft=Object.assign({inheritAttrs:!1},{__name:"vs-popover",props:{isOpen:{type:Boolean,default:()=>!1},placement:{type:String,default:"top"},gap:{type:Number,default:8},width:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},trigger:{type:String,default:"click"},teleport:{type:String,default:"body"}},emits:["isvisible"],setup(o,{expose:t,emit:n}){const r=o,l=n,a=e.ref(!1),s=e.ref([]),i=e.ref(null),c=e.ref(null),d=e.ref(null);e.watch(a,B=>{B?(p(),window.addEventListener("resize",()=>un(r.placement,c.value,d.value)),un(r.placement,c.value,d.value)):window.removeEventListener("resize",()=>un(r.placement,c.value,d.value)),l("isvisible",B)}),e.onMounted(()=>{window.addEventListener("click",b),window.addEventListener("popstate",v),window.addEventListener("scroll",w,!0),p()}),e.onBeforeUnmount(()=>{window.removeEventListener("click",b),window.removeEventListener("popstate",v),m()});const p=()=>{let B=i.value;for(;B&&B!==document.body;)(B.scrollHeight>B.clientHeight||B.scrollWidth>B.clientWidth)&&(B.addEventListener("scroll",k),s.value.push(B)),B=B.parentElement;document.body&&(document.body.addEventListener("scroll",k),s.value.push(document.body))},m=()=>{s.value.forEach(B=>{B.removeEventListener("scroll",k)}),s.value=[]},y=()=>{a.value=!0,un(r.placement,c.value,d.value)},h=()=>{a.value=!1},f=async()=>{await un(r.placement,c.value,d.value),a.value=!a.value},k=()=>{a.value=!1},b=B=>{if(!B){a.value=!1;return}c.value?.contains(B.target)||d.value?.contains(B.target)||(a.value=!1)},v=()=>{a.value&&(a.value=!1)},w=B=>{a.value&&d.value&&!d.value.contains(B.target)&&(a.value=!1)};return t({togglePopover:f}),(B,N)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"popover",ref:i,class:"vs-popover inline-block"},[e.createElementVNode("div",Rg,[o.trigger==="click"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverRef",ref:c,onClick:f,class:e.normalizeClass({"pointer-events-none":o.disabled})},[e.renderSlot(B.$slots,"reference",{},()=>[N[0]||(N[0]=e.createElementVNode("button",null,"Click me!",-1))])],2)):e.createCommentVNode("",!0),o.trigger==="hover"?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"popoverRef",ref:c,onMouseover:y,onMouseleave:h,class:e.normalizeClass({"pointer-events-none":o.disabled})},[e.renderSlot(B.$slots,"reference",{},()=>[N[1]||(N[1]=e.createElementVNode("button",null,"Click me!",-1))])],34)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:o.teleport},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content",o.placement]),ref_key:"contentPop",ref:d,style:e.normalizeStyle({width:o.width?o.width+"px":"fit-content",zIndex:100001})},[e.createElementVNode("div",Pg,[e.renderSlot(B.$slots,"default",{},()=>[N[2]||(N[2]=e.createElementVNode("span",null,"Popover content",-1))])])],6),[[e.vShow,a.value]])]),_:3})],8,["to"]))])],512))}}),zg={class:"flex flex-col gap-[2px] p-[2px]"},jg=["onClick"],Ug={__name:"vs-editor-table",props:{editor:Object},setup(o){const{t}=Un(),n=o,r=e.ref(!1),l=e.ref("popover"),a=()=>{n.editor&&(n.editor.chain().focus().insertTable({rows:3,cols:3,withHeaderRow:!0}).run(),l.value.togglePopover())},s=()=>{n.editor&&(n.editor.chain().focus().addColumnAfter().run(),l.value.togglePopover())},i=()=>{n.editor&&(n.editor.chain().focus().addRowAfter().run(),l.value.togglePopover())},c=()=>{n.editor&&(n.editor.chain().focus().deleteColumn().run(),l.value.togglePopover())},d=()=>{n.editor&&(n.editor.chain().focus().deleteRow().run(),l.value.togglePopover())},p=()=>{n.editor&&(n.editor.chain().focus().deleteTable().run(),l.value.togglePopover())},m=()=>{n.editor&&(n.editor.chain().focus().mergeCells().run(),l.value.togglePopover())},y=()=>{n.editor&&(n.editor.chain().focus().splitCell().run(),l.value.togglePopover())},h=e.computed(()=>[{text:t("form.richtext.createTable"),function:a},{text:t("form.richtext.addColumn"),function:s},{text:t("form.richtext.addRow"),function:i},{text:t("form.richtext.deleteColumn"),function:c},{text:t("form.richtext.deleteRow"),function:d},{text:t("form.richtext.deleteTable"),function:p},{text:t("form.richtext.mergeCells"),function:m},{text:t("form.richtext.splitCells"),function:y}]);return(f,k)=>(e.openBlock(),e.createBlock(Ft,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:k[0]||(k[0]=b=>r.value=b)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Table",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[r.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(W.Table2),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",zg,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(b,v)=>(e.openBlock(),e.createElementBlock("button",{key:v,onClick:b?.function,class:"px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded"},e.toDisplayString(b.text),9,jg))),128))])]),_:1},512))}},Hg={class:"flex gap-[4px] p-1"},qg=["title","onClick"],Kg={__name:"vs-editor-align",props:{editor:Object},setup(o){const t=o,n={left:W.AlignLeft,center:W.AlignCenter,right:W.AlignRight,justify:W.AlignJustify},r=e.ref(!1),l=e.ref("popover"),a=e.ref("left"),s=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"left"})||t.editor.isActive("heading",{textAlign:"left"}):!1),i=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"right"})||t.editor.isActive("heading",{textAlign:"right"}):!1),c=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"center"})||t.editor.isActive("heading",{textAlign:"center"}):!1),d=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"justify"})||t.editor.isActive("heading",{textAlign:"justify"}):!1),p=e.computed(()=>s.value||i.value||c.value||d.value),m=()=>{i.value?a.value="right":c.value?a.value="center":d.value?a.value="justify":a.value="left"};e.watch([s,i,c,d],()=>{m()},{immediate:!0}),e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",m),t.editor.on("update",m))}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",m),t.editor.off("update",m))});const y=f=>{t.editor&&(t.editor.chain().focus().setTextAlign(f).run(),a.value=f)},h=e.ref([{id:"left",isActive:s},{id:"center",isActive:c},{id:"right",isActive:i},{id:"justify",isActive:d}]);return(f,k)=>(e.openBlock(),e.createBlock(Ft,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:k[0]||(k[0]=b=>r.value=b)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Text Align",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[p.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[a.value]),{height:"16",width:"16"}))],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Hg,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,b=>(e.openBlock(),e.createElementBlock("button",{title:"Text align "+b?.id,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":b?.isActive}]),key:b?.id,onClick:v=>y(b?.id)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[b?.id]),{height:"16",width:"16"}))],10,qg))),128))])]),_:1},512))}},Wg={class:"flex flex-col gap-[2px] p-[2px]"},Gg=["onClick"],Yg={__name:"vs-editor-type-tag",props:{editor:Object},setup(o){const{t}=Un(),n=o,r=e.ref(!1),l=e.ref("popover"),a=()=>{n.editor&&(n.editor?.chain().focus().setParagraph().run(),l.value.togglePopover())},s=c=>{n.editor&&(n.editor?.chain().focus().toggleHeading({level:c}).run(),l.value.togglePopover())},i=e.computed(()=>[{text:t("form.richtext.heading1"),id:1,style:"font-[700] text-[30px]"},{text:t("form.richtext.heading2"),id:2,style:"font-[700] text-[26px]"},{text:t("form.richtext.heading3"),id:3,style:"font-[700] text-[22px]"},{text:t("form.richtext.heading4"),id:4,style:"font-[700] text-[18px]"},{text:t("form.richtext.heading5"),id:5,style:"font-[500] text-[16px]"},{text:t("form.richtext.heading6"),id:6,style:"font-[400] text-[14px]"}]);return(c,d)=>(e.openBlock(),e.createBlock(Ft,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:d[0]||(d[0]=p=>r.value=p)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Type Tag",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[r.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(W.Type),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",Wg,[e.createElementVNode("button",{onClick:a,class:e.normalizeClass(["px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded",[o.editor?.isActive("paragraph")?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)("form.richtext.paragraph")),3),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(p,m)=>(e.openBlock(),e.createElementBlock("button",{key:m,onClick:y=>s(p?.id),class:e.normalizeClass(["px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded leading-[100%]",[p?.style,o.editor?.isActive("heading",{level:p?.id})?"bg-gray-100":""]])},e.toDisplayString(e.unref(t)(`form.richtext.heading${p?.id}`)),11,Gg))),128))])]),_:1},512))}},Xg={components:{VsText:il},inheritAttrs:!1,events:["update:modelValue"],props:{modelValue:{type:String},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},isTextInputShown:{type:Boolean,default:()=>!0}},computed:{value:{get(){return this.modelValue??""},set(o){this.$emit("update:modelValue",o)}}}},Zg={class:"flex items-center w-full max-w-[182px]"},Jg=["disabled"];function Qg(o,t,n,r,l,a){const s=e.resolveComponent("vs-text");return e.openBlock(),e.createElementBlock("div",Zg,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=i=>a.value=i),type:"color",class:e.normalizeClass(["w-[38px] h-[38px] min-h-[38px] min-w-[38px] py-[2px] px-[3px] -ml-1 dark:bg-neutral-800 border dark:border-neutral-700 border-stone-200 rounded-lg",n.disabled?"cursor-not-allowed":"cursor-pointer"]),disabled:n.disabled},null,10,Jg),[[e.vModelText,a.value]]),n.isTextInputShown?(e.openBlock(),e.createBlock(s,{key:0,modelValue:a.value,"onUpdate:modelValue":t[1]||(t[1]=i=>a.value=i),class:"ml-2 w-full",disabled:n.disabled,clearable:n.clearable},null,8,["modelValue","disabled","clearable"])):e.createCommentVNode("",!0)])}const cl=Ce(Xg,[["render",Qg]]),e0={class:"flex gap-[4px] mb-[8px]"},t0={class:"grid grid-rows-3 grid-cols-7"},n0={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},o0=["onClick","title"],r0={__name:"vs-editor-color",props:{editor:Object},setup(o){const t=o,n=e.ref(null),r=e.ref("#000000"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").color||"#000000"),a=e.computed(()=>l.value!=="#000000"),s=()=>{t.editor&&(r.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const i=e.ref(["#172B4D","#0747A6","#008DA6","#006644","#FF991F","#BF2600","#403294","#97A0AF","#4C9AFF","#00B8D9","#36B37E","#FFC400","#FF5630","#6554C0","#FFFFFF","#B3D4FF","#B3F5FF","#ABF5D1","#FFF0B3","#FFBDAD","#EAE6FF"]),c=m=>{t.editor&&(t.editor.chain().focus().setColor(m).run(),r.value=m,n.value&&n.value.togglePopover())},d=()=>{c(r.value)},p=m=>({"#172B4D":"Default","#0747A6":"Bright blue","#008DA6":"Bright blue-green","#006644":"Bright green","#FF991F":"Bright orange","#BF2600":"Bright red","#403294":"Bright purple","#97A0AF":"Gray","#4C9AFF":"Blue","#00B8D9":"Blue-green","#36B37E":"Green","#FFC400":"Yellow","#FF5630":"Red","#6554C0":"Purple","#FFFFFF":"White","#B3D4FF":"Bright blue","#B3F5FF":"Bright blue-green","#ABF5D1":"Bright green","#FFF0B3":"Bright yellow","#FFBDAD":"Bright red","#EAE6FF":"Bright purple"})[m]||m;return(m,y)=>(e.openBlock(),e.createBlock(Ft,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Text Color",class:e.normalizeClass(["flex flex-col h-[30px] min-w-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-100":a.value}])},[y[1]||(y[1]=e.createElementVNode("span",{class:"leading-none"},"A",-1)),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",e0,[e.createVNode(cl,{modelValue:r.value,"onUpdate:modelValue":y[0]||(y[0]=h=>r.value=h)},null,8,["modelValue"]),e.createElementVNode("button",{onClick:d,class:"h-[38px] w-[38px] bg-blue-500 shrink-0 border rounded-md flex items-center justify-center hover:bg-blue-700 duration-300"},[e.createVNode(e.unref(W.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",t0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",n0,[e.createElementVNode("button",{class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:h}),onClick:f=>c(h),title:p(h)},[r.value===h?(e.openBlock(),e.createBlock(e.unref(W.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,o0)])]))),128))])])]),_:1},512))}},l0={class:"flex gap-[4px] mb-[8px]"},a0={class:"grid grid-rows-3 grid-cols-7"},s0={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},i0=["onClick","title"],c0=["onClick","title"],d0={__name:"vs-editor-background-color",props:{editor:Object},setup(o){const t=o,n=e.ref(null),r=e.ref("transparent"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").backgroundColor||"transparent"),a=e.computed(()=>l.value!=="transparent"&&l.value!==""),s=()=>{t.editor&&(r.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const i=e.ref(["#172B4D","#0747A6","#008DA6","#006644","#FF991F","#BF2600","#403294","#97A0AF","#4C9AFF","#00B8D9","#36B37E","#FFC400","#FF5630","#6554C0","#FFFFFF","#B3D4FF","#B3F5FF","#ABF5D1","#FFF0B3","#FFBDAD","#EAE6FF"]),c=m=>{t.editor&&(t.editor.chain().focus().setBackgroundColor(m).run(),r.value=m,n.value&&n.value.togglePopover())},d=()=>{c(r.value)},p=m=>({"#172B4D":"Default","#0747A6":"Bright blue","#008DA6":"Bright blue-green","#006644":"Bright green","#FF991F":"Bright orange","#BF2600":"Bright red","#403294":"Bright purple","#97A0AF":"Gray","#4C9AFF":"Blue","#00B8D9":"Blue-green","#36B37E":"Green","#FFC400":"Yellow","#FF5630":"Red","#6554C0":"Purple",transparent:"Transparent","#B3D4FF":"Bright blue","#B3F5FF":"Bright blue-green","#ABF5D1":"Bright green","#FFF0B3":"Bright yellow","#FFBDAD":"Bright red","#EAE6FF":"Bright purple"})[m]||m;return(m,y)=>(e.openBlock(),e.createBlock(Ft,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Background Color",class:e.normalizeClass(["flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-100":a.value}])},[e.createVNode(e.unref(W.PaintBucket),{class:"h-4 w-4"}),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",l0,[e.createVNode(cl,{modelValue:r.value,"onUpdate:modelValue":y[0]||(y[0]=h=>r.value=h)},null,8,["modelValue"]),e.createElementVNode("button",{onClick:d,class:"h-[38px] w-[38px] bg-blue-500 shrink-0 border rounded-md flex items-center justify-center hover:bg-blue-700 duration-300"},[e.createVNode(e.unref(W.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",a0,[e.createElementVNode("button",{onClick:y[1]||(y[1]=h=>c("transparent")),class:"col-span-7 flex items-center justify-center gap-2 bg-gray-100 rounded-md py-1 mb-2 hover:bg-gray-200"},[e.createVNode(e.unref(W.Eraser),{class:"h-4 w-4"}),y[2]||(y[2]=e.createElementVNode("p",null,"no color",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",s0,[h!=="transparent"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:h}),onClick:f=>c(h),title:p(h)},[r.value===h?(e.openBlock(),e.createBlock(e.unref(W.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,i0)):e.createCommentVNode("",!0),h==="transparent"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"flex items-center justify-center w-full h-full",onClick:f=>c(h),title:p(h)},[r.value===h?(e.openBlock(),e.createBlock(e.unref(W.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],8,c0)):e.createCommentVNode("",!0)])]))),128))])])]),_:1},512))}},u0={__name:"vs-editor-highlight",props:{editor:Object},setup(o){const t=o,n=e.computed(()=>t.editor?.isActive("highlight")),r=()=>{t.editor&&t.editor.chain().focus().toggleHighlight().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Highlight",onClick:r,class:e.normalizeClass(["flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-200":n.value}])},[e.createVNode(e.unref(W.Highlighter),{class:"h-4 w-4"})],2))}},p0={class:"truncate"},m0={class:"w-[200px]"},f0={class:"max-h-[200px] overflow-y-auto"},h0=["onClick"],g0={__name:"vs-editor-font-family",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=e.ref(!1),l=e.ref([{label:"Arial",value:"Arial, sans-serif"},{label:"Helvetica",value:"Helvetica, sans-serif"},{label:"Times New Roman",value:"Times New Roman, serif"},{label:"Georgia",value:"Georgia, serif"},{label:"Verdana",value:"Verdana, sans-serif"},{label:"Courier New",value:"Courier New, monospace"},{label:"Comic Sans MS",value:"Comic Sans MS, cursive"},{label:"Impact",value:"Impact, sans-serif"},{label:"Trebuchet MS",value:"Trebuchet MS, sans-serif"},{label:"Palatino",value:"Palatino, serif"}]),a=e.computed(()=>{if(!t.editor)return"Arial, sans-serif";for(const d of l.value)if(t.editor.isActive("textStyle",{fontFamily:d.value}))return d.value;return"Arial, sans-serif"}),s=e.computed(()=>l.value.find(p=>p.value===a.value)?.label||"Arial"),i=d=>t.editor?t.editor.isActive("textStyle",{fontFamily:d}):!1,c=d=>{t.editor&&(t.editor.chain().focus().setFontFamily(d).run(),n.value&&n.value.togglePopover())};return(d,p)=>(e.openBlock(),e.createBlock(Ft,{ref_key:"popover",ref:n,placement:"bottom",onIsvisible:p[0]||(p[0]=m=>r.value=m)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Font Family",class:e.normalizeClass(["h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm",[r.value?"bg-gray-100 text-gray-900":"text-gray-700"]]),style:e.normalizeStyle({fontFamily:a.value})},[e.createElementVNode("span",p0,e.toDisplayString(s.value),1),e.createVNode(e.unref(W.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})],6)]),default:e.withCtx(()=>[e.createElementVNode("div",m0,[e.createElementVNode("ul",f0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,m=>(e.openBlock(),e.createElementBlock("li",{key:m.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",{"bg-gray-100":i(m.value)}]),style:e.normalizeStyle({fontFamily:m.value}),onClick:y=>c(m.value)},e.toDisplayString(m.label),15,h0))),128))])])]),_:1},512))}},y0={class:"w-[120px]"},b0={class:"max-h-[200px] overflow-y-auto"},k0=["onClick"],x0={__name:"vs-editor-font-size",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=e.ref("14px"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").fontSize||"14px"),a=e.computed(()=>l.value!=="14px"),s=()=>{t.editor&&(r.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const i=e.ref([{label:"8px",value:"8px"},{label:"9px",value:"9px"},{label:"10px",value:"10px"},{label:"11px",value:"11px"},{label:"12px",value:"12px"},{label:"14px",value:"14px"},{label:"16px",value:"16px"},{label:"18px",value:"18px"},{label:"20px",value:"20px"},{label:"24px",value:"24px"},{label:"28px",value:"28px"},{label:"32px",value:"32px"},{label:"36px",value:"36px"},{label:"48px",value:"48px"},{label:"72px",value:"72px"}]),c=d=>{t.editor&&(t.editor.chain().focus().setFontSize(d).run(),r.value=d,n.value&&n.value.togglePopover())};return(d,p)=>(e.openBlock(),e.createBlock(Ft,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Font Size",class:e.normalizeClass(["h-[30px] px-2 min-w-[30px] rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700 space-x-1",{"bg-gray-100 text-gray-900":a.value}])},[e.createVNode(e.unref(W.ALargeSmall),{class:"h-4 w-4"}),e.createVNode(e.unref(W.ChevronDown),{class:"h-3 w-3 text-gray-400"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",y0,[e.createElementVNode("ul",b0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,m=>(e.openBlock(),e.createElementBlock("li",{key:m.value,class:"px-3 py-2 hover:bg-gray-100 cursor-pointer",onClick:y=>c(m.value)},e.toDisplayString(m.label),9,k0))),128))])])]),_:1},512))}},w0={components:{Superscript:W.Superscript},props:{editor:Object},methods:{toggleSuperscript(){this.editor&&this.editor.commands.toggleSuperscript()}}};function _0(o,t,n,r,l,a){const s=e.resolveComponent("Superscript");return e.openBlock(),e.createElementBlock("button",{title:"Superscript",onClick:t[0]||(t[0]=(...i)=>a.toggleSuperscript&&a.toggleSuperscript(...i)),class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("superscript")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Superscript",-1))],2)}const v0=Ce(w0,[["render",_0]]),C0={components:{Subscript:W.Subscript},props:{editor:Object},methods:{toggleSubscript(){this.editor&&this.editor.commands.toggleSubscript()}}};function E0(o,t,n,r,l,a){const s=e.resolveComponent("Subscript");return e.openBlock(),e.createElementBlock("button",{title:"Subscript",onClick:t[0]||(t[0]=(...i)=>a.toggleSubscript&&a.toggleSubscript(...i)),class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":n.editor?.isActive("subscript")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Subscript",-1))],2)}const B0=Ce(C0,[["render",E0]]),V0={title:"Heading",class:"h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700"},S0={class:"truncate"},$0={class:"max-h-[200px] overflow-y-auto"},N0=["onClick"],A0=Ce({__name:"vs-editor-heading",props:{editor:Object},setup(o){const t=o,n=e.ref("popover"),r=e.ref([{label:"Heading 1",value:1},{label:"Heading 2",value:2},{label:"Heading 3",value:3},{label:"Heading 4",value:4},{label:"Heading 5",value:5},{label:"Heading 6",value:6}]),l=e.computed(()=>{if(!t.editor)return"Paragraph";for(let c=1;c<=6;c++)if(t.editor.isActive("heading",{level:c}))return`H ${c}`;return"P"}),a=c=>({1:"font-weight:700; font-size:30px;",2:"font-weight:700; font-size:26px;",3:"font-weight:700; font-size:22px;",4:"font-weight:700; font-size:18px;",5:"font-weight:500; font-size:16px;",6:"font-weight:400; font-size:14px;"})[c]||"",s=c=>{t.editor&&(t.editor.chain().focus().setHeading({level:c}).run(),n.value&&n.value.togglePopover())},i=()=>{t.editor&&(t.editor.chain().focus().setParagraph().run(),n.value&&n.value.togglePopover())};return(c,d)=>(e.openBlock(),e.createBlock(Ft,{ref_key:"popover",ref:n,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",V0,[e.createElementVNode("span",S0,e.toDisplayString(l.value),1),e.createVNode(e.unref(W.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})])]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("ul",$0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,p=>(e.openBlock(),e.createElementBlock("li",{key:p.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",`heading-level-${p.value}`]),style:e.normalizeStyle(a(p.value)),onClick:m=>s(p.value)},e.toDisplayString(p.label),15,N0))),128)),e.createElementVNode("li",{class:"px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm border-t border-gray-200 mt-1 pt-2",onClick:i}," Paragraph ")])])]),_:1},512))}},[["__scopeId","data-v-96f02f2a"]]),M0={components:{RemoveFormatting:W.RemoveFormatting},props:{editor:Object},methods:{clearFormatting(){this.editor&&this.editor.commands.unsetAllMarks()}}};function F0(o,t,n,r,l,a){const s=e.resolveComponent("RemoveFormatting");return e.openBlock(),e.createElementBlock("button",{title:"Clear Formatting",onClick:t[0]||(t[0]=(...i)=>a.clearFormatting&&a.clearFormatting(...i)),class:"h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Clear Formatting",-1))])}const D0=Ce(M0,[["render",F0]]),T0={class:"relative"},L0={key:0,class:"mt-4"},I0=["src","alt","title"],O0={key:0,class:"text-sm text-red-500"},R0={key:1,class:"mt-4"},P0={class:"text-sm text-gray-600 mb-2"},z0={class:"flex flex-wrap gap-2"},j0=["src","alt","onError"],U0=["onClick"],H0={class:"flex justify-end gap-x-2 p-[20px]"},q0=Object.assign({inheritAttrs:!1},{__name:"vs-editor-image",props:{editor:{type:Object,required:!0}},setup(o){const t=o,n=e.ref(!1),r=e.ref(!1),l=e.ref({}),a=e.ref(!1),s=e.ref([]),i=e.ref(null),c=e.ref({src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}),d=e.computed(()=>{if(Array.isArray(c.value.file)){const E=c.value.file.filter(D=>D instanceof File),V=c.value.file.filter(D=>typeof D=="string"&&D.trim()!=="");return E.length+V.length>1}return c.value.file instanceof FileList?c.value.file.length>1:!1}),p=e.computed(()=>Array.isArray(c.value.file)?c.value.file.filter(E=>E instanceof File).length===1:c.value.file instanceof FileList?c.value.file.length===1:c.value.file instanceof File),m=e.computed(()=>{if(d.value)return"";if(c.value.src)return c.value.src;if(p.value){let E=null;if(Array.isArray(c.value.file)||c.value.file instanceof FileList?E=c.value.file[0]:c.value.file instanceof File&&(E=c.value.file),E instanceof File){const V=s.value.find(_=>_.file===E);return V?V.preview:""}else if(typeof E=="string")return E}return""}),y=e.computed(()=>[{name:"src",label:"URL зображення",type:"text",required:!1,placeholder:"https://example.com/image.png"},{name:"file",label:"Файл (можна вибрати кілька)",type:"file",multiple:!0,required:!1,placeholder:"Шлях до файлу зображення",accept:"image/*"},{name:"width",label:"Ширина",type:"number",required:!1,placeholder:"Ширина зображення",clearable:!0,min:0},{name:"height",label:"Висота",type:"number",required:!1,placeholder:"Висота зображення",clearable:!0,min:0},{name:"alt",label:"Альтернативний текст",type:"text",required:!1,placeholder:"Опис зображення"},{name:"title",label:"Заголовок (необов'язково)",type:"text",required:!1,placeholder:"Заголовок зображення"},{name:"link",label:"Посилання",type:"text",required:!1,placeholder:"https://example.com"},{name:"openInNewTab",label:"Відкривати у новій вкладці?",type:"switcher",required:!1}]),h=()=>{if(!t.editor)return;if(t.editor.isActive("image")){const{state:V}=t.editor,{selection:_}=V,{$from:D}=_;let H=null,te=null;if(D.parent.type.name==="image")H=D.before(D.depth),te=D.parent;else for(let ne=D.depth;ne>0;ne--){const F=D.node(ne),G=D.before(ne);F.type.name==="paragraph"&&F.forEach((L,se)=>{if(L.type.name==="image"){const ce=G+se+1;(H===null||Math.abs(ce-_.$from.pos)<Math.abs(H-_.$from.pos))&&(H=ce,te=L)}})}if(H!==null&&te){try{t.editor.chain().focus().setNodeSelection(H).run()}catch{t.editor.chain().focus().setTextSelection(H).run()}i.value=H}else{t.editor.chain().focus().selectParentNode().run();const{state:ne}=t.editor;i.value=ne.selection.$from.pos}const S=te?te.attrs:t.editor.getAttributes("image");a.value=!0;let R="",K=!1;const q=t.editor.getAttributes("link");q&&q.href&&(R=q.href,K=q.target==="_blank");const P=S.src||"",Q=P?[P]:[];c.value={src:P,file:Q,alt:S.alt||"",title:S.title||"",width:S.width||"",height:S.height||"",link:R,openInNewTab:K}}else a.value=!1,c.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1};r.value=!1,n.value=!0},f=()=>{n.value=!1,r.value=!1,a.value=!1,s.value=[],i.value=null,c.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}},k=async E=>{if(!E||E.length===0)return;const V=[];for(const _ of E)if(_&&_.type&&_.type.startsWith("image/")&&!s.value.some(H=>H.file===_)){const H=new Promise((te,S)=>{const R=new FileReader;R.onload=K=>{s.value.push({file:_,preview:K.target.result,error:!1}),te()},R.onerror=S,R.readAsDataURL(_)});V.push(H)}await Promise.all(V)},b=E=>{s.value.splice(E,1),Array.isArray(c.value.file)&&c.value.file.splice(E,1)},v=()=>{const E=c.value.width!==null&&c.value.width!==void 0&&c.value.width!==""&&String(c.value.width).trim()!==""?String(c.value.width).trim():"",V=c.value.height!==null&&c.value.height!==void 0&&c.value.height!==""&&String(c.value.height).trim()!==""?String(c.value.height).trim():"",_={};return E&&V?(_.width=E,_.height=V,_.style=`width: ${E}px; height: ${V}px; object-fit: fill;`):E?(_.width=E,_.height=void 0):V?(_.height=V,_.width=void 0):(_.width=void 0,_.height=void 0),_},w=(E,V=null,_=50)=>{const D=()=>{const{view:S}=E;if(!S||!S.dom)return;S.dom.querySelectorAll("img.editor-image[width][height]").forEach(q=>{if(q instanceof HTMLImageElement){const P=q.getAttribute("width"),Q=q.getAttribute("height");P&&Q&&P!=="auto"&&Q!=="auto"&&P!==""&&Q!==""&&!isNaN(Number(P))&&!isNaN(Number(Q))&&(q.style.cssText=`
|
|
36
|
-
width: ${
|
|
37
|
-
height: ${
|
|
34
|
+
`).trim()},ig=new Set(["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"]),cg=n=>{if(!n)return"";if(typeof window>"u"||typeof DOMParser>"u")return n;const o=new DOMParser().parseFromString(n,"text/html"),r=" ",l=(a,s)=>{if(a.nodeType===Node.TEXT_NODE){const h=(a.textContent||"").replace(/\s+/g," ").trim();return h?[`${r.repeat(s)}${h}`]:[]}if(a.nodeType!==Node.ELEMENT_NODE)return[];const c=a,i=c.tagName.toLowerCase(),d=Array.from(c.attributes).map(h=>`${h.name}="${h.value}"`).join(" "),p=d?`<${i} ${d}>`:`<${i}>`,m=`</${i}>`;if(ig.has(i))return[`${r.repeat(s)}${p}`];const y=Array.from(c.childNodes).flatMap(h=>l(h,s+1));if(!y.length)return[`${r.repeat(s)}${p}${m}`];if(c.childNodes.length===1&&c.firstChild?.nodeType===Node.TEXT_NODE&&y.length===1){const h=y[0].trim();return[`${r.repeat(s)}${p}${h}${m}`]}return[`${r.repeat(s)}${p}`,...y,`${r.repeat(s)}${m}`]};return Array.from(o.body.childNodes).flatMap(a=>l(a,0)).join(`
|
|
35
|
+
`)},dg=n=>n.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">"),$o=n=>{if(!n)return"";if(typeof window>"u"||typeof DOMParser>"u")return n.replace(/<script\b[^>]*>[\s\S]*?<\/script>/gi,"");const o=new DOMParser().parseFromString(n,"text/html");return o.querySelectorAll("script").forEach(r=>r.remove()),o.body.innerHTML},fl=n=>{if(!n)return{wrapper:null,bodyHtml:""};if(typeof window>"u"||typeof DOMParser>"u")return{wrapper:null,bodyHtml:n};const o=new DOMParser().parseFromString(n,"text/html"),{body:r}=o;if(r.childElementCount!==1)return{wrapper:null,bodyHtml:n};const l=r.firstElementChild;return!l||l.tagName.toLowerCase()!=="div"?{wrapper:null,bodyHtml:n}:{wrapper:{tag:l.tagName.toLowerCase(),attributes:Array.from(l.attributes).map(a=>({name:a.name,value:a.value}))},bodyHtml:l.innerHTML}},hl=(n,t)=>{if(!t)return n||"";const o=(t.attributes||[]).map(({name:l,value:a})=>`${l}="${dg(a)}"`).join(" ");return`${o?`<${t.tag} ${o}>`:`<${t.tag}>`}${n||""}</${t.tag}>`},gl=async(n,t)=>t!=="md"?n||"":dl(n||""),yl=async(n,t)=>t!=="md"?cg(n||""):ml(n||""),ug=async(n,t)=>t!=="md"?n||"":ml(n||""),pg=async n=>{try{const t=new FormData;return t.append("unique","true"),t.append("file",n),(await(await fetch("/file/upload/uploads?id=&form=&table=",{method:"POST",body:t})).json())?.result}catch(t){console.error(t)}},mg=async(n,t,o)=>{const r=t.clipboardData?.items;if(r){const l=t.clipboardData?.getData("text/html"),a=t.clipboardData?.getData("text/plain");if(l){const{state:s,dispatch:c}=n,{tr:i}=s,d=o.fromSchema(n.state.schema),p=new DOMParser().parseFromString(l,"text/html").body,m=d.parse(p),y=i.replaceSelectionWith(m);return c(y),t.preventDefault(),!0}if(a){const{state:s,dispatch:c}=n,{tr:i}=s,d=i.insertText(a,s.selection.from,s.selection.to);return c(d),t.preventDefault(),!0}for(let s=0;s<r.length;s++){const c=r[s];if(c.type.startsWith("image/")){const i=c.getAsFile();if(i){const d=await pg(i),{schema:p}=n.state,m=p.nodes.image.create({src:d?.file_path}),y=n.state.tr.replaceSelectionWith(m);return n.dispatch(y),t.preventDefault(),!0}}}}return!1},fg=n=>String(n).trim().toLowerCase().split("-")[0],hg=()=>typeof window>"u"?"uk":fg(localStorage.getItem("language")||localStorage.getItem("locale")||navigator.language||"uk"),gg=(n,t)=>{const o=t.replace(/^form\.richtext\./,"");return ko?.[n]?.form?.richtext?.[o]||ko?.uk?.form?.richtext?.[o]||t},bl=n=>n.startsWith("form.richtext.")?n:`form.richtext.${n}`;function Ao(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties,o=t?.$i18n;return{t:l=>{const a=t?.$t,s=t?.$te,c=typeof o?.te=="function"?o.te.bind(o):null;if(typeof a=="function"){const i=bl(l);if((typeof s=="function"?s(i):typeof c=="function"?c(i):null)!==!1){const p=a(i);if(p&&p!==i)return p}}return gg(hg(),bl(l))}}}const yg={components:{Quote:J.Quote},props:{editor:Object},methods:{toggleBlockquote(){this.editor&&this.editor.chain().toggleBlockquote().run()}}};function bg(n,t,o,r,l,a){const s=e.resolveComponent("Quote");return e.openBlock(),e.createElementBlock("button",{title:"Blockquote",onClick:t[0]||(t[0]=(...c)=>a.toggleBlockquote&&a.toggleBlockquote(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":o.editor?.isActive("blockquote")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const kg=Ve(yg,[["render",bg]]),xg={components:{List:J.List},props:{editor:Object},methods:{toggleBulletList(){this.editor&&this.editor.chain().focus().toggleBulletList().run()}}};function wg(n,t,o,r,l,a){const s=e.resolveComponent("List");return e.openBlock(),e.createElementBlock("button",{title:"Bullet List",onClick:t[0]||(t[0]=(...c)=>a.toggleBulletList&&a.toggleBulletList(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":o.editor?.isActive("bulletList")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const vg=Ve(xg,[["render",wg]]),Cg={components:{ListOrdered:J.ListOrdered},props:{editor:Object},methods:{toggleOrderedList(){this.editor&&this.editor.chain().focus().toggleOrderedList().run()}}};function Eg(n,t,o,r,l,a){const s=e.resolveComponent("ListOrdered");return e.openBlock(),e.createElementBlock("button",{title:"Ordered List",onClick:t[0]||(t[0]=(...c)=>a.toggleOrderedList&&a.toggleOrderedList(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":o.editor?.isActive("orderedList")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const _g=Ve(Cg,[["render",Eg]]),Bg={components:{CodeXml:J.CodeXml},props:{editor:Object},methods:{toggleCodeBlock(){this.editor&&this.editor.chain().focus().toggleCodeBlock().run()}}};function Vg(n,t,o,r,l,a){const s=e.resolveComponent("CodeXml");return e.openBlock(),e.createElementBlock("button",{title:"Code Block",onClick:t[0]||(t[0]=(...c)=>a.toggleCodeBlock&&a.toggleCodeBlock(...c)),class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":o.editor?.isActive("codeBlock")}])},[e.createVNode(s,{class:"h-4 w-4"})],2)}const Sg=Ve(Bg,[["render",Vg]]),$g={components:{Bold:J.Bold},props:{editor:Object},methods:{toggleBold(){this.editor&&this.editor.commands.toggleBold()}}};function Ag(n,t,o,r,l,a){const s=e.resolveComponent("Bold");return e.openBlock(),e.createElementBlock("button",{title:"Bold Text",onClick:t[0]||(t[0]=(...c)=>a.toggleBold&&a.toggleBold(...c)),class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":o.editor?.isActive("bold")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Bold",-1))],2)}const Ng=Ve($g,[["render",Ag]]),Mg={components:{Italic:J.Italic},props:{editor:Object},methods:{toggleItalic(){this.editor&&this.editor.chain().toggleItalic().run()}}};function Fg(n,t,o,r,l,a){const s=e.resolveComponent("Italic");return e.openBlock(),e.createElementBlock("button",{title:"Italic Text",onClick:t[0]||(t[0]=(...c)=>a.toggleItalic&&a.toggleItalic(...c)),class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":o.editor?.isActive("italic")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Italic",-1))],2)}const Dg=Ve(Mg,[["render",Fg]]),Tg={__name:"vs-editor-underline",props:{editor:Object},setup(n){const t=n,o=()=>{t.editor&&t.editor.chain().focus().toggleUnderline().run()};return(r,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Underline",onClick:o,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[n.editor?.isActive("underline")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(J.Underline),{class:"h-4 w-4"})],2))}},Lg={__name:"vs-editor-strike",props:{editor:Object},setup(n){const t=n,o=()=>{t.editor&&t.editor.chain().focus().toggleStrike().run()};return(r,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Strikethrough",onClick:o,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100",[n.editor?.isActive("strike")?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(J.Strikethrough),{class:"h-4 w-4"})],2))}},Ig={components:{X:J.X},props:{visible:{type:Boolean,default:()=>!1},modelValue:{type:Boolean,default:()=>!1},title:{type:String,default:()=>""},size:{type:String,default:()=>""},closeClickBack:{type:Boolean,default:()=>!1}},emits:["update:visible","update:modelValue","onClose","confirm","cancel"],inheritAttrs:!1,name:"vs-dialog",mounted(){window.addEventListener("keydown",this.checkKey)},unmounted(){window.removeEventListener("keydown",this.checkKey)},computed:{hasSlot(){return!!this.$slots?.footer},checkSize(){return this.size==="small"?"md:w-5/12 w-9/12":this.size==="medium"?"md:w-6/12 w-9/12":"lg:w-7/12 w-11/12"}},methods:{checkKey({key:n}){n==="Escape"&&this.handleClose()},handleClose(){this.$emit("update:visible",!1),this.$emit("update:modelValue",!1),this.$emit("onClose")},handleConfirm(){this.$emit("confirm"),this.handleClose()},handleCancel(){this.$emit("cancel"),this.handleClose()},closeByClickBack(n,t){t&&n.target.classList.contains("vs-dialog-overlay")&&this.handleClose()}}},Og={key:0,class:"vsTailwind ui-dialog__wrapper"},Pg={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Rg={class:"font-medium text-gray-800 dark:text-[#ffffff]"},zg={class:"ui-dialog__content p-4"},jg={key:0,class:"flex justify-end gap-x-2"};function Ug(n,t,o,r,l,a){const s=e.resolveComponent("X");return e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[o.visible||o.modelValue?(e.openBlock(),e.createElementBlock("div",Og,[e.createElementVNode("div",{onMousedown:t[1]||(t[1]=c=>a.closeByClickBack(c,o.closeClickBack)),class:"vs-dialog-overlay vs-dialog w-full h-full fixed top-0 start-0 z-[100001] bg-black bg-opacity-50"},[e.createVNode(e.Transition,{name:"content",appear:""},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["ui-dialog__modal opacity-1 flex flex-col bg-white dark:bg-[#1A1A1A] border dark:border-[#454545] pointer-events-auto shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-xl",[a.checkSize]])},[e.createElementVNode("div",Pg,[e.createElementVNode("h3",Rg,e.toDisplayString(o.title),1),e.createElementVNode("button",{type:"button",class:"size-8 inline-flex justify-center items-center gap-x-2 rounded-full border border-transparent bg-gray-100 text-gray-800 hover:bg-gray-200 focus:outline-none focus:bg-gray-200 disabled:opacity-50 disabled:pointer-events-none dark:bg-neutral-700 dark:hover:bg-neutral-600 dark:text-neutral-400 dark:focus:bg-neutral-600",onClick:t[0]||(t[0]=(...c)=>a.handleClose&&a.handleClose(...c))},[t[2]||(t[2]=e.createElementVNode("span",{class:"sr-only"},"Close",-1)),e.createVNode(s,{class:"h-4 w-4 flex-shrink-0"})])]),e.createElementVNode("div",zg,[e.renderSlot(n.$slots,"default",{},void 0,!0)]),a.hasSlot?(e.openBlock(),e.createElementBlock("div",jg,[e.renderSlot(n.$slots,"footer",{handleClose:a.handleClose,handleConfirm:a.handleConfirm,handleCancel:a.handleCancel},void 0,!0)])):e.createCommentVNode("",!0)],2)]),_:3})],32)])):e.createCommentVNode("",!0)])}const kl=Ve(Ig,[["render",Ug],["__scopeId","data-v-9395bb47"]]),Hg=e.defineComponent({components:{IconClose:J.X,IconSearch:J.Search,IconEmail:J.Mail},inheritAttrs:!1,props:{icon:{type:String,default:()=>""},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},modelValue:{type:String,default:()=>""},placeholder:{type:String,default:()=>""},iconPosition:{type:String,default:()=>"right"},type:{type:String,default:()=>"text"},style:{type:Object,default:()=>null},size:{type:String,default:()=>"md"},attrs:{type:Object,default:()=>{}}},emits:["onInput","update:modelValue","blur","focus"],computed:{checkSize(){return(this.style?.size||this.size)==="xs"?"h-[32px] text-sm":(this.style?.size||this.size)==="md"?"h-[38px] text-sm":(this.style?.size||this.size)==="lg"?"h-[46px] text-[20px]":"h-[38px] text-sm"},value:{get(){return this.modelValue},set(n){this.$emit("update:modelValue",n.trim())}},clearIconStyle(){return[{"right-8":this.icon&&this.iconPosition==="right","right-3":!this.icon||this.iconPosition!=="right","pointer-events-none":this.disabled}]},iconStylePosition(){return[{"left-3":this.icon&&this.iconPosition==="left","right-3":this.icon&&this.iconPosition==="right"}]},inputStyle(){return[{"!pr-8":this.clearable&&!this.icon,"!pr-7":this.clearable,"!pr-16":this.clearable&&this.icon&&this.iconPosition==="right","!pl-8":this.icon&&this.iconPosition==="left","!pr-[50px]":this.clearable&&this.value&&this.icon&&this.iconPosition==="right","!cursor-not-allowed bg-slate-100":this.disabled,"bg-white":!this.disabled}]}},methods:{handleInput(){this.$emit("onInput",this.modelValue)},handleBlur(){this.$emit("blur")},handleFocus(){this.$emit("focus")},clearInput(){this.$emit("update:modelValue",""),this.$emit("onInput","")},async inputFocus(){await this.$refs.vsText?.focus()}}}),qg={class:"vs-form-text relative bg-white rounded-lg"},Kg={key:2,class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Wg=["disabled","type","placeholder"];function Gg(n,t,o,r,l,a){const s=e.resolveComponent("IconClose"),c=e.resolveComponent("IconSearch"),i=e.resolveComponent("IconEmail");return e.openBlock(),e.createElementBlock("div",qg,[n.clearable&&n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[0]||(t[0]=(...d)=>n.clearInput&&n.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),n.icon&&n.icon==="search"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 cursor-pointer",n.iconStylePosition])},[e.createVNode(c,{class:"h-4 w-4 stroke-gray-500 transition-all"})],2)):n.icon&&n.icon==="email"?(e.openBlock(),e.createElementBlock("div",Kg,[e.createVNode(i,{class:"h-4 w-4 stroke-gray-500 transition-all"})])):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(["absolute bottom-2/4 translate-y-2/4 text-gray-500 cursor-pointer",["ti "+n.icon,n.iconStylePosition]])},null,2)),n.clearable&&n.value?(e.openBlock(),e.createElementBlock("div",{key:4,class:"absolute bottom-2/4 translate-y-2/4 right-3 cursor-pointer",onClick:t[1]||(t[1]=(...d)=>n.clearInput&&n.clearInput(...d))},[e.createVNode(s,{class:"h-4 w-4 stroke-gray-500 transition-all hover:stroke-red-500"})])):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("input",e.mergeProps({ref:"vsText",disabled:n.disabled,type:n.type,onInput:t[2]||(t[2]=(...d)=>n.handleInput&&n.handleInput(...d)),placeholder:n.placeholder,"onUpdate:modelValue":t[3]||(t[3]=d=>n.value=d)},n.style?.attrs||n.attrs||{},{onFocus:t[4]||(t[4]=(...d)=>n.handleFocus&&n.handleFocus(...d)),onBlur:t[5]||(t[5]=(...d)=>n.handleBlur&&n.handleBlur(...d)),class:[[n.inputStyle,n.checkSize],"py-2 px-3 block w-full border border-solid placeholder:text-nowrap border-stone-200 rounded-lg text-sm text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"]}),null,16,Wg),[[e.vModelDynamic,n.value]])])}const xl=Ve(Hg,[["render",Gg],["__scopeId","data-v-1e382a36"]]),Yg=["title"],Xg={class:"flex flex-col gap-3 p-[20px]"},Zg={class:"relative flex items-center gap-2"},Jg={class:"flex-1"},Qg={key:0,class:"flex items-center gap-2 flex-shrink-0"},e0=["title"],t0=["title"],n0={class:"flex items-center gap-2"},o0={for:"openInNewTab",class:"text-sm text-gray-700 cursor-pointer"},r0={class:"flex justify-end p-[20px] gap-[10px] border-t w-full"},l0=Object.assign({inheritAttrs:!1},{__name:"vs-editor-link",props:{editor:Object},setup(n){const{t}=Ao(),o=n,r=e.ref(!1),l=e.ref(""),a=e.ref(!1),s=e.ref(!1),c=()=>{if(!o.editor)return;o.editor.chain().focus().extendMarkRange("link").run();const y=o.editor.getAttributes("link");y.href?(a.value=!0,l.value=y.href,s.value=y.target==="_blank"):(a.value=!1,l.value="",s.value=!1),r.value=!0},i=()=>{r.value=!1,l.value="",a.value=!1,s.value=!1},d=()=>{if(!o.editor||!l.value.trim())return;let y=l.value.trim();y.match(/^https?:\/\//i)||(y="https://"+y),o.editor.chain().focus().setLink({href:y,target:s.value?"_blank":null}).run(),i()},p=()=>{o.editor&&(o.editor.chain().focus().unsetLink().run(),i())},m=()=>{if(!l.value)return;let y=l.value.trim();y.match(/^https?:\/\//i)||(y="https://"+y),window.open(y,"_blank","noopener,noreferrer")};return(y,h)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("button",{title:e.unref(t)("form.richtext.link")||"Посилання",onClick:c,class:e.normalizeClass(["text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none",{"bg-gray-100 text-gray-900":n.editor?.isActive("link")}])},[e.createVNode(e.unref(J.Link2),{class:"h-4 w-4"})],10,Yg),e.createVNode(kl,{title:a.value?e.unref(t)("form.richtext.editLink")||"Редагувати посилання":e.unref(t)("form.richtext.linkTitle")||"Додати посилання",visible:r.value,"onUpdate:visible":h[2]||(h[2]=f=>r.value=f),size:"small"},{footer:e.withCtx(()=>[e.createElementVNode("div",r0,[e.createElementVNode("button",{style:{border:"1px solid #000"},onClick:i,class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm whitespace-nowrap text-black border-gray-200 rounded-lg !border-gray-200 hover:bg-gray-100 duration-300"},e.toDisplayString(e.unref(t)("form.richtext.cancel")||"Скасувати"),1),e.createElementVNode("button",{onClick:d,class:"py-2 px-3 inline-flex items-center gap-x-2 text-[14px] font-[400] whitespace-nowrap text-white bg-blue-500 rounded-lg !border-gray-200 hover:bg-blue-700 duration-300"},e.toDisplayString(a.value?e.unref(t)("form.richtext.update")||"Оновити":e.unref(t)("form.richtext.create")||"Створити"),1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Xg,[e.createElementVNode("div",Zg,[e.createElementVNode("div",Jg,[e.createVNode(xl,{modelValue:l.value,"onUpdate:modelValue":h[0]||(h[0]=f=>l.value=f),placeholder:e.unref(t)("form.richtext.linkUrl")||"Введіть URL",class:"w-full"},null,8,["modelValue","placeholder"])]),a.value?(e.openBlock(),e.createElementBlock("div",Qg,[e.createElementVNode("button",{onClick:m,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none transition-colors",title:e.unref(t)("form.richtext.openLink")||"Відкрити посилання"},[e.createVNode(e.unref(J.ExternalLink),{class:"h-4 w-4"})],8,e0),e.createElementVNode("button",{onClick:p,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-red-600 hover:bg-red-50 focus:outline-none transition-colors",title:e.unref(t)("form.richtext.removeLink")||"Видалити посилання"},[e.createVNode(e.unref(J.Trash2),{class:"h-4 w-4"})],8,t0)])):e.createCommentVNode("",!0)]),e.createElementVNode("div",n0,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",id:"openInNewTab","onUpdate:modelValue":h[1]||(h[1]=f=>s.value=f),class:"w-4 h-4 text-blue-600 bg-gray-100 border-gray-300 rounded focus:ring-blue-500"},null,512),[[e.vModelCheckbox,s.value]]),e.createElementVNode("label",o0,e.toDisplayString(e.unref(t)("form.richtext.openInNewTab")||"Відкривати в новій вкладці"),1)])])]),_:1},8,["title","visible"])],64))}}),fn=async(n,t,o,r=10)=>{if(!t||!o)return;await e.nextTick();const l=await o?.getBoundingClientRect(),a=await t?.getBoundingClientRect();if(!a||!l)return;const s=await parseInt(t?.getBoundingClientRect()?.height),c=await parseInt(t?.getBoundingClientRect()?.width),i=await parseInt(o?.getBoundingClientRect()?.height),d=await parseInt(o?.getBoundingClientRect()?.width),p=await window.innerHeight,m=await window.innerWidth;let y=0,h=0;const f=a.bottom+r+i;switch(n){case"top":a.top-l.height-r<0?y=a.top-l.height+r+i+s:y=a.top-l.height-r,m>d+a.right+30?h=a.left-l.width/2+a.width/2:h=m-30-d;break;case"bottom":p>f?y=a.bottom+r:y=a.bottom-r-i-s,h=a.left-l.width/2+a.width/2;break;case"left":y=a.top-l.height/2+a.height/2,a.left-l.width-r>0?h=a.left-l.width-r:h=10;break;case"right":y=a.top-l.height/2+a.height/2,m-c>d?h=a.right+r:h=m-30-d;break;case"top-right":a.top-l.height-r<0?y=a.top-l.height+r+i+s:y=a.top-l.height-r,m-c>d?h=a.right+r:h=m-30-d;break;case"top-left":a.top-l.height-r<0?y=a.top-l.height+r+i+s:y=a.top-l.height-r,a.left-l.width-r>0?h=a.left-l.width-r:h=10;break;case"top-start":a.top-l.height-r<0?y=a.top-l.height+r+i+s:y=a.top-l.height-r,a.left>0?h=a.left:h=10;break;case"bottom-right":p>f?y=a.bottom+r:y=a.bottom-r-i-s,m-c>d?h=a.left:h=m-30-d;break;case"bottom-left":p>f?y=a.bottom+r:y=a.bottom-r-i-s,a.left>0?h=a.right-d:h=10;break;case"bottom-start":p>f?y=a.bottom+r:y=a.bottom-r-i-s,a.left>0?h=a.left:h=10;break}y+i>p?y=p-i-r:y<0&&(y=r),h+d>m?h=m-d-r:h<0&&(h=r),o instanceof HTMLElement&&(o.style.top=`${y}px`,o.style.left=`${h}px`,o.style.position="fixed")},a0={class:"text-center"},s0={class:"py-2 px-4 w-full text-sm text-stone-800 bg-white shadow-[0_10px_40px_10px_rgba(0,0,0,0.08)] rounded-lg focus:outline-none focus:bg-stone-100 dark:bg-neutral-900 dark:text-neutral-200 dark:focus:bg-neutral-800 after:h-4 after:absolute after:-bottom-4 after:start-0 after:w-full before:h-4 before:absolute before:-top-4 before:start-0 before:w-full"},Ht=Object.assign({inheritAttrs:!1},{__name:"vs-popover",props:{isOpen:{type:Boolean,default:()=>!1},placement:{type:String,default:"top"},gap:{type:Number,default:8},width:{type:[String,Number],default:""},disabled:{type:Boolean,default:!1},trigger:{type:String,default:"click"},teleport:{type:String,default:"body"}},emits:["isvisible"],setup(n,{expose:t,emit:o}){const r=n,l=o,a=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref(null),d=e.ref(null);e.watch(a,_=>{_?(p(),window.addEventListener("resize",()=>fn(r.placement,i.value,d.value)),fn(r.placement,i.value,d.value)):window.removeEventListener("resize",()=>fn(r.placement,i.value,d.value)),l("isvisible",_)}),e.onMounted(()=>{window.addEventListener("click",b),window.addEventListener("popstate",E),window.addEventListener("scroll",v,!0),p()}),e.onBeforeUnmount(()=>{window.removeEventListener("click",b),window.removeEventListener("popstate",E),m()});const p=()=>{let _=c.value;for(;_&&_!==document.body;)(_.scrollHeight>_.clientHeight||_.scrollWidth>_.clientWidth)&&(_.addEventListener("scroll",x),s.value.push(_)),_=_.parentElement;document.body&&(document.body.addEventListener("scroll",x),s.value.push(document.body))},m=()=>{s.value.forEach(_=>{_.removeEventListener("scroll",x)}),s.value=[]},y=()=>{a.value=!0,fn(r.placement,i.value,d.value)},h=()=>{a.value=!1},f=async()=>{await fn(r.placement,i.value,d.value),a.value=!a.value},x=()=>{a.value=!1},b=_=>{if(!_){a.value=!1;return}i.value?.contains(_.target)||d.value?.contains(_.target)||(a.value=!1)},E=()=>{a.value&&(a.value=!1)},v=_=>{a.value&&d.value&&!d.value.contains(_.target)&&(a.value=!1)};return t({togglePopover:f}),(_,N)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"popover",ref:c,class:"vs-popover inline-block"},[e.createElementVNode("div",a0,[n.trigger==="click"?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"popoverRef",ref:i,onClick:f,class:e.normalizeClass({"pointer-events-none":n.disabled})},[e.renderSlot(_.$slots,"reference",{},()=>[N[0]||(N[0]=e.createElementVNode("button",null,"Click me!",-1))])],2)):e.createCommentVNode("",!0),n.trigger==="hover"?(e.openBlock(),e.createElementBlock("div",{key:1,ref_key:"popoverRef",ref:i,onMouseover:y,onMouseleave:h,class:e.normalizeClass({"pointer-events-none":n.disabled})},[e.renderSlot(_.$slots,"reference",{},()=>[N[1]||(N[1]=e.createElementVNode("button",null,"Click me!",-1))])],34)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:n.teleport},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["vsTailwind vs-popover__content",n.placement]),ref_key:"contentPop",ref:d,style:e.normalizeStyle({width:n.width?n.width+"px":"fit-content",zIndex:100001})},[e.createElementVNode("div",s0,[e.renderSlot(_.$slots,"default",{},()=>[N[2]||(N[2]=e.createElementVNode("span",null,"Popover content",-1))])])],6),[[e.vShow,a.value]])]),_:3})],8,["to"]))])],512))}}),i0={class:"flex flex-col gap-[2px] p-[2px]"},c0=["onClick"],d0={__name:"vs-editor-table",props:{editor:Object},setup(n){const{t}=Ao(),o=n,r=e.ref(!1),l=e.ref("popover"),a=()=>{o.editor&&(o.editor.chain().focus().insertTable({rows:3,cols:3,withHeaderRow:!0}).run(),l.value.togglePopover())},s=()=>{o.editor&&(o.editor.chain().focus().addColumnAfter().run(),l.value.togglePopover())},c=()=>{o.editor&&(o.editor.chain().focus().addRowAfter().run(),l.value.togglePopover())},i=()=>{o.editor&&(o.editor.chain().focus().deleteColumn().run(),l.value.togglePopover())},d=()=>{o.editor&&(o.editor.chain().focus().deleteRow().run(),l.value.togglePopover())},p=()=>{o.editor&&(o.editor.chain().focus().deleteTable().run(),l.value.togglePopover())},m=()=>{o.editor&&(o.editor.chain().focus().mergeCells().run(),l.value.togglePopover())},y=()=>{o.editor&&(o.editor.chain().focus().splitCell().run(),l.value.togglePopover())},h=e.computed(()=>[{text:t("form.richtext.createTable"),function:a},{text:t("form.richtext.addColumn"),function:s},{text:t("form.richtext.addRow"),function:c},{text:t("form.richtext.deleteColumn"),function:i},{text:t("form.richtext.deleteRow"),function:d},{text:t("form.richtext.deleteTable"),function:p},{text:t("form.richtext.mergeCells"),function:m},{text:t("form.richtext.splitCells"),function:y}]);return(f,x)=>(e.openBlock(),e.createBlock(Ht,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:x[0]||(x[0]=b=>r.value=b)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Table",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[r.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[e.createVNode(e.unref(J.Table2),{class:"h-4 w-4"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",i0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(b,E)=>(e.openBlock(),e.createElementBlock("button",{key:E,onClick:b?.function,class:"px-2 py-1 text-gray-500 text-start hover:text-gray-900 hover:bg-gray-100 rounded"},e.toDisplayString(b.text),9,c0))),128))])]),_:1},512))}},u0={class:"flex gap-[4px] p-1"},p0=["title","onClick"],m0={__name:"vs-editor-align",props:{editor:Object},setup(n){const t=n,o={left:J.AlignLeft,center:J.AlignCenter,right:J.AlignRight,justify:J.AlignJustify},r=e.ref(!1),l=e.ref("popover"),a=e.ref("left"),s=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"left"})||t.editor.isActive("heading",{textAlign:"left"}):!1),c=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"right"})||t.editor.isActive("heading",{textAlign:"right"}):!1),i=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"center"})||t.editor.isActive("heading",{textAlign:"center"}):!1),d=e.computed(()=>t.editor?t.editor.isActive("paragraph",{textAlign:"justify"})||t.editor.isActive("heading",{textAlign:"justify"}):!1),p=e.computed(()=>s.value||c.value||i.value||d.value),m=()=>{c.value?a.value="right":i.value?a.value="center":d.value?a.value="justify":a.value="left"};e.watch([s,c,i,d],()=>{m()},{immediate:!0}),e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",m),t.editor.on("update",m))}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",m),t.editor.off("update",m))});const y=f=>{t.editor&&(t.editor.chain().focus().setTextAlign(f).run(),a.value=f)},h=e.ref([{id:"left",isActive:s},{id:"center",isActive:i},{id:"right",isActive:c},{id:"justify",isActive:d}]);return(f,x)=>(e.openBlock(),e.createBlock(Ht,{ref_key:"popover",ref:l,placement:"bottom",onIsvisible:x[0]||(x[0]=b=>r.value=b)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Text Align",class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100",[p.value?"bg-gray-100 text-gray-900":"text-gray-500"]])},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o[a.value]),{height:"16",width:"16"}))],2)]),default:e.withCtx(()=>[e.createElementVNode("div",u0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,b=>(e.openBlock(),e.createElementBlock("button",{title:"Text align "+b?.id,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":b?.isActive}]),key:b?.id,onClick:E=>y(b?.id)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o[b?.id]),{height:"16",width:"16"}))],10,p0))),128))])]),_:1},512))}},f0={components:{VsText:xl},inheritAttrs:!1,events:["update:modelValue"],props:{modelValue:{type:String},disabled:{type:Boolean,default:()=>!1},clearable:{type:Boolean,default:()=>!1},isTextInputShown:{type:Boolean,default:()=>!0}},computed:{value:{get(){return this.modelValue??""},set(n){this.$emit("update:modelValue",n)}}}},h0={class:"flex items-center w-full max-w-[182px]"},g0=["disabled"];function y0(n,t,o,r,l,a){const s=e.resolveComponent("vs-text");return e.openBlock(),e.createElementBlock("div",h0,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":t[0]||(t[0]=c=>a.value=c),type:"color",class:e.normalizeClass(["w-[38px] h-[38px] min-h-[38px] min-w-[38px] py-[2px] px-[3px] -ml-1 dark:bg-neutral-800 border dark:border-neutral-700 border-stone-200 rounded-lg",o.disabled?"cursor-not-allowed":"cursor-pointer"]),disabled:o.disabled},null,10,g0),[[e.vModelText,a.value]]),o.isTextInputShown?(e.openBlock(),e.createBlock(s,{key:0,modelValue:a.value,"onUpdate:modelValue":t[1]||(t[1]=c=>a.value=c),class:"ml-2 w-full",disabled:o.disabled,clearable:o.clearable},null,8,["modelValue","disabled","clearable"])):e.createCommentVNode("",!0)])}const wl=Ve(f0,[["render",y0]]),b0={class:"flex gap-[4px] mb-[8px]"},k0={class:"grid grid-rows-3 grid-cols-7"},x0={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},w0=["onClick","title"],v0={__name:"vs-editor-color",props:{editor:Object},setup(n){const t=n,o=e.ref(null),r=e.ref("#000000"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").color||"#000000"),a=e.computed(()=>l.value!=="#000000"),s=()=>{t.editor&&(r.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const c=e.ref(["#172B4D","#0747A6","#008DA6","#006644","#FF991F","#BF2600","#403294","#97A0AF","#4C9AFF","#00B8D9","#36B37E","#FFC400","#FF5630","#6554C0","#FFFFFF","#B3D4FF","#B3F5FF","#ABF5D1","#FFF0B3","#FFBDAD","#EAE6FF"]),i=m=>{t.editor&&(t.editor.chain().focus().setColor(m).run(),r.value=m,o.value&&o.value.togglePopover())},d=()=>{i(r.value)},p=m=>({"#172B4D":"Default","#0747A6":"Bright blue","#008DA6":"Bright blue-green","#006644":"Bright green","#FF991F":"Bright orange","#BF2600":"Bright red","#403294":"Bright purple","#97A0AF":"Gray","#4C9AFF":"Blue","#00B8D9":"Blue-green","#36B37E":"Green","#FFC400":"Yellow","#FF5630":"Red","#6554C0":"Purple","#FFFFFF":"White","#B3D4FF":"Bright blue","#B3F5FF":"Bright blue-green","#ABF5D1":"Bright green","#FFF0B3":"Bright yellow","#FFBDAD":"Bright red","#EAE6FF":"Bright purple"})[m]||m;return(m,y)=>(e.openBlock(),e.createBlock(Ht,{ref_key:"popover",ref:o,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Text Color",class:e.normalizeClass(["flex flex-col h-[30px] min-w-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-100":a.value}])},[y[1]||(y[1]=e.createElementVNode("span",{class:"leading-none"},"A",-1)),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",b0,[e.createVNode(wl,{modelValue:r.value,"onUpdate:modelValue":y[0]||(y[0]=h=>r.value=h)},null,8,["modelValue"]),e.createElementVNode("button",{onClick:d,class:"h-[38px] w-[38px] bg-blue-500 shrink-0 border rounded-md flex items-center justify-center hover:bg-blue-700 duration-300"},[e.createVNode(e.unref(J.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",k0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",x0,[e.createElementVNode("button",{class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:h}),onClick:f=>i(h),title:p(h)},[r.value===h?(e.openBlock(),e.createBlock(e.unref(J.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,w0)])]))),128))])])]),_:1},512))}},C0={class:"flex gap-[4px] mb-[8px]"},E0={class:"grid grid-rows-3 grid-cols-7"},_0={class:"w-full h-full rounded border border-gray-300 overflow-hidden"},B0=["onClick","title"],V0=["onClick","title"],S0={__name:"vs-editor-background-color",props:{editor:Object},setup(n){const t=n,o=e.ref(null),r=e.ref("transparent"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").backgroundColor||"transparent"),a=e.computed(()=>l.value!=="transparent"&&l.value!==""),s=()=>{t.editor&&(r.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const c=e.ref(["#172B4D","#0747A6","#008DA6","#006644","#FF991F","#BF2600","#403294","#97A0AF","#4C9AFF","#00B8D9","#36B37E","#FFC400","#FF5630","#6554C0","#FFFFFF","#B3D4FF","#B3F5FF","#ABF5D1","#FFF0B3","#FFBDAD","#EAE6FF"]),i=m=>{t.editor&&(t.editor.chain().focus().setBackgroundColor(m).run(),r.value=m,o.value&&o.value.togglePopover())},d=()=>{i(r.value)},p=m=>({"#172B4D":"Default","#0747A6":"Bright blue","#008DA6":"Bright blue-green","#006644":"Bright green","#FF991F":"Bright orange","#BF2600":"Bright red","#403294":"Bright purple","#97A0AF":"Gray","#4C9AFF":"Blue","#00B8D9":"Blue-green","#36B37E":"Green","#FFC400":"Yellow","#FF5630":"Red","#6554C0":"Purple",transparent:"Transparent","#B3D4FF":"Bright blue","#B3F5FF":"Bright blue-green","#ABF5D1":"Bright green","#FFF0B3":"Bright yellow","#FFBDAD":"Bright red","#EAE6FF":"Bright purple"})[m]||m;return(m,y)=>(e.openBlock(),e.createBlock(Ht,{ref_key:"popover",ref:o,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Background Color",class:e.normalizeClass(["flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-100":a.value}])},[e.createVNode(e.unref(J.PaintBucket),{class:"h-4 w-4"}),e.createElementVNode("span",{class:"block h-1 w-5",style:e.normalizeStyle({backgroundColor:r.value})},null,4)],2)]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("div",C0,[e.createVNode(wl,{modelValue:r.value,"onUpdate:modelValue":y[0]||(y[0]=h=>r.value=h)},null,8,["modelValue"]),e.createElementVNode("button",{onClick:d,class:"h-[38px] w-[38px] bg-blue-500 shrink-0 border rounded-md flex items-center justify-center hover:bg-blue-700 duration-300"},[e.createVNode(e.unref(J.Check),{class:"h-4 w-4 text-white"})])]),e.createElementVNode("div",E0,[e.createElementVNode("button",{onClick:y[1]||(y[1]=h=>i("transparent")),class:"col-span-7 flex items-center justify-center gap-2 bg-gray-100 rounded-md py-1 mb-2 hover:bg-gray-200"},[e.createVNode(e.unref(J.Eraser),{class:"h-4 w-4"}),y[2]||(y[2]=e.createElementVNode("p",null,"no color",-1))]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h,class:"h-8 w-8 p-0.5 rounded border border-transparent hover:border-gray-200 transition-transform cursor-pointer"},[e.createElementVNode("div",_0,[h!=="transparent"?(e.openBlock(),e.createElementBlock("button",{key:0,class:"flex items-center justify-center w-full h-full",style:e.normalizeStyle({backgroundColor:h}),onClick:f=>i(h),title:p(h)},[r.value===h?(e.openBlock(),e.createBlock(e.unref(J.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],12,B0)):e.createCommentVNode("",!0),h==="transparent"?(e.openBlock(),e.createElementBlock("button",{key:1,class:"flex items-center justify-center w-full h-full",onClick:f=>i(h),title:p(h)},[r.value===h?(e.openBlock(),e.createBlock(e.unref(J.Check),{key:0,class:"h-4 w-4 text-gray-500"})):e.createCommentVNode("",!0)],8,V0)):e.createCommentVNode("",!0)])]))),128))])])]),_:1},512))}},$0={__name:"vs-editor-highlight",props:{editor:Object},setup(n){const t=n,o=e.computed(()=>t.editor?.isActive("highlight")),r=()=>{t.editor&&t.editor.chain().focus().toggleHighlight().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Highlight",onClick:r,class:e.normalizeClass(["flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex",{"bg-gray-200":o.value}])},[e.createVNode(e.unref(J.Highlighter),{class:"h-4 w-4"})],2))}},A0={class:"truncate"},N0={class:"w-[200px]"},M0={class:"max-h-[200px] overflow-y-auto"},F0=["onClick"],D0={__name:"vs-editor-font-family",props:{editor:Object},setup(n){const t=n,o=e.ref("popover"),r=e.ref(!1),l=e.ref([{label:"Arial",value:"Arial, sans-serif"},{label:"Helvetica",value:"Helvetica, sans-serif"},{label:"Times New Roman",value:"Times New Roman, serif"},{label:"Georgia",value:"Georgia, serif"},{label:"Verdana",value:"Verdana, sans-serif"},{label:"Courier New",value:"Courier New, monospace"},{label:"Comic Sans MS",value:"Comic Sans MS, cursive"},{label:"Impact",value:"Impact, sans-serif"},{label:"Trebuchet MS",value:"Trebuchet MS, sans-serif"},{label:"Palatino",value:"Palatino, serif"}]),a=e.computed(()=>{if(!t.editor)return"Arial, sans-serif";for(const d of l.value)if(t.editor.isActive("textStyle",{fontFamily:d.value}))return d.value;return"Arial, sans-serif"}),s=e.computed(()=>l.value.find(p=>p.value===a.value)?.label||"Arial"),c=d=>t.editor?t.editor.isActive("textStyle",{fontFamily:d}):!1,i=d=>{t.editor&&(t.editor.chain().focus().setFontFamily(d).run(),o.value&&o.value.togglePopover())};return(d,p)=>(e.openBlock(),e.createBlock(Ht,{ref_key:"popover",ref:o,placement:"bottom",onIsvisible:p[0]||(p[0]=m=>r.value=m)},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Font Family",class:e.normalizeClass(["h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm",[r.value?"bg-gray-100 text-gray-900":"text-gray-700"]]),style:e.normalizeStyle({fontFamily:a.value})},[e.createElementVNode("span",A0,e.toDisplayString(s.value),1),e.createVNode(e.unref(J.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})],6)]),default:e.withCtx(()=>[e.createElementVNode("div",N0,[e.createElementVNode("ul",M0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,m=>(e.openBlock(),e.createElementBlock("li",{key:m.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",{"bg-gray-100":c(m.value)}]),style:e.normalizeStyle({fontFamily:m.value}),onClick:y=>i(m.value)},e.toDisplayString(m.label),15,F0))),128))])])]),_:1},512))}},T0={class:"w-[120px]"},L0={class:"max-h-[200px] overflow-y-auto"},I0=["onClick"],O0={__name:"vs-editor-font-size",props:{editor:Object},setup(n){const t=n,o=e.ref("popover"),r=e.ref("14px"),l=e.computed(()=>t.editor&&t.editor.getAttributes("textStyle").fontSize||"14px"),a=e.computed(()=>l.value!=="14px"),s=()=>{t.editor&&(r.value=l.value)};e.onMounted(()=>{t.editor&&(t.editor.on("selectionUpdate",s),t.editor.on("update",s),s())}),e.onUnmounted(()=>{t.editor&&(t.editor.off("selectionUpdate",s),t.editor.off("update",s))});const c=e.ref([{label:"8px",value:"8px"},{label:"9px",value:"9px"},{label:"10px",value:"10px"},{label:"11px",value:"11px"},{label:"12px",value:"12px"},{label:"14px",value:"14px"},{label:"16px",value:"16px"},{label:"18px",value:"18px"},{label:"20px",value:"20px"},{label:"24px",value:"24px"},{label:"28px",value:"28px"},{label:"32px",value:"32px"},{label:"36px",value:"36px"},{label:"48px",value:"48px"},{label:"72px",value:"72px"}]),i=d=>{t.editor&&(t.editor.chain().focus().setFontSize(d).run(),r.value=d,o.value&&o.value.togglePopover())};return(d,p)=>(e.openBlock(),e.createBlock(Ht,{ref_key:"popover",ref:o,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",{title:"Font Size",class:e.normalizeClass(["h-[30px] px-2 min-w-[30px] rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700 space-x-1",{"bg-gray-100 text-gray-900":a.value}])},[e.createVNode(e.unref(J.ALargeSmall),{class:"h-4 w-4"}),e.createVNode(e.unref(J.ChevronDown),{class:"h-3 w-3 text-gray-400"})],2)]),default:e.withCtx(()=>[e.createElementVNode("div",T0,[e.createElementVNode("ul",L0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.value,m=>(e.openBlock(),e.createElementBlock("li",{key:m.value,class:"px-3 py-2 hover:bg-gray-100 cursor-pointer",onClick:y=>i(m.value)},e.toDisplayString(m.label),9,I0))),128))])])]),_:1},512))}},P0={components:{Superscript:J.Superscript},props:{editor:Object},methods:{toggleSuperscript(){this.editor&&this.editor.commands.toggleSuperscript()}}};function R0(n,t,o,r,l,a){const s=e.resolveComponent("Superscript");return e.openBlock(),e.createElementBlock("button",{title:"Superscript",onClick:t[0]||(t[0]=(...c)=>a.toggleSuperscript&&a.toggleSuperscript(...c)),class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":o.editor?.isActive("superscript")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Superscript",-1))],2)}const z0=Ve(P0,[["render",R0]]),j0={components:{Subscript:J.Subscript},props:{editor:Object},methods:{toggleSubscript(){this.editor&&this.editor.commands.toggleSubscript()}}};function U0(n,t,o,r,l,a){const s=e.resolveComponent("Subscript");return e.openBlock(),e.createElementBlock("button",{title:"Subscript",onClick:t[0]||(t[0]=(...c)=>a.toggleSubscript&&a.toggleSubscript(...c)),class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",{"bg-gray-100 text-gray-900":o.editor?.isActive("subscript")}])},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Subscript",-1))],2)}const H0=Ve(j0,[["render",U0]]),q0={title:"Heading",class:"h-[30px] px-2 rounded-full hover:bg-gray-100 justify-center items-center flex text-sm text-gray-700"},K0={class:"truncate"},W0={class:"max-h-[200px] overflow-y-auto"},G0=["onClick"],Y0=Ve({__name:"vs-editor-heading",props:{editor:Object},setup(n){const t=n,o=e.ref("popover"),r=e.ref([{label:"Heading 1",value:1},{label:"Heading 2",value:2},{label:"Heading 3",value:3},{label:"Heading 4",value:4},{label:"Heading 5",value:5},{label:"Heading 6",value:6}]),l=e.computed(()=>{if(!t.editor)return"Paragraph";for(let i=1;i<=6;i++)if(t.editor.isActive("heading",{level:i}))return`H ${i}`;return"P"}),a=i=>({1:"font-weight:700; font-size:30px;",2:"font-weight:700; font-size:26px;",3:"font-weight:700; font-size:22px;",4:"font-weight:700; font-size:18px;",5:"font-weight:500; font-size:16px;",6:"font-weight:400; font-size:14px;"})[i]||"",s=i=>{t.editor&&(t.editor.chain().focus().setHeading({level:i}).run(),o.value&&o.value.togglePopover())},c=()=>{t.editor&&(t.editor.chain().focus().setParagraph().run(),o.value&&o.value.togglePopover())};return(i,d)=>(e.openBlock(),e.createBlock(Ht,{ref_key:"popover",ref:o,placement:"bottom"},{reference:e.withCtx(()=>[e.createElementVNode("button",q0,[e.createElementVNode("span",K0,e.toDisplayString(l.value),1),e.createVNode(e.unref(J.ChevronDown),{class:"ml-1 h-3 w-3 text-gray-400"})])]),default:e.withCtx(()=>[e.createElementVNode("div",null,[e.createElementVNode("ul",W0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,p=>(e.openBlock(),e.createElementBlock("li",{key:p.value,class:e.normalizeClass(["px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm",`heading-level-${p.value}`]),style:e.normalizeStyle(a(p.value)),onClick:m=>s(p.value)},e.toDisplayString(p.label),15,G0))),128)),e.createElementVNode("li",{class:"px-3 py-2 hover:bg-gray-100 cursor-pointer text-sm border-t border-gray-200 mt-1 pt-2",onClick:c}," Paragraph ")])])]),_:1},512))}},[["__scopeId","data-v-46380488"]]),X0={components:{RemoveFormatting:J.RemoveFormatting},props:{editor:Object},methods:{clearFormatting(){this.editor&&this.editor.commands.unsetAllMarks()}}};function Z0(n,t,o,r,l,a){const s=e.resolveComponent("RemoveFormatting");return e.openBlock(),e.createElementBlock("button",{title:"Clear Formatting",onClick:t[0]||(t[0]=(...c)=>a.clearFormatting&&a.clearFormatting(...c)),class:"h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(s,{class:"h-4 w-4"}),t[1]||(t[1]=e.createElementVNode("span",{class:"sr-only"},"Clear Formatting",-1))])}const J0=Ve(X0,[["render",Z0]]),Q0={class:"relative"},ey={key:0,class:"mt-4"},ty=["src","alt","title"],ny={key:0,class:"text-sm text-red-500"},oy={key:1,class:"mt-4"},ry={class:"text-sm text-gray-600 mb-2"},ly={class:"flex flex-wrap gap-2"},ay=["src","alt","onError"],sy=["onClick"],iy={class:"flex justify-end gap-x-2 p-[20px]"},cy=Object.assign({inheritAttrs:!1},{__name:"vs-editor-image",props:{editor:{type:Object,required:!0}},setup(n){const t=n,o=e.ref(!1),r=e.ref(!1),l=e.ref({}),a=e.ref(!1),s=e.ref([]),c=e.ref(null),i=e.ref({src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}),d=e.computed(()=>{if(Array.isArray(i.value.file)){const V=i.value.file.filter(T=>T instanceof File),S=i.value.file.filter(T=>typeof T=="string"&&T.trim()!=="");return V.length+S.length>1}return i.value.file instanceof FileList?i.value.file.length>1:!1}),p=e.computed(()=>Array.isArray(i.value.file)?i.value.file.filter(V=>V instanceof File).length===1:i.value.file instanceof FileList?i.value.file.length===1:i.value.file instanceof File),m=e.computed(()=>{if(d.value)return"";if(i.value.src)return i.value.src;if(p.value){let V=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?V=i.value.file[0]:i.value.file instanceof File&&(V=i.value.file),V instanceof File){const S=s.value.find(C=>C.file===V);return S?S.preview:""}else if(typeof V=="string")return V}return""}),y=e.computed(()=>[{name:"src",label:"URL зображення",type:"text",required:!1,placeholder:"https://example.com/image.png"},{name:"file",label:"Файл (можна вибрати кілька)",type:"file",multiple:!0,required:!1,placeholder:"Шлях до файлу зображення",accept:"image/*"},{name:"width",label:"Ширина",type:"number",required:!1,placeholder:"Ширина зображення",clearable:!0,min:0},{name:"height",label:"Висота",type:"number",required:!1,placeholder:"Висота зображення",clearable:!0,min:0},{name:"alt",label:"Альтернативний текст",type:"text",required:!1,placeholder:"Опис зображення"},{name:"title",label:"Заголовок (необов'язково)",type:"text",required:!1,placeholder:"Заголовок зображення"},{name:"link",label:"Посилання",type:"text",required:!1,placeholder:"https://example.com"},{name:"openInNewTab",label:"Відкривати у новій вкладці?",type:"switcher",required:!1}]),h=()=>{if(!t.editor)return;if(t.editor.isActive("image")){const{state:S}=t.editor,{selection:C}=S,{$from:T}=C;let H=null,oe=null;if(T.parent.type.name==="image")H=T.before(T.depth),oe=T.parent;else for(let G=T.depth;G>0;G--){const $=T.node(G),O=T.before(G);$.type.name==="paragraph"&&$.forEach((D,ie)=>{if(D.type.name==="image"){const ce=O+ie+1;(H===null||Math.abs(ce-C.$from.pos)<Math.abs(H-C.$from.pos))&&(H=ce,oe=D)}})}if(H!==null&&oe){try{t.editor.chain().focus().setNodeSelection(H).run()}catch{t.editor.chain().focus().setTextSelection(H).run()}c.value=H}else{t.editor.chain().focus().selectParentNode().run();const{state:G}=t.editor;c.value=G.selection.$from.pos}const A=oe?oe.attrs:t.editor.getAttributes("image");a.value=!0;let L="",Z=!1;const W=t.editor.getAttributes("link");W&&W.href&&(L=W.href,Z=W.target==="_blank");const I=A.src||"",z=I?[I]:[];i.value={src:I,file:z,alt:A.alt||"",title:A.title||"",width:A.width||"",height:A.height||"",link:L,openInNewTab:Z}}else a.value=!1,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1};r.value=!1,o.value=!0},f=()=>{o.value=!1,r.value=!1,a.value=!1,s.value=[],c.value=null,i.value={src:"",file:[],alt:"",title:"",width:"",height:"",link:"",openInNewTab:!1}},x=async V=>{if(!V||V.length===0)return;const S=[];for(const C of V)if(C&&C.type&&C.type.startsWith("image/")&&!s.value.some(H=>H.file===C)){const H=new Promise((oe,A)=>{const L=new FileReader;L.onload=Z=>{s.value.push({file:C,preview:Z.target.result,error:!1}),oe()},L.onerror=A,L.readAsDataURL(C)});S.push(H)}await Promise.all(S)},b=V=>{s.value.splice(V,1),Array.isArray(i.value.file)&&i.value.file.splice(V,1)},E=()=>{const V=i.value.width!==null&&i.value.width!==void 0&&i.value.width!==""&&String(i.value.width).trim()!==""?String(i.value.width).trim():"",S=i.value.height!==null&&i.value.height!==void 0&&i.value.height!==""&&String(i.value.height).trim()!==""?String(i.value.height).trim():"",C={};return V&&S?(C.width=V,C.height=S,C.style=`width: ${V}px; height: ${S}px; object-fit: fill;`):V?(C.width=V,C.height=void 0):S?(C.height=S,C.width=void 0):(C.width=void 0,C.height=void 0),C},v=(V,S=null,C=50)=>{const T=()=>{const{view:A}=V;if(!A||!A.dom)return;A.dom.querySelectorAll("img.editor-image[width][height]").forEach(W=>{if(W instanceof HTMLImageElement){const I=W.getAttribute("width"),z=W.getAttribute("height");I&&z&&I!=="auto"&&z!=="auto"&&I!==""&&z!==""&&!isNaN(Number(I))&&!isNaN(Number(z))&&(W.style.cssText=`
|
|
36
|
+
width: ${I}px !important;
|
|
37
|
+
height: ${z}px !important;
|
|
38
38
|
max-width: none !important;
|
|
39
39
|
max-height: none !important;
|
|
40
40
|
min-width: auto !important;
|
|
41
41
|
min-height: auto !important;
|
|
42
42
|
object-fit: fill !important;
|
|
43
|
-
`.replace(/\s+/g," ").trim())}})},H=c.value.width,te=c.value.height;H&&te&&H!==""&&te!==""?[0,_,_*2,_*3,_*4].forEach(R=>{setTimeout(D,R)}):(D(),setTimeout(D,_))},B=async()=>{let E=[],V=[];if(Array.isArray(c.value.file)?(E=c.value.file.filter(S=>S instanceof File),V=c.value.file.filter(S=>typeof S=="string"&&S.trim()!=="")):c.value.file instanceof FileList?E=Array.from(c.value.file):c.value.file instanceof File?E=[c.value.file]:typeof c.value.file=="string"&&c.value.file.trim()!==""&&(V=[c.value.file]),E.length===0&&V.length===0&&l.value&&l.value.file){const S=l.value.file;Array.isArray(S)?(E=S.filter(R=>R instanceof File),V=S.filter(R=>typeof R=="string"&&R.trim()!=="")):S instanceof FileList?E=Array.from(S):S instanceof File?E=[S]:typeof S=="string"&&S.trim()!==""&&(V=[S])}if(V.length>0&&!a.value){for(const S of V)s.value.some(R=>R.url===S)||s.value.push({url:S,preview:S,error:!1});if(E.length===0&&s.value.length>0){await I();return}}const _=E.length,D=_+V.length;if(!(a.value&&_<=1)){if(_>0){const S=E.filter(R=>!s.value.some(K=>K.file===R));S.length>0&&await k(S)}}if(!a.value){if(D>1||d.value||s.value.length>1){if(s.value.length>0){await I();return}else if(_>0){if(await k(E),s.value.length>0){await I();return}}else if(V.length>0){await I();return}}else if(s.value.length>1){await I();return}}let H=c.value.src;if(p.value){let S=null;if(Array.isArray(c.value.file)||c.value.file instanceof FileList?S=c.value.file[0]:(c.value.file instanceof File||typeof c.value.file=="string")&&(S=c.value.file),S instanceof File)try{const R=new FileReader,K=await new Promise((q,P)=>{R.onload=Q=>q(Q.target.result),R.onerror=P,R.readAsDataURL(S)});H=K,a.value&&(c.value.src=K)}catch(R){console.error("Помилка при читанні файлу:",R),be.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof S=="string"&&S.trim()!==""&&(H=S.trim(),a.value&&S.trim()!==c.value.src&&(c.value.src=S.trim(),H=S.trim()))}else if(Array.isArray(c.value.file)&&c.value.file.length===1){const S=c.value.file[0];typeof S=="string"&&S.trim()!==""&&(H=S.trim(),(!c.value.src||c.value.src!==S.trim())&&(c.value.src=S.trim()))}else typeof c.value.file=="string"&&c.value.file.trim()!==""&&(H=c.value.file.trim(),(!c.value.src||c.value.src!==c.value.file.trim())&&(c.value.src=c.value.file.trim()));const te=H||Array.isArray(c.value.file)&&c.value.file.length>0&&(c.value.file.some(S=>S instanceof File)||c.value.file.some(S=>typeof S=="string"&&S.trim()!==""))||c.value.file instanceof FileList&&c.value.file.length>0||typeof c.value.file=="string"&&c.value.file.trim()!=="";if(!H&&!te){be.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!te&&await l.value.validate()){be.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&H)if(a.value&&i.value!==null){const{state:S}=t.editor;try{t.editor.chain().focus().setNodeSelection(i.value).run()}catch{t.editor.chain().focus().setTextSelection(i.value).run()}const R=t.editor.getAttributes("link"),K=R&&R.href,q=v(),P={src:H,alt:c.value.alt||"",title:c.value.title||"",...q};if((!c.value.width||c.value.width==="")&&(P.width=void 0),(!c.value.height||c.value.height==="")&&(P.height=void 0),t.editor.chain().focus().updateAttributes("image",P).run(),setTimeout(()=>{const{view:Q}=t.editor;if(!Q||!Q.dom)return;Q.dom.querySelectorAll("img.editor-image").forEach(G=>{if(G instanceof HTMLImageElement){const L=G.getAttribute("src")||G.src;(L===H||L.includes(H.split("/").pop()))&&(c.value.width&&c.value.height?(G.style.setProperty("width",`${c.value.width}px`,"important"),G.style.setProperty("height",`${c.value.height}px`,"important"),G.style.setProperty("object-fit","fill","important"),G.style.setProperty("max-width","none","important"),G.style.setProperty("max-height","none","important")):(G.style.removeProperty("width"),G.style.removeProperty("height"),G.style.removeProperty("object-fit"),G.style.removeProperty("max-width"),G.style.removeProperty("max-height")))}})},20),c.value.link&&c.value.link.trim()!==""){let Q=c.value.link.trim();Q.match(/^https?:\/\//i)||(Q="https://"+Q),K?t.editor.chain().focus().extendMarkRange("link").setLink({href:Q,target:c.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:Q,target:c.value.openInNewTab?"_blank":null}).run()}else K&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:S}=t.editor,{selection:R}=S,{$anchor:K}=R;let q=null;for(let Q=K.depth;Q>0;Q--){const ne=K.node(Q);if(ne&&ne.type.name==="paragraph"){q=ne;break}}if(q&&q.content.content.some(Q=>Q.type.name==="image")){const Q=N(q,K.before(K.depth));if(Q!==null){const ne=v(),F=S.schema.nodes.image.create({src:H,alt:c.value.alt||"",title:c.value.title||"",...ne});if(c.value.link&&c.value.link.trim()!==""){let G=c.value.link.trim();G.match(/^https?:\/\//i)||(G="https://"+G);const L=S.schema.marks.link.create({href:G,target:c.value.openInNewTab?"_blank":null}),se=F.type.create(F.attrs,F.content,[L]);t.editor.chain().focus().insertContentAt(Q+1,se).run(),w(t.editor,H)}else t.editor.chain().focus().insertContentAt(Q+1,F).run(),w(t.editor,H)}else if(c.value.link&&c.value.link.trim()!==""){const ne=v();t.editor.chain().focus().setImage({src:H,alt:c.value.alt||"",title:c.value.title||"",...ne}).run(),setTimeout(()=>{let F=c.value.link.trim();F.match(/^https?:\/\//i)||(F="https://"+F),t.editor.chain().focus().selectParentNode().setLink({href:F,target:c.value.openInNewTab?"_blank":null}).run(),w(t.editor,H,20)},10)}else{const ne=v();t.editor.chain().focus().setImage({src:H,alt:c.value.alt||"",title:c.value.title||"",...ne}).run(),w(t.editor,H)}}else if(c.value.link&&c.value.link.trim()!==""){const Q=v();t.editor.chain().focus().setImage({src:H,alt:c.value.alt||"",title:c.value.title||"",...Q}).run(),setTimeout(()=>{let ne=c.value.link.trim();ne.match(/^https?:\/\//i)||(ne="https://"+ne),t.editor.chain().focus().selectParentNode().setLink({href:ne,target:c.value.openInNewTab?"_blank":null}).run(),w(t.editor,H,20)},10)}else{const Q=v();t.editor.chain().focus().setImage({src:H,alt:c.value.alt||"",title:c.value.title||"",...Q}).run(),w(t.editor,H)}}f()},N=(E,V)=>{let _=null;return E.forEach((D,H)=>{D.type.name==="image"&&(_=V+H+1)}),_},I=async()=>{if(t.editor){if(s.value.length===0)if(Array.isArray(c.value.file)&&c.value.file.length>0){const E=c.value.file.filter(_=>typeof _=="string"&&_.trim()!==""),V=c.value.file.filter(_=>_ instanceof File);for(const _ of E)s.value.some(D=>D.url===_||D.preview===_)||s.value.push({url:_,preview:_,error:!1});V.length>0&&await k(V)}else d.value&&await k(c.value.file);if(s.value.length!==0)try{const E=[],V=v();for(const _ of s.value){const D=_.url||_.preview||"";if(!D)continue;const H=t.editor.schema.nodes.image.create({src:D,alt:c.value.alt||"",title:c.value.title||"",...V});E.push(H)}E.length>0&&(t.editor.chain().focus().command(({tr:_,dispatch:D})=>{if(D){const{selection:H}=_,{$anchor:te}=H;let S=H.$anchor.pos,R=null,K=null;for(let P=te.depth;P>0;P--){const Q=te.node(P);if(Q&&Q.type.name==="paragraph"){R=Q,K=te.start(P);break}}if(R){let P=null;R.forEach((Q,ne)=>{Q.type.name==="image"&&(P=K+ne+1)}),P!==null?S=P+1:S=K+R.content.size}let q=S;return E.forEach(P=>{_.insert(q,P),q+=P.nodeSize}),!0}return!1}).run(),c.value.width&&c.value.height&&setTimeout(()=>{const{view:_}=t.editor;_&&_.dom&&_.dom.querySelectorAll("img.editor-image").forEach(te=>{te instanceof HTMLImageElement&&Array.from(s.value).some(R=>{const K=R.url||R.preview||"",q=te.src||te.getAttribute("src")||"";return q===K||q.includes(K.split("/").pop())})&&(te.style.setProperty("width",`${c.value.width}px`,"important"),te.style.setProperty("height",`${c.value.height}px`,"important"),te.style.setProperty("object-fit","fill","important"),te.style.setProperty("max-width","none","important"),te.style.setProperty("max-height","none","important"))})},50)),f()}catch(E){console.error("Помилка при додаванні зображень:",E),be.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},Z=async()=>{await B()},T=()=>{f()};return e.watch(()=>c.value.file,async(E,V)=>{if(r.value=!1,!(a.value&&Array.isArray(E)&&E.length===1&&typeof E[0]=="string"&&!E.some(D=>D instanceof File)))if(Array.isArray(E)&&E.length>0){const _=E.filter(H=>H instanceof File),D=E.filter(H=>typeof H=="string"&&H.trim()!=="");if(_.length>0&&(a.value?a.value&&_.length===1&&D.length===0&&(s.value=[]):s.value=[],(!a.value||_.length>1||D.length>0)&&await k(_),a.value&&_.length===1&&D.length===0)){const H=new FileReader;H.onload=te=>{c.value.src=te.target.result},H.readAsDataURL(_[0])}if(D.length>0)if(a.value)a.value&&D.length===1&&_.length===0&&(c.value.src=D[0]);else{_.length===0&&(s.value=[]);for(const H of D)s.value.some(te=>te.url===H||te.preview===H)||s.value.push({url:H,preview:H,error:!1})}}else E&&typeof E=="object"&&E instanceof FileList?(a.value||(s.value=[]),await k(Array.from(E))):E&&typeof E=="object"&&!Array.isArray(E)&&E instanceof File?(a.value||(s.value=[]),await k([E])):a.value||(s.value=[])},{immediate:!1}),e.watch(()=>c.value.src,()=>{r.value=!1}),(E,V)=>(e.openBlock(),e.createElementBlock("div",T0,[e.createElementVNode("button",{onClick:h,class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",o.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(W.Image),{class:"h-4 w-4"}),V[4]||(V[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(sl,{modelValue:n.value,"onUpdate:modelValue":V[3]||(V[3]=_=>n.value=_),title:a.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",H0,[e.createElementVNode("button",{onClick:T,type:"button",class:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500"}," Скасувати "),e.createElementVNode("button",{onClick:Z,type:"button",class:"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500"},e.toDisplayString(a.value?"Оновити зображення":"Додати зображення"),1)])]),default:e.withCtx(()=>[e.createVNode(ct,{modelValue:c.value,"onUpdate:modelValue":V[0]||(V[0]=_=>c.value=_),schema:y.value,form:l.value,"onUpdate:form":V[1]||(V[1]=_=>l.value=_)},null,8,["modelValue","schema","form"]),m.value&&!d.value?(e.openBlock(),e.createElementBlock("div",L0,[V[5]||(V[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:m.value,alt:c.value.alt||"Попередній перегляд зображення",title:c.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:V[2]||(V[2]=_=>r.value=!0)},null,40,I0),[[e.vShow,!r.value]]),r.value?(e.openBlock(),e.createElementBlock("p",O0," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",R0,[e.createElementVNode("p",P0,"Попередній перегляд ("+e.toDisplayString(s.value.length)+" зображень):",1),V[6]||(V[6]=e.createElementVNode("p",{class:"text-xs text-gray-500 mb-2"}," Зображення будуть розміщені в ряд, якщо вони помістяться по ширині ",-1)),e.createElementVNode("div",z0,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(_,D)=>(e.openBlock(),e.createElementBlock("div",{key:D,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:_.preview,alt:`Попередній перегляд ${D+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:H=>_.error=!0},null,40,j0),[[e.vShow,!_.error]]),e.createElementVNode("button",{onClick:H=>b(D),class:"absolute -top-2 -right-2 bg-red-500 text-white rounded-full w-5 h-5 flex items-center justify-center text-xs hover:bg-red-600",type:"button"}," × ",8,U0)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),K0={class:"flex items-center"},W0=["disabled"],G0=["disabled"],Y0=Ce(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},r=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("div",K0,[e.createElementVNode("button",{onClick:n,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[o.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(W.Undo2),{class:"h-4 w-4"})],10,W0),e.createElementVNode("button",{onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[o.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!o.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(W.Redo2),{class:"h-4 w-4"})],10,G0)]))}}),[["__scopeId","data-v-6a87fc55"]]),X0={class:"relative"},Z0={class:"p-6"},J0={class:"flex justify-between items-center mb-4"},Q0={bold:dg,italic:mg,color:r0,background_color:d0,highlight:u0,bullet_list:tg,ordered_list:rg,blockquote:Jh,codeblock:sg,underline:fg,strike:hg,link:Og,table:Ug,text_align:Kg,type_tag:Yg,font_family:g0,font_size:x0,superscript:v0,subscript:B0,heading:A0,clear_formatting:D0,image:q0,history:Y0,help:Ce(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(o){const t=e.ref(!1),n=e.ref(null),r=()=>{t.value=!t.value},l=()=>{t.value=!1};return(a,s)=>(e.openBlock(),e.createElementBlock("div",X0,[e.createElementVNode("button",{ref_key:"helpButton",ref:n,onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 text-gray-500",[t.value?"bg-gray-100 text-gray-900":"text-gray-500"]]),title:"Markdown Shortcuts Help"},[e.createVNode(e.unref(W.CircleHelp),{class:"h-4 w-4"})],2),t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[100001]",onClick:l},[e.createElementVNode("div",{class:"bg-white rounded-lg shadow-xl max-w-2xl w-full mx-4 max-h-[80vh] overflow-y-auto",onClick:s[0]||(s[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",Z0,[e.createElementVNode("div",J0,[s[1]||(s[1]=e.createElementVNode("h2",{class:"text-xl font-semibold text-gray-900"},"Common Markdown Syntax & Shortcuts",-1)),e.createElementVNode("button",{onClick:l,class:"text-gray-400 hover:text-gray-600 transition-colors"},[e.createVNode(e.unref(W.X),{class:"h-6 w-6"})])]),s[2]||(s[2]=e.createStaticVNode('<div class="space-y-6" data-v-92c21275><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Markdown Syntax</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Element</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Example</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Bold</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>**bold text**</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>__bold text__</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Italics</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>*italic text*</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>_italic text_</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Strikethrough</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>~strikethrough text~</code></td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Headings</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275># Heading 1</code>, <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>## Heading 2</code>, etc., up to <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>###### Heading 6</code></td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Unordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use an asterisk (*), dash (-), or plus sign (+) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Ordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use a number followed by a period and a space (e.g., <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>1. First item</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Blockquotes</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Start with a greater-than sign (>) followed by a space. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Inline Code</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Surround with backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>`</code>). </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Code Blocks</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Enclose with three backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>```</code>) before and after the code. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Images</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275></code> syntax. </td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Links</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>[Link Text](url)</code> syntax. </td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275>Checklists</td><td class="border border-gray-200 px-3 py-2" data-v-92c21275> Create a list item with <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [ ]</code> for an incomplete task or <code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>- [x]</code> for a completed one. </td></tr></tbody></table></div></div><div data-v-92c21275><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-92c21275>Common Editing Shortcuts</h3><div class="overflow-x-auto" data-v-92c21275><table class="w-full border-collapse" data-v-92c21275><thead data-v-92c21275><tr class="bg-gray-50" data-v-92c21275><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Shortcut</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-92c21275>Action</th></tr></thead><tbody class="text-sm" data-v-92c21275><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+A</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Select all text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+B</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply bold formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+C</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Copy selected text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+I</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Apply italic formatting</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+K</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Open the insert link dialog</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+S</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Save the current document</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+V</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Paste copied text</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+X</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Cut selected text</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Y</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Shift+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Redo the last action</td></tr><tr data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Ctrl+Z</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr><tr class="bg-gray-25" data-v-92c21275><td class="border border-gray-200 px-3 py-2 font-medium" data-v-92c21275><code class="bg-gray-100 px-2 py-1 rounded" data-v-92c21275>Alt+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-92c21275>Undo the last action</td></tr></tbody></table></div></div></div>',1))])])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-92c21275"]]),horizontal_rule:{__name:"vs-editor-horizontal-rule",props:{editor:Object},setup(o){const t=o,n=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(r,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:n,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(W.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(o,{emit:t}){const n=t,r=()=>{n("toggle-fullscreen")};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:r,class:"w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(e.unref(W.Maximize),{class:"h-4 w-4"})]))}},tab:Object.assign({inheritAttrs:!1},{__name:"vs-editor-tab",props:{editor:{type:Object,required:!0}},setup(o){const t=o,n=()=>{t.editor&&(t.editor.isActive("bulletList")||t.editor.isActive("orderedList"))&&t.editor.chain().focus().sinkListItem("listItem").run()};return(r,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Tab (Increase List Indent)",onClick:n,class:"text-gray-500 w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 focus:outline-none"},[e.createVNode(e.unref(W.ListIndentIncrease),{class:"h-4 w-4"})]))}})},dl={basic:["history","font_family","font_size","bold","italic","underline","strike","text_align","bullet_list","ordered_list","link","image","clear_formatting","help"],default:["history","heading","font_family","font_size","bold","italic","underline","strike","superscript","subscript","color","background_color","highlight","text_align","bullet_list","ordered_list","blockquote","codeblock","table","link","image","horizontal_rule","clear_formatting","fullscreen","help"],full:["history","heading","font_family","font_size","bold","italic","underline","strike","color","background_color","highlight","text_align","bullet_list","ordered_list","blockquote","codeblock","table","link","image","horizontal_rule","superscript","subscript","clear_formatting","fullscreen","help"]},ey={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},ty={class:"rich-text-scroll-wrapper"},ny={key:0,class:"richtext-loading text-sm text-gray-500"},oy={key:1,class:"richtext-error text-sm text-red-600"},ry={class:"html-source-editor"},ly={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},ay={class:"inline-flex items-stretch -mt-px"},sy=Object.freeze(Object.defineProperty({__proto__:null,default:Object.assign({inheritAttrs:!1},{__name:"vs-richtext",props:e.mergeModels({modelValue:{type:String,default:()=>""},height:{type:String,default:()=>"300px"},format:{type:String,default:()=>"html"},toolbar:{type:[Array,String],default:()=>"default"}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue"],["update:modelValue"]),setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),{t:l}=Un(),a=e.computed(()=>t.format==="md"?"markdown":"html"),s=e.computed(()=>t.format==="md"?l("form.richtext.markdown"):l("form.richtext.html")),{editor:i,editorInstance:c,focusEditor:d,createEditor:p,destroyEditor:m,isLoading:y,loadError:h}=Th(t),{isHtmlMode:f,htmlContent:k,htmlTextarea:b,toggleHtmlMode:v}=Lh(i,t.format,(T,E)=>{T==="update:modelValue"&&(n.value=E)},{toEditorContent:Co,toSourceContent:qh}),{isFullscreen:w,toggleFullscreen:B}=Ih(),N=e.computed(()=>typeof t.toolbar=="string"?dl[t.toolbar]||dl.default:t.toolbar),I=e.computed(()=>N.value.map(T=>Q0[T]).filter(Boolean));e.watch(()=>t.modelValue,async T=>{if(i.value){const E=await Co(T||"",t.format),V=i.value.getHTML();E!==V&&E!=="<p></p>"&&i.value.commands.setContent(E,!1)}},{immediate:!0});const Z=T=>{if(!T||!T.view||!T.view.dom)return;T.view.dom.querySelectorAll("img.editor-image[width][height]").forEach(V=>{if(V instanceof HTMLImageElement){const _=V.getAttribute("width"),D=V.getAttribute("height");_&&D&&_!=="auto"&&D!=="auto"&&_!==""&&D!==""&&!isNaN(Number(_))&&!isNaN(Number(D))&&(V.style.cssText=`
|
|
44
|
-
width: ${
|
|
43
|
+
`.replace(/\s+/g," ").trim())}})},H=i.value.width,oe=i.value.height;H&&oe&&H!==""&&oe!==""?[0,C,C*2,C*3,C*4].forEach(L=>{setTimeout(T,L)}):(T(),setTimeout(T,C))},_=async()=>{let V=[],S=[];if(Array.isArray(i.value.file)?(V=i.value.file.filter(A=>A instanceof File),S=i.value.file.filter(A=>typeof A=="string"&&A.trim()!=="")):i.value.file instanceof FileList?V=Array.from(i.value.file):i.value.file instanceof File?V=[i.value.file]:typeof i.value.file=="string"&&i.value.file.trim()!==""&&(S=[i.value.file]),V.length===0&&S.length===0&&l.value&&l.value.file){const A=l.value.file;Array.isArray(A)?(V=A.filter(L=>L instanceof File),S=A.filter(L=>typeof L=="string"&&L.trim()!=="")):A instanceof FileList?V=Array.from(A):A instanceof File?V=[A]:typeof A=="string"&&A.trim()!==""&&(S=[A])}if(S.length>0&&!a.value){for(const A of S)s.value.some(L=>L.url===A)||s.value.push({url:A,preview:A,error:!1});if(V.length===0&&s.value.length>0){await R();return}}const C=V.length,T=C+S.length;if(!(a.value&&C<=1)){if(C>0){const A=V.filter(L=>!s.value.some(Z=>Z.file===L));A.length>0&&await x(A)}}if(!a.value){if(T>1||d.value||s.value.length>1){if(s.value.length>0){await R();return}else if(C>0){if(await x(V),s.value.length>0){await R();return}}else if(S.length>0){await R();return}}else if(s.value.length>1){await R();return}}let H=i.value.src;if(p.value){let A=null;if(Array.isArray(i.value.file)||i.value.file instanceof FileList?A=i.value.file[0]:(i.value.file instanceof File||typeof i.value.file=="string")&&(A=i.value.file),A instanceof File)try{const L=new FileReader,Z=await new Promise((W,I)=>{L.onload=z=>W(z.target.result),L.onerror=I,L.readAsDataURL(A)});H=Z,a.value&&(i.value.src=Z)}catch(L){console.error("Помилка при читанні файлу:",L),be.notify({type:"error",title:"Помилка",message:"Не вдалося прочитати файл"});return}else typeof A=="string"&&A.trim()!==""&&(H=A.trim(),a.value&&A.trim()!==i.value.src&&(i.value.src=A.trim(),H=A.trim()))}else if(Array.isArray(i.value.file)&&i.value.file.length===1){const A=i.value.file[0];typeof A=="string"&&A.trim()!==""&&(H=A.trim(),(!i.value.src||i.value.src!==A.trim())&&(i.value.src=A.trim()))}else typeof i.value.file=="string"&&i.value.file.trim()!==""&&(H=i.value.file.trim(),(!i.value.src||i.value.src!==i.value.file.trim())&&(i.value.src=i.value.file.trim()));const oe=H||Array.isArray(i.value.file)&&i.value.file.length>0&&(i.value.file.some(A=>A instanceof File)||i.value.file.some(A=>typeof A=="string"&&A.trim()!==""))||i.value.file instanceof FileList&&i.value.file.length>0||typeof i.value.file=="string"&&i.value.file.trim()!=="";if(!H&&!oe){be.notify({type:"warning",title:"Попередження",message:"Будь ласка, введіть URL зображення або виберіть файл"});return}if(!d.value&&!oe&&await l.value.validate()){be.notify({type:"warning",title:"Попередження",message:"Будь ласка, заповніть всі обов'язкові поля"});return}if(t.editor&&H)if(a.value&&c.value!==null){const{state:A}=t.editor;try{t.editor.chain().focus().setNodeSelection(c.value).run()}catch{t.editor.chain().focus().setTextSelection(c.value).run()}const L=t.editor.getAttributes("link"),Z=L&&L.href,W=E(),I={src:H,alt:i.value.alt||"",title:i.value.title||"",...W};if((!i.value.width||i.value.width==="")&&(I.width=void 0),(!i.value.height||i.value.height==="")&&(I.height=void 0),t.editor.chain().focus().updateAttributes("image",I).run(),setTimeout(()=>{const{view:z}=t.editor;if(!z||!z.dom)return;z.dom.querySelectorAll("img.editor-image").forEach(O=>{if(O instanceof HTMLImageElement){const D=O.getAttribute("src")||O.src;(D===H||D.includes(H.split("/").pop()))&&(i.value.width&&i.value.height?(O.style.setProperty("width",`${i.value.width}px`,"important"),O.style.setProperty("height",`${i.value.height}px`,"important"),O.style.setProperty("object-fit","fill","important"),O.style.setProperty("max-width","none","important"),O.style.setProperty("max-height","none","important")):(O.style.removeProperty("width"),O.style.removeProperty("height"),O.style.removeProperty("object-fit"),O.style.removeProperty("max-width"),O.style.removeProperty("max-height")))}})},20),i.value.link&&i.value.link.trim()!==""){let z=i.value.link.trim();z.match(/^https?:\/\//i)||(z="https://"+z),Z?t.editor.chain().focus().extendMarkRange("link").setLink({href:z,target:i.value.openInNewTab?"_blank":null}).run():t.editor.chain().focus().selectParentNode().setLink({href:z,target:i.value.openInNewTab?"_blank":null}).run()}else Z&&t.editor.chain().focus().extendMarkRange("link").unsetLink().run()}else{const{state:A}=t.editor,{selection:L}=A,{$anchor:Z}=L;let W=null;for(let z=Z.depth;z>0;z--){const G=Z.node(z);if(G&&G.type.name==="paragraph"){W=G;break}}if(W&&W.content.content.some(z=>z.type.name==="image")){const z=N(W,Z.before(Z.depth));if(z!==null){const G=E(),$=A.schema.nodes.image.create({src:H,alt:i.value.alt||"",title:i.value.title||"",...G});if(i.value.link&&i.value.link.trim()!==""){let O=i.value.link.trim();O.match(/^https?:\/\//i)||(O="https://"+O);const D=A.schema.marks.link.create({href:O,target:i.value.openInNewTab?"_blank":null}),ie=$.type.create($.attrs,$.content,[D]);t.editor.chain().focus().insertContentAt(z+1,ie).run(),v(t.editor,H)}else t.editor.chain().focus().insertContentAt(z+1,$).run(),v(t.editor,H)}else if(i.value.link&&i.value.link.trim()!==""){const G=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...G}).run(),setTimeout(()=>{let $=i.value.link.trim();$.match(/^https?:\/\//i)||($="https://"+$),t.editor.chain().focus().selectParentNode().setLink({href:$,target:i.value.openInNewTab?"_blank":null}).run(),v(t.editor,H,20)},10)}else{const G=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...G}).run(),v(t.editor,H)}}else if(i.value.link&&i.value.link.trim()!==""){const z=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...z}).run(),setTimeout(()=>{let G=i.value.link.trim();G.match(/^https?:\/\//i)||(G="https://"+G),t.editor.chain().focus().selectParentNode().setLink({href:G,target:i.value.openInNewTab?"_blank":null}).run(),v(t.editor,H,20)},10)}else{const z=E();t.editor.chain().focus().setImage({src:H,alt:i.value.alt||"",title:i.value.title||"",...z}).run(),v(t.editor,H)}}f()},N=(V,S)=>{let C=null;return V.forEach((T,H)=>{T.type.name==="image"&&(C=S+H+1)}),C},R=async()=>{if(t.editor){if(s.value.length===0)if(Array.isArray(i.value.file)&&i.value.file.length>0){const V=i.value.file.filter(C=>typeof C=="string"&&C.trim()!==""),S=i.value.file.filter(C=>C instanceof File);for(const C of V)s.value.some(T=>T.url===C||T.preview===C)||s.value.push({url:C,preview:C,error:!1});S.length>0&&await x(S)}else d.value&&await x(i.value.file);if(s.value.length!==0)try{const V=[],S=E();for(const C of s.value){const T=C.url||C.preview||"";if(!T)continue;const H=t.editor.schema.nodes.image.create({src:T,alt:i.value.alt||"",title:i.value.title||"",...S});V.push(H)}V.length>0&&(t.editor.chain().focus().command(({tr:C,dispatch:T})=>{if(T){const{selection:H}=C,{$anchor:oe}=H;let A=H.$anchor.pos,L=null,Z=null;for(let I=oe.depth;I>0;I--){const z=oe.node(I);if(z&&z.type.name==="paragraph"){L=z,Z=oe.start(I);break}}if(L){let I=null;L.forEach((z,G)=>{z.type.name==="image"&&(I=Z+G+1)}),I!==null?A=I+1:A=Z+L.content.size}let W=A;return V.forEach(I=>{C.insert(W,I),W+=I.nodeSize}),!0}return!1}).run(),i.value.width&&i.value.height&&setTimeout(()=>{const{view:C}=t.editor;C&&C.dom&&C.dom.querySelectorAll("img.editor-image").forEach(oe=>{oe instanceof HTMLImageElement&&Array.from(s.value).some(L=>{const Z=L.url||L.preview||"",W=oe.src||oe.getAttribute("src")||"";return W===Z||W.includes(Z.split("/").pop())})&&(oe.style.setProperty("width",`${i.value.width}px`,"important"),oe.style.setProperty("height",`${i.value.height}px`,"important"),oe.style.setProperty("object-fit","fill","important"),oe.style.setProperty("max-width","none","important"),oe.style.setProperty("max-height","none","important"))})},50)),f()}catch(V){console.error("Помилка при додаванні зображень:",V),be.notify({type:"error",title:"Помилка",message:"Не вдалося додати зображення"})}}},ee=async()=>{await _()},j=()=>{f()};return e.watch(()=>i.value.file,async(V,S)=>{if(r.value=!1,!(a.value&&Array.isArray(V)&&V.length===1&&typeof V[0]=="string"&&!V.some(T=>T instanceof File)))if(Array.isArray(V)&&V.length>0){const C=V.filter(H=>H instanceof File),T=V.filter(H=>typeof H=="string"&&H.trim()!=="");if(C.length>0&&(a.value?a.value&&C.length===1&&T.length===0&&(s.value=[]):s.value=[],(!a.value||C.length>1||T.length>0)&&await x(C),a.value&&C.length===1&&T.length===0)){const H=new FileReader;H.onload=oe=>{i.value.src=oe.target.result},H.readAsDataURL(C[0])}if(T.length>0)if(a.value)a.value&&T.length===1&&C.length===0&&(i.value.src=T[0]);else{C.length===0&&(s.value=[]);for(const H of T)s.value.some(oe=>oe.url===H||oe.preview===H)||s.value.push({url:H,preview:H,error:!1})}}else V&&typeof V=="object"&&V instanceof FileList?(a.value||(s.value=[]),await x(Array.from(V))):V&&typeof V=="object"&&!Array.isArray(V)&&V instanceof File?(a.value||(s.value=[]),await x([V])):a.value||(s.value=[])},{immediate:!1}),e.watch(()=>i.value.src,()=>{r.value=!1}),(V,S)=>(e.openBlock(),e.createElementBlock("div",Q0,[e.createElementVNode("button",{onClick:h,class:e.normalizeClass(["h-[30px] w-[30px] flex items-center justify-center text-gray-500 rounded-full cursor-pointer hover:text-gray-900 hover:bg-gray-100",n.editor?.isActive("image")?"bg-gray-200 text-gray-900":""]),title:"Додати зображення"},[e.createVNode(e.unref(J.Image),{class:"h-4 w-4"}),S[4]||(S[4]=e.createElementVNode("span",{class:"sr-only"},"Додати зображення",-1))],2),e.createVNode(kl,{modelValue:o.value,"onUpdate:modelValue":S[3]||(S[3]=C=>o.value=C),title:a.value?"Редагувати зображення":"Додати зображення"},{footer:e.withCtx(()=>[e.createElementVNode("div",iy,[e.createElementVNode("button",{onClick:j,type:"button",class:"px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 rounded-md hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-blue-500"}," Скасувати "),e.createElementVNode("button",{onClick:ee,type:"button",class:"px-4 py-2 text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500"},e.toDisplayString(a.value?"Оновити зображення":"Додати зображення"),1)])]),default:e.withCtx(()=>[e.createVNode(ct,{modelValue:i.value,"onUpdate:modelValue":S[0]||(S[0]=C=>i.value=C),schema:y.value,form:l.value,"onUpdate:form":S[1]||(S[1]=C=>l.value=C)},null,8,["modelValue","schema","form"]),m.value&&!d.value?(e.openBlock(),e.createElementBlock("div",ey,[S[5]||(S[5]=e.createElementVNode("p",{class:"text-sm text-gray-600 mb-2"},"Попередній перегляд:",-1)),e.withDirectives(e.createElementVNode("img",{src:m.value,alt:i.value.alt||"Попередній перегляд зображення",title:i.value.title,class:"max-w-full h-auto max-h-32 rounded border",onError:S[2]||(S[2]=C=>r.value=!0)},null,40,ty),[[e.vShow,!r.value]]),r.value?(e.openBlock(),e.createElementBlock("p",ny," Не вдалося завантажити попередній перегляд зображення ")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),s.value.length>0?(e.openBlock(),e.createElementBlock("div",oy,[e.createElementVNode("p",ry,"Попередній перегляд ("+e.toDisplayString(s.value.length)+" зображень):",1),S[6]||(S[6]=e.createElementVNode("p",{class:"text-xs text-gray-500 mb-2"}," Зображення будуть розміщені в ряд, якщо вони помістяться по ширині ",-1)),e.createElementVNode("div",ly,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(C,T)=>(e.openBlock(),e.createElementBlock("div",{key:T,class:"relative"},[e.withDirectives(e.createElementVNode("img",{src:C.preview,alt:`Попередній перегляд ${T+1}`,class:"max-w-[100px] max-h-[100px] rounded border object-contain",onError:H=>C.error=!0},null,40,ay),[[e.vShow,!C.error]]),e.createElementVNode("button",{onClick:H=>b(T),class:"absolute -top-2 -right-2 bg-red-500 text-white rounded-full w-5 h-5 flex items-center justify-center text-xs hover:bg-red-600",type:"button"}," × ",8,sy)]))),128))])])):e.createCommentVNode("",!0)]),_:1},8,["modelValue","title"])]))}}),dy={class:"flex items-center"},uy=["disabled"],py=["disabled"],my=Ve(Object.assign({inheritAttrs:!1},{__name:"vs-editor-history",props:{editor:Object},setup(n){const t=n,o=()=>{t.editor?.can().undo()&&t.editor.chain().focus().undo().run()},r=()=>{t.editor?.can().redo()&&t.editor.chain().focus().redo().run()};return(l,a)=>(e.openBlock(),e.createElementBlock("div",dy,[e.createElementVNode("button",{onClick:o,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-l-full hover:text-gray-900 hover:bg-gray-100 border-r border-gray-200",[n.editor?.can().undo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!n.editor?.can().undo(),title:"Undo (Ctrl+Z)"},[e.createVNode(e.unref(J.Undo2),{class:"h-4 w-4"})],10,uy),e.createElementVNode("button",{onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-r-full hover:text-gray-900 hover:bg-gray-100",[n.editor?.can().redo()?"text-gray-500":"text-gray-300 cursor-not-allowed"]]),disabled:!n.editor?.can().redo(),title:"Redo (Ctrl+Y)"},[e.createVNode(e.unref(J.Redo2),{class:"h-4 w-4"})],10,py)]))}}),[["__scopeId","data-v-2cd0a908"]]),fy={class:"relative"},hy={class:"p-6"},gy={class:"flex justify-between items-center mb-4"},yy={bold:Ng,italic:Dg,color:v0,background_color:S0,highlight:$0,bullet_list:vg,ordered_list:_g,blockquote:kg,codeblock:Sg,underline:Tg,strike:Lg,link:l0,table:d0,text_align:m0,font_family:D0,font_size:O0,superscript:z0,subscript:H0,heading:Y0,clear_formatting:J0,image:cy,history:my,help:Ve(Object.assign({inheritAttrs:!1},{__name:"vs-editor-help",props:{editor:Object},setup(n){const t=e.ref(!1),o=e.ref(null),r=()=>{t.value=!t.value},l=()=>{t.value=!1};return(a,s)=>(e.openBlock(),e.createElementBlock("div",fy,[e.createElementVNode("button",{ref_key:"helpButton",ref:o,onClick:r,class:e.normalizeClass(["w-[30px] h-[30px] flex items-center justify-center rounded-full hover:text-gray-900 hover:bg-gray-100 text-gray-500",[t.value?"bg-gray-100 text-gray-900":"text-gray-500"]]),title:"Markdown Shortcuts Help"},[e.createVNode(e.unref(J.CircleHelp),{class:"h-4 w-4"})],2),t.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-[100001]",onClick:l},[e.createElementVNode("div",{class:"bg-white rounded-lg shadow-xl max-w-2xl w-full mx-4 max-h-[80vh] overflow-y-auto",onClick:s[0]||(s[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",hy,[e.createElementVNode("div",gy,[s[1]||(s[1]=e.createElementVNode("h2",{class:"text-xl font-semibold text-gray-900"},"Common Markdown Syntax & Shortcuts",-1)),e.createElementVNode("button",{onClick:l,class:"text-gray-400 hover:text-gray-600 transition-colors"},[e.createVNode(e.unref(J.X),{class:"h-6 w-6"})])]),s[2]||(s[2]=e.createStaticVNode('<div class="space-y-6" data-v-38077376><div data-v-38077376><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-38077376>Markdown Syntax</h3><div class="overflow-x-auto" data-v-38077376><table class="w-full border-collapse" data-v-38077376><thead data-v-38077376><tr class="bg-gray-50" data-v-38077376><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Element</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Example</th></tr></thead><tbody class="text-sm" data-v-38077376><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Bold</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>**bold text**</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>__bold text__</code></td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Italics</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>*italic text*</code> or <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>_italic text_</code></td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Strikethrough</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>~strikethrough text~</code></td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Headings</td><td class="border border-gray-200 px-3 py-2" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376># Heading 1</code>, <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>## Heading 2</code>, etc., up to <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>###### Heading 6</code></td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Unordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use an asterisk (*), dash (-), or plus sign (+) followed by a space. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Ordered Lists</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use a number followed by a period and a space (e.g., <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>1. First item</code>). </td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Blockquotes</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Start with a greater-than sign (>) followed by a space. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Inline Code</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Surround with backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>`</code>). </td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Code Blocks</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Enclose with three backticks (<code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>```</code>) before and after the code. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Images</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376></code> syntax. </td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Links</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Use <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>[Link Text](url)</code> syntax. </td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376>Checklists</td><td class="border border-gray-200 px-3 py-2" data-v-38077376> Create a list item with <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>- [ ]</code> for an incomplete task or <code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>- [x]</code> for a completed one. </td></tr></tbody></table></div></div><div data-v-38077376><h3 class="text-lg font-medium text-gray-800 mb-3" data-v-38077376>Common Editing Shortcuts</h3><div class="overflow-x-auto" data-v-38077376><table class="w-full border-collapse" data-v-38077376><thead data-v-38077376><tr class="bg-gray-50" data-v-38077376><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Shortcut</th><th class="border border-gray-200 px-3 py-2 text-left font-medium text-gray-700" data-v-38077376>Action</th></tr></thead><tbody class="text-sm" data-v-38077376><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+A</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Select all text</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+B</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Apply bold formatting</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+C</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Copy selected text</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+I</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Apply italic formatting</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+K</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Open the insert link dialog</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+S</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Save the current document</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+V</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Paste copied text</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+X</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Cut selected text</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+Y</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Redo the last action</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Alt+Shift+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Redo the last action</td></tr><tr data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Ctrl+Z</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Undo the last action</td></tr><tr class="bg-gray-25" data-v-38077376><td class="border border-gray-200 px-3 py-2 font-medium" data-v-38077376><code class="bg-gray-100 px-2 py-1 rounded" data-v-38077376>Alt+Backspace</code></td><td class="border border-gray-200 px-3 py-2" data-v-38077376>Undo the last action</td></tr></tbody></table></div></div></div>',1))])])])):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-38077376"]]),horizontal_rule:{__name:"vs-editor-horizontal-rule",props:{editor:Object},setup(n){const t=n,o=()=>{t.editor&&t.editor.chain().focus().setHorizontalRule().run()};return(r,l)=>(e.openBlock(),e.createElementBlock("button",{title:"Horizontal Rule",onClick:o,class:"flex flex-col h-[30px] px-1 rounded-full hover:bg-gray-100 justify-center items-center relative flex"},[e.createVNode(e.unref(J.Minus),{class:"h-4 w-4"})]))}},fullscreen:{__name:"vs-editor-fullscreen",props:{editor:Object},emits:["toggle-fullscreen"],setup(n,{emit:t}){const o=t,r=()=>{o("toggle-fullscreen")};return(l,a)=>(e.openBlock(),e.createElementBlock("button",{title:"Fullscreen",onClick:r,class:"w-[30px] h-[30px] flex items-center justify-center text-gray-500 rounded-full hover:text-gray-900 hover:bg-gray-100"},[e.createVNode(e.unref(J.Maximize),{class:"h-4 w-4"})]))}}},vl={basic:["history","font_family","font_size","bold","italic","underline","strike","text_align","bullet_list","ordered_list","link","image","clear_formatting","help"],default:["history","heading","font_family","font_size","bold","italic","underline","strike","superscript","subscript","color","background_color","highlight","text_align","bullet_list","ordered_list","blockquote","codeblock","table","link","image","horizontal_rule","clear_formatting","fullscreen","help"],full:["history","heading","font_family","font_size","bold","italic","underline","strike","color","background_color","highlight","text_align","bullet_list","ordered_list","blockquote","codeblock","table","link","image","horizontal_rule","superscript","subscript","clear_formatting","fullscreen","help"]},by={class:"flex align-middle gap-x-0.5 border-b flex-wrap border-b-gray-200 px-[10px] py-[6px] border-solid border-transparent"},ky={class:"editor-body"},xy={key:0,class:"richtext-loading text-sm text-gray-500"},wy={key:1,class:"richtext-error text-sm text-red-600"},vy={class:"html-source-editor"},Cy={class:"flex justify-end border-t border-[#e5e7eb] bg-[#f8fafc] px-4 min-h-[38px] items-start overflow-visible"},Ey={class:"inline-flex items-stretch -mt-px"},_y=Object.freeze(Object.defineProperty({__proto__:null,default:Object.assign({inheritAttrs:!1},{__name:"vs-richtext",props:e.mergeModels({modelValue:{type:String,default:()=>""},height:{type:String,default:()=>"300px"},format:{type:String,default:()=>"html"},toolbar:{type:[Array,String],default:()=>"default"}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(n){const t=n,o=e.useModel(n,"modelValue"),r=e.ref(null),l=e.ref(null),a=e.shallowRef(null),s=e.ref(!1),c=e.ref(""),i=e.ref(!1),d=e.ref(null),p=e.ref(""),m=e.ref(""),y=e.ref(null),h=e.ref(!1),{isFullscreen:f,toggleFullscreen:x}=Yh(),{t:b}=Ao(),E=e.computed(()=>t.format==="md"?"markdown":"html"),v=e.computed(()=>t.format==="md"?b("form.richtext.markdown"):b("form.richtext.html")),_=e.computed(()=>a.value||null),N=e.computed(()=>typeof t.toolbar=="string"?vl[t.toolbar]||vl.default:t.toolbar),R=e.computed(()=>N.value.map(z=>yy[z]).filter(Boolean)),ee=e.computed(()=>(d.value?.attributes||[]).find(G=>G.name==="class")?.value||""),j=e.computed(()=>{const G=(d.value?.attributes||[]).find(O=>O.name==="style")?.value||"",$={};return G.split(";").forEach(O=>{const[D,...ie]=O.split(":"),ce=D?.trim(),te=ie.join(":").trim();!ce||!te||ce!=="height"&&($[ce.replace(/-([a-z])/g,(fe,_e)=>_e.toUpperCase())]=te)}),$}),V=new Set(["<p></p>","<p><br></p>"]),S=z=>{const G=z||"";return V.has(G)?"":G},C=z=>{const G=z||"";y.value=G,o.value=G},T=z=>{if(!z||!z.view||!z.view.dom)return;z.view.dom.querySelectorAll("img.editor-image[width][height]").forEach($=>{if($ instanceof HTMLImageElement){const O=$.getAttribute("width"),D=$.getAttribute("height");O&&D&&O!=="auto"&&D!=="auto"&&O!==""&&D!==""&&!isNaN(Number(O))&&!isNaN(Number(D))&&($.style.cssText=`
|
|
44
|
+
width: ${O}px !important;
|
|
45
45
|
height: ${D}px !important;
|
|
46
46
|
max-width: none !important;
|
|
47
47
|
max-height: none !important;
|
|
48
48
|
min-width: auto !important;
|
|
49
49
|
min-height: auto !important;
|
|
50
50
|
object-fit: fill !important;
|
|
51
|
-
`.replace(/\s+/g," ").trim())}})}
|
|
51
|
+
`.replace(/\s+/g," ").trim())}})},H=async(z,{force:G=!1}={})=>{if(p.value=z||"",!a.value||i.value&&!G)return;S(a.value.getHTML())!==(z||"")&&(a.value.commands.setContent(z||"",!1),e.nextTick(()=>{T(a.value)}))},oe=async z=>{m.value=z||""},A=async z=>{const G=z||"";if(t.format==="html"){const $=$o(G),O=fl($);d.value=O.wrapper,await H(O.bodyHtml||""),y.value=$;return}else{d.value=null;const $=await gl(G,t.format);await H($||""),i.value&&await oe(G)}y.value=G},L=async()=>{if(t.format==="html"){const G=S(a.value?.getHTML()||p.value||""),$=hl(G,d.value);return yl($o($),"html")}const z=S(a.value?.getHTML()||p.value||"");return yl(z,t.format)},Z=async z=>{if(i.value!==z){if(z){h.value=!0,i.value=!0,await oe(await L()),e.nextTick(()=>{l.value?.focus?.()});return}if(t.format==="html"){const G=$o(m.value||""),$=fl(G);d.value=$.wrapper,await H($.bodyHtml||"",{force:!0})}else{const G=await gl(m.value||"",t.format);await H(G||"",{force:!0})}i.value=!1,h.value=!1,e.nextTick(()=>{a.value?.commands?.focus?.()})}},W=()=>{i.value||a.value?.commands?.focus?.()},I=async()=>{if(!r.value)return null;s.value=!0,c.value="";try{const z=await ng();if(!z)return null;const G=new z.Editor({element:r.value,content:p.value||"",extensions:[z.StarterKit.configure({history:{depth:100,newGroupDelay:500},code:{HTMLAttributes:{class:"editor-code"}},codeBlock:{HTMLAttributes:{class:"editor-codeblock"}},paragraph:!1,heading:!1,link:!1}),z.Superscript,z.Subscript,z.ExtendedTextStyle,z.CustomParagraph,z.CustomHeading,z.Highlight,z.Image.configure({inline:!0,allowBase64:!0,HTMLAttributes:{class:"editor-image"}}),z.TextAlign.configure({types:["heading","paragraph"]}),z.Link.configure({HTMLAttributes:{class:"editor-link"},openOnClick:!1,autolink:!0}),z.CustomTableKit,z.Iframe],editorProps:{handlePaste:($,O)=>mg($,O,z.ProseMirrorDOMParser),handleKeyDown:($,O)=>{if(O.key==="Tab"){const D=$.state,{$anchor:ie}=D.selection;let ce=!1;for(let te=ie.depth;te>0;te--){const fe=ie.node(te);if(fe&&(fe.type.name==="bulletList"||fe.type.name==="orderedList")){ce=!0;break}}return ce?!1:(O.preventDefault(),!0)}return!1}}});return a.value=e.markRaw(G),a.value.on("update",async({editor:$})=>{if(i.value)return;const O=S($.getHTML());if(p.value=O,t.format==="html"){const D=hl(O,d.value);D!==o.value&&C(D)}else{const D=await ug(O,t.format);D!==o.value&&C(D)}setTimeout(()=>{T($)},10)}),e.nextTick(()=>{T(a.value)}),G}catch(z){return c.value="Failed to load rich text editor dependencies.",console.error("Failed to initialize rich text editor",z),null}finally{s.value=!1}};return e.watch(()=>t.modelValue,async z=>{if(h.value)return;const G=z||"";G!==y.value&&await A(G)},{immediate:!0}),e.onMounted(async()=>{await I(),e.nextTick(()=>{a.value&&setTimeout(()=>{T(a.value)},100)})}),e.onBeforeUnmount(()=>{a.value?.destroy?.(),a.value=null}),(z,G)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["bg-white rounded-md w-full",{"fixed left-0 right-0 top-0 bottom-0 z-[100000]":e.unref(f)}])},[e.createElementVNode("div",by,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(R.value,$=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:$},[a.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent($),{key:0,editor:_.value,onToggleFullscreen:e.unref(x)},null,40,["editor","onToggleFullscreen"])):e.createCommentVNode("",!0)],64))),128))]),e.createElementVNode("div",{onClick:W,class:"relative w-full px-4 py-2 bg-white rounded-b-lg editor-content",style:e.normalizeStyle({height:e.unref(f)?"calc(95vh - 44px)":n.height})},[e.createElementVNode("div",ky,[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["rich-text-scroll-wrapper",ee.value]),style:e.normalizeStyle(j.value)},[e.createElementVNode("div",{ref_key:"editorElement",ref:r,class:"relative w-full"},null,512),s.value?(e.openBlock(),e.createElementBlock("div",xy,"Loading editor...")):e.createCommentVNode("",!0),c.value?(e.openBlock(),e.createElementBlock("div",wy,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0)],6),[[e.vShow,!i.value]]),e.withDirectives(e.createElementVNode("div",vy,[e.createVNode(yo,{ref_key:"htmlTextarea",ref:l,modelValue:m.value,"onUpdate:modelValue":G[0]||(G[0]=$=>m.value=$),height:"100%",syntax:E.value,theme:"vs-light"},null,8,["modelValue","syntax"])],512),[[e.vShow,i.value]])])],4),e.createElementVNode("div",Cy,[e.createElementVNode("div",Ey,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["min-w-[96px] h-[30px] px-[14px] border border-[#cfd6e0] bg-[#f3f5f8] text-[8px] font-bold uppercase tracking-[0.06em] leading-none cursor-pointer transition-colors duration-200 border-b-[1px] border-b-[#cfd6e0] rounded-none rounded-bl-[8px] hover:bg-[#eef1f5] hover:text-[#667284]",i.value?"text-[#8f99aa]":"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]"]),onClick:G[1]||(G[1]=$=>Z(!1))},e.toDisplayString(e.unref(b)("form.richtext.editor")),3),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["min-w-[96px] h-[30px] px-[14px] border border-[#cfd6e0] border-l-0 bg-[#f3f5f8] text-[8px] font-bold uppercase tracking-[0.06em] leading-none cursor-pointer transition-colors duration-200 border-b-[1px] border-b-[#cfd6e0] rounded-none rounded-br-[8px] hover:bg-[#eef1f5] hover:text-[#667284]",i.value?"!bg-white text-[#49556a] border-[#cfd6e0] border-t-transparent relative z-[1]":"text-[#8f99aa]"]),onClick:G[2]||(G[2]=$=>Z(!0))},e.toDisplayString(v.value),3)])])],2))}})},Symbol.toStringTag,{value:"Module"}));xe.ModalEdit=qr,xe.VForm=ct,xe.VsInputAddress=Pr,xe.VsInputArray=Or,xe.VsInputArraySelect=Rn,xe.VsInputCheckbox=Yo,xe.VsInputCodegen=Fr,xe.VsInputColor=Lr,xe.VsInputContainer=hr,xe.VsInputDate=or,xe.VsInputEmail=oo,xe.VsInputFile=pr,xe.VsInputFile2=Nn,xe.VsInputFileList=mr,xe.VsInputInlineSelect=Fn,xe.VsInputKeyValue=Dr,xe.VsInputMask=wn,xe.VsInputMonaco=yo,xe.VsInputNumber=Ko,xe.VsInputRadio=lo,xe.VsInputRange=Ir,xe.VsInputRichtext=kr,xe.VsInputSelect=po,xe.VsInputSlug=Mr,xe.VsInputStatic=no,xe.VsInputSwitcher=to,xe.VsInputTag=Nr,xe.VsInputTel=ro,xe.VsInputText=qt,xe.VsInputTextArray=Tr,xe.VsInputTextarea=br,xe.default=ct,xe.hasMapLayerPreset=Ho,xe.inputs=Rr,xe.resolveMapLayerPreset=kn,xe.richtextLocaleEn=Kr,xe.richtextLocaleUk=Wr,xe.richtextMessages=ko,xe.vsInputDatatable=xr,xe.vsInputMap=Ar,Object.defineProperties(xe,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|