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