Files
egrasc/static/js/index-5b037ecd.js
2025-09-17 15:04:01 +08:00

2 lines
7.5 KiB
JavaScript

import{bh as m,aw as ae,b as P,bq as q,y as D,ao as x,a9 as te,d as ne,ap as ce,ai as O,g as h,br as ue,r as U,aj as M,aD as ie,Z as de,$ as le,o as fe,s as pe,cf as ve,aR as Ee}from"./index-b7212742.js";function De(e){return e===void 0}const me=(e,n)=>{if(!m)return!1;const t={undefined:"overflow",true:"overflow-y",false:"overflow-x"}[String(n)],s=ae(e,t);return["scroll","auto","overlay"].some(r=>s.includes(r))},xe=(e,n)=>{if(!m)return;let t=e;for(;t;){if([window,document,document.documentElement].includes(t))return window;if(me(t,n))return t;t=t.parentNode}return t};let y;const Be=e=>{var n;if(!m)return 0;if(y!==void 0)return y;const t=document.createElement("div");t.className=`${e}-scrollbar__wrap`,t.style.visibility="hidden",t.style.width="100px",t.style.position="absolute",t.style.top="-9999px",document.body.appendChild(t);const s=t.offsetWidth;t.style.overflow="scroll";const r=document.createElement("div");r.style.width="100%",t.appendChild(r);const c=r.offsetWidth;return(n=t.parentNode)==null||n.removeChild(t),y=s-c,y};function Ke(e,n){if(!m)return;if(!n){e.scrollTop=0;return}const t=[];let s=n.offsetParent;for(;s!==null&&e!==s&&e.contains(s);)t.push(s),s=s.offsetParent;const r=n.offsetTop+t.reduce((T,b)=>T+b.offsetTop,0),c=r+n.offsetHeight,l=e.scrollTop,v=l+e.clientHeight;r<l?e.scrollTop=r:c>v&&(e.scrollTop=c-e.clientHeight)}const Te=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.tabIndex<0||e.hasAttribute("disabled")||e.getAttribute("aria-disabled")==="true")return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},I="focus-trap.focus-after-trapped",k="focus-trap.focus-after-released",be="focus-trap.focusout-prevented",J={cancelable:!0,bubbles:!1},we={cancelable:!0,bubbles:!1},X="focusAfterTrapped",Y="focusAfterReleased",he=Symbol("elFocusTrap"),B=P(),S=P(0),K=P(0);let F=0;const oe=e=>{const n=[],t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:s=>{const r=s.tagName==="INPUT"&&s.type==="hidden";return s.disabled||s.hidden||r?NodeFilter.FILTER_SKIP:s.tabIndex>=0||s===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;t.nextNode();)n.push(t.currentNode);return n},Z=(e,n)=>{for(const t of e)if(!ye(t,n))return t},ye=(e,n)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(n&&e===n)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},Fe=e=>{const n=oe(e),t=Z(n,e),s=Z(n.reverse(),e);return[t,s]},_e=e=>e instanceof HTMLInputElement&&"select"in e,p=(e,n)=>{if(e&&e.focus){const t=document.activeElement;let s=!1;q(e)&&!Te(e)&&!e.getAttribute("tabindex")&&(e.setAttribute("tabindex","-1"),s=!0),e.focus({preventScroll:!0}),K.value=window.performance.now(),e!==t&&_e(e)&&n&&e.select(),q(e)&&s&&e.removeAttribute("tabindex")}};function z(e,n){const t=[...e],s=e.indexOf(n);return s!==-1&&t.splice(s,1),t}const ge=()=>{let e=[];return{push:s=>{const r=e[0];r&&s!==r&&r.pause(),e=z(e,s),e.unshift(s)},remove:s=>{var r,c;e=z(e,s),(c=(r=e[0])==null?void 0:r.resume)==null||c.call(r)}}},Pe=(e,n=!1)=>{const t=document.activeElement;for(const s of e)if(p(s,n),document.activeElement!==t)return},G=ge(),Se=()=>S.value>K.value,_=()=>{B.value="pointer",S.value=window.performance.now()},Q=()=>{B.value="keyboard",S.value=window.performance.now()},Le=()=>(D(()=>{F===0&&(document.addEventListener("mousedown",_),document.addEventListener("touchstart",_),document.addEventListener("keydown",Q)),F++}),x(()=>{F--,F<=0&&(document.removeEventListener("mousedown",_),document.removeEventListener("touchstart",_),document.removeEventListener("keydown",Q))}),{focusReason:B,lastUserFocusTimestamp:S,lastAutomatedFocusTimestamp:K}),g=e=>new CustomEvent(be,{...we,detail:e}),se={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"};let E=[];const ee=e=>{e.code===se.esc&&E.forEach(n=>n(e))},Ce=e=>{D(()=>{E.length===0&&document.addEventListener("keydown",ee),m&&E.push(e)}),x(()=>{E=E.filter(n=>n!==e),E.length===0&&m&&document.removeEventListener("keydown",ee)})},Ae=ne({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[X,Y,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:n}){const t=P();let s,r;const{focusReason:c}=Le();Ce(o=>{e.trapped&&!l.paused&&n("release-requested",o)});const l={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},v=o=>{if(!e.loop&&!e.trapped||l.paused)return;const{code:a,altKey:u,ctrlKey:i,metaKey:d,currentTarget:V,shiftKey:W}=o,{loop:j}=e,re=a===se.tab&&!u&&!i&&!d,w=document.activeElement;if(re&&w){const A=V,[R,N]=Fe(A);if(R&&N){if(!W&&w===N){const f=g({focusReason:c.value});n("focusout-prevented",f),f.defaultPrevented||(o.preventDefault(),j&&p(R,!0))}else if(W&&[R,A].includes(w)){const f=g({focusReason:c.value});n("focusout-prevented",f),f.defaultPrevented||(o.preventDefault(),j&&p(N,!0))}}else if(w===A){const f=g({focusReason:c.value});n("focusout-prevented",f),f.defaultPrevented||o.preventDefault()}}};ce(he,{focusTrapRef:t,onKeydown:v}),O(()=>e.focusTrapEl,o=>{o&&(t.value=o)},{immediate:!0}),O([t],([o],[a])=>{o&&(o.addEventListener("keydown",v),o.addEventListener("focusin",L),o.addEventListener("focusout",C)),a&&(a.removeEventListener("keydown",v),a.removeEventListener("focusin",L),a.removeEventListener("focusout",C))});const T=o=>{n(X,o)},b=o=>n(Y,o),L=o=>{const a=h(t);if(!a)return;const u=o.target,i=o.relatedTarget,d=u&&a.contains(u);e.trapped||i&&a.contains(i)||(s=i),d&&n("focusin",o),!l.paused&&e.trapped&&(d?r=u:p(r,!0))},C=o=>{const a=h(t);if(!(l.paused||!a))if(e.trapped){const u=o.relatedTarget;!ue(u)&&!a.contains(u)&&setTimeout(()=>{if(!l.paused&&e.trapped){const i=g({focusReason:c.value});n("focusout-prevented",i),i.defaultPrevented||p(r,!0)}},0)}else{const u=o.target;u&&a.contains(u)||n("focusout",o)}};async function $(){await M();const o=h(t);if(o){G.push(l);const a=o.contains(document.activeElement)?s:document.activeElement;if(s=a,!o.contains(a)){const i=new Event(I,J);o.addEventListener(I,T),o.dispatchEvent(i),i.defaultPrevented||M(()=>{let d=e.focusStartEl;ie(d)||(p(d),document.activeElement!==d&&(d="first")),d==="first"&&Pe(oe(o),!0),(document.activeElement===a||d==="container")&&p(o)})}}}function H(){const o=h(t);if(o){o.removeEventListener(I,T);const a=new CustomEvent(k,{...J,detail:{focusReason:c.value}});o.addEventListener(k,b),o.dispatchEvent(a),!a.defaultPrevented&&(c.value=="keyboard"||!Se()||o.contains(document.activeElement))&&p(s??document.body),o.removeEventListener(k,b),G.remove(l)}}return D(()=>{e.trapped&&$(),O(()=>e.trapped,o=>{o?$():H()})}),x(()=>{e.trapped&&H(),t.value&&(t.value.removeEventListener("keydown",v),t.value.removeEventListener("focusin",L),t.value.removeEventListener("focusout",C),t.value=void 0)}),{onKeydown:v}}});function Re(e,n,t,s,r,c){return U(e.$slots,"default",{handleKeydown:e.onKeydown})}var $e=te(Ae,[["render",Re],["__file","focus-trap.vue"]]);const Ne=de({to:{type:le([String,Object]),required:!0},disabled:Boolean}),Oe=ne({__name:"teleport",props:Ne,setup(e){return(n,t)=>n.disabled?U(n.$slots,"default",{key:0}):(fe(),pe(ve,{key:1,to:n.to},[U(n.$slots,"default")],8,["to"]))}});var Ie=te(Oe,[["__file","teleport.vue"]]);const He=Ee(Ie);export{se as E,he as F,De as a,$e as b,He as c,p as d,Be as e,xe as g,Te as i,Ke as s,Ne as t};