Files
aula-manager/chunk-C64o1gyF.js
2026-07-05 17:54:50 +07:00

2 lines
12 KiB
JavaScript

import{Q as H,h as Be,b as $e}from"./chunk-CusLMHK2.js";import{R as Me}from"./chunk-C7mbSHwF.js";import{a4 as p,a5 as de,C as ce,I as Ee,K as Qe,H as De,B as fe}from"./app-CPb3bToC.js";import{u as We}from"./chunk-Bzmka5Fh.js";import{h as je,m as be,g as T,a as f,x as he,O as Fe,Z as Oe,l as h,w as z,p as Ke,z as Ve,A as ze}from"./chunk-DhYw-kuD.js";import{Q as He}from"./chunk-DOJZQpJk.js";import{u as ee,a as ve}from"./chunk-xwEmqXCW.js";let Ne=0;const Ue=["click","keydown"],Ge={icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:()=>`t_${Ne++}`},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String,ripple:{type:[Boolean,Object],default:!0}};function Xe(e,C,y,c){const r=je(de,p);if(r===p)return console.error("QTab/QRouteTab component needs to be child of QTabs"),p;const{proxy:N}=be(),M=T(null),D=T(null),W=T(null),U=f(()=>e.disable===!0||e.ripple===!1?!1:Object.assign({keyCodes:[13,32],early:!0},e.ripple===!0?{}:e.ripple)),A=f(()=>r.currentModel.value===e.name),G=f(()=>"q-tab relative-position self-stretch flex flex-center text-center"+(A.value===!0?" q-tab--active"+(r.tabProps.value.activeClass?" "+r.tabProps.value.activeClass:"")+(r.tabProps.value.activeColor?` text-${r.tabProps.value.activeColor}`:"")+(r.tabProps.value.activeBgColor?` bg-${r.tabProps.value.activeBgColor}`:""):" q-tab--inactive")+(e.icon&&e.label&&r.tabProps.value.inlineLabel===!1?" q-tab--full":"")+(e.noCaps===!0||r.tabProps.value.noCaps===!0?" q-tab--no-caps":"")+(e.disable===!0?" disabled":" q-focusable q-hoverable cursor-pointer")+(c!==void 0?c.linkClass.value:"")),I=f(()=>"q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable "+(r.tabProps.value.inlineLabel===!0?"row no-wrap q-tab__content--inline":"column")+(e.contentClass!==void 0?` ${e.contentClass}`:"")),g=f(()=>e.disable===!0||r.hasFocus.value===!0||A.value===!1&&r.hasActiveTab.value===!0?-1:e.tabindex||0);function q(l,b){if(b!==!0&&M.value!==null&&M.value.focus(),e.disable===!0){c!==void 0&&c.hasRouterLink.value===!0&&ce(l);return}if(c===void 0){r.updateModel({name:e.name}),y("click",l);return}if(c.hasRouterLink.value===!0){const m=(v={})=>{let w;const _=v.to===void 0||De(v.to,e.to)===!0?r.avoidRouteWatcher=We():null;return c.navigateToRouterLink(l,{...v,returnRouterError:!0}).catch(S=>{w=S}).then(S=>{if(_===r.avoidRouteWatcher&&(r.avoidRouteWatcher=!1,w===void 0&&(S===void 0||S.message!==void 0&&S.message.startsWith("Avoided redundant navigation")===!0)&&r.updateModel({name:e.name})),v.returnRouterError===!0)return w!==void 0?Promise.reject(w):S})};y("click",l,m),l.defaultPrevented!==!0&&m();return}y("click",l)}function L(l){Ee(l,[13,32])?q(l,!0):Qe(l)!==!0&&l.keyCode>=35&&l.keyCode<=40&&l.altKey!==!0&&l.metaKey!==!0&&r.onKbdNavigate(l.keyCode,N.$el)===!0&&ce(l),y("keydown",l)}function E(){const l=r.tabProps.value.narrowIndicator,b=[],m=h("div",{ref:W,class:["q-tab__indicator",r.tabProps.value.indicatorClass]});e.icon!==void 0&&b.push(h(H,{class:"q-tab__icon",name:e.icon})),e.label!==void 0&&b.push(h("div",{class:"q-tab__label"},e.label)),e.alert!==!1&&b.push(e.alertIcon!==void 0?h(H,{class:"q-tab__alert-icon",color:e.alert!==!0?e.alert:void 0,name:e.alertIcon}):h("div",{class:"q-tab__alert"+(e.alert!==!0?` text-${e.alert}`:"")})),l===!0&&b.push(m);const v=[h("div",{class:"q-focus-helper",tabindex:-1,ref:M}),h("div",{class:I.value},Be(C.default,b))];return l===!1&&v.push(m),v}const x={name:f(()=>e.name),rootRef:D,tabIndicatorRef:W,routeData:c};he(()=>{r.unregisterTab(x)}),Fe(()=>{r.registerTab(x)});function j(l,b){const m={ref:D,class:G.value,tabindex:g.value,role:"tab","aria-selected":A.value===!0?"true":"false","aria-disabled":e.disable===!0?"true":void 0,onClick:q,onKeydown:L,...b};return Oe(h(l,m,E()),[[Me,U.value]])}return{renderTab:j,$tabs:r}}const ot=fe({name:"QTab",props:Ge,emits:Ue,setup(e,{slots:C,emit:y}){const{renderTab:c}=Xe(e,C,y);return()=>c("div")}});let ge=!1;{const e=document.createElement("div");e.setAttribute("dir","rtl"),Object.assign(e.style,{width:"1px",height:"1px",overflow:"auto"});const C=document.createElement("div");Object.assign(C.style,{width:"1000px",height:"1px"}),document.body.appendChild(e),e.appendChild(C),e.scrollLeft=-1e3,ge=e.scrollLeft>=0,e.remove()}function Ze(e,C,y){const c=y===!0?["left","right"]:["top","bottom"];return`absolute-${C===!0?c[0]:c[1]}${e?` text-${e}`:""}`}const Je=["left","center","right","justify"],rt=fe({name:"QTabs",props:{modelValue:[Number,String],align:{type:String,default:"center",validator:e=>Je.includes(e)},breakpoint:{type:[String,Number],default:600},vertical:Boolean,shrink:Boolean,stretch:Boolean,activeClass:String,activeColor:String,activeBgColor:String,indicatorColor:String,leftIcon:String,rightIcon:String,outsideArrows:Boolean,mobileArrows:Boolean,switchIndicator:Boolean,narrowIndicator:Boolean,inlineLabel:Boolean,noCaps:Boolean,dense:Boolean,contentClass:String,"onUpdate:modelValue":[Function,Array]},setup(e,{slots:C,emit:y}){const{proxy:c}=be(),{$q:r}=c,{registerTick:N}=ee(),{registerTick:M}=ee(),{registerTick:D}=ee(),{registerTimeout:W,removeTimeout:U}=ve(),{registerTimeout:A,removeTimeout:G}=ve(),I=T(null),g=T(null),q=T(e.modelValue),L=T(!1),E=T(!0),x=T(!1),j=T(!1),l=[],b=T(0),m=T(!1);let v=null,w=null,_;const S=f(()=>({activeClass:e.activeClass,activeColor:e.activeColor,activeBgColor:e.activeBgColor,indicatorClass:Ze(e.indicatorColor,e.switchIndicator,e.vertical),narrowIndicator:e.narrowIndicator,inlineLabel:e.inlineLabel,noCaps:e.noCaps})),me=f(()=>{const t=b.value,a=q.value;for(let n=0;n<t;n++)if(l[n].name.value===a)return!0;return!1}),Te=f(()=>`q-tabs__content--align-${L.value===!0?"left":j.value===!0?"justify":e.align}`),we=f(()=>`q-tabs row no-wrap items-center q-tabs--${L.value===!0?"":"not-"}scrollable q-tabs--${e.vertical===!0?"vertical":"horizontal"} q-tabs__arrows--${e.outsideArrows===!0?"outside":"inside"} q-tabs--mobile-with${e.mobileArrows===!0?"":"out"}-arrows`+(e.dense===!0?" q-tabs--dense":"")+(e.shrink===!0?" col-shrink":"")+(e.stretch===!0?" self-stretch":"")),Ce=f(()=>"q-tabs__content scroll--mobile row no-wrap items-center self-stretch hide-scrollbar relative-position "+Te.value+(e.contentClass!==void 0?` ${e.contentClass}`:"")),F=f(()=>e.vertical===!0?{container:"height",content:"offsetHeight",scroll:"scrollHeight"}:{container:"width",content:"offsetWidth",scroll:"scrollWidth"}),O=f(()=>e.vertical!==!0&&r.lang.rtl===!0),X=f(()=>ge===!1&&O.value===!0);z(O,$),z(()=>e.modelValue,t=>{Z({name:t,setCurrent:!0,skipEmit:!0})}),z(()=>e.outsideArrows,K);function Z({name:t,setCurrent:a,skipEmit:n}){q.value!==t&&(n!==!0&&e["onUpdate:modelValue"]!==void 0&&y("update:modelValue",t),(a===!0||e["onUpdate:modelValue"]===void 0)&&(ye(q.value,t),q.value=t))}function K(){N(()=>{te({width:I.value.offsetWidth,height:I.value.offsetHeight})})}function te(t){if(F.value===void 0||g.value===null)return;const a=t[F.value.container],n=Math.min(g.value[F.value.scroll],Array.prototype.reduce.call(g.value.children,(s,i)=>s+(i[F.value.content]||0),0)),u=a>0&&n>a;L.value=u,u===!0&&M($),j.value=a<parseInt(e.breakpoint,10)}function ye(t,a){const n=t!=null&&t!==""?l.find(s=>s.name.value===t):null,u=a!=null&&a!==""?l.find(s=>s.name.value===a):null;if(V===!0)V=!1;else if(n&&u){const s=n.tabIndicatorRef.value,i=u.tabIndicatorRef.value;v!==null&&(clearTimeout(v),v=null),s.style.transition="none",s.style.transform="none",i.style.transition="none",i.style.transform="none";const o=s.getBoundingClientRect(),d=i.getBoundingClientRect();i.style.transform=e.vertical===!0?`translate3d(0,${o.top-d.top}px,0) scale3d(1,${d.height?o.height/d.height:1},1)`:`translate3d(${o.left-d.left}px,0,0) scale3d(${d.width?o.width/d.width:1},1,1)`,D(()=>{v=setTimeout(()=>{v=null,i.style.transition="transform .25s cubic-bezier(.4, 0, .2, 1)",i.style.transform="none"},70)})}u&&L.value===!0&&B(u.rootRef.value)}function B(t){const{left:a,width:n,top:u,height:s}=g.value.getBoundingClientRect(),i=t.getBoundingClientRect();let o=e.vertical===!0?i.top-u:i.left-a;if(o<0){g.value[e.vertical===!0?"scrollTop":"scrollLeft"]+=Math.floor(o),$();return}o+=e.vertical===!0?i.height-s:i.width-n,o>0&&(g.value[e.vertical===!0?"scrollTop":"scrollLeft"]+=Math.ceil(o),$())}function $(){const t=g.value;if(t===null)return;const a=t.getBoundingClientRect(),n=e.vertical===!0?t.scrollTop:Math.abs(t.scrollLeft);O.value===!0?(E.value=Math.ceil(n+a.width)<t.scrollWidth-1,x.value=n>0):(E.value=n>0,x.value=e.vertical===!0?Math.ceil(n+a.height)<t.scrollHeight:Math.ceil(n+a.width)<t.scrollWidth)}function ae(t){w!==null&&clearInterval(w),w=setInterval(()=>{Re(t)===!0&&k()},5)}function ne(){ae(X.value===!0?Number.MAX_SAFE_INTEGER:0)}function le(){ae(X.value===!0?0:Number.MAX_SAFE_INTEGER)}function k(){w!==null&&(clearInterval(w),w=null)}function qe(t,a){const n=Array.prototype.filter.call(g.value.children,d=>d===a||d.matches&&d.matches(".q-tab.q-focusable")===!0),u=n.length;if(u===0)return;if(t===36)return B(n[0]),n[0].focus(),!0;if(t===35)return B(n[u-1]),n[u-1].focus(),!0;const s=t===(e.vertical===!0?38:37),i=t===(e.vertical===!0?40:39),o=s===!0?-1:i===!0?1:void 0;if(o!==void 0){const d=O.value===!0?-1:1,R=n.indexOf(a)+o*d;return R>=0&&R<u&&(B(n[R]),n[R].focus({preventScroll:!0})),!0}}const _e=f(()=>X.value===!0?{get:t=>Math.abs(t.scrollLeft),set:(t,a)=>{t.scrollLeft=-a}}:e.vertical===!0?{get:t=>t.scrollTop,set:(t,a)=>{t.scrollTop=a}}:{get:t=>t.scrollLeft,set:(t,a)=>{t.scrollLeft=a}});function Re(t){const a=g.value,{get:n,set:u}=_e.value;let s=!1,i=n(a);const o=t<i?-1:1;return i+=o*5,i<0?(s=!0,i=0):(o===-1&&i<=t||o===1&&i>=t)&&(s=!0,i=t),u(a,i),$(),s}function oe(t,a){for(const n in t)if(t[n]!==a[n])return!1;return!0}function Le(){let t=null,a={matchedLen:0,queryDiff:9999,hrefLen:0};const n=l.filter(o=>o.routeData!==void 0&&o.routeData.hasRouterLink.value===!0),{hash:u,query:s}=c.$route,i=Object.keys(s).length;for(const o of n){const d=o.routeData.exact.value===!0;if(o.routeData[d===!0?"linkIsExactActive":"linkIsActive"].value!==!0)continue;const{hash:R,query:J,matched:Ae,href:xe}=o.routeData.resolvedLink.value,Y=Object.keys(J).length;if(d===!0){if(R!==u||Y!==i||oe(s,J)===!1)continue;t=o.name.value;break}if(R!==""&&R!==u||Y!==0&&oe(J,s)===!1)continue;const P={matchedLen:Ae.length,queryDiff:i-Y,hrefLen:xe.length-R.length};if(P.matchedLen>a.matchedLen){t=o.name.value,a=P;continue}else if(P.matchedLen!==a.matchedLen)continue;if(P.queryDiff<a.queryDiff)t=o.name.value,a=P;else if(P.queryDiff!==a.queryDiff)continue;P.hrefLen>a.hrefLen&&(t=o.name.value,a=P)}if(t===null&&l.some(o=>o.routeData===void 0&&o.name.value===q.value)===!0){V=!1;return}Z({name:t,setCurrent:!0})}function Se(t){if(U(),m.value!==!0&&I.value!==null&&t.target&&typeof t.target.closest=="function"){const a=t.target.closest(".q-tab");a&&I.value.contains(a)===!0&&(m.value=!0,L.value===!0&&B(a))}}function ke(){W(()=>{m.value=!1},30)}function Q(){ie.avoidRouteWatcher===!1?A(Le):G()}function re(){if(_===void 0){const t=z(()=>c.$route.fullPath,Q);_=()=>{t(),_=void 0}}}function Pe(t){l.push(t),b.value++,K(),t.routeData===void 0||c.$route===void 0?A(()=>{if(L.value===!0){const a=q.value,n=a!=null&&a!==""?l.find(u=>u.name.value===a):null;n&&B(n.rootRef.value)}}):(re(),t.routeData.hasRouterLink.value===!0&&Q())}function Ie(t){l.splice(l.indexOf(t),1),b.value--,K(),_!==void 0&&t.routeData!==void 0&&(l.every(a=>a.routeData===void 0)===!0&&_(),Q())}const ie={currentModel:q,tabProps:S,hasFocus:m,hasActiveTab:me,registerTab:Pe,unregisterTab:Ie,verifyRouteModel:Q,updateModel:Z,onKbdNavigate:qe,avoidRouteWatcher:!1};Ke(de,ie);function ue(){v!==null&&clearTimeout(v),k(),_!==void 0&&_()}let se,V;return he(ue),Ve(()=>{se=_!==void 0,ue()}),ze(()=>{se===!0&&(re(),V=!0,Q()),K()}),()=>h("div",{ref:I,class:we.value,role:"tablist",onFocusin:Se,onFocusout:ke},[h(He,{onResize:te}),h("div",{ref:g,class:Ce.value,onScroll:$},$e(C.default)),h(H,{class:"q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon"+(E.value===!0?"":" q-tabs__arrow--faded"),name:e.leftIcon||r.iconSet.tabs[e.vertical===!0?"up":"left"],onMousedownPassive:ne,onTouchstartPassive:ne,onMouseupPassive:k,onMouseleavePassive:k,onTouchendPassive:k}),h(H,{class:"q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon"+(x.value===!0?"":" q-tabs__arrow--faded"),name:e.rightIcon||r.iconSet.tabs[e.vertical===!0?"down":"right"],onMousedownPassive:le,onTouchstartPassive:le,onMouseupPassive:k,onMouseleavePassive:k,onTouchendPassive:k})])}});export{rt as Q,ot as a,ge as r};