@volverjs/ui-vue
Version:
@volverjs/ui-vue is a lightweight Vue 3 component library to accompany @volverjs/style.
2 lines (1 loc) • 45.2 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@iconify/vue"),require("@floating-ui/vue"),require("@vueuse/core"),require("mitt"),require("dot-prop")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue","@floating-ui/vue","@vueuse/core","mitt","dot-prop"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvCombobox=t(e.vue,e.vue$1,e.vue$2,e.core,e.mitt,e.dotProp)}(this,function(e,t,o,l,a,n){"use strict";const r={prefix:"normal"};var i=(e=>(e.local="local",e.session="session",e))(i||{}),u=(e=>(e.absolute="absolute",e.fixed="fixed",e))(u||{}),s=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(s||{}),d=(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(d||{}),c=(e=>(e.before="before",e.after="after",e))(c||{}),f=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(f||{}),p=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(p||{}),v=(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(v||{}),m=(e=>(e.listbox="listbox",e.menu="menu",e))(m||{}),b=(e=>(e.option="option",e.presentation="presentation",e))(b||{});const g=Symbol.for("volver"),y=Symbol.for("buttonGroup"),h=Symbol.for("dropdownTrigger"),k=Symbol.for("dropdownItem"),S=Symbol.for("dropdownAction"),B={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},w={valid:{type:Boolean,default:!1},validLabel:{type:[String,Array],default:void 0}},x={invalid:{type:Boolean,default:!1},invalidLabel:{type:[String,Array],default:void 0}},V={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},L={disabled:{type:Boolean,default:!1}},C={required:{type:Boolean,default:!1}},P={selected:{type:Boolean,default:!1}},O={active:{type:Boolean,default:!1}},$={current:{type:Boolean,default:!1}},N={showClearAction:{type:Boolean,default:!1},iconClear:{type:[String,Object],default:"close"},labelClear:{type:String,default:"Clear"}},_={pressed:{type:Boolean,default:!1}},E={label:{type:[String,Number],default:void 0}},A={readonly:{type:Boolean,default:!1}},F={modifiers:{type:[String,Array],default:void 0}},D={hintLabel:{type:String,default:""}},H={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}},j={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:c.before,validation:e=>Object.values(c).includes(e)}},I={tabindex:{type:[String,Number],default:0}},R={floating:{type:Boolean,default:!1}},z={unselectable:{type:Boolean,default:!0}},T={id:[String,Number]},M={placement:{type:String,default:s.bottom,validator:e=>Object.values(s).includes(e)||Object.values(d).includes(e)},strategy:{type:String,default:void 0,validator:e=>Object.values(u).includes(e)},transitionName:{type:String,default:void 0},offset:{type:[Number,String,Object],default:0},shift:{type:[Boolean,Object],default:!1},flip:{type:[Boolean,Object],default:!0},size:{type:[Boolean,Object],default:()=>({padding:10})},autoPlacement:{type:[Boolean,Object],default:!1},arrow:{type:Boolean,default:!1},keepOpen:{type:Boolean,default:!1},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean,default:!1}},q={...T,name:{type:String,required:!0}},K={autofocus:{type:Boolean,default:!1}},W={autocomplete:{type:String,default:"off"}},G={...L,...E,..._,...O,...$,...B,type:{type:String,default:f.button,validator:e=>Object.values(f).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:p.button}};i.local;const J={...q,...I,...w,...x,...D,...V,...L,...A,...F,...H,...j,...R,...M,...E,...C,...N,transitionName:{type:String,default:"vv-dropdown--mobile-fade-block"},modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},noResultsLabel:{type:String,default:"No results"},noOptionsLabel:{type:String,default:"No options available"},selectedOptionNotFoundLabel:{type:String,default:"Selected option not found"},selectedHintLabel:{type:String,default:"Selected"},deselectActionLabel:{type:String,default:"Deselect"},selectHintLabel:{type:String,default:"Press enter to select"},deselectHintLabel:{type:String,default:"Press enter to remove"},addOptionHintLabel:{type:String,default:"Press enter to add"},closeLabel:{type:String,default:"Close"},placeholder:String,addable:Boolean,searchable:Boolean,keepSearch:Boolean,searchFunction:{type:Function,default:void 0},searchPlaceholder:{type:String,default:"Search..."},debounceSearch:{type:[Number,String],default:0},multiple:Boolean,minValues:{type:[Number,String],default:0},maxValues:[Number,String],unselectable:{type:Boolean,default:!0},separator:{type:String,default:", "},native:Boolean,badges:Boolean,badgeModifiers:{type:[String,Array],default:"action sm"},triggerWidth:{...M.triggerWidth,default:!0},dropdownModifiers:{type:[String,Array],default:"mobile"},autoOpen:{type:Boolean,default:!1},autoselectFirst:{type:Boolean,default:!1},keepOpen:{type:Boolean,default:!1},focusOnHover:{type:Boolean,default:!0}};function U(){return{...J,options:{...J.options,type:Array},searchFunction:{...J.searchFunction,type:Function}}}function Q(e,t,o){return X(e,t)}function X(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){const o=Array.isArray(e),l=Array.isArray(t);let a,n,r;if(o&&l){if(n=e.length,n!==t.length)return!1;for(a=n;0!==a--;)if(!X(e[a],t[a]))return!1;return!0}if(o!==l)return!1;const i=e instanceof Date,u=t instanceof Date;if(i!==u)return!1;if(i&&u)return e.getTime()===t.getTime();const s=e instanceof RegExp,d=t instanceof RegExp;if(s!==d)return!1;if(s&&d)return e.toString()===t.toString();const c=Object.keys(e);if(n=c.length,n!==Object.keys(t).length)return!1;for(a=n;0!==a--;)if(!Object.prototype.hasOwnProperty.call(t,c[a]))return!1;for(a=n;0!==a--;)if(r=c[a],!X(e[r],t[r]))return!1;return!0}return Number.isNaN(e)&&Number.isNaN(t)}function Y(e,t){if(null!=e&&t&&t.length)for(const o of t)if(Q(e,o))return!0;return!1}function Z(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).join(" "):e}function ee(t,o){const l=e.computed(()=>e.isRef(t)?t.value:t),a=e.computed(()=>Z(l.value.invalidLabel)),n=e.computed(()=>Z(l.value.validLabel)),r=e.computed(()=>l.value.loadingLabel),i=e.computed(()=>l.value.hintLabel),u=e.computed(()=>Boolean(l.value.loading&&(o.loading||r.value))),s=e.computed(()=>!u.value&&Boolean(l.value.invalid&&(o.invalid||a.value))),d=e.computed(()=>!u.value&&!s.value&&Boolean(l.value.valid&&(o.valid||n.value))),c=e.computed(()=>!u.value&&!s.value&&!d.value&&Boolean(o.hint||i.value)),f=e.computed(()=>s.value||d.value||u.value||c.value),p=e.computed(()=>({modelValue:l.value.modelValue,valid:l.value.valid,invalid:l.value.invalid,loading:l.value.loading})),v=e.defineComponent({name:"HintSlot",props:{tag:{type:String,default:"small"}},setup:()=>({isVisible:f,invalidLabel:a,validLabel:n,loadingLabel:r,hintLabel:i,hasInvalidLabelOrSlot:s,hasValidLabelOrSlot:d,hasLoadingLabelOrSlot:u,hasHintLabelOrSlot:c}),render(){if(this.isVisible){let t;return this.hasInvalidLabelOrSlot&&(t="alert"),this.hasValidLabelOrSlot&&(t="status"),this.hasLoadingLabelOrSlot?e.h(this.tag,{role:t},this.$slots.loading?.()??this.loadingLabel):this.hasInvalidLabelOrSlot?e.h(this.tag,{role:t},this.$slots.invalid?.()??this.$slots.invalid??this.invalidLabel):this.hasValidLabelOrSlot?e.h(this.tag,{role:t},this.$slots.valid?.()??this.validLabel):e.h(this.tag,{role:t},this.$slots.hint?.()??this.$slots.hint??this.hintLabel)}return null}});return{hasInvalidLabelOrSlot:s,hasHintLabelOrSlot:c,hasValidLabelOrSlot:d,hasLoadingLabelOrSlot:u,hintSlotScope:p,HintSlot:v}}function te(){return e.inject(g,void 0)}function oe(t,o,l){return e.computed(()=>{const a={[t]:!0},n="string"==typeof o?.value?o.value.split(" "):o?.value;return n&&Array.isArray(n)&&n.forEach(e=>{e&&(a[`${t}--${e}`]=!0)}),l&&Object.keys(l.value).forEach(o=>{a[`${t}--${o}`]=e.unref(l.value[o])}),a})}const le=e.defineComponent({name:"VvIcon",props:e.mergeDefaults({name:{},color:{},width:{},height:{},provider:{},prefix:{},src:{},horizontalFlip:{type:Boolean},verticalFlip:{type:Boolean},flip:{},mode:{},inline:{type:Boolean},rotate:{},onLoad:{type:Function},svg:{},modifiers:{}},r),setup(o){const l=o,a=e.computed(()=>"string"==typeof l.rotate?Number.parseFloat(l.rotate):l.rotate),n=e.ref(!0),r=te(),{modifiers:i}=e.toRefs(l),u=oe("vv-icon",i),s=e.computed(()=>l.provider||r?.iconsProvider),d=e.computed(()=>{const e=l.name??"",o=`@${s.value}:${l.prefix}:${e}`;if(t.iconLoaded(o))return o;const a=r?.iconsCollections.find(o=>{const l=`@${s.value}:${o.prefix}:${e}`;return t.iconLoaded(l)});return a?`@${s.value}:${a.prefix}:${e}`:e});function c(e){const o=function(e){let t;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");t=(new e).window}return(t?new t.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),a=o?.innerHTML.trim()||"";o&&a&&t.addIcon(`@${s.value}:${l.prefix}:${l.name}`,{body:a,height:o.viewBox.baseVal.height,width:o.viewBox.baseVal.width})}return r&&l.src&&!t.iconLoaded(`@${s.value}:${l.prefix}:${l.name}`)&&(n.value=!1,r.fetchIcon(l.src).then(e=>{e&&(c(e),n.value=!0)}).catch(e=>{throw new Error(`Error during fetch icon: ${e?.message}`)})),l.svg&&c(l.svg),(l,r)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(t.Icon),e.mergeProps({key:0,class:e.unref(u)},{inline:o.inline,width:o.width,height:o.height,horizontalFlip:o.horizontalFlip,verticalFlip:o.verticalFlip,flip:o.flip,rotate:e.unref(a),color:o.color,icon:e.unref(d)},{onLoad:o.onLoad}),null,16,["class","onLoad"])):e.createCommentVNode("v-if",!0)}});function ae(t,o){const l=e.computed(()=>"string"==typeof t?.value?{name:t?.value}:t?.value),a=e.computed(()=>o?.value===c.before?l.value:void 0),n=e.computed(()=>o?.value===c.after?l.value:void 0),r=e.computed(()=>o?.value===s.left?l.value:void 0),i=e.computed(()=>o?.value===s.right?l.value:void 0),u=e.computed(()=>o?.value===s.top?l.value:void 0),d=e.computed(()=>o?.value===s.bottom?l.value:void 0);return{hasIcon:l,hasIconLeft:r,hasIconRight:i,hasIconTop:u,hasIconBottom:d,hasIconBefore:a,hasIconAfter:n}}const ne=e.defineComponent({components:{VvIcon:le},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},label:{type:String,default:"Clear"},icon:{type:[String,Object],default:"close"}},emits:["clear"],setup(t,{emit:o}){const{hasIcon:l}=ae(e.computed(()=>t.icon));return{hasIcon:l,onClick:function(e){e?.stopPropagation(),t.disabled||o("clear")}}},render(){const t=this.hasIcon?e.h(le,{...this.hasIcon,class:`vv-${this.inputType}__icon`}):void 0;return e.h("button",{disabled:this.disabled,class:`vv-${this.inputType}__action`,ariaLabel:this.label,type:"button",onClick:this.onClick},t)}}),re={...F,value:[String,Number]},ie=e.defineComponent({name:"VvBadge",props:re,setup(t){const o=t,{modifiers:l}=e.toRefs(o),a=oe("vv-badge",l);return(t,o)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(a))},[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.value),1)])],2))}});const ue={...G,...T,...F,...z,...V,...j,iconPosition:{type:String,default:s.left,validator:e=>Object.values(s).includes(e)},loadingIcon:{type:String,default:"eos-icons:bubble-loading"},toggle:{type:Boolean,default:!1},value:{type:[String,Number,Boolean],default:void 0},uncheckedValue:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0}};function se(t,o){const{group:l,isInGroup:a,getGroupOrLocalRef:n}=function(t){const o=e.inject(t,void 0),l=e.computed(()=>void 0!==o);return{group:o,isInGroup:l,getGroupOrLocalRef:function(t,l,a){const n=o?.[t];if(n)return e.computed({get:()=>n.value,set(e){n.value=e}});const r=e.toRef(l,t);return e.computed({get:()=>r.value,set(e){a&&a(`update:${t}`,e)}})}}}(y),{id:r,iconPosition:i,icon:u,label:s,pressed:d}=e.toRefs(t),c=n("modelValue",t,o),f=n("toggle",t),p=n("unselectable",t),v=e.computed(()=>l?.multiple.value??!1),m=e.computed(()=>{let e=t.modifiers,o=l?.modifiers.value;const a=new Set;return e&&(Array.isArray(e)||(e=e.split(" ")),e.forEach(e=>a.add(e))),o&&(Array.isArray(o)||(o=o.split(" ")),o.forEach(e=>a.add(e))),Array.from(a)}),b=e.computed(()=>Boolean(t.disabled||l?.disabled.value));return{group:l,isInGroup:a,modelValue:c,toggle:f,unselectable:p,multiple:v,modifiers:m,disabled:b,id:r,pressed:d,iconPosition:i,icon:u,label:s}}const de=G;const ce=e.defineComponent({name:"VvAction",props:de,emits:["click","mouseover","mouseleave"],setup(t,{expose:o,emit:l}){const a=t,n=l,r=e.getCurrentInstance(),i=te(),u=e.ref(null);o({$el:u});const{reference:s,bus:d,aria:c,expanded:f}=e.inject(h,{});e.watch(()=>u.value,e=>{s&&(s.value=e)});const v=e.computed(()=>a.pressed||f?.value),{role:m}=e.inject(S,{}),b=e.computed(()=>{switch(!0){case a.disabled:return p.button;case void 0!==a.to:return i?.nuxt?e.resolveComponent(p.nuxtLink):p.routerLink;case void 0!==a.href:return p.a;default:return a.defaultTag}}),g=e.computed(()=>{const e={...c?.value,ariaPressed:!!v.value||void 0,ariaLabel:a.ariaLabel,role:m?.value};switch(b.value){case p.a:return{...e,href:a.href,target:a.target,rel:a.rel};case p.routerLink:case p.nuxtLink:return{...e,to:a.to,target:a.target};case p.button:return{...e,type:a.type,disabled:a.disabled};default:return e}});function y(e){a.disabled?e.preventDefault():r?.vnode.props?.onClick?n("click",e):d?.emit("click",e)}function k(e){r?.vnode.props?.onMouseover?n("mouseover",e):d?.emit("mouseover",e)}function B(e){r?.vnode.props?.onMouseleave?n("mouseleave",e):d?.emit("mouseleave",e)}return(t,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(b)),e.mergeProps(e.unref(g),{ref_key:"element",ref:u,class:{active:t.active,pressed:e.unref(v),disabled:t.disabled,current:t.current},onClickPassive:y,onMouseoverPassive:k,onMouseleavePassive:B}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(t.label),1)])]),_:3},16,["class"]))}});function fe(t){return e.computed(()=>String(t?.value||e.useId()))}const pe={key:1,class:"vv-button__label"},ve={key:1,class:"vv-button__label"},me=e.defineComponent({name:"VvButton",inheritAttrs:!1,props:ue,emits:["update:modelValue"],setup(t,{expose:o,emit:l}){const a=t,n=l,r=e.useAttrs(),i=e.useSlots(),{id:u,modifiers:d,iconPosition:c,icon:f,label:p,modelValue:v,disabled:m,toggle:b,unselectable:g}=se(a,n),y=fe(u),h=e.computed(()=>r?.name||y.value),k=e.ref(null);o({$el:e.computed(()=>k.value?.$el)});const S=e.computed(()=>b.value?Array.isArray(v.value)?Y(h.value,v.value):Q(h.value,v.value):a.pressed),B=oe("vv-button",d,e.computed(()=>({reverse:[s.right,s.bottom].includes(c.value),column:[s.top,s.bottom].includes(c.value),"icon-only":Boolean(f?.value&&!p?.value&&!i.default)}))),{hasIcon:w}=ae(f),x=e.computed(()=>void 0!==a.value?a.value:h.value),V=e.computed(()=>{if(b.value)return{onClick:L}});function L(){if(b.value){if(Array.isArray(v.value))return Y(x.value,v.value)?void(g.value&&(v.value=v.value.filter(e=>e!==x.value))):void v.value.push(x.value);if(x.value===v.value&&g.value)return void(v.value=a.uncheckedValue);v.value=x.value}}return(t,o)=>(e.openBlock(),e.createBlock(ce,e.mergeProps({...e.unref(r),...e.unref(V),disabled:e.unref(m),pressed:e.unref(S),active:t.active,type:t.type,to:t.to,href:t.href,target:t.target,rel:t.rel,ariaLabel:t.ariaLabel},{id:e.unref(y),ref_key:"element",ref:k,class:e.unref(B)}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{},()=>[t.loading?e.renderSlot(t.$slots,"loading",{key:0},()=>[t.loadingIcon?(e.openBlock(),e.createBlock(le,{key:0,class:"vv-button__loading-icon",name:t.loadingIcon},null,8,["name"])):e.createCommentVNode("v-if",!0),t.loadingLabel?(e.openBlock(),e.createElementBlock("span",pe,e.toDisplayString(t.loadingLabel),1)):e.createCommentVNode("v-if",!0)]):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.renderSlot(t.$slots,"before"),e.unref(w)?(e.openBlock(),e.createBlock(le,e.mergeProps({key:0},e.unref(w),{class:"vv-button__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.unref(p)?(e.openBlock(),e.createElementBlock("span",ve,[e.renderSlot(t.$slots,"label",{},()=>[e.createTextVNode(e.toDisplayString(e.unref(p)),1)])])):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"after")],64))])]),_:3},16,["id","class"]))}}),be={...T,...M,...F,modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:m.menu,validator:e=>Object.values(m).includes(e)}},ge={focusOnHover:{type:Boolean,default:!1}},ye={...L,...P,...z,...F,deselectHintLabel:{type:String},selectHintLabel:{type:String},selectedHintLabel:{type:String},focusOnHover:{type:Boolean,default:!1}};const he=["id","tabindex","role","aria-labelledby"],ke=e.defineComponent({name:"VvDropdown",inheritAttrs:!1,props:be,emits:["update:modelValue","beforeEnter","afterLeave","beforeExpand","beforeCollapse","afterExpand","afterCollapse","before-enter","after-leave","enter","afterEnter","enterCancelled","beforeLeave","leave","leaveCancelled"],setup(t,{expose:n,emit:r}){const i=t,d=r,{id:c}=e.toRefs(i),f=fe(c),p=e.useAttrs(),v=e.ref("auto"),g=e.ref("auto"),y=e.ref(),S=e.ref(),B=e.ref(),w=e.ref(),x=e.computed({get:()=>i.reference??y.value,set:e=>{y.value=e}}),V=e.ref(!1);e.onMounted(()=>{l.useMutationObserver(S.value,()=>{V.value="true"===window.getComputedStyle(S.value).getPropertyValue("--dropdown-custom-position")?.trim()},{attributeFilter:["style"],window:window})});const L=e.computed(()=>{const e=[];if(i.autoPlacement?"boolean"==typeof i.autoPlacement?e.push(o.autoPlacement()):e.push(o.autoPlacement(i.autoPlacement)):i.flip&&("boolean"==typeof i.flip?e.push(o.flip({fallbackStrategy:"initialPlacement"})):e.push(o.flip(i.flip))),i.shift&&("boolean"==typeof i.shift?e.push(o.shift()):e.push(o.shift(i.shift))),i.size){const t=({availableWidth:e,availableHeight:t})=>{v.value=`${e}px`,g.value=`${t}px`};"boolean"==typeof i.size?e.push(o.size({apply:t})):e.push(o.size({...i.size,apply:t}))}return i.offset&&(e.push(o.offset(Number(i.offset))),["string","number"].includes(typeof i.offset)?e.push(o.offset(Number(i.offset))):e.push(o.offset(i.offset))),i.arrow&&e.push(o.arrow({element:B})),e}),{x:C,y:P,middlewareData:O,placement:$,strategy:N}=o.useFloating(x,S,{whileElementsMounted:(...e)=>o.autoUpdate(...e,{animationFrame:i.strategy===u.fixed}),placement:e.computed(()=>i.placement),strategy:e.computed(()=>i.strategy),middleware:L}),_=e.computed(()=>{if(V.value)return;const e=i.triggerWidth&&x.value?`${x.value?.offsetWidth}px`:void 0;return{position:N.value,top:`${P.value??0}px`,left:`${C.value??0}px`,maxWidth:e?void 0:v.value,maxHeight:g.value,width:e}}),E=e.computed(()=>$.value.split("-")[0]),A=e.computed(()=>{if(V.value)return;const e={[s.top]:s.bottom,[s.right]:s.left,[s.bottom]:s.top,[s.left]:s.right}[E.value];return{left:void 0!==O.value.arrow?.x?`${O.value.arrow?.x}px`:void 0,top:void 0!==O.value.arrow?.y?`${O.value.arrow?.y}px`:void 0,[e]:-(B.value?.offsetWidth??0)/2+"px"}}),F=l.useVModel(i,"modelValue",d),D=e.ref(!1),H=e.computed({get:()=>F.value??D.value,set:e=>{void 0!==F.value?F.value=e:D.value=e}});function j(){H.value=!0}function I(){H.value=!1}function R(){H.value=!H.value}function z(e){x.value=e}l.onClickOutside(S,()=>{!i.keepOpen&&H.value&&(H.value=!1)},{ignore:[x]});const T=e.computed(()=>x.value?.getAttribute?.("id")??void 0),M=e.computed(()=>({"aria-controls":f.value,"aria-haspopup":!0,"aria-expanded":H.value})),{component:q,bus:K}=function({reference:t,id:o,expanded:l,aria:n}){const r=a(),i=e.defineComponent({name:"VvDropdownTriggerProvider",setup(){e.provide(h,{reference:t,id:o,expanded:l,aria:n,bus:r})},render(){return e.h(e.Fragment,{},this.$slots.default?.())}});return{bus:r,component:i}}({reference:x,id:f,expanded:H,aria:M});K.on("click",R);const{role:W,modifiers:G}=e.toRefs(i),J=oe("vv-dropdown",G,e.computed(()=>({arrow:i.arrow}))),{focused:U}=l.useFocusWithin(S);function Q(e){return e?[...e.querySelectorAll('a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')].filter(e=>!e.hasAttribute("disabled")&&!e.getAttribute("aria-hidden")):[]}function X(){e.nextTick(()=>{const e=Q(S.value);e.length>0&&e[0].focus({preventScroll:!0})})}function Y(){e.nextTick(()=>{if(U.value){const e=Q(S.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t<e.length-1?e[t+1].focus({preventScroll:!0}):e[0].focus({preventScroll:!0})}})}function Z(){e.nextTick(()=>{if(U.value){const e=Q(S.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t>0?e[t-1].focus({preventScroll:!0}):e[e.length-1].focus({preventScroll:!0})}})}e.watch(H,e=>{e&&i.autofocusFirst&&X()}),n({toggle:R,show:j,hide:I,init:z,focusFirst:X,focusFirstListElement:function(){e.nextTick(()=>{const e=Q(w.value);e.length>0&&e[0].focus({preventScroll:!0})})},focusNext:Y,focusPrev:Z,customPosition:V});const ee=l.useElementHover(S),{itemRole:te}=function({role:t,...o}){const l=e.computed(()=>t.value===m.listbox?b.option:b.presentation);return e.provide(k,{role:l,...o}),{itemRole:l}}({role:W,expanded:H,focused:U,hovered:ee});l.onKeyStroke("Escape",e=>{H.value&&(e.preventDefault(),I())}),l.onKeyStroke("ArrowDown",e=>{H.value&&U.value&&(e.preventDefault(),Y())}),l.onKeyStroke("ArrowUp",e=>{H.value&&U.value&&(e.preventDefault(),Z())}),l.onKeyStroke([" ","Enter"],e=>{const t=e.target;H.value&&U.value&&t&&t?.click()});const le={"before-enter":()=>{d(H.value?"beforeExpand":"beforeCollapse"),d("beforeEnter")},"after-leave":()=>{d(H.value?"afterExpand":"afterCollapse"),d("afterLeave")},enter:()=>{d("enter")},"after-enter":()=>{d("afterEnter")},"enter-cancelled":()=>{d("enterCancelled")},"before-leave":()=>{d("beforeLeave")},leave:()=>{d("leave")},"leave-cancelled":()=>{d("leaveCancelled")}};return(t,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(q),null,{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps({init:z,show:j,hide:I,toggle:R,expanded:e.unref(H),aria:e.unref(M)})))]),_:3}),e.createVNode(e.Transition,e.mergeProps({name:t.transitionName},e.toHandlers(le),{persisted:""}),{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"floatingEl",ref:S,style:e.normalizeStyle(e.unref(_)),class:e.normalizeClass(e.unref(J))},[i.arrow?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"arrowEl",ref:B,style:e.normalizeStyle(e.unref(A)),class:"vv-dropdown__arrow"},null,4)):e.createCommentVNode("v-if",!0),e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(H)}))),e.createElementVNode("div",e.mergeProps(e.unref(p),{id:e.unref(f),ref_key:"listEl",ref:w,tabindex:e.unref(H)?void 0:-1,role:e.unref(W),"aria-labelledby":e.unref(T),class:"vv-dropdown__list"}),[e.renderSlot(t.$slots,"items",e.normalizeProps(e.guardReactiveProps({role:e.unref(te)})))],16,he),e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(H)})))],6),[[e.vShow,e.unref(H)]])]),_:3},16,["name"])],64))}}),Se={class:"vv-dropdown-optgroup",role:"presentation",tabindex:"-1"},Be=e.defineComponent({name:"VvDropdownOptgroup",props:{...E},setup(t){const o=t;return(t,l)=>(e.openBlock(),e.createElementBlock("li",Se,[e.renderSlot(t.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(o.label),1)])]))}}),we=e.defineComponent({name:"VvDropdownItem",props:ge,setup(t){const o=t,{role:a,expanded:n}=e.inject(k,{}),r=e.ref(null);!function({expanded:t}){e.provide(S,{role:e.ref(v.menuitem),expanded:t})}({expanded:n});const i=l.useElementHover(r),{focused:u}=l.useFocus(r),{focused:s}=l.useFocusWithin(r);return e.watch(i,e=>{e&&o.focusOnHover&&(u.value=!0)}),(t,o)=>(e.openBlock(),e.createElementBlock("div",e.mergeProps({role:e.unref(a)},{ref_key:"element",ref:r,class:["vv-dropdown__item",{"focus-visible":e.unref(u)||e.unref(s)}]}),[e.renderSlot(t.$slots,"default")],16))}}),xe=["title"],Ve=e.defineComponent({name:"VvDropdownOption",props:ye,setup(t){const o=t,{modifiers:l}=e.toRefs(o),a=oe("vv-dropdown-option",l,e.computed(()=>({disabled:o.disabled,selected:o.selected,unselectable:o.unselectable&&o.selected}))),n=e.computed(()=>o.selected?o.unselectable?o.deselectHintLabel:o.selectedHintLabel:o.disabled?"":o.selectHintLabel);return(t,o)=>(e.openBlock(),e.createBlock(we,{class:e.normalizeClass(e.unref(a)),tabindex:t.disabled?-1:0,"aria-selected":t.selected,"aria-disabled":t.disabled,"focus-on-hover":t.focusOnHover},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default"),e.createElementVNode("span",{class:"vv-dropdown-option__hint",title:e.unref(n)},[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps({disabled:t.disabled,selected:t.selected,unselectable:t.unselectable})),()=>[e.createTextVNode(e.toDisplayString(e.unref(n)),1)])],8,xe)]),_:3},8,["class","tabindex","aria-selected","aria-disabled","focus-on-hover"]))}}),Le={...q,...K,...W,...I,...w,...x,...D,...V,...L,...A,...F,...H,...j,...R,...z,...E,...N,multiple:Boolean,required:Boolean,size:[String,Number],modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},autoselectFirst:{type:Boolean,default:!1},placeholder:String};function Ce(){return{...Le,options:{...Le.options,type:Array,default:()=>[]}}}function Pe(t,o,l){const a=te(),n=e.computed(()=>{if(a&&a.defaults.value?.[t])return a.defaults.value[t]});return e.computed(()=>{if(void 0===n.value)return l;const e=n.value,t=o,a=l;return Object.keys(t).reduce((o,l)=>{const n=a[l];if(o[l]=n,l in e){if(Array.isArray(t[l])){const a=t[l];if(a.length){a[0]===n&&(o[l]=e[l])}}if("function"==typeof t[l]){(0,t[l])()===n&&(o[l]=e[l])}if("object"==typeof t[l]){let a=t[l].default;"function"==typeof a&&(a=a()),"object"==typeof a?JSON.stringify(a)===JSON.stringify(n)&&(o[l]=e[l]):a===n&&(o[l]=e[l])}}return o},{})})}function Oe(t,o){const{focused:a}=l.useFocus(t);return e.watch(a,l=>{o(l?"focus":"blur",e.unref(t))}),{focused:a}}function $e(t){const{options:o,labelKey:l,valueKey:a,disabledKey:r}=e.toRefs(t);return{options:o,getOptionLabel:e=>"string"==typeof e?e:"function"==typeof l.value?l.value(e):String(l.value?n.getProperty(e,l.value):e),getOptionValue:e=>"string"==typeof e?e:"function"==typeof a.value?a.value(e):a.value?n.getProperty(e,a.value):e,isOptionDisabled:e=>"string"!=typeof e&&("function"==typeof r.value?r.value(e):!!r.value&&Boolean(n.getProperty(e,r.value))),getOptionGrouped:e=>"string"==typeof e?[]:"object"==typeof e&&e&&"options"in e?e.options:[]}}const Ne=["for"],_e={class:"vv-select__wrapper"},Ee={key:0,class:"vv-select__input-before"},Ae={class:"vv-select__inner"},Fe=["id"],De=["disabled","hidden"],He=["disabled","value"],je=["disabled","label"],Ie=["disabled","value"],Re={key:2,class:"vv-select__input-after"},ze=e.defineComponent({name:"VvSelect",props:Ce(),emits:["update:modelValue","focus","blur","clear"],setup(t,{emit:o}){const a=t,n=o,r=e.useSlots(),i=Pe("VvSelect",Ce(),a),u=e.ref(),{HintSlot:s,hasHintLabelOrSlot:d,hasInvalidLabelOrSlot:c,hintSlotScope:f}=ee(i,r),{focused:p}=Oe(u,n);function v(e){return"string"!=typeof e&&e.options?.length}const{id:m,modifiers:b,disabled:g,readonly:y,loading:h,icon:k,iconPosition:S,invalid:B,valid:w,floating:x,multiple:V}=e.toRefs(a),L=fe(m),C=e.computed(()=>`${L.value}-hint`),P=e.computed(()=>a.disabled||a.readonly),O=e.computed(()=>P.value?-1:a.tabindex),$=e.computed({get:()=>a.modelValue,set:e=>{Array.isArray(e)&&0===(e=e.filter(e=>void 0!==e)).length&&!a.unselectable&&u.value?u.value.value=String(a.modelValue):n("update:modelValue",e)}}),N=e.computed(()=>Array.isArray($.value)?$.value.length>0:void 0!==$.value&&null!==$.value),_=e.computed(()=>!P.value&&a.unselectable),E=l.useElementVisibility(u);e.watch(E,e=>{e&&a.autofocus&&(p.value=!0)});const{hasIconBefore:A,hasIconAfter:F}=ae(k,S),D=e.computed(()=>!0===a.invalid||!0!==a.valid&&void 0),H=oe("vv-select",b,e.computed(()=>({valid:w.value,invalid:B.value,loading:h.value,disabled:g.value,readonly:y.value,"icon-before":void 0!==A.value,"icon-after":void 0!==F.value,dirty:N.value,focus:p.value&&!P.value,floating:x.value,multiple:V.value}))),{getOptionLabel:j,getOptionValue:I,isOptionDisabled:R,getOptionGrouped:z}=$e(a);function T(){Array.isArray($.value)?$.value=[]:$.value=void 0,n("clear")}e.watch(()=>a.options,e=>{if(e?.length&&a.autoselectFirst&&!N.value){const t=I(e[0]);$.value=a.multiple?[t]:t}},{immediate:!0});const M=e.computed(()=>({name:a.name,tabindex:O.value,disabled:P.value,required:a.required,size:a.size,autocomplete:a.autocomplete,multiple:a.multiple,"aria-invalid":D.value,"aria-describedby":d.value?C.value:void 0,"aria-errormessage":c.value?C.value:void 0})),q=e.computed(()=>({valid:a.valid,invalid:a.invalid,modelValue:a.modelValue}));return(t,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(H))},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(L)},e.toDisplayString(t.label),9,Ne)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",_e,[t.$slots.before?(e.openBlock(),e.createElementBlock("div",Ee,[e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(q))))])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",Ae,[e.unref(A)?(e.openBlock(),e.createBlock(le,e.mergeProps({key:0},e.unref(A),{class:"vv-select__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.withDirectives(e.createElementVNode("select",e.mergeProps({id:e.unref(L),ref_key:"selectEl",ref:u},e.unref(M),{"onUpdate:modelValue":o[0]||(o[0]=t=>e.isRef($)?$.value=t:null)}),[t.placeholder?(e.openBlock(),e.createElementBlock("option",{key:0,value:void 0,disabled:!e.unref(_),hidden:!e.unref(_)},e.toDisplayString(t.placeholder),9,De)):e.createCommentVNode("v-if",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,(t,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[v(t)?(e.openBlock(),e.createElementBlock("optgroup",{key:`group-${o}`,disabled:e.unref(R)(t),label:e.unref(j)(t)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(z)(t),(t,l)=>(e.openBlock(),e.createElementBlock("option",{key:`group-${o}-item-${l}`,disabled:e.unref(R)(t),value:e.unref(I)(t)},e.toDisplayString(e.unref(j)(t)),9,Ie))),128))],8,je)):(e.openBlock(),e.createElementBlock("option",{key:o,disabled:e.unref(R)(t),value:e.unref(I)(t)},e.toDisplayString(e.unref(j)(t)),9,He))],64))),256))],16,Fe),[[e.vModelSelect,e.unref($)]]),e.unref(F)?(e.openBlock(),e.createBlock(le,e.mergeProps({key:1},e.unref(F),{class:"vv-select__icon vv-select__icon-after"}),null,16)):e.createCommentVNode("v-if",!0)]),e.unref(_)&&e.unref(i).showClearAction?(e.openBlock(),e.createBlock(e.unref(ne),{key:1,"input-type":"select",label:t.labelClear,icon:t.iconClear,disabled:!e.unref(N),onClear:T},null,8,["label","icon","disabled"])):e.createCommentVNode("v-if",!0),t.$slots.after?(e.openBlock(),e.createElementBlock("div",Re,[e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(q))))])):e.createCommentVNode("v-if",!0)]),e.createVNode(e.unref(s),{id:e.unref(C),class:"vv-select__hint"},e.createSlots({_:2},[t.$slots.hint?{name:"hint",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps(e.unref(f))))]),key:"0"}:void 0,t.$slots.loading?{name:"loading",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"loading",e.normalizeProps(e.guardReactiveProps(e.unref(f))))]),key:"1"}:void 0,t.$slots.valid?{name:"valid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"valid",e.normalizeProps(e.guardReactiveProps(e.unref(f))))]),key:"2"}:void 0,t.$slots.invalid?{name:"invalid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"invalid",e.normalizeProps(e.guardReactiveProps(e.unref(f))))]),key:"3"}:void 0]),1032,["id"])],2))}}),Te=["id"],Me=["id","for"],qe=["id","aria-controls","placeholder"],Ke={key:0,class:"vv-select__input-before"},We={class:"vv-select__inner"},Ge=["aria-controls","aria-expanded","aria-labelledby","aria-describedby","aria-errormessage","tabindex"],Je={key:0,class:"vv-select__value"},Ue=["aria-label","onClick"],Qe={key:2,class:"vv-select__input-after"},Xe={name:"VvCombobox",components:{VvDropdown:ke,VvDropdownOption:Ve,VvDropdownOptgroup:Be,VvButton:me}};return e.defineComponent({...Xe,props:e.mergeModels(U(),{search:{type:String,default:"",required:!1},searchModifiers:{}}),emits:e.mergeModels(["update:modelValue","update:search","update:options","focus","blur","clear","change:search"],["update:search"]),setup(t,{emit:o}){const a=t,n=o,r=e.useSlots(),i=Pe("VvCombobox",U(),a),u=e.ref(null),s=e.ref(null),d=e.ref(null),c=e.ref(),{HintSlot:f,hasHintLabelOrSlot:p,hasInvalidLabelOrSlot:v,hintSlotScope:b}=ee(i,r),{focused:g}=Oe(u,n),{focused:y}=l.useFocusWithin(d);e.watch(g,e=>{a.autoOpen&&(!e||S.value?e||!S.value||y.value||x():w())}),e.watch(y,e=>{g.value||e||!S.value||x()});const h=e.useModel(t,"search"),k=l.refDebounced(h,e.computed(()=>Number(a.debounceSearch)));e.watch(k,()=>{n("update:search",k.value),n("change:search",k.value)});const S=e.ref(!1);function B(){q.value||(S.value=!S.value)}function w(){q.value||S.value||(S.value=!0)}function x(){!q.value&&S.value&&(S.value=!1)}function V(){i.value.searchable&&s.value&&s.value.focus({preventScroll:!0})}function L(){i.value.keepSearch||(h.value="")}function C(e){return"string"!=typeof e&&e.options?.length}const{id:P,icon:O,iconPosition:$,modifiers:N,disabled:_,required:E,readonly:A,loading:F,valid:D,invalid:H,floating:j}=e.toRefs(a),I=fe(P),R=e.computed(()=>`${I.value}-hint`),z=e.computed(()=>`${I.value}-dropdown`),T=e.computed(()=>`${I.value}-search`),M=e.computed(()=>`${I.value}-label`),q=e.computed(()=>a.disabled||a.readonly),K=e.computed(()=>q.value?-1:a.tabindex),W=e.computed({get:()=>Array.isArray(a.modelValue)?a.modelValue:void 0!==a.modelValue&&null!==a.modelValue?[a.modelValue]:[],set:e=>{n("update:modelValue",a.multiple||Array.isArray(a.modelValue)?e:e.pop())}}),G=e.computed(()=>W.value.length),J=e.computed(()=>G.value>0),Q=e.computed(()=>a.multiple?void 0===a.maxValues?1/0:Number(a.maxValues):1),X=e.computed(()=>!q.value&&(!!a.unselectable&&(0===Number(a.minValues)||G.value>Number(a.minValues)))),Y=e.computed(()=>!q.value&&(!a.multiple||G.value<Q.value)),Z=e.ref(!1),te=e.computed(()=>Z.value||F.value),{hasIconBefore:re,hasIconAfter:ue}=ae(O,$),se=oe("vv-select",N,e.computed(()=>({disabled:_.value,required:E.value,loading:te.value,readonly:A.value,"icon-before":void 0!==re.value,"icon-after":void 0!==ue.value,valid:D.value,invalid:H.value,dirty:J.value,focus:(g.value||y.value||S.value)&&!q.value,floating:j.value,badges:a.badges}))),de=e.ref(new Set),{getOptionLabel:ce,getOptionValue:pe,getOptionGrouped:ve,isOptionDisabled:be}=$e(a),ge=e.computed(()=>{const e=[...de.value];for(const t of a.options)C(t)?e.push(...ve(t)):e.push(t);return e}),ye=e.computed(()=>{const e=[...a.options,...de.value];for(const t of W.value)ge.value.some(e=>{const o=pe(e);return"object"==typeof o&&"object"==typeof t?JSON.stringify(o)===JSON.stringify(t):o===t})||e.push(t);return e});function he(e){return be(e)||!Y.value&&!we(e)}e.watch(de,e=>{e.size>0&&n("update:options",ye.value)});const Se=l.computedAsync(async()=>{if(i.value.searchFunction){Z.value=!0;const e=await Promise.resolve(i.value.searchFunction(k.value,ye.value));return Z.value=!1,e}const e=k.value.toLowerCase().trim();return e?ye.value?.reduce((t,o)=>{if(C(o)){const l=ce(o).toLowerCase(),a=ve(o).filter(t=>ce(t).toLowerCase().includes(e));if(l.includes(e))t.push(o);else if(a.length>0){const e="object"==typeof o?{...o,options:a}:o;t.push(e)}return t}return ce(o).toLowerCase().includes(e)&&t.push(o),t},[]):ye.value});function we(e){const t=pe(e);return"object"==typeof t?W.value.some(e=>"object"==typeof e&&JSON.stringify(e)===JSON.stringify(t)):W.value.includes(t)}const xe=e.computed(()=>ye.value.reduce((e,t)=>C(t)?[...e,...ve(t)]:[...e,t],[]).filter(e=>we(e))),Le=e.computed(()=>xe.value.map(e=>ce(e)).join(a.separator));function Ce(){a.autoOpen?w():B()}function Ne(e){const t=we(e),o=pe(e);t&&X.value?W.value=W.value.filter(e=>"object"==typeof o&&"object"==typeof e?JSON.stringify(e)!==JSON.stringify(o):e!==o):!t&&Y.value&&(a.multiple?W.value=[...W.value,o]:W.value=[o]),a.multiple||a.keepOpen||x()}function _e(){W.value=[],n("update:search",""),n("clear")}e.watch(ye,e=>{if(e?.length&&a.autoselectFirst&&!J.value){const t=e.find(e=>!C(e));if(t)return void Ne(t);const o=e.find(e=>C(e));if(o){const e=ve(o);e.length&&Ne(e[0])}}},{immediate:!0});const Ee=e.computed(()=>({id:I.value,name:a.name,tabindex:K.value,valid:D.value,validLabel:i.value.validLabel,invalid:H.value,invalidLabel:i.value.invalidLabel,hintLabel:i.value.hintLabel,loading:te.value,loadingLabel:i.value.loadingLabel,disabled:_.value,readonly:A.value,modifiers:i.value.modifiers,options:i.value.options,labelKey:i.value.labelKey,valueKey:i.value.valueKey,icon:i.value.icon,iconPosition:i.value.iconPosition,floating:i.value.floating,unselectable:X.value,autoselectFirst:i.value.autoselectFirst,multiple:i.value.multiple,label:i.value.label,placeholder:i.value.placeholder,modelValue:a.modelValue})),Ae=e.computed(()=>({id:z.value,reference:d.value,placement:i.value.placement,strategy:i.value.strategy,transitionName:i.value.transitionName,offset:i.value.offset,shift:i.value.shift,flip:i.value.flip,autoPlacement:i.value.autoPlacement,arrow:i.value.arrow,autofocusFirst:!!i.value.searchable||i.value.autofocusFirst,triggerWidth:i.value.triggerWidth,modifiers:i.value.dropdownModifiers})),Fe=e.computed(()=>({valid:a.valid,invalid:a.invalid,modelValue:a.modelValue}));function De(){if(Se.value?.length){if(1===Se.value.length){const e=Se.value[0];if(C(e)){const t=ve(e);return void(t.length&&Ne(t[0]))}return void Ne(e)}c.value?.focusFirstListElement()}else if(i.value.addable){const e=h.value.trim();if(!e)return;if(ge.value.some(t=>ce(t).toLowerCase()===e.toLowerCase()))return;de.value.add(e),Ne(e)}}return l.onKeyStroke([" ","Enter"],e=>{a.autoOpen||!S.value&&g.value&&(e.preventDefault(),e.stopImmediatePropagation(),B())},{target:u}),(t,o)=>t.native?(e.openBlock(),e.createBlock(ze,e.mergeProps({key:1},e.unref(Ee),{"onUpdate:modelValue":o[3]||(o[3]=e=>n("update:modelValue",e))}),null,16)):(e.openBlock(),e.createElementBlock("div",{key:0,id:e.unref(I),class:e.normalizeClass(e.unref(se))},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,id:e.unref(M),for:e.unref(i).searchable?e.unref(T):void 0},e.toDisplayString(t.label),9,Me)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",{ref_key:"wrapperEl",ref:d,class:"vv-select__wrapper"},[e.createVNode(ke,e.mergeProps({ref_key:"dropdownEl",ref:c,modelValue:e.unref(S),"onUpdate:modelValue":o[2]||(o[2]=t=>e.isRef(S)?S.value=t:null)},e.unref(Ae),{role:e.unref(m).listbox,onAfterExpand:V,onAfterCollapse:L}),e.createSlots({default:e.withCtx(({aria:o})=>[t.$slots.before?(e.openBlock(),e.createElementBlock("div",Ke,[e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(Fe))))])):e.createCommentVNode("v-if",!0),e.createElementVNode("div",We,[e.unref(re)?(e.openBlock(),e.createBlock(le,e.mergeProps({key:0},e.unref(re),{class:"vv-select__icon"}),null,16)):e.createCommentVNode("v-if",!0),e.createElementVNode("div",e.mergeProps({ref_key:"inputEl",ref:u},o,{class:"vv-select__input",role:"combobox","aria-controls":e.unref(z),"aria-expanded":e.unref(S),"aria-labelledby":e.unref(M),"aria-describedby":e.unref(p)?e.unref(R):void 0,"aria-errormessage":e.unref(v)?e.unref(R):void 0,tabindex:e.unref(K),onClickPassive:Ce}),[e.unref(Le)?e.renderSlot(t.$slots,"value",e.normalizeProps(e.mergeProps({key:0},{selectedOptions:e.unref(xe),onInput:Ne})),()=>[t.badges?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(e.unref(xe),(o,l)=>(e.openBlock(),e.createBlock(ie,{key:l,modifiers:t.badgeModifiers,class:"vv-select__badge"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(ce)(o))+" ",1),e.unref(X)?(e.openBlock(),e.createElementBlock("button",{key:0,"aria-label":e.unref(i).deselectActionLabel,type:"button",onClick:e.withModifiers(e=>Ne(o),["stop"])},[e.createVNode(le,{name:"close"})],8,Ue)):e.createCommentVNode("v-if",!0)]),_:2},1032,["modifiers"]))),128)):(e.openBlock(),e.createElementBlock("div",Je,e.toDisplayString(e.unref(Le)),1))]):e.renderSlot(t.$slots,"placeholder",{key:1},()=>[e.createTextVNode(e.toDisplayString(t.placeholder),1)])],16,Ge),e.unref(ue)?(e.openBlock(),e.createBlock(le,e.mergeProps({key:1},e.unref(ue),{class:"vv-select__icon vv-select__icon-after"}),null,16)):e.createCommentVNode("v-if",!0)]),e.unref(X)&&e.unref(i).showClearAction?(e.openBlock(),e.createBlock(e.unref(ne),{key:1,"input-type":"select",label:t.labelClear,icon:t.iconClear,disabled:!e.unref(J),onClear:_e},null,8,["label","icon","disabled"])):e.createCommentVNode("v-if",!0),t.$slots.after?(e.openBlock(),e.createElementBlock("div",Qe,[e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(Fe))))])):e.createCommentVNode("v-if",!0)]),items:e.withCtx(()=>[!e.unref(_)&&e.unref(Se)?.length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(e.unref(Se),(o,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:l},[C(o)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(Be,{label:e.unref(ce)(o)},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"option-group",e.mergeProps({ref_for:!0},{option:o,selectedOptions:e.unref(xe)}),()=>[e.createTextVNode(e.toDisplayString(e.unref(ce)(o)),1)])]),_:2},1032,["label"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ve)(o),(o,l)=>(e.openBlock(),e.createBlock(Ve,e.mergeProps({ref_for:!0},{selected:we(o),disabled:he(o),unselectable:e.unref(X),deselectHintLabel:e.unref(i).deselectHintLabel,selectHintLabel:e.unref(i).selectHintLabel,selectedHintLabel:e.unref(i).selectedHintLabel,focusOnHover:t.focusOnHover},{key:l,class:"vv-dropdown-option",onClickPassive:e=>Ne(o)}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"option",e.mergeProps({ref_for:!0},{option:o,selectedOptions:e.unref(xe),selected:we(o),disabled:he(o)}),()=>[e.createTextVNode(e.toDisplayString(e.unref(ce)(o)),1)])]),_:2},1040,["onClickPassive"]))),128))],64)):(e.openBlock(),e.createBlock(Ve,e.mergeProps({key:1,ref_for:!0},{selected:we(o),disabled:he(o),unselectable:e.unref(X),deselectHintLabel:e.unref(i).deselectHintLabel,selectHintLabel:e.unref(i).selectHintLabel,selectedHintLabel:e.unref(i).selectedHintLabel,focusOnHover:t.focusOnHover},{class:"vv-dropdown-option",onClickPassive:e=>Ne(o)}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"option",e.mergeProps({ref_for:!0},{option:o,selectedOptions:e.unref(xe),selected:we(o),disabled:he(o)}),()=>[e.createTextVNode(e.toDisplayString(e.unref(ce)(o)),1)])]),_:2},1040,["onClickPassive"]))],64))),128)):t.options.length?(e.openBlock(),e.createBlock(Ve,{key:2,modifiers:"inert"},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"no-results",{},()=>[e.createTextVNode(e.toDisplayString(e.unref(i).addable?e.unref(i).addOptionHintLabel:e.unref(i).noResultsLabel),1)])]),_:3})):(e.openBlock(),e.createBlock(Ve,{key:1,modifiers:"inert"},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"no-options",{},()=>[e.createTextVNode(e.toDisplayString(e.unref(i).addable&&h.value.length?e.unref(i).addOptionHintLabel:e.unref(i).noOptionsLabel),1)])]),_:3}))]),after:e.withCtx(()=>[e.renderSlot(t.$slots,"dropdown::after",{},()=>[e.unref(c)?.customPosition?(e.openBlock(),e.createBlock(me,{key:0,label:e.unref(i).closeLabel,modifiers:"secondary",onClick:o[1]||(o[1]=t=>e.unref(c).hide())},null,8,["label"])):e.createCommentVNode("v-if",!0)])]),_:2},[e.unref(i).searchable||t.$slots["dropdown::before"]?{name:"before",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"dropdown::before"),e.unref(i).searchable&&!e.unref(_)?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,id:e.unref(T),ref_key:"inputSearchEl",ref:s,"onUpdate:modelValue":o[0]||(o[0]=e=>h.value=e),"aria-autocomplete":"list","aria-controls":e.unref(z),autocomplete:"off",spellcheck:"false",type:"search",class:"vv-dropdown__search",placeholder:e.unref(i).searchPlaceholder,onKeyup:e.withKeys(De,["enter"])},null,40,qe)),[[e.vModelText,h.value]]):e.createCommentVNode("v-if",!0)]),key:"0"}:void 0]),1040,["modelValue","role"])],512),e.createVNode(e.unref(f),{id:e.unref(R),class:"vv-select__hint"},e.createSlots({_:2},[t.$slots.hint?{name:"hint",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps(e.unref(b))))]),key:"0"}:void 0,t.$slots.loading?{name:"loading",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"loading",e.normalizeProps(e.guardReactiveProps(e.unref(b))))]),key:"1"}:void 0,t.$slots.valid?{name:"valid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"valid",e.normalizeProps(e.guardReactiveProps(e.unref(b))))]),key:"2"}:void 0,t.$slots.invalid?{name:"invalid",fn:e.withCtx(()=>[e.renderSlot(t.$slots,"invalid",e.normalizeProps(e.guardReactiveProps(e.unref(b))))]),key:"3"}:void 0]),1032,["id"])],10,Te))}})});