import{u as pe,a as we,m as Se}from"./VSelect-CAAOHY78.js";import{ad as Fe,bi as Ie,r as M,ap as F,bb as De,al as J,by as Pe,z as y,ao as Re,M as I,bf as W,as as Q,ae as Ae,E as X,i as v,F as z,G as Y,bz as Ee,D as S,bA as Te,ab as Me,bB as _e,aC as Ne,k as Ke,au as Le,aJ as Oe,bC as Z,bD as Be,af as Ue,bm as ze,aw as je,bE as qe,aF as He}from"./index-N7CMQwFv.js";import{u as $e,h as Ge,m as Je}from"./filter-D7iDI7IV.js";import{u as We,t as D,V as Qe,a as ee}from"./VList-BYq4u0VJ.js";import{V as Xe}from"./VMenu-Dbaxs5uG.js";import{V as Ye}from"./VChip-iaVLrPY0.js";const Ze=Ue({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Je({filterKeys:["title"]}),...Se({hideNoData:!0,returnObject:!0}),...je(qe({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...ze({transition:!1})},"VCombobox"),ol=Fe()({name:"VCombobox",props:Ze(),emits:{"update:focused":l=>!0,"update:modelValue":l=>!0,"update:search":l=>!0,"update:menu":l=>!0},setup(l,le){var H;let{emit:ae,slots:o}=le;const{t:_}=Ie(),b=M(),x=F(!1),C=F(!0),N=F(!1),j=M(),K=M(),i=F(-1);let L=!1;const{items:te,transformIn:ue,transformOut:ne}=We(l),{textColorClasses:oe,textColorStyles:ie}=De(()=>{var e;return(e=b.value)==null?void 0:e.color}),u=J(l,"modelValue",[],e=>ue(Oe(e)),e=>{const a=ne(e);return l.multiple?a:a[0]??null}),P=Pe(l),R=y(()=>!!(l.chips||o.chip)),V=y(()=>R.value||!!o.selection),k=F(!l.multiple&&!V.value?((H=u.value[0])==null?void 0:H.title)??"":""),d=y({get:()=>k.value,set:e=>{var a;if(k.value=e??"",!l.multiple&&!V.value&&(u.value=[D(l,e)]),e&&l.multiple&&((a=l.delimiters)!=null&&a.length)){const s=e.split(new RegExp(`(?:${l.delimiters.join("|")})+`));s.length>1&&(s.forEach(t=>{t=t.trim(),t&&h(D(l,t))}),k.value="")}e||(i.value=-1),C.value=!e}}),se=y(()=>typeof l.counterValue=="function"?l.counterValue(u.value):typeof l.counterValue=="number"?l.counterValue:l.multiple?u.value.length:d.value.length),{filteredItems:A,getMatches:re}=$e(l,te,()=>C.value?"":d.value),p=y(()=>l.hideSelected?A.value.filter(e=>!u.value.some(a=>a.value===e.value)):A.value),E=y(()=>l.hideNoData&&!p.value.length||P.isReadonly.value||P.isDisabled.value),O=J(l,"menu"),r=y({get:()=>O.value,set:e=>{var a;O.value&&!e&&((a=j.value)!=null&&a.ΨopenChildren.size)||e&&E.value||(O.value=e)}}),q=Re(()=>r.value?l.closeText:l.openText);I(k,e=>{L?Q(()=>L=!1):x.value&&!r.value&&(r.value=!0),ae("update:search",e)}),I(u,e=>{var a;!l.multiple&&!V.value&&(k.value=((a=e[0])==null?void 0:a.title)??"")});const ce=y(()=>u.value.map(e=>e.value)),B=y(()=>{var a;return(l.autoSelectFirst===!0||l.autoSelectFirst==="exact"&&d.value===((a=p.value[0])==null?void 0:a.title))&&p.value.length>0&&!C.value&&!N.value}),U=M(),ve=pe(U,b);function de(e){L=!0,l.openOnClear&&(r.value=!0)}function fe(){E.value||(r.value=!0)}function me(e){E.value||(x.value&&(e.preventDefault(),e.stopPropagation()),r.value=!r.value)}function be(e){var a;e.key!==" "&&Z(e)&&((a=b.value)==null||a.focus())}function he(e){var t,c,f,g;if(Be(e)||P.isReadonly.value)return;const a=(t=b.value)==null?void 0:t.selectionStart,s=u.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(e.key)&&e.preventDefault(),["Enter","ArrowDown"].includes(e.key)&&(r.value=!0),["Escape"].includes(e.key)&&(r.value=!1),["Enter","Escape","Tab"].includes(e.key)&&(B.value&&["Enter","Tab"].includes(e.key)&&!u.value.some(n=>{let{value:w}=n;return w===p.value[0].value})&&h(A.value[0]),C.value=!0),e.key==="ArrowDown"&&B.value&&((c=U.value)==null||c.focus("next")),e.key==="Enter"&&d.value&&(h(D(l,d.value)),V.value&&(k.value="")),["Backspace","Delete"].includes(e.key)){if(!l.multiple&&V.value&&u.value.length>0&&!d.value)return h(u.value[0],!1);if(~i.value){e.preventDefault();const n=i.value;h(u.value[i.value],!1),i.value=n>=s-1?s-2:n}else e.key==="Backspace"&&!d.value&&(i.value=s-1);return}if(l.multiple)if(e.key==="ArrowLeft"){if(i.value<0&&a&&a>0)return;const n=i.value>-1?i.value-1:s-1;u.value[n]?i.value=n:(i.value=-1,(f=b.value)==null||f.setSelectionRange(d.value.length,d.value.length))}else if(e.key==="ArrowRight"){if(i.value<0)return;const n=i.value+1;u.value[n]?i.value=n:(i.value=-1,(g=b.value)==null||g.setSelectionRange(0,0))}else~i.value&&Z(e)&&(i.value=-1)}function ge(){var e;l.eager&&((e=K.value)==null||e.calculateVisibleItems())}function xe(){var e;x.value&&(C.value=!0,(e=b.value)==null||e.focus())}function h(e){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!e||e.props.disabled))if(l.multiple){const s=u.value.findIndex(c=>(l.valueComparator||W)(c.value,e.value)),t=a??!~s;if(~s){const c=t?[...u.value,e]:[...u.value];c.splice(s,1),u.value=c}else t&&(u.value=[...u.value,e]);l.clearOnSelect&&(d.value="")}else{const s=a!==!1;u.value=s?[e]:[],k.value=s&&!V.value?e.title:"",Q(()=>{r.value=!1,C.value=!0})}}function Ve(e){x.value=!0,setTimeout(()=>{N.value=!0})}function ye(e){N.value=!1}function Ce(e){(e==null||e===""&&!l.multiple&&!V.value)&&(u.value=[])}return I(x,(e,a)=>{if(!(e||e===a)&&(i.value=-1,r.value=!1,d.value)){if(l.multiple){h(D(l,d.value));return}if(!V.value)return;u.value.some(s=>{let{title:t}=s;return t===d.value})?k.value="":h(D(l,d.value))}}),I(r,()=>{if(!l.hideSelected&&r.value&&u.value.length){const e=p.value.findIndex(a=>u.value.some(s=>(l.valueComparator||W)(s.value,a.value)));He&&window.requestAnimationFrame(()=>{var a;e>=0&&((a=K.value)==null||a.scrollToIndex(e))})}}),I(()=>l.items,(e,a)=>{r.value||x.value&&!a.length&&e.length&&(r.value=!0)}),Ae(()=>{const e=!!(!l.hideNoData||p.value.length||o["prepend-item"]||o["append-item"]||o["no-data"]),a=u.value.length>0,s=X.filterProps(l);return v(X,S({ref:b},s,{modelValue:d.value,"onUpdate:modelValue":[t=>d.value=t,Ce],focused:x.value,"onUpdate:focused":t=>x.value=t,validationValue:u.externalValue,counterValue:se.value,dirty:a,class:["v-combobox",{"v-combobox--active-menu":r.value,"v-combobox--chips":!!l.chips,"v-combobox--selection-slot":!!V.value,"v-combobox--selecting-index":i.value>-1,[`v-combobox--${l.multiple?"multiple":"single"}`]:!0},l.class],style:l.style,readonly:P.isReadonly.value,placeholder:a?void 0:l.placeholder,"onClick:clear":de,"onMousedown:control":fe,onKeydown:he}),{...o,default:()=>v(z,null,[v(Xe,S({ref:j,modelValue:r.value,"onUpdate:modelValue":t=>r.value=t,activator:"parent",contentClass:"v-combobox__content",disabled:E.value,eager:l.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:l.transition,onAfterEnter:ge,onAfterLeave:xe},l.menuProps),{default:()=>[e&&v(Qe,S({ref:U,selected:ce.value,selectStrategy:l.multiple?"independent":"single-independent",onMousedown:t=>t.preventDefault(),onKeydown:be,onFocusin:Ve,onFocusout:ye,tabindex:"-1","aria-live":"polite",color:l.itemColor??l.color},ve,l.listProps),{default:()=>{var t,c,f;return[(t=o["prepend-item"])==null?void 0:t.call(o),!p.value.length&&!l.hideNoData&&(((c=o["no-data"])==null?void 0:c.call(o))??v(ee,{key:"no-data",title:_(l.noDataText)},null)),v(we,{ref:K,renderless:!0,items:p.value,itemKey:"value"},{default:g=>{var G;let{item:n,index:w,itemRef:m}=g;const $=S(n.props,{ref:m,key:n.value,active:B.value&&w===0?!0:void 0,onClick:()=>h(n,null)});return((G=o.item)==null?void 0:G.call(o,{item:n,index:w,props:$}))??v(ee,S($,{role:"option"}),{prepend:T=>{let{isSelected:ke}=T;return v(z,null,[l.multiple&&!l.hideSelected?v(Te,{key:n.value,modelValue:ke,ripple:!1,tabindex:"-1"},null):void 0,n.props.prependAvatar&&v(Me,{image:n.props.prependAvatar},null),n.props.prependIcon&&v(Y,{icon:n.props.prependIcon},null)])},title:()=>{var T;return C.value?n.title:Ge("v-combobox",n.title,(T=re(n))==null?void 0:T.title)}})}}),(f=o["append-item"])==null?void 0:f.call(o)]}})]}),u.value.map((t,c)=>{function f(m){m.stopPropagation(),m.preventDefault(),h(t,!1)}const g={"onClick:close":f,onKeydown(m){m.key!=="Enter"&&m.key!==" "||(m.preventDefault(),m.stopPropagation(),f(m))},onMousedown(m){m.preventDefault(),m.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},n=R.value?!!o.chip:!!o.selection,w=n?_e(R.value?o.chip({item:t,index:c,props:g}):o.selection({item:t,index:c})):void 0;if(!(n&&!w))return v("div",{key:t.value,class:["v-combobox__selection",c===i.value&&["v-combobox__selection--selected",oe.value]],style:c===i.value?ie.value:{}},[R.value?o.chip?v(Ne,{key:"chip-defaults",defaults:{VChip:{closable:l.closableChips,size:"small",text:t.title}}},{default:()=>[w]}):v(Ye,S({key:"chip",closable:l.closableChips,size:"small",text:t.title,disabled:t.props.disabled},g),null):w??v("span",{class:"v-combobox__selection-text"},[t.title,l.multiple&&c<u.value.length-1&&v("span",{class:"v-combobox__selection-comma"},[Ke(",")])])])})]),"append-inner":function(){var g,n;for(var t=arguments.length,c=new Array(t),f=0;f<t;f++)c[f]=arguments[f];return v(z,null,[(g=o["append-inner"])==null?void 0:g.call(o,...c),(!l.hideNoData||l.items.length)&&l.menuIcon?v(Y,{class:"v-combobox__menu-icon",color:(n=b.value)==null?void 0:n.fieldIconColor,icon:l.menuIcon,onMousedown:me,onClick:Ee,"aria-label":_(q.value),title:_(q.value),tabindex:"-1"},null):void 0])}})}),Le({isFocused:x,isPristine:C,menu:r,search:d,selectionIndex:i,filteredItems:A,select:h},b)}});export{ol as V};