@opengis/form 0.1.16 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index-Bg21SS4P.js → index-Dmxdj6jy.js} +731 -723
- package/dist/index.js +1 -1
- package/dist/index.umd.cjs +1 -1
- package/dist/src/components/inputs/base/vs-input-text.vue.d.ts +3 -3
- package/dist/src/components/inputs/base/vs-input-text.vue.d.ts.map +1 -1
- package/dist/src/components/inputs/index.d.ts +8 -8
- package/dist/{vs-richtext-GbFdHLA3.js → vs-richtext-ghZWgmZx.js} +1 -1
- package/package.json +1 -1
package/dist/index.umd.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(be,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@opengis/core"),require("lucide-vue-next")):typeof define=="function"&&define.amd?define(["exports","vue","@opengis/core","lucide-vue-next"],e):(be=typeof globalThis<"u"?globalThis:be||self,e(be.FormBuilder={},be.Vue,be.OpenGISCore,be.lucide))})(this,(function(be,e,he,X){"use strict";function _n(o,t,n){if(!Array.isArray(n)||!n.length)return null;const r=String(o?.preset??o?.renderer??"").trim().toLowerCase();if(r){const a=n.find(l=>String(l.id).trim().toLowerCase()===r);if(a)return a}return n.find(a=>typeof a.match=="function"&&a.match(o,t))??null}function nr(o,t,n){return!!_n(o,t,n)}const or=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(o){const t=o,n=e.ref(!1),r=e.ref({top:"0px",left:"0px"});function a(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();r.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},n.value=!0}function l(){n.value=!1}return(s,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:a,onMouseleave:l},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(X.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value&&s.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(r.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none"},e.toDisplayString(s.text),5)):e.createCommentVNode("",!0)]))],64))}}),ao={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"}}},so={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:"Скасувати"}}},Jl={class:"w-full relative"},Ql={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},ea={class:"opacity-100"},ta={key:0,class:"text-red-500 text-[14px]"},na={key:2,class:"text-[11px] text-slate-500 font-normal"},oa={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ra=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),r=e.computed(()=>!!n.value),a=e.computed(()=>!!t.item?.rules?.includes("required")),l=e.computed(()=>t.item?.info||""),s=e.inject("schema-by-name"),c={en:ao?.form?.autofillFrom,uk:so?.form?.autofillFrom},i=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const h=String(t.item?.__locale||"uk"),g=String(d.parentField),p=s?.value?.[g],f=p?.[`label:${h}`]||(h!=="uk"?p?.[h]:void 0)||p?.label||p?.ua||p?.en||g;return`${c[h]||c.uk}: ${f}`});return(d,h)=>(e.openBlock(),e.createElementBlock("div",Jl,[r.value?(e.openBlock(),e.createElementBlock("div",Ql,[e.createElementVNode("span",ea,e.toDisplayString(n.value),1),a.value?(e.openBlock(),e.createElementBlock("span",ta,"*")):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(or,{key:1,text:l.value},null,8,["text"])):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",na," ("+e.toDisplayString(i.value)+") ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.mergeProps(d.$attrs,{class:{"opacity-60":d.item.disabled}})),d.error?(e.openBlock(),e.createElementBlock("span",oa,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),la={class:"w-full relative flex flex-row items-center gap-2"},aa={key:0,class:"text-red-500 text-[14px]"},sa={key:2,class:"text-[11px] text-slate-500 font-normal"},ia={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ca=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(o){const t=o,n=e.computed(()=>t.item?.label||t.label||t.ua),r=e.computed(()=>t.item?.info||""),a=e.inject("schema-by-name"),l={en:ao?.form?.autofillFrom,uk:so?.form?.autofillFrom},s=e.computed(()=>{const p=t.item?.__autoMeta;if(!p||p?.source!=="parent-auto"||!p?.parentField)return"";const f=String(t.item?.__locale||"uk"),m=String(p.parentField),k=a?.value?.[m],b=k?.[`label:${f}`]||(f!=="uk"?k?.[f]:void 0)||k?.label||k?.ua||k?.en||m;return`${l[f]||l.uk}: ${b}`}),c=e.computed(()=>t.columns??{container:12,label:3}),i=e.computed(()=>{const{container:p,label:f}=c.value;return!p||p<=0?0:Math.min(Math.max(f??0,0),p)/p}),d=e.computed(()=>t.item?.type==="html"||i.value<=0?!1:!!n.value),h=e.computed(()=>{if(!d.value)return{};const p=`${i.value*100}%`;return{flexBasis:p,maxWidth:p}}),g=e.computed(()=>{const{container:p,label:f}=c.value;if(!p||p<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const m=Math.max(p-Math.max(f??0,0),0)/p;if(!m)return{};const k=`${m*100}%`;return{flexBasis:k,maxWidth:k}});return(p,f)=>(e.openBlock(),e.createElementBlock("div",la,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(h.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),p.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",aa,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(or,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",sa," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(g.value)},[e.renderSlot(p.$slots,"default",e.normalizeProps(e.guardReactiveProps(p.$attrs)))],4),p.error?(e.openBlock(),e.createElementBlock("span",ia,e.toDisplayString(p.error),1)):e.createCommentVNode("",!0)]))}}),da={class:"w-full relative"},ua={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},pa=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",da,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",ua,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),ma={class:"flex-1 min-w-0"},fa={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ha={class:"truncate"},ga={key:0,class:"text-red-500 text-[14px]"},ya=["innerHTML"],ba={key:0,class:"mt-1 text-xs text-red-500"},ka={default:ra,horizontal:ca,inline:pa,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const r=e.computed(()=>t.item?.description??""),a=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),l=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const c=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=c||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":c.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(c.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",ma,[c.ua||c.label?(e.openBlock(),e.createElementBlock("p",fa,[e.createElementVNode("span",ha,e.toDisplayString(c.item[n.value]||c.ua||c.label),1),a.value?(e.openBlock(),e.createElementBlock("span",ga,"*")):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,ya)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(c.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(c.$attrs)))],2)],2),l.value?(e.openBlock(),e.createElementBlock("p",ba,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)],2))}})};function Qe(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 wa=["placeholder","disabled"],xa=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}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");return(s,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),placeholder:l.value,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":s.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,wa)),[[e.vModelText,r.value]])}}),va=["placeholder","disabled","maxlength","minlength"],Yt=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??""),s=e.computed(()=>t.maxlength??void 0),c=e.computed(()=>t.minlength??void 0);function i(){typeof r.value=="string"&&(r.value=r.value.trim())}return(d,h)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":h[0]||(h[0]=g=>r.value=g),placeholder:l.value,disabled:a.value,maxlength:s.value,minlength:c.value,onBlur:i,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[d.customClass,e.unref(n),{"!border-red-600":d.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,va)),[[e.vModelText,r.value]])}}),_a=["step","placeholder","disabled","min","max"],rr=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}=Qe(t.style),r=e.useAttrs(),a=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),s=h=>{if(h==null||h==="")return;const g=typeof h=="string"?h.trim().replace(",","."):h,p=Number(g);return Number.isFinite(p)?p:void 0},c=e.computed(()=>s(t.min??r.min)),i=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const h=r.step;return typeof h=="number"||typeof h=="string"?h:"any"});return(h,g)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":g[0]||(g[0]=p=>a.value=p),placeholder:o.placeholder,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:c.value,max:i.value},null,10,_a)),[[e.vModelText,a.value]])}}),Cn=o=>!!String(o??"").trim(),Dt=o=>o?.color?String(o.color):"",on=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},rn=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},Ca={class:"flex items-center gap-[4px]"},Ea=["value","id","disabled"],Ba=["for"],Va=["innerHTML"],Sa={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},$a=["src"],Aa=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(o,{emit:t}){const n=t,r=o,a=e.computed({get:()=>r.modelValue,set:f=>n("update:modelValue",f)}),l=e.computed(()=>!!r.disabled),s=e.computed(()=>on(r.option)),c=e.computed(()=>rn(r.option)),i=e.computed(()=>Dt(r.option)),d=e.computed(()=>!!(i.value&&!s.value&&!c.value)),h=e.computed(()=>!!(s.value&&i.value)),g=e.computed(()=>i.value?{color:i.value}:void 0),p=e.computed(()=>{if(!(!s.value||!i.value))return{backgroundColor:i.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(f,m)=>(e.openBlock(),e.createElementBlock("div",Ca,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:f.value,"onUpdate:modelValue":m[0]||(m[0]=k=>a.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":l.value}]),id:f.id,disabled:l.value},null,10,Ea),[[e.vModelCheckbox,a.value]]),e.createElementVNode("label",{for:f.id,class:e.normalizeClass(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300",{"!cursor-not-allowed":l.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[a.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",f.error?"border-red-600":""]])},[e.createVNode(e.unref(X.Check),{class:"h-4 w-4"})],2),f.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:f.html},null,8,Va)):(e.openBlock(),e.createElementBlock("span",Sa,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:i.value})},null,4)):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(p.value)},null,4)):s.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:s.value,alt:"icon"},null,8,$a)):c.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(g.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(f.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(f.label),1)])]))],10,Ba)]))}}),Na=["name","value","disabled"],Ma=["innerHTML"],Fa={key:1,class:"flex items-center gap-[6px] text-[14px]"},Da={key:2,class:"text-[16px] inline-flex items-center justify-center"},Ta=["src"],La=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=e.computed({get:()=>n.modelValue,set:k=>{r("update:modelValue",k)}}),l=e.computed(()=>Array.isArray(a.value)?a.value.includes(n.value):a.value===!0||a.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),c=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),i=e.computed(()=>on(c.value)),d=e.computed(()=>rn(c.value)),h=e.computed(()=>Dt(c.value)),g=e.computed(()=>!!(h.value&&!i.value&&!d.value)),p=e.computed(()=>!!(i.value&&h.value)),f=e.computed(()=>h.value?{color:h.value}:void 0),m=e.computed(()=>{if(!(!i.value||!h.value))return{backgroundColor:h.value,WebkitMaskImage:`url(${i.value})`,maskImage:`url(${i.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(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,l.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]=_=>a.value=_),disabled:k.disabled},null,8,Na),[[e.vModelCheckbox,a.value]]),k.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:k.html},null,8,Ma)):(e.openBlock(),e.createElementBlock("span",Fa,[g.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:h.value})},null,4)):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(m.value)},null,4)):i.value||d.value?(e.openBlock(),e.createElementBlock("span",Da,[i.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:i.value,width:"16",height:"16",alt:"icon"},null,8,Ta)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(f.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(k.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(k.label),1)])]))],2))}}),Ia={class:"flex items-center"},io=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=`radio-${Math.floor(Math.random()*1e4)}`,l=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:c=>{if(Array.isArray(n.modelValue)){let i=[...n.modelValue];c?i.includes(n.value)||i.push(n.value):i=i.filter(d=>d!==n.value),r("update:modelValue",i)}else r("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Ia,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(La):e.unref(Aa)),{value:c.value,label:c.label,html:c.labelHtml,info:c.option?.info,disabled:c.disabled,modelValue:l.value,"onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),id:a,icon:c.icon,imgUrl:c.imgUrl,option:c.option,style:e.normalizeStyle(c.style),error:c.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Oa={key:0,class:"flex items-start gap-x-1"},Pa={key:0,class:"text-red-500 text-[14px]"},Ra=["title"],za=["disabled"],co=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue");return(r,a)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Oa,[e.createVNode(io,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Pa,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:a[1]||(a[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4 text-gray-500"})],8,Ra)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[n.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:a[2]||(a[2]=l=>n.value=!n.value)},[e.createElementVNode("span",{"data-state":"checked",class:e.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[n.value?"translate-x-4":"translate-x-0"]])},null,2)],10,za))}}),ja=["id","innerHTML"],uo=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,ja))}}),Ua=["placeholder","disabled","name"],En=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.ref(null);let l=null;function s(c){const i=c==null?"":String(c),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let g=!1;for(let f=0;f<i.length;f+=1){const m=i[f];m==="{"?g=!0:m==="}"?g=!1:g&&h.add(m)}const p={};return Object.keys(d).forEach(f=>{h.has(f)||(p[f]=d[f])}),{mask:i,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(a.value){const{default:c}=await Promise.resolve().then(()=>Qn),i=s(t.mask||"");l=c(a.value,i),l.on("accept",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.on("complete",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{l?.destroy()}),e.watch(()=>t.mask,c=>{if(l){const i=s(c||"");l.updateOptions(i)}}),e.watch(r,c=>{l&&l.unmaskedValue!==c&&(l.value=c!=null?String(c):"")}),(c,i)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:a,placeholder:c.placeholder,disabled:c.disabled,name:c.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,Ua))}}),Ha={class:"relative w-full bg-white rounded-lg"},qa={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Wa=["placeholder","disabled"],po=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}=Qe(t.style),r=e.useModel(o,"modelValue");return(a,l)=>(e.openBlock(),e.createElementBlock("div",Ha,[e.createElementVNode("div",qa,[e.createVNode(e.unref(X.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":l[0]||(l[0]=s=>r.value=s),placeholder:a.placeholder,disabled:a.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":a.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Wa),[[e.vModelText,r.value]])]))}}),Et="+99(999)-999-99-99";function Tt(o){if(!o?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let n=!1,r=0;for(let a=0;a<o.length;a+=1){const l=o[a];if(l==="{"){n=!0;continue}if(l==="}"){n=!1;continue}!n&&t.has(l)&&(r+=1)}return r}const Ka={class:"relative w-full bg-white rounded-lg"},Ga={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},Ya=["name","placeholder","disabled","pattern"],mo=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:Et}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(Tt(t.mask||Et)||Tt(Et))-1}}$`),{inputClass:r}=Qe(t.style),a=e.useModel(o,"modelValue"),l=e.ref(null);let s=null;function c(h){const g={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let f=!1;for(let k=0;k<h.length;k+=1){const b=h[k];b==="{"?f=!0:b==="}"?f=!1:f&&p.add(b)}const m={};return Object.keys(g).forEach(k=>{p.has(k)||(m[k]=g[k])}),{mask:h,definitions:m,lazy:!1,disabled:t.disabled}}function i(h){if(h==null||h==="")return"";const g=String(h).trim();return g?g.replace(/\D/g,""):""}function d(){if(!s)return;const h=s.unmaskedValue??"";a.value=h?`+${h}`:""}return e.onMounted(async()=>{if(!l.value)return;const{default:h}=await Promise.resolve().then(()=>Qn),g=c(t.mask||"");s=h(l.value,g),s.on("accept",d),s.on("complete",d);const p=i(a.value);s.unmaskedValue=p}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,h=>{s&&s.updateOptions(c(h||""))}),e.watch(()=>t.disabled,h=>{s&&s.updateOptions({disabled:h})}),e.watch(a,h=>{if(!s)return;const g=i(h);s.unmaskedValue!==g&&(s.unmaskedValue=g)}),(h,g)=>(e.openBlock(),e.createElementBlock("div",Ka,[e.createElementVNode("div",Ga,[e.createVNode(e.unref(X.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:l,type:"tel",name:h.name,placeholder:h.placeholder,disabled:h.disabled,pattern:n.value,title:"Міжнародний номер (E.164), наприклад +380XXXXXXXXX",autocomplete:"tel",class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(r),{"!border-red-600":h.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Ya)]))}}),Xa=["value","disabled"],Za=["innerHTML"],Ja={key:1,class:"flex items-center gap-2"},Qa=["src"],es={class:"text-[13px] text-gray-700"},ts=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(g,p)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=f=>n.value=f),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Xa),[[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,Za)):(e.openBlock(),e.createElementBlock("div",Ja,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,Qa)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",es,e.toDisplayString(t.text),1)]))],2))}}),ns=["value","disabled"],os=["innerHTML"],rs={key:1,class:"flex items-center gap-2"},ls=["src"],as={class:"text-[13px] text-gray-700"},ss={"vs-input-radio-default":ts,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(g,p)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=f=>n.value=f),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,ns),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,os)):(e.openBlock(),e.createElementBlock("div",rs,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,ls)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",as,e.toDisplayString(t.text),1)]))],2))}})},lr=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],ar=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},is=o=>({fetchOptions:async(r="")=>{const a=o();if(!a.data)return a.options?[...a.options]:[];try{const l=new URLSearchParams;l.set("json","1"),r&&l.set("key",r),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${ar(a)}?${l.toString()}`)).json();return lr(c)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const a=o();if(!a.data)return(a.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const l=new URLSearchParams;l.set("json","1"),l.set("val",String(r)),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${ar(a)}?${l.toString()}`)).json();return lr(c)[0]??null}catch{return null}}}),Bn=({props:o,formValues:t=null,watchParent:n=!0})=>{const r=e.ref([]),a=e.computed(()=>o.parent?t?.value?.[o.parent]?.toString?.()??null:null),{fetchOptions:l,fetchOptionByValue:s}=is(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:a.value})),c=async(i="")=>{const d=o.data?await l(i):o.options?[...o.options]:[];return r.value=d,r.value};return e.watch(()=>o.options,()=>{o.data||(r.value=o.options?[...o.options]:[])},{immediate:!0,deep:!0}),n&&e.watch(a,async()=>{o.data&&(r.value=await l())},{immediate:!1}),{optionsList:r,parentValue:a,fetchOptions:l,fetchOptionByValue:s,loadOptions:c}},cs=/\{\{\s*([^}]+?)\s*\}\}/g,ds=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),us=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),Vn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(cs,(r,a)=>{const l=String(a).trim(),s=o,i=(l.includes(".")?us(s,l):void 0)??s[l];return i!=null?String(i):""}):o.text??""},Sn=(o,t)=>{if(!o)return"";const n=Vn(o,t);return ds(n)||o.text||""},fo=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(()=>ss[`vs-input-radio-${t.view}`]),a=e.computed(()=>t.slot??t?.optionTemplate??""),l=e.computed(()=>Cn(a.value)),s=f=>Vn(f,a.value),c=f=>Sn(f,a.value),i=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),h=e.inject("values",null),{optionsList:g,loadOptions:p}=Bn({props:t,formValues:h});return e.onMounted(async()=>{await p()}),(f,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),k=>(e.openBlock(),e.createElementBlock("div",{key:k?.id,class:e.normalizeClass(["flex items-stretch",f.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:c(k),html:l.value?s(k):"",option:k,value:k.id.toString(),checked:n.value?.toString?.()===k.id?.toString?.(),"custom-class":f.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":m[0]||(m[0]=b=>n.value=b)},{ref_for:!0},f.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),ps={key:1,class:"w-full flex flex-col gap-4"},ms={key:0,class:"text-sm font-medium text-muted-foreground my-2"},fs="Без категорії",hs=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=e.reactive({}),l=e.inject("values",null),{optionsList:s,loadOptions:c}=Bn({props:{...n,options:n.options},formValues:l}),i=e.computed(()=>s.value),d=C=>C?.value||C?.id||C?.text||C,h=e.computed(()=>n.slot??n?.optionTemplate??""),g=e.computed(()=>Cn(h.value)),p=C=>Vn(C,h.value),f=C=>Sn(C,h.value),m=C=>`lg:col-span-${C||12}`,k=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),b=C=>C==null||C===""?null:typeof C=="string"||typeof C=="number"?C:String(C),_=e.computed(()=>{if(!n.group)return[];const C=new Map;i.value.forEach(I=>{const E=I[n.group],V=b(E);C.has(V)||C.set(V,[]),C.get(V)?.push(I)});const N=[];n.values?.length&&n.values.forEach(I=>{const E=b(I);N.push(E)});const $=new Set,q=I=>{const E=C.get(I)||[];if(!E.length)return null;const V=I===null?"group-null":`group-${String(I)}`,v=I===null?fs:String(I);return $.add(I),{key:V,label:v,options:E}},G=[];return N.forEach(I=>{const E=q(I);E&&G.push(E)}),C.forEach((I,E)=>{if($.has(E))return;const V=q(E);V&&G.push(V)}),G});return e.watch(()=>n.modelValue,C=>{if(typeof C=="boolean"&&i.value.length===1){const N=d(i.value[0]);a[N]=C}else if(Array.isArray(C)){const N=new Set(C);i.value.forEach($=>{if(!$.disabled){const q=d($);a[q]=N.has(q)}})}},{immediate:!0}),e.watch(a,()=>{if(!i.value.length){r("update:modelValue",null);return}const C=Object.entries(a).filter(([,N])=>N).map(([N])=>N);r("update:modelValue",C.length===0?[]:C)},{deep:!0}),e.onMounted(async()=>{if(await c(),typeof n.modelValue=="boolean"&&i.value.length===1){const C=d(i.value[0]);a[C]=n.modelValue}else if(Array.isArray(n.modelValue)){const C=new Set(n.modelValue);i.value.forEach(N=>{if(!N.disabled){const $=d(N);a[$]=C.has($)}})}}),(C,N)=>n.group?(e.openBlock(),e.createElementBlock("div",ps,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,$=>(e.openBlock(),e.createElementBlock("div",{key:$.key,class:"flex flex-col gap-2"},[$.label?(e.openBlock(),e.createElementBlock("span",ms,e.toDisplayString($.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($.options,q=>(e.openBlock(),e.createBlock(io,{modelValue:a[d(q)],"onUpdate:modelValue":G=>a[d(q)]=G,value:d(q),class:e.normalizeClass(m(C.colSpan)),disabled:n.disabled||q.disabled,label:f(q),labelHtml:g.value?p(q):"",key:`${$.key}-${d(q)}`,icon:q?.icon,imgUrl:q?.imgUrl,option:q,view:C.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",k.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,$=>(e.openBlock(),e.createBlock(io,{modelValue:a[d($)],"onUpdate:modelValue":q=>a[d($)]=q,value:d($),class:e.normalizeClass(m(C.colSpan)),disabled:n.disabled||$.disabled,label:f($),labelHtml:g.value?p($):"",key:d($),icon:$?.icon,imgUrl:$?.imgUrl,option:$,view:C.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),Ce=(o,t)=>{const n=o.__vccOpts||o;for(const[r,a]of t)n[r]=a;return n},sr=Ce(hs,[["__scopeId","data-v-9056e0ec"]]),gs=1440*60*1e3,ys=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],bs=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],ks=["нд","пн","вт","ср","чт","пт","сб"];function Ke(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const Xt=o=>new Date(o.getTime());function Ut(o){const t=Xt(o);return t.setHours(0,0,0,0),t}function ln(o){const t=Xt(o);return t.setHours(23,59,59,999),t}function ho(o){return Ut(new Date(o.getFullYear(),o.getMonth(),1))}function go(o){return ln(new Date(o.getFullYear(),o.getMonth()+1,0))}function yo(o,t){const n=new Date(o),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const a=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,a)),n}function ws(o,t){return yo(o,-1)}function $n(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function ir(o,t){return $n(o,-t)}function cr(o){return Ut(new Date(o.getFullYear(),0,1))}function dr(o){return ln(new Date(o.getFullYear(),11,31))}function xs(o){const t=Math.floor(o.getFullYear()/10)*10;return Ut(new Date(t,0,1))}function vs(o){const t=Math.floor(o.getFullYear()/10)*10+9;return ln(new Date(t,11,31))}const ht=o=>o.getFullYear(),An=o=>Math.floor(o.getFullYear()/10)*10;function _s(o){const t=[];let n=Ut(o.start);const r=Ut(o.end);for(;n<=r;)t.push(Xt(n)),n=new Date(n.getTime()+gs);return t}function Cs(o){const t=[];let n=ho(o.start);const r=go(o.end);for(;n<=r;)t.push(Xt(n)),n=yo(n,1);return t}function Es(o){const t=[];let n=cr(o.start);const r=dr(o.end);for(;n<=r;)t.push(Xt(n)),n=$n(n,1);return t}function bo(o,t=1){const n=Ut(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function Bs(o,t=1){const n=bo(o,t);return n.setDate(n.getDate()+6),ln(n)}function Vs(o,t,n=0){const r=bo(o,n),a=(t-n+7)%7;return r.setDate(r.getDate()+a),r}const Nn=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),ko=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),ur=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),pr=(o,t)=>!!o&&!!t&&Nn(o,t)&&o.getHours()===t.getHours(),Ss=(o,t)=>!!o&&!!t&&pr(o,t)&&o.getMinutes()===t.getMinutes();function $s(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const an=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),sn=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function As(o){const t=o.filter(n=>Ke(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function Ns(o){const t=o.filter(n=>Ke(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function Ms(o,t){const n=Xt(o);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const Mn=(o,t=2)=>String(o).padStart(t,"0");function mr(o,t){return t==="wide"?ys[o]:bs[o]}function Fs(o){return ks[o]}const Ds=[{token:"LLLL",format:o=>mr(o.getMonth(),"wide")},{token:"LLL",format:o=>mr(o.getMonth(),"abbreviated")},{token:"EE",format:o=>Fs(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>Mn(o.getMonth()+1)},{token:"dd",format:o=>Mn(o.getDate())},{token:"HH",format:o=>Mn(o.getHours())},{token:"mm",format:o=>Mn(o.getMinutes())}];function cn(o,t){if(!Ke(o))return"";let n="",r=0;for(;r<t.length;){const a=Ds.find(l=>t.startsWith(l.token,r));a?(n+=a.format(o),r+=a.token.length):(n+=t[r],r+=1)}return n}const Ts={"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 fr(o,t){const n=Ts[t];if(!n){const a=new Date(o);return Ke(a)?a:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,a,l,s]=r,c=new Date(Number(a),Number(l)-1,Number(s));return Ke(c)?c:null}case"dd.MM.yyyy":{const[,a,l,s]=r,c=new Date(Number(s),Number(l)-1,Number(a));return Ke(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,a,l,s,c,i,d]=r,h=new Date(Number(s),Number(l)-1,Number(a),Number(c),Number(i),Number(d||0));return Ke(h)?h:null}case"HH:mm":{const[,a,l,s]=r,c=new Date;return c.setHours(Number(a),Number(l),Number(s||0),0),c}case"MM.yyyy":{const[,a,l]=r;return new Date(Number(l),Number(a)-1,1)}case"yyyy":{const[,a]=r;return new Date(Number(a),0,1)}default:return null}}const Ls=["year","month","day","time","custom"],Is=e.defineComponent({components:{ChevronLeft:X.ChevronLeft,ChevronRight:X.ChevronRight},emits:{elementClick:o=>Ke(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"&&Ls.includes(o)},showButtonBar:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1}},setup(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties?.$t,n=e.computed(()=>{const a=t?.("form.date.today");return a&&a!=="form.date.today"?a:"Сьогодні"}),r=e.computed(()=>{const a=t?.("form.date.clear");return a&&a!=="form.date.clear"?a:"Очистити"});return{todayLabel:n,clearLabel:r}}}),Os={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},Ps=["disabled"],Rs=["disabled"],zs={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},js=["disabled","onClick"],Us={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function Hs(o,t,n,r,a,l){const s=e.resolveComponent("ChevronLeft"),c=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",o.viewMode==="month"||o.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${o.columnCount}, 1fr)`}),onMousedown:t[5]||(t[5]=e.withModifiers(()=>{},["prevent"]))},[o.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Os,[e.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(i=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,Ps),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.headingClickable?"button":"span"),{class:e.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",o.headingClickable?"hover:bg-slate-100":"",o.viewMode==="month"?"p-datepicker-select-year":"",o.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:t[1]||(t[1]=e.withModifiers(i=>o.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"heading")]),_:3},8,["class"])),e.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(i=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"h-3.5 w-3.5"})])],8,Rs)])),e.createElementVNode("div",null,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock("div",zs,[e.renderSlot(o.$slots,"subheading")])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",o.viewMode==="month"?"p-datepicker-month-view":"",o.viewMode==="year"?"p-datepicker-year-view":"",o.viewMode==="month"?"gap-y-1":""])},[e.renderSlot(o.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>o.$emit("elementClick",i.value),["stop","prevent"])},[e.createElementVNode("span",{class:e.normalizeClass([o.viewMode==="month"||o.viewMode==="year"?"inline-flex w-full h-8 items-center justify-center rounded-md text-[13px] font-normal transition-colors":"inline-flex w-8 h-8 items-center justify-center rounded-full text-[13px] font-normal transition-colors",o.viewMode==="month"?"p-datepicker-month":"",o.viewMode==="year"?"p-datepicker-year":"",o.viewMode==="day"?"p-datepicker-day":"",i.selected?"bg-blue-500 text-white font-semibold":"",i.current&&!i.selected&&o.viewMode!=="month"&&o.viewMode!=="year"?"border border-slate-300 font-medium":"",!i.disabled&&!i.selected?"hover:bg-slate-100 hover:text-slate-700":"",!i.current&&!i.selected&&i.disabled?"text-slate-300":""])},e.toDisplayString(i.display),3)],8,js))),128))])],2),e.renderSlot(o.$slots,"after-calendar"),o.showButtonBar?(e.openBlock(),e.createElementBlock("div",Us,[e.createElementVNode("button",{type:"button",class:"p-datepicker-today-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[3]||(t[3]=e.withModifiers(i=>o.$emit("today"),["stop","prevent"]))},e.toDisplayString(o.todayLabel),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-clear-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[4]||(t[4]=e.withModifiers(i=>o.$emit("clear"),["stop","prevent"]))},e.toDisplayString(o.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const Fn=Ce(Is,[["render",Hs]]),qs=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ke(o),select:o=>Ke(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(()=>xs(o.pageDate)),r=e.computed(()=>vs(o.pageDate)),a=(g,p,f)=>!p&&!f?!0:!(p&&ht(g)<ht(p)||f&&ht(g)>ht(f)),l=e.computed(()=>Es({start:n.value,end:r.value}).map(g=>({value:g,key:String(ht(g)),display:ht(g),selected:!!o.selected&&ht(g)===ht(o.selected),disabled:!a(g,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const g=ht(n.value),p=ht(r.value);return`${g} - ${p}`}),c=e.computed(()=>o.lowerLimit&&(An(o.lowerLimit)===An(o.pageDate)||an(o.pageDate,o.lowerLimit))),i=e.computed(()=>o.upperLimit&&(An(o.upperLimit)===An(o.pageDate)||sn(o.pageDate,o.upperLimit)));return{years:l,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",ir(o.pageDate,10)),nextPage:()=>t("update:pageDate",$n(o.pageDate,10))}}});function Ws(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:2,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.years,viewMode:"year",onLeft:o.previousPage,onRight:o.nextPage,onElementClick:t[0]||(t[0]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Ks=Ce(qs,[["render",Ws]]),Gs=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ke(o),select:o=>Ke(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>cr(o.pageDate)),r=e.computed(()=>dr(o.pageDate)),a=e.computed(()=>p=>cn(p,o.format)),l=(p,f,m)=>!f&&!m?!0:!(f&&an(p,ho(f))||m&&sn(p,go(m))),s=e.computed(()=>Cs({start:n.value,end:r.value}).map(p=>({value:p,display:a.value(p),key:a.value(p),selected:!!o.selected&&ko(o.selected,p),disabled:!l(p,o.lowerLimit,o.upperLimit)}))),c=e.computed(()=>ht(n.value)),i=e.computed(()=>o.lowerLimit&&(ur(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(ur(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",ir(o.pageDate,1)),nextPage:()=>t("update:pageDate",$n(o.pageDate,1))}}});function Ys(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:o.months,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,viewMode:"month",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Xs=Ce(Gs,[["render",Ys]]),Zs=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ke(o),select:o=>Ke(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=>_=>cn(_,b)),r=e.computed(()=>ho(o.pageDate)),a=e.computed(()=>go(o.pageDate)),l=e.computed(()=>({start:r.value,end:a.value})),s=e.computed(()=>({start:bo(r.value,o.weekStartsOn),end:Bs(a.value,o.weekStartsOn)})),c=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),i=e.computed(()=>{const b=o.weekStartsOn,_=c.value;if(_)return Array.from({length:7}).map((N,$)=>_[(b+$)%7]);const C=n.value(o.weekdayFormat);return Array.from(Array(7)).map((N,$)=>(b+$)%7).map(N=>Vs(new Date,N,o.weekStartsOn)).map(C)}),d=(b,_,C,N)=>N?.dates?.some($=>Nn(b,$))||N?.predicate?.(b)?!1:!_&&!C?!0:!(_&&an(b,Ut(_))||C&&sn(b,ln(C))),h=e.computed(()=>{const b=new Date,_=n.value(o.format);return _s(s.value).map(C=>({value:C,display:_(C),selected:!!o.selected&&Nn(o.selected,C),current:Nn(b,C),disabled:!o.allowOutsideInterval&&!$s(C,l.value)||!d(C,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(C)}))}),g=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),p=e.computed(()=>o.lowerLimit&&(ko(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),f=e.computed(()=>o.upperLimit&&(ko(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{weekDays:i,days:h,heading:g,leftDisabled:p,rightDisabled:f,previousPage:()=>t("update:pageDate",ws(o.pageDate)),nextPage:()=>t("update:pageDate",yo(o.pageDate,1))}}});function Js(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.days,showButtonBar:!0,viewMode:"day",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c)),onToday:t[2]||(t[2]=c=>o.$emit("today")),onClear:t[3]||(t[3]=c=>o.$emit("clear"))},e.createSlots({heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.weekDays,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),3))),128))]),_:2},[o.$slots["after-calendar"]?{name:"after-calendar",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Qs=Ce(Zs,[["render",Js]]),ei=e.defineComponent({components:{PickerPopup:Fn,ChevronUp:X.ChevronUp,ChevronDown:X.ChevronDown},emits:{select:o=>Ke(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1},embedded:{type:Boolean,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>o.pageDate??o.selected),r=e.ref(n.value.getHours()),a=e.ref(n.value.getMinutes());e.watch(()=>o.selected,f=>{let m=0,k=0;f&&(m=f.getHours(),k=f.getMinutes()),r.value=m,a.value=k});const l=(f,m)=>{const k=Ms(new Date(n.value.getTime()),{hours:f,minutes:m,seconds:0});g(k)&&(r.value=f,a.value=m,t("select",k))},s=(f,m)=>f<0?m:f>m?0:f,c=()=>l(s(r.value+1,23),a.value),i=()=>l(s(r.value-1,23),a.value),d=()=>l(r.value,s(a.value+1,59)),h=()=>l(r.value,s(a.value-1,59)),g=f=>!(o.disabledTime?.dates?.some(m=>pr(f,m)&&Ss(f,m))||o.disabledTime?.predicate?.(f));return{hours:r,minutes:a,padStartZero:f=>`0${f}`.substr(-2),isEnabled:g,incrementHours:c,decrementHours:i,incrementMinutes:d,decrementMinutes:h}}}),ti={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"},ni={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},oi={class:"min-w-8 text-center text-sm font-medium text-slate-700"},ri={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},li={class:"min-w-8 text-center text-sm font-medium text-slate-700"},ai={class:"col-span-2"},si={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},ii={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},ci={class:"min-w-8 text-center text-sm font-medium text-slate-700"},di={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},ui={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function pi(o,t,n,r,a,l){const s=e.resolveComponent("ChevronUp"),c=e.resolveComponent("ChevronDown"),i=e.resolveComponent("picker-popup");return o.embedded?(e.openBlock(),e.createElementBlock("div",ti,[e.createElementVNode("div",ni,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[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",oi,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[1]||(t[1]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[8]||(t[8]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",ri,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[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",li,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[3]||(t[3]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(i,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",ai,[e.createElementVNode("div",si,[e.createElementVNode("div",ii,[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",ci,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[5]||(t[5]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[9]||(t[9]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",di,[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",ui,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[7]||(t[7]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const mi=Ce(ei,[["render",pi]]),Dn=["time","day","month","year"],fi=(o,t,n=void 0)=>{let r=n||new Date;const a=As([o,r]);a&&(r=a);const l=Ns([t,r]);return l&&(r=l),r},hi=e.defineComponent({components:{YearPicker:Ks,MonthPicker:Xs,DayPicker:Qs,TimePicker:mi,CalendarDays:X.CalendarDays,Clock3:X.Clock3,X:X.X},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Dn.includes(o)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>[0,1,2,3,4,5,6].includes(o)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Dn.includes(o)}},emits:{"update:modelValue":o=>o==null||Ke(o),decadePageChanged:o=>!0,yearPageChanged:o=>!0,monthPageChanged:o=>!0,opened:()=>!0,closed:()=>!0},setup(o,{emit:t}){const n=e.ref("none"),r=e.ref(o.startingViewDate),a=e.ref(null),l=e.ref(null),s=e.ref(null),c=e.ref({}),i=e.ref(!1),d=e.ref(!1),h=e.ref(!1);let g=null;const p=e.ref(""),f=ne=>{const de=ne.replace(/[a-zA-Z]/g,"0");return/0/.test(de)?de:""},m=e.computed(()=>f(o.inputFormat));let k=null,b=null;const _=()=>{k?.destroy(),k=null},C=async()=>{if(!b){const{default:ne}=await Promise.resolve().then(()=>Qn);b=ne}return b},N=()=>{k&&k.value!==p.value&&(k.value=p.value??"")},$=ne=>{const de=ne&&Ke(ne)?cn(ne,o.inputFormat):"";p.value!==de&&(p.value=de),N()},q=async()=>{if(_(),!l.value||!m.value)return;k=(await C())(l.value,{mask:m.value,lazy:!0,overwrite:!1}),N()};e.watch(()=>o.modelValue,ne=>{d.value&&o.typeable||$(ne)},{immediate:!0}),e.watch(()=>o.inputFormat,()=>{d.value&&o.typeable||$(o.modelValue)}),e.onMounted(()=>{h.value=!0,m.value&&e.nextTick(()=>{q()})}),e.onBeforeUnmount(()=>{_()}),e.watch(m,ne=>{ne?e.nextTick(()=>{q()}):_()});const G=e.computed(()=>n.value!=="none"),I=e.computed(()=>o.startingView==="time"&&o.minimumView==="time"),E=e.computed(()=>o.startingView==="day"&&o.minimumView==="time"),V=ne=>{o.disabled||(G.value||(r.value=o.modelValue||fi(o.lowerLimit,o.upperLimit,r.value),t("opened")),n.value=ne,e.nextTick(()=>Oe()))},v=()=>{G.value&&(g!==null&&(cancelAnimationFrame(g),g=null),n.value="none",t("closed"))},T=(ne="none")=>{ne==="none"?v():V(ne)};e.watchEffect(()=>{o.disabled&&v()});const j=(ne,de)=>{r.value=de,ne==="year"?t("decadePageChanged",de):ne==="month"?t("yearPageChanged",de):ne==="day"&&t("monthPageChanged",de)},te=ne=>{r.value=ne,o.minimumView==="year"?(v(),$(ne),t("update:modelValue",ne)):V("month")},D=ne=>{r.value=ne,o.minimumView==="month"?(v(),$(ne),t("update:modelValue",ne)):V("day")},U=ne=>{const de=E.value?(()=>{const xe=o.modelValue||r.value||new Date,ve=new Date(ne);return ve.setHours(xe.getHours(),xe.getMinutes(),0,0),ve})():ne;r.value=de,o.minimumView==="day"?(v(),$(de),t("update:modelValue",de)):E.value?($(de),t("update:modelValue",de),V("day")):V("time")},oe=ne=>{$(ne),t("update:modelValue",ne)},R=()=>{U(new Date)},H=()=>{o.clearable&&(v(),$(null),t("update:modelValue",null),r.value=o.startingViewDate)},Z=()=>{G.value||V(se.value)},ae=()=>{d.value=!0,i.value=!1,V(se.value)},O=()=>{d.value=!1,o.typeable&&M({closeOnSuccess:!1,revertOnInvalid:!0})},A=ne=>{const de=ne.target;if(p.value=de?.value??"",!o.typeable)return;const xe=fr(p.value,o.inputFormat);xe&&p.value===cn(xe,o.inputFormat)&&(r.value=xe)},M=({closeOnSuccess:ne,revertOnInvalid:de})=>{const xe=l.value?.value??p.value,ve=fr(xe,o.inputFormat);return!!ve&&xe===cn(ve,o.inputFormat)&&ve?(r.value=ve,$(ve),t("update:modelValue",ve),ne&&v(),!0):($(o.modelValue),!1)},Q=ne=>{const de=ne.keyCode?ne.keyCode:ne.which,xe=de===27,ve=de===13;if(xe){v(),l.value?.blur();return}o.typeable&&ve&&(M({closeOnSuccess:!0,revertOnInvalid:!0})||l.value?.focus())},se=e.computed(()=>{const ne=Dn.indexOf(o.startingView),de=Dn.indexOf(o.minimumView);return ne<de?o.minimumView:o.startingView}),ee=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0),me=()=>o.startingView==="time"&&o.minimumView==="time"?null:V("day"),ke=()=>{if(!l.value||!s.value)return;const ne=4,de=8,xe=l.value.getBoundingClientRect(),ve=s.value.getBoundingClientRect(),Te=s.value.firstElementChild?.getBoundingClientRect(),Je=window.innerWidth,Ae=window.innerHeight,Fe=window.scrollX||window.pageXOffset,ut=window.scrollY||window.pageYOffset,z=Math.max(160,Ae-de*2),J=Math.min(ve.height||0,z),ie=Ae-xe.bottom-ne-de,F=xe.top-ne-de,w=ie<J&&F>ie;let S=w?xe.top-ne-J:xe.bottom+ne;S=Math.max(de,Math.min(S,Ae-de-J));const P=Te?.width||ve.width||268;let le=xe.left;le+P>Je-de&&(le=Je-de-P),le<de&&(le=de);const we=w?Math.max(120,xe.top-ne-de):Math.max(120,Ae-xe.bottom-ne-de);c.value={position:"absolute",top:`${Math.round(S+ut)}px`,left:`${Math.round(le+Fe)}px`,maxHeight:`${Math.round(Math.min(z,we))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},E.value&&n.value==="day"&&(c.value.minWidth="345px")},ge=(ne,de)=>ne.bottom>de.top&&ne.top<de.bottom&&ne.right>de.left&&ne.left<de.right,Se=ne=>{const de=[];let xe=ne.parentElement;for(;xe;){const ve=window.getComputedStyle(xe),ze=ve.overflowY,Te=ve.overflowX,Je=["auto","scroll","hidden","clip"].includes(ze),Ae=["auto","scroll","hidden","clip"].includes(Te);(Je||Ae)&&de.push(xe),xe=xe.parentElement}return de},Ne=()=>{if(!l.value)return!1;const ne=l.value.getBoundingClientRect(),de=new DOMRect(0,0,window.innerWidth,window.innerHeight);return ge(ne,de)?Se(l.value).every(ve=>ge(ne,ve.getBoundingClientRect())):!1},$e=()=>{if(G.value){if(!Ne()){i.value=!0,v();return}Oe();return}i.value&&document.activeElement===l.value&&Ne()&&(i.value=!1,V(se.value))};e.watch(n,()=>{G.value&&e.nextTick(()=>Oe())});const Oe=()=>{ke(),g!==null&&cancelAnimationFrame(g),g=requestAnimationFrame(()=>{ke(),g=null})};e.onMounted(()=>{window.addEventListener("resize",$e),window.addEventListener("scroll",$e,!0),document.addEventListener("pointerdown",Me,!0)}),e.onBeforeUnmount(()=>{g!==null&&(cancelAnimationFrame(g),g=null),window.removeEventListener("resize",$e),window.removeEventListener("scroll",$e,!0),document.removeEventListener("pointerdown",Me,!0)});const Me=ne=>{if(n.value==="none")return;const de=ne.target;if(!de)return;const xe=!!a.value?.contains(de),ve=!!s.value?.contains(de);!xe&&!ve&&(i.value=!1,v())};return{rootRef:a,blur:O,focus:ae,click:Z,input:p,inputRef:l,pageDate:r,renderView:T,updatePageDate:j,selectYear:te,selectMonth:D,selectDay:U,selectToday:R,selectTime:oe,keyUp:Q,onInput:A,isTimeOnlyMode:I,isDateTimeMode:E,normalizedWeekdayNames:ee,viewShown:n,goBackFromTimepicker:me,clearModelValue:H,initialView:se,log:ne=>console.log(ne),popupAnchorStyle:c,popupRef:s,isMounted:h}}}),gi={ref:"rootRef",class:"relative"},yi={class:"p-datepicker p-component p-inputwrapper relative"},bi=["readonly","value","placeholder","disabled","tabindex"],ki={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},wi={class:"absolute right-8 top-1/2 -translate-y-1/2"};function xi(o,t,n,r,a,l){const s=e.resolveComponent("Clock3"),c=e.resolveComponent("CalendarDays"),i=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),h=e.resolveComponent("month-picker"),g=e.resolveComponent("time-picker"),p=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",gi,[e.createElementVNode("div",yi,[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]=(...f)=>o.onInput&&o.onInput(...f)),onKeyup:t[1]||(t[1]=(...f)=>o.keyUp&&o.keyUp(...f)),onBlur:t[2]||(t[2]=(...f)=>o.blur&&o.blur(...f)),onFocus:t[3]||(t[3]=(...f)=>o.focus&&o.focus(...f)),onClick:t[4]||(t[4]=(...f)=>o.click&&o.click(...f))}),null,16,bi),e.createElementVNode("span",ki,[o.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(c,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",wi,[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]=f=>o.clearModelValue())},[e.createVNode(i,{class:"h-3 w-3"})])])],512),[[e.vShow,o.clearable&&o.modelValue]])]),o.isMounted?(e.openBlock(),e.createBlock(e.Teleport,{key:0,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]=f=>o.updatePageDate("year",f)),selected:o.modelValue,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,onSelect:o.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,o.viewShown==="year"]]),e.withDirectives(e.createVNode(h,{pageDate:o.pageDate,"onUpdate:pageDate":t[7]||(t[7]=f=>o.updatePageDate("month",f)),selected:o.modelValue,onSelect:o.selectMonth,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,format:o.monthListFormat,onBack:t[8]||(t[8]=f=>o.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,o.viewShown==="month"]]),e.withDirectives(e.createVNode(p,{pageDate:o.pageDate,"onUpdate:pageDate":t[9]||(t[9]=f=>o.updatePageDate("day",f)),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]=f=>o.viewShown="month")},e.createSlots({_:2},[o.isDateTimeMode?{name:"after-calendar",fn:e.withCtx(()=>[e.createVNode(g,{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(g,{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"]])])):e.createCommentVNode("",!0)],512)}const vi=Ce(hi,[["render",xi]]),hr=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:a}=Qe(n.style),l=e.getCurrentInstance(),s=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),c=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",a.value,n.customClass,{"!border-red-600":n.error}]),i=e.computed(()=>!n.modelValue&&n.now?new Date:null),d=e.computed({get:()=>E(n.modelValue??i.value,s.value)||void 0,set:O=>r("update:modelValue",V(O,s.value))}),h=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],g=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:h}),p=e.computed(()=>{const O=n.weekStart,A=typeof O=="string"?Number(O):O;return A===void 0||Number.isNaN(A)?1:Math.min(6,Math.max(0,A))}),f=e.computed(()=>{const O=n.maxDaysFromNow;if(O==null||O==="")return;const A=typeof O=="string"?Number(O):O;if(!Number.isFinite(A)||A<0)return;const M=new Date;return M.setHours(0,0,0,0),M.setDate(M.getDate()+A),M.setHours(23,59,59,999),M}),m=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 O=l?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof O=="string"&&O)return O;if(O&&typeof O=="object"&&"value"in O&&O.value)return String(O.value);if(typeof localStorage<"u"){const A=localStorage.getItem("locale")||localStorage.getItem("language");if(A)return A}return"uk"}function _(){const A=l?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!A)return"";if(typeof A=="string")return A;if(typeof A=="object"){const M=b();return A[M]||A[M.split("-")[0]]||A.uk||A.en||""}return""}function C(O){return O?O.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 N=e.computed(()=>{const O=k[s.value]||"dd.MM.yyyy";if(s.value==="time")return O;const A=n.dateFormat||_();if(!A)return O;const M=C(A);return M?s.value==="datetime"?`${M} HH:mm`:M:O});function $(O,A){return O?A==="week"?"рррр-тиждень":O.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",A==="time"||A==="datetime"?"хх":"мм"):""}const q={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},G=e.computed(()=>{if(n.placeholder)return n.placeholder;const O=s.value;return $(N.value,O)||q[O]||""}),I=e.ref(!1);e.watch(()=>n.modelValue,O=>{O?I.value=!0:n.now||(I.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!I.value&&(r("update:modelValue",V(new Date,s.value)),I.value=!0)}),e.watch(N,()=>{r("update:modelValue",V(d.value,s.value))});function E(O,A){if(!O)return null;if(O instanceof Date&&!Number.isNaN(O.getTime()))return O;if(typeof O!="string")return null;switch(A){case"datetime":return te(O);case"time":return oe(O);case"month":return D(O);case"year":return U(O);case"week":return R(O);case"date":default:return j(O)}}function V(O,A){if(!O)return null;const M=O instanceof Date?O:E(O,A);if(!M)return null;switch(A){case"datetime":return`${v(M)}T${T(M)}`;case"time":return T(M);case"month":return`${M.getFullYear()}-${ae(M.getMonth()+1)}`;case"year":return`${M.getFullYear()}`;case"week":{const{year:Q,week:se}=H(M);return`${Q}-W${ae(se)}`}case"date":default:return v(M)}}function v(O){return`${O.getFullYear()}-${ae(O.getMonth()+1)}-${ae(O.getDate())}`}function T(O){return`${ae(O.getHours())}:${ae(O.getMinutes())}`}function j(O){const A=O.split("-");if(A.length<3)return null;const M=Number(A[0]),Q=Number(A[1]),se=parseInt(A[2],10);return!M||!Q||!se?null:new Date(M,Q-1,se)}function te(O){const A=O.includes("T")?O:O.replace(" ","T"),M=new Date(A);return Number.isNaN(M.getTime())?null:M}function D(O){const[A,M]=O.split("-").map(Number);return!A||Number.isNaN(M)?null:new Date(A,(M||1)-1,1)}function U(O){const A=Number(O);return A?new Date(A,0,1):null}function oe(O){const A=O.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!A)return null;const[,M,Q,se]=A,ee=new Date;return ee.setHours(Number(M),Number(Q),Number(se||0),0),ee}function R(O){const A=O.match(/^(\d{4})-W(\d{2})$/);if(!A)return null;const[,M,Q]=A,se=Number(Q);return Z(Number(M),se)}function H(O){const A=new Date(Date.UTC(O.getFullYear(),O.getMonth(),O.getDate())),M=A.getUTCDay()||7;A.setUTCDate(A.getUTCDate()+4-M);const Q=new Date(Date.UTC(A.getUTCFullYear(),0,1)),se=Math.ceil(((A.getTime()-Q.getTime())/864e5+1)/7);return{year:A.getUTCFullYear(),week:se}}function Z(O,A){if(!O||!A)return null;const M=new Date(O,0,1+(A-1)*7),Q=M.getDay(),se=M;return Q<=4?se.setDate(M.getDate()-M.getDay()+1):se.setDate(M.getDate()+8-M.getDay()),se}function ae(O){return String(O).padStart(2,"0")}return(O,A)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass])},[e.createVNode(vi,{modelValue:d.value,"onUpdate:modelValue":A[0]||(A[0]=M=>d.value=M),placeholder:G.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":g.value,"week-starts-on":p.value,"starting-view":m.value.startingView,"minimum-view":m.value.minimumView,"input-format":N.value,"upper-limit":f.value,name:n.name,class:e.normalizeClass(c.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","upper-limit","name","class"])],2))}}),[["__scopeId","data-v-637c8950"]]),_i=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),a=new URLSearchParams(r);Object.entries(t).forEach(([s,c])=>{c==null||c===""||a.set(s,String(c))});const l=a.toString();return l?`${n}?${l}`:n},Ci=(o,t,n)=>new Promise((r,a)=>{const l=new FormData;l.append("unique","true"),l.append("file",o);const s=new XMLHttpRequest;s.open("POST",t),s.upload.addEventListener("progress",c=>{if(n){if(c.lengthComputable&&c.total>0){n(Math.min(100,Math.round(c.loaded/c.total*100)));return}n(0)}}),s.addEventListener("load",()=>{try{const c=s.responseText?JSON.parse(s.responseText):{};if(s.status>=200&&s.status<300){r(c?.result??null);return}a(new Error(c?.message||c?.error||`Код помилки: ${s.status}`))}catch(c){a(c)}}),s.addEventListener("error",()=>a(new Error("Помилка мережі під час завантаження файлу"))),s.addEventListener("abort",()=>a(new Error("Завантаження файлу скасовано"))),s.send(l)}),Ei=async(o,t={})=>{try{const{api:n,id:r="1",form:a="form",table:l="table",customParams:s,onProgress:c}=t,i=n||`/file/upload/uploads?id=${r||""}&form=${a||""}&table=${l||""}`,d=_i(i,s);if(o instanceof File)return await Ci(o,d,c);const h=new FormData;return h.append("unique","true"),h.append("file",o),(await fetch(d,{method:"POST",body:h}).then(p=>p.json()))?.result}catch(n){return he.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},Bi=async o=>{try{return await fetch(`file/delete/${o}`),!0}catch(t){return console.error(t),!1}},gr=async o=>{try{const t=await fetch(`/file/download/${o}`);if(!t.ok)throw new Error(`Download failed with status ${t.status}`);const n=await t.blob(),a=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),l=a?.[1]?decodeURIComponent(a[1].replace(/"/g,"").trim()):"",s=o.split("/").filter(Boolean).pop()||"download",c=l||s,i=document.createElement("a");i.setAttribute("download",c),i.href=window.URL.createObjectURL(n),i.click(),window.URL.revokeObjectURL(i.href)}catch(t){console.error(t.message)}},Vi=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},wo=o=>{const t=Vi(o),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?X.Table:n.textsFormat.includes(t)?X.FileCode:n.documentsFormat.includes(t)?X.FileText:n.archivesFormat.includes(t)?X.FileArchive:X.FileText},Si=["title"],$i={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 px-2 text-center text-xs font-medium text-slate-600"},Ai=["title"],Ni={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},gt=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"),a=t,l=o,s=e.computed(()=>l.action),c=e.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),i=e.computed(()=>l.disabled?"opacity-50 cursor-not-allowed":l.isUploading?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),d=e.computed(()=>l.progressPercent>0?`${l.progressPercent}%`:"Завантаження..."),h=m=>typeof m=="string"?m:m?.file_path||"",g=()=>{const m=c.value;Bi(m),l.multiple&&Array.isArray(n.value)?n.value=n.value.filter(k=>h(k)!==m):n.value=""},p=()=>{c.value&&window.open(c.value,"_blank")},f=()=>{l.disabled||l.isUploading||a("click")};return(m,k)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,title:m.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:f},[m.isUploading?(e.openBlock(),e.createElementBlock("div",$i,[k[2]||(k[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(d.value),1)])):(e.openBlock(),e.createBlock(e.unref(X.Plus),{key:1,class:"h-4 w-4"}))],10,Si)):(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(wo)(c.value)),{src:`${e.unref(wo)(c.value)} === 'img'`?`/file/resize?filepath=${c.value}&format=webp`:c.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:k[0]||(k[0]=b=>e.unref(gr)(c.value))},null,8,["src"])),e.createElementVNode("div",Ni,[e.createElementVNode("button",{type:"button",onClick:g,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(X.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:p,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-emerald-600"},[e.createVNode(e.unref(X.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:k[1]||(k[1]=b=>e.unref(gr)(c.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(X.Download),{class:"w-4 h-4"})])])],8,Ai))}}),[["__scopeId","data-v-b03cac5c"]]),xo=o=>o?o.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean).map(t=>t.startsWith(".")?t.slice(1):t):[],vo=(o,t)=>!t||o.size<=t*1024*1024?!0:(he.notify({type:"error",title:"Помилка!",message:`Файл "${o.name}" занадто великий. Максимальний розмір: ${t} МБ`,position:"right-bottom"}),!1),_o=(o,t)=>{if(!t.length)return!0;const n=o.name.split(".").pop()?.toLowerCase()||"";return t.includes(n)?!0:(he.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${o.name}". Дозволені формати: ${t.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},yr=(o,t)=>{const n={},r=[];if(!o?.length)return{ok:!0,params:n,missingSources:r};const a=t?.value??{};return o.forEach(l=>{if(!l)return;const[s,c]=l.split("="),i=s?.trim(),d=c?.trim();if(!i||!d)return;const h=a[d];if(h==null||h===""){r.push(d);return}n[i]=h}),r.length?(he.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:n,missingSources:r}):{ok:!0,params:n,missingSources:r}},br=(o,t)=>!t||!Array.isArray(o)?[]:o,kr=(o,t)=>t||Array.isArray(o)?null:o,wr=o=>{if(!o)return"";const t=o.split(/[/\\]/).pop()||"",n=t.lastIndexOf(".");return n<=0||n===t.length-1?"":t.slice(n+1).toLowerCase()},Mi={class:"flex items-center flex-wrap gap-2"},Fi=["accept","multiple","disabled"],xr=e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),a=t,l=e.ref(null),s=e.ref(!1),c=e.ref([]),i=e.inject("values"),d=e.inject("map-file-import-uploading",null),h=e.computed(()=>br(r.value,!!n.multiple)),g=e.computed(()=>kr(r.value,!!n.multiple)),p=e.computed(()=>xo(n.format)),f=e.computed(()=>yr(n.customParams,i)),m=G=>{he.notify({type:"error",title:"Помилка завантаження",message:G||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},k=()=>{n.disabled||s.value||f.value.ok&&l.value?.click()},b=async(G,I)=>{const E={api:n.api,customParams:Object.keys(f.value.params).length?f.value.params:void 0,onProgress:v=>{I&&(I.status="uploading",I.progressPercent=v)}},V=await Ei(G,E);return V?.file_path?V.file_path:null};e.watch(s,G=>{d&&(d.value=G)},{immediate:!0});const _=e.computed(()=>c.value.filter(G=>G.status!=="done")),C=e.computed(()=>_.value[0]||null),N=G=>typeof G=="string"?G:G?.file_path||"",$=(G,I)=>({key:`${Date.now()}-${I}-${G.name}`,file:G,size:G.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),q=async G=>{const{files:I}=G.target;if(!I||I.length===0)return;if(!f.value.ok){l.value&&(l.value.value="");return}const E=Array.from(I);if(n.max_size&&E.filter(T=>!vo(T,n.max_size)).length>0){l.value&&(l.value.value="");return}if(E.filter(v=>!_o(v,p.value)).length>0){l.value&&(l.value.value="");return}s.value=!0,c.value=E.map((v,T)=>$(v,T));try{if(n.multiple){const te=await Promise.all(E.map(async(R,H)=>{const Z=c.value[H];Z.status="uploading",Z.progressPercent=0;const ae=await b(R,Z);return ae?(Z.status="done",Z.path=ae,Z.uploaded=Z.size,Z.progressPercent=100):(Z.status="error",Z.error="Помилка при завантаженні"),ae})),D=te.filter(R=>!!R);if(D.length===0){m();return}D.length<te.length&&m("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const U=D,oe=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...oe,...U],a("change",r.value);return}const v=E[0],T=c.value[0];T.status="uploading",T.progressPercent=0;const j=await b(v,T);if(!j){T.status="error",T.error="Помилка при завантаженні",m();return}T.status="done",T.path=j,T.uploaded=T.size,T.progressPercent=100,r.value=j,a("change",j)}catch(v){m(v?.message||void 0)}finally{s.value=!1,c.value=[],l.value&&(l.value.value="")}};return(G,I)=>(e.openBlock(),e.createElementBlock("div",Mi,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:l,type:"file",accept:n.format,multiple:n.multiple,onChange:q,disabled:s.value||G.disabled},null,40,Fi),g.value?(e.openBlock(),e.createBlock(gt,{key:0,item:g.value,value:r.value,"onUpdate:value":I[0]||(I[0]=E=>r.value=E)},null,8,["item","value"])):e.createCommentVNode("",!0),n.multiple?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(E,V)=>(e.openBlock(),e.createBlock(gt,{key:`${V}-${N(E)}`,multiple:!0,item:E,value:r.value,"onUpdate:value":I[1]||(I[1]=v=>r.value=v)},null,8,["item","value"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,E=>(e.openBlock(),e.createBlock(gt,{key:E.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":E.progressPercent,title:E.file.name},null,8,["progress-percent","title"]))),128)),e.createVNode(gt,{action:"","is-uploading":!1,disabled:G.disabled||s.value,title:"Добавить файлы",onClick:k},null,8,["disabled"])],64)):!n.multiple&&!C.value?(e.openBlock(),e.createBlock(gt,{key:2,action:"","is-uploading":!1,disabled:G.disabled||s.value,title:"Обновить файл",onClick:k},null,8,["disabled"])):C.value?(e.openBlock(),e.createBlock(gt,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":C.value.progressPercent,title:C.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0)]))}}),Di={class:"vs-input-file2 flex flex-col gap-4"},Ti={class:"flex items-center flex-wrap gap-2"},Li=["multiple","accept","disabled"],Ii={key:0,class:"text-sm text-rose-600"},Tn=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},multiple:{type:Boolean,default:!1},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),a=e.ref(!1),l=e.ref(""),s=e.ref([]),c=e.inject("values"),i=e.computed(()=>!!t.multiple),d=e.computed(()=>xo(t.format)),h=e.computed(()=>{if(d.value.length)return d.value.map(E=>`.${E}`).join(",")}),g=e.computed(()=>br(n.value,i.value)),p=e.computed(()=>kr(n.value,i.value)),f=e.computed(()=>yr(t.customParams,c)),m=e.computed(()=>s.value.filter(E=>E.status!=="done")),k=e.computed(()=>i.value?null:m.value[0]||null),b=e.computed(()=>{const E=m.value,V=E.reduce((T,j)=>T+j.size,0);if(!V)return 0;const v=E.reduce((T,j)=>T+Math.min(j.uploaded,j.size),0);return Math.min(100,Math.round(v/V*100))}),_=()=>{t.disabled||a.value||f.value.ok&&r.value?.click()},C=async(E,V)=>{const v=V||G(E,0);try{v.status="uploading";const T={id:"",fileName:v.file.name,subdir:t.subdir,size:v.file.size,...f.value.params},j=await fetch(`${t.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T)});if(!j.ok)throw new Error("Не вдалося ініціалізувати завантаження");const te=await j.json().catch(()=>({}));v.uploadId=te.id||"",v.uploaded=Number(te.uploaded)||0,v.progressPercent=v.size?Math.min(100,Math.round(v.uploaded/v.size*100)):0;const D=t.chunkSize??5*1024*1024;for(;v.uploaded<v.size;){const R=v.uploaded,H=Math.min(R+D,v.size),ae=await v.file.slice(R,H).arrayBuffer(),O=await fetch(`${t.api||"/file/upload2"}/${v.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${R}-${H-1}/${v.size}`,"Content-Type":"application/octet-stream"},body:ae});if(!O.ok)throw new Error("Помилка завантаження частини");const A=await O.json().catch(()=>({})),M=A.uploaded!=null?Number(A.uploaded):H;if(v.uploaded=M,v.progressPercent=v.size?Math.min(100,Math.round(v.uploaded/v.size*100)):0,A.finished||M>=v.size){const Q=wr(v.file.name),se=A.file_path||A.filepath||A.url||(Q?`/files/uploads/${v.uploadId}.${Q}`:`/files/uploads/${v.uploadId}`);return v.path=se,v.status="done",q(se),se}}const U=wr(v.file.name),oe=`/files/uploads/${v.uploadId}${U?`.${U}`:""}`;return v.path=oe,v.status="done",q(oe),oe}catch(T){return v.status="error",v.error=T?.message||"Помилка при завантаженні",l.value=T?.message||"Помилка при завантаженні",null}},N=E=>typeof E=="string"?E:E?.file_path||"",$=E=>!E||E.length===0?[]:Array.from(E),q=E=>{if(i.value){const V=Array.isArray(n.value)?[...n.value]:n.value?[n.value]:[];V.push(E),n.value=V;return}n.value=E},G=(E,V)=>({key:`${Date.now()}-${V}-${E.name}`,file:E,size:E.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),I=async E=>{const V=E.target,v=$(V.files);if(!v.length)return;if(!f.value.ok){V.value="";return}const T=v.filter(j=>vo(j,t.max_size)&&_o(j,d.value));if(!T.length){V.value="";return}try{a.value=!0,l.value="",s.value=T.map((U,oe)=>G(U,oe));const te=(await Promise.allSettled(s.value.map(U=>C(U.file,U)))).filter(U=>U.status==="fulfilled").map(U=>U.value).filter(U=>!!U),D=s.value.filter(U=>U.status==="error").map(U=>U.file.name);if(te.length===0){l.value="Не вдалося завантажити файл";return}D.length>0?he.notify({type:"warning",title:"Частина файлів не завантажилась",message:D.join(", "),position:"right-bottom"}):he.notify({type:"success",title:"Файл завантажено",message:T.length>1?`Завантажено ${te.length} файлів`:T[0].name,position:"right-bottom"})}finally{a.value=!1,s.value=[],V.value=""}};return(E,V)=>(e.openBlock(),e.createElementBlock("div",Di,[e.createElementVNode("div",Ti,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:i.value,accept:h.value,disabled:a.value||t.disabled,onChange:I},null,40,Li),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(g.value,(v,T)=>(e.openBlock(),e.createBlock(gt,{key:`${T}-${N(v)}`,multiple:!0,item:v,value:n.value,"onUpdate:value":V[0]||(V[0]=j=>n.value=j)},null,8,["item","value"]))),128)):p.value?(e.openBlock(),e.createBlock(gt,{key:1,item:p.value,value:n.value,"onUpdate:value":V[1]||(V[1]=v=>n.value=v)},null,8,["item","value"])):e.createCommentVNode("",!0),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(m.value,v=>(e.openBlock(),e.createBlock(gt,{key:v.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":v.progressPercent,title:v.file.name},null,8,["progress-percent","title"]))),128)):k.value?(e.openBlock(),e.createBlock(gt,{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(gt,{action:"","is-uploading":!1,disabled:t.disabled||a.value,"progress-percent":b.value,title:i.value?"Добавить файлы":"Обновить файл",onClick:_},null,8,["disabled","progress-percent","title"])]),l.value?(e.openBlock(),e.createElementBlock("p",Ii,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)]))}});function Oi(o){let t="";for(let r=0;r<o.length;r+=32768)t+=String.fromCharCode(...o.subarray(r,r+32768));return btoa(t)}async function vr(o){const t=await o.arrayBuffer();return{name:o.name,content:Oi(new Uint8Array(t))}}function Co(o,t="application/octet-stream"){const n=atob(o),r=new Uint8Array(n.length);for(let a=0;a<n.length;a++)r[a]=n.charCodeAt(a);return new Blob([r],{type:t})}function _r(o,t="application/octet-stream"){return URL.createObjectURL(Co(o,t))}function Cr(o){const t=Co(o.content),n=document.createElement("a");n.href=window.URL.createObjectURL(t),n.setAttribute("download",o.name),n.click(),window.URL.revokeObjectURL(n.href)}function Eo(o){if(!o||typeof o!="object"||Array.isArray(o))return!1;const t=o;return typeof t.name=="string"&&typeof t.content=="string"&&!!t.content}const Pi={class:"vs-input-file64 flex flex-col gap-2"},Ri={class:"flex items-center flex-wrap gap-2"},zi=["multiple","accept","disabled"],ji=["title"],Ui=["src"],Hi={key:1,class:"flex h-full w-full flex-col items-center justify-center gap-1 px-2 text-slate-500"},qi={class:"line-clamp-2 text-center text-[10px] text-slate-600"},Wi={class:"absolute inset-0 hidden items-center justify-center gap-x-2 bg-black/50 group-hover:flex"},Ki=["disabled","onClick"],Gi=["onClick"],Yi=["onClick"],Xi=["title"],Zi={class:"line-clamp-2 max-w-full break-words text-center text-[11px] font-semibold leading-snug"},Ji=["title"],Qi={key:0,class:"text-sm text-rose-600"},Ln=e.defineComponent({__name:"vs-input-file64",props:e.mergeModels({format:{},multiple:{type:Boolean,default:!1},multi:{type:Boolean},max_size:{default:10},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=new Set(["tiff","jpg","jpeg","png","svg","ico","webp"]),n=o,r=e.useModel(o,"modelValue"),a=e.ref(null),l=e.ref(!1),s=e.ref("Обробка…"),c=e.ref(""),i=e.ref([]),d=e.ref([]),h=e.computed(()=>!!(n.multiple||n.multi)),g=e.computed(()=>xo(n.format)),p=e.computed(()=>{if(g.value.length)return g.value.map(I=>`.${I}`).join(",")});function f(){i.value.forEach(I=>URL.revokeObjectURL(I)),i.value=[]}function m(I){return i.value.push(I),I}function k(I){const E=I.name.split(".").pop()?.toLowerCase()||"",V=wo(I.name);return{...I,url:m(_r(I.content)),isImage:t.has(E),icon:V==="img"?"img":V}}function b(){if(f(),h.value){const I=Array.isArray(r.value)?r.value.filter(Eo):[];d.value=I.map(k);return}d.value=Eo(r.value)?[k(r.value)]:[]}async function _(){await e.nextTick(),await new Promise(I=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>I())})})}e.watch([()=>r.value,h],()=>b(),{immediate:!0,deep:!0}),e.onBeforeUnmount(()=>{f()});const C=()=>{n.disabled||l.value||a.value?.click()},N=I=>{if(h.value&&Array.isArray(r.value)){r.value=r.value.filter((E,V)=>V!==I);return}r.value=null},$=I=>{I.url&&window.open(I.url,"_blank")},q=I=>{Cr({name:I.name,content:I.content})},G=async I=>{const E=I.target,V=E.files?Array.from(E.files):[];if(!V.length)return;const v=V.filter(T=>vo(T,n.max_size)&&_o(T,g.value));if(!v.length){E.value="";return}l.value=!0,s.value=v.length>1?`Обробка… (${v.length})`:`Обробка… ${v[0].name}`,c.value="",await _();try{const T=await Promise.all(v.map(j=>vr(j)));if(h.value){const j=Array.isArray(r.value)?r.value.filter(Eo):[];r.value=[...j,...T]}else r.value=T[0]||null;he.notify({type:"success",title:"Файл додано",message:T.length>1?`Додано ${T.length} файлів`:T[0].name,position:"right-bottom"})}catch(T){console.error(T),c.value="Помилка при обробці файлу",he.notify({type:"error",title:"Помилка!",message:"Помилка при обробці файлу",position:"right-bottom"})}finally{l.value=!1,E.value=""}};return(I,E)=>(e.openBlock(),e.createElementBlock("div",Pi,[e.createElementVNode("div",Ri,[e.createElementVNode("input",{ref_key:"fileInput",ref:a,type:"file",class:"hidden",multiple:h.value,accept:p.value,disabled:I.disabled||l.value,onChange:G},null,40,zi),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(V,v)=>(e.openBlock(),e.createElementBlock("div",{key:`${v}-${V.name}`,class:"group relative h-[120px] w-[120px] overflow-hidden rounded-lg border border-dashed border-[#CFD9E0] text-gray-300",title:V.name},[V.isImage?(e.openBlock(),e.createElementBlock("img",{key:0,src:V.url,alt:"",class:"h-full w-full object-cover"},null,8,Ui)):(e.openBlock(),e.createElementBlock("div",Hi,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(V.icon),{class:"h-8 w-8"})),e.createElementVNode("span",qi,e.toDisplayString(V.name),1)])),e.createElementVNode("div",Wi,[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-red-500",disabled:I.disabled||l.value,onClick:T=>N(v)},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,Ki),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-emerald-600",onClick:T=>$(V)},[e.createVNode(e.unref(X.Eye),{class:"h-4 w-4"})],8,Gi),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-blue-500",onClick:T=>q(V)},[e.createVNode(e.unref(X.Download),{class:"h-4 w-4"})],8,Yi)])],8,ji))),128)),l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"box-border flex h-[120px] w-[120px] flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-blue-400 bg-blue-50 p-2 text-blue-600",title:s.value},[E[0]||(E[0]=e.createElementVNode("div",{class:"h-6 w-6 shrink-0 animate-spin rounded-full border-[3px] border-blue-100 border-t-blue-600"},null,-1)),e.createElementVNode("span",Zi,e.toDisplayString(s.value),1)],8,Xi)):!I.disabled&&(h.value||!d.value.length)?(e.openBlock(),e.createElementBlock("div",{key:1,class:"flex h-[120px] w-[120px] cursor-pointer items-center justify-center rounded-lg border border-dashed border-[#CFD9E0] text-gray-300 transition-all hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500",title:h.value?"Добавить файлы":"Выбрать файл",onClick:C},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"})],8,Ji)):e.createCommentVNode("",!0)]),c.value?(e.openBlock(),e.createElementBlock("p",Qi,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0)]))}}),ec={class:"flex items-center justify-center h-[30px] w-[30px]"},tc={class:"max-w-[55vw]"},nc={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},oc={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},rc={class:"px-[5px]"},lc={class:""},In=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(o){const t=o,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(a){if(a<1024)return`${a} B`;const l=a/1024;return l<1024?`${l.toFixed(2)} KB`:`${(l/1024).toFixed(2)} MB`}return(a,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",ec,[e.createVNode(e.unref(X.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",tc,[e.createElementVNode("p",nc,e.toDisplayString(a.item?.uploaded_name),1),e.createElementVNode("p",oc,[e.createElementVNode("span",null,e.toDisplayString(a.item?.username),1),e.withDirectives(e.createElementVNode("span",rc,"|",512),[[e.vShow,a.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),l[0]||(l[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",lc,e.toDisplayString(r(a.item?.size)),1)])])],64))}}),ac={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},sc={key:0,class:"flex w-full gap-x-3 items-center"},ic={key:1,class:"flex gap-x-3 w-full items-center"},cc={key:2,class:"flex gap-x-3 w-full items-center"},dc=["href"],uc={key:3,class:"flex gap-x-3 w-full items-center"},pc={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},mc={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"},fc={class:"inline-block"},hc={class:"inline-block"},gc={class:"inline-block"},yc=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(o,{emit:t}){const n=o,r=t;function a(g){return["pdf","json"].includes(g.ext)}function l(g){return["ppt","pptx","doc","docx","xls","xlsx"].includes(g.ext)}function s(g){const p=document.createElement("a");p.setAttribute("download",g?.uploaded_name),p.href=g?.file_path,p.click()}function c(g){g?.file_path&&window.open(g.file_path,"_blank")}async function i(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`,{method:"DELETE"}),r("update")}catch(g){console.error(g)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:i,updateListOnConfirm:!0})}function h(g){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:g})}return(g,p)=>(e.openBlock(),e.createElementBlock("div",ac,[g.item.ext==="jpg"||g.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",sc,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=f=>h(g.index))},[e.createVNode(In,{item:g.item},null,8,["item"])])])):a(g.item)?(e.openBlock(),e.createElementBlock("div",ic,[e.createVNode(In,{item:g.item},null,8,["item"])])):l(g.item)?(e.openBlock(),e.createElementBlock("div",cc,[e.createElementVNode("a",{href:`/api/file-preview?id=${g.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(In,{item:g.item},null,8,["item"])],8,dc)])):(e.openBlock(),e.createElementBlock("div",uc,[e.createVNode(In,{item:g.item},null,8,["item"])])),e.createElementVNode("div",pc,[e.createElementVNode("div",mc,[e.createElementVNode("div",fc,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:p[1]||(p[1]=f=>c(g.item))},[e.createVNode(e.unref(X.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",hc,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:p[2]||(p[2]=f=>s(g.item))},[e.createVNode(e.unref(X.Download),{class:"h-4 w-4"})])]),p[4]||(p[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",gc,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:p[3]||(p[3]=f=>d())},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})])])])])]))}}),bc={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},kc={class:"flex w-full mb-[12px] items-center gap-x-2"},wc={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},xc={class1:"ml-auto"},vc={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"},_c={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},Cc={class:"relative"},Ec={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},Bc={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"},Vc={key:0},Er=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(o,{emit:t}){const n=o,r=e.inject("form"),a=e.computed(()=>r.value.formId),l=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),h=e.ref([]),g=e.ref(""),p=e.computed(()=>Array.isArray(h.value)?h.value.filter(N=>N.ext==="jpg"||N.ext==="png").map(N=>N?.file_path):[]),f=e.computed(()=>g.value===""?h.value:h.value.filter(N=>N?.uploaded_name?.includes(g.value))),m=N=>{const $=p.value.findIndex(q=>q===N.item.file_path);$!==-1&&(l.value=!0,s.value=$)},k=async()=>{try{const N=await fetch(`${n.prefix}/widget/file/${a.value}`).then($=>$.json());h.value=N?.rows}catch(N){console.error(N)}},b=async N=>{await Promise.all(Array.from(N.target.files).map(async $=>{const q=new FormData;q.append("file",$);try{const G=`${n.prefix}/widget/file/${a.value}`,I=await fetch(G,{method:"POST",body:q});return I.ok?(c("update","file-list"),$):(he.notify({type:I.status>=400&&I.status<500?"warning":"error",title:"Error",message:`Error code: ${I.status}`}),null)}catch(G){return he.notify({type:"error",title:"Error",message:G.message||"Unknown error"}),console.error(G),null}})),await k()},_=N=>{const $={...N};return N.cancel||($.cancel=()=>{i.value=!1}),N.updateListOnConfirm&&($.confirm=async()=>{await N.confirm(),i.value=!1,k()}),$},C=N=>{d.value=_(N),i.value=!0};return e.watch(a,N=>{N&&k()}),e.onMounted(()=>{a.value&&k()}),(N,$)=>{const q=e.resolveComponent("Lightbox"),G=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",bc,[e.createElementVNode("div",kc,[e.createElementVNode("h2",wc," Файлів: "+e.toDisplayString(h.value?.length),1),e.createElementVNode("div",xc,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:$[0]||($[0]=I=>b(I))},null,32),e.createElementVNode("div",vc,[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4"})])])])]),h.value?.length>4?(e.openBlock(),e.createElementBlock("div",_c,[e.createElementVNode("div",null,[e.createElementVNode("div",Cc,[e.createElementVNode("div",Ec,[e.createVNode(e.unref(X.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":$[1]||($[1]=I=>g.value=I),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,g.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),h.value?.length?(e.openBlock(),e.createElementBlock("div",Bc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(I,E)=>(e.openBlock(),e.createBlock(yc,{key:E,prefix:N.prefix,item:I,index:E,onUpdate:$[2]||($[2]=V=>N.$emit("update","file-list")),onOpenModal:$[3]||($[3]=V=>C(V)),onOpenLightbox:$[4]||($[4]=V=>m(V))},null,8,["prefix","item","index"]))),128)),f.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Vc,$[8]||($[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(q,{modelValue:l.value,"onUpdate:modelValue":$[5]||($[5]=I=>l.value=I),startIndex:s.value,"onUpdate:index":$[6]||($[6]=I=>s.value=I),images:p.value},null,8,["modelValue","startIndex","images"]),e.createVNode(G,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":$[7]||($[7]=I=>i.value=I),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),Sc={class:"flex items-center justify-between"},$c={class:"text-[16px] text-gray-900 font-medium"},Ac={class:"grid gap-3"},Nc=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,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Sc,[e.createElementVNode("p",$c,e.toDisplayString(o.title),1),e.createVNode(co,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Ac,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),Mc={class:"text-[16px] text-gray-900 font-medium"},Fc={class:"grid gap-3"},Dc=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,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:a[0]||(a[0]=l=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",Mc,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Fc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),Tc={class:"flex items-center justify-between"},Lc={switcher:Nc,accordion:Dc,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",Tc,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},ct={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},Ic=(o,t)=>String(o)===String(t),Oc=(o,t)=>String(o)!==String(t),Pc=(o,t)=>o>t,Rc=(o,t)=>o>=t,zc=(o,t)=>o<t,jc=(o,t)=>o<=t,Uc=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,Hc=(o,t)=>String(o).startsWith(String(t)),qc=(o,t)=>String(o).endsWith(String(t)),Wc=(o,t)=>String(o).includes(String(t)),Kc=(o,t)=>Array.isArray(t)?t.includes(o):!1,Gc=(o,t)=>Array.isArray(t)?!t.includes(o):!0,Yc=(o,t)=>{if(!t)return!0;switch(t?.[1]){case ct.Equal:return Ic(o,t?.[2]);case ct.Inequal:return Oc(o,t?.[2]);case ct.Higer:return Pc(o,t?.[2]);case ct.HigerOrEqual:return Rc(o,t?.[2]);case ct.Lower:return zc(o,t?.[2]);case ct.LowerOrEqual:return jc(o,t?.[2]);case ct.Between:return Uc(o,t?.[2]);case ct.StartWith:return Hc(o,t?.[2]);case ct.EndWith:return qc(o,t?.[2]);case ct.Contain:return Wc(o,t?.[2]);case ct.In:return Kc(o,t?.[2]);case ct.NotIn:return Gc(o,t?.[2]);default:return!0}};function Br(o,t,n){return t==null||!Array.isArray(t)||t.length===0?!0:(Array.isArray(t[0])?t:[t]).every(a=>{if(!Array.isArray(a)||a.length<2)return!0;const l=a[0],s=n?o?.[n]?.[l]??o?.[l]:o?.[l];return Yc(s,a)})}const Vr=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(o){const t=o,n=e.inject("values",e.ref({})),r=e.inject("form"),a=e.computed(()=>t.schema?.filter(c=>Br(n.value,c?.conditions,t.name||void 0))),l=e.computed(()=>Lc[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const c=n.value[t.name];if(c)return c;const i={};return n.value={...n.value,[t.name]:i},i});return(c,i)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,d=>(e.openBlock(),e.createBlock(Qr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":h=>s.value[d.name]=h,style:o.style,error:e.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),Sr=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:a,onCreated:l})=>{const s=e.ref(!1),c=e.ref({}),i=e.ref([]),d=e.ref(null),h=e.computed(()=>o.add?.title||"Додати"),g=e.computed(()=>o.add?.token||o.add?.model||""),p=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:c,addSchema:i,addForm:d,addTitle:h,addOption:async()=>{if(!(!g.value||d?.value.validate()))try{const b=o.add?.api??`/api/table/${g.value}`,_=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c.value)}),C=await _.json().catch(()=>({})),N=C?.error||C?.message,$=Number(C?.code)>=400;if(!_.ok||$){he.notify({title:"Помилка",type:"error",message:N||`Код помилки: ${C?.code||_.status}`});return}const q=C?.rows?.[0],G=C?.[p.value]??C?.id??q?.[p.value]??q?.id;if(!G){he.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const I=await t(G);I&&(n.value.some(V=>String(V?.id)===String(I.id))||n.value.push(I)),l?await l(I,G):I&&(r.value=I,a.value=G),s.value=!1,he.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(b){he.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 i.value=k.schema,c.value={},s.value=!0,null}}},Xc=["aria-expanded","data-focus"],Zc={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"},Jc={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Qc={class:"flex items-center gap-1 min-w-0"},ed=["title"],td=["innerHTML"],nd=["onClick"],od={class:"flex-1 min-w-[2px]"},rd=["placeholder"],ld=["title"],ad=["innerHTML"],sd={key:3,class:"truncate flex-1 min-w-0"},id={key:2,class:"flex-1 min-w-[2px]"},cd=["placeholder"],dd={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},ud={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},pd=["disabled"],md={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},fd=["disabled","title"],hd=e.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(o,{emit:t}){const n=o,r=t,a=e.computed({get:()=>n.keyWord,set:l=>r("update:keyWord",l)});return(l,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",l.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":l.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...c)=>l.onControlKeydown&&l.onControlKeydown(...c)),onClick:s[11]||(s[11]=(...c)=>l.onControlClick&&l.onControlClick(...c)),"data-focus":l.isOpen||l.inputFocus?"true":"false",ref:l.setTriggerRef},[e.createElementVNode("div",Zc,[l.isMulti?(e.openBlock(),e.createElementBlock("div",Jc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.selectedOptions,c=>(e.openBlock(),e.createElementBlock("div",{key:c.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Qc,[l.shouldShowColorDot(c)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:c?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(c)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(c)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(c)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:l.getLabel(c)},[l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:l.renderTemplate(c)},null,8,td)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c.text),1)],64))],8,ed)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(i=>l.onRemoveSelected(c.id),["stop"])},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,nd)]))),128)),e.createElementVNode("div",od,[!l.disabled&&l.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:l.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:l.selectedIds.length?" ":l.placeholder,"onUpdate:modelValue":s[0]||(s[0]=c=>a.value=c),onFocus:s[1]||(s[1]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[2]||(s[2]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[3]||(s[3]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,rd)),[[e.vModelText,a.value]]):e.createCommentVNode("",!0)])])):!l.isMulti&&l.selectedOptionLabel&&a.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",l.disabled||!l.search?"relative z-0 flex-1 min-h-[30px] py-0.5 text-inherit":"absolute inset-x-0 top-0 bottom-0 z-[1] text-gray-900 pointer-events-none"]),title:l.selectedOptionLabel},[l.shouldShowColorDot(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:l.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(l.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(l.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:l.renderTemplate(l.selectedOption)},null,8,ad)):(e.openBlock(),e.createElementBlock("span",sd,e.toDisplayString(l.selectedOption?.text),1))],10,ld)):e.createCommentVNode("",!0),!l.isMulti&&!l.disabled&&l.search?(e.openBlock(),e.createElementBlock("div",id,[e.withDirectives(e.createElementVNode("input",{ref:l.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:l.selectedOptionLabel?" ":l.placeholder,"onUpdate:modelValue":s[4]||(s[4]=c=>a.value=c),onFocus:s[5]||(s[5]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[6]||(s[6]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[7]||(s[7]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,cd),[[e.vModelText,a.value]])])):!l.isMulti&&l.disabled&&(!l.selectedOptionLabel||a.value!=="")?(e.openBlock(),e.createElementBlock("div",dd,e.toDisplayString(l.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",ud,[l.showClear?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:l.disabled,onClick:s[8]||(s[8]=e.withModifiers((...c)=>l.onClearSelected&&l.onClearSelected(...c),["stop"]))},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,pd)):e.createCommentVNode("",!0),l.showClear?(e.openBlock(),e.createElementBlock("div",md)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:l.disabled,onClick:s[9]||(s[9]=e.withModifiers((...c)=>l.onToggleSelect&&l.onToggleSelect(...c),["stop"])),title:l.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],8,fd)])],42,Xc))}}),gd=["aria-disabled","onMousedown"],yd={class:"leading-[19px]"},bd=["innerHTML"],kd={key:1,class:"px-3 py-2 text-center text-gray-500"},wd=e.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(o){return(t,n)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,ref:t.setDropdownRef,class:"fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:e.normalizeStyle(t.dropdownStyle),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:t.dropdownStyle.maxHeight||"300px"}),ref:t.setListRef},[t.filteredOptionsList.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.filteredOptionsList,(r,a)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:l=>t.setItemRef(l,a),class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",t.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",t.selectedNavIndex===a&&!t.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":t.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(l=>t.onOptionClick(r),["prevent","stop"])},[t.shouldShowColorDot(r)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:r?.color})},null,4)):e.createCommentVNode("",!0),!t.optionTemplate&&t.optionHasIcon(r)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.iconWrapperClass),style:e.normalizeStyle(t.getIconColorStyle(r)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",yd,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,bd)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,gd))),128)):(e.openBlock(),e.createElementBlock("div",kd," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),xd={class:"flex justify-end items-center gap-x-2 py-3 px-4 border-t border-gray-200 w-full"},vd=["onClick"],_d=["disabled"],Cd="__autoMeta",$r="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",Bo=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,a=e.computed(()=>n.multiple),l=e.computed(()=>n.disabled),s=e.computed(()=>n.search);Qe(n.style);const c=e.computed({get:()=>n.modelValue,set:W=>r("update:modelValue",W)});(c.value===null||c.value===void 0||c.value==="")&&n.defaultValue!=null&&(c.value=n.defaultValue);const i=e.ref(null),d=e.ref(null),h=e.ref(null),g=e.ref(null),p=e.ref(!1),f=e.ref(!1),m=e.ref(null),k=e.ref(-1),b=e.ref([]),_=e.ref(""),C=e.ref(null),N=W=>{d.value=W},$=W=>{C.value=W},q=W=>{g.value=W},G=W=>{h.value=W},I=(W,re)=>{b.value[re]=W},E=e.ref({}),V=e.ref([]),v=e.computed(()=>{if(!V.value.length)return[];const W=ge.value,re=new Map(W.map(pe=>[pe.id?.toString(),pe]));return V.value.map(pe=>re.get(pe?.toString())).filter(pe=>!!pe)}),T=e.computed(()=>n.placeholder||"Select..."),j=e.computed(()=>ae(m.value)),te=e.computed(()=>l.value?!1:a.value?V.value.length>0:c.value!==null&&c.value!==void 0&&c.value!==""),D=W=>a.value?V.value.some(re=>re?.toString()===W?.toString()):c.value?.toString()===W?.toString(),U=e.computed(()=>{let W=ge.value??[];if(!n.data&&_.value.trim()!==""){const re=_.value.toLowerCase();W=W.filter(pe=>{const Ve=ae(pe).toLowerCase(),Pe=pe.text?.toLowerCase?.()||"";return Ve.includes(re)||Pe.includes(re)})}if(a.value&&V.value.length){const re=new Set(V.value.map(pe=>pe?.toString()));W=W.filter(pe=>!re.has(pe.id?.toString()))}return W}),oe=e.inject("values"),R=e.inject("field-props"),H=e.computed(()=>n.slot??n?.optionTemplate??""),Z=W=>Vn(W,H.value),ae=W=>Sn(W,H.value),O=e.computed(()=>Cn(H.value)),A=W=>rn(W),M=W=>!!(!O.value&&Dt(W)&&!A(W)),Q=W=>{const re=Dt(W);return re?{color:re}:void 0},se=W=>!!(!O.value&&(on(W)||A(W))),ee=(W,re,pe)=>{if(!R)return!1;const Ve=R.value?.[W]??{},Pe=(Re,Ze,xt)=>{if(!Ze.length)return Re;const[mt,...vt]=Ze,ft={...Re};if(!vt.length)return ft[mt]=xt,ft;const zt=typeof Re[mt]=="object"&&Re[mt]!==null?Re[mt]:{};return ft[mt]=Pe(zt,vt,xt),ft},Xe=Pe(Ve,re,pe);return R.value={...R.value||{},[W]:Xe},!0},me=W=>{if(!R||!n.name)return;const re=R.value?.[n.name]??{};R.value={...R.value||{},[n.name]:{...re,[Cd]:W}}},ke=W=>{if(!n.set)return;const re=oe?.value;!re&&!R||Object.entries(n.set).forEach(([pe,Ve])=>{if(!pe)return;const Pe=W?W[Ve]:null,Xe=pe.split(".").map(xt=>xt.trim()).filter(Boolean);if(!Xe.length)return;const[Re,...Ze]=Xe;Ze.length&&ee(Re,Ze,Pe??null)||re&&(re[Re]=Pe??null)})},{optionsList:ge,parentValue:Se,fetchOptions:Ne,fetchOptionByValue:$e,loadOptions:Oe}=Bn({props:n,formValues:oe,watchParent:!1}),Me=W=>W==null?"":String(W),ne=W=>{if(a.value){if(!V.value.length){ge.value=W;return}}else if(!m.value){ge.value=W;return}const re=new Set(W.map(Ve=>Me(Ve.id)).filter(Boolean));if(a.value){const Ve=new Set(V.value.map(Xe=>Me(Xe)).filter(Boolean)),Pe=(ge.value??[]).filter(Xe=>{const Re=Me(Xe.id);return!Re||!Ve.has(Re)?!1:!re.has(Re)});ge.value=[...Pe,...W];return}const pe=Me(m.value?.id);if(pe&&!re.has(pe)){ge.value=[m.value,...W];return}ge.value=W},de=e.ref(0),xe=async W=>{const re=++de.value,pe=await Ne(W);return re!==de.value?null:pe},ve=async()=>{if(n.data){const W=await xe(_.value);return W&&ne(W),ge.value}return Oe()},ze=async W=>{if(W==null||W==="")return null;const re=ge.value?.find(pe=>pe?.id?.toString()===String(W));return re||$e(W)},Te=async W=>{const re=new Set(ge.value.map(Ve=>Ve.id?.toString())),pe=W.filter(Ve=>!re.has(Ve?.toString()));pe.length&&await pe.reduce(async(Ve,Pe)=>{await Ve;const Xe=await ze(Pe);Xe&&ge.value.push(Xe)},Promise.resolve())},Je=()=>{if(!U.value.length){k.value=-1;return}let W=0;if(!a.value&&m.value){const re=m.value.id?.toString(),pe=U.value.findIndex(Ve=>Ve.id?.toString()===re);pe>=0&&(W=pe)}k.value=W,e.nextTick(()=>{P(b.value[W],h.value)})},Ae=async()=>{l.value||(p.value=!0,await e.nextTick(()=>{we()}),await ve(),await e.nextTick(()=>{we(),C.value?.focus()}),Je())},Fe=()=>{p.value=!1,k.value=-1,e.nextTick(()=>{C.value?.blur()})},ut=async W=>{if(l.value)return;(W!==void 0?W:!p.value)?await Ae():Fe()},z=async()=>{if(!l.value){if(p.value){Fe();return}await Ae()}},J=()=>{a.value?(V.value=[],c.value=[],r("change",[]),F(null,[])):(m.value=null,c.value=null,r("change",null),F(null,null)),ke(null),me(null),_.value="",Fe(),e.nextTick(()=>{C.value?.focus()})},ie=W=>{a.value&&(V.value=V.value.filter(re=>re?.toString()!==W?.toString()),c.value=[...V.value],r("change",c.value),F(null),e.nextTick(()=>C.value?.focus()))},F=(W,re)=>{const pe=re??(a.value?[...V.value]:W?.id??null);r("value-selected",{name:n.name,value:pe,option:W})},w=(W,re="manual")=>{a.value?(D(W.id)||(V.value=[...V.value,W.id],c.value=[...V.value],r("change",c.value),F(W)),_.value="",e.nextTick(()=>{C.value?.focus(),k.value=Math.min(k.value,U.value.length-1)}),ke(null)):(m.value=W,c.value=W.id,r("change",c.value),F(W),_.value="",Fe(),ke(W),re==="parent-auto"&&me({source:re,parentField:n.parent??null,parentValue:Se.value??null}))},S=W=>{if(D(W.id)){a.value||Fe();return}w(W)},P=(W,re)=>{if(!W||!re)return;const pe=W.offsetTop,Ve=pe+W.offsetHeight,Pe=re.scrollTop,Xe=Pe+re.clientHeight;let Re=re.scrollTop;pe<Pe?Re=pe-80:Ve>Xe&&(Re=Ve-re.clientHeight+4);const Ze=re;Ze.scrollTop=Re},le=W=>{let re=W.parentElement;for(;re;){if(re.classList.contains("ui-dialog__content"))return re;const pe=window.getComputedStyle(re),Ve=pe.overflow+pe.overflowY+pe.overflowX;if(Ve.includes("auto")||Ve.includes("scroll")||re===document.body||re===document.documentElement)return re;re=re.parentElement}return document.body},we=()=>{if(!d.value)return;const W=d.value.getBoundingClientRect(),re=window.innerHeight||document.documentElement.clientHeight,pe=window.innerWidth||document.documentElement.clientWidth,Ve=8,Pe=8,Xe=n.maxHeight||300,Re=re-W.bottom-Pe-Ve,Ze=W.top-Pe-Ve,xt=Re>=Ze,mt=Math.max(pe-Ve*2,0);let{width:vt}=W;mt>0&&vt>mt&&(vt=mt);let{left:ft}=W;ft+vt+Ve>pe&&(ft=pe-vt-Ve),ft=Math.max(ft,Ve);const zt=Math.min(Xe,Math.max(xt?Re:Ze,50));E.value={position:"fixed",left:`${ft}px`,width:`${vt}px`,maxHeight:`${zt}px`,transform:xt?"none":"translateY(-100%)",top:xt?`${W.bottom+Pe}px`:`${W.top-Pe}px`}},Le=async W=>{l.value||!p.value&&(W.key==="ArrowDown"||W.key==="ArrowUp")&&(W.preventDefault(),await Ae())},De=W=>{if(!p.value)return;const{key:re}=W;if(re==="ArrowDown")W.preventDefault(),k.value+1<U.value.length&&(k.value+=1,P(b.value[k.value],h.value));else if(re==="ArrowUp")W.preventDefault(),k.value>0&&(k.value-=1,P(b.value[k.value],h.value));else if(re==="Enter"){W.preventDefault();const pe=U.value[k.value];pe&&w(pe),C.value?.blur()}else re==="Escape"?(W.preventDefault(),Fe()):re==="Backspace"?a.value&&_.value===""&&V.value.length&&(V.value=V.value.slice(0,-1),c.value=[...V.value],r("change",c.value)):re==="Home"?(k.value=0,P(b.value[0],h.value)):re==="End"?(k.value=U.value.length-1,P(b.value[k.value],h.value)):re==="Tab"&&Fe()},je=()=>{l.value||(f.value=!0)},He=()=>{f.value=!1,_.value=""},pt=W=>{W.key==="Escape"&&p.value&&Fe()},qe=W=>{const re=W.target;i.value?.contains(re)||g.value?.contains(re)||Fe()},it=W=>{p.value&&h.value&&!h.value.contains(W.target)&&we()},Pt=()=>{p.value&&we()},to=()=>{p.value&&we()};async function Qt(){if(a.value)Array.isArray(c.value)?V.value=[...c.value]:(V.value=c.value==null?[]:[c.value],c.value=[...V.value]),n.data&&V.value.length&&(await Te(V.value),await e.nextTick());else{if(Array.isArray(c.value)){const W=c.value[0]??null;c.value=W??null}c.value!=null&&c.value!==""?m.value=await ze(c.value):m.value=null,ke(m.value??null)}}e.watch(c,()=>{Qt()}),e.onMounted(async()=>{if(addEventListener("keydown",pt),addEventListener("scroll",it,!0),addEventListener("resize",Pt),document.addEventListener("click",qe,!0),d.value&&le(d.value).addEventListener("scroll",to,!0),n.options?.length&&!n.data)ge.value=[...n.options];else if(n.data){const W=await xe("");W&&ne(W)}await Qt(),Gt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",pt),removeEventListener("scroll",it,!0),removeEventListener("resize",Pt),document.removeEventListener("click",qe,!0),d.value&&le(d.value).removeEventListener("scroll",to,!0)});const{isOpenAdd:$t,addData:Rt,addSchema:K,addForm:fe,addTitle:tt,addOption:At,onAddValue:wt}=Sr({props:n,fetchOptionByValue:$e,optionsList:ge,selectedOption:m,modelValue:c});function We(W,re=200){let pe;return(...Ve)=>{pe&&clearTimeout(pe),pe=window.setTimeout(()=>W(...Ve),re)}}const en=We(async W=>{const re=await xe(W);re&&ne(re)},200);e.watch(_,W=>{n.data&&en(W.trim())}),e.watch(()=>n.options,W=>{!n.data&&W?.length&&(ge.value=[...W],Qt())},{immediate:!0});const Gt=e.ref(!0);return e.watch(Se,async()=>{if(n.data&&(Gt.value||(a.value?(V.value=[],c.value=[],r("change",[])):(m.value=null,c.value=null,r("change",null))),await ve(),n.auto===1&&Se.value&&ge.value.length>0)){const W=ge.value[0];W&&w(W,"parent-auto")}}),(W,re)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(he.VsModal),{visible:e.unref($t),"onUpdate:visible":re[2]||(re[2]=pe=>e.isRef($t)?$t.value=pe:null),class:"z-[1000]",title:e.unref(tt),teleport:W.teleport},{footer:e.withCtx(({handleClose:pe})=>[e.createElementVNode("div",xd,[e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 hover:bg-gray-50",onClick:pe}," Скасувати ",8,vd),e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700",onClick:re[1]||(re[1]=(...Ve)=>e.unref(At)&&e.unref(At)(...Ve))}," Додати ")])]),default:e.withCtx(()=>[e.createVNode(ot,{schema:e.unref(K),modelValue:e.unref(Rt),"onUpdate:modelValue":re[0]||(re[0]=pe=>e.isRef(Rt)?Rt.value=pe:null),ref_key:"addForm",ref:fe},null,8,["schema","modelValue"])]),_:1},8,["visible","title","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:i,onClick:re[5]||(re[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[re[6]||(re[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),re[7]||(re[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(hd,{keyWord:_.value,"onUpdate:keyWord":re[3]||(re[3]=pe=>_.value=pe),disabled:l.value,"is-open":p.value,"input-focus":f.value,"is-multi":a.value,"selected-options":v.value,"selected-ids":V.value,placeholder:T.value,search:s.value,"option-template":H.value,"icon-wrapper-class":$r,"selected-option-label":j.value,"selected-option":m.value,"show-clear":te.value,"set-trigger-ref":N,"set-input-ref":$,"should-show-color-dot":M,"option-has-icon":se,"get-icon-color-style":Q,"resolve-option-icon":A,"render-template":Z,"get-label":ae,"on-control-keydown":Le,"on-control-click":z,"on-input-focus":je,"on-input-blur":He,"on-input-keydown":De,"on-remove-selected":ie,"on-clear-selected":J,"on-toggle-select":ut},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(wd,{"is-open":p.value,"dropdown-style":E.value,"filtered-options-list":U.value,"selected-nav-index":k.value,"option-template":H.value,"icon-wrapper-class":$r,"set-dropdown-ref":q,"set-list-ref":G,"set-item-ref":I,"is-selected":D,"on-option-click":S,"should-show-color-dot":M,"option-has-icon":se,"get-icon-color-style":Q,"resolve-option-icon":A,"render-template":Z},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:re[4]||(re[4]=(...pe)=>e.unref(wt)&&e.unref(wt)(...pe)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:l.value,type:"button"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),re[8]||(re[8]=e.createElementVNode("span",null,"Додати",-1))],8,_d)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-9b686f27"]]),Vo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,Ed=["disabled","aria-expanded"],Bd={class:"truncate"},Vd={class:"py-2 px-4"},Sd={class:"block font-medium text-[13px] text-foreground"},$d={class:"truncate"},Ad={class:"p-1 border-t border-gray-200"},Nd={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"},Md=["onClick"],Fd=["checked"],Dd={class:"shrink-0 size-3.5 flex justify-center items-center"},Td={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},Ld={class:"truncate"},Id={key:0,class:"px-3 py-2 text-xs text-stone-500"},On=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;Qe(n.style);const a=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:ee=>r("update:modelValue",ee)});a.value==null&&n.defaultValue!=null&&(a.value=n.defaultValue);const l=e.inject("values"),s=e.inject("field-props"),c=e.computed(()=>!!n.disabled),i=e.ref(null),d=e.ref(!1),h=e.ref(null),g=e.ref(null),p=e.ref(null),f=e.ref({}),m=`vs-input-inline-select-${Vo()}`,k=e.computed(()=>n.placeholder||"Оберіть значення"),b=e.computed(()=>q(i.value)||n.placeholder||"Оберіть значення"),_=e.computed(()=>n.slot??""),C=e.computed(()=>Cn(_.value)),N=e.computed(()=>n.teleport||"body"),$=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,q=ee=>Sn(ee,_.value),G=ee=>!!(!C.value&&Dt(ee)),I=e.computed(()=>{const ee=Dt(i.value).trim();return ee?$.test(ee)?`bg-[${ee}] border-[${ee}]`:`bg-${ee.toLowerCase()}-500 border-${ee.toLowerCase()}-500`:""}),{optionsList:E,parentValue:V,fetchOptions:v,fetchOptionByValue:T,loadOptions:j}=Bn({props:n,formValues:l,watchParent:!1}),te=(ee,me,ke)=>{if(!s)return!1;const ge=s.value?.[ee]??{},Se=($e,Oe,Me)=>{if(!Oe.length)return $e;const[ne,...de]=Oe,xe={...$e};if(!de.length)return xe[ne]=Me,xe;const ve=typeof $e[ne]=="object"&&$e[ne]!==null?$e[ne]:{};return xe[ne]=Se(ve,de,Me),xe},Ne=Se(ge,me,ke);return s.value={...s.value||{},[ee]:Ne},!0},D=ee=>{if(!n.set)return;const me=l?.value;!me&&!s||Object.entries(n.set).forEach(([ke,ge])=>{if(!ke)return;const Se=ee?ee[ge]:null,Ne=ke.split(".").map(Me=>Me.trim()).filter(Boolean);if(!Ne.length)return;const[$e,...Oe]=Ne;Oe.length&&te($e,Oe,Se??null)||me&&(me[$e]=Se??null)})},U=ee=>a.value?.toString?.()===ee?.toString?.(),oe=()=>{if(!g.value||typeof window>"u")return;const ee=g.value.getBoundingClientRect(),me=8,ke=8,ge=window.innerHeight||document.documentElement.clientHeight,Se=window.innerWidth||document.documentElement.clientWidth,Ne=p.value?.offsetHeight||260,$e=Math.max(ee.width,176),Oe=Math.max(Se-me*2,120),Me=Math.min($e,Oe);let ne=ee.left;ne+Me+me>Se&&(ne=Se-Me-me),ne=Math.max(ne,me);const de=ge-ee.bottom-ke-me,xe=ee.top-ke-me,ve=de<Math.min(Ne,260)&&xe>de,ze=Math.max(120,Math.min(320,ve?xe:de));f.value={position:"fixed",left:`${ne}px`,top:ve?`${ee.top-ke}px`:`${ee.bottom+ke}px`,transform:ve?"translateY(-100%)":"none",width:`${Me}px`,maxHeight:`${ze}px`}},R=async()=>{if(n.data){E.value=await v("");return}await j()},H=async()=>{if(a.value==null||a.value===""){i.value=null,D(null);return}const ee=E.value.find(me=>me.id?.toString()===String(a.value));if(ee){i.value=ee,D(ee);return}i.value=await T(a.value),D(i.value??null)},Z=async()=>{c.value||(d.value=!0,await e.nextTick(),oe(),await R(),await e.nextTick(),oe())},ae=()=>{d.value=!1},O=async()=>{if(d.value){ae();return}await Z()},A=ee=>{r("value-selected",{name:n.name,value:ee?.id??null,option:ee})},M=ee=>{i.value=ee,a.value=ee.id,r("change",ee.id),A(ee),D(ee),ae()},Q=ee=>{const me=ee.target;h.value?.contains(me)||p.value?.contains(me)||ae()},se=()=>{d.value&&oe()};return e.watch(()=>n.options,ee=>{n.data||(E.value=ee?[...ee]:[],H())},{immediate:!0,deep:!0}),e.watch(a,()=>{H()}),e.watch(V,async()=>{n.data&&(await R(),i.value&&!E.value.some(ee=>ee.id?.toString()===i.value?.id?.toString())&&(i.value=null,a.value=null,r("change",null),A(null),D(null)))}),e.onMounted(async()=>{document.addEventListener("click",Q,!0),window.addEventListener("resize",se),window.addEventListener("scroll",se,!0),await R(),await H()}),e.onUnmounted(()=>{document.removeEventListener("click",Q,!0),window.removeEventListener("resize",se),window.removeEventListener("scroll",se,!0)}),(ee,me)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:h,onClick:me[0]||(me[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:g,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",I.value?`${I.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:O},[e.createElementVNode("span",Bd,e.toDisplayString(b.value),1)],10,Ed),(e.openBlock(),e.createBlock(e.Teleport,{to:N.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:p,class:"z-[3000] w-44 transition-[opacity,margin] duration-150 bg-white text-gray-900 border border-gray-200 rounded-xl shadow-lg",style:e.normalizeStyle(f.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",Vd,[e.createElementVNode("span",Sd,[e.createElementVNode("span",$d,e.toDisplayString(k.value),1)])]),e.createElementVNode("div",Ad,[e.createElementVNode("div",Nd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),ke=>(e.openBlock(),e.createElementBlock("label",{key:ke.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(ge=>M(ke),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:m,checked:U(ke.id),tabindex:"-1"},null,8,Fd),e.createElementVNode("span",Dd,[G(ke)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:ke.color})},null,4)):(e.openBlock(),e.createElementBlock("span",Td))]),e.createElementVNode("span",Ld,e.toDisplayString(q(ke)),1),e.createVNode(e.unref(X.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",U(ke.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,Md))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Id,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),Od=["placeholder","disabled"],Ar=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}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value,disabled:a.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,Od)),[[e.vModelText,r.value]])}}),Nr=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(()=>pb)),n=o,r=e.useModel(o,"modelValue"),a=e.computed(()=>!!n.disabled),l=e.computed(()=>n.placeholder??""),s=e.computed(()=>({height:n.richtextProps.height||"300px",format:n.format,...n.richtextProps}));return(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full overflow-hidden rounded-md border border-solid border-stone-200 disabled:opacity-50 disabled:cursor-not-allowed",c.customClass]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value},s.value),null,16,["modelValue","placeholder"])],6))}}),Pd={},Rd={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function zd(o,t){return e.openBlock(),e.createElementBlock("svg",Rd,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 jd=Ce(Pd,[["render",zd]]),Ud={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},Hd={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"},qd={key:0,class:"relative flex-1 min-w-0"},Wd={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},Kd={class:"w-full overflow-x-auto"},Gd={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Yd={class:"bg-gray-50"},Xd={class:"border-b border-gray-200"},Zd={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Jd=["onClick"],Qd={key:0,class:"text-gray-400"},eu={key:0,colspan:"100%",class:"text-center"},tu={class:"w-full"},nu={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},ou=["data-row-index","onDragstart","onDragover","onDrop"],ru=["onPointerdown"],lu={class:"flex items-center justify-center"},au=["innerHTML"],su={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},iu={key:0},cu=["src"],du={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},uu={key:1,class:"flex items-center justify-center"},pu=["innerHTML"],mu={key:3,class:"text-sm font-medium text-gray-900"},fu={class:"px-4 py-3 text-right whitespace-nowrap"},hu={class:"flex items-center justify-end gap-2"},gu=["onClick"],yu=["onClick"],bu={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},Mr=Ce(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=e.inject("values",null),a=e.inject("form-root-values",null),l=z=>t.actions===void 0?!0:t.actions.includes(z),s=["search","import","export","add"],c=e.computed(()=>s.some(z=>l(z))),i=e.useModel(o,"modelValue"),d=e.ref({}),h=e.ref(""),g=e.ref(null),p=e.ref("asc"),f=e.computed(()=>{const z=i.value??[],J=h.value?z.filter(w=>m.value?.some(S=>{const P=S.key||S.name;if(!P)return!1;const le=w[P];return le?Array.isArray(le)?le.join(", ").toLowerCase().includes(h.value.toLowerCase()):String(le).toLowerCase().includes(h.value.toLowerCase()):!1})):z;if(!g.value)return J;const ie=g.value,F=[...J].sort((w,S)=>{const P=$e(w?.[ie]),le=$e(S?.[ie]);return typeof P=="number"&&typeof le=="number"?P-le:String(P).localeCompare(String(le))});return p.value==="asc"?F:F.reverse()}),m=e.computed(()=>(t.colModel??[]).filter(z=>!z.tableHidden)),k=e.ref(null),b=e.ref(null),_=e.ref(null);function C(z){return z.pointerType==="touch"||z.pointerType==="pen"}function N(z,J){const F=document.elementFromPoint(z,J)?.closest?.("[data-row-index]")??null;if(!F)return null;const w=F.getAttribute("data-row-index");if(w==null)return null;const S=Number.parseInt(w,10);return Number.isNaN(S)?null:S}function $(z,J){C(z)&&(z.preventDefault(),z.currentTarget.setPointerCapture(z.pointerId),k.value=J,b.value=J)}function q(z){if(k.value===null||!C(z))return;z.preventDefault();const J=N(z.clientX,z.clientY);J!==null&&(b.value=J)}function G(z){if(k.value===null||!C(z))return;z.preventDefault();const J=N(z.clientX,z.clientY);v(J??k.value);try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}function I(z){if(C(z)){k.value=null,b.value=null;try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}}const E=z=>{k.value=z},V=z=>{b.value=z},v=z=>{if(k.value===null||k.value===z){k.value=null,b.value=null;return}const J=[...i.value],[ie]=J.splice(k.value,1);J.splice(z,0,ie),i.value=J,k.value=null,b.value=null},T=()=>{_.value&&_.value.click()},j=z=>{const J=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],ie=z.toLowerCase();return J.some(F=>ie.endsWith(F))},te=z=>{const ie=z.target.files?.[0];if(!ie)return;const F=new FileReader;F.onload=w=>{try{const S=w.target?.result;if(typeof S=="string"){const P=JSON.parse(S);Array.isArray(P)&&i.value.push(...P)}}catch(S){console.error("Error parsing file:",S)}},F.readAsText(ie)},D=()=>{const z=JSON.stringify(i.value,null,2),J=new Blob([z],{type:"application/json"}),ie=URL.createObjectURL(J),F=document.createElement("a");F.href=ie,F.download="data.json",F.click(),URL.revokeObjectURL(ie)},U=new Set(["autocomplete","select","radio","checkbox","combobox"]),oe=new Map,R=(z,J)=>{const ie=`/api/suggest/${z}`,F=ie.includes("?")?"&":"?",w=J?`&val=${J}`:"";return`${ie}${F}json=1${w}`},H=z=>z==null||z===""?null:typeof z=="object"?z?.id!==void 0&&z.id!==null&&z.id!==""?z.id:null:z,Z=z=>{const J=new Set;return Array.isArray(i.value)&&i.value.forEach(ie=>{const F=ie?.[z];if(F==null||F==="")return;if(Array.isArray(F)){F.forEach(S=>{const P=H(S);P!==null&&J.add(P)});return}const w=H(F);w!==null&&J.add(w)}),J},ae=async()=>{if(!t.colModel?.length)return;const z=t.colModel.filter(J=>J.data&&U.has(J.type?.toLowerCase()||""));z.length&&await Promise.all(z.map(async J=>{const ie=J.key||J.name;if(!ie)return;const F=Z(ie),w=Array.from(F).map(le=>String(le)).sort(),S=w.join(",");if(!w.length||oe.get(ie)===S)return;oe.set(ie,S);const P=w.map(encodeURIComponent).join(",");try{const we=await(await fetch(R(J.data,P))).json();d.value[ie]=we?.data??we}catch(le){console.error("Failed to fetch column values",le)}}))};e.watch([()=>t.colModel,()=>i.value],()=>{ae()},{immediate:!0,deep:!0});const O=e.ref(""),A=e.ref(!1);let M="edit",Q=0;const se=z=>(z?.format||z?.type||"").toString().toLowerCase(),ee=e.computed(()=>(t.colModel?.filter(J=>se(J)!=="slot")??[]).map(J=>{const ie=J.key||J.name;return ie?{...J,name:ie,key:ie}:J})),me=e.ref({}),ke=e.ref({}),ge=z=>typeof z!="string"?!1:!!n[z],Se=(z,J)=>J?J.split(".").reduce((ie,F)=>ie==null?ie:ie[F.trim()],z):z,Ne=(z,J)=>typeof z!="string"?"":z.replace(/{{\s*([^}]+)\s*}}/g,(ie,F)=>{const w=Se(J,F.trim());return w??""}),$e=z=>{if(z==null||z==="")return"";if(typeof z=="number")return z;if(typeof z=="boolean")return z?1:0;if(typeof z=="string")return z.toLowerCase();if(Array.isArray(z))return z.map(J=>$e(J)).join(", ");if(typeof z=="object"){if(z.text!==void 0)return String(z.text).toLowerCase();if(z.label!==void 0)return String(z.label).toLowerCase();if(z.id!==void 0)return String(z.id).toLowerCase()}return String(z).toLowerCase()},Oe=z=>{const J=z.key||z.name;if(J){if(g.value===J){p.value=p.value==="asc"?"desc":"asc";return}g.value=J,p.value="asc"}};async function Me(){O.value="Додати",A.value=!0,M="add",me.value=ze({})}function ne(z,J){if(!z?.length)return null;const ie=typeof J=="object"?J?.id:J;if(ie==null||ie==="")return null;const F=z.find(w=>w?.id?.toString()===ie.toString());return F?F.text??F.label??null:null}function de(z){return z==null||z===""?"-":Array.isArray(z)?z.map(J=>typeof J=="object"?J?.text??J?.label??J?.id??"-":J).join(", "):typeof z=="object"?z?.text??z?.label??z?.id??"-":z}function xe(z){const J=z.key||z.name,ie=J?d.value[J]:null;return Array.isArray(ie)&&ie.length?ie:Array.isArray(z?.options)&&z.options.length?z.options:null}function ve(z,J){const ie=J.key||J.name,F=z?.[ie],w=xe(J);if(F==null||F==="")return"-";if(Array.isArray(F)){const P=F.map(le=>ne(w,le)).filter(Boolean);return P.length?P.join(", "):de(F)}const S=ne(w,F);return S||de(F)}function ze(z){const J=r?.value?.content_id??a?.value?.id??a?.value?.content_id??r?.value?.id??null;return{...z,content_id:J}}function Te(z){if(!z||typeof z!="object")return z;const{content_id:J,...ie}=z;return ie}async function Je(z,J){O.value="Редагувати",A.value=!0,M="edit",Q=J,me.value=ze({...z})}function Ae(){const z=ke.value.validate();if(z){he.notify({type:"warning",title:"Помилка валідації",message:Object.entries(z).map(([ie,F])=>`${ie}: ${F}`).join(`
|
|
1
|
+
(function(be,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@opengis/core"),require("lucide-vue-next")):typeof define=="function"&&define.amd?define(["exports","vue","@opengis/core","lucide-vue-next"],e):(be=typeof globalThis<"u"?globalThis:be||self,e(be.FormBuilder={},be.Vue,be.OpenGISCore,be.lucide))})(this,(function(be,e,he,X){"use strict";function _n(o,t,n){if(!Array.isArray(n)||!n.length)return null;const r=String(o?.preset??o?.renderer??"").trim().toLowerCase();if(r){const a=n.find(l=>String(l.id).trim().toLowerCase()===r);if(a)return a}return n.find(a=>typeof a.match=="function"&&a.match(o,t))??null}function nr(o,t,n){return!!_n(o,t,n)}const or=e.defineComponent({__name:"vs-info-tooltip",props:{text:{}},setup(o){const t=o,n=e.ref(!1),r=e.ref({top:"0px",left:"0px"});function a(s){if(!t.text)return;const c=s.currentTarget.getBoundingClientRect();r.value={top:`${c.bottom+4}px`,left:`${Math.min(c.left,window.innerWidth-230)}px`},n.value=!0}function l(){n.value=!1}return(s,c)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("span",{class:"inline-flex items-center",onMouseenter:a,onMouseleave:l},[e.renderSlot(s.$slots,"default",{},()=>[e.createVNode(e.unref(X.Info),{class:"h-4 w-4 text-gray-400 cursor-help"})])],32),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value&&s.text?(e.openBlock(),e.createElementBlock("div",{key:0,style:e.normalizeStyle(r.value),class:"fixed z-[9999] max-w-xs p-2 bg-gray-900 text-white text-xs rounded-lg shadow-lg pointer-events-none"},e.toDisplayString(s.text),5)):e.createCommentVNode("",!0)]))],64))}}),ao={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"}}},so={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:"Скасувати"}}},Jl={class:"w-full relative"},Ql={key:0,class:"text-[14px] font-medium text-gray-900 mb-2 flex items-center gap-1"},ea={class:"opacity-100"},ta={key:0,class:"text-red-500 text-[14px]"},na={key:2,class:"text-[11px] text-slate-500 font-normal"},oa={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ra=e.defineComponent({__name:"vs-layout-default",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.computed(()=>typeof t.item?.label=="string"&&t.item.label?t.item.label:t.item?.ua||t.label||t.ua),r=e.computed(()=>!!n.value),a=e.computed(()=>!!t.item?.rules?.includes("required")),l=e.computed(()=>t.item?.info||""),s=e.inject("schema-by-name"),c={en:ao?.form?.autofillFrom,uk:so?.form?.autofillFrom},i=e.computed(()=>{const d=t.item?.__autoMeta;if(!d||d?.source!=="parent-auto"||!d?.parentField)return"";const h=String(t.item?.__locale||"uk"),g=String(d.parentField),p=s?.value?.[g],f=p?.[`label:${h}`]||(h!=="uk"?p?.[h]:void 0)||p?.label||p?.ua||p?.en||g;return`${c[h]||c.uk}: ${f}`});return(d,h)=>(e.openBlock(),e.createElementBlock("div",Jl,[r.value?(e.openBlock(),e.createElementBlock("div",Ql,[e.createElementVNode("span",ea,e.toDisplayString(n.value),1),a.value?(e.openBlock(),e.createElementBlock("span",ta,"*")):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(or,{key:1,text:l.value},null,8,["text"])):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",na," ("+e.toDisplayString(i.value)+") ",1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.mergeProps(d.$attrs,{class:{"opacity-60":d.item.disabled}})),d.error?(e.openBlock(),e.createElementBlock("span",oa,e.toDisplayString(d.error),1)):e.createCommentVNode("",!0)]))}}),la={class:"w-full relative flex flex-row items-center gap-2"},aa={key:0,class:"text-red-500 text-[14px]"},sa={key:2,class:"text-[11px] text-slate-500 font-normal"},ia={key:1,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},ca=e.defineComponent({__name:"vs-layout-horizontal",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{default:()=>({container:12,label:3})}},setup(o){const t=o,n=e.computed(()=>t.item?.label||t.label||t.ua),r=e.computed(()=>t.item?.info||""),a=e.inject("schema-by-name"),l={en:ao?.form?.autofillFrom,uk:so?.form?.autofillFrom},s=e.computed(()=>{const p=t.item?.__autoMeta;if(!p||p?.source!=="parent-auto"||!p?.parentField)return"";const f=String(t.item?.__locale||"uk"),m=String(p.parentField),k=a?.value?.[m],b=k?.[`label:${f}`]||(f!=="uk"?k?.[f]:void 0)||k?.label||k?.ua||k?.en||m;return`${l[f]||l.uk}: ${b}`}),c=e.computed(()=>t.columns??{container:12,label:3}),i=e.computed(()=>{const{container:p,label:f}=c.value;return!p||p<=0?0:Math.min(Math.max(f??0,0),p)/p}),d=e.computed(()=>t.item?.type==="html"||i.value<=0?!1:!!n.value),h=e.computed(()=>{if(!d.value)return{};const p=`${i.value*100}%`;return{flexBasis:p,maxWidth:p}}),g=e.computed(()=>{const{container:p,label:f}=c.value;if(!p||p<=0)return{};if(t.item?.type==="html")return{flexBasis:"100%",maxWidth:"100%"};if(!d.value)return{flexBasis:"100%",maxWidth:"100%"};const m=Math.max(p-Math.max(f??0,0),0)/p;if(!m)return{};const k=`${m*100}%`;return{flexBasis:k,maxWidth:k}});return(p,f)=>(e.openBlock(),e.createElementBlock("div",la,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"text-sm text-gray-900 font-medium flex shrink-0 items-center gap-1",style:e.normalizeStyle(h.value)},[e.createTextVNode(e.toDisplayString(n.value)+" ",1),p.item?.rules?.includes("required")&&n.value?(e.openBlock(),e.createElementBlock("span",aa,"*")):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createBlock(or,{key:1,text:r.value},null,8,["text"])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("span",sa," ("+e.toDisplayString(s.value)+") ",1)):e.createCommentVNode("",!0)],4)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"flex-1 min-w-0",style:e.normalizeStyle(g.value)},[e.renderSlot(p.$slots,"default",e.normalizeProps(e.guardReactiveProps(p.$attrs)))],4),p.error?(e.openBlock(),e.createElementBlock("span",ia,e.toDisplayString(p.error),1)):e.createCommentVNode("",!0)]))}}),da={class:"w-full relative"},ua={key:0,class:"text-red-500 text-[10px] absolute bottom-[-14px]"},pa=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",da,[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(t.$attrs))),t.error?(e.openBlock(),e.createElementBlock("span",ua,e.toDisplayString(t.error),1)):e.createCommentVNode("",!0)]))}}),ma={class:"flex-1 min-w-0"},fa={key:0,class:"text-sm font-medium text-slate-700 dark:text-slate-200 flex items-center gap-1"},ha={class:"truncate"},ga={key:0,class:"text-red-500 text-[14px]"},ya=["innerHTML"],ba={key:0,class:"mt-1 text-xs text-red-500"},ka={default:ra,horizontal:ca,inline:pa,settings:e.defineComponent({__name:"vs-layout-settings",props:{ua:{default:""},uk:{},en:{},de:{},es:{},fr:{},item:{default:()=>({})},error:{type:[String,Boolean],default:""},label:{default:""},columns:{}},setup(o){const t=o,n=e.ref("uk");e.computed(()=>(t.item??{})?.[n.value]??t.ua??t.label??"");const r=e.computed(()=>t.item?.description??""),a=e.computed(()=>Array.isArray(t.item?.rules)&&t.item.rules.includes("required")),l=e.computed(()=>(typeof t.error=="string"?t.error:"")??""),s=()=>{const c=typeof localStorage<"u"?localStorage.getItem("locale"):null;n.value=c||"uk"};return e.onMounted(()=>{try{typeof localStorage<"u"&&localStorage.locale&&(n.value=localStorage.locale)}catch{}window.addEventListener("storage",s)}),e.onUnmounted(()=>{window.removeEventListener("storage",s)}),(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["w-full relative",{"opacity-60":c.item?.disabled}])},[e.createElementVNode("div",{class:e.normalizeClass(["gap-2 md:flex-row md:items-center md:justify-between",[["switcher","native-select"].includes(c.item.type)?"flex flex-col":""]])},[e.createElementVNode("div",ma,[c.ua||c.label?(e.openBlock(),e.createElementBlock("p",fa,[e.createElementVNode("span",ha,e.toDisplayString(c.item[n.value]||c.ua||c.label),1),a.value?(e.openBlock(),e.createElementBlock("span",ga,"*")):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,ya)):e.createCommentVNode("",!0)]),e.createElementVNode("div",{class:e.normalizeClass(["w-full",["select","native-select"].includes(c.item.type)?"md:w-[30%]":"md:w-auto"])},[e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(c.$attrs)))],2)],2),l.value?(e.openBlock(),e.createElementBlock("p",ba,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)],2))}})};function Qe(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 wa=["placeholder","disabled"],xa=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}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");return(s,c)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"password","onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),placeholder:l.value,disabled:a.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":s.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,wa)),[[e.vModelText,r.value]])}}),va=["placeholder","disabled","maxlength","minlength"],Yt=e.defineComponent({__name:"vs-input-text",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:null},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.computed({get:()=>r.value??"",set:h=>{r.value=h===""?null:h}}),l=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),c=e.computed(()=>t.maxlength??void 0),i=e.computed(()=>t.minlength??void 0);function d(){if(typeof r.value=="string"){const h=r.value.trim();r.value=h===""?null:h}}return(h,g)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"text","onUpdate:modelValue":g[0]||(g[0]=p=>a.value=p),placeholder:s.value,disabled:l.value,maxlength:c.value,minlength:i.value,onBlur:d,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[h.customClass,e.unref(n),{"!border-red-600":h.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,va)),[[e.vModelText,a.value]])}}),_a=["step","placeholder","disabled","min","max"],rr=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}=Qe(t.style),r=e.useAttrs(),a=e.useModel(o,"modelValue"),l=e.computed(()=>!!t.disabled),s=h=>{if(h==null||h==="")return;const g=typeof h=="string"?h.trim().replace(",","."):h,p=Number(g);return Number.isFinite(p)?p:void 0},c=e.computed(()=>s(t.min??r.min)),i=e.computed(()=>s(t.max??r.max)),d=e.computed(()=>{if(t.step!==void 0&&t.step!==null&&t.step!=="")return t.step;const h=r.step;return typeof h=="number"||typeof h=="string"?h:"any"});return(h,g)=>e.withDirectives((e.openBlock(),e.createElementBlock("input",{type:"number",step:d.value,"onUpdate:modelValue":g[0]||(g[0]=p=>a.value=p),placeholder:o.placeholder,disabled:l.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"},min:c.value,max:i.value},null,10,_a)),[[e.vModelText,a.value]])}}),Cn=o=>!!String(o??"").trim(),Dt=o=>o?.color?String(o.color):"",on=o=>{const t=o?.icon;if(typeof t=="string")return t;const n=o?.imgUrl;return typeof n=="string"?n:""},rn=o=>{const t=o?.icon;return t&&typeof t!="string"?t:null},Ca={class:"flex items-center gap-[4px]"},Ea=["value","id","disabled"],Ba=["for"],Va=["innerHTML"],Sa={key:1,class:"text-[14px] text-gray-700 flex items-center gap-2 dark:text-neutral-400"},$a=["src"],Aa=e.defineComponent({__name:"vs-checkbox-default",props:{value:{default:""},label:{default:""},html:{default:""},disabled:{type:Boolean,default:!1},id:{},modelValue:{default:""},info:{},error:{},option:{default:null}},emits:["update:modelValue"],setup(o,{emit:t}){const n=t,r=o,a=e.computed({get:()=>r.modelValue,set:f=>n("update:modelValue",f)}),l=e.computed(()=>!!r.disabled),s=e.computed(()=>on(r.option)),c=e.computed(()=>rn(r.option)),i=e.computed(()=>Dt(r.option)),d=e.computed(()=>!!(i.value&&!s.value&&!c.value)),h=e.computed(()=>!!(s.value&&i.value)),g=e.computed(()=>i.value?{color:i.value}:void 0),p=e.computed(()=>{if(!(!s.value||!i.value))return{backgroundColor:i.value,WebkitMaskImage:`url(${s.value})`,maskImage:`url(${s.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(f,m)=>(e.openBlock(),e.createElementBlock("div",Ca,[e.withDirectives(e.createElementVNode("input",{type:"checkbox",value:f.value,"onUpdate:modelValue":m[0]||(m[0]=k=>a.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":l.value}]),id:f.id,disabled:l.value},null,10,Ea),[[e.vModelCheckbox,a.value]]),e.createElementVNode("label",{for:f.id,class:e.normalizeClass(["flex flex-1 checkbox-label items-center gap-x-2 cursor-pointer text-sm text-gray-800 dark:text-neutral-300",{"!cursor-not-allowed":l.value}])},[e.createElementVNode("div",{class:e.normalizeClass(["h-[16px] text-white w-[16px] flex items-center justify-center shrink-0 border rounded",[a.value?"bg-blue-600 border-blue-600":"bg-white border-gray-600",f.error?"border-red-600":""]])},[e.createVNode(e.unref(X.Check),{class:"h-4 w-4"})],2),f.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:f.html},null,8,Va)):(e.openBlock(),e.createElementBlock("span",Sa,[d.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:i.value})},null,4)):e.createCommentVNode("",!0),h.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(p.value)},null,4)):s.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:s.value,alt:"icon"},null,8,$a)):c.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(g.value)},null,8,["style"])):e.createCommentVNode("",!0),e.renderSlot(f.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(f.label),1)])]))],10,Ba)]))}}),Na=["name","value","disabled"],Ma=["innerHTML"],Fa={key:1,class:"flex items-center gap-[6px] text-[14px]"},Da={key:2,class:"text-[16px] inline-flex items-center justify-center"},Ta=["src"],La=e.defineComponent({__name:"vs-checkbox-buttons",props:{value:{type:[String,Number,Boolean],default:""},label:{default:""},html:{default:""},modelValue:{default:""},disabled:{type:Boolean},id:{},icon:{},imgUrl:{},style:{},option:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=e.computed({get:()=>n.modelValue,set:k=>{r("update:modelValue",k)}}),l=e.computed(()=>Array.isArray(a.value)?a.value.includes(n.value):a.value===!0||a.value===n.value),s=e.computed(()=>n.style?.size==="xs"?"p-1.5 text-xs":n.style?.size==="lg"?"p-3.5 text-[20px]":"p-2.5 text-xs"),c=e.computed(()=>({...n.option??{},icon:n.option?.icon??n.icon,imgUrl:n.option?.imgUrl??n.imgUrl,color:n.option?.color})),i=e.computed(()=>on(c.value)),d=e.computed(()=>rn(c.value)),h=e.computed(()=>Dt(c.value)),g=e.computed(()=>!!(h.value&&!i.value&&!d.value)),p=e.computed(()=>!!(i.value&&h.value)),f=e.computed(()=>h.value?{color:h.value}:void 0),m=e.computed(()=>{if(!(!i.value||!h.value))return{backgroundColor:h.value,WebkitMaskImage:`url(${i.value})`,maskImage:`url(${i.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(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,l.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]=_=>a.value=_),disabled:k.disabled},null,8,Na),[[e.vModelCheckbox,a.value]]),k.html?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-full",innerHTML:k.html},null,8,Ma)):(e.openBlock(),e.createElementBlock("span",Fa,[g.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:h.value})},null,4)):e.createCommentVNode("",!0),p.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(m.value)},null,4)):i.value||d.value?(e.openBlock(),e.createElementBlock("span",Da,[i.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:i.value,width:"16",height:"16",alt:"icon"},null,8,Ta)):d.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d.value),{key:1,class:"h-4 w-4",style:e.normalizeStyle(f.value)},null,8,["style"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.renderSlot(k.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(k.label),1)])]))],2))}}),Ia={class:"flex items-center"},io=e.defineComponent({__name:"vs-input-checkbox-item",props:{value:{default:""},label:{default:""},labelHtml:{default:""},disabled:{type:Boolean,default:!1},view:{default:"default"},modelValue:{type:[Boolean,Array],default:!1},icon:{},imgUrl:{},slots:{},option:{},style:{},error:{default:""}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=`radio-${Math.floor(Math.random()*1e4)}`,l=e.computed({get:()=>Array.isArray(n.modelValue)?Array.isArray(n.modelValue)&&n.modelValue.includes(n.value):n.modelValue,set:c=>{if(Array.isArray(n.modelValue)){let i=[...n.modelValue];c?i.includes(n.value)||i.push(n.value):i=i.filter(d=>d!==n.value),r("update:modelValue",i)}else r("update:modelValue",c)}}),s=e.ref(`vs-checkbox-${n.view||"default"}`);return(c,i)=>(e.openBlock(),e.createElementBlock("div",Ia,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value==="vs-checkbox-buttons"?e.unref(La):e.unref(Aa)),{value:c.value,label:c.label,html:c.labelHtml,info:c.option?.info,disabled:c.disabled,modelValue:l.value,"onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),id:a,icon:c.icon,imgUrl:c.imgUrl,option:c.option,style:e.normalizeStyle(c.style),error:c.error},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:1},8,["value","label","html","info","disabled","modelValue","icon","imgUrl","option","style","error"]))]))}}),Oa={key:0,class:"flex items-start gap-x-1"},Pa={key:0,class:"text-red-500 text-[14px]"},Ra=["title"],za=["disabled"],co=e.defineComponent({__name:"vs-input-switcher",props:e.mergeModels({rules:{default:()=>[]},view:{default:"checkbox"},label:{default:""},i:{default:""},text:{default:""},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue");return(r,a)=>t.view==="checkbox"?(e.openBlock(),e.createElementBlock("div",Oa,[e.createVNode(io,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),error:r.error||""},null,8,["modelValue","error"]),r.rules?.includes("required")?(e.openBlock(),e.createElementBlock("span",Pa,"*")):e.createCommentVNode("",!0),r.i?(e.openBlock(),e.createElementBlock("button",{key:1,class:"cursor-pointer",title:r.i,onClick:a[1]||(a[1]=e.withModifiers(()=>{},["prevent"]))},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4 text-gray-500"})],8,Ra)):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass(["inline-flex h-5 w-9 shrink-0 px-[2px] cursor-pointer items-center rounded-full shadow-sm disabled:cursor-not-allowed disabled:opacity-50",[n.value?`bg-${r.style?.primaryColor||"blue"}-500`:"bg-stone-200",r.customClass]]),disabled:r.disabled,onClick:a[2]||(a[2]=l=>n.value=!n.value)},[e.createElementVNode("span",{"data-state":"checked",class:e.normalizeClass(["pointer-events-none block h-4 w-4 rounded-full bg-white shadow-lg ring-0 transition-transform",[n.value?"translate-x-4":"translate-x-0"]])},null,2)],10,za))}}),ja=["id","innerHTML"],uo=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,ja))}}),Ua=["placeholder","disabled","name"],En=e.defineComponent({__name:"vs-input-mask",props:e.mergeModels({name:{},mask:{default:""},unmask:{type:Boolean,default:!1},placeholder:{default:"_"},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,{inputClass:n}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.ref(null);let l=null;function s(c){const i=c==null?"":String(c),d={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},h=new Set;let g=!1;for(let f=0;f<i.length;f+=1){const m=i[f];m==="{"?g=!0:m==="}"?g=!1:g&&h.add(m)}const p={};return Object.keys(d).forEach(f=>{h.has(f)||(p[f]=d[f])}),{mask:i,definitions:p,lazy:!1}}return e.onMounted(async()=>{if(a.value){const{default:c}=await Promise.resolve().then(()=>Qn),i=s(t.mask||"");l=c(a.value,i),l.on("accept",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.on("complete",()=>{r.value=t.unmask?l.unmaskedValue:l.value}),l.value=r.value!=null?String(r.value):""}}),e.onBeforeUnmount(()=>{l?.destroy()}),e.watch(()=>t.mask,c=>{if(l){const i=s(c||"");l.updateOptions(i)}}),e.watch(r,c=>{l&&l.unmaskedValue!==c&&(l.value=c!=null?String(c):"")}),(c,i)=>(e.openBlock(),e.createElementBlock("input",{type:"text",ref_key:"inputEl",ref:a,placeholder:c.placeholder,disabled:c.disabled,name:c.name,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,10,Ua))}}),Ha={class:"relative w-full bg-white rounded-lg"},qa={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] cursor-pointer"},Wa=["placeholder","disabled"],po=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}=Qe(t.style),r=e.useModel(o,"modelValue");return(a,l)=>(e.openBlock(),e.createElementBlock("div",Ha,[e.createElementVNode("div",qa,[e.createVNode(e.unref(X.Mail),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.withDirectives(e.createElementVNode("input",{type:"email","onUpdate:modelValue":l[0]||(l[0]=s=>r.value=s),placeholder:a.placeholder,disabled:a.disabled,class:e.normalizeClass(["!pl-8 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(n),{"!border-red-600":a.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Wa),[[e.vModelText,r.value]])]))}}),Et="+99(999)-999-99-99";function Tt(o){if(!o?.trim())return 0;const t=new Set(["9","0","a","A","*"]);let n=!1,r=0;for(let a=0;a<o.length;a+=1){const l=o[a];if(l==="{"){n=!0;continue}if(l==="}"){n=!1;continue}!n&&t.has(l)&&(r+=1)}return r}const Ka={class:"relative w-full bg-white rounded-lg"},Ga={class:"absolute bottom-2/4 translate-y-2/4 left-[10px] pointer-events-none"},Ya=["name","placeholder","disabled","pattern"],mo=e.defineComponent({__name:"vs-input-tel",props:e.mergeModels({style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:null},name:{},placeholder:{default:""},maxlength:{},minlength:{},mask:{default:Et}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.computed(()=>`^\\+[1-9]\\d{${(Tt(t.mask||Et)||Tt(Et))-1}}$`),{inputClass:r}=Qe(t.style),a=e.useModel(o,"modelValue"),l=e.ref(null);let s=null;function c(h){const g={9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},p=new Set;let f=!1;for(let k=0;k<h.length;k+=1){const b=h[k];b==="{"?f=!0:b==="}"?f=!1:f&&p.add(b)}const m={};return Object.keys(g).forEach(k=>{p.has(k)||(m[k]=g[k])}),{mask:h,definitions:m,lazy:!1,disabled:t.disabled}}function i(h){if(h==null||h==="")return"";const g=String(h).trim();return g?g.replace(/\D/g,""):""}function d(){if(!s)return;const h=s.unmaskedValue??"";a.value=h?`+${h}`:""}return e.onMounted(async()=>{if(!l.value)return;const{default:h}=await Promise.resolve().then(()=>Qn),g=c(t.mask||"");s=h(l.value,g),s.on("accept",d),s.on("complete",d);const p=i(a.value);s.unmaskedValue=p}),e.onBeforeUnmount(()=>{s?.destroy(),s=null}),e.watch(()=>t.mask,h=>{s&&s.updateOptions(c(h||""))}),e.watch(()=>t.disabled,h=>{s&&s.updateOptions({disabled:h})}),e.watch(a,h=>{if(!s)return;const g=i(h);s.unmaskedValue!==g&&(s.unmaskedValue=g)}),(h,g)=>(e.openBlock(),e.createElementBlock("div",Ka,[e.createElementVNode("div",Ga,[e.createVNode(e.unref(X.Phone),{class:"h-4 w-4 stroke-gray-500 transition-all"})]),e.createElementVNode("input",{ref_key:"inputEl",ref:l,type:"tel",name:h.name,placeholder:h.placeholder,disabled:h.disabled,pattern:n.value,title:"Міжнародний номер (E.164), наприклад +380XXXXXXXXX",autocomplete:"tel",class:e.normalizeClass(["!pl-10 py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(r),{"!border-red-600":h.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,Ya)]))}}),Xa=["value","disabled"],Za=["innerHTML"],Ja={key:1,class:"flex items-center gap-2"},Qa=["src"],es={class:"text-[13px] text-gray-700"},ts=e.defineComponent({__name:"vs-input-radio-default",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(g,p)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex items-center gap-0",[t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=f=>n.value=f),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,Xa),[[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,Za)):(e.openBlock(),e.createElementBlock("div",Ja,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,Qa)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",es,e.toDisplayString(t.text),1)]))],2))}}),ns=["value","disabled"],os=["innerHTML"],rs={key:1,class:"flex items-center gap-2"},ls=["src"],as={class:"text-[13px] text-gray-700"},ss={"vs-input-radio-default":ts,"vs-input-radio-buttons":e.defineComponent({__name:"vs-input-radio-buttons",props:e.mergeModels({style:{},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{},value:{},text:{},html:{default:""},option:{default:null}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.computed(()=>!!t.disabled),a=e.computed(()=>on(t.option)),l=e.computed(()=>rn(t.option)),s=e.computed(()=>Dt(t.option)),c=e.computed(()=>!!(s.value&&!a.value&&!l.value)),i=e.computed(()=>!!(a.value&&s.value)),d=e.computed(()=>s.value?{color:s.value}:void 0),h=e.computed(()=>{if(!(!a.value||!s.value))return{backgroundColor:s.value,WebkitMaskImage:`url(${a.value})`,maskImage:`url(${a.value})`,WebkitMaskRepeat:"no-repeat",maskRepeat:"no-repeat",WebkitMaskSize:"contain",maskSize:"contain",WebkitMaskPosition:"center",maskPosition:"center"}});return(g,p)=>(e.openBlock(),e.createElementBlock("label",{class:e.normalizeClass(["flex h-full w-full items-center border rounded-lg px-2 py-1",[n.value==t.value?`ring-2 ring-ring ring-${t.style?.primaryColor||"blue"}-500`:"",t.customClass,r.value?"cursor-not-allowed opacity-60":""]])},[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":p[0]||(p[0]=f=>n.value=f),type:"radio",value:t.value,disabled:r.value,class:"hidden"},null,8,ns),[[e.vModelRadio,n.value]]),t.html?(e.openBlock(),e.createElementBlock("div",{key:0,class:"w-full",innerHTML:t.html},null,8,os)):(e.openBlock(),e.createElementBlock("div",rs,[c.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:"inline-flex h-3 w-3 rounded-full border border-gray-200",style:e.normalizeStyle({background:s.value})},null,4)):e.createCommentVNode("",!0),i.value?(e.openBlock(),e.createElementBlock("span",{key:1,class:"inline-block h-4 w-4",style:e.normalizeStyle(h.value)},null,4)):a.value?(e.openBlock(),e.createElementBlock("img",{key:2,class:"block",height:"16",width:"16",src:a.value,alt:"icon"},null,8,ls)):l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:3,class:"h-4 w-4",style:e.normalizeStyle(d.value)},null,8,["style"])):e.createCommentVNode("",!0),e.createElementVNode("span",as,e.toDisplayString(t.text),1)]))],2))}})},lr=o=>Array.isArray(o)?o:Array.isArray(o?.data)?o.data:[],ar=o=>{const t=o.host??"",n=o.prefix??"api",r=o.api??`/${n}/suggest/${o.data}`;return`${t}${r}`},is=o=>({fetchOptions:async(r="")=>{const a=o();if(!a.data)return a.options?[...a.options]:[];try{const l=new URLSearchParams;l.set("json","1"),r&&l.set("key",r),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${ar(a)}?${l.toString()}`)).json();return lr(c)}catch{return[]}},fetchOptionByValue:async r=>{if(r==null||r==="")return null;const a=o();if(!a.data)return(a.options??[]).find(s=>s?.id?.toString()===String(r))??null;try{const l=new URLSearchParams;l.set("json","1"),l.set("val",String(r)),a.parentValue!==void 0&&a.parentValue!==null&&a.parentValue!==""&&l.set("parent",String(a.parentValue)),a.start===1&&l.set("start","1");const c=await(await fetch(`${ar(a)}?${l.toString()}`)).json();return lr(c)[0]??null}catch{return null}}}),Bn=({props:o,formValues:t=null,watchParent:n=!0})=>{const r=e.ref([]),a=e.computed(()=>o.parent?t?.value?.[o.parent]?.toString?.()??null:null),{fetchOptions:l,fetchOptionByValue:s}=is(()=>({data:o.data,options:o.options,api:o.api,prefix:o.prefix,host:o.host,start:o.start,parentValue:a.value})),c=async(i="")=>{const d=o.data?await l(i):o.options?[...o.options]:[];return r.value=d,r.value};return e.watch(()=>o.options,()=>{o.data||(r.value=o.options?[...o.options]:[])},{immediate:!0,deep:!0}),n&&e.watch(a,async()=>{o.data&&(r.value=await l())},{immediate:!1}),{optionsList:r,parentValue:a,fetchOptions:l,fetchOptionByValue:s,loadOptions:c}},cs=/\{\{\s*([^}]+?)\s*\}\}/g,ds=o=>(o?String(o):"").replace(/<[^>]*>/g,"").trim(),us=(o,t)=>t.split(".").reduce((n,r)=>n==null?n:n[r.trim()],o),Vn=(o,t)=>{if(!o)return"";const n=(t??"").trim();return n?n.replace(cs,(r,a)=>{const l=String(a).trim(),s=o,i=(l.includes(".")?us(s,l):void 0)??s[l];return i!=null?String(i):""}):o.text??""},Sn=(o,t)=>{if(!o)return"";const n=Vn(o,t);return ds(n)||o.text||""},fo=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(()=>ss[`vs-input-radio-${t.view}`]),a=e.computed(()=>t.slot??t?.optionTemplate??""),l=e.computed(()=>Cn(a.value)),s=f=>Vn(f,a.value),c=f=>Sn(f,a.value),i=e.computed(()=>t.position==="horizontal"?"flex w-full flex-row flex-wrap gap-[10px]":"flex w-full flex-col gap-2"),d=e.computed(()=>{if(t.position==="horizontal"&&t.customClass?.includes("50%"))return{flex:"0 0 calc(50% - 5px)"}}),h=e.inject("values",null),{optionsList:g,loadOptions:p}=Bn({props:t,formValues:h});return e.onMounted(async()=>{await p()}),(f,m)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(i.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),k=>(e.openBlock(),e.createElementBlock("div",{key:k?.id,class:e.normalizeClass(["flex items-stretch",f.position==="horizontal"?t.customClass:""]),style:e.normalizeStyle(d.value)},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),e.mergeProps({text:c(k),html:l.value?s(k):"",option:k,value:k.id.toString(),checked:n.value?.toString?.()===k.id?.toString?.(),"custom-class":f.position==="horizontal"?"":t.customClass,modelValue:n.value,"onUpdate:modelValue":m[0]||(m[0]=b=>n.value=b)},{ref_for:!0},f.$attrs),null,16,["text","html","option","value","checked","custom-class","modelValue"]))],6))),128))],2))}}),ps={key:1,class:"w-full flex flex-col gap-4"},ms={key:0,class:"text-sm font-medium text-muted-foreground my-2"},fs="Без категорії",hs=e.defineComponent({__name:"vs-input-checkbox",props:{options:{default:()=>[]},position:{default:"vertical"},slots:{default:null},slot:{},colSpan:{default:0},data:{},api:{},prefix:{},host:{},start:{},parent:{},view:{},group:{default:void 0},values:{default:()=>[]},style:{},customClass:{},disabled:{type:Boolean},modelValue:{default:!1},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update:modelValue"],setup(o,{emit:t}){const n=o,r=t,a=e.reactive({}),l=e.inject("values",null),{optionsList:s,loadOptions:c}=Bn({props:{...n,options:n.options},formValues:l}),i=e.computed(()=>s.value),d=C=>C?.value||C?.id||C?.text||C,h=e.computed(()=>n.slot??n?.optionTemplate??""),g=e.computed(()=>Cn(h.value)),p=C=>Vn(C,h.value),f=C=>Sn(C,h.value),m=C=>`lg:col-span-${C||12}`,k=e.computed(()=>[n.position==="vertical"?"flex flex-col":"",n.colSpan?"grid":"flex justify-start"]),b=C=>C==null||C===""?null:typeof C=="string"||typeof C=="number"?C:String(C),_=e.computed(()=>{if(!n.group)return[];const C=new Map;i.value.forEach(I=>{const E=I[n.group],V=b(E);C.has(V)||C.set(V,[]),C.get(V)?.push(I)});const N=[];n.values?.length&&n.values.forEach(I=>{const E=b(I);N.push(E)});const $=new Set,q=I=>{const E=C.get(I)||[];if(!E.length)return null;const V=I===null?"group-null":`group-${String(I)}`,v=I===null?fs:String(I);return $.add(I),{key:V,label:v,options:E}},G=[];return N.forEach(I=>{const E=q(I);E&&G.push(E)}),C.forEach((I,E)=>{if($.has(E))return;const V=q(E);V&&G.push(V)}),G});return e.watch(()=>n.modelValue,C=>{if(typeof C=="boolean"&&i.value.length===1){const N=d(i.value[0]);a[N]=C}else if(Array.isArray(C)){const N=new Set(C);i.value.forEach($=>{if(!$.disabled){const q=d($);a[q]=N.has(q)}})}},{immediate:!0}),e.watch(a,()=>{if(!i.value.length){r("update:modelValue",null);return}const C=Object.entries(a).filter(([,N])=>N).map(([N])=>N);r("update:modelValue",C.length===0?[]:C)},{deep:!0}),e.onMounted(async()=>{if(await c(),typeof n.modelValue=="boolean"&&i.value.length===1){const C=d(i.value[0]);a[C]=n.modelValue}else if(Array.isArray(n.modelValue)){const C=new Set(n.modelValue);i.value.forEach(N=>{if(!N.disabled){const $=d(N);a[$]=C.has($)}})}}),(C,N)=>n.group?(e.openBlock(),e.createElementBlock("div",ps,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,$=>(e.openBlock(),e.createElementBlock("div",{key:$.key,class:"flex flex-col gap-2"},[$.label?(e.openBlock(),e.createElementBlock("span",ms,e.toDisplayString($.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($.options,q=>(e.openBlock(),e.createBlock(io,{modelValue:a[d(q)],"onUpdate:modelValue":G=>a[d(q)]=G,value:d(q),class:e.normalizeClass(m(C.colSpan)),disabled:n.disabled||q.disabled,label:f(q),labelHtml:g.value?p(q):"",key:`${$.key}-${d(q)}`,icon:q?.icon,imgUrl:q?.imgUrl,option:q,view:C.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2)]))),128))])):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["p-0 w-full gap-[10px]",k.value])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,$=>(e.openBlock(),e.createBlock(io,{modelValue:a[d($)],"onUpdate:modelValue":q=>a[d($)]=q,value:d($),class:e.normalizeClass(m(C.colSpan)),disabled:n.disabled||$.disabled,label:f($),labelHtml:g.value?p($):"",key:d($),icon:$?.icon,imgUrl:$?.imgUrl,option:$,view:C.view},null,8,["modelValue","onUpdate:modelValue","value","class","disabled","label","labelHtml","icon","imgUrl","option","view"]))),128))],2))}}),Ce=(o,t)=>{const n=o.__vccOpts||o;for(const[r,a]of t)n[r]=a;return n},sr=Ce(hs,[["__scopeId","data-v-9056e0ec"]]),gs=1440*60*1e3,ys=["січень","лютий","березень","квітень","травень","червень","липень","серпень","вересень","жовтень","листопад","грудень"],bs=["січ","лют","бер","квіт","трав","черв","лип","серп","вер","жовт","лист","груд"],ks=["нд","пн","вт","ср","чт","пт","сб"];function Ke(o){return o instanceof Date&&!Number.isNaN(o.getTime())}const Xt=o=>new Date(o.getTime());function Ut(o){const t=Xt(o);return t.setHours(0,0,0,0),t}function ln(o){const t=Xt(o);return t.setHours(23,59,59,999),t}function ho(o){return Ut(new Date(o.getFullYear(),o.getMonth(),1))}function go(o){return ln(new Date(o.getFullYear(),o.getMonth()+1,0))}function yo(o,t){const n=new Date(o),r=n.getDate();n.setDate(1),n.setMonth(n.getMonth()+t);const a=new Date(n.getFullYear(),n.getMonth()+1,0).getDate();return n.setDate(Math.min(r,a)),n}function ws(o,t){return yo(o,-1)}function $n(o,t){const n=new Date(o);return n.setFullYear(n.getFullYear()+t),n}function ir(o,t){return $n(o,-t)}function cr(o){return Ut(new Date(o.getFullYear(),0,1))}function dr(o){return ln(new Date(o.getFullYear(),11,31))}function xs(o){const t=Math.floor(o.getFullYear()/10)*10;return Ut(new Date(t,0,1))}function vs(o){const t=Math.floor(o.getFullYear()/10)*10+9;return ln(new Date(t,11,31))}const ht=o=>o.getFullYear(),An=o=>Math.floor(o.getFullYear()/10)*10;function _s(o){const t=[];let n=Ut(o.start);const r=Ut(o.end);for(;n<=r;)t.push(Xt(n)),n=new Date(n.getTime()+gs);return t}function Cs(o){const t=[];let n=ho(o.start);const r=go(o.end);for(;n<=r;)t.push(Xt(n)),n=yo(n,1);return t}function Es(o){const t=[];let n=cr(o.start);const r=dr(o.end);for(;n<=r;)t.push(Xt(n)),n=$n(n,1);return t}function bo(o,t=1){const n=Ut(o),r=(n.getDay()-t+7)%7;return n.setDate(n.getDate()-r),n}function Bs(o,t=1){const n=bo(o,t);return n.setDate(n.getDate()+6),ln(n)}function Vs(o,t,n=0){const r=bo(o,n),a=(t-n+7)%7;return r.setDate(r.getDate()+a),r}const Nn=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth()&&o.getDate()===t.getDate(),ko=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear()&&o.getMonth()===t.getMonth(),ur=(o,t)=>!!o&&!!t&&o.getFullYear()===t.getFullYear(),pr=(o,t)=>!!o&&!!t&&Nn(o,t)&&o.getHours()===t.getHours(),Ss=(o,t)=>!!o&&!!t&&pr(o,t)&&o.getMinutes()===t.getMinutes();function $s(o,t){const n=o.getTime();return n>=t.start.getTime()&&n<=t.end.getTime()}const an=(o,t)=>!!o&&!!t&&o.getTime()<t.getTime(),sn=(o,t)=>!!o&&!!t&&o.getTime()>t.getTime();function As(o){const t=o.filter(n=>Ke(n));if(t.length)return t.reduce((n,r)=>n.getTime()>=r.getTime()?n:r)}function Ns(o){const t=o.filter(n=>Ke(n));if(t.length)return t.reduce((n,r)=>n.getTime()<=r.getTime()?n:r)}function Ms(o,t){const n=Xt(o);return typeof t.year=="number"&&n.setFullYear(t.year),typeof t.month=="number"&&n.setMonth(t.month),typeof t.date=="number"&&n.setDate(t.date),typeof t.hours=="number"&&n.setHours(t.hours),typeof t.minutes=="number"&&n.setMinutes(t.minutes),typeof t.seconds=="number"&&n.setSeconds(t.seconds),typeof t.milliseconds=="number"&&n.setMilliseconds(t.milliseconds),n}const Mn=(o,t=2)=>String(o).padStart(t,"0");function mr(o,t){return t==="wide"?ys[o]:bs[o]}function Fs(o){return ks[o]}const Ds=[{token:"LLLL",format:o=>mr(o.getMonth(),"wide")},{token:"LLL",format:o=>mr(o.getMonth(),"abbreviated")},{token:"EE",format:o=>Fs(o.getDay())},{token:"yyyy",format:o=>String(o.getFullYear())},{token:"MM",format:o=>Mn(o.getMonth()+1)},{token:"dd",format:o=>Mn(o.getDate())},{token:"HH",format:o=>Mn(o.getHours())},{token:"mm",format:o=>Mn(o.getMinutes())}];function cn(o,t){if(!Ke(o))return"";let n="",r=0;for(;r<t.length;){const a=Ds.find(l=>t.startsWith(l.token,r));a?(n+=a.format(o),r+=a.token.length):(n+=t[r],r+=1)}return n}const Ts={"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 fr(o,t){const n=Ts[t];if(!n){const a=new Date(o);return Ke(a)?a:null}const r=o.match(n);if(!r)return null;switch(t){case"yyyy-MM-dd":{const[,a,l,s]=r,c=new Date(Number(a),Number(l)-1,Number(s));return Ke(c)?c:null}case"dd.MM.yyyy":{const[,a,l,s]=r,c=new Date(Number(s),Number(l)-1,Number(a));return Ke(c)?c:null}case"dd.MM.yyyy HH:mm":{const[,a,l,s,c,i,d]=r,h=new Date(Number(s),Number(l)-1,Number(a),Number(c),Number(i),Number(d||0));return Ke(h)?h:null}case"HH:mm":{const[,a,l,s]=r,c=new Date;return c.setHours(Number(a),Number(l),Number(s||0),0),c}case"MM.yyyy":{const[,a,l]=r;return new Date(Number(l),Number(a)-1,1)}case"yyyy":{const[,a]=r;return new Date(Number(a),0,1)}default:return null}}const Ls=["year","month","day","time","custom"],Is=e.defineComponent({components:{ChevronLeft:X.ChevronLeft,ChevronRight:X.ChevronRight},emits:{elementClick:o=>Ke(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"&&Ls.includes(o)},showButtonBar:{type:Boolean,default:!1},hideHeader:{type:Boolean,default:!1}},setup(){const t=e.getCurrentInstance()?.appContext?.config?.globalProperties?.$t,n=e.computed(()=>{const a=t?.("form.date.today");return a&&a!=="form.date.today"?a:"Сьогодні"}),r=e.computed(()=>{const a=t?.("form.date.clear");return a&&a!=="form.date.clear"?a:"Очистити"});return{todayLabel:n,clearLabel:r}}}),Os={key:0,class:"p-datepicker-header flex items-center justify-between mb-1.5"},Ps=["disabled"],Rs=["disabled"],zs={key:0,class:"p-datepicker-weekheader grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-400 font-medium mb-1.5"},js=["disabled","onClick"],Us={key:1,class:"p-datepicker-buttonbar mt-2 pt-2 border-t border-slate-200 flex items-center justify-between"};function Hs(o,t,n,r,a,l){const s=e.resolveComponent("ChevronLeft"),c=e.resolveComponent("ChevronRight");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-datepicker-panel p-component text-center text-slate-700 overflow-x-hidden bg-white border border-slate-200 rounded-xl shadow-[0_4px_12px_rgba(0,0,0,0.1)] p-2",o.viewMode==="month"||o.viewMode==="year"?"w-[182px] min-w-[182px]":"w-[268px] min-w-[182px]"]),style:e.normalizeStyle({"--popout-column-definition":`repeat(${o.columnCount}, 1fr)`}),onMousedown:t[5]||(t[5]=e.withModifiers(()=>{},["prevent"]))},[o.hideHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Os,[e.createElementVNode("button",{class:"p-datepicker-prev-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.leftDisabled,onClick:t[0]||(t[0]=e.withModifiers(i=>o.$emit("left"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-left",{},()=>[e.createVNode(s,{class:"h-3.5 w-3.5"})])],8,Ps),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.headingClickable?"button":"span"),{class:e.normalizeClass(["p-datepicker-title min-w-0 rounded-md px-2 py-1 text-sm font-semibold leading-snug text-slate-700",o.headingClickable?"hover:bg-slate-100":"",o.viewMode==="month"?"p-datepicker-select-year":"",o.viewMode==="year"?"p-datepicker-decade whitespace-nowrap text-xs px-1":""]),onClick:t[1]||(t[1]=e.withModifiers(i=>o.$emit("heading"),["stop","prevent"]))},{default:e.withCtx(()=>[e.renderSlot(o.$slots,"heading")]),_:3},8,["class"])),e.createElementVNode("button",{class:"p-datepicker-next-button inline-flex items-center justify-center size-8 rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300 disabled:hover:bg-transparent",disabled:o.rightDisabled,onClick:t[2]||(t[2]=e.withModifiers(i=>o.$emit("right"),["stop","prevent"]))},[e.renderSlot(o.$slots,"arrow-right",{},()=>[e.createVNode(c,{class:"h-3.5 w-3.5"})])],8,Rs)])),e.createElementVNode("div",null,["subheading"in o.$slots?(e.openBlock(),e.createElementBlock("div",zs,[e.renderSlot(o.$slots,"subheading")])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["p-datepicker-calendar grid [grid-template-columns:var(--popout-column-definition)] text-[12px] text-slate-700",o.viewMode==="month"?"p-datepicker-month-view":"",o.viewMode==="year"?"p-datepicker-year-view":"",o.viewMode==="month"?"gap-y-1":""])},[e.renderSlot(o.$slots,"body",{},()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.items,i=>(e.openBlock(),e.createElementBlock("button",{key:i.key,disabled:i.disabled,class:e.normalizeClass(["p-[2px] disabled:text-slate-300"]),onClick:e.withModifiers(d=>o.$emit("elementClick",i.value),["stop","prevent"])},[e.createElementVNode("span",{class:e.normalizeClass([o.viewMode==="month"||o.viewMode==="year"?"inline-flex w-full h-8 items-center justify-center rounded-md text-[13px] font-normal transition-colors":"inline-flex w-8 h-8 items-center justify-center rounded-full text-[13px] font-normal transition-colors",o.viewMode==="month"?"p-datepicker-month":"",o.viewMode==="year"?"p-datepicker-year":"",o.viewMode==="day"?"p-datepicker-day":"",i.selected?"bg-blue-500 text-white font-semibold":"",i.current&&!i.selected&&o.viewMode!=="month"&&o.viewMode!=="year"?"border border-slate-300 font-medium":"",!i.disabled&&!i.selected?"hover:bg-slate-100 hover:text-slate-700":"",!i.current&&!i.selected&&i.disabled?"text-slate-300":""])},e.toDisplayString(i.display),3)],8,js))),128))])],2),e.renderSlot(o.$slots,"after-calendar"),o.showButtonBar?(e.openBlock(),e.createElementBlock("div",Us,[e.createElementVNode("button",{type:"button",class:"p-datepicker-today-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[3]||(t[3]=e.withModifiers(i=>o.$emit("today"),["stop","prevent"]))},e.toDisplayString(o.todayLabel),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-clear-button text-xs font-medium text-slate-500 hover:text-slate-700 transition-colors px-1.5 py-1 rounded-md hover:bg-slate-100",onClick:t[4]||(t[4]=e.withModifiers(i=>o.$emit("clear"),["stop","prevent"]))},e.toDisplayString(o.clearLabel),1)])):e.createCommentVNode("",!0)])],38)}const Fn=Ce(Is,[["render",Hs]]),qs=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ke(o),select:o=>Ke(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(()=>xs(o.pageDate)),r=e.computed(()=>vs(o.pageDate)),a=(g,p,f)=>!p&&!f?!0:!(p&&ht(g)<ht(p)||f&&ht(g)>ht(f)),l=e.computed(()=>Es({start:n.value,end:r.value}).map(g=>({value:g,key:String(ht(g)),display:ht(g),selected:!!o.selected&&ht(g)===ht(o.selected),disabled:!a(g,o.lowerLimit,o.upperLimit)}))),s=e.computed(()=>{const g=ht(n.value),p=ht(r.value);return`${g} - ${p}`}),c=e.computed(()=>o.lowerLimit&&(An(o.lowerLimit)===An(o.pageDate)||an(o.pageDate,o.lowerLimit))),i=e.computed(()=>o.upperLimit&&(An(o.upperLimit)===An(o.pageDate)||sn(o.pageDate,o.upperLimit)));return{years:l,heading:s,leftDisabled:c,rightDisabled:i,previousPage:()=>t("update:pageDate",ir(o.pageDate,10)),nextPage:()=>t("update:pageDate",$n(o.pageDate,10))}}});function Ws(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{columnCount:2,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.years,viewMode:"year",onLeft:o.previousPage,onRight:o.nextPage,onElementClick:t[0]||(t[0]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Ks=Ce(qs,[["render",Ws]]),Gs=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ke(o),select:o=>Ke(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},format:{type:String,required:!1,default:"LLL"},lowerLimit:{type:Date,required:!1},upperLimit:{type:Date,required:!1}},setup(o,{emit:t}){const n=e.computed(()=>cr(o.pageDate)),r=e.computed(()=>dr(o.pageDate)),a=e.computed(()=>p=>cn(p,o.format)),l=(p,f,m)=>!f&&!m?!0:!(f&&an(p,ho(f))||m&&sn(p,go(m))),s=e.computed(()=>Cs({start:n.value,end:r.value}).map(p=>({value:p,display:a.value(p),key:a.value(p),selected:!!o.selected&&ko(o.selected,p),disabled:!l(p,o.lowerLimit,o.upperLimit)}))),c=e.computed(()=>ht(n.value)),i=e.computed(()=>o.lowerLimit&&(ur(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),d=e.computed(()=>o.upperLimit&&(ur(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{months:s,heading:c,leftDisabled:i,rightDisabled:d,previousPage:()=>t("update:pageDate",ir(o.pageDate,1)),nextPage:()=>t("update:pageDate",$n(o.pageDate,1))}}});function Ys(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",columnCount:3,items:o.months,leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,viewMode:"month",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c))},{heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),_:1},8,["items","leftDisabled","rightDisabled","onLeft","onRight"])}const Xs=Ce(Gs,[["render",Ys]]),Zs=e.defineComponent({components:{PickerPopup:Fn},emits:{"update:pageDate":o=>Ke(o),select:o=>Ke(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=>_=>cn(_,b)),r=e.computed(()=>ho(o.pageDate)),a=e.computed(()=>go(o.pageDate)),l=e.computed(()=>({start:r.value,end:a.value})),s=e.computed(()=>({start:bo(r.value,o.weekStartsOn),end:Bs(a.value,o.weekStartsOn)})),c=e.computed(()=>o.customWeekdays?.length===7?o.customWeekdays:null),i=e.computed(()=>{const b=o.weekStartsOn,_=c.value;if(_)return Array.from({length:7}).map((N,$)=>_[(b+$)%7]);const C=n.value(o.weekdayFormat);return Array.from(Array(7)).map((N,$)=>(b+$)%7).map(N=>Vs(new Date,N,o.weekStartsOn)).map(C)}),d=(b,_,C,N)=>N?.dates?.some($=>Nn(b,$))||N?.predicate?.(b)?!1:!_&&!C?!0:!(_&&an(b,Ut(_))||C&&sn(b,ln(C))),h=e.computed(()=>{const b=new Date,_=n.value(o.format);return _s(s.value).map(C=>({value:C,display:_(C),selected:!!o.selected&&Nn(o.selected,C),current:Nn(b,C),disabled:!o.allowOutsideInterval&&!$s(C,l.value)||!d(C,o.lowerLimit,o.upperLimit,o.disabledDates),key:n.value("yyyy-MM-dd")(C)}))}),g=e.computed(()=>n.value(o.headingFormat)(o.pageDate)),p=e.computed(()=>o.lowerLimit&&(ko(o.lowerLimit,o.pageDate)||an(o.pageDate,o.lowerLimit))),f=e.computed(()=>o.upperLimit&&(ko(o.upperLimit,o.pageDate)||sn(o.pageDate,o.upperLimit)));return{weekDays:i,days:h,heading:g,leftDisabled:p,rightDisabled:f,previousPage:()=>t("update:pageDate",ws(o.pageDate)),nextPage:()=>t("update:pageDate",yo(o.pageDate,1))}}});function Js(o,t,n,r,a,l){const s=e.resolveComponent("picker-popup");return e.openBlock(),e.createBlock(s,{headingClickable:"",leftDisabled:o.leftDisabled,rightDisabled:o.rightDisabled,items:o.days,showButtonBar:!0,viewMode:"day",onLeft:o.previousPage,onRight:o.nextPage,onHeading:t[0]||(t[0]=c=>o.$emit("back")),onElementClick:t[1]||(t[1]=c=>o.$emit("select",c)),onToday:t[2]||(t[2]=c=>o.$emit("today")),onClear:t[3]||(t[3]=c=>o.$emit("clear"))},e.createSlots({heading:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.heading),1)]),subheading:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.weekDays,(c,i)=>(e.openBlock(),e.createElementBlock("span",{key:c,class:e.normalizeClass(`v3dp__subheading__weekday__${i}`)},e.toDisplayString(c),3))),128))]),_:2},[o.$slots["after-calendar"]?{name:"after-calendar",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"after-calendar")]),key:"0"}:void 0]),1032,["leftDisabled","rightDisabled","items","onLeft","onRight"])}const Qs=Ce(Zs,[["render",Js]]),ei=e.defineComponent({components:{PickerPopup:Fn,ChevronUp:X.ChevronUp,ChevronDown:X.ChevronDown},emits:{select:o=>Ke(o),back:()=>!0},props:{selected:{type:Date,required:!1},pageDate:{type:Date,required:!0},visible:{type:Boolean,required:!0},disabledTime:{type:Object,required:!1},embedded:{type:Boolean,default:!1}},setup(o,{emit:t}){const n=e.computed(()=>o.pageDate??o.selected),r=e.ref(n.value.getHours()),a=e.ref(n.value.getMinutes());e.watch(()=>o.selected,f=>{let m=0,k=0;f&&(m=f.getHours(),k=f.getMinutes()),r.value=m,a.value=k});const l=(f,m)=>{const k=Ms(new Date(n.value.getTime()),{hours:f,minutes:m,seconds:0});g(k)&&(r.value=f,a.value=m,t("select",k))},s=(f,m)=>f<0?m:f>m?0:f,c=()=>l(s(r.value+1,23),a.value),i=()=>l(s(r.value-1,23),a.value),d=()=>l(r.value,s(a.value+1,59)),h=()=>l(r.value,s(a.value-1,59)),g=f=>!(o.disabledTime?.dates?.some(m=>pr(f,m)&&Ss(f,m))||o.disabledTime?.predicate?.(f));return{hours:r,minutes:a,padStartZero:f=>`0${f}`.substr(-2),isEnabled:g,incrementHours:c,decrementHours:i,incrementMinutes:d,decrementMinutes:h}}}),ti={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"},ni={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},oi={class:"min-w-8 text-center text-sm font-medium text-slate-700"},ri={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},li={class:"min-w-8 text-center text-sm font-medium text-slate-700"},ai={class:"col-span-2"},si={class:"p-datepicker-time-picker flex items-center justify-center gap-2 py-1"},ii={class:"p-datepicker-hour-picker flex flex-col items-center gap-1"},ci={class:"min-w-8 text-center text-sm font-medium text-slate-700"},di={class:"p-datepicker-minute-picker flex flex-col items-center gap-1"},ui={class:"min-w-8 text-center text-sm font-medium text-slate-700"};function pi(o,t,n,r,a,l){const s=e.resolveComponent("ChevronUp"),c=e.resolveComponent("ChevronDown"),i=e.resolveComponent("picker-popup");return o.embedded?(e.openBlock(),e.createElementBlock("div",ti,[e.createElementVNode("div",ni,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[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",oi,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[1]||(t[1]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[8]||(t[8]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",ri,[e.createElementVNode("button",{type:"button",class:"p-datepicker-increment-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[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",li,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[3]||(t[3]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])):(e.openBlock(),e.createBlock(i,{key:1,hideHeader:!0,columnCount:2,viewMode:"time"},{body:e.withCtx(()=>[e.createElementVNode("div",ai,[e.createElementVNode("div",si,[e.createElementVNode("div",ii,[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",ci,e.toDisplayString(o.padStartZero(o.hours)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[5]||(t[5]=e.withModifiers((...d)=>o.decrementHours&&o.decrementHours(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])]),t[9]||(t[9]=e.createElementVNode("div",{class:"text-base font-medium text-slate-500"},":",-1)),e.createElementVNode("div",di,[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",ui,e.toDisplayString(o.padStartZero(o.minutes)),1),e.createElementVNode("button",{type:"button",class:"p-datepicker-decrement-button inline-flex size-8 items-center justify-center rounded-full text-slate-500 transition-colors hover:bg-slate-100 hover:text-slate-700 disabled:text-slate-300",onClick:t[7]||(t[7]=e.withModifiers((...d)=>o.decrementMinutes&&o.decrementMinutes(...d),["stop","prevent"]))},[e.createVNode(c,{class:"h-3.5 w-3.5"})])])])])]),_:1}))}const mi=Ce(ei,[["render",pi]]),Dn=["time","day","month","year"],fi=(o,t,n=void 0)=>{let r=n||new Date;const a=As([o,r]);a&&(r=a);const l=Ns([t,r]);return l&&(r=l),r},hi=e.defineComponent({components:{YearPicker:Ks,MonthPicker:Xs,DayPicker:Qs,TimePicker:mi,CalendarDays:X.CalendarDays,Clock3:X.Clock3,X:X.X},inheritAttrs:!1,props:{placeholder:{type:String,default:""},modelValue:{type:Date,required:!1},disabledDates:{type:Object,required:!1},allowOutsideInterval:{type:Boolean,required:!1,default:!1},disabledTime:{type:Object,required:!1},upperLimit:{type:Date,required:!1},lowerLimit:{type:Date,required:!1},startingView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Dn.includes(o)},startingViewDate:{type:Date,required:!1,default:()=>new Date},dayPickerHeadingFormat:{type:String,required:!1,default:"LLLL yyyy"},monthListFormat:{type:String,required:!1,default:"LLL"},weekdayFormat:{type:String,required:!1,default:"EE"},dayFormat:{type:String,required:!1,default:"dd"},inputFormat:{type:String,required:!1,default:"yyyy-MM-dd"},weekDayNames:{type:Array,required:!1},weekStartsOn:{type:Number,required:!1,default:1,validator:o=>[0,1,2,3,4,5,6].includes(o)},disabled:{type:Boolean,required:!1,default:!1},clearable:{type:Boolean,required:!1,default:!1},typeable:{type:Boolean,required:!1,default:!1},minimumView:{type:String,required:!1,default:"day",validate:o=>typeof o=="string"&&Dn.includes(o)}},emits:{"update:modelValue":o=>o==null||Ke(o),decadePageChanged:o=>!0,yearPageChanged:o=>!0,monthPageChanged:o=>!0,opened:()=>!0,closed:()=>!0},setup(o,{emit:t}){const n=e.ref("none"),r=e.ref(o.startingViewDate),a=e.ref(null),l=e.ref(null),s=e.ref(null),c=e.ref({}),i=e.ref(!1),d=e.ref(!1),h=e.ref(!1);let g=null;const p=e.ref(""),f=ne=>{const de=ne.replace(/[a-zA-Z]/g,"0");return/0/.test(de)?de:""},m=e.computed(()=>f(o.inputFormat));let k=null,b=null;const _=()=>{k?.destroy(),k=null},C=async()=>{if(!b){const{default:ne}=await Promise.resolve().then(()=>Qn);b=ne}return b},N=()=>{k&&k.value!==p.value&&(k.value=p.value??"")},$=ne=>{const de=ne&&Ke(ne)?cn(ne,o.inputFormat):"";p.value!==de&&(p.value=de),N()},q=async()=>{if(_(),!l.value||!m.value)return;k=(await C())(l.value,{mask:m.value,lazy:!0,overwrite:!1}),N()};e.watch(()=>o.modelValue,ne=>{d.value&&o.typeable||$(ne)},{immediate:!0}),e.watch(()=>o.inputFormat,()=>{d.value&&o.typeable||$(o.modelValue)}),e.onMounted(()=>{h.value=!0,m.value&&e.nextTick(()=>{q()})}),e.onBeforeUnmount(()=>{_()}),e.watch(m,ne=>{ne?e.nextTick(()=>{q()}):_()});const G=e.computed(()=>n.value!=="none"),I=e.computed(()=>o.startingView==="time"&&o.minimumView==="time"),E=e.computed(()=>o.startingView==="day"&&o.minimumView==="time"),V=ne=>{o.disabled||(G.value||(r.value=o.modelValue||fi(o.lowerLimit,o.upperLimit,r.value),t("opened")),n.value=ne,e.nextTick(()=>Oe()))},v=()=>{G.value&&(g!==null&&(cancelAnimationFrame(g),g=null),n.value="none",t("closed"))},T=(ne="none")=>{ne==="none"?v():V(ne)};e.watchEffect(()=>{o.disabled&&v()});const j=(ne,de)=>{r.value=de,ne==="year"?t("decadePageChanged",de):ne==="month"?t("yearPageChanged",de):ne==="day"&&t("monthPageChanged",de)},te=ne=>{r.value=ne,o.minimumView==="year"?(v(),$(ne),t("update:modelValue",ne)):V("month")},D=ne=>{r.value=ne,o.minimumView==="month"?(v(),$(ne),t("update:modelValue",ne)):V("day")},U=ne=>{const de=E.value?(()=>{const xe=o.modelValue||r.value||new Date,ve=new Date(ne);return ve.setHours(xe.getHours(),xe.getMinutes(),0,0),ve})():ne;r.value=de,o.minimumView==="day"?(v(),$(de),t("update:modelValue",de)):E.value?($(de),t("update:modelValue",de),V("day")):V("time")},oe=ne=>{$(ne),t("update:modelValue",ne)},R=()=>{U(new Date)},H=()=>{o.clearable&&(v(),$(null),t("update:modelValue",null),r.value=o.startingViewDate)},Z=()=>{G.value||V(se.value)},ae=()=>{d.value=!0,i.value=!1,V(se.value)},O=()=>{d.value=!1,o.typeable&&M({closeOnSuccess:!1,revertOnInvalid:!0})},A=ne=>{const de=ne.target;if(p.value=de?.value??"",!o.typeable)return;const xe=fr(p.value,o.inputFormat);xe&&p.value===cn(xe,o.inputFormat)&&(r.value=xe)},M=({closeOnSuccess:ne,revertOnInvalid:de})=>{const xe=l.value?.value??p.value,ve=fr(xe,o.inputFormat);return!!ve&&xe===cn(ve,o.inputFormat)&&ve?(r.value=ve,$(ve),t("update:modelValue",ve),ne&&v(),!0):($(o.modelValue),!1)},Q=ne=>{const de=ne.keyCode?ne.keyCode:ne.which,xe=de===27,ve=de===13;if(xe){v(),l.value?.blur();return}o.typeable&&ve&&(M({closeOnSuccess:!0,revertOnInvalid:!0})||l.value?.focus())},se=e.computed(()=>{const ne=Dn.indexOf(o.startingView),de=Dn.indexOf(o.minimumView);return ne<de?o.minimumView:o.startingView}),ee=e.computed(()=>o.weekDayNames?.length===7?o.weekDayNames:void 0),me=()=>o.startingView==="time"&&o.minimumView==="time"?null:V("day"),ke=()=>{if(!l.value||!s.value)return;const ne=4,de=8,xe=l.value.getBoundingClientRect(),ve=s.value.getBoundingClientRect(),Te=s.value.firstElementChild?.getBoundingClientRect(),Je=window.innerWidth,Ae=window.innerHeight,Fe=window.scrollX||window.pageXOffset,ut=window.scrollY||window.pageYOffset,z=Math.max(160,Ae-de*2),J=Math.min(ve.height||0,z),ie=Ae-xe.bottom-ne-de,F=xe.top-ne-de,w=ie<J&&F>ie;let S=w?xe.top-ne-J:xe.bottom+ne;S=Math.max(de,Math.min(S,Ae-de-J));const P=Te?.width||ve.width||268;let le=xe.left;le+P>Je-de&&(le=Je-de-P),le<de&&(le=de);const we=w?Math.max(120,xe.top-ne-de):Math.max(120,Ae-xe.bottom-ne-de);c.value={position:"absolute",top:`${Math.round(S+ut)}px`,left:`${Math.round(le+Fe)}px`,maxHeight:`${Math.round(Math.min(z,we))}px`,overflowX:"hidden",overflowY:"auto",zIndex:"2147483000"},E.value&&n.value==="day"&&(c.value.minWidth="345px")},ge=(ne,de)=>ne.bottom>de.top&&ne.top<de.bottom&&ne.right>de.left&&ne.left<de.right,Se=ne=>{const de=[];let xe=ne.parentElement;for(;xe;){const ve=window.getComputedStyle(xe),ze=ve.overflowY,Te=ve.overflowX,Je=["auto","scroll","hidden","clip"].includes(ze),Ae=["auto","scroll","hidden","clip"].includes(Te);(Je||Ae)&&de.push(xe),xe=xe.parentElement}return de},Ne=()=>{if(!l.value)return!1;const ne=l.value.getBoundingClientRect(),de=new DOMRect(0,0,window.innerWidth,window.innerHeight);return ge(ne,de)?Se(l.value).every(ve=>ge(ne,ve.getBoundingClientRect())):!1},$e=()=>{if(G.value){if(!Ne()){i.value=!0,v();return}Oe();return}i.value&&document.activeElement===l.value&&Ne()&&(i.value=!1,V(se.value))};e.watch(n,()=>{G.value&&e.nextTick(()=>Oe())});const Oe=()=>{ke(),g!==null&&cancelAnimationFrame(g),g=requestAnimationFrame(()=>{ke(),g=null})};e.onMounted(()=>{window.addEventListener("resize",$e),window.addEventListener("scroll",$e,!0),document.addEventListener("pointerdown",Me,!0)}),e.onBeforeUnmount(()=>{g!==null&&(cancelAnimationFrame(g),g=null),window.removeEventListener("resize",$e),window.removeEventListener("scroll",$e,!0),document.removeEventListener("pointerdown",Me,!0)});const Me=ne=>{if(n.value==="none")return;const de=ne.target;if(!de)return;const xe=!!a.value?.contains(de),ve=!!s.value?.contains(de);!xe&&!ve&&(i.value=!1,v())};return{rootRef:a,blur:O,focus:ae,click:Z,input:p,inputRef:l,pageDate:r,renderView:T,updatePageDate:j,selectYear:te,selectMonth:D,selectDay:U,selectToday:R,selectTime:oe,keyUp:Q,onInput:A,isTimeOnlyMode:I,isDateTimeMode:E,normalizedWeekdayNames:ee,viewShown:n,goBackFromTimepicker:me,clearModelValue:H,initialView:se,log:ne=>console.log(ne),popupAnchorStyle:c,popupRef:s,isMounted:h}}}),gi={ref:"rootRef",class:"relative"},yi={class:"p-datepicker p-component p-inputwrapper relative"},bi=["readonly","value","placeholder","disabled","tabindex"],ki={class:"p-datepicker-input-icon-container absolute right-2 top-1/2 -translate-y-1/2 pointer-events-none text-slate-400"},wi={class:"absolute right-8 top-1/2 -translate-y-1/2"};function xi(o,t,n,r,a,l){const s=e.resolveComponent("Clock3"),c=e.resolveComponent("CalendarDays"),i=e.resolveComponent("X"),d=e.resolveComponent("year-picker"),h=e.resolveComponent("month-picker"),g=e.resolveComponent("time-picker"),p=e.resolveComponent("day-picker");return e.openBlock(),e.createElementBlock("div",gi,[e.createElementVNode("div",yi,[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]=(...f)=>o.onInput&&o.onInput(...f)),onKeyup:t[1]||(t[1]=(...f)=>o.keyUp&&o.keyUp(...f)),onBlur:t[2]||(t[2]=(...f)=>o.blur&&o.blur(...f)),onFocus:t[3]||(t[3]=(...f)=>o.focus&&o.focus(...f)),onClick:t[4]||(t[4]=(...f)=>o.click&&o.click(...f))}),null,16,bi),e.createElementVNode("span",ki,[o.isTimeOnlyMode?(e.openBlock(),e.createBlock(s,{key:0,class:"h-4 w-4"})):(e.openBlock(),e.createBlock(c,{key:1,class:"h-4 w-4"}))]),e.withDirectives(e.createElementVNode("div",wi,[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]=f=>o.clearModelValue())},[e.createVNode(i,{class:"h-3 w-3"})])])],512),[[e.vShow,o.clearable&&o.modelValue]])]),o.isMounted?(e.openBlock(),e.createBlock(e.Teleport,{key:0,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]=f=>o.updatePageDate("year",f)),selected:o.modelValue,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,onSelect:o.selectYear},null,8,["pageDate","selected","lowerLimit","upperLimit","onSelect"]),[[e.vShow,o.viewShown==="year"]]),e.withDirectives(e.createVNode(h,{pageDate:o.pageDate,"onUpdate:pageDate":t[7]||(t[7]=f=>o.updatePageDate("month",f)),selected:o.modelValue,onSelect:o.selectMonth,lowerLimit:o.lowerLimit,upperLimit:o.upperLimit,format:o.monthListFormat,onBack:t[8]||(t[8]=f=>o.viewShown="year")},null,8,["pageDate","selected","onSelect","lowerLimit","upperLimit","format"]),[[e.vShow,o.viewShown==="month"]]),e.withDirectives(e.createVNode(p,{pageDate:o.pageDate,"onUpdate:pageDate":t[9]||(t[9]=f=>o.updatePageDate("day",f)),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]=f=>o.viewShown="month")},e.createSlots({_:2},[o.isDateTimeMode?{name:"after-calendar",fn:e.withCtx(()=>[e.createVNode(g,{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(g,{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"]])])):e.createCommentVNode("",!0)],512)}const vi=Ce(hi,[["render",xi]]),hr=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:a}=Qe(n.style),l=e.getCurrentInstance(),s=e.computed(()=>n.mode?n.mode:n.time?"datetime":"date"),c=e.computed(()=>["py-1.5 px-3 block w-full placeholder:text-[#767f8f] bg-white",a.value,n.customClass,{"!border-red-600":n.error}]),i=e.computed(()=>!n.modelValue&&n.now?new Date:null),d=e.computed({get:()=>E(n.modelValue??i.value,s.value)||void 0,set:O=>r("update:modelValue",V(O,s.value))}),h=["Пн","Вт","Ср","Чт","Пт","Сб","Нд"],g=e.computed(()=>{if(n.dayNames?.length)return n.dayNames.length===7?n.dayNames:h}),p=e.computed(()=>{const O=n.weekStart,A=typeof O=="string"?Number(O):O;return A===void 0||Number.isNaN(A)?1:Math.min(6,Math.max(0,A))}),f=e.computed(()=>{const O=n.maxDaysFromNow;if(O==null||O==="")return;const A=typeof O=="string"?Number(O):O;if(!Number.isFinite(A)||A<0)return;const M=new Date;return M.setHours(0,0,0,0),M.setDate(M.getDate()+A),M.setHours(23,59,59,999),M}),m=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 O=l?.appContext?.config?.globalProperties?.$i18n?.locale;if(typeof O=="string"&&O)return O;if(O&&typeof O=="object"&&"value"in O&&O.value)return String(O.value);if(typeof localStorage<"u"){const A=localStorage.getItem("locale")||localStorage.getItem("language");if(A)return A}return"uk"}function _(){const A=l?.appContext?.config?.globalProperties?.$settings?.dateFormat;if(!A)return"";if(typeof A=="string")return A;if(typeof A=="object"){const M=b();return A[M]||A[M.split("-")[0]]||A.uk||A.en||""}return""}function C(O){return O?O.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 N=e.computed(()=>{const O=k[s.value]||"dd.MM.yyyy";if(s.value==="time")return O;const A=n.dateFormat||_();if(!A)return O;const M=C(A);return M?s.value==="datetime"?`${M} HH:mm`:M:O});function $(O,A){return O?A==="week"?"рррр-тиждень":O.replaceAll("yyyy","рррр").replaceAll("yy","рр").replaceAll("MM","мм").replaceAll("M","м").replaceAll("dd","дд").replaceAll("d","д").replaceAll("HH","гг").replaceAll("H","г").replaceAll("mm",A==="time"||A==="datetime"?"хх":"мм"):""}const q={date:"дд.мм.рррр",datetime:"дд.мм.рррр гг:хх",month:"мм.рррр",week:"рррр-тиждень",time:"гг:хх",year:"рррр"},G=e.computed(()=>{if(n.placeholder)return n.placeholder;const O=s.value;return $(N.value,O)||q[O]||""}),I=e.ref(!1);e.watch(()=>n.modelValue,O=>{O?I.value=!0:n.now||(I.value=!1)},{immediate:!0}),e.watchEffect(()=>{n.now&&!n.modelValue&&!I.value&&(r("update:modelValue",V(new Date,s.value)),I.value=!0)}),e.watch(N,()=>{r("update:modelValue",V(d.value,s.value))});function E(O,A){if(!O)return null;if(O instanceof Date&&!Number.isNaN(O.getTime()))return O;if(typeof O!="string")return null;switch(A){case"datetime":return te(O);case"time":return oe(O);case"month":return D(O);case"year":return U(O);case"week":return R(O);case"date":default:return j(O)}}function V(O,A){if(!O)return null;const M=O instanceof Date?O:E(O,A);if(!M)return null;switch(A){case"datetime":return`${v(M)}T${T(M)}`;case"time":return T(M);case"month":return`${M.getFullYear()}-${ae(M.getMonth()+1)}`;case"year":return`${M.getFullYear()}`;case"week":{const{year:Q,week:se}=H(M);return`${Q}-W${ae(se)}`}case"date":default:return v(M)}}function v(O){return`${O.getFullYear()}-${ae(O.getMonth()+1)}-${ae(O.getDate())}`}function T(O){return`${ae(O.getHours())}:${ae(O.getMinutes())}`}function j(O){const A=O.split("-");if(A.length<3)return null;const M=Number(A[0]),Q=Number(A[1]),se=parseInt(A[2],10);return!M||!Q||!se?null:new Date(M,Q-1,se)}function te(O){const A=O.includes("T")?O:O.replace(" ","T"),M=new Date(A);return Number.isNaN(M.getTime())?null:M}function D(O){const[A,M]=O.split("-").map(Number);return!A||Number.isNaN(M)?null:new Date(A,(M||1)-1,1)}function U(O){const A=Number(O);return A?new Date(A,0,1):null}function oe(O){const A=O.trim().match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/);if(!A)return null;const[,M,Q,se]=A,ee=new Date;return ee.setHours(Number(M),Number(Q),Number(se||0),0),ee}function R(O){const A=O.match(/^(\d{4})-W(\d{2})$/);if(!A)return null;const[,M,Q]=A,se=Number(Q);return Z(Number(M),se)}function H(O){const A=new Date(Date.UTC(O.getFullYear(),O.getMonth(),O.getDate())),M=A.getUTCDay()||7;A.setUTCDate(A.getUTCDate()+4-M);const Q=new Date(Date.UTC(A.getUTCFullYear(),0,1)),se=Math.ceil(((A.getTime()-Q.getTime())/864e5+1)/7);return{year:A.getUTCFullYear(),week:se}}function Z(O,A){if(!O||!A)return null;const M=new Date(O,0,1+(A-1)*7),Q=M.getDay(),se=M;return Q<=4?se.setDate(M.getDate()-M.getDay()+1):se.setDate(M.getDate()+8-M.getDay()),se}function ae(O){return String(O).padStart(2,"0")}return(O,A)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-date-picker",n.customClass])},[e.createVNode(vi,{modelValue:d.value,"onUpdate:modelValue":A[0]||(A[0]=M=>d.value=M),placeholder:G.value,disabled:n.disabled,clearable:n.clearable,typeable:n.editable,"week-day-names":g.value,"week-starts-on":p.value,"starting-view":m.value.startingView,"minimum-view":m.value.minimumView,"input-format":N.value,"upper-limit":f.value,name:n.name,class:e.normalizeClass(c.value)},null,8,["modelValue","placeholder","disabled","clearable","typeable","week-day-names","week-starts-on","starting-view","minimum-view","input-format","upper-limit","name","class"])],2))}}),[["__scopeId","data-v-637c8950"]]),_i=(o,t)=>{if(!t||!Object.keys(t).length)return o;const[n,r=""]=o.split("?"),a=new URLSearchParams(r);Object.entries(t).forEach(([s,c])=>{c==null||c===""||a.set(s,String(c))});const l=a.toString();return l?`${n}?${l}`:n},Ci=(o,t,n)=>new Promise((r,a)=>{const l=new FormData;l.append("unique","true"),l.append("file",o);const s=new XMLHttpRequest;s.open("POST",t),s.upload.addEventListener("progress",c=>{if(n){if(c.lengthComputable&&c.total>0){n(Math.min(100,Math.round(c.loaded/c.total*100)));return}n(0)}}),s.addEventListener("load",()=>{try{const c=s.responseText?JSON.parse(s.responseText):{};if(s.status>=200&&s.status<300){r(c?.result??null);return}a(new Error(c?.message||c?.error||`Код помилки: ${s.status}`))}catch(c){a(c)}}),s.addEventListener("error",()=>a(new Error("Помилка мережі під час завантаження файлу"))),s.addEventListener("abort",()=>a(new Error("Завантаження файлу скасовано"))),s.send(l)}),Ei=async(o,t={})=>{try{const{api:n,id:r="1",form:a="form",table:l="table",customParams:s,onProgress:c}=t,i=n||`/file/upload/uploads?id=${r||""}&form=${a||""}&table=${l||""}`,d=_i(i,s);if(o instanceof File)return await Ci(o,d,c);const h=new FormData;return h.append("unique","true"),h.append("file",o),(await fetch(d,{method:"POST",body:h}).then(p=>p.json()))?.result}catch(n){return he.notify({type:"error",title:"Помилка!",message:"Сталась помилка під час завантаження файлу",position:"right-bottom"}),console.error("Сталась помилка завантаження файлу",n),null}},Bi=async o=>{try{return await fetch(`file/delete/${o}`),!0}catch(t){return console.error(t),!1}},gr=async o=>{try{const t=await fetch(`/file/download/${o}`);if(!t.ok)throw new Error(`Download failed with status ${t.status}`);const n=await t.blob(),a=(t.headers.get("content-disposition")||"").match(/filename\*?=(?:UTF-8''|")?([^\";]+)/i),l=a?.[1]?decodeURIComponent(a[1].replace(/"/g,"").trim()):"",s=o.split("/").filter(Boolean).pop()||"download",c=l||s,i=document.createElement("a");i.setAttribute("download",c),i.href=window.URL.createObjectURL(n),i.click(),window.URL.revokeObjectURL(i.href)}catch(t){console.error(t.message)}},Vi=o=>{if(!o)return"";const t=o?.split(".");return t[t.length-1]},wo=o=>{const t=Vi(o),n={imageFormat:["tiff","jpg","jpeg","png","svg","ico","webp"],sheetsFormat:["xls","csv","xlsx"],archivesFormat:["zip","rar"],textsFormat:["json","geojson","txt","yml","yaml","shp"],documentsFormat:["pdf"]};return n.imageFormat.includes(t)?"img":n.sheetsFormat.includes(t)?X.Table:n.textsFormat.includes(t)?X.FileCode:n.documentsFormat.includes(t)?X.FileText:n.archivesFormat.includes(t)?X.FileArchive:X.FileText},Si=["title"],$i={key:0,class:"absolute inset-0 flex flex-col items-center justify-center gap-1 rounded-lg bg-white/90 px-2 text-center text-xs font-medium text-slate-600"},Ai=["title"],Ni={class:"absolute hidden top-0 right-0 flex items-center gap-x-2 w-full h-full justify-center"},gt=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"),a=t,l=o,s=e.computed(()=>l.action),c=e.computed(()=>r.value?typeof r.value=="string"?r.value:r.value.file_path:""),i=e.computed(()=>l.disabled?"opacity-50 cursor-not-allowed":l.isUploading?"cursor-default text-blue-500":"cursor-pointer hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500"),d=e.computed(()=>l.progressPercent>0?`${l.progressPercent}%`:"Завантаження..."),h=m=>typeof m=="string"?m:m?.file_path||"",g=()=>{const m=c.value;Bi(m),l.multiple&&Array.isArray(n.value)?n.value=n.value.filter(k=>h(k)!==m):n.value=""},p=()=>{c.value&&window.open(c.value,"_blank")},f=()=>{l.disabled||l.isUploading||a("click")};return(m,k)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,title:m.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:f},[m.isUploading?(e.openBlock(),e.createElementBlock("div",$i,[k[2]||(k[2]=e.createElementVNode("div",{class:"loader"},null,-1)),e.createElementVNode("span",null,e.toDisplayString(d.value),1)])):(e.openBlock(),e.createBlock(e.unref(X.Plus),{key:1,class:"h-4 w-4"}))],10,Si)):(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(wo)(c.value)),{src:`${e.unref(wo)(c.value)} === 'img'`?`/file/resize?filepath=${c.value}&format=webp`:c.value,alt:"file",class:"w-full h-full object-cover cursor-pointer",onClick:k[0]||(k[0]=b=>e.unref(gr)(c.value))},null,8,["src"])),e.createElementVNode("div",Ni,[e.createElementVNode("button",{type:"button",onClick:g,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-red-500"},[e.createVNode(e.unref(X.Trash2),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:p,class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-emerald-600"},[e.createVNode(e.unref(X.Eye),{class:"w-4 h-4"})]),e.createElementVNode("button",{type:"button",onClick:k[1]||(k[1]=b=>e.unref(gr)(c.value)),class:"w-6 h-6 flex items-center justify-center text-gray-500 bg-gray-200 rounded-lg hover:text-blue-500"},[e.createVNode(e.unref(X.Download),{class:"w-4 h-4"})])])],8,Ai))}}),[["__scopeId","data-v-b03cac5c"]]),xo=o=>o?o.split(",").map(t=>t.trim().toLowerCase()).filter(Boolean).map(t=>t.startsWith(".")?t.slice(1):t):[],vo=(o,t)=>!t||o.size<=t*1024*1024?!0:(he.notify({type:"error",title:"Помилка!",message:`Файл "${o.name}" занадто великий. Максимальний розмір: ${t} МБ`,position:"right-bottom"}),!1),_o=(o,t)=>{if(!t.length)return!0;const n=o.name.split(".").pop()?.toLowerCase()||"";return t.includes(n)?!0:(he.notify({type:"error",title:"Помилка!",message:`Неприпустимий формат файлу "${o.name}". Дозволені формати: ${t.map(r=>`.${r}`).join(", ")}`,position:"right-bottom"}),!1)},yr=(o,t)=>{const n={},r=[];if(!o?.length)return{ok:!0,params:n,missingSources:r};const a=t?.value??{};return o.forEach(l=>{if(!l)return;const[s,c]=l.split("="),i=s?.trim(),d=c?.trim();if(!i||!d)return;const h=a[d];if(h==null||h===""){r.push(d);return}n[i]=h}),r.length?(he.notify({type:"warning",title:"Заповніть поля",message:`Поля (${r.join(", ")}) необхідні для завантаження файлу`,position:"right-bottom"}),{ok:!1,params:n,missingSources:r}):{ok:!0,params:n,missingSources:r}},br=(o,t)=>!t||!Array.isArray(o)?[]:o,kr=(o,t)=>t||Array.isArray(o)?null:o,wr=o=>{if(!o)return"";const t=o.split(/[/\\]/).pop()||"",n=t.lastIndexOf(".");return n<=0||n===t.length-1?"":t.slice(n+1).toLowerCase()},Mi={class:"flex items-center flex-wrap gap-2"},Fi=["accept","multiple","disabled"],xr=e.defineComponent({__name:"vs-input-file",props:e.mergeModels({format:{},multiple:{type:Boolean},max_size:{},api:{},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),a=t,l=e.ref(null),s=e.ref(!1),c=e.ref([]),i=e.inject("values"),d=e.inject("map-file-import-uploading",null),h=e.computed(()=>br(r.value,!!n.multiple)),g=e.computed(()=>kr(r.value,!!n.multiple)),p=e.computed(()=>xo(n.format)),f=e.computed(()=>yr(n.customParams,i)),m=G=>{he.notify({type:"error",title:"Помилка завантаження",message:G||"Не вдалося завантажити файл. Спробуйте ще раз.",position:"right-bottom"})},k=()=>{n.disabled||s.value||f.value.ok&&l.value?.click()},b=async(G,I)=>{const E={api:n.api,customParams:Object.keys(f.value.params).length?f.value.params:void 0,onProgress:v=>{I&&(I.status="uploading",I.progressPercent=v)}},V=await Ei(G,E);return V?.file_path?V.file_path:null};e.watch(s,G=>{d&&(d.value=G)},{immediate:!0});const _=e.computed(()=>c.value.filter(G=>G.status!=="done")),C=e.computed(()=>_.value[0]||null),N=G=>typeof G=="string"?G:G?.file_path||"",$=(G,I)=>({key:`${Date.now()}-${I}-${G.name}`,file:G,size:G.size,uploaded:0,status:"pending",error:null,path:null,progressPercent:0}),q=async G=>{const{files:I}=G.target;if(!I||I.length===0)return;if(!f.value.ok){l.value&&(l.value.value="");return}const E=Array.from(I);if(n.max_size&&E.filter(T=>!vo(T,n.max_size)).length>0){l.value&&(l.value.value="");return}if(E.filter(v=>!_o(v,p.value)).length>0){l.value&&(l.value.value="");return}s.value=!0,c.value=E.map((v,T)=>$(v,T));try{if(n.multiple){const te=await Promise.all(E.map(async(R,H)=>{const Z=c.value[H];Z.status="uploading",Z.progressPercent=0;const ae=await b(R,Z);return ae?(Z.status="done",Z.path=ae,Z.uploaded=Z.size,Z.progressPercent=100):(Z.status="error",Z.error="Помилка при завантаженні"),ae})),D=te.filter(R=>!!R);if(D.length===0){m();return}D.length<te.length&&m("Деякі файли не вдалося завантажити. Перевірте їх та спробуйте знову.");const U=D,oe=Array.isArray(r.value)?r.value:r.value?[r.value]:[];r.value=[...oe,...U],a("change",r.value);return}const v=E[0],T=c.value[0];T.status="uploading",T.progressPercent=0;const j=await b(v,T);if(!j){T.status="error",T.error="Помилка при завантаженні",m();return}T.status="done",T.path=j,T.uploaded=T.size,T.progressPercent=100,r.value=j,a("change",j)}catch(v){m(v?.message||void 0)}finally{s.value=!1,c.value=[],l.value&&(l.value.value="")}};return(G,I)=>(e.openBlock(),e.createElementBlock("div",Mi,[e.createElementVNode("input",{class:"hidden",ref_key:"fileInput",ref:l,type:"file",accept:n.format,multiple:n.multiple,onChange:q,disabled:s.value||G.disabled},null,40,Fi),g.value?(e.openBlock(),e.createBlock(gt,{key:0,item:g.value,value:r.value,"onUpdate:value":I[0]||(I[0]=E=>r.value=E)},null,8,["item","value"])):e.createCommentVNode("",!0),n.multiple?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(E,V)=>(e.openBlock(),e.createBlock(gt,{key:`${V}-${N(E)}`,multiple:!0,item:E,value:r.value,"onUpdate:value":I[1]||(I[1]=v=>r.value=v)},null,8,["item","value"]))),128)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(_.value,E=>(e.openBlock(),e.createBlock(gt,{key:E.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":E.progressPercent,title:E.file.name},null,8,["progress-percent","title"]))),128)),e.createVNode(gt,{action:"","is-uploading":!1,disabled:G.disabled||s.value,title:"Добавить файлы",onClick:k},null,8,["disabled"])],64)):!n.multiple&&!C.value?(e.openBlock(),e.createBlock(gt,{key:2,action:"","is-uploading":!1,disabled:G.disabled||s.value,title:"Обновить файл",onClick:k},null,8,["disabled"])):C.value?(e.openBlock(),e.createBlock(gt,{key:3,action:"","is-uploading":!0,disabled:!0,"progress-percent":C.value.progressPercent,title:C.value.file.name},null,8,["progress-percent","title"])):e.createCommentVNode("",!0)]))}}),Di={class:"vs-input-file2 flex flex-col gap-4"},Ti={class:"flex items-center flex-wrap gap-2"},Li=["multiple","accept","disabled"],Ii={key:0,class:"text-sm text-rose-600"},Tn=e.defineComponent({__name:"vs-input-file2",props:e.mergeModels({format:{},max_size:{},api:{},multiple:{type:Boolean,default:!1},chunkSize:{default:5*1024*1024},subdir:{default:""},customParams:{},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.useModel(o,"modelValue"),r=e.ref(null),a=e.ref(!1),l=e.ref(""),s=e.ref([]),c=e.inject("values"),i=e.computed(()=>!!t.multiple),d=e.computed(()=>xo(t.format)),h=e.computed(()=>{if(d.value.length)return d.value.map(E=>`.${E}`).join(",")}),g=e.computed(()=>br(n.value,i.value)),p=e.computed(()=>kr(n.value,i.value)),f=e.computed(()=>yr(t.customParams,c)),m=e.computed(()=>s.value.filter(E=>E.status!=="done")),k=e.computed(()=>i.value?null:m.value[0]||null),b=e.computed(()=>{const E=m.value,V=E.reduce((T,j)=>T+j.size,0);if(!V)return 0;const v=E.reduce((T,j)=>T+Math.min(j.uploaded,j.size),0);return Math.min(100,Math.round(v/V*100))}),_=()=>{t.disabled||a.value||f.value.ok&&r.value?.click()},C=async(E,V)=>{const v=V||G(E,0);try{v.status="uploading";const T={id:"",fileName:v.file.name,subdir:t.subdir,size:v.file.size,...f.value.params},j=await fetch(`${t.api||"/file/upload2"}/start`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(T)});if(!j.ok)throw new Error("Не вдалося ініціалізувати завантаження");const te=await j.json().catch(()=>({}));v.uploadId=te.id||"",v.uploaded=Number(te.uploaded)||0,v.progressPercent=v.size?Math.min(100,Math.round(v.uploaded/v.size*100)):0;const D=t.chunkSize??5*1024*1024;for(;v.uploaded<v.size;){const R=v.uploaded,H=Math.min(R+D,v.size),ae=await v.file.slice(R,H).arrayBuffer(),O=await fetch(`${t.api||"/file/upload2"}/${v.uploadId}`,{method:"PATCH",headers:{"Content-Range":`bytes ${R}-${H-1}/${v.size}`,"Content-Type":"application/octet-stream"},body:ae});if(!O.ok)throw new Error("Помилка завантаження частини");const A=await O.json().catch(()=>({})),M=A.uploaded!=null?Number(A.uploaded):H;if(v.uploaded=M,v.progressPercent=v.size?Math.min(100,Math.round(v.uploaded/v.size*100)):0,A.finished||M>=v.size){const Q=wr(v.file.name),se=A.file_path||A.filepath||A.url||(Q?`/files/uploads/${v.uploadId}.${Q}`:`/files/uploads/${v.uploadId}`);return v.path=se,v.status="done",q(se),se}}const U=wr(v.file.name),oe=`/files/uploads/${v.uploadId}${U?`.${U}`:""}`;return v.path=oe,v.status="done",q(oe),oe}catch(T){return v.status="error",v.error=T?.message||"Помилка при завантаженні",l.value=T?.message||"Помилка при завантаженні",null}},N=E=>typeof E=="string"?E:E?.file_path||"",$=E=>!E||E.length===0?[]:Array.from(E),q=E=>{if(i.value){const V=Array.isArray(n.value)?[...n.value]:n.value?[n.value]:[];V.push(E),n.value=V;return}n.value=E},G=(E,V)=>({key:`${Date.now()}-${V}-${E.name}`,file:E,size:E.size,uploaded:0,uploadId:"",status:"pending",error:null,path:null,progressPercent:0}),I=async E=>{const V=E.target,v=$(V.files);if(!v.length)return;if(!f.value.ok){V.value="";return}const T=v.filter(j=>vo(j,t.max_size)&&_o(j,d.value));if(!T.length){V.value="";return}try{a.value=!0,l.value="",s.value=T.map((U,oe)=>G(U,oe));const te=(await Promise.allSettled(s.value.map(U=>C(U.file,U)))).filter(U=>U.status==="fulfilled").map(U=>U.value).filter(U=>!!U),D=s.value.filter(U=>U.status==="error").map(U=>U.file.name);if(te.length===0){l.value="Не вдалося завантажити файл";return}D.length>0?he.notify({type:"warning",title:"Частина файлів не завантажилась",message:D.join(", "),position:"right-bottom"}):he.notify({type:"success",title:"Файл завантажено",message:T.length>1?`Завантажено ${te.length} файлів`:T[0].name,position:"right-bottom"})}finally{a.value=!1,s.value=[],V.value=""}};return(E,V)=>(e.openBlock(),e.createElementBlock("div",Di,[e.createElementVNode("div",Ti,[e.createElementVNode("input",{ref_key:"fileInput",ref:r,type:"file",class:"hidden",multiple:i.value,accept:h.value,disabled:a.value||t.disabled,onChange:I},null,40,Li),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(g.value,(v,T)=>(e.openBlock(),e.createBlock(gt,{key:`${T}-${N(v)}`,multiple:!0,item:v,value:n.value,"onUpdate:value":V[0]||(V[0]=j=>n.value=j)},null,8,["item","value"]))),128)):p.value?(e.openBlock(),e.createBlock(gt,{key:1,item:p.value,value:n.value,"onUpdate:value":V[1]||(V[1]=v=>n.value=v)},null,8,["item","value"])):e.createCommentVNode("",!0),i.value?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:2},e.renderList(m.value,v=>(e.openBlock(),e.createBlock(gt,{key:v.key,action:"","is-uploading":!0,disabled:!0,"progress-percent":v.progressPercent,title:v.file.name},null,8,["progress-percent","title"]))),128)):k.value?(e.openBlock(),e.createBlock(gt,{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(gt,{action:"","is-uploading":!1,disabled:t.disabled||a.value,"progress-percent":b.value,title:i.value?"Добавить файлы":"Обновить файл",onClick:_},null,8,["disabled","progress-percent","title"])]),l.value?(e.openBlock(),e.createElementBlock("p",Ii,e.toDisplayString(l.value),1)):e.createCommentVNode("",!0)]))}});function Oi(o){let t="";for(let r=0;r<o.length;r+=32768)t+=String.fromCharCode(...o.subarray(r,r+32768));return btoa(t)}async function vr(o){const t=await o.arrayBuffer();return{name:o.name,content:Oi(new Uint8Array(t))}}function Co(o,t="application/octet-stream"){const n=atob(o),r=new Uint8Array(n.length);for(let a=0;a<n.length;a++)r[a]=n.charCodeAt(a);return new Blob([r],{type:t})}function _r(o,t="application/octet-stream"){return URL.createObjectURL(Co(o,t))}function Cr(o){const t=Co(o.content),n=document.createElement("a");n.href=window.URL.createObjectURL(t),n.setAttribute("download",o.name),n.click(),window.URL.revokeObjectURL(n.href)}function Eo(o){if(!o||typeof o!="object"||Array.isArray(o))return!1;const t=o;return typeof t.name=="string"&&typeof t.content=="string"&&!!t.content}const Pi={class:"vs-input-file64 flex flex-col gap-2"},Ri={class:"flex items-center flex-wrap gap-2"},zi=["multiple","accept","disabled"],ji=["title"],Ui=["src"],Hi={key:1,class:"flex h-full w-full flex-col items-center justify-center gap-1 px-2 text-slate-500"},qi={class:"line-clamp-2 text-center text-[10px] text-slate-600"},Wi={class:"absolute inset-0 hidden items-center justify-center gap-x-2 bg-black/50 group-hover:flex"},Ki=["disabled","onClick"],Gi=["onClick"],Yi=["onClick"],Xi=["title"],Zi={class:"line-clamp-2 max-w-full break-words text-center text-[11px] font-semibold leading-snug"},Ji=["title"],Qi={key:0,class:"text-sm text-rose-600"},Ln=e.defineComponent({__name:"vs-input-file64",props:e.mergeModels({format:{},multiple:{type:Boolean,default:!1},multi:{type:Boolean},max_size:{default:10},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=new Set(["tiff","jpg","jpeg","png","svg","ico","webp"]),n=o,r=e.useModel(o,"modelValue"),a=e.ref(null),l=e.ref(!1),s=e.ref("Обробка…"),c=e.ref(""),i=e.ref([]),d=e.ref([]),h=e.computed(()=>!!(n.multiple||n.multi)),g=e.computed(()=>xo(n.format)),p=e.computed(()=>{if(g.value.length)return g.value.map(I=>`.${I}`).join(",")});function f(){i.value.forEach(I=>URL.revokeObjectURL(I)),i.value=[]}function m(I){return i.value.push(I),I}function k(I){const E=I.name.split(".").pop()?.toLowerCase()||"",V=wo(I.name);return{...I,url:m(_r(I.content)),isImage:t.has(E),icon:V==="img"?"img":V}}function b(){if(f(),h.value){const I=Array.isArray(r.value)?r.value.filter(Eo):[];d.value=I.map(k);return}d.value=Eo(r.value)?[k(r.value)]:[]}async function _(){await e.nextTick(),await new Promise(I=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>I())})})}e.watch([()=>r.value,h],()=>b(),{immediate:!0,deep:!0}),e.onBeforeUnmount(()=>{f()});const C=()=>{n.disabled||l.value||a.value?.click()},N=I=>{if(h.value&&Array.isArray(r.value)){r.value=r.value.filter((E,V)=>V!==I);return}r.value=null},$=I=>{I.url&&window.open(I.url,"_blank")},q=I=>{Cr({name:I.name,content:I.content})},G=async I=>{const E=I.target,V=E.files?Array.from(E.files):[];if(!V.length)return;const v=V.filter(T=>vo(T,n.max_size)&&_o(T,g.value));if(!v.length){E.value="";return}l.value=!0,s.value=v.length>1?`Обробка… (${v.length})`:`Обробка… ${v[0].name}`,c.value="",await _();try{const T=await Promise.all(v.map(j=>vr(j)));if(h.value){const j=Array.isArray(r.value)?r.value.filter(Eo):[];r.value=[...j,...T]}else r.value=T[0]||null;he.notify({type:"success",title:"Файл додано",message:T.length>1?`Додано ${T.length} файлів`:T[0].name,position:"right-bottom"})}catch(T){console.error(T),c.value="Помилка при обробці файлу",he.notify({type:"error",title:"Помилка!",message:"Помилка при обробці файлу",position:"right-bottom"})}finally{l.value=!1,E.value=""}};return(I,E)=>(e.openBlock(),e.createElementBlock("div",Pi,[e.createElementVNode("div",Ri,[e.createElementVNode("input",{ref_key:"fileInput",ref:a,type:"file",class:"hidden",multiple:h.value,accept:p.value,disabled:I.disabled||l.value,onChange:G},null,40,zi),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(V,v)=>(e.openBlock(),e.createElementBlock("div",{key:`${v}-${V.name}`,class:"group relative h-[120px] w-[120px] overflow-hidden rounded-lg border border-dashed border-[#CFD9E0] text-gray-300",title:V.name},[V.isImage?(e.openBlock(),e.createElementBlock("img",{key:0,src:V.url,alt:"",class:"h-full w-full object-cover"},null,8,Ui)):(e.openBlock(),e.createElementBlock("div",Hi,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(V.icon),{class:"h-8 w-8"})),e.createElementVNode("span",qi,e.toDisplayString(V.name),1)])),e.createElementVNode("div",Wi,[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-red-500",disabled:I.disabled||l.value,onClick:T=>N(v)},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,Ki),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-emerald-600",onClick:T=>$(V)},[e.createVNode(e.unref(X.Eye),{class:"h-4 w-4"})],8,Gi),e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 items-center justify-center rounded-lg bg-gray-200 text-gray-500 hover:text-blue-500",onClick:T=>q(V)},[e.createVNode(e.unref(X.Download),{class:"h-4 w-4"})],8,Yi)])],8,ji))),128)),l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"box-border flex h-[120px] w-[120px] flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-blue-400 bg-blue-50 p-2 text-blue-600",title:s.value},[E[0]||(E[0]=e.createElementVNode("div",{class:"h-6 w-6 shrink-0 animate-spin rounded-full border-[3px] border-blue-100 border-t-blue-600"},null,-1)),e.createElementVNode("span",Zi,e.toDisplayString(s.value),1)],8,Xi)):!I.disabled&&(h.value||!d.value.length)?(e.openBlock(),e.createElementBlock("div",{key:1,class:"flex h-[120px] w-[120px] cursor-pointer items-center justify-center rounded-lg border border-dashed border-[#CFD9E0] text-gray-300 transition-all hover:border-blue-500 hover:bg-blue-50 hover:text-blue-500",title:h.value?"Добавить файлы":"Выбрать файл",onClick:C},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"})],8,Ji)):e.createCommentVNode("",!0)]),c.value?(e.openBlock(),e.createElementBlock("p",Qi,e.toDisplayString(c.value),1)):e.createCommentVNode("",!0)]))}}),ec={class:"flex items-center justify-center h-[30px] w-[30px]"},tc={class:"max-w-[55vw]"},nc={class:"text-sm font-semibold text-gray-800 truncate dark:text-neutral-200"},oc={class:"flex items-center text-xs text-gray-500 truncate dark:text-neutral-500"},rc={class:"px-[5px]"},lc={class:""},In=e.defineComponent({__name:"vs-widget-file-info",props:{item:{default:null}},setup(o){const t=o,n=e.computed(()=>{try{return new Date(t.item.cdate).toLocaleDateString("uk-UA",{day:"2-digit",month:"long",year:"numeric"})}catch{return""}});function r(a){if(a<1024)return`${a} B`;const l=a/1024;return l<1024?`${l.toFixed(2)} KB`:`${(l/1024).toFixed(2)} MB`}return(a,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",ec,[e.createVNode(e.unref(X.FileText),{class:"icon icon-tabler icons-tabler-outline icon-tabler-file h-4 w-4"})]),e.createElementVNode("div",tc,[e.createElementVNode("p",nc,e.toDisplayString(a.item?.uploaded_name),1),e.createElementVNode("p",oc,[e.createElementVNode("span",null,e.toDisplayString(a.item?.username),1),e.withDirectives(e.createElementVNode("span",rc,"|",512),[[e.vShow,a.item?.username]]),e.createElementVNode("span",null,e.toDisplayString(n.value),1),l[0]||(l[0]=e.createElementVNode("span",{class:"px-[5px]"},"|",-1)),e.createElementVNode("span",lc,e.toDisplayString(r(a.item?.size)),1)])])],64))}}),ac={class:"p-3 relative group flex items-center gap-x-3 border border-gray-200 bg-white rounded-md w-full"},sc={key:0,class:"flex w-full gap-x-3 items-center"},ic={key:1,class:"flex gap-x-3 w-full items-center"},cc={key:2,class:"flex gap-x-3 w-full items-center"},dc=["href"],uc={key:3,class:"flex gap-x-3 w-full items-center"},pc={class:"lg:absolute lg:top-3 lg:end-1 opacity-100"},mc={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"},fc={class:"inline-block"},hc={class:"inline-block"},gc={class:"inline-block"},yc=e.defineComponent({__name:"vs-widget-file-item",props:{item:{default:null},index:{default:0},prefix:{default:"/api"}},emits:["update","openModal","openLightbox"],setup(o,{emit:t}){const n=o,r=t;function a(g){return["pdf","json"].includes(g.ext)}function l(g){return["ppt","pptx","doc","docx","xls","xlsx"].includes(g.ext)}function s(g){const p=document.createElement("a");p.setAttribute("download",g?.uploaded_name),p.href=g?.file_path,p.click()}function c(g){g?.file_path&&window.open(g.file_path,"_blank")}async function i(){try{await fetch(`${n.prefix}/widget/file/${n.item.entity_id}/${n.item.file_id}`,{method:"DELETE"}),r("update")}catch(g){console.error(g)}}function d(){r("openModal",{title:"Ви впевнені?",message:"Ви впевнені, що хочете видалити цей файл?",confirmButtonText:"Так, я впевнена/ий",cancelButtonText:"Скасувати",confirm:i,updateListOnConfirm:!0})}function h(g){(n.item.ext==="jpg"||n.item.ext==="png")&&r("openLightbox",{item:n.item,index:g})}return(g,p)=>(e.openBlock(),e.createElementBlock("div",ac,[g.item.ext==="jpg"||g.item.ext==="png"?(e.openBlock(),e.createElementBlock("div",sc,[e.createElementVNode("div",{class:"max-w-[55vw] cursor-pointer flex gap-x-3 w-full items-center",onClick:p[0]||(p[0]=f=>h(g.index))},[e.createVNode(In,{item:g.item},null,8,["item"])])])):a(g.item)?(e.openBlock(),e.createElementBlock("div",ic,[e.createVNode(In,{item:g.item},null,8,["item"])])):l(g.item)?(e.openBlock(),e.createElementBlock("div",cc,[e.createElementVNode("a",{href:`/api/file-preview?id=${g.item.file_id}`,target:"_blank",class:"flex gap-x-3 w-full items-center"},[e.createVNode(In,{item:g.item},null,8,["item"])],8,dc)])):(e.openBlock(),e.createElementBlock("div",uc,[e.createVNode(In,{item:g.item},null,8,["item"])])),e.createElementVNode("div",pc,[e.createElementVNode("div",mc,[e.createElementVNode("div",fc,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:p[1]||(p[1]=f=>c(g.item))},[e.createVNode(e.unref(X.Eye),{class:"h-4 w-4"})])]),e.createElementVNode("div",hc,[e.createElementVNode("button",{class:"inline-flex p-[6px] justify-center items-center gap-x-2 rounded-lg border border-transparent text-gray-500 hover:bg-gray-100 disabled:opacity-50 disabled:pointer-events-none dark:text-neutral-400 focus:outline-none focus:bg-gray-100 dark:hover:bg-neutral-700 dark:focus:bg-neutral-700",onClick:p[2]||(p[2]=f=>s(g.item))},[e.createVNode(e.unref(X.Download),{class:"h-4 w-4"})])]),p[4]||(p[4]=e.createElementVNode("div",{class:"w-px h-5 mx-1 bg-gray-200 dark:bg-neutral-700"},null,-1)),e.createElementVNode("div",gc,[e.createElementVNode("button",{type:"button",class:"size-[30px] inline-flex justify-center items-center gap-x-2 rounded-lg border border-transparent text-red-600 hover:bg-red-100 disabled:opacity-50 disabled:pointer-events-none focus:outline-none focus:bg-red-100 dark:text-red-500 dark:hover:bg-red-500/20 dark:focus:bg-red-500/20",onClick:p[3]||(p[3]=f=>d())},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})])])])])]))}}),bc={class:"flex flex-col widget-file xl:bg-white xl:rounded-xl dark:xl:bg-neutral-800 dark:xl:border-neutral-700 w-full"},kc={class:"flex w-full mb-[12px] items-center gap-x-2"},wc={class:"font-semibold text-gray-800 dark:text-neutral-200 text-[14px]"},xc={class1:"ml-auto"},vc={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"},_c={key:0,class:"py-4 mb-4 space-y-4 border-gray-200 border-y dark:border-neutral-700"},Cc={class:"relative"},Ec={class:"absolute inset-y-0 start-0 flex items-center pointer-events-none z-[1] ps-3.5"},Bc={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"},Vc={key:0},Er=e.defineComponent({__name:"vs-input-file-list",props:{id:{default:""},prefix:{default:"/api"},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},emits:["update"],setup(o,{emit:t}){const n=o,r=e.inject("form"),a=e.computed(()=>r.value.formId),l=e.ref(!1),s=e.ref(0),c=t,i=e.ref(!1),d=e.ref({}),h=e.ref([]),g=e.ref(""),p=e.computed(()=>Array.isArray(h.value)?h.value.filter(N=>N.ext==="jpg"||N.ext==="png").map(N=>N?.file_path):[]),f=e.computed(()=>g.value===""?h.value:h.value.filter(N=>N?.uploaded_name?.includes(g.value))),m=N=>{const $=p.value.findIndex(q=>q===N.item.file_path);$!==-1&&(l.value=!0,s.value=$)},k=async()=>{try{const N=await fetch(`${n.prefix}/widget/file/${a.value}`).then($=>$.json());h.value=N?.rows}catch(N){console.error(N)}},b=async N=>{await Promise.all(Array.from(N.target.files).map(async $=>{const q=new FormData;q.append("file",$);try{const G=`${n.prefix}/widget/file/${a.value}`,I=await fetch(G,{method:"POST",body:q});return I.ok?(c("update","file-list"),$):(he.notify({type:I.status>=400&&I.status<500?"warning":"error",title:"Error",message:`Error code: ${I.status}`}),null)}catch(G){return he.notify({type:"error",title:"Error",message:G.message||"Unknown error"}),console.error(G),null}})),await k()},_=N=>{const $={...N};return N.cancel||($.cancel=()=>{i.value=!1}),N.updateListOnConfirm&&($.confirm=async()=>{await N.confirm(),i.value=!1,k()}),$},C=N=>{d.value=_(N),i.value=!0};return e.watch(a,N=>{N&&k()}),e.onMounted(()=>{a.value&&k()}),(N,$)=>{const q=e.resolveComponent("Lightbox"),G=e.resolveComponent("MessageBox");return e.openBlock(),e.createElementBlock("div",bc,[e.createElementVNode("div",kc,[e.createElementVNode("h2",wc," Файлів: "+e.toDisplayString(h.value?.length),1),e.createElementVNode("div",xc,[e.createElementVNode("label",null,[e.createElementVNode("input",{type:"file",class:"hidden",onChange:$[0]||($[0]=I=>b(I))},null,32),e.createElementVNode("div",vc,[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4"})])])])]),h.value?.length>4?(e.openBlock(),e.createElementBlock("div",_c,[e.createElementVNode("div",null,[e.createElementVNode("div",Cc,[e.createElementVNode("div",Ec,[e.createVNode(e.unref(X.Search),{class:"flex-shrink-0 text-gray-500 size-4 dark:text-neutral-400"})]),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":$[1]||($[1]=I=>g.value=I),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,g.value,void 0,{trim:!0}]])])])])):e.createCommentVNode("",!0),h.value?.length?(e.openBlock(),e.createElementBlock("div",Bc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,(I,E)=>(e.openBlock(),e.createBlock(yc,{key:E,prefix:N.prefix,item:I,index:E,onUpdate:$[2]||($[2]=V=>N.$emit("update","file-list")),onOpenModal:$[3]||($[3]=V=>C(V)),onOpenLightbox:$[4]||($[4]=V=>m(V))},null,8,["prefix","item","index"]))),128)),f.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Vc,$[8]||($[8]=[e.createElementVNode("p",{class:"text-sm text-gray-600 font-sm"}," Файлів з такою назвою не існує, введіть інше пошукове слово ",-1)])))])):e.createCommentVNode("",!0),e.createVNode(q,{modelValue:l.value,"onUpdate:modelValue":$[5]||($[5]=I=>l.value=I),startIndex:s.value,"onUpdate:index":$[6]||($[6]=I=>s.value=I),images:p.value},null,8,["modelValue","startIndex","images"]),e.createVNode(G,e.mergeProps({modelValue:i.value,"onUpdate:modelValue":$[7]||($[7]=I=>i.value=I),onConfirm:d.value.confirm},d.value),null,16,["modelValue","onConfirm"])])}}}),Sc={class:"flex items-center justify-between"},$c={class:"text-[16px] text-gray-900 font-medium"},Ac={class:"grid gap-3"},Nc=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,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("div",Sc,[e.createElementVNode("p",$c,e.toDisplayString(o.title),1),e.createVNode(co,{modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=l=>n.value=l),style:e.normalizeStyle(o.style)},null,8,["modelValue","style"])]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Ac,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-90320b87"]]),Mc={class:"text-[16px] text-gray-900 font-medium"},Fc={class:"grid gap-3"},Dc=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,a)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("button",{type:"button",onClick:a[0]||(a[0]=l=>n.value=!n.value),class:"flex items-center gap-2"},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 duration-300",[n.value?"-rotate-180":""]])},null,8,["class"]),e.createElementVNode("span",Mc,e.toDisplayString(o.title),1)]),e.createVNode(e.Transition,{name:"slide-fade"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",Fc,[e.renderSlot(r.$slots,"default",{},void 0,!0)],512),[[e.vShow,n.value]])]),_:3})]))}}),[["__scopeId","data-v-0c825d65"]]),Tc={class:"flex items-center justify-between"},Lc={switcher:Nc,accordion:Dc,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",Tc,[e.createElementVNode("p",null,e.toDisplayString(o.title),1)]),e.renderSlot(t.$slots,"default")]))}})},ct={Equal:"==",Inequal:"!=",Higer:">",HigerOrEqual:">=",Lower:"<",LowerOrEqual:"<=",Between:"between",StartWith:"^",EndWith:"$",Contain:"*",In:"in",NotIn:"not_in"},Ic=(o,t)=>String(o)===String(t),Oc=(o,t)=>String(o)!==String(t),Pc=(o,t)=>o>t,Rc=(o,t)=>o>=t,zc=(o,t)=>o<t,jc=(o,t)=>o<=t,Uc=(o,t)=>Array.isArray(t)&&t.length===2?o>=t[0]&&o<=t[1]:!1,Hc=(o,t)=>String(o).startsWith(String(t)),qc=(o,t)=>String(o).endsWith(String(t)),Wc=(o,t)=>String(o).includes(String(t)),Kc=(o,t)=>Array.isArray(t)?t.includes(o):!1,Gc=(o,t)=>Array.isArray(t)?!t.includes(o):!0,Yc=(o,t)=>{if(!t)return!0;switch(t?.[1]){case ct.Equal:return Ic(o,t?.[2]);case ct.Inequal:return Oc(o,t?.[2]);case ct.Higer:return Pc(o,t?.[2]);case ct.HigerOrEqual:return Rc(o,t?.[2]);case ct.Lower:return zc(o,t?.[2]);case ct.LowerOrEqual:return jc(o,t?.[2]);case ct.Between:return Uc(o,t?.[2]);case ct.StartWith:return Hc(o,t?.[2]);case ct.EndWith:return qc(o,t?.[2]);case ct.Contain:return Wc(o,t?.[2]);case ct.In:return Kc(o,t?.[2]);case ct.NotIn:return Gc(o,t?.[2]);default:return!0}};function Br(o,t,n){return t==null||!Array.isArray(t)||t.length===0?!0:(Array.isArray(t[0])?t:[t]).every(a=>{if(!Array.isArray(a)||a.length<2)return!0;const l=a[0],s=n?o?.[n]?.[l]??o?.[l]:o?.[l];return Yc(s,a)})}const Vr=e.defineComponent({__name:"vs-input-container",props:{style:{type:Object,default:()=>({})},title:{type:String,default:""},view:{type:String,default:"default"},name:{type:String,default:""},schema:{type:Array,default:()=>[]}},setup(o){const t=o,n=e.inject("values",e.ref({})),r=e.inject("form"),a=e.computed(()=>t.schema?.filter(c=>Br(n.value,c?.conditions,t.name||void 0))),l=e.computed(()=>Lc[t.view]),s=e.computed(()=>{if(n.value||(n.value={}),!t.name)return n.value;const c=n.value[t.name];if(c)return c;const i={};return n.value={...n.value,[t.name]:i},i});return(c,i)=>o.schema?.length?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{key:0,title:o.title,style:e.normalizeStyle(o.style)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,d=>(e.openBlock(),e.createBlock(Qr,e.mergeProps({key:d.name},{ref_for:!0},d,{item:d,modelValue:s.value[d.name],"onUpdate:modelValue":h=>s.value[d.name]=h,style:o.style,error:e.unref(r)?.errors?.[d.name]}),null,16,["item","modelValue","onUpdate:modelValue","style","error"]))),128))]),_:1},8,["title","style"])):e.createCommentVNode("",!0)}}),Sr=({props:o,fetchOptionByValue:t,optionsList:n,selectedOption:r,modelValue:a,onCreated:l})=>{const s=e.ref(!1),c=e.ref({}),i=e.ref([]),d=e.ref(null),h=e.computed(()=>o.add?.title||"Додати"),g=e.computed(()=>o.add?.token||o.add?.model||""),p=e.computed(()=>o.add?.pk||"id");return{isOpenAdd:s,addData:c,addSchema:i,addForm:d,addTitle:h,addOption:async()=>{if(!(!g.value||d?.value.validate()))try{const b=o.add?.api??`/api/table/${g.value}`,_=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c.value)}),C=await _.json().catch(()=>({})),N=C?.error||C?.message,$=Number(C?.code)>=400;if(!_.ok||$){he.notify({title:"Помилка",type:"error",message:N||`Код помилки: ${C?.code||_.status}`});return}const q=C?.rows?.[0],G=C?.[p.value]??C?.id??q?.[p.value]??q?.id;if(!G){he.notify({title:"Помилка",type:"error",message:"Обʼєкт створено, але в відповіді відсутній ID."});return}const I=await t(G);I&&(n.value.some(V=>String(V?.id)===String(I.id))||n.value.push(I)),l?await l(I,G):I&&(r.value=I,a.value=G),s.value=!1,he.notify({title:"Успіх",message:"Обʼєкт успішно створено."})}catch(b){he.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 i.value=k.schema,c.value={},s.value=!0,null}}},Xc=["aria-expanded","data-focus"],Zc={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"},Jc={key:0,class:"flex flex-nowrap items-center gap-1 overflow-x-auto overflow-y-hidden min-w-0 flex-1 py-0.5"},Qc={class:"flex items-center gap-1 min-w-0"},ed=["title"],td=["innerHTML"],nd=["onClick"],od={class:"flex-1 min-w-[2px]"},rd=["placeholder"],ld=["title"],ad=["innerHTML"],sd={key:3,class:"truncate flex-1 min-w-0"},id={key:2,class:"flex-1 min-w-[2px]"},cd=["placeholder"],dd={key:3,class:"flex-1 flex items-center min-h-[30px] py-0.5 pl-2 text-sm truncate text-inherit"},ud={class:"vs-input-select__actions relative z-10 flex items-center shrink-0 bg-white"},pd=["disabled"],md={key:1,class:"self-stretch w-px bg-[#ccc] my-[1px]"},fd=["disabled","title"],hd=e.defineComponent({__name:"vs-select-control",props:{disabled:{type:Boolean},isOpen:{type:Boolean},inputFocus:{type:Boolean},isMulti:{type:Boolean},selectedOptions:{},selectedIds:{},placeholder:{},search:{type:Boolean},optionTemplate:{default:""},iconWrapperClass:{},selectedOptionLabel:{},selectedOption:{},showClear:{type:Boolean},keyWord:{default:""},setTriggerRef:{},setInputRef:{},shouldShowColorDot:{},optionHasIcon:{},getIconColorStyle:{},resolveOptionIcon:{},renderTemplate:{},getLabel:{},onControlKeydown:{},onControlClick:{},onInputFocus:{},onInputBlur:{},onInputKeydown:{},onRemoveSelected:{},onClearSelected:{},onToggleSelect:{}},emits:["update:keyWord"],setup(o,{emit:t}){const n=o,r=t,a=e.computed({get:()=>n.keyWord,set:l=>r("update:keyWord",l)});return(l,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vs-input-select__control flex min-h-[38px] items-center justify-between rounded transition-colors bg-white",l.disabled?"bg-gray-100 text-gray-400 cursor-not-allowed":""]),role:"combobox","aria-expanded":l.isOpen,"aria-haspopup":"listbox",onKeydown:s[10]||(s[10]=(...c)=>l.onControlKeydown&&l.onControlKeydown(...c)),onClick:s[11]||(s[11]=(...c)=>l.onControlClick&&l.onControlClick(...c)),"data-focus":l.isOpen||l.inputFocus?"true":"false",ref:l.setTriggerRef},[e.createElementVNode("div",Zc,[l.isMulti?(e.openBlock(),e.createElementBlock("div",Jc,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.selectedOptions,c=>(e.openBlock(),e.createElementBlock("div",{key:c.id,class:"flex min-w-0 bg-[rgb(230,230,230)] rounded-[2px] m-[2px] box-border max-w-full"},[e.createElementVNode("div",Qc,[l.shouldShowColorDot(c)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[16px] h-[16px] rounded-md block ml-1.5 flex-shrink-0",style:e.normalizeStyle({backgroundColor:c?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(c)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(c)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(c)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:"truncate text-[#172b4d] overflow-hidden max-w-[200px] px-0.5 pl-1.5",title:l.getLabel(c)},[l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:l.renderTemplate(c)},null,8,td)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c.text),1)],64))],8,ed)]),e.createElementVNode("div",{role:"button",class:"flex items-center rounded-sm px-1 box-border text-[#172b4d] hover:bg-[rgb(255,189,173)] hover:text-[rgb(222,53,11)] flex-shrink-0",onClick:e.withModifiers(i=>l.onRemoveSelected(c.id),["stop"])},[e.createVNode(e.unref(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,nd)]))),128)),e.createElementVNode("div",od,[!l.disabled&&l.search?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref:l.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:l.selectedIds.length?" ":l.placeholder,"onUpdate:modelValue":s[0]||(s[0]=c=>a.value=c),onFocus:s[1]||(s[1]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[2]||(s[2]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[3]||(s[3]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,rd)),[[e.vModelText,a.value]]):e.createCommentVNode("",!0)])])):!l.isMulti&&l.selectedOptionLabel&&a.value===""?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["truncate flex items-center gap-1 min-w-0 pl-2",l.disabled||!l.search?"relative z-0 flex-1 min-h-[30px] py-0.5 text-inherit":"absolute inset-x-0 top-0 bottom-0 z-[1] text-gray-900 pointer-events-none"]),title:l.selectedOptionLabel},[l.shouldShowColorDot(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[14px] h-[14px] rounded-md block flex-shrink-0",style:e.normalizeStyle({backgroundColor:l.selectedOption?.color})},null,4)):e.createCommentVNode("",!0),!l.optionTemplate&&l.optionHasIcon(l.selectedOption)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(l.iconWrapperClass),style:e.normalizeStyle(l.getIconColorStyle(l.selectedOption)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.resolveOptionIcon(l.selectedOption)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),l.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:2,class:"truncate flex-1 min-w-0",innerHTML:l.renderTemplate(l.selectedOption)},null,8,ad)):(e.openBlock(),e.createElementBlock("span",sd,e.toDisplayString(l.selectedOption?.text),1))],10,ld)):e.createCommentVNode("",!0),!l.isMulti&&!l.disabled&&l.search?(e.openBlock(),e.createElementBlock("div",id,[e.withDirectives(e.createElementVNode("input",{ref:l.setInputRef,class:"w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900 hover:cursor-pointer",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-autocomplete":"list",placeholder:l.selectedOptionLabel?" ":l.placeholder,"onUpdate:modelValue":s[4]||(s[4]=c=>a.value=c),onFocus:s[5]||(s[5]=(...c)=>l.onInputFocus&&l.onInputFocus(...c)),onBlur:s[6]||(s[6]=(...c)=>l.onInputBlur&&l.onInputBlur(...c)),onKeydown:s[7]||(s[7]=(...c)=>l.onInputKeydown&&l.onInputKeydown(...c))},null,40,cd),[[e.vModelText,a.value]])])):!l.isMulti&&l.disabled&&(!l.selectedOptionLabel||a.value!=="")?(e.openBlock(),e.createElementBlock("div",dd,e.toDisplayString(l.placeholder),1)):e.createCommentVNode("",!0)]),e.createElementVNode("div",ud,[l.showClear?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:l.disabled,onClick:s[8]||(s[8]=e.withModifiers((...c)=>l.onClearSelected&&l.onClearSelected(...c),["stop"]))},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,pd)):e.createCommentVNode("",!0),l.showClear?(e.openBlock(),e.createElementBlock("div",md)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-hidden":"true",disabled:l.disabled,onClick:s[9]||(s[9]=e.withModifiers((...c)=>l.onToggleSelect&&l.onToggleSelect(...c),["stop"])),title:l.isOpen?"Закрити список":"Відкрити список"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],8,fd)])],42,Xc))}}),gd=["aria-disabled","onMousedown"],yd={class:"leading-[19px]"},bd=["innerHTML"],kd={key:1,class:"px-3 py-2 text-center text-gray-500"},wd=e.defineComponent({__name:"vs-select-dropdown",props:{isOpen:{type:Boolean},dropdownStyle:{},filteredOptionsList:{},selectedNavIndex:{},optionTemplate:{},iconWrapperClass:{},setDropdownRef:{type:Function},setListRef:{type:Function},setItemRef:{type:Function},isSelected:{type:Function},onOptionClick:{type:Function},shouldShowColorDot:{type:Function},optionHasIcon:{type:Function},getIconColorStyle:{type:Function},resolveOptionIcon:{type:Function},renderTemplate:{type:Function}},setup(o){return(t,n)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[t.isOpen?(e.openBlock(),e.createElementBlock("div",{key:0,ref:t.setDropdownRef,class:"fixed z-[3000] rounded bg-white shadow-[0_0_0_1px_rgba(0,0,0,0.1),0_4px_11px_rgba(0,0,0,0.1)]",style:e.normalizeStyle(t.dropdownStyle),role:"listbox"},[e.createElementVNode("div",{class:"overflow-y-auto py-1",style:e.normalizeStyle({maxHeight:t.dropdownStyle.maxHeight||"300px"}),ref:t.setListRef},[t.filteredOptionsList.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(t.filteredOptionsList,(r,a)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,ref_for:!0,ref:l=>t.setItemRef(l,a),class:e.normalizeClass(["flex px-3 py-2 gap-2 cursor-pointer select-none text-gray-900",t.isSelected(r.id)?"bg-[#2684ff] text-white":"bg-white hover:bg-[#deebff] hover:text-[#172b4d]",t.selectedNavIndex===a&&!t.isSelected(r.id)?"bg-[#deebff] text-[#172b4d]":""]),"aria-disabled":t.isSelected(r.id)?"true":"false",role:"option",tabindex:"-1",onMousedown:e.withModifiers(l=>t.onOptionClick(r),["prevent","stop"])},[t.shouldShowColorDot(r)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"w-[11px] h-[11px] rounded-full block flex-shrink-0",style:e.normalizeStyle({backgroundColor:r?.color})},null,4)):e.createCommentVNode("",!0),!t.optionTemplate&&t.optionHasIcon(r)?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(t.iconWrapperClass),style:e.normalizeStyle(t.getIconColorStyle(r)),"aria-hidden":"true"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.resolveOptionIcon(r)),{class:"w-full h-full",focusable:"false"}))],6)):e.createCommentVNode("",!0),e.createElementVNode("div",yd,[t.optionTemplate?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.renderTemplate(r)},null,8,bd)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.text),1)],64))])],42,gd))),128)):(e.openBlock(),e.createElementBlock("div",kd," No options "))],4)],4)):e.createCommentVNode("",!0)]))}}),xd={class:"flex justify-end items-center gap-x-2 py-3 px-4 border-t border-gray-200 w-full"},vd=["onClick"],_d=["disabled"],Cd="__autoMeta",$r="w-[16px] h-[16px] flex items-center justify-center flex-shrink-0 text-current",Bo=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,a=e.computed(()=>n.multiple),l=e.computed(()=>n.disabled),s=e.computed(()=>n.search);Qe(n.style);const c=e.computed({get:()=>n.modelValue,set:W=>r("update:modelValue",W)});(c.value===null||c.value===void 0||c.value==="")&&n.defaultValue!=null&&(c.value=n.defaultValue);const i=e.ref(null),d=e.ref(null),h=e.ref(null),g=e.ref(null),p=e.ref(!1),f=e.ref(!1),m=e.ref(null),k=e.ref(-1),b=e.ref([]),_=e.ref(""),C=e.ref(null),N=W=>{d.value=W},$=W=>{C.value=W},q=W=>{g.value=W},G=W=>{h.value=W},I=(W,re)=>{b.value[re]=W},E=e.ref({}),V=e.ref([]),v=e.computed(()=>{if(!V.value.length)return[];const W=ge.value,re=new Map(W.map(pe=>[pe.id?.toString(),pe]));return V.value.map(pe=>re.get(pe?.toString())).filter(pe=>!!pe)}),T=e.computed(()=>n.placeholder||"Select..."),j=e.computed(()=>ae(m.value)),te=e.computed(()=>l.value?!1:a.value?V.value.length>0:c.value!==null&&c.value!==void 0&&c.value!==""),D=W=>a.value?V.value.some(re=>re?.toString()===W?.toString()):c.value?.toString()===W?.toString(),U=e.computed(()=>{let W=ge.value??[];if(!n.data&&_.value.trim()!==""){const re=_.value.toLowerCase();W=W.filter(pe=>{const Ve=ae(pe).toLowerCase(),Pe=pe.text?.toLowerCase?.()||"";return Ve.includes(re)||Pe.includes(re)})}if(a.value&&V.value.length){const re=new Set(V.value.map(pe=>pe?.toString()));W=W.filter(pe=>!re.has(pe.id?.toString()))}return W}),oe=e.inject("values"),R=e.inject("field-props"),H=e.computed(()=>n.slot??n?.optionTemplate??""),Z=W=>Vn(W,H.value),ae=W=>Sn(W,H.value),O=e.computed(()=>Cn(H.value)),A=W=>rn(W),M=W=>!!(!O.value&&Dt(W)&&!A(W)),Q=W=>{const re=Dt(W);return re?{color:re}:void 0},se=W=>!!(!O.value&&(on(W)||A(W))),ee=(W,re,pe)=>{if(!R)return!1;const Ve=R.value?.[W]??{},Pe=(Re,Ze,xt)=>{if(!Ze.length)return Re;const[mt,...vt]=Ze,ft={...Re};if(!vt.length)return ft[mt]=xt,ft;const zt=typeof Re[mt]=="object"&&Re[mt]!==null?Re[mt]:{};return ft[mt]=Pe(zt,vt,xt),ft},Xe=Pe(Ve,re,pe);return R.value={...R.value||{},[W]:Xe},!0},me=W=>{if(!R||!n.name)return;const re=R.value?.[n.name]??{};R.value={...R.value||{},[n.name]:{...re,[Cd]:W}}},ke=W=>{if(!n.set)return;const re=oe?.value;!re&&!R||Object.entries(n.set).forEach(([pe,Ve])=>{if(!pe)return;const Pe=W?W[Ve]:null,Xe=pe.split(".").map(xt=>xt.trim()).filter(Boolean);if(!Xe.length)return;const[Re,...Ze]=Xe;Ze.length&&ee(Re,Ze,Pe??null)||re&&(re[Re]=Pe??null)})},{optionsList:ge,parentValue:Se,fetchOptions:Ne,fetchOptionByValue:$e,loadOptions:Oe}=Bn({props:n,formValues:oe,watchParent:!1}),Me=W=>W==null?"":String(W),ne=W=>{if(a.value){if(!V.value.length){ge.value=W;return}}else if(!m.value){ge.value=W;return}const re=new Set(W.map(Ve=>Me(Ve.id)).filter(Boolean));if(a.value){const Ve=new Set(V.value.map(Xe=>Me(Xe)).filter(Boolean)),Pe=(ge.value??[]).filter(Xe=>{const Re=Me(Xe.id);return!Re||!Ve.has(Re)?!1:!re.has(Re)});ge.value=[...Pe,...W];return}const pe=Me(m.value?.id);if(pe&&!re.has(pe)){ge.value=[m.value,...W];return}ge.value=W},de=e.ref(0),xe=async W=>{const re=++de.value,pe=await Ne(W);return re!==de.value?null:pe},ve=async()=>{if(n.data){const W=await xe(_.value);return W&&ne(W),ge.value}return Oe()},ze=async W=>{if(W==null||W==="")return null;const re=ge.value?.find(pe=>pe?.id?.toString()===String(W));return re||$e(W)},Te=async W=>{const re=new Set(ge.value.map(Ve=>Ve.id?.toString())),pe=W.filter(Ve=>!re.has(Ve?.toString()));pe.length&&await pe.reduce(async(Ve,Pe)=>{await Ve;const Xe=await ze(Pe);Xe&&ge.value.push(Xe)},Promise.resolve())},Je=()=>{if(!U.value.length){k.value=-1;return}let W=0;if(!a.value&&m.value){const re=m.value.id?.toString(),pe=U.value.findIndex(Ve=>Ve.id?.toString()===re);pe>=0&&(W=pe)}k.value=W,e.nextTick(()=>{P(b.value[W],h.value)})},Ae=async()=>{l.value||(p.value=!0,await e.nextTick(()=>{we()}),await ve(),await e.nextTick(()=>{we(),C.value?.focus()}),Je())},Fe=()=>{p.value=!1,k.value=-1,e.nextTick(()=>{C.value?.blur()})},ut=async W=>{if(l.value)return;(W!==void 0?W:!p.value)?await Ae():Fe()},z=async()=>{if(!l.value){if(p.value){Fe();return}await Ae()}},J=()=>{a.value?(V.value=[],c.value=[],r("change",[]),F(null,[])):(m.value=null,c.value=null,r("change",null),F(null,null)),ke(null),me(null),_.value="",Fe(),e.nextTick(()=>{C.value?.focus()})},ie=W=>{a.value&&(V.value=V.value.filter(re=>re?.toString()!==W?.toString()),c.value=[...V.value],r("change",c.value),F(null),e.nextTick(()=>C.value?.focus()))},F=(W,re)=>{const pe=re??(a.value?[...V.value]:W?.id??null);r("value-selected",{name:n.name,value:pe,option:W})},w=(W,re="manual")=>{a.value?(D(W.id)||(V.value=[...V.value,W.id],c.value=[...V.value],r("change",c.value),F(W)),_.value="",e.nextTick(()=>{C.value?.focus(),k.value=Math.min(k.value,U.value.length-1)}),ke(null)):(m.value=W,c.value=W.id,r("change",c.value),F(W),_.value="",Fe(),ke(W),re==="parent-auto"&&me({source:re,parentField:n.parent??null,parentValue:Se.value??null}))},S=W=>{if(D(W.id)){a.value||Fe();return}w(W)},P=(W,re)=>{if(!W||!re)return;const pe=W.offsetTop,Ve=pe+W.offsetHeight,Pe=re.scrollTop,Xe=Pe+re.clientHeight;let Re=re.scrollTop;pe<Pe?Re=pe-80:Ve>Xe&&(Re=Ve-re.clientHeight+4);const Ze=re;Ze.scrollTop=Re},le=W=>{let re=W.parentElement;for(;re;){if(re.classList.contains("ui-dialog__content"))return re;const pe=window.getComputedStyle(re),Ve=pe.overflow+pe.overflowY+pe.overflowX;if(Ve.includes("auto")||Ve.includes("scroll")||re===document.body||re===document.documentElement)return re;re=re.parentElement}return document.body},we=()=>{if(!d.value)return;const W=d.value.getBoundingClientRect(),re=window.innerHeight||document.documentElement.clientHeight,pe=window.innerWidth||document.documentElement.clientWidth,Ve=8,Pe=8,Xe=n.maxHeight||300,Re=re-W.bottom-Pe-Ve,Ze=W.top-Pe-Ve,xt=Re>=Ze,mt=Math.max(pe-Ve*2,0);let{width:vt}=W;mt>0&&vt>mt&&(vt=mt);let{left:ft}=W;ft+vt+Ve>pe&&(ft=pe-vt-Ve),ft=Math.max(ft,Ve);const zt=Math.min(Xe,Math.max(xt?Re:Ze,50));E.value={position:"fixed",left:`${ft}px`,width:`${vt}px`,maxHeight:`${zt}px`,transform:xt?"none":"translateY(-100%)",top:xt?`${W.bottom+Pe}px`:`${W.top-Pe}px`}},Le=async W=>{l.value||!p.value&&(W.key==="ArrowDown"||W.key==="ArrowUp")&&(W.preventDefault(),await Ae())},De=W=>{if(!p.value)return;const{key:re}=W;if(re==="ArrowDown")W.preventDefault(),k.value+1<U.value.length&&(k.value+=1,P(b.value[k.value],h.value));else if(re==="ArrowUp")W.preventDefault(),k.value>0&&(k.value-=1,P(b.value[k.value],h.value));else if(re==="Enter"){W.preventDefault();const pe=U.value[k.value];pe&&w(pe),C.value?.blur()}else re==="Escape"?(W.preventDefault(),Fe()):re==="Backspace"?a.value&&_.value===""&&V.value.length&&(V.value=V.value.slice(0,-1),c.value=[...V.value],r("change",c.value)):re==="Home"?(k.value=0,P(b.value[0],h.value)):re==="End"?(k.value=U.value.length-1,P(b.value[k.value],h.value)):re==="Tab"&&Fe()},je=()=>{l.value||(f.value=!0)},He=()=>{f.value=!1,_.value=""},pt=W=>{W.key==="Escape"&&p.value&&Fe()},qe=W=>{const re=W.target;i.value?.contains(re)||g.value?.contains(re)||Fe()},it=W=>{p.value&&h.value&&!h.value.contains(W.target)&&we()},Pt=()=>{p.value&&we()},to=()=>{p.value&&we()};async function Qt(){if(a.value)Array.isArray(c.value)?V.value=[...c.value]:(V.value=c.value==null?[]:[c.value],c.value=[...V.value]),n.data&&V.value.length&&(await Te(V.value),await e.nextTick());else{if(Array.isArray(c.value)){const W=c.value[0]??null;c.value=W??null}c.value!=null&&c.value!==""?m.value=await ze(c.value):m.value=null,ke(m.value??null)}}e.watch(c,()=>{Qt()}),e.onMounted(async()=>{if(addEventListener("keydown",pt),addEventListener("scroll",it,!0),addEventListener("resize",Pt),document.addEventListener("click",qe,!0),d.value&&le(d.value).addEventListener("scroll",to,!0),n.options?.length&&!n.data)ge.value=[...n.options];else if(n.data){const W=await xe("");W&&ne(W)}await Qt(),Gt.value=!1}),e.onUnmounted(()=>{removeEventListener("keydown",pt),removeEventListener("scroll",it,!0),removeEventListener("resize",Pt),document.removeEventListener("click",qe,!0),d.value&&le(d.value).removeEventListener("scroll",to,!0)});const{isOpenAdd:$t,addData:Rt,addSchema:K,addForm:fe,addTitle:tt,addOption:At,onAddValue:wt}=Sr({props:n,fetchOptionByValue:$e,optionsList:ge,selectedOption:m,modelValue:c});function We(W,re=200){let pe;return(...Ve)=>{pe&&clearTimeout(pe),pe=window.setTimeout(()=>W(...Ve),re)}}const en=We(async W=>{const re=await xe(W);re&&ne(re)},200);e.watch(_,W=>{n.data&&en(W.trim())}),e.watch(()=>n.options,W=>{!n.data&&W?.length&&(ge.value=[...W],Qt())},{immediate:!0});const Gt=e.ref(!0);return e.watch(Se,async()=>{if(n.data&&(Gt.value||(a.value?(V.value=[],c.value=[],r("change",[])):(m.value=null,c.value=null,r("change",null))),await ve(),n.auto===1&&Se.value&&ge.value.length>0)){const W=ge.value[0];W&&w(W,"parent-auto")}}),(W,re)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(he.VsModal),{visible:e.unref($t),"onUpdate:visible":re[2]||(re[2]=pe=>e.isRef($t)?$t.value=pe:null),class:"z-[1000]",title:e.unref(tt),teleport:W.teleport},{footer:e.withCtx(({handleClose:pe})=>[e.createElementVNode("div",xd,[e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-gray-200 bg-white text-gray-800 hover:bg-gray-50",onClick:pe}," Скасувати ",8,vd),e.createElementVNode("button",{type:"button",class:"py-2 px-3 inline-flex items-center gap-x-2 text-sm font-medium rounded-lg border border-transparent bg-blue-600 text-white hover:bg-blue-700",onClick:re[1]||(re[1]=(...Ve)=>e.unref(At)&&e.unref(At)(...Ve))}," Додати ")])]),default:e.withCtx(()=>[e.createVNode(ot,{schema:e.unref(K),modelValue:e.unref(Rt),"onUpdate:modelValue":re[0]||(re[0]=pe=>e.isRef(Rt)?Rt.value=pe:null),ref_key:"addForm",ref:fe},null,8,["schema","modelValue"])]),_:1},8,["visible","title","teleport"]),e.createElementVNode("div",{class:"flex gap-1 w-full",ref_key:"selectRoot",ref:i,onClick:re[5]||(re[5]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass])},[re[6]||(re[6]=e.createElementVNode("span",{id:"react-select-live-region",class:"sr-only"},null,-1)),re[7]||(re[7]=e.createElementVNode("span",{"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text",role:"log",class:"sr-only"},null,-1)),e.createVNode(hd,{keyWord:_.value,"onUpdate:keyWord":re[3]||(re[3]=pe=>_.value=pe),disabled:l.value,"is-open":p.value,"input-focus":f.value,"is-multi":a.value,"selected-options":v.value,"selected-ids":V.value,placeholder:T.value,search:s.value,"option-template":H.value,"icon-wrapper-class":$r,"selected-option-label":j.value,"selected-option":m.value,"show-clear":te.value,"set-trigger-ref":N,"set-input-ref":$,"should-show-color-dot":M,"option-has-icon":se,"get-icon-color-style":Q,"resolve-option-icon":A,"render-template":Z,"get-label":ae,"on-control-keydown":Le,"on-control-click":z,"on-input-focus":je,"on-input-blur":He,"on-input-keydown":De,"on-remove-selected":ie,"on-clear-selected":J,"on-toggle-select":ut},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(wd,{"is-open":p.value,"dropdown-style":E.value,"filtered-options-list":U.value,"selected-nav-index":k.value,"option-template":H.value,"icon-wrapper-class":$r,"set-dropdown-ref":q,"set-list-ref":G,"set-item-ref":I,"is-selected":D,"on-option-click":S,"should-show-color-dot":M,"option-has-icon":se,"get-icon-color-style":Q,"resolve-option-icon":A,"render-template":Z},null,8,["is-open","dropdown-style","filtered-options-list","selected-nav-index","option-template"])],2),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:re[4]||(re[4]=(...pe)=>e.unref(wt)&&e.unref(wt)(...pe)),class:"bg-white hover:bg-gray-100 text-sm text-gray-900 py-[10px] px-3 border border-stone-200 rounded-md h-[38px] flex items-center gap-2",disabled:l.value,type:"button"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),re[8]||(re[8]=e.createElementVNode("span",null,"Додати",-1))],8,_d)):e.createCommentVNode("",!0)],512)],64))}}),[["__scopeId","data-v-9b686f27"]]),Vo=(o="")=>`${o}${Math.floor(Math.random()*1e4)}`,Ed=["disabled","aria-expanded"],Bd={class:"truncate"},Vd={class:"py-2 px-4"},Sd={class:"block font-medium text-[13px] text-foreground"},$d={class:"truncate"},Ad={class:"p-1 border-t border-gray-200"},Nd={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"},Md=["onClick"],Fd=["checked"],Dd={class:"shrink-0 size-3.5 flex justify-center items-center"},Td={key:1,class:"shrink-0 size-2 block mx-auto rounded-full bg-secondary/60"},Ld={class:"truncate"},Id={key:0,class:"px-3 py-2 text-xs text-stone-500"},On=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;Qe(n.style);const a=e.computed({get:()=>Array.isArray(n.modelValue)?n.modelValue[0]??null:n.modelValue??null,set:ee=>r("update:modelValue",ee)});a.value==null&&n.defaultValue!=null&&(a.value=n.defaultValue);const l=e.inject("values"),s=e.inject("field-props"),c=e.computed(()=>!!n.disabled),i=e.ref(null),d=e.ref(!1),h=e.ref(null),g=e.ref(null),p=e.ref(null),f=e.ref({}),m=`vs-input-inline-select-${Vo()}`,k=e.computed(()=>n.placeholder||"Оберіть значення"),b=e.computed(()=>q(i.value)||n.placeholder||"Оберіть значення"),_=e.computed(()=>n.slot??""),C=e.computed(()=>Cn(_.value)),N=e.computed(()=>n.teleport||"body"),$=/^#(?:[\da-fA-F]{3}|[\da-fA-F]{6}|[\da-fA-F]{8})$/,q=ee=>Sn(ee,_.value),G=ee=>!!(!C.value&&Dt(ee)),I=e.computed(()=>{const ee=Dt(i.value).trim();return ee?$.test(ee)?`bg-[${ee}] border-[${ee}]`:`bg-${ee.toLowerCase()}-500 border-${ee.toLowerCase()}-500`:""}),{optionsList:E,parentValue:V,fetchOptions:v,fetchOptionByValue:T,loadOptions:j}=Bn({props:n,formValues:l,watchParent:!1}),te=(ee,me,ke)=>{if(!s)return!1;const ge=s.value?.[ee]??{},Se=($e,Oe,Me)=>{if(!Oe.length)return $e;const[ne,...de]=Oe,xe={...$e};if(!de.length)return xe[ne]=Me,xe;const ve=typeof $e[ne]=="object"&&$e[ne]!==null?$e[ne]:{};return xe[ne]=Se(ve,de,Me),xe},Ne=Se(ge,me,ke);return s.value={...s.value||{},[ee]:Ne},!0},D=ee=>{if(!n.set)return;const me=l?.value;!me&&!s||Object.entries(n.set).forEach(([ke,ge])=>{if(!ke)return;const Se=ee?ee[ge]:null,Ne=ke.split(".").map(Me=>Me.trim()).filter(Boolean);if(!Ne.length)return;const[$e,...Oe]=Ne;Oe.length&&te($e,Oe,Se??null)||me&&(me[$e]=Se??null)})},U=ee=>a.value?.toString?.()===ee?.toString?.(),oe=()=>{if(!g.value||typeof window>"u")return;const ee=g.value.getBoundingClientRect(),me=8,ke=8,ge=window.innerHeight||document.documentElement.clientHeight,Se=window.innerWidth||document.documentElement.clientWidth,Ne=p.value?.offsetHeight||260,$e=Math.max(ee.width,176),Oe=Math.max(Se-me*2,120),Me=Math.min($e,Oe);let ne=ee.left;ne+Me+me>Se&&(ne=Se-Me-me),ne=Math.max(ne,me);const de=ge-ee.bottom-ke-me,xe=ee.top-ke-me,ve=de<Math.min(Ne,260)&&xe>de,ze=Math.max(120,Math.min(320,ve?xe:de));f.value={position:"fixed",left:`${ne}px`,top:ve?`${ee.top-ke}px`:`${ee.bottom+ke}px`,transform:ve?"translateY(-100%)":"none",width:`${Me}px`,maxHeight:`${ze}px`}},R=async()=>{if(n.data){E.value=await v("");return}await j()},H=async()=>{if(a.value==null||a.value===""){i.value=null,D(null);return}const ee=E.value.find(me=>me.id?.toString()===String(a.value));if(ee){i.value=ee,D(ee);return}i.value=await T(a.value),D(i.value??null)},Z=async()=>{c.value||(d.value=!0,await e.nextTick(),oe(),await R(),await e.nextTick(),oe())},ae=()=>{d.value=!1},O=async()=>{if(d.value){ae();return}await Z()},A=ee=>{r("value-selected",{name:n.name,value:ee?.id??null,option:ee})},M=ee=>{i.value=ee,a.value=ee.id,r("change",ee.id),A(ee),D(ee),ae()},Q=ee=>{const me=ee.target;h.value?.contains(me)||p.value?.contains(me)||ae()},se=()=>{d.value&&oe()};return e.watch(()=>n.options,ee=>{n.data||(E.value=ee?[...ee]:[],H())},{immediate:!0,deep:!0}),e.watch(a,()=>{H()}),e.watch(V,async()=>{n.data&&(await R(),i.value&&!E.value.some(ee=>ee.id?.toString()===i.value?.id?.toString())&&(i.value=null,a.value=null,r("change",null),A(null),D(null)))}),e.onMounted(async()=>{document.addEventListener("click",Q,!0),window.addEventListener("resize",se),window.addEventListener("scroll",se,!0),await R(),await H()}),e.onUnmounted(()=>{document.removeEventListener("click",Q,!0),window.removeEventListener("resize",se),window.removeEventListener("scroll",se,!0)}),(ee,me)=>(e.openBlock(),e.createElementBlock("div",{class:"relative inline-flex w-full max-w-full",ref_key:"rootRef",ref:h,onClick:me[0]||(me[0]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("button",{ref_key:"triggerRef",ref:g,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",I.value?`${I.value} text-white`:"bg-secondary text-secondary-foreground hover:bg-secondary-hover focus:bg-secondary-focus border-gray-300 hover:border-gray-400"]),onClick:O},[e.createElementVNode("span",Bd,e.toDisplayString(b.value),1)],10,Ed),(e.openBlock(),e.createBlock(e.Teleport,{to:N.value},[d.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:p,class:"z-[3000] w-44 transition-[opacity,margin] duration-150 bg-white text-gray-900 border border-gray-200 rounded-xl shadow-lg",style:e.normalizeStyle(f.value),role:"menu","aria-orientation":"vertical"},[e.createElementVNode("div",Vd,[e.createElementVNode("span",Sd,[e.createElementVNode("span",$d,e.toDisplayString(k.value),1)])]),e.createElementVNode("div",Ad,[e.createElementVNode("div",Nd,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(E),ke=>(e.openBlock(),e.createElementBlock("label",{key:ke.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(ge=>M(ke),["prevent"])},[e.createElementVNode("input",{type:"radio",class:"hidden",name:m,checked:U(ke.id),tabindex:"-1"},null,8,Fd),e.createElementVNode("span",Dd,[G(ke)?(e.openBlock(),e.createElementBlock("span",{key:0,class:"shrink-0 size-2 block mx-auto rounded-full",style:e.normalizeStyle({backgroundColor:ke.color})},null,4)):(e.openBlock(),e.createElementBlock("span",Td))]),e.createElementVNode("span",Ld,e.toDisplayString(q(ke)),1),e.createVNode(e.unref(X.Check),{class:e.normalizeClass(["shrink-0 size-3.5 ms-auto transition-opacity",U(ke.id)?"opacity-100":"opacity-0"])},null,8,["class"])],8,Md))),128))]),e.unref(E).length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Id,"Немає варіантів"))])],4)):e.createCommentVNode("",!0)],8,["to"]))],512))}}),Od=["placeholder","disabled"],Ar=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}=Qe(t.style),r=e.useModel(o,"modelValue"),a=e.computed(()=>!!t.disabled),l=e.computed(()=>t.placeholder??"");function s(){typeof r.value=="string"&&(r.value=r.value.trim())}return(c,i)=>e.withDirectives((e.openBlock(),e.createElementBlock("textarea",{"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value,disabled:a.value,row:"2",onBlur:s,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] h-auto bg-white",[e.unref(n)]]),style:{border:"1px solid #CFD9E0"}},null,42,Od)),[[e.vModelText,r.value]])}}),Nr=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(()=>pb)),n=o,r=e.useModel(o,"modelValue"),a=e.computed(()=>!!n.disabled),l=e.computed(()=>n.placeholder??""),s=e.computed(()=>({height:n.richtextProps.height||"300px",format:n.format,...n.richtextProps}));return(c,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["!h-full overflow-hidden rounded-md border border-solid border-stone-200 disabled:opacity-50 disabled:cursor-not-allowed",c.customClass]),style:e.normalizeStyle(a.value?{pointerEvents:"none",opacity:.6}:{})},[e.createVNode(e.unref(t),e.mergeProps({modelValue:r.value,"onUpdate:modelValue":i[0]||(i[0]=d=>r.value=d),placeholder:l.value},s.value),null,16,["modelValue","placeholder"])],6))}}),Pd={},Rd={viewBox:"0 0 178 90",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function zd(o,t){return e.openBlock(),e.createElementBlock("svg",Rd,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 jd=Ce(Pd,[["render",zd]]),Ud={class:"bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden flex flex-col"},Hd={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"},qd={key:0,class:"relative flex-1 min-w-0"},Wd={class:"flex md:flex-nowrap flex-wrap items-center md:justify-end justify-start gap-2 shrink-0"},Kd={class:"w-full overflow-x-auto"},Gd={class:"w-full min-w-[640px] table-auto divide-y divide-gray-200"},Yd={class:"bg-gray-50"},Xd={class:"border-b border-gray-200"},Zd={class:"px-4 py-3 text-left text-xs font-semibold text-gray-900 w-12 text-center"},Jd=["onClick"],Qd={key:0,class:"text-gray-400"},eu={key:0,colspan:"100%",class:"text-center"},tu={class:"w-full"},nu={class:"p-5 min-h-[200px] flex flex-col justify-center items-center text-center"},ou=["data-row-index","onDragstart","onDragover","onDrop"],ru=["onPointerdown"],lu={class:"flex items-center justify-center"},au=["innerHTML"],su={key:0,class:"flex items-center gap-3 text-sm text-gray-700"},iu={key:0},cu=["src"],du={key:1,class:"rounded-md max-w-[45px] w-[45px] max-h-[45px] h-[45px] bg-gray-200 flex items-center justify-center"},uu={key:1,class:"flex items-center justify-center"},pu=["innerHTML"],mu={key:3,class:"text-sm font-medium text-gray-900"},fu={class:"px-4 py-3 text-right whitespace-nowrap"},hu={class:"flex items-center justify-end gap-2"},gu=["onClick"],yu=["onClick"],bu={class:"vs-form__head mr-5 mt-3 flex items-center justify-end sticky top-0 left-0 z-[60] bg-white"},Mr=Ce(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=e.inject("values",null),a=e.inject("form-root-values",null),l=z=>t.actions===void 0?!0:t.actions.includes(z),s=["search","import","export","add"],c=e.computed(()=>s.some(z=>l(z))),i=e.useModel(o,"modelValue"),d=e.ref({}),h=e.ref(""),g=e.ref(null),p=e.ref("asc"),f=e.computed(()=>{const z=i.value??[],J=h.value?z.filter(w=>m.value?.some(S=>{const P=S.key||S.name;if(!P)return!1;const le=w[P];return le?Array.isArray(le)?le.join(", ").toLowerCase().includes(h.value.toLowerCase()):String(le).toLowerCase().includes(h.value.toLowerCase()):!1})):z;if(!g.value)return J;const ie=g.value,F=[...J].sort((w,S)=>{const P=$e(w?.[ie]),le=$e(S?.[ie]);return typeof P=="number"&&typeof le=="number"?P-le:String(P).localeCompare(String(le))});return p.value==="asc"?F:F.reverse()}),m=e.computed(()=>(t.colModel??[]).filter(z=>!z.tableHidden)),k=e.ref(null),b=e.ref(null),_=e.ref(null);function C(z){return z.pointerType==="touch"||z.pointerType==="pen"}function N(z,J){const F=document.elementFromPoint(z,J)?.closest?.("[data-row-index]")??null;if(!F)return null;const w=F.getAttribute("data-row-index");if(w==null)return null;const S=Number.parseInt(w,10);return Number.isNaN(S)?null:S}function $(z,J){C(z)&&(z.preventDefault(),z.currentTarget.setPointerCapture(z.pointerId),k.value=J,b.value=J)}function q(z){if(k.value===null||!C(z))return;z.preventDefault();const J=N(z.clientX,z.clientY);J!==null&&(b.value=J)}function G(z){if(k.value===null||!C(z))return;z.preventDefault();const J=N(z.clientX,z.clientY);v(J??k.value);try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}function I(z){if(C(z)){k.value=null,b.value=null;try{z.currentTarget.releasePointerCapture(z.pointerId)}catch{}}}const E=z=>{k.value=z},V=z=>{b.value=z},v=z=>{if(k.value===null||k.value===z){k.value=null,b.value=null;return}const J=[...i.value],[ie]=J.splice(k.value,1);J.splice(z,0,ie),i.value=J,k.value=null,b.value=null},T=()=>{_.value&&_.value.click()},j=z=>{const J=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".ico",".tiff",".tif"],ie=z.toLowerCase();return J.some(F=>ie.endsWith(F))},te=z=>{const ie=z.target.files?.[0];if(!ie)return;const F=new FileReader;F.onload=w=>{try{const S=w.target?.result;if(typeof S=="string"){const P=JSON.parse(S);Array.isArray(P)&&i.value.push(...P)}}catch(S){console.error("Error parsing file:",S)}},F.readAsText(ie)},D=()=>{const z=JSON.stringify(i.value,null,2),J=new Blob([z],{type:"application/json"}),ie=URL.createObjectURL(J),F=document.createElement("a");F.href=ie,F.download="data.json",F.click(),URL.revokeObjectURL(ie)},U=new Set(["autocomplete","select","radio","checkbox","combobox"]),oe=new Map,R=(z,J)=>{const ie=`/api/suggest/${z}`,F=ie.includes("?")?"&":"?",w=J?`&val=${J}`:"";return`${ie}${F}json=1${w}`},H=z=>z==null||z===""?null:typeof z=="object"?z?.id!==void 0&&z.id!==null&&z.id!==""?z.id:null:z,Z=z=>{const J=new Set;return Array.isArray(i.value)&&i.value.forEach(ie=>{const F=ie?.[z];if(F==null||F==="")return;if(Array.isArray(F)){F.forEach(S=>{const P=H(S);P!==null&&J.add(P)});return}const w=H(F);w!==null&&J.add(w)}),J},ae=async()=>{if(!t.colModel?.length)return;const z=t.colModel.filter(J=>J.data&&U.has(J.type?.toLowerCase()||""));z.length&&await Promise.all(z.map(async J=>{const ie=J.key||J.name;if(!ie)return;const F=Z(ie),w=Array.from(F).map(le=>String(le)).sort(),S=w.join(",");if(!w.length||oe.get(ie)===S)return;oe.set(ie,S);const P=w.map(encodeURIComponent).join(",");try{const we=await(await fetch(R(J.data,P))).json();d.value[ie]=we?.data??we}catch(le){console.error("Failed to fetch column values",le)}}))};e.watch([()=>t.colModel,()=>i.value],()=>{ae()},{immediate:!0,deep:!0});const O=e.ref(""),A=e.ref(!1);let M="edit",Q=0;const se=z=>(z?.format||z?.type||"").toString().toLowerCase(),ee=e.computed(()=>(t.colModel?.filter(J=>se(J)!=="slot")??[]).map(J=>{const ie=J.key||J.name;return ie?{...J,name:ie,key:ie}:J})),me=e.ref({}),ke=e.ref({}),ge=z=>typeof z!="string"?!1:!!n[z],Se=(z,J)=>J?J.split(".").reduce((ie,F)=>ie==null?ie:ie[F.trim()],z):z,Ne=(z,J)=>typeof z!="string"?"":z.replace(/{{\s*([^}]+)\s*}}/g,(ie,F)=>{const w=Se(J,F.trim());return w??""}),$e=z=>{if(z==null||z==="")return"";if(typeof z=="number")return z;if(typeof z=="boolean")return z?1:0;if(typeof z=="string")return z.toLowerCase();if(Array.isArray(z))return z.map(J=>$e(J)).join(", ");if(typeof z=="object"){if(z.text!==void 0)return String(z.text).toLowerCase();if(z.label!==void 0)return String(z.label).toLowerCase();if(z.id!==void 0)return String(z.id).toLowerCase()}return String(z).toLowerCase()},Oe=z=>{const J=z.key||z.name;if(J){if(g.value===J){p.value=p.value==="asc"?"desc":"asc";return}g.value=J,p.value="asc"}};async function Me(){O.value="Додати",A.value=!0,M="add",me.value=ze({})}function ne(z,J){if(!z?.length)return null;const ie=typeof J=="object"?J?.id:J;if(ie==null||ie==="")return null;const F=z.find(w=>w?.id?.toString()===ie.toString());return F?F.text??F.label??null:null}function de(z){return z==null||z===""?"-":Array.isArray(z)?z.map(J=>typeof J=="object"?J?.text??J?.label??J?.id??"-":J).join(", "):typeof z=="object"?z?.text??z?.label??z?.id??"-":z}function xe(z){const J=z.key||z.name,ie=J?d.value[J]:null;return Array.isArray(ie)&&ie.length?ie:Array.isArray(z?.options)&&z.options.length?z.options:null}function ve(z,J){const ie=J.key||J.name,F=z?.[ie],w=xe(J);if(F==null||F==="")return"-";if(Array.isArray(F)){const P=F.map(le=>ne(w,le)).filter(Boolean);return P.length?P.join(", "):de(F)}const S=ne(w,F);return S||de(F)}function ze(z){const J=r?.value?.content_id??a?.value?.id??a?.value?.content_id??r?.value?.id??null;return{...z,content_id:J}}function Te(z){if(!z||typeof z!="object")return z;const{content_id:J,...ie}=z;return ie}async function Je(z,J){O.value="Редагувати",A.value=!0,M="edit",Q=J,me.value=ze({...z})}function Ae(){const z=ke.value.validate();if(z){he.notify({type:"warning",title:"Помилка валідації",message:Object.entries(z).map(([ie,F])=>`${ie}: ${F}`).join(`
|
|
2
2
|
`)});return}const J=Te(me.value);M==="add"?Array.isArray(i.value)?i.value=[...i.value,J]:i.value=[J]:i.value=i.value.map((ie,F)=>F===Q?J:ie),A.value=!1}function Fe(z){i.value=i.value.filter((J,ie)=>ie!==z)}function ut(){A.value=!1}return(z,J)=>(e.openBlock(),e.createElementBlock("div",Ud,[c.value?(e.openBlock(),e.createElementBlock("div",Hd,[l("search")?(e.openBlock(),e.createElementBlock("div",qd,[e.createVNode(e.unref(X.Search),{class:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"}),e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":J[0]||(J[0]=ie=>h.value=ie),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,h.value]])])):e.createCommentVNode("",!0),e.createElementVNode("div",Wd,[l("import")?(e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"fileInput",ref:_,onChange:te,class:"hidden",accept:".json",type:"file"},null,544)):e.createCommentVNode("",!0),l("import")?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",onClick:T,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(X.Upload),{class:"h-4 w-4 text-gray-700"}),J[4]||(J[4]=e.createTextVNode(" Імпорт ",-1))])):e.createCommentVNode("",!0),l("export")?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:D,class:"inline-flex items-center gap-2 rounded-md border border-gray-200 bg-white px-3 py-2 text-sm font-medium text-gray-700 hover:border-gray-300 hover:bg-gray-50 transition-colors"},[e.createVNode(e.unref(X.Download),{class:"h-4 w-4 text-gray-700"}),J[5]||(J[5]=e.createTextVNode(" Експорт ",-1))])):e.createCommentVNode("",!0),l("add")?(e.openBlock(),e.createElementBlock("button",{key:3,onClick:Me,type:"button",class:"inline-flex items-center gap-2 rounded-md bg-blue-500 px-3 py-2 text-sm font-semibold text-white shadow-sm hover:bg-blue-600 transition-colors"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4 text-white"}),J[6]||(J[6]=e.createTextVNode(" Додати ",-1))])):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0),e.createElementVNode("div",Kd,[e.createElementVNode("table",Gd,[e.createElementVNode("thead",Yd,[e.createElementVNode("tr",Xd,[e.createElementVNode("th",Zd,[e.createVNode(e.unref(X.GripVertical),{class:"mx-auto h-4 w-4 text-gray-400"})]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,ie=>(e.openBlock(),e.createElementBlock("th",{key:ie.key,class:"px-4 py-3 text-left text-xs font-semibold text-gray-900"},[e.createElementVNode("button",{type:"button",onClick:F=>Oe(ie),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(ie.ua||ie.label),1),g.value===(ie.key||ie.name)?(e.openBlock(),e.createElementBlock("span",Qd,e.toDisplayString(p.value==="asc"?"▲":"▼"),1)):e.createCommentVNode("",!0)],8,Jd)]))),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":!b.value}])},[f.value.length===0?(e.openBlock(),e.createElementBlock("td",eu,[e.createElementVNode("div",tu,[e.createElementVNode("div",nu,[e.createVNode(jd,{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(f.value,(ie,F)=>(e.openBlock(),e.createElementBlock("tr",{key:ie.id,"data-row-index":F,class:e.normalizeClass(["border-b transition-colors hover:bg-gray-50 cursor-move text-sm text-gray-700",{"opacity-50":k.value===F,"border-t-2 border-b-2 border-blue-500 bg-blue-50 dark:bg-blue-900/20":b.value===F}]),draggable:"true",onDragstart:w=>E(F),onDragover:e.withModifiers(w=>V(F),["prevent"]),onDrop:w=>v(F)},[e.createElementVNode("td",{class:"px-4 py-3 text-center align-middle touch-none select-none",onPointerdown:w=>$(w,F),onPointermove:q,onPointerup:G,onPointercancel:I},[e.createElementVNode("div",lu,[e.createVNode(e.unref(X.GripVertical),{class:"mx-auto h-4 w-4 text-slate-400 dark:text-slate-500"})])],40,ru),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.value,w=>(e.openBlock(),e.createElementBlock("td",{key:w.key,class:"px-4 py-3 align-middle"},[se(w)==="slot"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[ge(w.slot)?e.renderSlot(z.$slots,w.slot,{key:0,row:ie,value:ie[w.key],column:w},void 0,!0):(e.openBlock(),e.createElementBlock("div",{key:1,class:"text-sm text-gray-900",innerHTML:Ne(w.slot,ie)},null,8,au))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[se(w)==="file"?(e.openBlock(),e.createElementBlock("div",su,[j(ve(ie,w))?(e.openBlock(),e.createElementBlock("div",iu,[e.createElementVNode("img",{src:`/file/resize?filepath=${ve(ie,w)}&format=webp`,alt:"alt",width:"45",class:"rounded-md max-w-[45px] h-[45px] object-cover"},null,8,cu)])):(e.openBlock(),e.createElementBlock("div",du,[e.createVNode(e.unref(X.FileText),{class:"h-4 w-4 min-w-4"})]))])):se(w)==="color"?(e.openBlock(),e.createElementBlock("div",uu,[e.createElementVNode("span",{class:"inline-flex h-6 w-6 rounded border border-gray-200",style:e.normalizeStyle({backgroundColor:ve(ie,w)||"#ffffff"})},null,4)])):se(w)==="tiptap-editor"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"text-sm font-medium text-gray-900 datatable-tiptap-editor line-clamp-4",innerHTML:ve(ie,w)},null,8,pu)):(e.openBlock(),e.createElementBlock("div",mu,e.toDisplayString(ve(ie,w)),1))],64))]))),128)),e.createElementVNode("td",fu,[e.createElementVNode("div",hu,[e.createElementVNode("button",{onClick:w=>Je(ie,F),class:"p-1.5 text-gray-600 hover:text-blue-600 hover:bg-blue-50 rounded transition-colors"},[e.createVNode(e.unref(X.Pencil),{class:"h-4 w-4"})],8,gu),e.createElementVNode("button",{onClick:w=>Fe(F),class:"p-1.5 text-gray-600 hover:text-red-600 hover:bg-red-50 rounded transition-colors"},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,yu)])])],42,ou))),128))],2)])]),e.createVNode(e.unref(he.VsModal),{visible:A.value,title:O.value,size:"lg",onClose:ut,teleport:"#modal"},{default:e.withCtx(()=>[e.createVNode(ot,{schema:ee.value,"allow-id-field":"",values:me.value,"onUpdate:values":J[1]||(J[1]=ie=>me.value=ie),form:ke.value,"onUpdate:form":J[2]||(J[2]=ie=>ke.value=ie)},null,8,["schema","values","form"]),e.createElementVNode("div",bu,[e.createElementVNode("button",{type:"button",onClick:J[3]||(J[3]=ie=>A.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:Ae,type:"button",class:"vs-button inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border-1 border-transparent text-white bg-blue-500 hover:bg-blue-600 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1"}," Зберегти ")])]),_:1},8,["visible","title"])]))}}),[["__scopeId","data-v-431e019f"]]),ku={},wu={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 xu(o,t){return e.openBlock(),e.createElementBlock("svg",wu,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 vu=Ce(ku,[["render",xu]]),_u={},Cu={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 Eu(o,t){return e.openBlock(),e.createElementBlock("svg",Cu,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 Bu=Ce(_u,[["render",Eu]]),Vu={},Su={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 $u(o,t){return e.openBlock(),e.createElementBlock("svg",Su,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 Au=Ce(Vu,[["render",$u]]);function Nu(o,t,n){const r=Math.max(0,Math.min(22,Math.floor(n))),a=2**r,l=Math.floor((o+180)/360*a),s=t*Math.PI/180,c=Math.floor((1-Math.log(Math.tan(s)+1/Math.cos(s))/Math.PI)/2*a);return{z:r,x:l,y:c}}function Mu(o,t){if(typeof o!="string"||!o.trim()||!/\{z\}/i.test(o))return;const n={"{z}":t.z,"{x}":t.x,"{y}":t.y,"{-y}":2**t.z-t.y-1,"{s}":"a"};let r=o;return Object.entries(n).forEach(([a,l])=>{r=r.replace(new RegExp(a.replace(/[{}-]/g,"\\$&"),"gi"),String(l))}),r}const Fr=/\/(\d+)\/(\d+)\/(\d+)(\.(?:png|jpe?g|webp))(?:\?.*)?$/i;function Dr(o,t){if(typeof o!="string"||!o.trim()||!Fr.test(o))return;const n=o.replace(Fr,`/${t.z}/${t.x}/${t.y}$4`);return n!==o?n:void 0}function Fu(o,t){if(o?.url){const n=Mu(o.url,t);if(n)return n;const r=Dr(o.url,t);if(r)return r}if(o?.preview){const n=Dr(o.preview,t);return n||o.preview}}const Du=["title","aria-expanded"],Tu=["src"],Lu={class:"map-layers__header"},Iu={class:"map-layers__body"},Ou={key:0,class:"map-layers__section"},Pu={class:"map-layers__grid map-layers__grid--4"},Ru=["disabled","title","onClick"],zu={class:"map-layers__thumb"},ju=["src"],Uu={class:"map-layers__option-label"},Hu={key:1,class:"map-layers__section"},qu={class:"map-layers__grid map-layers__grid--4"},Wu=["title","onClick"],Ku={class:"map-layers__thumb"},Gu=["src"],Yu={class:"map-layers__option-label"},Xu={key:2,class:"map-layers__section map-layers__section--vector"},Zu={class:"map-layers__vector-list"},Ju=["checked","disabled","onChange"],Pn=.8,Qu=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,a=10*Pn,l=400*Pn,s=400*Pn,c=320*Pn,i=e.ref(null),d=e.ref(null),h=e.ref(null),g=e.ref(!1),p=e.ref({}),f=e.computed(()=>Object.keys(n.basemaps||{}).length>0),m=e.computed(()=>Object.keys(n.tileOverlays||{}).length>0),k=e.computed(()=>n.vectorOverlays??[]),b=e.computed(()=>k.value.length>0),_=e.computed(()=>f.value||m.value||b.value),C=e.computed(()=>n.basemaps?.[n.activeBaseKey]?.name||n.activeBaseKey||"Шари"),N=e.computed(()=>q(n.basemaps)),$=e.computed(()=>q(n.tileOverlays||{}));function q(H){const Z=n.previewTile;return Z?Object.fromEntries(Object.entries(H).map(([ae,O])=>[String(ae),Fu(O,Z)??O.preview??""])):{}}function G(H){return N.value[H]||n.basemaps?.[H]?.preview||""}function I(H){return $.value[H]||n.tileOverlays?.[H]?.preview||""}const E=e.computed(()=>G(n.activeBaseKey));function V(H){return Array.isArray(n.activeTileOverlayKeys)&&n.activeTileOverlayKeys.includes(H)}function v(){const H=d.value;if(!H)return;const Z=H.getBoundingClientRect(),ae=Math.min(l,window.innerWidth-16);let O=Z.left;O+ae>window.innerWidth-8&&(O=window.innerWidth-ae-8),O=Math.max(8,O);const A=Z.top-a-8,M=n.compact?c:s,Q=Math.min(M,Math.max(96,A));p.value={position:"fixed",left:`${O}px`,bottom:`${window.innerHeight-Z.top+a}px`,width:`${ae}px`,maxHeight:`${Q}px`,zIndex:"10050"}}async function T(){g.value=!g.value,g.value&&(await e.nextTick(),v())}function j(){g.value=!1}function te(H){H!==n.activeBaseKey&&r("onLayerChange",H)}function D(H){n.disabled||r("onOverlayToggle",H)}function U(H){n.disabled||r("onVectorOverlayToggle",H)}function oe(H){if(!g.value)return;const Z=H.target;i.value?.contains(Z)||h.value?.contains(Z)||j()}function R(H){H.key==="Escape"&&j()}return e.watch(g,async H=>{H&&(await e.nextTick(),v())}),e.onMounted(()=>{document.addEventListener("click",oe),document.addEventListener("keydown",R),window.addEventListener("resize",v),window.addEventListener("scroll",v,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",oe),document.removeEventListener("keydown",R),window.removeEventListener("resize",v),window.removeEventListener("scroll",v,!0)}),(H,Z)=>_.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"rootRef",ref:i,class:e.normalizeClass(["map-layers relative",{"map-layers--compact":H.compact}])},[e.createElementVNode("button",{ref_key:"triggerRef",ref:d,type:"button",class:"map-layers__trigger",title:C.value,"aria-haspopup":"dialog","aria-expanded":g.value,onClick:e.withModifiers(T,["stop"])},[E.value?(e.openBlock(),e.createElementBlock("img",{key:0,src:E.value,alt:"",class:"map-layers__trigger-img"},null,8,Tu)):e.createCommentVNode("",!0)],8,Du),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"map-layers-panel"},{default:e.withCtx(()=>[g.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"panelRef",ref:h,class:"map-layers__panel",style:e.normalizeStyle(p.value),role:"dialog","aria-label":"Шари карти"},[e.createElementVNode("header",Lu,[Z[0]||(Z[0]=e.createElementVNode("h3",{class:"map-layers__title"},"Шари карти",-1)),e.createElementVNode("button",{type:"button",class:"map-layers__close","aria-label":"Закрити",onClick:j},[e.createVNode(e.unref(X.X),{class:"map-layers__close-icon"})])]),e.createElementVNode("div",Iu,[m.value?(e.openBlock(),e.createElementBlock("section",Ou,[Z[1]||(Z[1]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Додаткові шари",-1)),e.createElementVNode("div",Pu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(H.tileOverlays,(ae,O)=>(e.openBlock(),e.createElementBlock("button",{key:`tile-${O}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":V(String(O))}]),disabled:H.disabled,title:ae.name||String(O),onClick:A=>D(String(O))},[e.createElementVNode("span",zu,[e.createElementVNode("img",{src:I(String(O)),alt:""},null,8,ju)]),e.createElementVNode("span",Uu,e.toDisplayString(ae.name||O),1)],10,Ru))),128))])])):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createElementBlock("section",Hu,[Z[2]||(Z[2]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Базові шари",-1)),e.createElementVNode("div",qu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(H.basemaps,(ae,O)=>(e.openBlock(),e.createElementBlock("button",{key:`base-${O}`,type:"button",class:e.normalizeClass(["map-layers__option",{"map-layers__option--active":H.activeBaseKey===String(O)}]),title:ae.name||String(O),onClick:A=>te(String(O))},[e.createElementVNode("span",Ku,[e.createElementVNode("img",{src:G(String(O)),alt:""},null,8,Gu)]),e.createElementVNode("span",Yu,e.toDisplayString(ae.name||O),1)],10,Wu))),128))])])):e.createCommentVNode("",!0),b.value?(e.openBlock(),e.createElementBlock("section",Xu,[Z[3]||(Z[3]=e.createElementVNode("h4",{class:"map-layers__section-title"},"Дані",-1)),e.createElementVNode("div",Zu,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,ae=>(e.openBlock(),e.createElementBlock("label",{key:ae.id,class:"map-layers__vector-item"},[e.createElementVNode("input",{type:"checkbox",class:"map-layers__checkbox",checked:ae.visible,disabled:H.disabled,onChange:O=>U(ae.id)},null,40,Ju),e.createElementVNode("span",null,e.toDisplayString(ae.label),1)]))),128))])])):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))],2)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-c1206d48"]]),Ht=1e-10,Rn=/([+-]?\d{1,3})\s*[°º˚]\s*(\d{1,2})\s*['’′`]\s*(\d{1,2}(?:\.\d+)?)\s*["”″]\s*([NSEW])/gi,ep=/^[+-]?\d+(?:\.\d+)?$/;function tp(o,t,n){const r=o.split(/\r?\n/).map(d=>d.trim()).filter(Boolean);if(r.length<3)return{ok:!1,errors:[{line:0,message:"Має бути щонайменше 3 рядки координат."}]};if(r.length>100)return{ok:!1,errors:[{line:0,message:"Допускається не більше 100 рядків координат."}]};const a=[],l=[];if(r.forEach((d,h)=>{const g=h+1,p=t==="decimal"?np(d,g,n):Lr(d,g,n);if(!p.ok){a.push(...p.errors);return}const f=l[l.length-1];if(f&&Or(f,p.point)){a.push({line:g,message:"Послідовні точки не повинні дублюватися."});return}l.push(p.point)}),a.length)return{ok:!1,errors:a};if(new Set(l.map(rp)).size<3)return{ok:!1,errors:[{line:0,message:"Полігон повинен містити мінімум 3 унікальні точки."}]};const c=[...l];let i=!1;return Or(c[0],c[c.length-1])||(c.push(c[0]),i=!0),lp(c)?{ok:!1,errors:[{line:0,message:"Полігон має самоперетин."}]}:{ok:!0,ring:c,wasClosedAutomatically:i}}function np(o,t,n){return Tr(o,"decimal",n,t)}function Tr(o,t,n,r=1){return t==="decimal"?op(o,r,n):Lr(o,r,n)}function op(o,t,n){const r=[];if(/[A-Za-zА-Яа-яІіЇїЄєҐґ]/.test(o))return{ok:!1,errors:[{line:t,message:"У десятковому форматі не допускаються літери."}]};const a=o.split(/[\s,;]+/).filter(Boolean);if(a.length<2)return{ok:!1,errors:[{line:t,message:"Кожен рядок має містити дві координати."}]};if(a.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(!a.every(d=>ep.test(d)))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const l=Number(a[0]),s=Number(a[1]);if(!Number.isFinite(l)||!Number.isFinite(s))return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати десяткові координати."}]};const c=n==="lat-lon"?l:s,i=n==="lat-lon"?s:l;return(c<-90||c>90)&&r.push({line:t,message:"Широта поза діапазоном (-90..90)."}),(i<-180||i>180)&&r.push({line:t,message:"Довгота поза діапазоном (-180..180)."}),r.length?{ok:!1,errors:r}:{ok:!0,point:[i,c]}}function Lr(o,t,n){Rn.lastIndex=0;const r=[...o.matchAll(Rn)];if(r.length<2)return{ok:!1,errors:[{line:t,message:"Не вдалося розпізнати DMS-координати."}]};if(r.length>2)return{ok:!1,errors:[{line:t,message:"У рядку дозволено лише одну пару координат."}]};if(Rn.lastIndex=0,o.replace(Rn," ").replace(/[\s,;]+/g,"").trim().length)return{ok:!1,errors:[{line:t,message:"У рядку виявлено зайві символи або значення."}]};const l=Ir(r[0],t,n==="lat-lon"?"lat":"lon"),s=Ir(r[1],t,n==="lat-lon"?"lon":"lat"),c=[];if(l.ok||c.push(l.error),s.ok||c.push(s.error),c.length)return{ok:!1,errors:c};const i=n==="lat-lon"?l.value:s.value;return{ok:!0,point:[n==="lat-lon"?s.value:l.value,i]}}function Ir(o,t,n){const r=Number(o[1]),a=Number(o[2]),l=Number(o[3]),s=String(o[4]).toUpperCase();if(!Number.isFinite(r)||!Number.isFinite(a)||!Number.isFinite(l))return{ok:!1,error:{line:t,message:"Невірні значення DMS-координат."}};if(n==="lat"&&!(s==="N"||s==="S")||n==="lon"&&!(s==="E"||s==="W"))return{ok:!1,error:{line:t,message:n==="lat"?"Для широти напрям повинен бути N або S.":"Для довготи напрям повинен бути E або W."}};if(a<0||a>59)return{ok:!1,error:{line:t,message:"Хвилини повинні бути в діапазоні 0..59."}};if(l<0||l>60)return{ok:!1,error:{line:t,message:"Секунди повинні бути в діапазоні 0..60."}};const d=Math.abs(r),h=n==="lat"?90:180;if(d>h)return{ok:!1,error:{line:t,message:n==="lat"?"Градуси широти повинні бути в діапазоні 0..90.":"Градуси довготи повинні бути в діапазоні 0..180."}};if(d===h&&(a!==0||l!==0))return{ok:!1,error:{line:t,message:n==="lat"?"Для 90° широти хвилини й секунди мають бути 0.":"Для 180° довготи хвилини й секунди мають бути 0."}};const g=d+a/60+l/3600;return{ok:!0,value:s==="S"||s==="W"?-g:g}}function rp(o){return`${o[0].toFixed(12)}:${o[1].toFixed(12)}`}function Or(o,t){return Math.abs(o[0]-t[0])<Ht&&Math.abs(o[1]-t[1])<Ht}function lp(o){if(o.length<4)return!1;for(let t=0;t<o.length-1;t+=1){const n=o[t],r=o[t+1];for(let a=t+1;a<o.length-1;a+=1){if(Math.abs(t-a)<=1||t===0&&a===o.length-2)continue;const l=o[a],s=o[a+1];if(ap(n,r,l,s))return!0}}return!1}function ap(o,t,n,r){const a=zn(o,t,n),l=zn(o,t,r),s=zn(n,r,o),c=zn(n,r,t);return!!(a!==l&&s!==c||a===0&&jn(o,n,t)||l===0&&jn(o,r,t)||s===0&&jn(n,o,r)||c===0&&jn(n,t,r))}function zn(o,t,n){const r=(t[1]-o[1])*(n[0]-t[0])-(t[0]-o[0])*(n[1]-t[1]);return Math.abs(r)<Ht?0:r>0?1:2}function jn(o,t,n){return t[0]<=Math.max(o[0],n[0])+Ht&&t[0]+Ht>=Math.min(o[0],n[0])&&t[1]<=Math.max(o[1],n[1])+Ht&&t[1]+Ht>=Math.min(o[1],n[1])}const sp=["title"],ip={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"},cp=["onClick"],dp=["placeholder"],up={class:"absolute inset-y-0 right-2 flex items-center gap-1"},pp={class:"flex items-center justify-between gap-2 px-3 py-2 border-b border-gray-100"},mp={class:"text-xs font-semibold uppercase tracking-wide text-gray-500"},fp={class:"max-h-[260px] overflow-auto"},hp={key:0,class:"divide-y divide-gray-100"},gp=["onClick"],yp={key:1,class:"px-3 py-3 text-xs text-gray-500"},Pr="formMapSearchAddressHistory",bp=12,kp="https://geo.rv.ua/api-user/dzk.api",wp="https://nominatim.openstreetmap.org/search",xp=Ce(e.defineComponent({__name:"map-search",props:{config:{}},emits:["goToCoordinates"],setup(o,{emit:t}){const n={mounted(F,w){if(typeof document>"u")return;let S=null;const P=8,le=()=>{const Le=String(w?.value??"");if(!Le)return;S=document.createElement("div"),S.textContent=Le,Object.assign(S.style,{position:"absolute",background:"#333",color:"#fff",padding:"4px 8px",borderRadius:"4px",fontSize:"12px",whiteSpace:"nowrap",pointerEvents:"none",zIndex:"9999"}),document.body.appendChild(S);const De=F.getBoundingClientRect();S.style.left=`${De.right+window.scrollX+P}px`,S.style.top=`${De.top+window.scrollY+(De.height-S.offsetHeight)/2}px`},we=()=>{S?.parentNode&&S.parentNode.removeChild(S),S=null};F.addEventListener("mouseenter",le),F.addEventListener("mouseleave",we),Object.assign(F,{tooltipRightHandlers:{show:le,hide:we}})},unmounted(F){if(typeof document>"u")return;const w=F.tooltipRightHandlers;w&&(F.removeEventListener("mouseenter",w.show),F.removeEventListener("mouseleave",w.hide))}},r=o,a=t,l=e.getCurrentInstance();function s(){return typeof globalThis<"u"&&globalThis.proxy?globalThis.proxy:typeof window<"u"&&window.proxy?window.proxy:null}function c(){const w=l?.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=l?.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 F=l?.appContext.config.globalProperties?.$settings,w=F?.map?.cadastreSuggest??F?.map?.parcelSuggest??F?.map?.parcelSearch;if(typeof w=="string"&&w.trim())return w.trim();const S=s(),P=S?.map?.cadastreSuggest??S?.map?.parcelSuggest??S?.map?.parcelSearch;if(typeof P=="string"&&P.trim())return P.trim()}const h=!!i(),g=!!c(),p=e.computed(()=>{const F=["nominatim","xy","parcel"];return h&&F.unshift("address"),g?F:F.filter(w=>w!=="nominatim")}),f=e.computed(()=>{const F=p.value,w=r.config?.tools?.filter(S=>F.includes(S));return w&&w.length?w:F}),m=e.computed(()=>r.config?.placeholder?.trim()||"Пошук…"),k=e.ref(f.value[0]);e.watch(f,F=>{F.includes(k.value)||(k.value=F[0])});const b=e.ref(""),_=e.ref(!1),C=e.ref(null),N=e.ref(null),$=e.ref(null),q=e.ref(null),G=e.ref([]),I=e.ref(null),E=e.ref(!1),V=e.ref([]),v=e.computed(()=>(k.value==="address"||k.value==="nominatim")&&E.value),T=e.computed(()=>r.config?.addressDebounceMs??1e3);let j=null;const te=e.ref(!1),D=e.computed(()=>b.value.trim().length>0?G.value:V.value),U=e.computed(()=>b.value.trim().length?`Знайдено ${G.value.length}`:"Історія пошуку"),oe=e.computed(()=>b.value.trim().length?"Нічого не знайдено":"Історія порожня");function R(){if(typeof window>"u")return[];try{const F=window.localStorage?.getItem?.(Pr);if(!F)return[];const w=JSON.parse(F);return Array.isArray(w)?w:[]}catch{return[]}}function H(F){typeof window>"u"||window.localStorage?.setItem?.(Pr,JSON.stringify(F))}function Z(F){const S=[F,...V.value.filter(P=>P.id!==F.id)].slice(0,10);V.value=S,H(S)}const ae=e.reactive({position:"absolute",left:"0px",top:"0px",width:"100%",display:"none"});function O(){if(!q.value)return;const F=q.value.getBoundingClientRect(),w=$.value?.getBoundingClientRect(),S=w?.width??F.width,P=(w?.left??F.left)+window.scrollX,le=F.bottom+window.scrollY+bp;ae.left=`${P}px`,ae.top=`${le}px`,ae.width=`${S}px`,ae.display="block"}const A=()=>{v.value&&O()};function M(){j&&(clearTimeout(j),j=null)}e.watch(k,()=>{b.value="",_.value=!1,G.value=[],E.value=!1,M(),te.value=!1}),e.watch(v,F=>{F?e.nextTick(()=>{O()}):ae.display="none"}),e.watch(b,F=>{if(k.value!=="address"&&k.value!=="nominatim"){G.value=[],M();return}if(!F.trim()){G.value=[],E.value=V.value.length>0,M();return}M(),E.value=!0,j=window.setTimeout(()=>{Ae(F).catch(w=>{const S=w?.message||"Помилка пошуку адреси";he.notify({type:"error",title:"Пошук адреси",message:S})})},T.value)});function Q(F){const w=[];N.value&&w.push(N.value),F instanceof HTMLElement&&w.push(F),C.value?.querySelectorAll("li")?.forEach(P=>{w.push(P)}),w.forEach(P=>{P.dispatchEvent(new MouseEvent("mouseleave",{bubbles:!0}))})}function se(F){_.value&&Q(F.target),_.value=!_.value}function ee(F,w){Q(w?.target),k.value=F}function me(){b.value="",G.value=[],E.value=!1,te.value=!1}function ke(F){const w=F.target;if(_.value){const S=C.value;S&&!S.contains(w)&&(Q(w),_.value=!1)}if(v.value){const S=I.value,P=q.value;S&&!S.contains(w)&&(!P||!P.contains(w))&&(E.value=!1)}}e.onMounted(()=>{V.value=R(),window.addEventListener("click",ke,!0),window.addEventListener("scroll",A,!0),window.addEventListener("resize",A)}),e.onBeforeUnmount(()=>{window.removeEventListener("click",ke,!0),window.removeEventListener("scroll",A,!0),window.removeEventListener("resize",A),M()});function ge(F){return F==="xy"?"Координати":F==="parcel"?"Кадастр":F==="nominatim"?"Адреса":"Адресний"}function Se(F){switch(F){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(F){const w=Tr(F.trim(),"dms","lat-lon");if(w.ok){const[qe,it]=w.point;return{lat:it,lng:qe}}const S=F.replace(/[,]+/g," ").trim();if(!S)return null;const P=S.split(/\s+/).filter(Boolean);if(P.length<2)return null;const le=P.slice(0,2).map(Number);if(!le.every(qe=>Number.isFinite(qe)))return null;let[we,Le]=le,De=we,je=Le;const He=qe=>Math.abs(qe)<=90,pt=qe=>Math.abs(qe)<=180;if(!He(De)||!pt(je))if(He(je)&&pt(De))De=Le,je=we;else return null;return{lat:De,lng:je}}function $e(F){const w=F?.result||F?.data||F;return(Array.isArray(w)?w:w?[w]:[]).map((P,le)=>{const we=P?.geom_centroid,Le=Array.isArray(we?.coordinates)?we.coordinates:null;if(!Le||Le.length<2)return null;const De=Number(Le[0]),je=Number(Le[1]);return!Number.isFinite(je)||!Number.isFinite(De)?null:{id:String(P?.parcel_id??P?.cad_num??le),title:P?.cadnum||P?.cad_num||"Земельна ділянка",lat:je,lng:De}}).filter(P=>!!P)}function Oe(F){return(Array.isArray(F?.features)?F.features:[]).map((S,P)=>{const le=S?.geometry?.coordinates,we=Number(le?.[0]),Le=Number(le?.[1]);if(!Number.isFinite(Le)||!Number.isFinite(we))return null;const De=S?.properties||{},je=De?.geocoding?.label||De?.display_name||De?.label||"Адреса";return{id:String(De?.geocoding?.place_id||De?.place_id||P),title:je,lat:Le,lng:we}}).filter(S=>!!S)}function Me(F){return Number.isFinite(F.lat)&&Number.isFinite(F.lng)}function ne(F){if(F==null||typeof F=="string"&&!F.trim())return null;const w=Number(F);return Number.isFinite(w)?w:null}function de(F){const w=ne(F.lng)??ne(F.lon)??ne(F.longitude)??ne(F.x),S=ne(F.lat)??ne(F.latitude)??ne(F.y);if(w!=null&&S!=null)return{lat:S,lng:w};const P=F?.geometry?.coordinates??F?.geom_centroid?.coordinates??F?.centroid?.coordinates??F?.geojson?.geometry?.coordinates??F?.geom?.coordinates;if(Array.isArray(P)&&P.length>=2){const le=ne(P[0]),we=ne(P[1]);if(le!=null&&we!=null)return{lat:we,lng:le}}return null}function xe(F){return(Array.isArray(F?.data)?F.data:[]).map((S,P)=>{const le=de(S),we=String(S.text??S.title??S.label??S.name??S.address??S.display_name??S.id??"Адреса"),Le=String(S.id??S.code??S.value??P);return le?{id:Le,title:we,...le}:{id:Le,title:we}}).filter(S=>!!S?.title)}function ve(F){const w=d()||kp;if(w.includes(":id"))return w.replace(":id",encodeURIComponent(F));if(w.includes(":name"))return w.replace(":name",encodeURIComponent(F));try{const S=new URL(w,window.location.origin),P=r.config?.parcelQueryParam?.trim()||"cad_num";return S.searchParams.set(P,F),S.toString()}catch{return w}}function ze(F){const w=i();if(!w)return null;if(w.includes(":name"))return w.replace(":name",encodeURIComponent(F));try{const S=new URL(w,window.location.origin);return F.trim()&&S.searchParams.set("q",F),S.toString()}catch{return w}}async function Te(F){const w=ze(F);if(!w)return[];const S=await fetch(w);if(!S.ok)throw new Error(`HTTP ${S.status}`);const P=await S.json();return xe(P)}async function Je(F){const w=new URL(wp);w.searchParams.set("format","geojson"),w.searchParams.set("q",F),w.searchParams.set("addressdetails","1"),w.searchParams.set("bounded","1");const S=c();S&&w.searchParams.set("viewbox",S);const P=await fetch(w.toString());if(!P.ok)throw new Error(`HTTP ${P.status}`);const le=await P.json();return Oe(le)}async function Ae(F){if(G.value=[],M(),k.value==="address"){if(!i()){he.notify({type:"warning",title:"Пошук адреси",message:"Не налаштовано addressSuggest"});return}const P=await Te(F);if(!P.length){he.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}G.value=P;return}const w=await Je(F);if(!w.length){he.notify({type:"warning",title:"Пошук адреси",message:"Не знайдено результатів"});return}G.value=w}async function Fe(F){if(Me(F)){J(F),Z(F);return}he.notify({type:"warning",title:"Пошук адреси",message:"Геометрія для обраної адреси відсутня"})}function ut(){k.value!=="address"&&k.value!=="nominatim"||(E.value=!0,e.nextTick(()=>{O()}))}function z(F){const S=F.replace(/\s+/g,"").split(":");if(S.length!==4)return!1;const P=[10,2,3,4];return S.every((le,we)=>le.length===P[we]&&/^\d+$/.test(le))}function J(F){a("goToCoordinates",[F.lat,F.lng]),te.value=!0}async function ie(){const F=b.value.trim();if(F){if(k.value==="xy"){const w=Ne(F);if(!w){he.notify({type:"warning",title:"Пошук координат",message:"Використайте `lat lon` або DMS у форматі `50°27'00\"N 30°31'24\"E`."});return}J(w);return}if(k.value==="address"||k.value==="nominatim"){try{await Ae(F)}catch(w){const S=w?.message||"Помилка пошуку адреси";he.notify({type:"error",title:"Пошук адреси",message:S})}return}try{if(!z(F)){he.notify({type:"warning",title:"Пошук кадастру",message:"Кадастровий номер має формат ХХХХХХХХХХ:ХХ:ХХХ:ХХХХ"});return}const w=await fetch(ve(F));if(!w.ok)throw new Error(`HTTP ${w.status}`);const S=await w.json(),P=$e(S);if(!P.length)he.notify({type:"warning",title:"Пошук",message:"Не знайдено результатів"});else{const le=P.find(Me);if(!le){he.notify({type:"warning",title:"Пошук",message:"Геометрія ділянки відсутня"});return}J(le)}}catch(w){const S=w?.message||"Помилка пошуку";he.notify({type:"error",title:"Пошук",message:S})}}}return(F,w)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"widgetRef",ref:$,class:"map-search-widget flex flex-col gap-2 rounded-xl widget min-w-[200px]"},[e.createElementVNode("form",{class:"flex gap-2 text-gray-900",onSubmit:e.withModifiers(ie,["prevent"])},[f.value.length>1?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"dropdownRef",ref:C,class:"relative search-type w-[100px]"},[e.createElementVNode("button",{type:"button",class:"vstSelect-input transition-all text-left bg-white border border-gray-200 text-gray-900 rounded-lg focus:ring-blue-500 focus:border-blue-100 block w-full py-1.5 px-3 text-sm cursor-pointer flex items-center justify-between gap-2",onClick:se},[e.withDirectives((e.openBlock(),e.createElementBlock("span",{ref_key:"selectedToolLabelRef",ref:N,class:"block w-full truncate",title:ge(k.value)},[e.createTextVNode(e.toDisplayString(ge(k.value)),1)],8,sp)),[[n,Se(k.value)]]),(e.openBlock(),e.createElementBlock("svg",{class:e.normalizeClass(["w-4 h-4 text-gray-500 transition-transform",{"rotate-180":_.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))]),_.value?(e.openBlock(),e.createElementBlock("div",ip,[e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(f.value,S=>e.withDirectives((e.openBlock(),e.createElementBlock("li",{key:S,class:"px-3 py-2 cursor-pointer hover:bg-gray-100 text-gray-900",onClick:P=>ee(S,P)},[e.createTextVNode(e.toDisplayString(ge(S)),1)],8,cp)),[[n,Se(S)]])),128))])])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"searchWrapperRef",ref:q,class:"relative flex-1 min-w-[140px]"},[k.value==="parcel"?(e.openBlock(),e.createBlock(En,{key:0,modelValue:b.value,"onUpdate:modelValue":w[0]||(w[0]=S=>b.value=S),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":w[1]||(w[1]=S=>b.value=S),placeholder:m.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:ut},null,42,dp)),[[e.vModelText,b.value,void 0,{trim:!0}]]),e.createElementVNode("div",up,[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:me},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))]),v.value?(e.openBlock(),e.createBlock(e.Teleport,{key:2,to:"body"},[e.createElementVNode("div",{ref_key:"addressResultsRef",ref:I,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(ae)},[e.createElementVNode("div",pp,[e.createElementVNode("span",mp,e.toDisplayString(U.value),1),e.createElementVNode("button",{type:"button",class:"text-gray-400 hover:text-gray-600","aria-label":"Закрити",onClick:w[2]||(w[2]=S=>E.value=!1)}," ✕ ")]),e.createElementVNode("div",fp,[D.value.length?(e.openBlock(),e.createElementBlock("ul",hp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.value,S=>(e.openBlock(),e.createElementBlock("li",{key:S.id,class:"px-3 py-2 cursor-pointer hover:bg-gray-50",onClick:P=>Fe(S)},e.toDisplayString(S.title),9,gp))),128))])):(e.openBlock(),e.createElementBlock("div",yp,e.toDisplayString(oe.value),1))])],4)])):e.createCommentVNode("",!0)],512)],32)],512))}}),[["__scopeId","data-v-4d528cf7"]]),vp={class:"pt-1 border-t border-gray-100"},_p={class:"space-y-1"},Cp=e.defineComponent({__name:"AddCoordinates",emits:["submit","cancel"],setup(o,{emit:t}){const n=t,r=e.ref(null),a=e.ref(null),l=(i,d,h)=>Math.min(Math.max(i,d),h),s=()=>{if(r.value===null||a.value===null||!Number.isFinite(r.value)||!Number.isFinite(a.value))return;const i=l(r.value,-90,90),d=l(a.value,-180,180);n("submit",{lat:i,lng:d}),r.value=null,a.value=null},c=()=>{r.value=null,a.value=null,n("cancel")};return(i,d)=>(e.openBlock(),e.createElementBlock("div",vp,[d[2]||(d[2]=e.createElementVNode("p",{class:"text-xs text-gray-600 mb-1"},"Додати точку за координатами:",-1)),e.createElementVNode("div",_p,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[0]||(d[0]=h=>r.value=h),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта (50.4501)"},null,512),[[e.vModelText,r.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":d[1]||(d[1]=h=>a.value=h),type:"number",step:"0.0001",class:"w-full px-2 py-1 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота (30.5234)"},null,512),[[e.vModelText,a.value,void 0,{number:!0}]]),e.createElementVNode("div",{class:"flex gap-1.5"},[e.createElementVNode("button",{class:"flex-1 px-2 py-1 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors",type:"button",onClick:s}," Додати "),e.createElementVNode("button",{class:"px-2 py-1 bg-gray-200 hover:bg-gray-300 text-gray-700 text-xs font-medium rounded transition-colors",type:"button",onClick:c}," Скасувати ")])])]))}}),Ep=e.defineComponent({__name:"BtnAdd",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-blue-500 hover:bg-blue-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(X.Plus),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Додати ",-1))]))}}),Bp=e.defineComponent({__name:"BtnClear",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"w-full px-2 py-1.5 bg-rose-500 hover:bg-rose-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(X.Trash2),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode(" Очистити ",-1))]))}}),Vp=e.defineComponent({__name:"BtnComplete",emits:["click"],setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("button",{class:"flex-1 px-2 py-1.5 bg-emerald-500 hover:bg-emerald-600 text-white text-xs font-medium rounded transition-colors duration-150 flex items-center justify-center gap-1",onClick:n[0]||(n[0]=r=>t.$emit("click"))},[e.createVNode(e.unref(X.Circle),{size:12,"stroke-width":2}),n[1]||(n[1]=e.createTextVNode("Замкнути ",-1))]))}}),Sp=new Intl.NumberFormat("uk-UA",{minimumFractionDigits:2,maximumFractionDigits:2});function qt(o){return Sp.format(o)}function Rr(o){return o>=1e3?`${qt(o/1e3)} км`:`${qt(o)} м`}const $p={class:"flex items-center gap-1.5 text-xs bg-gray-50 rounded p-1.5"},Ap={key:0,class:"flex-1 flex gap-1"},Np={key:1,class:"flex-1 font-mono text-gray-700"},Mp=e.defineComponent({__name:"DotListItem",props:{id:{},index:{},coords:{}},emits:["update","delete"],setup(o,{emit:t}){const n=o,r=t,a=e.computed(()=>`${n.coords.lat.toFixed(4)}°, ${n.coords.lng.toFixed(4)}°`),l=e.ref(!1),s=e.ref(n.coords.lat),c=e.ref(n.coords.lng);e.watch(()=>n.coords,p=>{s.value=p.lat,c.value=p.lng},{deep:!0,immediate:!0});const i=(p,f,m)=>Math.min(Math.max(p,f),m),d=()=>{l.value=!0},h=()=>{if(!Number.isFinite(s.value)||!Number.isFinite(c.value))return;const p=i(s.value,-90,90),f=i(c.value,-180,180);r("update",{id:n.id,coords:{lat:p,lng:f}}),l.value=!1},g=()=>{r("delete",n.id)};return(p,f)=>(e.openBlock(),e.createElementBlock("div",$p,[e.createVNode(e.unref(X.MapPin),{size:12,"stroke-width":2,class:"text-gray-400 flex-shrink-0"}),l.value?(e.openBlock(),e.createElementBlock("div",Ap,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[0]||(f[0]=m=>s.value=m),type:"number",step:"0.0001",min:"-90",max:"90",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Широта"},null,512),[[e.vModelText,s.value,void 0,{number:!0}]]),e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f[1]||(f[1]=m=>c.value=m),type:"number",step:"0.0001",min:"-180",max:"180",class:"flex-1 px-1.5 py-0.5 text-xs border border-gray-300 rounded focus:outline-none focus:border-blue-500",placeholder:"Довгота"},null,512),[[e.vModelText,c.value,void 0,{number:!0}]]),e.createElementVNode("button",{class:"px-1.5 py-0.5 bg-emerald-500 text-white rounded hover:bg-emerald-600 text-xs",type:"button",onClick:h}," ✓ ")])):(e.openBlock(),e.createElementBlock("span",Np,e.toDisplayString(a.value),1)),l.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:2,class:"text-blue-500 hover:text-blue-600 px-0.5",type:"button",onClick:d}," ✎ ")),e.createElementVNode("button",{class:"text-rose-500 hover:text-rose-600 px-0.5",type:"button",onClick:g}," ✕ ")]))}}),Fp={class:"ruler-control px-3 py-2.5 space-y-2"},Dp={type:"button",class:"ruler-row w-full flex items-center gap-2 cursor-pointer group text-left"},Tp={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"},Lp={class:"text-sm font-semibold text-slate-700"},Ip={class:"ruler-row"},Op={type:"button",class:"w-full flex items-center gap-2 cursor-pointer group text-left"},Pp={class:e.normalizeClass(["flex items-center justify-center w-5 h-5 rounded-full shrink-0 transition-colors pointer-events-none"]),title:"Площа замкнутого контуру","aria-hidden":"true"},Rp={class:"inline-flex rounded-md overflow-hidden border border-gray-200 bg-gray-100"},zp=["onClick"],jp={class:"flex items-center gap-2 mt-0.5 pl-7"},Up={key:0,class:"text-base font-semibold text-green-600"},Hp={key:1,class:"text-xs text-gray-400"},qp={class:"ruler-row flex items-center gap-2 cursor-pointer"},Wp={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"},Kp={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(o){const t=o,n=e.ref(!1),r=e.ref("km2"),a=[{id:"km2",label:"км²"},{id:"ha",label:"га"},{id:"m2",label:"м²"}],l=()=>{n.value=!n.value},s=(m,k)=>{const b=V=>V*Math.PI/180,_=b(k.lat-m.lat),C=b(k.lng-m.lng),N=b(m.lat),$=b(k.lat),q=Math.sin(_/2),G=Math.sin(C/2);return 6371e3*(2*Math.asin(Math.sqrt(q*q+Math.cos(N)*Math.cos($)*G*G)))},c=e.computed(()=>{if(t.points.length<2)return 0;let m=0;for(let k=1;k<t.points.length;k+=1)m+=s(t.points[k-1].coords,t.points[k].coords);return t.isShapeClosed&&t.points.length>=2&&(m+=s(t.points[t.points.length-1].coords,t.points[0].coords)),m}),i=e.computed(()=>c.value>=1e3?`${qt(c.value/1e3)} км`:`${qt(c.value)} м`);function d(m){if(m.length<3)return 0;const k=m[0].lat,b=m[0].lng,_=(N,$)=>{const q=(N-k)*110574;return{x:($-b)*111320*Math.cos(k*Math.PI/180),y:q}};let C=0;for(let N=0;N<m.length;N++){const $=(N+1)%m.length,q=_(m[N].lat,m[N].lng),G=_(m[$].lat,m[$].lng);C+=q.x*G.y-q.y*G.x}return Math.abs(C)*.5}const h=e.computed(()=>{if(!t.isShapeClosed||t.points.length<3)return 0;const m=t.points.map(k=>k.coords);return d(m)}),g=e.computed(()=>h.value>0),p=e.computed(()=>{const m=h.value;if(m===0)return"—";if(r.value==="km2"){const b=m/1e6;return`${qt(b)} км²`}if(r.value==="ha"){const b=m/1e4;return`${qt(b)} га`}const k=m>=1?Math.round(m):m;return`${qt(k)} м²`}),f=e.computed(()=>{const m=t.points.length;return m===1?"1 точка":m>=2&&m<=4?`${m} точки`:`${m} точок`});return e.watch(()=>t.points.length,()=>{t.points.length===0&&(n.value=!1)}),(m,k)=>(e.openBlock(),e.createElementBlock("div",Fp,[e.createElementVNode("button",Dp,[e.createElementVNode("span",Tp,[e.createVNode(e.unref(X.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",Lp,e.toDisplayString(i.value),1)]),e.createElementVNode("div",Ip,[e.createElementVNode("button",Op,[e.createElementVNode("span",Pp,[e.createVNode(e.unref(X.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",Rp,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,(b,_)=>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",_===0&&"rounded-l-md",_===a.length-1&&"rounded-r-md",r.value===b.id?"bg-white text-green-600 font-semibold shadow-sm":"text-gray-600 hover:bg-gray-50"]),onClick:e.withModifiers(C=>r.value=b.id,["stop"])},e.toDisplayString(b.label),11,zp)),64))])]),e.createElementVNode("div",jp,[g.value?(e.openBlock(),e.createElementBlock("span",Up,e.toDisplayString(p.value),1)):(e.openBlock(),e.createElementBlock("span",Hp,"—"))])]),e.createElementVNode("div",qp,[e.createElementVNode("span",Wp,[e.createVNode(e.unref(X.Info),{size:12,"stroke-width":2.5})]),e.createElementVNode("span",Kp,e.toDisplayString(f.value),1),e.createElementVNode("button",{type:"button",class:"text-xs text-blue-500 hover:text-blue-600 font-medium transition-colors",onClick:e.withModifiers(l,["stop"])}," Координати ")]),n.value?(e.openBlock(),e.createElementBlock("div",Gp,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.points,(b,_)=>(e.openBlock(),e.createBlock(Mp,{key:b.id,id:b.id,index:_+1,coords:b.coords,onUpdate:k[0]||(k[0]=C=>m.$emit("update-point",C)),onDelete:C=>m.$emit("delete-point",b.id)},null,8,["id","index","coords","onDelete"]))),128))])):e.createCommentVNode("",!0)]))}}),Xp={class:"px-3 py-3 bg-blue-50/50 border-b border-blue-100"},Zp={class:"flex items-start gap-2"},Jp=e.defineComponent({__name:"InfoHint",setup(o){return(t,n)=>(e.openBlock(),e.createElementBlock("div",Xp,[e.createElementVNode("div",Zp,[e.createVNode(e.unref(X.Info),{size:16,"stroke-width":2,class:"text-blue-600 flex-shrink-0 mt-0.5"}),n[0]||(n[0]=e.createElementVNode("div",{class:"space-y-1"},[e.createElementVNode("p",{class:"text-xs font-medium text-blue-900"}," Натискайте на карту, щоб додати точки вимірювання "),e.createElementVNode("p",{class:"text-[10px] text-blue-700"},' Або скористайтесь кнопкою "Додати" внизу для введення координат вручну ')],-1))])]))}}),Qp={class:"space-y-1.5"},em={class:"space-y-1 max-h-40 overflow-y-auto"},tm={class:"text-gray-700"},nm={class:"font-semibold text-slate-800"},om=e.defineComponent({__name:"ToPointList",props:{points:{},isShapeClosed:{type:Boolean}},setup(o){const t=o;function n(l,s){const c=f=>f*Math.PI/180,i=c(s.lat-l.lat),d=c(s.lng-l.lng),h=c(l.lat),g=c(s.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(i/2)**2+Math.cos(h)*Math.cos(g)*Math.sin(d/2)**2)))}function r(l){return Rr(l)}const a=e.computed(()=>{const l=[],s=t.points;if(s.length<2)return l;for(let c=0;c<s.length;c++){const i=c===s.length-1&&t.isShapeClosed?0:c+1;if(i>=s.length)break;const d=n(s[c].coords,s[i].coords);l.push({from:c+1,to:i+1,label:r(d)})}return l});return(l,s)=>(e.openBlock(),e.createElementBlock("div",Qp,[s[0]||(s[0]=e.createElementVNode("p",{class:"text-xs font-medium text-gray-600 mb-1.5"},"Відстань між точками:",-1)),e.createElementVNode("div",em,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.value,(c,i)=>(e.openBlock(),e.createElementBlock("div",{key:i,class:"flex items-center justify-between text-xs py-1 px-2 rounded bg-gray-50"},[e.createElementVNode("span",tm,"Точка "+e.toDisplayString(c.from)+" → Точка "+e.toDisplayString(c.to),1),e.createElementVNode("span",nm,e.toDisplayString(c.label),1)]))),128))])]))}}),rm={class:"ruler-panel-wrap absolute bottom-12 right-4 z-[1001] animate-slide-up"},lm={class:"bg-white rounded-xl shadow-2xl border border-gray-200 overflow-hidden w-72"},am={class:"bg-gradient-to-r from-blue-400 to-blue-500 px-3 py-2 flex items-center justify-between"},sm={class:"flex items-center gap-2"},im={class:"w-6 h-6 bg-white/20 rounded-lg flex items-center justify-center"},cm={class:"flex border-b border-gray-200"},dm={key:1,class:"px-3 py-2.5"},um={key:1,class:"text-xs text-gray-500"},pm={class:"px-2.5 py-1.5 bg-gray-50 border-t border-gray-200 space-y-1.5"},mm={class:"flex gap-1.5"},fm=e.defineComponent({name:"RulerPanel",__name:"RulerPanel",emits:["close","tab-change","points-change","add-request","complete","shape-closed-change"],setup(o,{expose:t,emit:n}){const r=n,a=e.ref([]),l=e.computed(()=>a.value.length>0),s=e.ref(!1),c=e.ref(!1),i=e.ref("general");function d(v){i.value=v,r("tab-change",v)}e.onMounted(()=>{r("tab-change",i.value)});const h=e.computed(()=>a.value.length>=3&&!c.value);let g=1;const p=()=>a.value.map(v=>({id:v.id,coords:{...v.coords}})),f=()=>{a.value.length<3&&c.value&&(c.value=!1,r("shape-closed-change",!1)),r("points-change",p())},m=()=>{const v=g;return g+=1,v},k=v=>{a.value=[...a.value,{id:m(),coords:{lat:v.lat,lng:v.lng}}],f()},b=({id:v,coords:T})=>{const j=a.value.findIndex(D=>D.id===v);if(j===-1)return;const te=[...a.value];te[j]={id:v,coords:{...T}},a.value=te,f()},_=v=>{a.value=a.value.filter(T=>T.id!==v),f()},C=()=>{a.value=[],c.value&&(c.value=!1,r("shape-closed-change",!1)),f()},N=v=>{b(v)},$=v=>{_(v)},q=()=>{s.value=!0,r("add-request")},G=v=>{k(v),s.value=!1},I=()=>{s.value=!1},E=()=>{h.value&&(c.value=!0,r("complete"),r("shape-closed-change",!0))},V=()=>{C(),s.value=!1,r("close")};return t({addPoint:k,clearPoints:C}),(v,T)=>(e.openBlock(),e.createElementBlock("div",rm,[e.createElementVNode("div",lm,[e.createElementVNode("div",am,[e.createElementVNode("div",sm,[e.createElementVNode("div",im,[e.createVNode(e.unref(X.Ruler),{size:14,"stroke-width":2,class:"text-white"})]),T[2]||(T[2]=e.createElementVNode("h3",{class:"text-white font-semibold text-xs"},"Вимірювання",-1))]),e.createElementVNode("button",{class:"w-5 h-5 flex items-center justify-center rounded hover:bg-white/20 transition-colors","aria-label":"Закрити",onClick:V},[e.createVNode(e.unref(X.X),{size:14,"stroke-width":2,class:"text-white"})])]),e.createElementVNode("div",cm,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="general"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[0]||(T[0]=j=>d("general"))}," Загальна ",2),e.createElementVNode("button",{type:"button",class:e.normalizeClass(["flex-1 px-3 py-2 text-xs font-medium transition-colors",i.value==="topoint"?"text-blue-600 border-b-2 border-blue-500 bg-blue-50/50":"text-gray-500 hover:text-gray-700"]),onClick:T[1]||(T[1]=j=>d("topoint"))}," До точки ",2)]),i.value==="general"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[l.value?(e.openBlock(),e.createBlock(Yp,{key:1,points:a.value,"is-shape-closed":c.value,onUpdatePoint:N,onDeletePoint:$},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createBlock(Jp,{key:0}))],64)):(e.openBlock(),e.createElementBlock("div",dm,[l.value?(e.openBlock(),e.createBlock(om,{key:0,points:a.value,"is-shape-closed":c.value},null,8,["points","is-shape-closed"])):(e.openBlock(),e.createElementBlock("p",um,"Додайте точки на карті, щоб бачити відстані між ними."))])),e.createElementVNode("div",pm,[e.createElementVNode("div",mm,[s.value?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(Ep,{key:0,onClick:q})),h.value?(e.openBlock(),e.createBlock(Vp,{key:1,onClick:E})):e.createCommentVNode("",!0)]),s.value?(e.openBlock(),e.createBlock(Cp,{key:0,onSubmit:G,onCancel:I})):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createBlock(Bp,{key:1,onClick:C})):e.createCommentVNode("",!0)])])]))}}),nt="ruler-points",Bt="ruler-line",Vt="ruler-polygon",St="ruler-segments",hm=e.defineComponent({__name:"RulerLayer",props:{map:{},points:{},isShapeClosed:{type:Boolean},labelMode:{}},setup(o){function t(m,k){const b=G=>G*Math.PI/180,_=b(k.lat-m.lat),C=b(k.lng-m.lng),N=b(m.lat),$=b(k.lat);return 6371e3*(2*Math.asin(Math.sqrt(Math.sin(_/2)**2+Math.cos(N)*Math.cos($)*Math.sin(C/2)**2)))}function n(m){return Rr(m)}const r=o;function a(){return{type:"FeatureCollection",features:[]}}function l(m,k,b){const _=b??"general",C=[];let N=0;C.push(0);for(let $=1;$<m.length;$++)N+=t(m[$-1].coords,m[$].coords),C.push(N);return k&&m.length>=2&&(N+=t(m[m.length-1].coords,m[0].coords)),{type:"FeatureCollection",features:m.map(($,q)=>{const G=_==="general"?q===0?"0":n(C[q]):q===0?"0":n(t(m[q-1].coords,m[q].coords));return{type:"Feature",geometry:{type:"Point",coordinates:[$.coords.lng,$.coords.lat]},properties:{id:$.id,index:q+1,label:G}}})}}function s(m,k){if(m.length<2)return a();const b=[];for(let _=0;_<m.length;_++){const C=_===m.length-1&&k?0:_+1;if(C>=m.length)break;const N=m[_].coords,$=m[C].coords,q=t(N,$);b.push({type:"Feature",geometry:{type:"LineString",coordinates:[[N.lng,N.lat],[$.lng,$.lat]]},properties:{distance:n(q)}})}return{type:"FeatureCollection",features:b}}function c(m,k){if(m.length<2)return a();const b=m.map(_=>[_.coords.lng,_.coords.lat]);return k&&b.push(b[0]),{type:"FeatureCollection",features:[{type:"Feature",geometry:{type:"LineString",coordinates:b},properties:{}}]}}function i(m){if(m.length<3)return a();const k=m.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 h(m){m.getSource(nt)||(m.addSource(nt,{type:"geojson",data:a()}),m.addLayer({id:`${nt}-circle`,type:"circle",source:nt,paint:{"circle-radius":5,"circle-color":"#1e293b","circle-stroke-width":2,"circle-stroke-color":"#ffffff"}}),m.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}})),m.getSource(St)||(m.addSource(St,{type:"geojson",data:a()}),m.addLayer({id:`${St}-labels`,type:"symbol",source:St,layout:{"text-field":["get","distance"],"text-size":13,"symbol-placement":"line-center","text-rotation-alignment":"map","text-pitch-alignment":"map"},paint:{"text-color":"#1e293b","text-halo-color":"#ffffff","text-halo-width":1.5}})),m.getSource(Bt)||(m.addSource(Bt,{type:"geojson",data:a()}),m.addLayer({id:`${Bt}-layer`,type:"line",source:Bt,paint:{"line-color":"#3b82f6","line-width":2}})),m.getSource(Vt)||(m.addSource(Vt,{type:"geojson",data:a()}),m.addLayer({id:`${Vt}-layer`,type:"fill",source:Vt,paint:{"fill-color":"#93c5fd","fill-opacity":.25}})),d=!0}function g(m){if(m){try{m.getLayer(`${Vt}-layer`)&&m.removeLayer(`${Vt}-layer`),m.getSource(Vt)&&m.removeSource(Vt),m.getLayer(`${Bt}-layer`)&&m.removeLayer(`${Bt}-layer`),m.getSource(Bt)&&m.removeSource(Bt),m.getLayer(`${St}-labels`)&&m.removeLayer(`${St}-labels`),m.getSource(St)&&m.removeSource(St),m.getLayer(`${nt}-labels`)&&m.removeLayer(`${nt}-labels`),m.getLayer(`${nt}-circle`)&&m.removeLayer(`${nt}-circle`),m.getSource(nt)&&m.removeSource(nt)}catch{}d=!1}}function p(m){if(!m)return;const k=m.getSource(nt),b=m.getSource(Bt),_=m.getSource(Vt),C=m.getSource(St),N=r.points,$=r.labelMode??"general";k&&k.setData(l(N,r.isShapeClosed,$)),b&&b.setData(c(N,r.isShapeClosed)),_&&_.setData(i(N)),C&&C.setData($==="topoint"?s(N,r.isShapeClosed):a())}function f(){const m=r.map;m&&(d||h(m),p(m))}return e.watch(()=>[r.points,r.isShapeClosed,r.labelMode],()=>f(),{deep:!0,immediate:!0}),e.watch(()=>r.map,()=>f(),{immediate:!0}),e.onBeforeUnmount(()=>{g(r.map)}),(m,k)=>null}});function gm(o={}){const t=e.ref(!1),n=e.ref([]),r=e.ref(!1),a=e.ref("general"),l=e.ref(null);function s(){t.value?c():(t.value=!0,o.onActivate?.())}function c(){t.value=!1,n.value=[],r.value=!1,l.value?.clearPoints(),o.onDeactivate?.()}function i(f){n.value=f}function d(f){a.value=f}function h(f){r.value=f}function g(f){t.value&&l.value?.addPoint({lat:f.lat,lng:f.lng})}const p=e.computed(()=>n.value.length>0);return{isRulerActive:t,rulerPoints:n,rulerShapeClosed:r,rulerActiveTab:a,rulerPanelRef:l,hasRulerPoints:p,toggleRuler:s,closeRuler:c,onRulerPointsChange:i,onRulerTabChange:d,onRulerShapeClosedChange:h,handleRulerMapClick:g}}const So="vs-safe-raster",dn=new ArrayBuffer(0);let $o=!1;function ym(o){const t=`${So}://`;return typeof o!="string"||!o.startsWith(t)?o:o.slice(t.length)}function bm(o){if(!o||o.byteLength<4)return!1;const t=new Uint8Array(o);return t[0]===137&&t[1]===80&&t[2]===78&&t[3]===71||t[0]===255&&t[1]===216&&t[2]===255||t[0]===82&&t[1]===73&&t[2]===70&&t[3]===70&&o.byteLength>=12&&String.fromCharCode(t[8],t[9],t[10],t[11])==="WEBP"}async function km(o,t){try{const n=await fetch(o,{signal:t});if(!n.ok||n.status===204)return dn;const r=await n.arrayBuffer();return!r.byteLength||!bm(r)?dn:r}catch{return dn}}function wm(o){$o||!o?.addProtocol||($o=!0,o.addProtocol(So,(t,n)=>{const r=ym(String(t?.url??""));if(!r)return n(null,{data:dn}),{cancel:()=>{}};const a=new AbortController;return km(r,a.signal).then(l=>n(null,{data:l})).catch(()=>n(null,{data:dn})),{cancel:()=>a.abort()}}))}function xm(o){const t=typeof o=="string"?o.trim():"";if(!t)return t;const n=`${So}://`;return t.startsWith(n)?t:`${n}${t}`}function vm(o,t){const n=typeof o=="string"?o.trim():"";return n?t&&$o?[xm(n)]:[n]:[]}function Ao(o,t,n){const r={type:"raster",tiles:vm(o,!!n?.safe),tileSize:typeof t?.tileSize=="number"?t.tileSize:256};return typeof t?.minzoom=="number"&&(r.minzoom=t.minzoom),typeof t?.maxzoom=="number"&&(r.maxzoom=t.maxzoom),Array.isArray(t?.bounds)&&t.bounds.length===4&&(r.bounds=t.bounds),r}function _m(o){const t=String(o??"").toLowerCase();return t.includes("could not be decoded")||t.includes("source image could not be decoded")||t.includes("unsupported image type")}const Cm={class:"vs-map-body"},Em={key:0,class:"absolute top-2 left-2 z-[1000] w-[calc(100%-16px)] sm:w-[320px]"},Bm={key:1,class:"form-geom__panel flex items-center gap-1 mt-1"},Vm={class:"flex items-center gap-1"},Sm=["disabled"],$m={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"},Am=["disabled"],Nm={key:0,class:"mb-3 flex items-center gap-2 rounded-md border border-blue-100 bg-blue-50 px-3 py-2 text-sm text-blue-700"},Mm={class:"mt-4 flex justify-end gap-2"},Fm=["disabled"],Dm=["disabled"],Tm={class:"mt-4 flex justify-end gap-2"},Lm=["disabled"],Im={class:"vs-map-controls vs-map-controls--tr"},Om={class:"vs-map-toolbar"},Pm=["disabled"],Rm=["disabled"],zm=["disabled"],jm=["disabled"],Um={key:1,class:"vs-map-toolbar__divider"},Hm=["title"],qm={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"},Wm={class:"space-y-0.5"},Km={class:"text-gray-500"},Gm={class:"text-gray-900 text-right break-all"},Ym={class:"absolute left-2 bottom-2 z-[1000]"},Xm={key:0,class:"vs-map-status"},Zm={class:"form-geom__feature vs-map-status__inner"},Jm={class:"vs-map-status__type"},Qm={class:"vs-map-status__values"},ef=["onClick","disabled"],tf={key:1,class:"vs-map-status__chip"},nf={key:2,class:"vs-map-status__sep"},of={key:1,class:"vs-map-status__chip"},rf={class:"vs-map-status__meta"},lf={class:"vs-map-status__coords"},af={key:0,class:"vs-map-status__value"},sf={key:1,class:"vs-map-status__value"},cf={key:0,class:"vs-map-status__area"},df={class:"vs-map-status__value"},uf={class:"vs-map-status__actions"},pf=["disabled"],mf=["disabled"],ff=11,hf=15,gf=.7,yf="vs-tile-ov-src-",bf="vs-tile-ov-raster-",Un="__vs_form_maplibre_loader__",kf="https://demotiles.maplibre.org/font/{fontstack}/{range}.pbf",Hn="vs-global-bounds-src",Zt="vs-global-bounds-line",zr="rasterLayer",jr=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,a=e.useAttrs(),l=e.inject("values",e.ref({})),s=typeof document<"u"&&document.querySelector("#modal")?"#modal":"body",c=e.computed(()=>{const u=a?.multiple,y=a?.multi,x=B=>B===""||B===!0||B==="true"||B===1||B==="1";return!!n.multi||!!n.multiple||x(y)||x(u)}),i=e.computed(()=>!!n.disabled),d=e.ref(!1),h=e.ref(null),g=e.ref(0),p=e.ref(""),f=e.ref(null),m=e.ref([]),k=e.ref(null),b=e.ref(null),_=gm({onActivate(){if(fe)try{fe.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""},onDeactivate(){}});function C(){_.toggleRuler()}const N=e.getCurrentInstance(),$=N?.appContext?.config?.globalProperties?.$settings??{},q=$?.map??{},G=e.computed(()=>{const u=q.layerPresets;return Array.isArray(u)?u:[]}),I=N?.vnode?.props??{};function E(u){return Object.prototype.hasOwnProperty.call(I,u)||Object.prototype.hasOwnProperty.call(I,u.replace(/[A-Z]/g,y=>`-${y.toLowerCase()}`))}const V=Array.isArray(q.center)&&q.center.length===2?q.center:Array.isArray($.center)&&$.center.length===2?$.center:[30,50],v=typeof q.zoom=="number"?q.zoom:typeof $.zoom=="number"?$.zoom:typeof $.defaultZoom=="number"?$.defaultZoom:10;function T(u){if(u!=null){if(Array.isArray(u)&&u.length>=2){const y=Number(u[0]),x=Number(u[1]);return!Number.isFinite(y)||!Number.isFinite(x)?void 0:[y,x]}if(typeof u=="object"){const y=u,x=y.geom;if(y.type==="Point"&&Array.isArray(y.coordinates)){const Y=y.coordinates,ce=Number(Y[0]),ue=Number(Y[1]);if(Number.isFinite(ce)&&Number.isFinite(ue))return[ce,ue]}if(x?.type==="Point"&&Array.isArray(x.coordinates)){const Y=x.coordinates,ce=Number(Y[0]),ue=Number(Y[1]);if(Number.isFinite(ce)&&Number.isFinite(ue))return[ce,ue]}const B=Number(y.lat),L=Number(y.lng??y.lon);if(Number.isFinite(B)&&Number.isFinite(L))return[L,B]}}}const j=e.computed(()=>{const u=T(n.center);if(u)return u;if(!E("center"))return T(q.center)??T($.center)}),te=e.computed(()=>E("zoom")?n.zoom:q.zoom??n.zoom),D=e.computed(()=>E("katottg")?String(n.katottg??""):String(q.katottg??n.katottg??"")),U=e.computed(()=>E("layers")?n.layers??[]:q.layers??n.layers??[]),oe=e.computed(()=>E("bounds")?n.bounds:q.bounds??n.bounds),R=e.ref(Array.isArray(j.value)&&j.value.length===2?[...j.value]:V),H=e.ref(typeof te.value=="number"?te.value:v),Z=e.ref(null);let ae=null;function O(u){const y=typeof u=="number"&&Number.isFinite(u)?u:H.value;return Math.min(hf,Math.max(ff,Math.round(y)))}function A(u,y,x){if(!Number.isFinite(u)||!Number.isFinite(y))return;const B=Nu(u,y,O(x)),L=Z.value;L&&L.z===B.z&&L.x===B.x&&L.y===B.y||(Z.value=B)}function M(){if(K){const u=K.getCenter?.(),y=K.getZoom?.();if(u&&Number.isFinite(y)){A(u.lng,u.lat,y);return}}Array.isArray(R.value)&&R.value.length===2&&A(R.value[0],R.value[1])}function Q(){ae&&clearTimeout(ae),ae=setTimeout(()=>{ae=null,M()},120)}A(R.value[0],R.value[1]);const se=e.ref(n.modelValue),ee=e.ref(null),me=e.ref([]),ke=e.ref(!1),ge=e.ref(!1),Se=e.ref(!1),Ne=e.ref(!1),$e=e.ref(!1);e.provide("map-file-import-uploading",$e);const Oe=e.computed(()=>$e.value?"Завантаження файлу на сервер...":Ne.value?"Конвертація геометрії...":""),Me=e.ref([]),ne=e.ref({srid:"",encoding:"UTF-8",file:""}),de=e.computed(()=>{const u=l.value??{},y=u.id??a.id??"1",x=a.form??u.form??"form",B=a.table??u.table??"table",L=n.name??a.field??"geom";return`/file/upload/temp?${new URLSearchParams({id:String(y),form:String(x),table:String(B),field:String(L)}).toString()}`}),xe=e.computed(()=>({srid:{type:"Autocomplete",label:"Система координат",info:"Оберіть одну із систем координат в якій знаходяться ваші геодані",data:"gis.srid_from_setting",placeholder:"Обрати",rules:["required"]},encoding:{type:"Select",label:"Кодування файлу",info:"Вкажіть кодування в якому зберігається інформація в ваших файлах. Зазвичай це UTF-8",options:[{id:"UTF-8",text:"UTF-8"},{id:"CP1251",text:"CP1251"},{id:"LATIN-1",text:"LATIN-1"}],default:"UTF-8",rules:["required"]},file:{type:"File",label:"Файл",info:"Завантажте файл із геоданими у форматі GeoJson або Zip (Shapefiles)",format:".geojson,.zip",api:de.value,rules:["required"]}})),ve=e.ref({coordinates:"",format:"decimal",order:"lat-lon"}),ze={coordinates:{type:"Textarea",label:"Координати вершин полігону (3-100 точок)",placeholder:`50.4501, 30.5234
|
|
3
3
|
50.4510, 30.5242
|
|
4
4
|
50.4494, 30.5260`},format:{type:"Radio",label:"Формат координат",options:[{id:"decimal",text:"Десяткові (Decimal)"},{id:"dms",text:"Градуси-хвилини-секунди (DMS)"}]},order:{type:"Radio",label:"Порядок координат",options:[{id:"lat-lon",text:"lat, lon"},{id:"lon-lat",text:"lon, lat"}]}};let Te=!1,Je=!1;const Ae=e.reactive({}),Fe=e.ref([]),ut=e.computed(()=>Fe.value.map(u=>Ae[u]).filter(Boolean)),z=e.ref(null),J=e.computed(()=>z.value?.entries??[]),ie=e.computed(()=>{if(z.value)return{left:`${z.value.point.x+12}px`,top:`${z.value.point.y+12}px`}}),F=e.computed(()=>{if(Array.isArray(n.tools)&&n.tools.length)return n.tools;const u=a?.tools;return Array.isArray(u)?u.map(y=>String(y)):typeof u=="string"?u.split(",").map(y=>y.trim()).filter(Boolean):[]}),w=e.computed(()=>{const u={search:!1,import:!1,export:!1,point:!1,line:!1,polygon:!1,rectangle:!1,ruler:!1};if(!F.value.length)return{...u,import:!0,export:!0,point:!0,line:!0,polygon:!0,rectangle:!0};const y=new Set(F.value.map(x=>x.toLowerCase()));return{search:y.has("search"),import:y.has("import"),export:y.has("export"),point:y.has("point"),line:y.has("line"),polygon:y.has("polygon"),rectangle:y.has("rectangle"),ruler:y.has("ruler")}});function S(u){const y=typeof u=="string"?u.trim():"";if(!y)return"";if(/^https?:\/\//i.test(y))return y;const x=window?.location?.origin??"",B=y.replace(/^\/+/,"");return B?x?`${x}/${B}`:`/${B}`:x}function P(){const u=Array.isArray(q.basemaps)&&q.basemaps.length?q.basemaps:$.basemaps;if(Array.isArray(u)&&u.length){const x=u.map((B,L)=>{const Y=String(B?.key??B?.id??B?.name??`b${L}`),ce=S(String(B?.url??""));if(!ce)return null;const ue=typeof B?.preview=="string"&&B.preview?S(B.preview):"";return[Y,{...B,url:ce,preview:ue}]}).filter(B=>Array.isArray(B)&&B.length===2).reduce((B,[L,Y])=>(B[L]=Y,B),{});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 le=P(),we=Object.keys(le),Le=e.ref(we.length?we[0]:"");function De(){const u=Array.isArray(q.overlays)&&q.overlays.length?q.overlays:$.overlays;return!Array.isArray(u)||!u.length?{}:u.map((x,B)=>{const Y=(typeof x?.name=="string"?x.name.trim():"")||`o${B}`,ce=S(String(x?.url??""));if(!ce)return null;const ue=typeof x?.preview=="string"&&x.preview?S(x.preview):"";return[Y,{...x,name:Y,url:ce,preview:ue}]}).filter(x=>Array.isArray(x)&&x.length===2).reduce((x,[B,L])=>(x[B]=L,x),{})}const je=De(),He=e.ref(Object.keys(je).filter(u=>!!je[u]?.visible)),pt=e.computed(()=>w.value.point||w.value.line||w.value.polygon||w.value.rectangle),qe=e.computed(()=>ut.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 it(u){return`${yf}${u}`}function Pt(u){return`${bf}${u}`}async function to(){if(typeof window>"u")return null;const u=window;if(u[Un])return u[Un];const y=Y=>{if(Array.from(document.styleSheets).some(Ee=>Ee?.href?.includes(Y)))return;const ue=document.createElement("link");ue.rel="stylesheet",ue.href=Y,document.head.appendChild(ue)},x=async()=>{const Y=new Function("u","return import(u)"),ce=await Y("https://esm.sh/maplibre-gl@3.6.2"),ue=ce?.default??ce;if(!ue)throw new Error("maplibre esm fallback failed");window.maplibregl=ue,window.mapboxgl=ue;const Ee=await Y("https://esm.sh/@mapbox/mapbox-gl-draw@1.5.0"),Ie=Ee?.default??Ee;if(!Ie)throw new Error("mapbox draw esm fallback failed");window.MapboxDraw=Ie},L=(async()=>{y("https://unpkg.com/maplibre-gl@3.6.2/dist/maplibre-gl.css"),y("https://unpkg.com/@mapbox/mapbox-gl-draw@1.5.0/dist/mapbox-gl-draw.css"),(!window.maplibregl||!window.MapboxDraw)&&await x();const Y=window.maplibregl,ce=window.MapboxDraw;if(!Y)throw new Error("maplibregl not available after load");if(!ce)throw new Error("MapboxDraw not available after load");return wm(Y),{maplibregl:Y,MapboxDraw:ce}})().catch(Y=>{throw delete u[Un],Y});return u[Un]=L,L}function Qt(u){return{version:8,glyphs:kf,sources:{rasterSource:Ao(u,void 0,{safe:!1})},layers:[{id:"rasterLayer",type:"raster",source:"rasterSource"}]}}let $t=null,Rt=null,K=null,fe=null,tt=[],At=null,wt=null,We=null,en=!1,Gt=!1,W=!1,re=null;function pe(){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,y){if(!u.startPoint)return;const[x,B]=u.startPoint,L=y.lngLat.lng,Y=y.lngLat.lat;u.rectangle.setCoordinates([[[x,B],[L,B],[L,Y],[x,Y],[x,B]]])},onClick(u,y){if(!u.startPoint){u.startPoint=[y.lngLat.lng,y.lngLat.lat],u.hasCoordinates=!0,u.rectangle.setCoordinates([[[y.lngLat.lng,y.lngLat.lat],[y.lngLat.lng,y.lngLat.lat],[y.lngLat.lng,y.lngLat.lat],[y.lngLat.lng,y.lngLat.lat],[y.lngLat.lng,y.lngLat.lat]]]);return}const[x,B]=u.startPoint,L=y.lngLat.lng,Y=y.lngLat.lat;return Math.abs(x-L)>0&&Math.abs(B-Y)>0?(u.rectangle.setCoordinates([[[x,B],[L,B],[L,Y],[x,Y],[x,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,y,x){const B=y.properties.id===u.rectangle.id;B&&!u.hasCoordinates||(y.properties.active=B?"true":"false",x(y))}}}const Ve=[{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 Pe(){const u=Le.value;return!u||!le[u]?.url?"":le[u].url}function Xe(u,y){return u?.id?String(u.id):u?.url?`${u.url}-${y}`:`layer-${y}`}function Re(u){const y=String(u?.url??"").trim();if(!y)return"";if(/^https?:\/\//i.test(y))return y;const x=window.location?.origin??"",B=y.replace(/^\/+/,"");return`${x}/${B}`}function Ze(u){u&&z.value?.layerId!==u||(z.value=null)}function xt(u,y={}){if(u.popup===!1)return[];const x=Number(y?.point_count);if(Number.isFinite(x)&&x>1)return[{key:"Об'єктів у кластері",value:String(x)}];const B=Re(u),L=_n(u,B,G.value);return Array.isArray(u.popup)?u.popup.length?u.popup.map(Y=>{const ce=Y?.field||Y?.name;if(!ce)return null;const ue=y[ce];if(ue==null||ue==="")return null;const Ee=L?.formatPopupValue?L.formatPopupValue(ce,ue):String(ue);return{key:Y.label||ce,value:Ee}}).filter(Boolean):[]:Object.entries(y).slice(0,5).map(([Y,ce])=>({key:Y,value:ce==null?"—":String(ce)}))}function mt(u){if(!Array.isArray(u))return[];const y=B=>Array.isArray(B)&&B.length>=2&&Number.isFinite(Number(B[0]))&&Number.isFinite(Number(B[1])),x=B=>{if(!B.length)return B;const L=B[0],Y=B[B.length-1];return!Y||L[0]!==Y[0]||L[1]!==Y[1]?[...B,L]:B};if(u.length&&y(u[0])){const B=u.map(L=>[Number(L[0]),Number(L[1])]).filter(y);return B.length?[x(B)]:[]}return u.length&&Array.isArray(u[0])&&y(u[0][0])?u.map(L=>Array.isArray(L)?L.map(Y=>[Number(Y[0]),Number(Y[1])]):[]).filter(L=>L.length).map(x):u.length&&Array.isArray(u[0])&&Array.isArray(u[0][0])&&y(u[0][0][0])?u.flatMap(L=>Array.isArray(L)?L:[]).map(L=>Array.isArray(L)?L.map(Y=>[Number(Y[0]),Number(Y[1])]):[]).filter(L=>L.length).map(x):[]}function vt(u){const y=u.style??{},x=y.color??"#3b82f6";if(!y.colorAttr||!y.colorSet)return x;const B=Object.keys(y.colorSet);if(!B.length)return x;const L=["match",["to-string",["get",y.colorAttr]]];return B.forEach(Y=>{L.push(String(Y),y.colorSet?.[Y]??x)}),L.push(x),L}function ft(u){if(!K)return;const y=K.getStyle()?.layers;Array.isArray(y)&&[...y].reverse().forEach(x=>{x.source===u&&K.getLayer(x.id)&&K.removeLayer(x.id)})}function zt(u){if(!K)return;u.handlers.forEach(B=>{try{K.off(B.type,B.layerId,B.handler)}catch{}}),u.handlers=[],[...u.layerIds,...u.boundsIds].forEach(B=>{K.getLayer(B)&&K.removeLayer(B)}),ft(u.sourceId),K.getSource(u.sourceId)&&K.removeSource(u.sourceId);const y=`vs-ov-bounds-src-${u.id}`,x=`vs-ov-bounds-line-${u.id}`;K.getLayer(x)&&K.removeLayer(x),K.getSource(y)&&K.removeSource(y),Ze(u.id)}function mb(u,y){if(!K)return[];const x=`vs-ov-bounds-src-${y}`,B=`vs-ov-bounds-line-${y}`,L=u.bounds??oe.value??me.value,Y=mt(L);if(!Y.length)return[];const ce={type:"FeatureCollection",features:Y.map(ue=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:ue}}))};return K.getLayer(B)&&K.removeLayer(B),K.getSource(x)&&K.removeSource(x),K.addSource(x,{type:"geojson",data:ce}),K.addLayer({id:B,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]}}),[B]}function Ho(){return W||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"}function fb(u,y){if(!K)return;u.handlers.forEach(B=>{try{K.off(B.type,B.layerId,B.handler)}catch{}});const x=[];y.forEach(B=>{const L=ce=>{if(Ho())return;if(!ce?.features?.length){Ze(u.id);return}const ue=ce.features[0]?.properties??{},Ee=xt(u.config,ue);if(!Ee.length){Ze(u.id);return}z.value={layerId:u.id,entries:Ee,point:{x:ce.point.x,y:ce.point.y}}},Y=()=>Ze(u.id);K.on("mousemove",B,L),K.on("mouseleave",B,Y),x.push({layerId:B,type:"mousemove",handler:L},{layerId:B,type:"mouseleave",handler:Y})}),u.handlers=x}function qo(u,y){if(!K)return;u.layerIds=y,u.boundsIds=mb(u.config,u.id),fb(u,y);const x=u.visible?"visible":"none";[...u.layerIds,...u.boundsIds].forEach(B=>{K.getLayer(B)&&K.setLayoutProperty(B,"visibility",x)}),_t()}function tn(u){if(!K)return;zt(u),u.renderToken=(u.renderToken??0)+1;const y=u.renderToken,x=u.config,B=Re(x);if(!B)return;const L=[],Y=/\.v(?:m)?t(?:\?|$|\/)/i.test(B)||/\.pbf(?:\?|$)/i.test(B)||/\/vtile(?:\/|\?|$)/i.test(B)||String(x?.service??"").toLowerCase()==="vector"||String(x?.format??"").toLowerCase()==="mvt",ce=_n(x,B,G.value);if(Y&&ce){const ue=x.sourceLayer||x.layer||x.service_layer||x.dataset?.layer||x.id;K.addSource(u.sourceId,{type:"vector",tiles:[B],minzoom:typeof x.minzoom=="number"?x.minzoom:0,maxzoom:typeof x.maxzoom=="number"?x.maxzoom:22}),(async()=>{try{if(!K||!K.getSource(u.sourceId)||u.renderToken!==y)return;const Ee=await ce.render({map:K,overlayId:u.id,sourceId:u.sourceId,sourceLayer:ue,url:B,config:x});if(!K||!K.getSource(u.sourceId)||u.renderToken!==y){Ee.forEach(Ie=>{K.getLayer(Ie)&&K.removeLayer(Ie)});return}qo(u,Ee)}catch(Ee){u.renderToken===y&&console.error(`Failed to render map layer preset "${ce.id}"`,Ee)}})();return}if(Y){const ue=x.sourceLayer||x.layer||x.service_layer||x.dataset?.layer||x.id;K.addSource(u.sourceId,{type:"vector",tiles:[B],minzoom:typeof x.minzoom=="number"?x.minzoom:0,maxzoom:typeof x.maxzoom=="number"?x.maxzoom:22});const Ee=Array.isArray(x.style?.types)?x.style.types.map(Ft=>String(Ft).toLowerCase()):[String(x.style?.type??"polygon").toLowerCase()],Ie=vt(x),Mt=x.style?.opacity??.5,tr=Ft=>{if(Ft==="point"){const vn=`vs-ov-point-${u.id}`;K.addLayer({id:vn,type:"circle",source:u.sourceId,"source-layer":ue,paint:{"circle-color":Ie,"circle-radius":x.style?.radius??5,"circle-opacity":Mt}}),L.push(vn);return}if(Ft==="polyline"||Ft==="line"){const vn=`vs-ov-line-${u.id}`;K.addLayer({id:vn,type:"line",source:u.sourceId,"source-layer":ue,layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":Ie,"line-width":x.style?.width??2,"line-opacity":Mt}}),L.push(vn);return}const Xl=`vs-ov-fill-${u.id}`,Zl=`vs-ov-border-${u.id}`;K.addLayer({id:Xl,type:"fill",source:u.sourceId,"source-layer":ue,paint:{"fill-color":Ie,"fill-opacity":Mt}}),K.addLayer({id:Zl,type:"line",source:u.sourceId,"source-layer":ue,paint:{"line-color":x.style?.stroke??x.style?.color??"#2563eb","line-width":x.style?.width??1,"line-opacity":Mt}}),L.push(Xl,Zl)};[...new Set(Ee)].forEach(Ft=>tr(Ft)),qo(u,L);return}else{K.addSource(u.sourceId,Ao(B,x,{safe:!1}));const ue=`vs-ov-raster-${u.id}`;K.addLayer({id:ue,type:"raster",source:u.sourceId,paint:{"raster-opacity":x.style?.opacity??1}}),L.push(ue)}qo(u,L)}function wn(){if(!K)return;const y={type:"FeatureCollection",features:mt(oe.value??me.value).map(x=>({type:"Feature",properties:{},geometry:{type:"LineString",coordinates:x}}))};K.getSource(Hn)?K.getSource(Hn).setData(y):K.addSource(Hn,{type:"geojson",data:y}),K.getLayer(Zt)||K.addLayer({id:Zt,type:"line",source:Hn,paint:{"line-color":"#2563eb","line-width":2,"line-opacity":.8,"line-dasharray":[2,2]}})}function hb(u){if(!K||i.value)return;const y=Ae[u];if(!y)return;y.visible=!y.visible;const x=y.visible?"visible":"none";[...y.layerIds,...y.boundsIds].forEach(B=>{K.getLayer(B)&&K.setLayoutProperty(B,"visibility",x)}),_t(),y.visible||Ze(u)}function Tl(u){if(!K)return;const y=je[u];if(!y?.url)return;const x=it(u),B=Pt(u);K.getLayer(B)&&K.removeLayer(B),K.getSource(x)&&K.removeSource(x),K.addSource(x,Ao(y.url,y,{safe:!0}));const L=y?.opacity??y?.style?.opacity,Y=typeof L=="number"?L:gf;K.addLayer({id:B,type:"raster",source:x,paint:{"raster-opacity":Y}})}function gb(u){if(!K)return;const y=it(u),x=Pt(u);K.getLayer(x)&&K.removeLayer(x),K.getSource(y)&&K.removeSource(y)}function Ll(){K&&He.value.forEach(u=>Tl(u))}function yb(u){if(!K||i.value||!je[u])return;He.value.includes(u)?(He.value=He.value.filter(x=>x!==u),gb(u)):(He.value=[...He.value,u],Tl(u)),_t()}function _t(){if(!K)return;const u=He.value.map(Ee=>Pt(Ee)).filter(Ee=>K.getLayer(Ee)),y=[],x=[],B=[],L=[];Fe.value.forEach(Ee=>{const Ie=Ae[Ee];if(!Ie)return;const Mt=String(Ie.config?.url??""),tr=/\.v(?:m)?t(?:\?|$|\/)/i.test(Mt)||/\/vtile(?:\/|\?|$)/i.test(Mt)||nr(Ie.config,Mt,G.value),Ft=/\.png(?:\?|$)/i.test(Mt);tr?B.push(...Ie.layerIds):Ft?y.push(...Ie.layerIds):x.push(...Ie.layerIds),L.push(...Ie.boundsIds)});const Y=[...u,...y,...x,...B,...L];Y.forEach(Ee=>{K.getLayer(Ee)&&K.moveLayer(Ee)}),K.getLayer(Zt)&&K.moveLayer(Zt);const ue=(K.getStyle?.()?.layers??[]).map(Ee=>String(Ee?.id??"")).filter(Ee=>Ee.startsWith("gl-draw-"));if(ue.forEach(Ee=>{K.getLayer(Ee)&&K.moveLayer(Ee)}),K.getLayer(zr)){const Ee=Y.find(Ie=>K.getLayer(Ie))??(K.getLayer(Zt)?Zt:null)??ue.find(Ie=>K.getLayer(Ie));Ee&&K.moveLayer(zr,Ee)}}function bb(u){if(!le[u]||(Le.value=u,!K))return;const y=Pe();if(!y)return;const x=K.getSource("rasterSource");if(x&&typeof x.setTiles=="function"){x.setTiles([y]),_t();return}const B=K.getCenter?.(),L=K.getZoom?.(),Y=fe?.getAll?.();K.setStyle(Qt(y)),K.once("style.load",()=>{if(K&&(B&&Number.isFinite(L)&&K.jumpTo({center:[B.lng,B.lat],zoom:L}),wn(),Ll(),Fe.value.forEach(ce=>{const ue=Ae[ce];ue&&tn(ue)}),_t(),Y?.features?.length&&fe))try{Y.features.forEach(ce=>fe.add(ce)),g.value=Y.features.length}catch{g.value=0}})}function Wo(u){return{type:"Feature",properties:{},geometry:u}}function Ct(u){if(!u)return null;try{return JSON.parse(JSON.stringify(u))}catch{return null}}function Ko(u){if(!u)return null;const y=Ct(u.geometry);return y?{...u.id!==void 0?{id:u.id}:{},type:"Feature",properties:{...u.properties??{}},geometry:y}:null}function no(u){if(!u)return[];const y=(L,Y)=>{if(!L?.type)return[];const ce={...Y??{}};return L.type==="MultiPoint"&&Array.isArray(L.coordinates)?L.coordinates.map(ue=>Wo({type:"Point",coordinates:ue})).map(ue=>({...ue,properties:ce})):L.type==="MultiLineString"&&Array.isArray(L.coordinates)?L.coordinates.map(ue=>Wo({type:"LineString",coordinates:ue})).map(ue=>({...ue,properties:ce})):L.type==="MultiPolygon"&&Array.isArray(L.coordinates)?L.coordinates.map(ue=>Wo({type:"Polygon",coordinates:ue})).map(ue=>({...ue,properties:ce})):L.type==="GeometryCollection"&&Array.isArray(L.geometries)?L.geometries.flatMap(ue=>y(ue,ce)):[{type:"Feature",properties:ce,geometry:Ct(L)}]},x=L=>{if(!L)return null;if(L.type==="Feature"){const Y=Ko(L);return Y?y(Y.geometry,Y.properties):null}return L.geom?.type&&Array.isArray(L.geom.coordinates)?y({type:L.geom.type,coordinates:L.geom.coordinates},L.properties??{}):L.type==="GeometryCollection"&&Array.isArray(L.geometries)?y(L,L.properties??{}):typeof L.type=="string"&&Array.isArray(L.coordinates)?y(Ct(L),L.properties??{}):null};if(u.type==="FeatureCollection")return(u.features??[]).flatMap(x).filter(Boolean);if(Array.isArray(u))return u.flatMap(L=>L?.type==="FeatureCollection"?no(L):[x(L)]).flat().filter(Boolean);const B=x(u);return B?Array.isArray(B)?B:[B]:[]}function Il(u){if(!u.length)return null;if(!c.value)return Ct(u[0]?.geometry??null);const y=u.map(Y=>Ct(Y?.geometry)).filter(Boolean);return y.every(Y=>Y?.type==="Point")?{type:"MultiPoint",coordinates:y.map(Y=>Y.coordinates)}:y.every(Y=>Y?.type==="LineString")?{type:"MultiLineString",coordinates:y.map(Y=>Y.coordinates)}:y.every(Y=>Y?.type==="Polygon")?{type:"MultiPolygon",coordinates:y.map(Y=>Y.coordinates)}:{type:"GeometryCollection",geometries:y}}function Ol(u){if(!u)return"__null__";try{return JSON.stringify(u)}catch{return"__invalid__"}}function kb(u,y){if(!Array.isArray(u)||!Array.isArray(y)||u.length<2||y.length<2)return!1;const x=1e-12;return Math.abs(Number(u[0])-Number(y[0]))<x&&Math.abs(Number(u[1])-Number(y[1]))<x}function Pl(u,y){if(!Array.isArray(u)||u.length<4)return null;const B=kb(u[0],u[u.length-1])?u.slice(0,-1):u.slice();return!Number.isInteger(y)||y<0||y>=B.length||B.length<=3||(B.splice(y,1),B.length<3)?null:[...B,[...B[0]]]}function Rl(u,y){if(!Array.isArray(u)||u.length<2||!Number.isInteger(y)||y<0||y>=u.length||u.length<=2)return null;const x=u.slice();return x.splice(y,1),x.length<2?null:x}function wb(u,y){const x=Ct(u);if(!x||!Array.isArray(y))return null;if(x.type==="LineString"){const[B]=y,L=Rl(x.coordinates,B);return L?(x.coordinates=L,x):null}if(x.type==="MultiLineString"){const[B,L]=y,Y=x.coordinates?.[B],ce=Rl(Y,L);return ce?(x.coordinates[B]=ce,x):null}if(x.type==="Polygon"){const[B,L]=y,Y=x.coordinates?.[B],ce=Pl(Y,L);return ce?(x.coordinates[B]=ce,x):null}if(x.type==="MultiPolygon"){const[B,L,Y]=y,ce=x.coordinates?.[B]?.[L],ue=Pl(ce,Y);return ue?(x.coordinates[B][L]=ue,x):null}return null}function xb(u){return u?u.split(".").map(y=>Number(y)).filter(y=>Number.isInteger(y)&&y>=0):[]}function zl(u){return!fe||!u?null:typeof fe.get=="function"?fe.get(u)??null:fe.getAll?.()?.features?.find(x=>String(x?.id??"")===u)??null}function jl(u){const y=u?.properties?.id??u?.id;return y==null||y===""?null:String(y)}function vb(u){if(!K||!u)return null;const y=[[u.x-8,u.y-8],[u.x+8,u.y+8]],B=K.queryRenderedFeatures(y).find(L=>{const Y=String(L?.properties?.meta??"");return Y&&Y!=="feature"?!1:!!jl(L)});return jl(B)}function _b(u,y){if(!fe||!u||!y.length)return;const x=zl(u);if(!x?.geometry)return;const B=wb(x.geometry,y);if(!B)return;const L={...x,id:x.id??u,geometry:B};Je=!0,Te=!0;try{fe.delete(u),fe.add(L)}finally{Te=!1,Je=!1}jt(),Nt()}function Cb(u){if(!K||!fe||i.value||_.isRulerActive.value||p.value!=="edit")return;const y=u?.point;if(!y)return;const x=[[y.x-8,y.y-8],[y.x+8,y.y+8]],L=K.queryRenderedFeatures(x).find(ce=>ce?.properties?.meta==="vertex"&&ce?.properties?.parent&&ce?.properties?.coord_path);if(!L)return;u?.originalEvent?.preventDefault?.(),u?.originalEvent?.stopPropagation?.();const Y=xb(String(L.properties.coord_path));Y.length&&_b(String(L.properties.parent),Y)}function Eb(u){const y=ql(u);if(!y)return null;const[[x,B],[L,Y]]=y;return{lat:(B+Y)/2,lng:(x+L)/2}}function Ul(u){if(!Array.isArray(u)||u.length<3)return 0;const y=(B,L)=>{const Y=B*2003750834e-2/180,ce=Math.log(Math.tan((90+L)*Math.PI/360))/(Math.PI/180);return[Y,ce*2003750834e-2/180]};let x=0;for(let B=0;B<u.length-1;B+=1){const[L,Y]=y(Number(u[B][0]),Number(u[B][1])),[ce,ue]=y(Number(u[B+1][0]),Number(u[B+1][1]));x+=L*ue-ce*Y}return Math.abs(x/2)/1e6}function Bb(u){if(!u?.type||!u?.coordinates)return null;if(u.type==="Polygon"){const y=u.coordinates?.[0];return Array.isArray(y)?Ul(y):null}return u.type==="MultiPolygon"?u.coordinates.reduce((y,x)=>{const B=x?.[0];return Array.isArray(B)?y+Ul(B):y},0):null}function Go(u){if(!u){f.value=null;return}const y=Eb(u);if(!y){f.value=null;return}f.value={type:String(u.type??"Feature"),center:y,areaKm2:Bb(u)}}function Yo(u){if(!u){const B=tt[tt.length-1],L=Ct(B?.geometry??null);At=L,Go(L);return}const y=tt.find(B=>String(B?.id??"")===String(u))??null,x=Ct(y?.geometry??null);At=x,Go(x)}function Xo(u){m.value=(u??[]).map((y,x)=>{const B=String(y?.id??`feature-${x+1}`),L=Zo(String(y?.geometry?.type??"Feature"));return{id:B,label:`${L} ${x+1}`}})}function Zo(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 Hl(u,y){if(!Array.isArray(u)||!Array.isArray(y)||u.length!==2||y.length!==2)return!1;const x=1e-9;return Math.abs(Number(u[0])-Number(y[0]))<x&&Math.abs(Number(u[1])-Number(y[1]))<x}function ql(u){if(!u)return null;let y=1/0,x=1/0,B=-1/0,L=-1/0;const Y=ce=>{if(Array.isArray(ce)){if(ce.length>=2&&Number.isFinite(ce[0])&&Number.isFinite(ce[1])){const ue=Number(ce[0]),Ee=Number(ce[1]);y=Math.min(y,ue),x=Math.min(x,Ee),B=Math.max(B,ue),L=Math.max(L,Ee);return}ce.forEach(Y)}};return Y(u.coordinates),!Number.isFinite(y)||!Number.isFinite(x)?null:[[y,x],[B,L]]}function Wl(u){if(!K||!u)return;const y=ql(u);if(!y)return;const[[x,B],[L,Y]]=y;if(x===L&&B===Y){K.easeTo({center:[x,B],zoom:Math.max(H.value,14)}),Q();return}K.fitBounds(y,{padding:30,duration:250,maxZoom:18}),Q()}function Jo(){if(!fe){g.value=0;return}const u=fe.getAll();g.value=u?.features?.length??0}function xn(){if(!fe)return null;const y=fe.getAll?.()?.features??[],x=Y=>!!Y&&y.some(ce=>String(ce?.id??"")===String(Y??"")),B=fe.getSelectedIds?.();if(Array.isArray(B)&&B.length>0){const Y=B[0];return Y!=null?String(Y):null}if(x(We))return String(We);if(!y.length)return null;const L=c.value?y[y.length-1]:y[0];return L?.id!==void 0&&L?.id!==null?String(L.id):null}function jt(){if(!fe)return;const u=fe.getAll();if(g.value=u?.features?.length??0,!u?.features?.length){tt=[],m.value=[],At=null,We=null,f.value=null,Te||(wt="__null__",r("update:modelValue",null));return}const y=(u.features??[]).map(Ko).filter(Boolean);if(tt=y,Xo(y),We=xn(),Yo(We),!Te){const x=Il(y);wt=Ol(x),r("update:modelValue",x)}}function oo(){if(!fe)return;(fe.getAll()?.features||[]).forEach(y=>fe.delete(y.id)),m.value=[],Jo()}function ro(u){if(!fe)return;const y=no(u),x=c.value?y:y.slice(0,1);Te=!0,oo(),x.forEach(Y=>{try{fe.add(Y)}catch{}}),Te=!1,tt=(fe.getAll?.()?.features??x).map(Ko).filter(Boolean),Xo(tt),We=null;const L=Ct(tt[tt.length-1]?.geometry??null);At=Ct(L),Jo(),Go(L),L&&(Wl(L),i.value||Nt())}function Vb(){fe&&(Te=!0,oo(),tt.forEach(u=>{try{fe.add(u)}catch{}}),Te=!1,Xo(tt),Jo(),Yo(We))}function nn(){if(fe){try{fe.changeMode("simple_select",{featureIds:[]})}catch{}p.value=""}}function lo(u){if(i.value||!fe)return;_.isRulerActive.value&&_.closeRuler(),W=!0,nn(),p.value=u;const y=u==="marker"?"draw_point":u==="polyline"?"draw_line_string":u==="rectangle"?"draw_rectangle":"draw_polygon";c.value||(Te=!0,oo(),Te=!1);try{fe.changeMode(y)}catch{p.value=""}finally{requestAnimationFrame(()=>{W=!1})}}function Nt(u){if(i.value||!fe||!fe.getAll()?.features?.length)return;const x=u||xn();if(x)try{fe.changeMode("direct_select",{featureId:x}),We=x,Yo(We),p.value="edit"}catch{p.value=""}}function Sb(u){i.value||!fe||!u||Nt(u)}function $b(){if(!(i.value||!fe)){if(c.value){const u=xn();if(u)try{en=!0,fe.delete(u),en=!1,jt();const y=xn();y?Nt(y):nn();return}catch{en=!1}}nn(),oo(),tt=[],m.value=[],We=null,wt="__null__",f.value=null,r("update:modelValue",null)}}function Ab(){i.value||!At||Wl(At)}function Nb(u){if(!K||!$t)return;const y=[u[1],u[0]];re||(re=new $t.Marker({color:"#2563eb"})),re.setLngLat(y).addTo(K),K.easeTo({center:y,zoom:13,duration:250})}function Mb(){i.value||(ke.value=!ke.value)}function Kl(u){if(!ke.value)return;const y=ee.value;y&&!y.contains(u.target)&&(ke.value=!1)}function Fb(){Db()}function Db(){i.value||(ke.value=!1,ne.value={srid:"",encoding:"UTF-8",file:""},Se.value=!0)}function Tb(){Se.value=!1,Ne.value=!1,$e.value=!1}function Lb(u){return u?typeof u=="string"?u:typeof u=="object"&&u&&"file_path"in u?String(u.file_path??""):"":""}function Ib(u){const B=((Array.isArray(u)?u[0]:u)?.features??[]).map(L=>Array.isArray(L)?L[0]:L).filter(Boolean).map(L=>L?.type==="Feature"?L:{type:"Feature",properties:{},geometry:L});return B.length?{type:"FeatureCollection",features:B}:null}async function Ob(){if(i.value||!fe||Ne.value)return;const u=Lb(ne.value.file);if(!u){he.notify({type:"warning",title:"Імпорт геометрії",message:"Оберіть файл для імпорту."});return}Ne.value=!0;try{const y=await fetch("/api/gis-convert",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({srid:ne.value.srid,encoding:ne.value.encoding||"UTF-8",filepath:u,limit:!0})}),x=await y.json().catch(()=>null);if(!y.ok)throw new Error(x?.message||x?.error||`Код помилки: ${y.status}`);const B=Ib(x);if(!B){he.notify({type:"warning",title:"Імпорт геометрії",message:"Файл не містить коректні геодані."});return}ro(B),jt(),Se.value=!1,he.notify({type:"success",title:"Успіх",message:"Геометрію успішно імпортовано."})}catch(y){he.notify({type:"error",title:"Помилка",message:y?.message||"Помилка імпорту файла геометрії"})}finally{Ne.value=!1}}function Pb(){i.value||(Me.value=[],ke.value=!1,ge.value=!0)}function Rb(){ge.value=!1,Me.value=[]}function zb(){if(i.value||!fe)return;const u=tp(ve.value.coordinates??"",ve.value.format||"decimal",ve.value.order||"lat-lon");if(!u.ok){Me.value=u.errors,jb(u.errors);return}Me.value=[],ro({type:"Polygon",coordinates:[u.ring]}),jt(),ge.value=!1,u.wasClosedAutomatically&&he.notify({type:"info",title:"Імпорт координат",message:"Полігон був автоматично замкнений (перша і остання точки різнилися)."})}function jb(u){if(!u.length)return;const y=5;u.slice(0,y).forEach(x=>{const B=x.line>0?`Рядок ${x.line}`:"Загальна помилка";he.notify({type:"warning",title:"Імпорт координат",message:`${B} — ${x.message}`})}),u.length>y&&he.notify({type:"warning",title:"Імпорт координат",message:`Ще помилок: ${u.length-y}`})}function Ub(){if(i.value||!fe)return;const u=fe.getAll(),y=new Blob([JSON.stringify(u,null,2)],{type:"application/json"}),x=URL.createObjectURL(y),B=document.createElement("a");B.href=x,B.download="data.geojson",B.click(),URL.revokeObjectURL(x)}e.onMounted(async()=>{if(window.addEventListener("click",Kl,!0),!h.value)return;const u=await to();$t=u.maplibregl,Rt=u.MapboxDraw;const y=Pe();y&&(K=new $t.Map({container:h.value,style:Qt(y),center:[R.value[0],R.value[1]],zoom:H.value,attributionControl:!1}),k.value=K,K.addControl(new $t.NavigationControl({showCompass:!0}),"bottom-right"),K.on("error",x=>{const B=x?.error?.message??x?.message??"";_m(B)}),K.on("load",()=>{if(!(!Rt||!K)){if(fe=new Rt({displayControlsDefault:!1,modes:{...Rt.modes,draw_rectangle:pe()},controls:{point:!1,line_string:!1,polygon:!1,trash:!1},styles:Ve}),K.addControl(fe),K.on("click",x=>{if(_.isRulerActive.value){const L=x?.lngLat;if(!L)return;b.value?.addPoint?.({lat:L.lat,lng:L.lng});return}if(!fe||i.value||p.value!=="edit")return;const B=vb(x?.point);!B||B===We||requestAnimationFrame(()=>{!fe||i.value||Nt(B)})}),K.on("draw.create",()=>{if(fe&&!_.isRulerActive.value){if(!c.value){const x=fe.getAll();if(x.features.length>1){const B=x.features[x.features.length-1];Te=!0,x.features.slice(0,-1).forEach(L=>fe.delete(L.id)),Te=!1,B&&(Te=!0,fe.add(B),Te=!1)}}jt(),Nt()}}),K.on("draw.update",x=>{if(Gt||_.isRulerActive.value||Ho())return;const B=Array.isArray(x?.features)?x.features:[],L=x?.action==="move"&&B.length>0&&B.every(Y=>Y?.geometry?.type==="Point");if(x?.action==="move"){if(L){jt();return}if(Gt=!0,Vb(),Gt=!1,p.value==="edit"){const Y=xn(),ce=Y?zl(Y):fe?.getAll?.()?.features?.[0];if(ce?.id)try{fe.changeMode("direct_select",{featureId:ce.id}),We=String(ce.id)}catch{p.value=""}}return}jt()}),K.on("draw.delete",()=>{Je||en||_.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle"||(jt(),fe?.getAll?.()?.features?.length||(We=null),p.value="",nn())}),K.on("draw.selectionchange",x=>{if(!fe||Gt||_.isRulerActive.value||p.value==="marker"||p.value==="polyline"||p.value==="polygon"||p.value==="rectangle")return;const B=x?.features?.[0]?.id!==void 0&&x?.features?.[0]?.id!==null?String(x.features[0].id):null;if(!i.value&&B){if(p.value==="edit"&&We===B)return;requestAnimationFrame(()=>{!fe||i.value||Nt(B)});return}const L=fe.getSelectedIds?.(),Y=Array.isArray(L)&&L.length>0?String(L[0]):null;if(!i.value&&Y){if(p.value==="edit"&&We===Y)return;requestAnimationFrame(()=>{!fe||i.value||Nt(Y)});return}try{fe.changeMode("simple_select",{featureIds:[]})}catch{}}),se.value!==void 0){const x=se.value;se.value=void 0,requestAnimationFrame(()=>{fe&&ro(x)})}wn(),Ll(),Fe.value.forEach(x=>{const B=Ae[x];B&&tn(B)}),_t(),M()}}),K.on("contextmenu",Cb),K.on("moveend",Q),K.on("zoomend",()=>{K&&(H.value=K.getZoom())}))}),e.onUnmounted(()=>{typeof document<"u"&&(document.body.style.overflow=""),typeof window<"u"&&window.removeEventListener("keydown",er),ae&&(clearTimeout(ae),ae=null),_.isRulerActive.value&&_.closeRuler(),window.removeEventListener("click",Kl,!0),Object.values(Ae).forEach(u=>{K&&zt(u)}),Ze(),re?.remove&&re.remove(),re=null,K?.remove&&K.remove(),K=null,fe=null,k.value=null}),e.watch(()=>n.modelValue,u=>{if(!fe){se.value=u;return}if(Ho())return;const y=Il((c.value?no(u):no(u).slice(0,1))||[]),x=Ol(y);if(wt&&x===wt){wt=null;return}wt=null,ro(u)},{deep:!0}),e.watch(()=>U.value,u=>{const y=Array.isArray(u)?u:[],x=[],B=new Set;y.forEach((L,Y)=>{if(!L)return;const ce=Xe(L,Y);x.push(ce),B.add(ce);const ue={...L,id:ce},Ee=Ae[ce],Ie=Ee?.visible??!!ue.visible;Ee&&K&&zt(Ee),Ae[ce]={id:ce,config:ue,visible:Ie,sourceId:`vs-ov-src-${ce}`,layerIds:[],boundsIds:[],handlers:[],renderToken:Ee?.renderToken??0}}),Object.keys(Ae).forEach(L=>{if(B.has(L))return;const Y=Ae[L];Y&&K&&zt(Y),delete Ae[L]}),Fe.value=x,K&&(Fe.value.forEach(L=>{const Y=Ae[L];Y&&tn(Y)}),_t())},{immediate:!0,deep:!0}),e.watch(()=>oe.value,()=>{K&&(wn(),Fe.value.forEach(u=>{const y=Ae[u];y&&tn(y)}),_t())},{deep:!0}),e.watch(()=>D.value,async u=>{if(me.value=[],!u){K&&(wn(),Fe.value.forEach(y=>{const x=Ae[y];x&&tn(x)}),_t());return}try{const y=await fetch(`https://data.gki.com.ua/api-user/atu/${u}`);if(!y?.ok)return;const B=(await y.json())?.geometry?.coordinates;Array.isArray(B)&&B.length&&(me.value=B)}catch(y){console.error("Failed to fetch KATOTTG bounds",y)}finally{if(!K)return;wn(),Fe.value.forEach(y=>{const x=Ae[y];x&&tn(x)}),_t()}},{immediate:!0}),e.watch(()=>j.value,u=>{if(!Array.isArray(u)||u.length!==2)return;const y=[Number(u[0]),Number(u[1])];if(Hl(R.value,y)||(R.value=[...y],!K))return;const x=K.getCenter?.();x&&Hl([x.lng,x.lat],R.value)||K.easeTo({center:[R.value[0],R.value[1]]})},{deep:!0}),e.watch(()=>te.value,u=>{typeof u=="number"&&(H.value=u,K&&K.setZoom(u))}),e.watch(()=>f.value?.center,u=>{u&&A(u.lng,u.lat,K?.getZoom?.())},{deep:!0}),e.watch(i,u=>{u&&nn()}),e.watch(g,u=>{if(u>0){i.value||Nt();return}W||nn()});const Gl=e.computed(()=>m.value.length>0||!!f.value),Qo=e.computed(()=>{const u=m.value,y=u.length>1;return u.length?u.map(x=>({id:x.id,label:y?x.label:f.value?.type?Zo(f.value.type):x.label,interactive:y})):f.value?.type?[{id:"__feature",label:Zo(f.value.type),interactive:!1}]:[]});function Yl(){setTimeout(()=>{K?.resize&&K.resize()},50)}function er(u){u.key==="Escape"&&d.value&&(d.value=!1)}return e.watch(d,u=>{typeof document<"u"&&(document.body.style.overflow=u?"hidden":""),typeof window<"u"&&(u?window.addEventListener("keydown",er):window.removeEventListener("keydown",er)),Yl()}),e.watch(Gl,Yl),(u,y)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body",disabled:!d.value},[e.createElementVNode("div",{class:e.normalizeClass(["vs-map-wrapper w-full",{fullscreen:d.value}])},[e.createElementVNode("div",Cm,[e.createElementVNode("div",{ref_key:"mapContainer",ref:h,class:"vs-map-canvas"},null,512),w.value.search||w.value.import||w.value.export?(e.openBlock(),e.createElementBlock("div",Em,[w.value.search?(e.openBlock(),e.createBlock(xp,{key:0,onGoToCoordinates:Nb})):e.createCommentVNode("",!0),w.value.import||w.value.export?(e.openBlock(),e.createElementBlock("div",Bm,[e.createElementVNode("div",Vm,[w.value.import?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"importMenuRef",ref:ee,class:"relative"},[e.createElementVNode("button",{type:"button",class:"vs-map-action-btn",onClick:Mb,disabled:i.value},[y[10]||(y[10]=e.createTextVNode(" Імпорт ",-1)),e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-3.5 w-3.5 shrink-0 transition-transform",{"rotate-180":ke.value}])},null,8,["class"])],8,Sm),ke.value?(e.openBlock(),e.createElementBlock("div",$m,[w.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:Fb}," З файлу ")):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:Pb}," З координат ")])):e.createCommentVNode("",!0)],512)):e.createCommentVNode("",!0),w.value.export?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vs-map-action-btn",onClick:Ub,disabled:i.value||g.value===0}," Експорт ",8,Am)):e.createCommentVNode("",!0)])])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createVNode(e.unref(he.VsModal),{visible:Se.value,"onUpdate:visible":y[1]||(y[1]=x=>Se.value=x),title:"Імпорт геометрії",size:"lg",teleport:e.unref(s)},{default:e.withCtx(()=>[$e.value||Ne.value?(e.openBlock(),e.createElementBlock("div",Nm,[e.createVNode(e.unref(X.LoaderCircle),{class:"h-4 w-4 shrink-0 animate-spin"}),e.createElementVNode("span",null,e.toDisplayString(Oe.value),1)])):e.createCommentVNode("",!0),e.createVNode(ot,{schema:xe.value,values:ne.value,"onUpdate:values":y[0]||(y[0]=x=>ne.value=x)},null,8,["schema","values"]),e.createElementVNode("div",Mm,[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:Tb,disabled:$e.value||Ne.value}," Скасувати ",8,Fm),e.createElementVNode("button",{type:"button",class:"px-3 py-2 rounded-md bg-blue-600 text-white text-sm hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed inline-flex items-center gap-2",onClick:Ob,disabled:i.value||$e.value||Ne.value||!ne.value.file},[Ne.value?(e.openBlock(),e.createBlock(e.unref(X.LoaderCircle),{key:0,class:"h-4 w-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(Ne.value?"Обробка...":"Додати"),1)],8,Dm)])]),_:1},8,["visible","teleport"]),e.createVNode(e.unref(he.VsModal),{visible:ge.value,"onUpdate:visible":y[3]||(y[3]=x=>ge.value=x),title:"Імпорт координат полігону",size:"lg",teleport:e.unref(s)},{default:e.withCtx(()=>[e.createVNode(ot,{schema:ze,values:ve.value,"onUpdate:values":y[2]||(y[2]=x=>ve.value=x)},null,8,["values"]),e.createElementVNode("div",Tm,[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:Rb}," Скасувати "),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:zb,disabled:i.value}," Побудувати ",8,Lm)])]),_:1},8,["visible","teleport"]),e.createElementVNode("div",Im,[e.createElementVNode("div",Om,[pt.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[w.value.point?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="marker"}]),title:"Точка",onClick:y[4]||(y[4]=x=>lo("marker")),disabled:i.value},[e.createVNode(e.unref(X.MapPin),{class:"vs-btn-icon"})],10,Pm)):e.createCommentVNode("",!0),w.value.line?(e.openBlock(),e.createElementBlock("button",{key:1,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polyline"}]),title:"Лінія",onClick:y[5]||(y[5]=x=>lo("polyline")),disabled:i.value},[e.createVNode(vu,{class:"vs-btn-icon"})],10,Rm)):e.createCommentVNode("",!0),w.value.polygon?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="polygon"}]),title:"Полігон",onClick:y[6]||(y[6]=x=>lo("polygon")),disabled:i.value},[e.createVNode(Bu,{class:"vs-btn-icon"})],10,zm)):e.createCommentVNode("",!0),w.value.rectangle?(e.openBlock(),e.createElementBlock("button",{key:3,class:e.normalizeClass(["vs-btn",{"vs-active":p.value==="rectangle"}]),title:"Прямокутник",onClick:y[7]||(y[7]=x=>lo("rectangle")),disabled:i.value},[e.createVNode(Au,{class:"vs-btn-icon"})],10,jm)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),pt.value?(e.openBlock(),e.createElementBlock("div",Um)):e.createCommentVNode("",!0),w.value.ruler?(e.openBlock(),e.createElementBlock("button",{key:2,class:e.normalizeClass(["vs-btn",{"vs-active":e.unref(_).isRulerActive.value}]),title:"Лінійка",onClick:C},[e.createVNode(e.unref(X.Ruler),{class:"vs-btn-icon"})],2)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:"vs-btn",onClick:y[8]||(y[8]=x=>d.value=!d.value),title:d.value?"Згорнути":"На весь екран"},[d.value?(e.openBlock(),e.createBlock(e.unref(X.Minimize),{key:0,class:"vs-btn-icon"})):(e.openBlock(),e.createBlock(e.unref(X.Maximize),{key:1,class:"vs-btn-icon"}))],8,Hm)])]),w.value.ruler&&e.unref(_).isRulerActive.value?(e.openBlock(),e.createBlock(fm,{key:1,ref_key:"rulerPanelRefEl",ref:b,onClose:y[9]||(y[9]=x=>e.unref(_).closeRuler()),onTabChange:e.unref(_).onRulerTabChange,onPointsChange:e.unref(_).onRulerPointsChange,onShapeClosedChange:e.unref(_).onRulerShapeClosedChange},null,8,["onTabChange","onPointsChange","onShapeClosedChange"])):e.createCommentVNode("",!0),w.value.ruler&&e.unref(_).isRulerActive.value&&e.unref(_).hasRulerPoints.value?(e.openBlock(),e.createBlock(hm,{key:2,map:k.value,points:e.unref(_).rulerPoints.value,"is-shape-closed":e.unref(_).rulerShapeClosed.value,"label-mode":e.unref(_).rulerActiveTab.value},null,8,["map","points","is-shape-closed","label-mode"])):e.createCommentVNode("",!0),J.value.length?(e.openBlock(),e.createElementBlock("div",{key:3,class:"absolute z-[1500] pointer-events-none",style:e.normalizeStyle(ie.value)},[e.createElementVNode("div",qm,[e.createElementVNode("dl",Wm,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(J.value,x=>(e.openBlock(),e.createElementBlock("div",{key:`${x.key}-${x.value}`,class:"flex justify-between gap-2"},[e.createElementVNode("dt",Km,e.toDisplayString(x.key),1),e.createElementVNode("dd",Gm,e.toDisplayString(x.value),1)]))),128))])])],4)):e.createCommentVNode("",!0),e.createElementVNode("div",Ym,[e.createVNode(Qu,{compact:"",basemaps:e.unref(le),"active-base-key":Le.value,"tile-overlays":e.unref(je),"active-tile-overlay-keys":He.value,"vector-overlays":qe.value,"preview-tile":Z.value,disabled:i.value,onOnLayerChange:bb,onOnOverlayToggle:yb,onOnVectorOverlayToggle:hb},null,8,["basemaps","active-base-key","tile-overlays","active-tile-overlay-keys","vector-overlays","preview-tile","disabled"])])]),Gl.value?(e.openBlock(),e.createElementBlock("div",Xm,[e.createElementVNode("div",Zm,[e.createElementVNode("div",Jm,[y[11]||(y[11]=e.createElementVNode("span",{class:"vs-map-status__label"},"Тип:",-1)),e.createElementVNode("div",Qm,[Qo.value.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(Qo.value,(x,B)=>(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(We)}]),onClick:L=>Sb(x.id),disabled:i.value},e.toDisplayString(x.label),11,ef)):(e.openBlock(),e.createElementBlock("span",tf,e.toDisplayString(x.label),1)),B<Qo.value.length-1?(e.openBlock(),e.createElementBlock("span",nf,", ")):e.createCommentVNode("",!0)],64))),128)):(e.openBlock(),e.createElementBlock("span",of,"—"))])]),e.createElementVNode("div",rf,[e.createElementVNode("span",lf,[y[12]||(y[12]=e.createElementVNode("span",{class:"vs-map-status__label"},"Центр:",-1)),f.value?(e.openBlock(),e.createElementBlock("span",af,e.toDisplayString(f.value.center.lng.toFixed(5))+", "+e.toDisplayString(f.value.center.lat.toFixed(5)),1)):(e.openBlock(),e.createElementBlock("span",sf,"—"))]),f.value&&f.value.areaKm2!==null?(e.openBlock(),e.createElementBlock("span",cf,[y[13]||(y[13]=e.createElementVNode("span",{class:"vs-map-status__label"},"Площа:",-1)),e.createElementVNode("span",df,e.toDisplayString(f.value.areaKm2.toFixed(1))+" km²",1)])):e.createCommentVNode("",!0),e.createElementVNode("div",uf,[e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--zoom",title:"Масштаб до об'єкта",onClick:Ab,disabled:i.value},[e.createVNode(e.unref(X.ZoomIn),{class:"vs-status-btn__icon"})],8,pf),e.createElementVNode("button",{type:"button",class:"vs-status-btn vs-status-btn--delete",title:"Видалити об'єкт",onClick:$b,disabled:i.value},[e.createVNode(e.unref(X.Trash2),{class:"vs-status-btn__icon"})],8,mf)])])])])):e.createCommentVNode("",!0)],2)],8,["disabled"]))}}),[["__scopeId","data-v-780ba2d7"]]),wf=["data-focus"],xf={class:"flex items-center"},vf={class:"overflow-hidden text-ellipsis whitespace-nowrap rounded-sm text-[#333] text-[85%] px-0.5 py-[3px] pl-1.5 box-border"},_f=["onClick","aria-label"],Cf={key:0,class:"absolute text-gray-500 truncate pl-2"},Ef={class:"flex-1 min-w-[2px]"},Bf=["placeholder"],Vf={class:"flex items-center shrink-0"},Sf=["disabled"],Ur=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;Qe(n.style);const a=e.ref(null),l=e.ref(null),s=e.ref(null),c=e.ref(!1),i=e.ref(""),d=e.useModel(o,"modelValue"),h=e.computed(()=>n.placeholder||"Add tag…"),g=e.computed(()=>d.value?.length===0&&i.value===""),p=e.computed(()=>!n.disabled&&d.value?.length>0),f=e.computed(()=>n.disabled),m=async()=>{f.value||await e.nextTick(()=>s.value?.focus())},k=G=>{const I=G.trim();I!==""&&(!d.value||!Array.isArray(d.value)?d.value=[I]:n.unique?d.value.includes(I)||(d.value=[...d.value,I]):d.value=[...d.value,I],i.value="")},b=()=>{const G=i.value;G.trim()!==""&&k(G),i.value=""},_=G=>{const I=d.value.slice();I.splice(G,1),r("update:modelValue",I)},C=()=>{r("update:modelValue",[])},N=()=>{f.value||(c.value=!0)},$=()=>{c.value=!1,!f.value&&b()},q=G=>{const{key:I}=G;I==="Enter"?(G.preventDefault(),b()):I==="Backspace"&&i.value===""&&d.value.length>0&&_(d.value.length-1)};return(G,I)=>(e.openBlock(),e.createElementBlock("div",{class:"flex gap-1 w-full",ref_key:"root",ref:a,onClick:I[1]||(I[1]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{class:e.normalizeClass(["relative w-full font-sans",n.customClass]),role:"group","aria-label":"Tag input"},[e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white","border-gray-300 hover:border-gray-400",c.value?"border-blue-500 ring-1 ring-blue-500":"",f.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),"data-focus":c.value?"true":"false",onClick:m},[e.createElementVNode("div",{class:"flex flex-1 flex-wrap items-center gap-1 py-0.5 pl-2 pr-0 overflow-hidden",ref_key:"chipsRef",ref:l},[(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",xf,[e.createElementVNode("div",vf,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(X.X),{"aria-hidden":"true",focusable:"false",class:"inline-block h-4 w-4"})],8,_f)]))),128)),g.value?(e.openBlock(),e.createElementBlock("div",Cf,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("div",Ef,[f.value?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,ref_key:"inputRef",ref:s,class:"pl-2 w-full bg-transparent outline-none border-0 m-0 p-0 text-gray-900",autocapitalize:"none",autocomplete:"off",autocorrect:"off",spellcheck:"false",type:"text",tabindex:"0","aria-label":"Add tag","onUpdate:modelValue":I[0]||(I[0]=E=>i.value=E),onFocus:N,onBlur:$,onKeydown:q,placeholder:d.value&&d.value.length?"":void 0},null,40,Bf)),[[e.vModelText,i.value]])])],512),e.createElementVNode("div",Vf,[p.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"px-2 text-gray-400 hover:text-gray-500 transition-colors disabled:opacity-50","aria-label":"Clear all tags",disabled:f.value,onClick:e.withModifiers(C,["stop"])},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Sf)):e.createCommentVNode("",!0)])],10,wf)],2)],512))}}),$f={class:"relative flex gap-1 bg-white w-full"},Af=["disabled","placeholder"],Hr=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 a(s){const c={а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"e",ж:"zh",з:"z",и:"i",й:"y",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"ts",ч:"ch",ш:"sh",щ:"shch",ы:"y",э:"e",ю:"yu",я:"ya",ь:"",ъ:"",є:"ye",і:"i",ї:"yi",ґ:"g"};return s.toLowerCase().split("").map(i=>c[i]||i).join("").replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}const l=()=>{const s=t?.value?.[n.parent||""]?.toString(),c=a(s);r.value=c.toString()};return(s,c)=>(e.openBlock(),e.createElementBlock("div",$f,[e.withDirectives(e.createElementVNode("input",{ref:"vsText",disabled:s.disabled,placeholder:s.placeholder,"onUpdate:modelValue":c[0]||(c[0]=i=>r.value=i),class:"block w-full px-3 py-2 text-sm border border-solid rounded-lg placeholder:text-nowrap border-stone-200 text-stone-800 placeholder:text-stone-400 focus:outline focus:z-10 focus:border-blue-500 focus:ring-blue-500 focus:outline-blue-500"},null,8,Af),[[e.vModelText,r.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200",onClick:l}," Gen ")]))}}),[["__scopeId","data-v-b0eba370"]]),Nf={class:"relative flex gap-1 bg-white w-full"},Mf=["disabled","placeholder"],Ff=["disabled"],Df={key:0},Tf={key:1},qr=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),a=e.computed(()=>t.init!==!1),l=e.computed(()=>!!t.table&&!!t.code),s=()=>{if(!l.value)return"";const d=encodeURIComponent(String(t.table)),h=encodeURIComponent(String(t.code));return`/api/code-gen/${d}/${h}`},c=async()=>{if(!l.value||r.value)return;const d=s();if(d){r.value=!0;try{const g=await(await fetch(d)).text();n.value=g}finally{r.value=!1}}},i=()=>{a.value&&(n.value||c())};return e.onMounted(()=>{i()}),e.watch(()=>[t.table,t.code,t.init],()=>{i()}),(d,h)=>(e.openBlock(),e.createElementBlock("div",Nf,[e.withDirectives(e.createElementVNode("input",{disabled:d.disabled,placeholder:d.placeholder,"onUpdate:modelValue":h[0]||(h[0]=g=>n.value=g),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,Mf),[[e.vModelText,n.value]]),e.createElementVNode("button",{class:"px-2 bg-gray-100 border rounded-lg hover:bg-gray-200 disabled:opacity-50 disabled:cursor-not-allowed",disabled:r.value||d.disabled||!l.value,onClick:c},[r.value?(e.openBlock(),e.createElementBlock("span",Tf,"...")):(e.openBlock(),e.createElementBlock("span",Df,"Gen"))],8,Ff)]))}}),[["__scopeId","data-v-6ee5237d"]]),Lf={class:"w-full"},If={ref:"sortableContainer",class:"flex flex-col gap-1"},Of=["onDragstart","onDrop"],Pf={class:"cursor-move",type:"button"},Rf={class:"w-1/3"},zf={class:"w-2/3"},jf=["onClick"],Uf={key:0,class:"text-[14px] text-gray-700"},Hf={class:"mt-2 w-full flex items-center"},qf=["disabled"],Wr=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"),a=o,l=t,s=a.addButtonText??"Додати",c=a.ignore??[],i=e.ref([]),d=e.ref(null);(()=>{const b=a.parent&&r?.value?.[a.parent]||a.modelValue||{};i.value=Object.entries(b).filter(([_])=>!c.includes(_)).map(([_,C])=>({id:n("key-value-"),key:_,value:C}))})();function g(b){d.value=b}function p(b){if(d.value===null||d.value===b)return;const _=i.value.splice(d.value,1)[0];i.value.splice(b,0,_),d.value=null}const f=e.computed(()=>i.value.some(b=>b.key&&!b.value||!b.key&&b.value)),m=()=>{i.value.push({id:n("key-value-"),key:"",value:""})},k=b=>{i.value=i.value.filter(_=>_.id!==b)};return e.watch(i,b=>{const _={};b.forEach(N=>{N.key&&N.value!==void 0&&(_[N.key]=N.value)});const C={};c.length&&c.forEach(N=>{C[N]=a.parent?r?.value?.[a.parent]?.[N]:void 0}),r?.value&&a.parent&&(r.value[a.parent]={...C,..._}),l("update:modelValue",_)},{deep:!0}),(b,_)=>(e.openBlock(),e.createElementBlock("div",Lf,[e.createElementVNode("div",If,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,(C,N)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":d.value===N}]),draggable:"true",onDragstart:$=>g(N),onDragover:_[0]||(_[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>p(N)},[e.createElementVNode("button",Pf,[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})]),e.createElementVNode("div",Rf,[e.createVNode(Yt,{modelValue:C.key,"onUpdate:modelValue":$=>C.key=$,placeholder:"Ключ"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("div",zf,[e.createVNode(Yt,{modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,placeholder:"Значення"},null,8,["modelValue","onUpdate:modelValue"])]),e.createElementVNode("button",{onClick:$=>k(C.id),class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,jf)],42,Of))),128))],512),i.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Uf," Дані для відображення відсутні ")),e.createElementVNode("div",Hf,[e.createElementVNode("button",{type:"button",onClick:m,disabled:f.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(e.unref(s)),1)],8,qf)])]))}}),[["__scopeId","data-v-d8c3f9d6"]]),Wf={class:"w-full"},Kf={ref:"sortableContainer",class:"flex flex-col gap-1"},Gf=["onDragstart","onDrop"],Yf=["disabled"],Xf={class:"flex-1"},Zf=["onClick","disabled"],Jf={key:0,class:"text-[14px] text-gray-700"},Qf={class:"mt-2 w-full flex items-center"},eh=["disabled"],Kr=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([]),a=e.ref(null),l=e.computed(()=>!!t.disabled),s=e.computed(()=>t.placeholder??""),c=e.computed(()=>t.addButtonText??"Додати");let i=!1;const d=b=>`${b}-${Math.random().toString(36).substring(2,15)}`,h=b=>{const _=b??n.value??[];r.value=_.map((C,N)=>({id:r.value[N]?.id??d("text-array"),value:C??""}))};h(),e.watch(()=>n.value,b=>{if(i){i=!1;return}h(b||[])},{deep:!0}),e.watch(r,b=>{i=!0,n.value=b.map(_=>_.value).filter(_=>_!=null&&_!=="")},{deep:!0});const g=e.computed(()=>l.value||r.value.some(b=>!b.value));function p(){g.value||(r.value=[...r.value,{id:d("text-array"),value:""}])}function f(b){l.value||(r.value=r.value.filter(_=>_.id!==b))}function m(b){l.value||(a.value=b)}function k(b){if(l.value||a.value===null||a.value===b)return;const _=[...r.value],[C]=_.splice(a.value,1);_.splice(b,0,C),r.value=_,a.value=null}return(b,_)=>(e.openBlock(),e.createElementBlock("div",Wf,[e.createElementVNode("div",Kf,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,N)=>(e.openBlock(),e.createElementBlock("div",{key:C.id,class:e.normalizeClass(["flex items-center gap-2 w-full",{"opacity-50":a.value===N}]),draggable:"true",onDragstart:$=>m(N),onDragover:_[0]||(_[0]=e.withModifiers(()=>{},["prevent"])),onDrop:$=>k(N)},[e.createElementVNode("button",{class:"cursor-move",type:"button",disabled:l.value},[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})],8,Yf),e.createElementVNode("div",Xf,[b.inputType==="text"?(e.openBlock(),e.createBlock(Yt,{key:0,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="tel"?(e.openBlock(),e.createBlock(mo,{key:1,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="email"?(e.openBlock(),e.createBlock(po,{key:2,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","disabled","placeholder"])):e.createCommentVNode("",!0),b.inputType==="mask"?(e.openBlock(),e.createBlock(En,{key:3,modelValue:C.value,"onUpdate:modelValue":$=>C.value=$,mask:b.mask,disabled:l.value,placeholder:s.value},null,8,["modelValue","onUpdate:modelValue","mask","disabled","placeholder"])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:$=>f(C.id),disabled:l.value,class:"shrink-0 w-[30px] text-gray-600 h-[30px] rounded-full flex items-center justify-center bg-gray-100 hover:bg-gray-200 disabled:opacity-50"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,Zf)],42,Gf))),128))],512),r.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Jf," Дані для відображення відсутні ")),e.createElementVNode("div",Qf,[e.createElementVNode("button",{type:"button",onClick:p,disabled:g.value,class:"py-1.5 px-2 flex items-center gap-x-1 text-xs font-medium rounded-full border border-dashed border-gray-200 bg-white text-gray-800 hover:bg-gray-50 disabled:opacity-50 disabled:cursor-not-allowed"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(c.value),1)],8,eh)])]))}}),[["__scopeId","data-v-2c229b1f"]]),th={class:"flex items-center gap-2 w-full"},nh=["disabled"],oh=["disabled"],Gr=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}=Qe(n.style),a=t,l=e.computed({get:()=>n.modelValue||"#000000",set:c=>a("update:modelValue",c)}),s=e.computed(()=>!!n.disabled);return(c,i)=>(e.openBlock(),e.createElementBlock("div",th,[e.withDirectives(e.createElementVNode("input",{type:"color","onUpdate:modelValue":i[0]||(i[0]=d=>l.value=d),disabled:s.value,ref:"color",class:e.normalizeClass(["py-1.5 px-1 block w-full bg-white cursor-pointer max-w-[50px]",[c.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")]),style:{border:"1px solid #CFD9E0"}},null,10,nh),[[e.vModelText,l.value]]),e.withDirectives(e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2","onUpdate:modelValue":i[1]||(i[1]=d=>l.value=d),disabled:s.value},null,8,oh),[[e.vModelText,l.value]])]))}}),rh={class:"flex items-center gap-2 w-full"},lh=["min","max","step","disabled"],ah=["value","min","max","step","disabled"],Yr=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}=Qe(n.style),a=t,l=h=>{const g=Number(h),p=Number(n.min),f=Number(n.max);return Number.isNaN(g)?p:Math.min(f,Math.max(p,g))},s=e.computed({get:()=>l(n.modelValue??n.min),set:h=>a("update:modelValue",l(h))}),c=h=>{const g=h.target,p=l(g.value);g.value=String(p),a("update:modelValue",p)},i=h=>{Number(n.min)>=0&&h.key==="-"&&h.preventDefault()},d=e.computed(()=>!!n.disabled);return(h,g)=>(e.openBlock(),e.createElementBlock("div",rh,[e.withDirectives(e.createElementVNode("input",{type:"range","onUpdate:modelValue":g[0]||(g[0]=p=>s.value=p),min:h.min,max:h.max,step:h.step,disabled:d.value,ref:"range",class:e.normalizeClass(["w-full cursor-pointer accent-blue-500",[h.modelValue?"":"text-opacity-50",e.unref(r)].join(" ")])},null,10,lh),[[e.vModelText,s.value]]),e.createElementVNode("input",{class:"text-sm text-gray-600 border border-solid border-stone-200 rounded-md p-2 max-w-[100px]",type:"number",value:s.value,min:h.min,max:h.max,step:h.step,onInput:c,onKeydown:i,disabled:d.value},null,40,ah)]))}}),sh=["placeholder","disabled","name"],ih=["type","value","onInput","placeholder","disabled"],ch=["onClick"],Xr=e.defineComponent({__name:"vs-input-array",props:e.mergeModels({count:{default:1},limit:{default:1},mask:{default:""},unmask:{type:Boolean,default:!1},inputType:{default:"text"},isAdded:{type:Boolean,default:!1},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{default:""},maxlength:{},minlength:{}},{modelValue:{default:[]},modelModifiers:{}}),emits:["update:modelValue"],setup(o){const t=o,n=e.ref(t.count),r=e.computed(()=>t.limit),{inputClass:a}=Qe(t.style),l=e.useModel(o,"modelValue"),s=e.computed(()=>!!t.disabled),c=e.computed(()=>t.placeholder??"");e.watchEffect(()=>{const k=l.value?.length??0;k<n.value&&(l.value=[...l.value??[],...Array(n.value-k)])});const i=e.ref({}),d=e.ref({});function h(k,b){k&&(i.value[b]=k)}async function g(k,b){if(!k||t.inputType!=="mask")return;const{default:_}=await Promise.resolve().then(()=>Qn);d.value[b]&&d.value[b].destroy(),d.value[b]=_(k,{mask:t.mask||"",definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/},lazy:!1}),d.value[b].on("accept",()=>{const C=[...l.value||[]];C[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,l.value=C}),d.value[b].on("complete",()=>{const C=[...l.value||[]];C[b]=t.unmask?d.value[b].unmaskedValue:d.value[b].value,l.value=C}),l.value?.[b]&&(d.value[b].value=l.value[b])}function p(k,b){if(s.value)return;const _=k.target.value??null,C=[...l.value];C[b]=t.inputType==="text"?_:Number(_),l.value=C}function f(){n.value+=1;const k=t.inputType==="text"||t.inputType==="mask"?null:0;l.value=[...l.value,k],t.inputType==="mask"&&setTimeout(()=>{const b=n.value-1;i.value[b]&&g(i.value[b],b)},0)}function m(k){if(n.value>1){d.value[k]&&(d.value[k].destroy(),delete d.value[k]),n.value-=1,l.value=l.value.filter((_,C)=>C!==k);const b={};Object.keys(d.value).forEach(_=>{const C=parseInt(_,10);C>k?b[C-1]=d.value[C]:C<k&&(b[C]=d.value[C])}),d.value=b}}return e.onMounted(()=>{if(t.inputType==="mask")for(let k=0;k<n.value;k+=1)i.value[k]&&g(i.value[k],k)}),e.onBeforeUnmount(()=>{Object.values(d.value).forEach(k=>{k&&k.destroy()})}),e.watch(()=>t.mask,k=>{t.inputType==="mask"&&Object.values(d.value).forEach(b=>{b&&b.updateOptions({mask:k,definitions:{9:/[0-9]/,A:/[a-zA-Z]/,"*":/[a-zA-Z0-9]/}})})}),e.watch(l,k=>{t.inputType==="mask"&&k&&k.forEach((b,_)=>{d.value[_]&&d.value[_].value!==b&&(d.value[_].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,_=>(e.openBlock(),e.createElementBlock("div",{key:_,class:"flex items-center gap-2 w-full"},[k.inputType==="mask"?(e.openBlock(),e.createElementBlock("input",{key:0,type:"text",ref_for:!0,ref:C=>h(C,_-1),placeholder:k.placeholder,disabled:k.disabled,name:`${k.name}[${_-1}]`,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":k.error}]]),style:{border:"1px solid #CFD9E0"}},null,10,sh)):(e.openBlock(),e.createElementBlock("input",{key:1,type:k.inputType,value:l.value?.[_-1],onInput:C=>p(C,_-1),placeholder:c.value,disabled:s.value,class:e.normalizeClass(["py-1.5 px-3 block w-full placeholder:text[#767f8f] bg-white",[e.unref(a),{"!border-red-600":k.error}]]),style:{border:"1px solid #CFD9E0"}},null,42,ih)),!k.disabled&&_===n.value&&k.isAdded?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",onClick:e.withModifiers(f,["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-green-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(X.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(C=>m(_-1),["stop"]),class:"cursor-pointer shrink-0 w-[38px] text-red-600 h-[38px] rounded-md flex items-center justify-center border border-stone-200 hover:bg-stone-100"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,ch)):e.createCommentVNode("",!0)]))),128))],2))}}),dh={class:"flex gap-1 w-full"},uh=["aria-expanded","data-focus"],ph=["placeholder","disabled","readonly"],mh={class:"max-h-full"},fh=["onClick","disabled"],hh={key:0,class:"px-3 py-2 text-sm text-stone-500"},gh=["disabled"],yh={class:"flex flex-col gap-1"},bh=["onDragstart","onDrop"],kh=["disabled"],wh=["title"],xh=["disabled","onClick","aria-label"],vh={key:0,class:"text-xs text-stone-500"},qn=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,a=e.useModel(o,"modelValue"),l=e.ref([]),s=e.ref(n.options??[]),c=e.ref({}),i=e.ref({}),d=e.ref({keyword:"",parent:null}),h=e.ref(""),g=e.ref(!1),p=e.ref(null),f=e.ref(null),m=e.ref(null),k=e.ref(null),b=e.ref(null),_=e.ref({});let C=!1,N=!1;const $=e.inject("values"),q=e.computed(()=>!!n.disabled),G=e.computed(()=>n.placeholder??"Оберіть значення"),I=e.computed(()=>n.search!==!1),E=e.computed(()=>{const w=n.parent??n.parentValue;return w?String(w):""}),V=e.computed(()=>E.value?$?.value?.[E.value]??null:null),v=w=>w==null?"__null__":String(w),T=w=>{if(!w)return"";const S=w.label??w.text??w.name??w.ua??w.en;return S?String(S):w.id!==void 0&&w.id!==null?String(w.id):""},j=w=>{const S=v(w);return i.value[S]||(i.value[S]=`array-select-${S}-${Math.random().toString(36).slice(2,8)}`),i.value[S]},te=e.computed(()=>new Set(l.value.map(w=>v(w.id)))),D=e.computed(()=>{const w=te.value;let S=[...s.value];if(!n.data&&h.value.trim()){const P=h.value.toLowerCase();S=S.filter(le=>T(le).toLowerCase().includes(P))}return S.filter(P=>!w.has(v(P.id)))}),U=()=>{if(!n.data)return"";const w=n.prefix??"api",S=n.api??`/${w}/suggest/${n.data}`;return`${n.host??""}${S}`},oe=()=>{l.value.length&&(C=!0,l.value=l.value.map(w=>({...w,text:c.value[v(w.id)]??w.text})))},R=w=>{const S=v(w.id),P=T(w);P&&(c.value[S]=P)},H=w=>{s.value=w?[...w]:[],w?.forEach(R),oe()},Z=w=>{if(!w.length)return;const S=new Map(s.value.map(P=>[v(P.id),P]));w.forEach(P=>{const le=v(P.id);S.set(le,P),R(P)}),s.value=Array.from(S.values()),oe()},ae=async(w="")=>{if(!n.data)return[];const S=U();if(!S)return[];const P=new URLSearchParams;P.set("json","1"),w&&P.set("key",w),n.start===1&&P.set("start","1"),V.value!==null&&V.value!==void 0&&V.value!==""&&P.set("parent",String(V.value));try{return(await(await fetch(`${S}?${P.toString()}`)).json())?.data??[]}catch{return[]}},O=async w=>{if(!n.data||!w.length)return[];const S=U();if(!S)return[];const P=Array.from(new Set(w.map(we=>v(we)))),le=new URLSearchParams;le.set("json","1"),le.set("val",P.join(",")),n.start===1&&le.set("start","1"),V.value!==null&&V.value!==void 0&&V.value!==""&&le.set("parent",String(V.value));try{const De=(await(await fetch(`${S}?${le.toString()}`)).json())?.data??[];return Z(De),De}catch{return[]}},A=async w=>{if(w==null||w==="")return null;const S=v(w),P=s.value.find(we=>v(we.id)===S);if(P)return P;const[le]=await O([w]);return le??null},M=async(w="",{force:S=!1}={})=>{if(!n.data)return;const P=V.value??null;if(!S&&d.value.keyword===w&&d.value.parent===P&&s.value.length>0)return;d.value={keyword:w,parent:P};const we=await ae(w);H(we)},se=((w,S=200)=>{let P;return(...le)=>{P&&clearTimeout(P),P=setTimeout(()=>w(...le),S)}})(async w=>{n.data&&await M(w,{force:!0})},250),ee=e.ref(null),me=()=>{if(!m.value)return;const w=m.value.getBoundingClientRect(),S=window.innerHeight??document.documentElement.clientHeight,P=window.innerWidth??document.documentElement.clientWidth,le=8,we=8,Le=n.maxHeight??280,De=S-w.bottom-we-le,je=w.top-we-le,He=De>=je,pt=Math.max(P-le*2,0);let{width:qe}=w;pt>0&&qe>pt&&(qe=pt);let{left:it}=w;it+qe+le>P&&(it=P-qe-le),it=Math.max(it,le);const Pt=Math.min(Le,Math.max(He?De:je,50));_.value={position:"fixed",left:`${it}px`,width:`${qe}px`,maxHeight:`${Pt}px`,transform:He?"none":"translateY(-100%)",top:He?`${w.bottom+we}px`:`${w.top-we}px`}},ke=async(w="click")=>{q.value||g.value||(ee.value=w,await M(h.value.trim()),g.value=!0,await e.nextTick(),me(),b.value?.focus())},ge=()=>{g.value=!1,ee.value=null,e.nextTick(()=>{b.value?.blur()})},Se=async w=>{if(w.stopPropagation(),!q.value){if(g.value){if(ee.value==="focus"){ee.value=null;return}ge();return}await ke("click")}},Ne=w=>{w.key==="Escape"&&ge()},$e=w=>{if(!g.value)return;const S=w.target;k.value?.contains(S)||ge()},Oe=w=>{const S=w.target;f.value?.contains(S)||k.value?.contains(S)||ge()},Me=w=>{if(w.key==="Escape"){w.preventDefault(),ge();return}if(w.key==="Enter"){w.preventDefault();const S=D.value[0];S&&ne(S)}},ne=w=>{if(!w)return;const S=v(w.id);if(te.value.has(S))return;R(w);const P={id:w.id,text:T(w)||String(w.id??""),key:j(w.id)};l.value=[...l.value,P],de(w),h.value="",e.nextTick(()=>{b.value?.focus()})},de=w=>{const S=l.value.map(P=>P.id);r("value-selected",{name:n.name,value:S,option:w})},xe=w=>{if(q.value)return;const S=l.value.filter(P=>v(P.id)!==v(w));l.value=S},{isOpenAdd:ve,addData:ze,addSchema:Te,addForm:Je,addTitle:Ae,addOption:Fe,onAddValue:ut}=Sr({props:n,fetchOptionByValue:A,optionsList:s,selectedOption:e.ref(null),modelValue:a,onCreated:async(w,S)=>{const P=w??await A(S),le=P?.id??S;te.value.has(v(le))||(P&&R(P),l.value=[...l.value,{id:le,text:P?T(P):String(le),key:j(le)}],de(P??null))}}),z=w=>{q.value||(p.value=w)},J=w=>{if(q.value||p.value===null||p.value===w)return;const S=[...l.value],[P]=S.splice(p.value,1);S.splice(w,0,P),p.value=null,l.value=S},ie=async()=>{const S=(Array.isArray(a.value)?[...a.value]:[]).filter(le=>le!=null);if(n.data&&S.length){const le=S.filter(we=>!c.value[v(we)]);le.length&&await O(le)}const P=S.map(le=>({id:le,text:c.value[v(le)]??String(le),key:j(le)}));C=!0,l.value=P};e.watch(l,w=>{if(C){C=!1;return}const S=w.map(P=>P.id);N=!0,a.value=S,r("change",S)},{deep:!0}),e.watch(a,()=>{if(N){N=!1;return}ie()},{deep:!0}),e.watch(h,w=>{!n.data||!g.value||se(w.trim())}),e.watch(q,w=>{w&&ge()}),e.watch(()=>n.options,async w=>{n.data||(H(w??[]),await ie())},{immediate:!0,deep:!0}),e.watch(()=>n.data,async w=>{w&&(await M(h.value.trim()),await ie())},{immediate:!0});const F=e.ref(!1);return e.watch(V,async()=>{if(n.data){if(!F.value){F.value=!0;return}l.value=[],await M(h.value.trim()),await ie()}}),e.onMounted(async()=>{document.addEventListener("click",Oe,!0),window.addEventListener("keydown",Ne),window.addEventListener("scroll",$e,!0),await ie()}),e.onUnmounted(()=>{document.removeEventListener("click",Oe,!0),window.removeEventListener("keydown",Ne),window.removeEventListener("scroll",$e,!0)}),(w,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(he.VsModal),{visible:e.unref(ve),"onUpdate:visible":S[1]||(S[1]=P=>e.isRef(ve)?ve.value=P:null),class:"z-[1000]",title:e.unref(Ae),buttonText:"Додати",onDone:e.unref(Fe)},{default:e.withCtx(()=>[e.createVNode(ot,{schema:e.unref(Te),modelValue:e.unref(ze),"onUpdate:modelValue":S[0]||(S[0]=P=>e.isRef(ze)?ze.value=P:null),ref_key:"addForm",ref:Je},null,8,["schema","modelValue"])]),_:1},8,["visible","title","onDone"]),e.createElementVNode("div",{class:"flex flex-col gap-2 w-full",ref_key:"rootRef",ref:f},[e.createElementVNode("div",dh,[e.createElementVNode("div",{class:"relative flex-1",onClick:S[4]||(S[4]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",{ref_key:"triggerRef",ref:m,class:e.normalizeClass(["flex min-h-[38px] items-center justify-between rounded border transition-colors bg-white px-3","border-gray-300 hover:border-[#b3d4ff]",g.value?"border-[#2684ff] ring-1 ring-[#2684ff] shadow-[0_0_0_1px_rgba(38,132,255,0.5)]":"",q.value?"bg-gray-100 text-gray-400 cursor-not-allowed hover:border-gray-300":""]),role:"combobox","aria-expanded":g.value,"aria-haspopup":"listbox","data-focus":g.value?"true":"false",onClick:Se},[e.withDirectives(e.createElementVNode("input",{ref_key:"inputRef",ref:b,"onUpdate:modelValue":S[2]||(S[2]=P=>h.value=P),placeholder:G.value,disabled:q.value,readonly:!I.value,onFocus:S[3]||(S[3]=()=>ke("focus")),onKeydown:Me,class:"flex-1 bg-transparent border-0 outline-none px-0 py-1 text-sm text-stone-900 placeholder:text-stone-400"},null,40,ph),[[e.vModelText,h.value]]),e.createElementVNode("span",{class:e.normalizeClass(["text-stone-400 transition-transform duration-150",g.value?"rotate-180":""]),"aria-hidden":"true"},[e.createVNode(e.unref(X.ChevronDown),{class:"h-4 w-4"})],2)],10,uh),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{name:"fade"},{default:e.withCtx(()=>[g.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(_.value)},[e.createElementVNode("div",mh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(D.value,P=>(e.openBlock(),e.createElementBlock("button",{key:v(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(le=>ne(P),["stop"]),disabled:q.value},e.toDisplayString(T(P)),9,fh))),128)),D.value.length===0?(e.openBlock(),e.createElementBlock("p",hh," Немає варіантів ")):e.createCommentVNode("",!0)])],4)):e.createCommentVNode("",!0)]),_:1})]))]),n.add?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:S[5]||(S[5]=(...P)=>e.unref(ut)&&e.unref(ut)(...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:q.value,type:"button"},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),S[8]||(S[8]=e.createElementVNode("span",null,"Додати",-1))],8,gh)):e.createCommentVNode("",!0)]),e.createElementVNode("div",yh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(P,le)=>(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":p.value===le}]),draggable:"true",onDragstart:we=>z(le),onDragover:S[6]||(S[6]=e.withModifiers(()=>{},["prevent"])),onDrop:we=>J(le),onDragend:S[7]||(S[7]=we=>p.value=null)},[e.createElementVNode("button",{type:"button",class:"flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-stone-500 hover:text-stone-900",disabled:q.value,"aria-label":"Перетягнути"},[e.createVNode(e.unref(X.GripVertical),{class:"h-4 w-4"})],8,kh),e.createElementVNode("div",{class:"flex-1 text-sm text-stone-900",title:P.text},e.toDisplayString(P.text),9,wh),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:q.value,onClick:e.withModifiers(we=>xe(P.id),["stop"]),"aria-label":`Видалити ${P.text}`},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})],8,xh)],42,bh))),128)),l.value.length===0?(e.openBlock(),e.createElementBlock("p",vh,"Немає вибраних значень")):e.createCommentVNode("",!0)])],512)],64))}}),[["__scopeId","data-v-da4b4da7"]]),_h={class:"flex items-center gap-2 w-full"},Ch={class:"relative flex-1"},Eh=["placeholder","disabled","onKeydown"],Bh=["disabled"],Vh={key:0,class:"fixed inset-0 z-[1000] flex items-center justify-center bg-black/50"},Sh={class:"bg-white text-gray-900 rounded-lg shadow-lg w-[480px] max-h-[80vh] overflow-y-auto"},$h={class:"p-3 border-b font-semibold text-gray-900 flex justify-between items-center"},Ah=["onClick"],Nh={key:0,class:"p-4 text-sm text-gray-500"},Zr=e.defineComponent({__name:"vs-input-address",props:e.mergeModels({api:{default:""},geom:{default:""},includes:{default:()=>[]},bbox:{},style:{default:()=>({})},customClass:{default:""},disabled:{type:Boolean,default:!1},modelValue:{},error:{default:""},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:e.mergeModels(["update:modelValue","update:geom"],["update:modelValue"]),setup(o,{emit:t}){const n=/{{\s*([^}]+?)\s*}}/g,r=o,a=t,{inputClass:l}=Qe(r.style),s=e.useModel(o,"modelValue"),c=e.computed({get:()=>s.value,set:I=>{s.value=I}}),i=e.ref(!1),d=e.ref([]),h=e.ref(!1),g=e.ref(null);e.watch(h,I=>{typeof document>"u"||(I?(g.value=document.body.style.overflow,document.body.style.overflow="hidden"):g.value!=null?(document.body.style.overflow=g.value,g.value=null):document.body.style.removeProperty("overflow"))}),e.onBeforeUnmount(()=>{typeof document>"u"||(g.value!=null?document.body.style.overflow=g.value:document.body.style.removeProperty("overflow"))});const p=e.computed(()=>r.placeholder??""),f=e.computed(()=>!!r.disabled),m=I=>{if(!I)return null;if(Array.isArray(I))return I;if(typeof I=="string"){const E=I.split(",").map(V=>V.trim()).filter(Boolean);return E.length!==4?null:E.map(Number)}return null},k=e.computed(()=>{const I=m(r.bbox);if(!I||I.length!==4)return null;const E=I.map(Number);return E.some(V=>Number.isNaN(V))?null:E}),b=e.computed(()=>{const I=k.value;if(!I)return"";const[E,V,v,T]=I;return`${E},${Math.max(V,T)},${v},${Math.min(V,T)}`});e.computed(()=>b.value?"1":"0");const _=e.inject("values");function C(){!f.value&&c.value.trim()&&N()}async function N(){const I=(c.value||"").trim();if(!I)return;let E=I;if(r.includes?.length&&_?.value){const v=r.includes.map(T=>_.value?.[T]).filter(Boolean);v.length&&(E=`${v.join(", ")}, ${I}`)}const V=G(E);if(V){i.value=!0;try{const T=await(await fetch(V)).json();d.value=Array.isArray(T)?T:[],h.value=!0}catch(v){console.error("Address search error:",v)}finally{i.value=!1}}}function $(){h.value=!h.value}function q(I){if(!I)return;h.value=!1;const E=parseFloat(I.lat),v={type:"Point",coordinates:[parseFloat(I.lon),E]};r.geom&&_?.value&&(_.value[r.geom]=v),a("update:geom",v)}function G(I){if(!r.api)return"";const E={value:encodeURIComponent(I),bbox:k.value?k.value.join(","):""};return r.api.replace(n,(V,v)=>E[v.trim()]??"")}return(I,E)=>(e.openBlock(),e.createElementBlock("div",_h,[e.createElementVNode("div",Ch,[e.withDirectives(e.createElementVNode("input",{type:"text","onUpdate:modelValue":E[0]||(E[0]=V=>c.value=V),placeholder:p.value,disabled:f.value,class:e.normalizeClass(["py-1.5 px-3 block w-full bg-white border rounded-md placeholder:text-gray-400 focus:ring-2 focus:ring-blue-500",[e.unref(l),{"!border-red-600":r.error}]]),style:{border:"1px solid #CFD9E0"},onKeydown:e.withKeys(e.withModifiers(C,["prevent"]),["enter"])},null,42,Eh),[[e.vModelText,c.value]]),d.value.length?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-2 top-1/2 -translate-y-1/2 text-gray-500 hover:text-blue-600",onClick:$,title:"Show search results"},[e.createVNode(e.unref(X.Info),{class:"h-4 w-4"})])):e.createCommentVNode("",!0)]),e.createElementVNode("button",{type:"button",onClick:N,class:"flex items-center justify-center px-2 py-2 border rounded-md bg-white hover:bg-gray-50 text-gray-600 hover:text-blue-600 disabled:opacity-50 h-[38px]",disabled:i.value||!c.value?.trim()},[i.value?(e.openBlock(),e.createBlock(e.unref(X.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(X.Search),{key:0,class:"h-4 w-4"}))],8,Bh),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[h.value?(e.openBlock(),e.createElementBlock("div",Vh,[e.createElementVNode("div",Sh,[e.createElementVNode("div",$h,[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=>h.value=!1),title:"Close"},[e.createVNode(e.unref(X.X),{class:"h-4 w-4"})])]),e.createElementVNode("ul",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(V,v)=>(e.openBlock(),e.createElementBlock("li",{key:v,onClick:T=>q(V),class:"px-3 py-2 cursor-pointer hover:bg-gray-100 border-b text-sm"},e.toDisplayString(V.display_name),9,Ah))),128))]),d.value.length?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Nh," Не знайдено результатів "))])])):e.createCommentVNode("",!0)]))]))}}),Mh={class:"vs-datalist space-y-3"},Fh={class:"space-y-3"},Dh=["onClick","disabled"],Th={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Lh=["disabled"],Ih=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:[]),a=e.ref([]),l=e.computed(()=>t.schema?.map(b=>({...b,disabled:t.disabled||b.disabled}))??[]),s=e.computed(()=>l.value.map(b=>k(b))),c=e.computed(()=>l.value.reduce((_,C)=>{const N=Number(C?.col??12);return _+(Number.isFinite(N)&&N>0?N:12)},0)>12),i=e.computed(()=>t.disabled?!1:t.maxItems?r.value.length<t.maxItems:!0),d=e.computed(()=>t.disabled||r.value.length<=(t.minItems||0));e.watch(()=>r.value.length,()=>{h(),g()},{immediate:!0}),e.watch(()=>t.schema,g,{immediate:!0,deep:!0});function h(){const b=r.value.length;a.value.length<b?a.value=[...a.value,...Array.from({length:b-a.value.length},()=>Vo())]:a.value.length>b&&a.value.splice(b)}function g(){if(!t.minItems||r.value.length>=t.minItems)return;const b=t.minItems-r.value.length,_=Array.from({length:b},p);n.value=[...r.value,..._]}function p(){const b={};return l.value.forEach(_=>{b[_.name]=_?.default??null}),b}function f(){i.value&&(n.value=[...r.value,p()],h())}function m(b){d.value||(n.value=r.value.filter((_,C)=>C!==b),h(),g())}function k(b){return{...b}}return(b,_)=>(e.openBlock(),e.createElementBlock("div",Mh,[e.createElementVNode("div",Fh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(C,N)=>(e.openBlock(),e.createElementBlock("div",{key:a.value[N],class:e.normalizeClass(["flex items-center gap-3 rounded-lg transition-colors",{"border border-gray-300 p-2":c.value}])},[e.createVNode(ot,{schema:s.value,layout:"inline",navigation:!1,values:r.value[N],"onUpdate:values":$=>r.value[N]=$,"form-id":a.value[N]},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:$=>m(N),disabled:d.value},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,Dh)],2))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",Th,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:f,disabled:!i.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Lh)]))}}),[["__scopeId","data-v-d0065868"]]),Oh={class:"vs-dataform space-y-4"},Ph=["draggable","onDragstart","onDragover","onDragenter","onDrop"],Rh={class:"flex items-center gap-2"},zh=["onClick"],jh={class:"text-sm font-medium text-gray-700"},Uh={class:"flex items-center gap-2"},Hh=["title","onClick","disabled"],qh=["title","onClick","disabled"],Wh={key:0,class:"rounded-lg border border-dashed border-gray-200 p-4 text-sm text-gray-500"},Kh=["disabled"],Gh=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([]),a=e.ref([]),l=e.ref(0),s=e.ref(null),c=e.ref(null),i=e.ref(null),d=e.computed(()=>t.groupLabel??"Group"),h=e.computed(()=>t.emptyLabel??"Ще немає груп"),g=e.computed(()=>t.schema?.map(M=>({...M,disabled:t.disabled||M.disabled}))??[]),p=e.computed(()=>g.value.map(M=>V(M))),f=e.computed(()=>t.view==="accordion"),m=e.computed(()=>!!(t.collapsible||f.value)),k=e.computed(()=>t.draggable!==!1),b=e.computed(()=>t.disabled?!1:t.maxGroups?n.value.length<t.maxGroups:!0),_=e.computed(()=>t.disabled||n.value.length<=(t.minGroups||0));e.watch(()=>n.value.length,()=>{C(),N(),$()},{immediate:!0}),e.watch(()=>t.schema,$,{immediate:!0,deep:!0}),e.watch(()=>t.view,()=>{N()},{immediate:!0});function C(){const M=n.value.length;r.value.length<M?r.value=[...r.value,...Array.from({length:M-r.value.length},()=>Vo())]:r.value.length>M&&r.value.splice(M)}function N(){const M=n.value.length;f.value?M===0?l.value=-1:l.value>=M?l.value=M-1:l.value<0&&(l.value=0):a.value.length<M?a.value=[...a.value,...Array.from({length:M-a.value.length},()=>!1)]:a.value.length>M&&a.value.splice(M)}function $(){if(!t.minGroups||n.value.length>=t.minGroups)return;const M=t.minGroups-n.value.length,Q=Array.from({length:M},q);n.value=[...n.value,...Q],N()}function q(){const M={};return g.value.forEach(Q=>{M[Q.name]=Q?.default??null}),M}function G(){b.value&&(n.value=[...n.value,q()],C(),N())}function I(M){_.value||(n.value=n.value.filter((Q,se)=>se!==M),C(),f.value?l.value>=n.value.length&&(l.value=n.value.length-1):a.value.splice(M,1),$())}function E(M){if(t.disabled)return;const Q=JSON.parse(JSON.stringify(n.value[M]??{}));n.value=[...n.value.slice(0,M+1),Q,...n.value.slice(M+1)],C(),f.value?l.value>M&&(l.value+=1):a.value.splice(M+1,0,a.value[M]??!1)}function V(M){return{...M}}function v(M){return f.value?l.value===-1&&M===0?!1:l.value!==M:!!a.value[M]}function T(M){if(m.value){if(f.value){l.value=M;return}a.value[M]=!a.value[M]}}function j(M,Q){if(!k.value||t.disabled){Q.preventDefault();return}s.value=M,c.value=M,i.value={groups:JSON.parse(JSON.stringify(n.value)),keys:[...r.value],states:[...a.value]},Q.dataTransfer?.setData("text/plain",String(M)),Q.dataTransfer?.setDragImage?.(Q.currentTarget,0,0)}function te(M,Q){!k.value||t.disabled||s.value!==null&&Z(M,Q)}function D(M,Q){Z(M,Q)}function U(M){!k.value||t.disabled||A()}function oe(){i.value&&H(),s.value=null,c.value=null,i.value=null}function R(M,Q){const se=[...n.value],[ee]=se.splice(M,1);se.splice(Q,0,ee),n.value=se;const me=[...r.value],[ke]=me.splice(M,1);if(me.splice(Q,0,ke),r.value=me,f.value)l.value===M&&(l.value=Q);else{const ge=[...a.value],[Se]=ge.splice(M,1);ge.splice(Q,0,Se),a.value=ge}}function H(){i.value&&(n.value=i.value.groups,r.value=i.value.keys,a.value=i.value.states,i.value=null,c.value=null)}function Z(M,Q){if(s.value===null)return;const se=ae(M,Q);c.value=se,O(se)}function ae(M,Q){if(!Q?.currentTarget)return M;const se=Q.currentTarget.getBoundingClientRect(),me=Q.clientY-se.top>se.height/2?M+1:M;return Math.max(0,Math.min(me,n.value.length))}function O(M){const Q=s.value;if(Q===null)return;let se=M;if(se>n.value.length&&(se=n.value.length),se===Q||se===Q+1)return;const ee=se>Q?se-1:se;R(Q,ee),s.value=ee,c.value=se>Q?ee+1:ee}function A(){i.value=null,s.value=null,c.value=null}return(M,Q)=>(e.openBlock(),e.createElementBlock("div",Oh,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(se,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":v(ee)?"pt-6 px-6":"p-6"]]),draggable:k.value&&!t.disabled,onDragstart:me=>j(ee,me),onDragend:oe,onDragover:e.withModifiers(me=>te(ee,me),["prevent"]),onDragenter:e.withModifiers(me=>D(ee,me),["prevent"]),onDrop:e.withModifiers(me=>U(),["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"&&!v(ee)?"rounded-t-lg":"rounded-lg"]])},[e.createElementVNode("div",Rh,[k.value?(e.openBlock(),e.createBlock(e.unref(X.GripVertical),{key:0,class:"h-4 w-4 text-gray-400","aria-hidden":"true"})):e.createCommentVNode("",!0),m.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"rounded-full p-1 text-gray-500 transition hover:bg-gray-100",onClick:me=>T(ee)},[e.createVNode(e.unref(X.ChevronDown),{class:e.normalizeClass(["h-4 w-4 transition",v(ee)?"-rotate-90":"rotate-0"])},null,8,["class"])],8,zh)):e.createCommentVNode("",!0),e.createElementVNode("div",jh,e.toDisplayString(`${d.value} (${ee+1})`),1)]),e.createElementVNode("div",Uh,[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:me=>E(ee),disabled:t.disabled,draggable:"false"},[e.createVNode(e.unref(X.Copy),{class:"h-4 w-4"})],8,Hh),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:me=>I(ee),disabled:_.value,draggable:"false"},[e.createVNode(e.unref(X.Trash2),{class:"h-4 w-4"})],8,qh)])],2),e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(t.view==="accordion"?"p-6":"pt-6")},[e.createVNode(ot,{class:"vs-dataform__form",schema:p.value,layout:"inline",navigation:!1,values:n.value[ee],"onUpdate:values":me=>n.value[ee]=me,"form-id":r.value[ee],disabled:t.disabled},null,8,["schema","values","onUpdate:values","form-id","disabled"])],2),[[e.vShow,!v(ee)]])],42,Ph))),128)),n.value.length===0?(e.openBlock(),e.createElementBlock("div",Wh,e.toDisplayString(h.value),1)):e.createCommentVNode("",!0),e.createElementVNode("button",{type:"button",class:"flex items-center gap-2 text-gray-600 hover:text-gray-900 font-medium transition-colors text-sm",onClick:G,disabled:!b.value},[e.createVNode(e.unref(X.Plus),{class:"h-4 w-4"}),e.createTextVNode(" "+e.toDisplayString(t.addButtonText),1)],8,Kh)]))}}),[["__scopeId","data-v-cfbcfed8"]]),Wn="__vs_form_monaco_loader__",Wt="__vs_form_monaco_script_loader__",Kn="__vs_form_monaco_editor_loader__",No=e.defineComponent({__name:"vs-input-monaco",props:e.mergeModels({syntax:{default:"xml"},theme:{default:"vs-light"},height:{default:280},minimap:{type:Boolean,default:!1},style:{},customClass:{},disabled:{type:Boolean},modelValue:{},error:{},name:{},placeholder:{},maxlength:{},minlength:{}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(o,{expose:t}){const n=o,r=e.useModel(o,"modelValue"),a=e.ref(null),l=e.computed(()=>typeof n.height=="number"?`${n.height}px`:n.height||"280px");let s=null,c=null,i=!1;const d=()=>{if(c)return Promise.resolve(c);if(typeof window>"u")return Promise.resolve(null);const m=window;if(m.monaco?.editor?.create)return c=m.monaco,Promise.resolve(c);if(m[Wn])return m[Wn];const b=(async()=>{const _=$=>{if(Array.from(document.styleSheets||[]).some(I=>I?.href?.includes($)))return;const G=document.createElement("link");G.rel="stylesheet",G.href=$,document.head.appendChild(G)},C=$=>{if(m[Wt]?.[$])return m[Wt][$];m[Wt]||={};const q=Array.from(document.scripts).find(G=>G.src===$);return q?(m[Wt][$]=new Promise((G,I)=>{const E=q.readyState;if(q.dataset.loaded==="true"||E==="loaded"||E==="complete"){G();return}q.addEventListener("load",()=>{q.dataset.loaded="true",G()},{once:!0}),q.addEventListener("error",V=>I(V),{once:!0})}),m[Wt][$]):(m[Wt][$]=new Promise((G,I)=>{const E=document.createElement("script");E.src=$,E.async=!0,E.onload=()=>{E.dataset.loaded="true",G()},E.onerror=V=>I(V),document.body.appendChild(E)}),m[Wt][$])},N="https://cdnjs.cloudflare.com/ajax/libs/monaco-editor/0.52.0/min/vs";return _(`${N}/editor/editor.main.min.css`),await C(`${N}/loader.min.js`),m[Kn]||(m[Kn]=new Promise(($,q)=>{window.require.config({paths:{vs:N}}),window.require(["vs/editor/editor.main"],()=>{c=window.monaco,m.monaco=c,$(c)},G=>q(G))}).catch($=>{throw delete m[Kn],$})),m[Kn]})().catch(_=>{throw delete m[Wn],_});return m[Wn]=b,b},h=()=>{!a.value||!c||(s&&(s.dispose(),s=null),s=c.editor.create(a.value,{value:r.value||"",language:n.syntax,theme:n.theme,automaticLayout:!0,minimap:{enabled:!!n.minimap},readOnly:!!n.disabled}),s.onDidChangeModelContent(()=>{i||(r.value=s.getValue())}))},g=()=>{s?.focus()},p=()=>s,f=()=>c;return e.watch(()=>r.value,m=>{if(!s)return;const k=s.getValue();m!==k&&(i=!0,s.setValue(m||""),i=!1)}),e.watch(()=>n.syntax,m=>{!s||!c||c.editor.setModelLanguage(s.getModel(),m||"xml")}),e.watch(()=>n.theme,m=>{c&&c.editor.setTheme(m||"vs-light")}),e.watch(()=>n.disabled,m=>{s&&s.updateOptions({readOnly:!!m})}),e.watch(()=>n.minimap,m=>{s&&s.updateOptions({minimap:{enabled:!!m}})}),e.onMounted(async()=>{try{const m=await d();if(!m||!m.editor)return;c=m,h()}catch(m){console.error("Failed to load Monaco editor",m)}}),e.onBeforeUnmount(()=>{s&&(s.dispose(),s=null)}),t({focus:g,getEditor:p,getMonaco:f}),(m,k)=>(e.openBlock(),e.createElementBlock("div",{class:"w-full",style:e.normalizeStyle({height:l.value})},[e.createElementVNode("div",{ref_key:"editorContainer",ref:a,class:"w-full h-full overflow-hidden border border-[#CFD9E0] rounded"},null,512)],4))}}),Jr={VsInputText:Yt,VsInputRadio:fo,VsInputInlineSelect:On,"vs-input-text":Yt,"vs-input-password":xa,"vs-input-textarea":Ar,"vs-input-richtext":Nr,"vs-input-mask":En,"vs-input-number":rr,"vs-input-radio":fo,"vs-input-select":Bo,"vs-input-inline-select":On,"inline-select":On,"vs-input-switcher":co,"vs-input-static":uo,"vs-input-container":Vr,"vs-input-date":hr,"vs-input-checkbox":sr,"vs-input-file":xr,"vs-input-file2":Tn,file2:Tn,File2:Tn,"vs-input-file64":Ln,file64:Ln,File64:Ln,"vs-input-html":uo,"vs-input-email":po,"vs-input-tel":mo,"vs-input-datatable":Mr,"vs-input-map":jr,"vs-input-file-list":Er,"vs-input-tags":Ur,"vs-input-slug":Hr,"vs-input-codegen":qr,"vs-input-key-value":Wr,"vs-input-text[]":Kr,"vs-input-range":Yr,"vs-input-color":Gr,"vs-input-native-select":Bo,VsInputArraySelect:qn,"vs-input-array":Xr,"vs-input-array-select":qn,"array-select":qn,"vs-input-address":Zr,"vs-input-datalist":Ih,"vs-input-dataform":Gh,"vs-input-monaco":No},Yh=e.defineComponent({__name:"behavior",props:{api:{},set:{},button:{},error:{},value:{}},setup(o){const t=o,n=e.inject("values");function r(l,s){const c=s?.result||s?.message||s?.error||s?.detail;return l.status===400&&typeof c=="string"&&c.trim().toLowerCase()==="not found"?"Дані не знайдено.":l.status===500?"Помилка на сервері.":typeof c=="string"&&c.trim()?c:"При спробі завантажити дані виникла помилка."}async function a(){try{if(!t.api)return;const l=t.api.replace("{{value}}",t.value),s=await fetch(l);if(!s.ok){let i=null;try{i=await s.json()}catch{try{i=await s.text()}catch{i=null}}he.notify({type:"warning",title:"Validation",message:r(s,i)});return}const c=await s.json();if(!t.set||!n)return;for(const[i,d]of Object.entries(t.set))n.value[i]=c.result[d]}catch(l){console.error(t.error,l)}}return(l,s)=>(e.openBlock(),e.createElementBlock("button",{onClick:a,class:"vs-button relative inline-flex border-solid justify-center items-center gap-2 rounded-md font-semibold focus:outline-none text-sm transition-all border !border-gray-200 hover:text-white bg-white text-blue-500 hover:border-blue-500 hover:bg-blue-500 focus:ring-blue-500 py-1.5 px-5 focus:ring-1 focus:ring-offset-1 ml-0 md:ml-2 mt-2 md:mt-0 py-[8px] md:w-2/4 whitespace-nowrap w-full"},e.toDisplayString(l.button),1))}}),Xh={class:"flex flex-col gap-1 w-full"},Zh={class:"w-full"},Jh=["disabled"],Qh=["innerHTML"],eg=2e3,tg=10,Qr=e.defineComponent({__name:"vs-compact-form-layout",props:e.mergeModels({item:{default:{}},layout:{default:"default"},style:{default:{}},type:{default:""},error:{type:[String,Boolean]},columns:{default:()=>({container:12,label:3})}},{modelValue:{default:null},modelModifiers:{}}),emits:e.mergeModels(["value-selected"],["update:modelValue"]),setup(o,{emit:t}){const n=o,r=e.useModel(o,"modelValue"),a=t,l=e.computed(()=>ka[`${n.layout}`]),s=["label","placeholder","info","description","text","html"],c=e.ref(j()),i=e.computed(()=>V(n.item,c.value)),d=e.computed(()=>{const D={...i.value??{}},U=n.item?.name;return U&&g?.value?.[U]&&Object.assign(D,g.value[U]),D.__locale=c.value,D}),h=e.computed(()=>Jr?.[`vs-input-${n.item.type}`]),g=e.inject("field-props"),p=e.computed(()=>{const D=e.unref(h);if(!D)return new Set;const U=D.props??D.__vccOpts?.props;if(!U)return new Set;const oe=Array.isArray(U)?U:Object.keys(U);return new Set(oe)}),m=[...["min","max","step"],"api","set","mask","layers"],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(D){const U={};Object.entries(D).forEach(([R,H])=>{k.has(R)||R.includes(":")||H!==void 0&&(U[R]=H)});const oe=D.props;return oe&&typeof oe=="object"&&!Array.isArray(oe)&&Object.entries(oe).forEach(([R,H])=>{H!==void 0&&(U[R]=H)}),U}const _=e.computed(()=>{const D={...i.value??{}},U=n.item?.name;U&&g?.value?.[U]&&Object.assign(D,g.value[U]);const oe=p.value;let R;return oe.size?R=Object.fromEntries(Object.entries(D).filter(([H])=>oe.has(H))):R={...D},Object.assign(R,b(D)),m.forEach(H=>{const Z=D[H];Z!=null&&(R[H]=Z)}),R}),C=D=>{const U=typeof D=="object"&&D!==null?D:{value:D};a("value-selected",{...U,name:U.name??n.item?.name})},N=/{{\s*([^}]+?)\s*}}/g,$=e.inject("values"),q=e.ref(!1),G=e.computed(()=>{const D=n.item?.api,U=n.item?.type?.toLowerCase();return typeof D=="string"&&D.trim().length>0&&(U==="text"||U==="mask")});function I(D,U){if(!(D==null||!U))return U.split(".").reduce((oe,R)=>oe?.[R.trim()],D)}async function E(){const D=String(r.value??"").trim();if(!D)return;const U=(n.item?.api??"").trim();if(!U)return;const oe=U.replace(N,(R,H)=>H.trim()==="value"?encodeURIComponent(D):"");q.value=!0;try{let R=await fetch(oe),H=0;for(;R.status===202&&H<tg;)H+=1,await new Promise(M=>{setTimeout(M,eg)}),R=await fetch(oe);if(R.status===202){he.notify({type:"warning",title:"Validation",message:"Сервер ще обробляє запит. Спробуйте пізніше."});return}if(!R.ok){he.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."});return}const Z=await R.json(),ae=Z?.result!==void 0?Z.result:Z,O=n.item?.set;if(!O||!$?.value)return;const A=n.item?.name;Object.entries(O).forEach(([M,Q])=>{if(!M)return;let se=Q;A&&se.startsWith(`${A}.`)&&(se=se.slice(A.length+1));const ee=I(ae,se);$.value[M]=ee??null})}catch(R){console.error("API lookup error:",R),he.notify({type:"warning",title:"Validation",message:"При спробі завантажити дані виникла помилка."})}finally{q.value=!1}}e.onMounted(()=>{c.value=j(),window.addEventListener("storage",te)}),e.onUnmounted(()=>{window.removeEventListener("storage",te)});function V(D,U){if(!D)return{};const oe={...D};return s.forEach(R=>{const H=T(D,R,U);H!=null&&(oe[R]=H)}),Array.isArray(D.options)&&(oe.options=D.options.map(R=>v(R,U))),oe}function v(D,U){if(!D)return D;const oe={...D},R=T(D,"label",U),H=T(D,"text",U);return R!=null&&(oe.label=R),H!=null?oe.text=H:R!=null&&(oe.text=R),oe}function T(D,U,oe){const R=`${U}:${oe}`;if(D?.[R]!=null)return D[R];if(U==="label"&&D?.[oe]!=null)return D[oe];if(D?.[U]!=null)return D[U];if(U==="label"){if(D?.ua!=null)return D.ua;if(D?.en!=null)return D.en}if(U==="text"||U==="html"){if(D?.ua!=null)return D.ua;if(D?.en!=null)return D.en}return null}function j(){return typeof window>"u"?"uk":localStorage.getItem("locale")||"uk"}function te(){c.value=j()}return(D,U)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{ua:d.value.ua,error:n.error||"",item:d.value,columns:n.columns,label:d.value.label},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(["flex w-full",`${n.item.type}-component`])},[e.createElementVNode("div",Xh,[e.createElementVNode("div",{class:e.normalizeClass(["flex items-center gap-2 w-full",{"flex-1":G.value}])},[e.createElementVNode("div",Zh,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(h.value),e.mergeProps(_.value,{modelValue:r.value,"onUpdate:modelValue":U[0]||(U[0]=oe=>r.value=oe),onValueSelected:C}),null,16,["modelValue"]))]),G.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:q.value||!r.value?.toString().trim(),onClick:E},[q.value?(e.openBlock(),e.createBlock(e.unref(X.LoaderCircle),{key:1,class:"h-5 w-5 animate-spin text-gray-400"})):(e.openBlock(),e.createBlock(e.unref(X.Search),{key:0,class:"h-4 w-4"}))],8,Jh)):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,Qh)):e.createCommentVNode("",!0)]),d.value.behavior?.api&&d.value.behavior?.button?(e.openBlock(),e.createBlock(Yh,e.mergeProps({key:0},d.value.behavior,{value:r.value}),null,16,["value"])):e.createCommentVNode("",!0)],2)]),_:1},8,["ua","error","item","columns","label"]))}}),ng={class:"text-sm text-gray-800 mb-[4px] font-medium dark:text-neutral-300"},og={class:"vs-compact-form-navigation__rail mt-[6px]"},rg=["onClick"],lg=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([]),a=e.ref(""),l=e.ref(""),s=e.computed(()=>!!n.enabled),c=e.computed(()=>["vs-compact-form-navigation flex flex-col pl-[6px] pt-[8px] pr-[8px]","sticky top-0 self-start shrink-0","max-h-full min-h-0 overflow-y-auto"]),i=e.computed(()=>{const T=n.width;if(T==null)return{};const j=typeof T=="number"?`${T}px`:`${T}`;return{width:j,minWidth:j}});let d=null,h=0,g=0,p=null,f=null,m=null;const k=()=>V(),b=()=>C();e.watch(()=>n.target,async T=>{if(G(),!T){p=null,r.value=[],a.value="";return}p=T,s.value&&(await e.nextTick(),q(T),C())},{immediate:!0}),e.watch(()=>n.scrollContainer,T=>{if(!s.value){f=T??null;return}_(T??null),e.nextTick(()=>C())},{immediate:!0}),e.onMounted(()=>{n.scrollContainer||_(null),C()}),e.onBeforeUnmount(()=>{G(),_(null,!0),p=null,typeof window<"u"&&(h&&window.cancelAnimationFrame(h),g&&window.cancelAnimationFrame(g))});function _(T,j=!1){if(m&&(m(),m=null),j){f=null;return}if(f=T??null,typeof window>"u")return;const te=T??window,D=window;te.addEventListener("scroll",k,{passive:!0}),D.addEventListener("resize",b),m=()=>{te.removeEventListener("scroll",k),D.removeEventListener("resize",b)}}function C(){if(!s.value||!p)return;h&&typeof window<"u"&&window.cancelAnimationFrame(h);const T=()=>{N(),h=0};typeof window>"u"?T():h=window.requestAnimationFrame(T)}function N(){if(!s.value||!p)return;const T=Array.from(p.querySelectorAll("h1, h2")),j=new Set,te=[];T.forEach((D,U)=>{const oe=D.textContent?.trim()??"";if(!oe)return;let R=(D.getAttribute("id")??"").trim();R||(R=$(oe)||`heading-${U+1}`);let H=R,Z=1;for(;j.has(H);)H=`${R}-${Z+=1}`;D.id!==H&&Object.assign(D,{id:H}),j.add(H),te.push({id:H,text:oe,level:D.tagName.toLowerCase()==="h1"?1:2})}),r.value=te,te.length||(a.value=""),E()}function $(T){return T.toLowerCase().replace(/[^a-z0-9\s-]/g,"").trim().replace(/\s+/g,"-")}function q(T){!T||!s.value||typeof MutationObserver>"u"||(G(),d=new MutationObserver(()=>C()),d.observe(T,{childList:!0,subtree:!0}))}function G(){d&&(d.disconnect(),d=null)}function I(T){const j=f;if(!j)return typeof window>"u"?T.offsetTop:T.getBoundingClientRect().top+window.scrollY;const te=T.getBoundingClientRect(),D=j.getBoundingClientRect();return te.top-D.top+j.scrollTop}function E(){if(!s.value||!r.value.length)return;const T=f,j=(T?T.scrollTop:null)||(typeof window<"u"?window.scrollY:0),te=(T?T.clientHeight:null)||(typeof window<"u"?window.innerHeight:0),D=j+te;let U=null;for(let R=0;R<r.value.length;R+=1){const H=r.value[R],Z=document.getElementById(H.id);if(Z){const ae=I(Z);ae+Z.offsetHeight>j&&ae<D&&(U=H.id)}}!U&&l.value&&(U=l.value),U&&(l.value=U);const oe=T?T.scrollHeight-T.clientHeight:document.documentElement.scrollHeight-window.innerHeight;j+5>=oe&&(U=r.value[r.value.length-1].id),U&&(a.value=U)}function V(){s.value&&(g&&window.cancelAnimationFrame(g),g=window.requestAnimationFrame(()=>{E(),g=0}))}function v(T){if(!s.value)return;const j=document.getElementById(T);if(!j)return;const te=f,D=Math.max(0,I(j));te?te.scrollTo({top:D,behavior:"smooth"}):typeof window<"u"&&window.scrollTo({top:D,behavior:"smooth"})}return t({refresh:C}),(T,j)=>s.value&&r.value.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(c.value),style:e.normalizeStyle(i.value)},[e.createElementVNode("h2",ng,e.toDisplayString(T.title),1),e.createElementVNode("div",og,[(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===a.value?"vs-compact-form-navigation__item--active":""])},[e.createElementVNode("button",{type:"button",onClick:D=>v(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===a.value?"text-gray-800":"text-gray-500"])},[e.createElementVNode("span",null,e.toDisplayString(te.text),1)],10,rg)],2))),128))])],6)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-1584a562"]]),dt={required:"Це поле є обов’язковим",email:"Неправильний email",tel:"Неправильний телефон",minlength:o=>`Мінімальна довжина — ${o} символів`,maxlength:o=>`Максимальна довжина — ${o} символів`,min:o=>`Значення має бути не менше ${o}`,max:o=>`Значення має бути не більше ${o}`},ag=new Set(["select","inline-select","array-select"]),sg=(o,t)=>typeof o=="string"?o.trim()?!1:dt.required:Array.isArray(o)?o.map(r=>typeof r=="string"?r.trim():r).filter(r=>r!=null&&r!=="").length?!1:dt.required:typeof o=="number"?Number?.isNaN(o)?dt?.required:!1:typeof o=="boolean"?t&&ag.has(t)||o?!1:dt.required:o?!1:dt.required,ig=o=>{const t=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;return o?t.test(o)?!1:dt.email:!1},cg=(o,t)=>{if(!o)return!1;const n=String(o).trim();if(!/^\+[1-9]\d{1,14}$/.test(n))return dt.tel;const l=(typeof t?.digits=="number"&&Number.isFinite(t.digits)&&t.digits>0?t.digits:Tt(Et))||Tt(Et);return n.length-1!==l?dt.tel:!1},el=o=>o==null?0:typeof o=="string"?o.trim().length:Array.isArray(o)?o.length:typeof o=="number"?o.toString().length:String(o).length,dg=(o,t)=>{if(o==null)return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&el(o)<n?t?.message||dt.minlength(n):!1},ug=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value??t?.length);return Number.isFinite(n)&&el(o)>n?t?.message||dt.maxlength(n):!1},Gn=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)},pg=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Gn(o);return Number.isFinite(r)&&r<n?t?.message||dt.min(n):!1},mg=(o,t)=>{if(o==null||o==="")return!1;const n=Number(t?.value);if(!Number.isFinite(n))return!1;const r=Gn(o);return Number.isFinite(r)&&r>n?t?.message||dt.max(n):!1},fg=(o,t,n)=>{if(o==null||o==="")return!1;const r=t?.field;if(!r||!n)return!1;const a=n[r];if(a==null||a==="")return!1;const l=Gn(o),s=Gn(a);return!Number.isFinite(l)||!Number.isFinite(s)?!1:l>s?t?.message||`Значення має бути не більше ${s}`:!1},hg=(o,t)=>{const n=t.pattern??t.regexp,r=typeof n=="string"?new RegExp(n):n;if(Array.isArray(o)){const a=o.filter(Boolean);return a.length===0||a.every(l=>r.test(l))?!1:t.message}return!r.test(o)&&o?t.message:!1},gg=(o,t)=>!1,yg=(o,t,n,r)=>{switch(typeof t=="string"?t:t.type){case"required":return sg(o,r);case"email":return ig(o);case"tel":return cg(o,typeof t=="object"?t:void 0);case"regexp":return hg(o,t);case"minlength":return dg(o,t);case"maxlength":return ug(o,t);case"min":return pg(o,t);case"max":return mg(o,t);case"maxField":return fg(o,t,n);case"custom":return gg();default:return!1}},bg={autocomplete:"select",combobox:"select",datepicker:"date",markedtext:"mask",html:"static",geom:"map",filelist:"file-list",file:"file",file64:"file64",dropzone:"file",inlineselect:"inline-select"};function tl(o){const t=o?.toLowerCase();return bg[t]||t}function Mo(o,t=!1){if(Array.isArray(o)){const r=[];return o.forEach(a=>{const l={...a};if(l.name=(a.name||a.id||a.key||"").toString(),l.type=tl(a.type),l.label=a.label||a.ua,l.rules=a.rules||a.validators,l.type==="email"&&!l.rules&&(l.rules=["email"]),l.type==="tel"&&!l.rules){const s=l.mask||Et,c=Tt(s)||Tt(Et);l.rules=[{type:"tel",digits:c}]}a.data&&(l.api=`/api/suggest/${a.data}`),l.disabled=l.disabled??t,Array.isArray(l.schema)&&(l.schema=Mo(l.schema,l.disabled)),r.push(l)}),r}const n=[];return Object.entries(o).forEach(r=>{const a={name:r[0],...r[1],type:tl(r[1].type),label:r[1].label||r[1].ua,rules:r[1].rules||r[1].validators,disabled:r[1].disabled??t};if(a.type==="email"&&!a.rules&&(a.rules=["email"]),a.type==="tel"&&!a.rules){const l=a.mask||Et,s=Tt(l)||Tt(Et);a.rules=[{type:"tel",digits:s}]}r[1].type?.includes("list")&&(a.multiple=!0),!a.api&&r[1].data&&(a.api=`/api/suggest/${r[1].data}`),Array.isArray(a.schema)&&(a.schema=Mo(a.schema,a.disabled)),n.push(a)}),n}function kg(o,t,n=!1){const r=e.computed(()=>Mo((Array.isArray(t),t),typeof n=="boolean"?n:n.value)),a=e.ref({});function l(p){return Br(o?.value,p?.conditions)}const s=new Set(["maxField"]);function c(p){return typeof p.maxField=="string"&&p.maxField?!0:(p.rules||[]).some(f=>{const m=typeof f=="string"?f:f.type;return m?s.has(m):!1})}function i(p){const f=[],m=Number(p?.minlength),k=Number(p?.maxlength),b=Number(p?.min),_=Number(p?.max);!Number.isNaN(m)&&Number.isFinite(m)&&f.push({type:"minlength",value:m}),!Number.isNaN(k)&&Number.isFinite(k)&&f.push({type:"maxlength",value:k}),!Number.isNaN(b)&&Number.isFinite(b)&&f.push({type:"min",value:b}),!Number.isNaN(_)&&Number.isFinite(_)&&f.push({type:"max",value:_}),typeof p?.maxField=="string"&&p.maxField&&f.push({type:"maxField",field:p.maxField,message:p.maxFieldMessage});const C=[...f,...p.rules||[]];if(!C.length)return;if(!l(p)){delete a.value[p.name];return}let N=!1,$=null;C.forEach(q=>{const G=yg(o.value[p.name],q,o.value,p.type);G&&(N=!0,!$&&typeof G=="string"&&($=G))}),N&&$?a.value[p.name]=$:delete a.value[p.name]}const d=(p=r.value,f=!0)=>(p.forEach(m=>{i(m),m.schema&&d(m.schema,!1)}),f&&Object.values(a.value).some(Boolean)?a.value:null);e.watch(o,()=>{const p=[],f=m=>{m.forEach(k=>{c(k)&&p.push(k),k.schema&&f(k.schema)})};f(r.value),p.forEach(i)},{deep:!0});const h=e.computed(()=>r.value?.filter(p=>p.hidden!==!0&&l(p)));return{errors:a,validate:d,reset:()=>{o.value={},a.value={}},visibleSchema:h}}const wg={class:"flex w-full h-full min-h-0 gap-6"},xg={key:0,"data-orientation":"horizontal",role:"none",class:"mt-1 shrink-0 h-[1px] w-full bg-slate-100 dark:bg-slate-600"},ot=e.defineComponent({__name:"vs-compact-form",props:e.mergeModels({schema:{default:()=>[]},style:{default:()=>({})},modelValue:{},layout:{default:()=>"default"},formId:{default:()=>""},allowIdField:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},navigation:{type:Boolean,default:!1},navWidth:{default:400},columns:{}},{form:{default:()=>({})},formModifiers:{},modelValue:{default:()=>({})},modelModifiers:{},values:{default:void 0},valuesModifiers:{}}),emits:e.mergeModels(["handle-submit","update:modelValue","value-selected"],["update:form","update:modelValue","update:values"]),setup(o,{expose:t,emit:n}){const r=n,a=o,l=e.computed(()=>!!a.formId||a.allowIdField),s=e.useModel(o,"form"),c=e.useModel(o,"modelValue"),i=e.useModel(o,"values"),d=e.computed({get:()=>i.value??c.value,set:R=>{c.value=R,i.value=R}}),{errors:h,validate:g,reset:p,visibleSchema:f}=kg(d,a.schema,e.toRef(a,"disabled")),m=e.ref(null),k=e.ref(null),b=e.ref({}),_=e.computed(()=>a.navigation),C=e.computed(()=>a.navWidth),N=e.computed(()=>a.style?.columns),$=Object.freeze({container:12,label:3}),q=e.computed(()=>a.columns??N.value??$),G=e.computed(()=>a.columns!=null||N.value!=null),I=e.computed(()=>G.value?"horizontal":a.layout),E=R=>R?.columns?"horizontal":I.value,V=R=>R?.columns??q.value,v=e.computed(()=>{const R={},H=Z=>{if(!Z)return;(Array.isArray(Z)?Z.map((O,A)=>({key:String(A),entry:O})):typeof Z=="object"?Object.entries(Z).map(([O,A])=>({key:O,entry:A})):[]).forEach(({key:O,entry:A})=>{if(!A||typeof A!="object")return;const M=A.name?String(A.name):O;M&&(R[M]={...A,name:M}),Array.isArray(A.schema)&&H(A.schema)})};return H(a.schema),R}),T=()=>{!l.value&&d.value&&delete d.value.id,r("update:modelValue",d.value),g(),r("handle-submit",d.value)},j=R=>{r("value-selected",R)};t({validate:g,reset:p,errors:h}),e.onMounted(()=>{s.value={value:d.value,errors:h.value,reset:p,validate:g,formId:a.formId}});function te(R,H){if(R===H)return!0;if(typeof R!="object"||typeof H!="object"||!R||!H)return!1;const Z=Object.keys(R),ae=Object.keys(H);return Z.length!==ae.length?!1:Z.every(O=>R[O]===H[O])}function D(R){return Array.isArray(R)?[...R]:R&&typeof R=="object"?{...R}:R}function U(R){Array.isArray(R)&&R.forEach(H=>{if(!H)return;const Z=H.name,ae=H.default!==void 0;Z&&ae&&d.value[Z]===void 0&&(d.value[Z]=D(H.default)),Array.isArray(H.schema)&&U(H.schema)})}return e.watch(f,R=>{U(R)},{immediate:!0,deep:!0}),e.provide("form",s),e.provide("values",d),e.inject("form-root-values",null)||e.provide("form-root-values",d),e.provide("field-props",b),e.provide("schema-by-name",v),(R,H)=>(e.openBlock(),e.createElementBlock("div",wg,[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:m,onSubmit:e.withModifiers(T,["prevent"]),class:e.normalizeClass(["grid grid-cols-12 p-1",I.value==="default"?"gap-6":"gap-4"])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f),(Z,ae)=>(e.openBlock(),e.createElementBlock("div",{key:Z.name,class:e.normalizeClass(E(Z)==="horizontal"?"col-span-12":`col-span-12 md:col-span-${Z.col||12}`)},[e.createVNode(Qr,{style:e.normalizeStyle(R.style),item:Z,layout:E(Z),columns:V(Z),"model-value":d.value[Z.name],"onUpdate:modelValue":O=>{if(Z.name==="id"&&!l.value)return;const A=d.value[Z.name];te(A,O)||(d.value[Z.name]=O)},error:e.unref(h)[Z.name],onValueSelected:j},null,8,["style","item","layout","columns","model-value","onUpdate:modelValue","error"]),E(Z)==="settings"&&ae+1!==e.unref(f).length?(e.openBlock(),e.createElementBlock("div",xg)):e.createCommentVNode("",!0)],2))),128))],34)],512),e.createVNode(lg,{target:m.value,"scroll-container":k.value,enabled:_.value,width:C.value},null,8,["target","scroll-container","enabled","width"])]))}}),vg={class:"relative"},_g={class:"w-full h-full fixed top-0 start-0 bg-black bg-opacity-50"},Cg={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"},Eg={class:"py-2.5 px-4 flex justify-between items-center border-0 border-b border-solid border-gray-200 dark:border-b-[#454545]"},Bg={class:"font-medium text-gray-800 dark:text-[#ffffff]"},Vg={class:"p-4 mim-h-0 h-full overflow-auto"},nl=e.defineComponent({__name:"modal-edit",props:{schema:{},defaultValue:{},mode:{},token:{},form:{},api:{},method:{}},emits:["close","save","edit"],setup(o,{emit:t}){const n=o,r=t,a=e.ref(n.schema),l=e.ref(n.defaultValue?JSON.parse(JSON.stringify(n.defaultValue)):{}),s=e.ref({}),c=e.ref(n.token||""),i=e.ref(n.token||""),d=e.ref(n.mode),h=()=>{const b=n.method?.trim().toUpperCase();return b==="GET"||b==="POST"||b==="PUT"?b:d.value==="add"?"POST":"PUT"},g=()=>{he.notify({type:"success",title:"Успішно",message:`Дані успішно ${d.value==="add"?"збережено":"оновлено"}`})},p=b=>{const _={};b.id!==void 0&&b.id!==null&&(_.id=b.id,i.value=b.id.toString()),b.obj&&typeof b.obj=="object"&&Object.assign(_,b.obj),Object.keys(_).length&&(l.value={...l.value,..._})},f=async b=>{if(console.log(b),b.ok){await b.json().catch(()=>({})),g(),r("save",l.value);return}const _=await b.json().catch(()=>({})),C=_.message||_.error;if(b.status===400){he.notify({type:"warning",title:"Помилка валідації",message:C||"Некоректні дані (400)"});return}if(b.status===403){he.notify({type:"warning",title:"Доступ заборонено",message:C||"Доступ заборонено (403)"});return}if(b.status===500){he.notify({type:"error",title:"Серверна помилка",message:C||"Виникла помилка на сервері (500)"});return}he.notify({type:"error",title:"Помилка",message:C||`Статус: ${b.status}`})};async function m(){const b=s.value.validate();if(b){he.notify({type:"warning",title:"Помилка валідації",message:Object.entries(b).map(([C,N])=>`${C}: ${N}`).join(`
|