niucloud-admin/niucloud/public/admin/assets/focus-trap-318ae2e0.js
全栈小学生 b4d1350cf3 update admin
2023-07-01 16:28:06 +08:00

2 lines
9.5 KiB
JavaScript

import{i as h,cF as ae,bO as te,j as O,u as E,c as re,r as T,az as ce,o as R,$ as A,g as ue,V as le,w as N,aA as ie,_ as de,P as J,z as fe,t as pe}from"./base-45eb5090.js";const me=(e,n)=>{if(!h)return!1;const t={undefined:"overflow",true:"overflow-y",false:"overflow-x"}[String(n)],s=ae(e,t);return["scroll","auto","overlay"].some(a=>s.includes(a))},Re=(e,n)=>{if(!h)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 Ae=e=>{var n;if(!h)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 a=document.createElement("div");a.style.width="100%",t.appendChild(a);const c=a.offsetWidth;return(n=t.parentNode)==null||n.removeChild(t),y=s-c,y};function Ie(e,n){if(!h)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 a=n.offsetTop+t.reduce((g,P)=>g+P.offsetTop,0),c=a+n.offsetHeight,d=e.scrollTop,m=d+e.clientHeight;a<d?e.scrollTop=a:c>m&&(e.scrollTop=c-e.clientHeight)}const ne={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"};var ve={name:"en",el:{colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"}}};const Ee=e=>(n,t)=>he(n,t,E(e)),he=(e,n,t)=>ce(t,e,e).replace(/\{(\w+)\}/g,(s,a)=>{var c;return`${(c=n==null?void 0:n[a])!=null?c:`{${a}}`}`}),Te=e=>{const n=O(()=>E(e).name),t=re(e)?e:T(e);return{lang:n,locale:t,t:Ee(e)}},Ue=()=>{const e=te("locale");return Te(O(()=>e.value||ve))};let v=[];const j=e=>{const n=e;n.key===ne.esc&&v.forEach(t=>t(n))},ge=e=>{R(()=>{v.length===0&&document.addEventListener("keydown",j),h&&v.push(e)}),A(()=>{v=v.filter(n=>n!==e),v.length===0&&h&&document.removeEventListener("keydown",j)})},Y=T(0),Me=()=>{const e=te("zIndex",2e3),n=O(()=>e.value+Y.value);return{initialZIndex:e,currentZIndex:n,nextZIndex:()=>(Y.value++,n.value)}},D="focus-trap.focus-after-trapped",x="focus-trap.focus-after-released",we="focus-trap.focusout-prevented",z={cancelable:!0,bubbles:!1},ye={cancelable:!0,bubbles:!1},Z="focusAfterTrapped",q="focusAfterReleased",be=Symbol("elFocusTrap"),I=T(),C=T(0),U=T(0);let b=0;const oe=e=>{const n=[],t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:s=>{const a=s.tagName==="INPUT"&&s.type==="hidden";return s.disabled||s.hidden||a?NodeFilter.FILTER_SKIP:s.tabIndex>=0||s===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;t.nextNode();)n.push(t.currentNode);return n},G=(e,n)=>{for(const t of e)if(!Fe(t,n))return t},Fe=(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},Se=e=>{const n=oe(e),t=G(n,e),s=G(n.reverse(),e);return[t,s]},Ce=e=>e instanceof HTMLInputElement&&"select"in e,p=(e,n)=>{if(e&&e.focus){const t=document.activeElement;e.focus({preventScroll:!0}),U.value=window.performance.now(),e!==t&&Ce(e)&&n&&e.select()}};function Q(e,n){const t=[...e],s=e.indexOf(n);return s!==-1&&t.splice(s,1),t}const Pe=()=>{let e=[];return{push:s=>{const a=e[0];a&&s!==a&&a.pause(),e=Q(e,s),e.unshift(s)},remove:s=>{var a,c;e=Q(e,s),(c=(a=e[0])==null?void 0:a.resume)==null||c.call(a)}}},_e=(e,n=!1)=>{const t=document.activeElement;for(const s of e)if(p(s,n),document.activeElement!==t)return},X=Pe(),ke=()=>C.value>U.value,F=()=>{I.value="pointer",C.value=window.performance.now()},ee=()=>{I.value="keyboard",C.value=window.performance.now()},Le=()=>(R(()=>{b===0&&(document.addEventListener("mousedown",F),document.addEventListener("touchstart",F),document.addEventListener("keydown",ee)),b++}),A(()=>{b--,b<=0&&(document.removeEventListener("mousedown",F),document.removeEventListener("touchstart",F),document.removeEventListener("keydown",ee))}),{focusReason:I,lastUserFocusTimestamp:C,lastAutomatedFocusTimestamp:U}),S=e=>new CustomEvent(we,{...ye,detail:e}),Ne=ue({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Z,q,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:n}){const t=T();let s,a;const{focusReason:c}=Le();ge(o=>{e.trapped&&!d.paused&&n("release-requested",o)});const d={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},m=o=>{if(!e.loop&&!e.trapped||d.paused)return;const{key:r,altKey:u,ctrlKey:l,metaKey:i,currentTarget:W,shiftKey:$}=o,{loop:V}=e,se=r===ne.tab&&!u&&!l&&!i,w=document.activeElement;if(se&&w){const _=W,[k,L]=Se(_);if(k&&L){if(!$&&w===L){const f=S({focusReason:c.value});n("focusout-prevented",f),f.defaultPrevented||(o.preventDefault(),V&&p(k,!0))}else if($&&[k,_].includes(w)){const f=S({focusReason:c.value});n("focusout-prevented",f),f.defaultPrevented||(o.preventDefault(),V&&p(L,!0))}}else if(w===_){const f=S({focusReason:c.value});n("focusout-prevented",f),f.defaultPrevented||o.preventDefault()}}};le(be,{focusTrapRef:t,onKeydown:m}),N(()=>e.focusTrapEl,o=>{o&&(t.value=o)},{immediate:!0}),N([t],([o],[r])=>{o&&(o.addEventListener("keydown",m),o.addEventListener("focusin",M),o.addEventListener("focusout",K)),r&&(r.removeEventListener("keydown",m),r.removeEventListener("focusin",M),r.removeEventListener("focusout",K))});const g=o=>{n(Z,o)},P=o=>n(q,o),M=o=>{const r=E(t);if(!r)return;const u=o.target,l=o.relatedTarget,i=u&&r.contains(u);e.trapped||l&&r.contains(l)||(s=l),i&&n("focusin",o),!d.paused&&e.trapped&&(i?a=u:p(a,!0))},K=o=>{const r=E(t);if(!(d.paused||!r))if(e.trapped){const u=o.relatedTarget;!ie(u)&&!r.contains(u)&&setTimeout(()=>{if(!d.paused&&e.trapped){const l=S({focusReason:c.value});n("focusout-prevented",l),l.defaultPrevented||p(a,!0)}},0)}else{const u=o.target;u&&r.contains(u)||n("focusout",o)}};async function B(){await J();const o=E(t);if(o){X.push(d);const r=o.contains(document.activeElement)?s:document.activeElement;if(s=r,!o.contains(r)){const l=new Event(D,z);o.addEventListener(D,g),o.dispatchEvent(l),l.defaultPrevented||J(()=>{let i=e.focusStartEl;fe(i)||(p(i),document.activeElement!==i&&(i="first")),i==="first"&&_e(oe(o),!0),(document.activeElement===r||i==="container")&&p(o)})}}}function H(){const o=E(t);if(o){o.removeEventListener(D,g);const r=new CustomEvent(x,{...z,detail:{focusReason:c.value}});o.addEventListener(x,P),o.dispatchEvent(r),!r.defaultPrevented&&(c.value=="keyboard"||!ke())&&p(s??document.body),o.removeEventListener(x,g),X.remove(d)}}return R(()=>{e.trapped&&B(),N(()=>e.trapped,o=>{o?B():H()})}),A(()=>{e.trapped&&H()}),{onKeydown:m}}});function De(e,n,t,s,a,c){return pe(e.$slots,"default",{handleKeydown:e.onKeydown})}var Ke=de(Ne,[["render",De],["__file","/home/runner/work/element-plus/element-plus/packages/components/focus-trap/src/focus-trap.vue"]]);export{ne as E,be as F,Ae as a,Me as b,Ke as c,Re as g,Ie as s,Ue as u};