mirror of
https://gitee.com/niucloud-team/niucloud-admin.git
synced 2026-01-04 04:08:13 +00:00
2 lines
9.6 KiB
JavaScript
2 lines
9.6 KiB
JavaScript
import{$ as ae,B as te,q as re,r as ce,_ as ue}from"./plugin-vue_export-helper-edbdb6f8.js";import{i as h}from"./index-f02197a7.js";import{c as R,u as E,i as ie,r as T,o as O,J as A,d as le,E as de,w as N,A as V,j as fe,g as pe}from"./runtime-core.esm-bundler-7c3fd514.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))},Ie=(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 Ue=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 Me(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)=>re(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=R(()=>E(e).name),t=ie(e)?e:T(e);return{lang:n,locale:t,t:Ee(e)}},Ke=()=>{const e=te("locale");return Te(R(()=>e.value||ve))};let v=[];const j=e=>{const n=e;n.key===ne.esc&&v.forEach(t=>t(n))},ge=e=>{O(()=>{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),Be=()=>{const e=te("zIndex",2e3),n=R(()=>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},q="focusAfterTrapped",z="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=()=>(O(()=>{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=le({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[q,z,"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:i,metaKey:l,currentTarget:W,shiftKey:$}=o,{loop:J}=e,se=r===ne.tab&&!u&&!i&&!l,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(),J&&p(k,!0))}else if($&&[k,_].includes(w)){const f=S({focusReason:c.value});n("focusout-prevented",f),f.defaultPrevented||(o.preventDefault(),J&&p(L,!0))}}else if(w===_){const f=S({focusReason:c.value});n("focusout-prevented",f),f.defaultPrevented||o.preventDefault()}}};de(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(q,o)},P=o=>n(z,o),M=o=>{const r=E(t);if(!r)return;const u=o.target,i=o.relatedTarget,l=u&&r.contains(u);e.trapped||i&&r.contains(i)||(s=i),l&&n("focusin",o),!d.paused&&e.trapped&&(l?a=u:p(a,!0))},K=o=>{const r=E(t);if(!(d.paused||!r))if(e.trapped){const u=o.relatedTarget;!ce(u)&&!r.contains(u)&&setTimeout(()=>{if(!d.paused&&e.trapped){const i=S({focusReason:c.value});n("focusout-prevented",i),i.defaultPrevented||p(a,!0)}},0)}else{const u=o.target;u&&r.contains(u)||n("focusout",o)}};async function B(){await V();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 i=new Event(D,Z);o.addEventListener(D,g),o.dispatchEvent(i),i.defaultPrevented||V(()=>{let l=e.focusStartEl;fe(l)||(p(l),document.activeElement!==l&&(l="first")),l==="first"&&_e(oe(o),!0),(document.activeElement===r||l==="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 O(()=>{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 He=ue(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,Ue as a,Be as b,He as c,Ie as g,Me as s,Ke as u};
|