2 lines
8.2 KiB
JavaScript
2 lines
8.2 KiB
JavaScript
import{ak as ge,al as Ve,ao as ye,r as P,bJ as w,cW as ke,ap as be,bj as K,bO as xe,c as g,cX as Ce,cY as Se,cZ as we,aM as R,aT as j,c_ as Fe,at as Ie,S as q,g as d,av as y,c2 as Ae,ax as De,bk as Pe,c$ as Re,d0 as Te,d1 as Me,d2 as W,d3 as G,cv as Le,i as x,G as J,d4 as _e,F as U,H as Ee,x as Be,y as X,d5 as Ne,B as Oe,a8 as Ke,d6 as Ue,bb as ze,I as $e,d7 as He,bL as je,n as qe,ai as We,bc as Ge,j as Je}from"./main-BhFWIRV_.js";const Xe=Ve({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:Boolean,search:String,...Te({filterKeys:["title"]}),...Re(),...Pe(Me({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...De({transition:!1})},"VAutocomplete"),Ze=ge()({name:"VAutocomplete",props:Xe(),emits:{"update:focused":l=>!0,"update:search":l=>!0,"update:modelValue":l=>!0,"update:menu":l=>!0},setup(l,Y){let{slots:s}=Y;const{t:T}=ye(),m=P(),p=w(!1),V=w(!0),M=w(!1),z=P(),L=P(),o=w(-1),{items:$,transformIn:Z,transformOut:Q}=ke(l),{textColorClasses:ee,textColorStyles:le}=be(()=>m.value?.color),c=K(l,"search",""),u=K(l,"modelValue",[],e=>Z(e===null?[null]:xe(e)),e=>{const n=Q(e);return l.multiple?n:n[0]??null}),ae=g(()=>typeof l.counterValue=="function"?l.counterValue(u.value):typeof l.counterValue=="number"?l.counterValue:u.value.length),F=Ce(l),{filteredItems:_,getMatches:te}=Se(l,$,()=>V.value?"":c.value),h=g(()=>l.hideSelected?_.value.filter(e=>!u.value.some(n=>n.value===e.value)):_.value),I=g(()=>!!(l.chips||s.chip)),b=g(()=>I.value||!!s.selection),ue=g(()=>u.value.map(e=>e.props.value)),E=g(()=>(l.autoSelectFirst===!0||l.autoSelectFirst==="exact"&&c.value===h.value[0]?.title)&&h.value.length>0&&!V.value&&!M.value),A=g(()=>l.hideNoData&&!h.value.length||F.isReadonly.value||F.isDisabled.value),B=K(l,"menu"),i=g({get:()=>B.value,set:e=>{B.value&&!e&&z.value?.ΨopenChildren.size||e&&A.value||(B.value=e)}}),H=g(()=>i.value?l.closeText:l.openText),N=P(),ne=we(N,m);function oe(e){l.openOnClear&&(i.value=!0),c.value=""}function se(){A.value||(i.value=!0)}function ie(e){A.value||(p.value&&(e.preventDefault(),e.stopPropagation()),i.value=!i.value)}function re(e){(W(e)||e.key==="Backspace")&&m.value?.focus()}function ce(e){if(F.isReadonly.value)return;const n=m.value?.selectionStart,r=u.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(e.key)&&e.preventDefault(),["Enter","ArrowDown"].includes(e.key)&&(i.value=!0),["Escape"].includes(e.key)&&(i.value=!1),E.value&&["Enter","Tab"].includes(e.key)&&!u.value.some(t=>{let{value:a}=t;return a===h.value[0].value})&&k(h.value[0]),e.key==="ArrowDown"&&E.value&&N.value?.focus("next"),["Backspace","Delete"].includes(e.key)){if(!l.multiple&&b.value&&u.value.length>0&&!c.value)return k(u.value[0],!1);if(~o.value){e.preventDefault();const t=o.value;k(u.value[o.value],!1),o.value=t>=r-1?r-2:t}else e.key==="Backspace"&&!c.value&&(o.value=r-1);return}if(l.multiple)if(e.key==="ArrowLeft"){if(o.value<0&&n&&n>0)return;const t=o.value>-1?o.value-1:r-1;if(u.value[t])o.value=t;else{const a=c.value?.length??null;o.value=-1,m.value?.setSelectionRange(a,a)}}else if(e.key==="ArrowRight"){if(o.value<0)return;const t=o.value+1;u.value[t]?o.value=t:(o.value=-1,m.value?.setSelectionRange(0,0))}else~o.value&&W(e)&&(o.value=-1)}function ve(e){if(G(m.value,":autofill")||G(m.value,":-webkit-autofill")){const n=$.value.find(r=>r.title===e.target.value);n&&k(n)}}function de(){l.eager&&L.value?.calculateVisibleItems()}function fe(){p.value&&(V.value=!0,m.value?.focus())}function me(e){p.value=!0,setTimeout(()=>{M.value=!0})}function pe(e){M.value=!1}function he(e){(e==null||e===""&&!l.multiple&&!b.value)&&(u.value=[])}const O=w(!1);function k(e){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!e||e.props.disabled))if(l.multiple){const r=u.value.findIndex(a=>(l.valueComparator||Le)(a.value,e.value)),t=n??!~r;if(~r){const a=t?[...u.value,e]:[...u.value];a.splice(r,1),u.value=a}else t&&(u.value=[...u.value,e]);l.clearOnSelect&&(c.value="")}else{const r=n!==!1;u.value=r?[e]:[],c.value=r&&!b.value?e.title:"",j(()=>{i.value=!1,V.value=!0})}}return R(p,(e,n)=>{e!==n&&(e?(O.value=!0,c.value=l.multiple||b.value?"":String(u.value.at(-1)?.props.title??""),V.value=!0,j(()=>O.value=!1)):(!l.multiple&&c.value==null&&(u.value=[]),i.value=!1,(l.multiple||b.value)&&(c.value=""),o.value=-1))}),R(c,e=>{!p.value||O.value||(e&&(i.value=!0),V.value=!e)}),R(i,()=>{if(!l.hideSelected&&i.value&&u.value.length){const e=h.value.findIndex(n=>u.value.some(r=>n.value===r.value));Fe&&window.requestAnimationFrame(()=>{e>=0&&L.value?.scrollToIndex(e)})}}),R(()=>l.items,(e,n)=>{i.value||p.value&&!n.length&&e.length&&(i.value=!0)}),Ie(()=>{const e=!!(!l.hideNoData||h.value.length||s["prepend-item"]||s["append-item"]||s["no-data"]),n=u.value.length>0,r=q.filterProps(l);return d(q,y({ref:m},r,{modelValue:c.value,"onUpdate:modelValue":[t=>c.value=t,he],focused:p.value,"onUpdate:focused":t=>p.value=t,validationValue:u.externalValue,counterValue:ae.value,dirty:n,onChange:ve,class:["v-autocomplete",`v-autocomplete--${l.multiple?"multiple":"single"}`,{"v-autocomplete--active-menu":i.value,"v-autocomplete--chips":!!l.chips,"v-autocomplete--selection-slot":!!b.value,"v-autocomplete--selecting-index":o.value>-1},l.class],style:l.style,readonly:F.isReadonly.value,placeholder:n?void 0:l.placeholder,"onClick:clear":oe,"onMousedown:control":se,onKeydown:ce}),{...s,default:()=>x(U,null,[d(Ee,y({ref:z,modelValue:i.value,"onUpdate:modelValue":t=>i.value=t,activator:"parent",contentClass:"v-autocomplete__content",disabled:A.value,eager:l.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:l.transition,onAfterEnter:de,onAfterLeave:fe},l.menuProps),{default:()=>[e&&d(Be,y({ref:N,filterable:!0,selected:ue.value,selectStrategy:l.multiple?"independent":"single-independent",onMousedown:t=>t.preventDefault(),onKeydown:re,onFocusin:me,onFocusout:pe,tabindex:"-1","aria-live":"polite",color:l.itemColor??l.color},ne,l.listProps),{default:()=>[s["prepend-item"]?.(),!h.value.length&&!l.hideNoData&&(s["no-data"]?.()??d(X,{key:"no-data",title:T(l.noDataText)},null)),d(Ne,{ref:L,renderless:!0,items:h.value,itemKey:"value"},{default:t=>{let{item:a,index:v,itemRef:D}=t;const C=y(a.props,{ref:D,key:a.value,active:E.value&&v===0?!0:void 0,onClick:()=>k(a,null)});return a.type==="divider"?s.divider?.({props:a.raw,index:v})??d(Oe,y(a.props,{key:`divider-${v}`}),null):a.type==="subheader"?s.subheader?.({props:a.raw,index:v})??d(Ke,y(a.props,{key:`subheader-${v}`}),null):s.item?.({item:a,index:v,props:C})??d(X,y(C,{role:"option"}),{prepend:S=>{let{isSelected:f}=S;return x(U,null,[l.multiple&&!l.hideSelected?d(ze,{key:a.value,modelValue:f,ripple:!1,tabindex:"-1"},null):void 0,a.props.prependAvatar&&d($e,{image:a.props.prependAvatar},null),a.props.prependIcon&&d(J,{icon:a.props.prependIcon},null)])},title:()=>V.value?a.title:Ue("v-autocomplete",a.title,te(a)?.title)})}}),s["append-item"]?.()]})]}),u.value.map((t,a)=>{function v(f){f.stopPropagation(),f.preventDefault(),k(t,!1)}const D={"onClick:close":v,onKeydown(f){f.key!=="Enter"&&f.key!==" "||(f.preventDefault(),f.stopPropagation(),v(f))},onMousedown(f){f.preventDefault(),f.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},C=I.value?!!s.chip:!!s.selection,S=C?He(I.value?s.chip({item:t,index:a,props:D}):s.selection({item:t,index:a})):void 0;if(!(C&&!S))return x("div",{key:t.value,class:qe(["v-autocomplete__selection",a===o.value&&["v-autocomplete__selection--selected",ee.value]]),style:je(a===o.value?le.value:{})},[I.value?s.chip?d(Ge,{key:"chip-defaults",defaults:{VChip:{closable:l.closableChips,size:"small",text:t.title}}},{default:()=>[S]}):d(We,y({key:"chip",closable:l.closableChips,size:"small",text:t.title,disabled:t.props.disabled},D),null):S??x("span",{class:"v-autocomplete__selection-text"},[t.title,l.multiple&&a<u.value.length-1&&x("span",{class:"v-autocomplete__selection-comma"},[Je(",")])])])})]),"append-inner":function(){for(var t=arguments.length,a=new Array(t),v=0;v<t;v++)a[v]=arguments[v];return x(U,null,[s["append-inner"]?.(...a),l.menuIcon?d(J,{class:"v-autocomplete__menu-icon",color:m.value?.fieldIconColor,icon:l.menuIcon,onMousedown:ie,onClick:_e,"aria-label":T(H.value),title:T(H.value),tabindex:"-1"},null):void 0])}})}),Ae({isFocused:p,isPristine:V,menu:i,search:c,filteredItems:_,select:k},m)}});export{Ze as V};
|