1
0
mirror of https://github.com/ZeroCatDev/Classworks.git synced 2026-03-21 09:13:10 +00:00
Classworks/assets/VAutocomplete-CrWVUMTj.js

2 lines
10 KiB
JavaScript

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