1
0
mirror of https://github.com/ZeroCatDev/Classworks.git synced 2026-08-12 09:20:31 +00:00
Classworks/assets/VAutocomplete-bB7Ga8jP.js

2 lines
11 KiB
JavaScript

import{h as ze,f as Ue,V as ue,i as $e}from"./VTextField-jDykTfh9.js";import{u as qe,a as je,c as Ge,h as He,d as We,e as Je,m as Qe,b as Xe,f as Ye}from"./VSelect-BdFWh1xd.js";import{aD as Ze,G as el,f as ne,p as ll,q as oe,i as al,a2 as tl,o as ul,ac as nl,I as ol}from"./index-BvGH7GyK.js";import{j as il,an as rl,q as J,w as sl,E as cl,u as vl,aK as dl,aL as fl,aM as ie,r as ml,_ as re,p as pl,a5 as hl}from"./vendor-vuetify-KiFW-YAv.js";import{V as gl}from"./VMenu-CEn1TBeC.js";import{V as yl}from"./VSheet-PSmzyJOR.js";import{V as Vl}from"./VCheckboxBtn-D_PchAC2.js";import{V as se}from"./VChip-CyVmT8se.js";import{o as U,I as ce,j as m,k as F,F as Q,m as I,N as kl,n as bl,a1 as Cl,s as P,e as w,b as M,t as Sl}from"./vendor-vue-Hxtt57UU.js";const Il=pl({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:Boolean,search:String,...Qe({filterKeys:["title"]}),...Je(),...hl($e({modelValue:null,role:"combobox"}),["validationValue","dirty"])},"VAutocomplete"),Tl=il()({name:"VAutocomplete",props:Il(),emits:{"update:focused":l=>!0,"update:search":l=>!0,"update:modelValue":l=>!0,"update:menu":l=>!0,"item:added":l=>!0,"item:removed":l=>!0},setup(l,ve){let{emit:x,slots:t}=ve;const{t:de}=rl(),p=M(),V=P(!1),k=P(!0),$=P(!1),_=M(),q=M(),c=P(-1),D=P(null),{items:j,transformIn:fe,transformOut:me}=Ze(l),{textColorClasses:pe,textColorStyles:he}=el(()=>{var e;return(e=p.value)==null?void 0:e.color}),{InputIcon:ge}=ze(l),v=J(l,"search",""),u=J(l,"modelValue",[],e=>fe(e===null?[null]:sl(e)),e=>{const a=me(e);return l.multiple?a:a[0]??null}),ye=w(()=>typeof l.counterValue=="function"?l.counterValue(u.value):typeof l.counterValue=="number"?l.counterValue:u.value.length),A=Ue(l),{filteredItems:B,getMatches:Ve}=qe(l,j,()=>D.value??(k.value?"":v.value)),b=w(()=>l.hideSelected&&D.value===null?B.value.filter(e=>!u.value.some(a=>a.value===e.value)):B.value),X=Sl(()=>l.closableChips&&!A.isReadonly.value&&!A.isDisabled.value),K=w(()=>!!(l.chips||t.chip)),E=w(()=>K.value||!!t.selection),ke=w(()=>u.value.map(e=>e.props.value)),T=w(()=>b.value.find(e=>e.type==="item"&&!e.props.disabled)),G=w(()=>{var a;return(l.autoSelectFirst===!0||l.autoSelectFirst==="exact"&&v.value===((a=T.value)==null?void 0:a.title))&&b.value.length>0&&!k.value&&!$.value}),N=w(()=>l.hideNoData&&!b.value.length||A.isReadonly.value||A.isDisabled.value),H=J(l,"menu"),d=w({get:()=>H.value,set:e=>{var a;H.value&&!e&&((a=_.value)!=null&&a.ΨopenChildren.size)||e&&N.value||(H.value=e)}}),{menuId:be,ariaExpanded:Ce,ariaControls:Se}=je(l,d),L=M(),Y=M(),Z=M(),Ie=We(L,p),we=Ye(d,()=>{var e;return(e=_.value)==null?void 0:e.contentEl},()=>{var e;return(e=p.value)==null?void 0:e.controlRef}),{onTabKeydown:xe}=Xe({groups:[{type:"element",contentRef:Y},{type:"list",contentRef:L,displayItemsCount:()=>b.value.length},{type:"element",contentRef:Z}],onLeave:()=>{var e;d.value=!1,(e=p.value)==null||e.focus()}});function Fe(e){l.openOnClear&&(d.value=!0),v.value=""}function Re(){N.value||(d.value=!0)}function De(e){N.value||(V.value&&(e.preventDefault(),e.stopPropagation()),d.value=!d.value)}function Ae(e){var a,n;e.key==="Tab"&&xe(e),(a=L.value)!=null&&a.$el.contains(e.target)&&(ie(e)||e.key==="Backspace")&&((n=p.value)==null||n.focus())}function Pe(e){var f,o,h,y,i;if(A.isReadonly.value)return;const a=(f=p.value)==null?void 0:f.selectionStart,n=u.value.length;if(["Enter","ArrowDown","ArrowUp"].includes(e.key)&&e.preventDefault(),["Enter","ArrowDown"].includes(e.key)&&(d.value=!0),["Escape"].includes(e.key)&&(d.value=!1),G.value&&["Enter","Tab"].includes(e.key)&&T.value&&!u.value.some(r=>{let{value:C}=r;return C===T.value.value})&&R(T.value),e.key==="ArrowDown"&&G.value&&((o=L.value)==null||o.focus("next")),["Backspace","Delete"].includes(e.key)){if(!l.multiple&&E.value&&u.value.length>0&&!v.value)return R(u.value[0],!1);if(~c.value){e.preventDefault();const r=c.value;R(u.value[c.value],!1),c.value=r>=n-1?n-2:r}else e.key==="Backspace"&&!v.value&&(c.value=n-1);return}if(l.multiple)if(e.key==="ArrowLeft"){if(c.value<0&&a&&a>0)return;const r=c.value>-1?c.value-1:n-1;if(u.value[r])c.value=r;else{const C=((h=v.value)==null?void 0:h.length)??null;c.value=-1,(y=p.value)==null||y.setSelectionRange(C,C)}}else if(e.key==="ArrowRight"){if(c.value<0)return;const r=c.value+1;u.value[r]?c.value=r:(c.value=-1,(i=p.value)==null||i.setSelectionRange(0,0))}else~c.value&&ie(e)&&(c.value=-1)}function Me(e){if(re(p.value,":autofill")||re(p.value,":-webkit-autofill")){const a=j.value.find(n=>n.title===e.target.value);a&&R(a)}}function Ee(){var e;l.eager&&((e=q.value)==null||e.calculateVisibleItems())}function Te(){var e;V.value&&(k.value=!0,(e=p.value)==null||e.focus()),D.value=null}function Le(e){V.value=!0,setTimeout(()=>{$.value=!0})}function _e(e){var a;if($.value=!1,!((a=p.value)!=null&&a.$el.contains(e.relatedTarget))){if(we(e))return;V.value=!1}}function Be(e){if(e==null||e===""&&!l.multiple&&!E.value){for(const a of u.value)x("item:removed",a);u.value=[]}}function Ke(e){var n;const a=(n=_.value)==null?void 0:n.contentEl;a!=null&&a.contains(e.relatedTarget)&&(V.value=!0)}const W=P(!1);function R(e){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!e||e.props.disabled)return;const n=l.valueComparator||ml;if(l.multiple){const f=u.value.findIndex(h=>n(h.value,e.value)),o=a??!~f;if(~f){const h=o?[...u.value,e]:[...u.value],[y]=h.splice(f,1);o||x("item:removed",y),u.value=h}else o&&(x("item:added",e),u.value=[...u.value,e]);l.clearOnSelect&&(v.value="")}else{const f=a!==!1,o=u.value[0];f?(o&&!n(o.value,e.value)?(x("item:removed",o),x("item:added",e)):o||x("item:added",e),u.value=[e]):(o&&x("item:removed",o),u.value=[]),D.value=k.value?"":v.value??"",v.value=f&&!E.value?e.title:"",ce(()=>{d.value=!1,k.value=!0})}}return U(V,(e,a)=>{var n;if(e!==a)if(e)W.value=!0,v.value=l.multiple||E.value?"":String(((n=u.value.at(-1))==null?void 0:n.props.title)??""),k.value=!0,ce(()=>W.value=!1);else{if(!l.multiple&&v.value==null){for(const f of u.value)x("item:removed",f);u.value=[]}d.value=!1,!k.value&&v.value&&(D.value=v.value),v.value="",c.value=-1}}),U(v,e=>{!V.value||W.value||(e&&(d.value=!0),k.value=!e)}),U(d,e=>{if(!l.hideSelected&&e&&u.value.length&&k.value){const a=b.value.findIndex(n=>u.value.some(f=>n.value===f.value));cl&&!l.noAutoScroll&&window.requestAnimationFrame(()=>{var n;a>=0&&((n=q.value)==null||n.scrollToIndex(a))})}e&&(D.value=null)}),U(j,(e,a)=>{d.value||V.value&&!a.length&&e.length&&(d.value=!0)}),vl(()=>{const e=!!(!l.hideNoData||b.value.length||t["prepend-item"]||t["append-item"]||t["no-data"]),a=u.value.length>0,n=ue.filterProps(l),f={search:v,filteredItems:B.value};return m(ue,I({ref:p},n,{modelValue:v.value,"onUpdate:modelValue":[o=>v.value=o,Be],focused:V.value,"onUpdate:focused":o=>V.value=o,validationValue:u.externalValue,counterValue:ye.value,dirty:a,onChange:Me,class:["v-autocomplete",`v-autocomplete--${l.multiple?"multiple":"single"}`,{"v-autocomplete--active-menu":d.value,"v-autocomplete--chips":!!l.chips,"v-autocomplete--selection-slot":!!E.value,"v-autocomplete--selecting-index":c.value>-1},l.class],style:l.style,readonly:A.isReadonly.value,placeholder:a?void 0:l.placeholder,"onClick:clear":Fe,"onMousedown:control":Re,onKeydown:Pe,onBlur:Ke,"aria-expanded":Ce.value,"aria-controls":Se.value}),{...t,default:o=>{var y;let{id:h}=o;return F(Q,null,[m(gl,I({id:be.value,ref:_,modelValue:d.value,"onUpdate:modelValue":i=>d.value=i,activator:"parent",disabled:N.value,eager:l.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,onAfterEnter:Ee,onAfterLeave:Te},l.menuProps,{contentClass:["v-autocomplete__content",(y=l.menuProps)==null?void 0:y.contentClass]}),{default:()=>[m(yl,{onFocusin:Le,onKeydown:Ae},{default:()=>[t["menu-header"]&&F("header",{ref:Y},[t["menu-header"](f)]),e&&m(ll,I({key:"autocomplete-list",ref:L,filterable:!0,selected:ke.value,selectStrategy:l.multiple?"independent":"single-independent",onMousedown:i=>i.preventDefault(),onFocusout:_e,tabindex:"-1",selectable:!!b.value.length,"aria-live":"polite","aria-labelledby":`${h.value}-label`,"aria-multiselectable":l.multiple,color:l.itemColor??l.color},Ie,l.listProps),{default:()=>{var i,r,C;return[(i=t["prepend-item"])==null?void 0:i.call(t),!b.value.length&&!l.hideNoData&&(((r=t["no-data"])==null?void 0:r.call(t))??m(oe,{key:"no-data",title:de(l.noDataText)},null)),m(Ge,{ref:q,renderless:!0,items:b.value,itemKey:"value"},{default:O=>{var le,ae,te;let{item:s,index:S,itemRef:g}=O;const ee=I(s.props,{ref:g,key:s.value,active:G.value&&s===T.value?!0:void 0,onClick:()=>R(s,null),"aria-posinset":S+1,"aria-setsize":b.value.length});return s.type==="divider"?((le=t.divider)==null?void 0:le.call(t,{props:s.raw,index:S}))??m(al,I(s.props,{key:`divider-${S}`}),null):s.type==="subheader"?((ae=t.subheader)==null?void 0:ae.call(t,{props:s.raw,index:S}))??m(tl,I(s.props,{key:`subheader-${S}`}),null):((te=t.item)==null?void 0:te.call(t,{item:s,index:S,props:ee}))??m(oe,I(ee,{role:"option"}),{prepend:z=>{let{isSelected:Ne}=z;return F(Q,null,[l.multiple&&!l.hideSelected?m(Vl,{key:s.value,modelValue:Ne,ripple:!1,tabindex:"-1","aria-hidden":!0,onClick:Oe=>Oe.preventDefault()},null):void 0,s.props.prependAvatar&&m(ul,{image:s.props.prependAvatar},null),s.props.prependIcon&&m(ne,{icon:s.props.prependIcon},null)])},title:()=>{var z;return k.value?s.title:He("v-autocomplete",s.title,(z=Ve(s))==null?void 0:z.title)}})}}),(C=t["append-item"])==null?void 0:C.call(t)]}}),t["menu-footer"]&&F("footer",{ref:Z},[t["menu-footer"](f)])]})]}),u.value.map((i,r)=>{function C(g){g.stopPropagation(),g.preventDefault(),R(i,!1)}const O=I(se.filterProps(i.props),{"onClick:close":C,onKeydown(g){g.key!=="Enter"&&g.key!==" "||(g.preventDefault(),g.stopPropagation(),C(g))},onMousedown(g){g.preventDefault(),g.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),s=K.value?!!t.chip:!!t.selection,S=s?fl(K.value?t.chip({item:i,index:r,props:O}):t.selection({item:i,index:r})):void 0;if(!(s&&!S))return F("div",{key:i.value,class:bl(["v-autocomplete__selection",r===c.value&&["v-autocomplete__selection--selected",pe.value]]),style:kl(r===c.value?he.value:{})},[K.value?t.chip?m(nl,{key:"chip-defaults",defaults:{VChip:{closable:X.value,size:"small",text:i.title}}},{default:()=>[S]}):m(se,I({key:"chip",closable:X.value,size:"small",text:i.title,disabled:i.props.disabled},O),null):S??F("span",{class:"v-autocomplete__selection-text"},[i.title,l.multiple&&r<u.value.length-1&&F("span",{class:"v-autocomplete__selection-comma"},[Cl(",")])])])})])},"append-inner":function(){var i,r;for(var o=arguments.length,h=new Array(o),y=0;y<o;y++)h[y]=arguments[y];return F(Q,null,[(i=t["append-inner"])==null?void 0:i.call(t,...h),l.menuIcon?m(ne,{class:"v-autocomplete__menu-icon",color:(r=p.value)==null?void 0:r.fieldIconColor,icon:l.menuIcon,onMousedown:De,onClick:dl,"aria-hidden":!0,tabindex:"-1"},null):void 0,l.appendInnerIcon&&m(ge,{key:"append-icon",name:"appendInner",color:h[0].iconColor.value},null)])}})}),ol({isFocused:V,isPristine:k,menu:d,search:v,filteredItems:B,select:R},p)}});export{Tl as V};