全栈小学生 26524c4bf5 update admin
2023-08-12 16:21:13 +08:00

2 lines
14 KiB
JavaScript

import{T as we,v as Ne,e as Oe}from"./index-30df2c14.js";import{aj as G,ak as oe,A as Pe,b as de,s as U,r as _e,j as Ae,E as ye,L as ge,d as ue,al as Be}from"./index-7e933ae4.js";import{E}from"./index-a2524300.js";import{t as H}from"./aria-adfa05c5.js";import{d as V,b as w,_ as me,e as j,v as Ie,x as re,h as B,C as ze,c as m,I as Q,r as k,R as pe,w as J,J as ie,o as ve,O as Ce,U as b,m as W,Q as Le,F as fe,P as he,a as je,q as We,E as De,a7 as Re,V as Fe,f as Z,g as ce,n as K,A as Ve,B as qe,l as Ge,T as be}from"./base-04829be5.js";import{_ as Ue}from"./index-3bc8a8be.js";import{E as ke}from"./index-94a82d50.js";import{T as He}from"./index-eb678249.js";import{t as X}from"./error-78e43d3e.js";import{m as Je}from"./typescript-defaf979.js";import{f as Qe}from"./vnode-85ccdc7f.js";let Ze=class{constructor(n,t){this.parent=n,this.domNode=t,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll("li"),this.addListeners()}gotoSubIndex(n){n===this.subMenuItems.length?n=0:n<0&&(n=this.subMenuItems.length-1),this.subMenuItems[n].focus(),this.subIndex=n}addListeners(){const n=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,t=>{t.addEventListener("keydown",u=>{let r=!1;switch(u.code){case E.down:{this.gotoSubIndex(this.subIndex+1),r=!0;break}case E.up:{this.gotoSubIndex(this.subIndex-1),r=!0;break}case E.tab:{H(n,"mouseleave");break}case E.enter:case E.space:{r=!0,u.currentTarget.click();break}}return r&&(u.preventDefault(),u.stopPropagation()),!1})})}},Ke=class{constructor(n,t){this.domNode=n,this.submenu=null,this.submenu=null,this.init(t)}init(n){this.domNode.setAttribute("tabindex","0");const t=this.domNode.querySelector(`.${n}-menu`);t&&(this.submenu=new Ze(this,t)),this.addListeners()}addListeners(){this.domNode.addEventListener("keydown",n=>{let t=!1;switch(n.code){case E.down:{H(n.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(0),t=!0;break}case E.up:{H(n.currentTarget,"mouseenter"),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),t=!0;break}case E.tab:{H(n.currentTarget,"mouseleave");break}case E.enter:case E.space:{t=!0,n.currentTarget.click();break}}t&&n.preventDefault()})}},Xe=class{constructor(n,t){this.domNode=n,this.init(t)}init(n){const t=this.domNode.childNodes;Array.from(t).forEach(u=>{u.nodeType===1&&new Ke(u,n)})}};const Ye=V({name:"ElMenuCollapseTransition",setup(){const e=w("menu");return{listeners:{onBeforeEnter:t=>t.style.opacity="0.2",onEnter(t,u){G(t,`${e.namespace.value}-opacity-transition`),t.style.opacity="1",u()},onAfterEnter(t){oe(t,`${e.namespace.value}-opacity-transition`),t.style.opacity=""},onBeforeLeave(t){t.dataset||(t.dataset={}),Pe(t,e.m("collapse"))?(oe(t,e.m("collapse")),t.dataset.oldOverflow=t.style.overflow,t.dataset.scrollWidth=t.clientWidth.toString(),G(t,e.m("collapse"))):(G(t,e.m("collapse")),t.dataset.oldOverflow=t.style.overflow,t.dataset.scrollWidth=t.clientWidth.toString(),oe(t,e.m("collapse"))),t.style.width=`${t.scrollWidth}px`,t.style.overflow="hidden"},onLeave(t){G(t,"horizontal-collapse-transition"),t.style.width=`${t.dataset.scrollWidth}px`}}}}});function et(e,n,t,u,r,C){return j(),Ie(we,ze({mode:"out-in"},e.listeners),{default:re(()=>[B(e.$slots,"default")]),_:3},16)}var tt=me(Ye,[["render",et],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);function xe(e,n){const t=m(()=>{let r=e.parent;const C=[n.value];for(;r.type.name!=="ElMenu";)r.props.index&&C.unshift(r.props.index),r=r.parent;return C});return{parentMenu:m(()=>{let r=e.parent;for(;r&&!["ElMenu","ElSubMenu"].includes(r.type.name);)r=r.parent;return r}),indexPath:t}}function nt(e){return m(()=>{const t=e.backgroundColor;return t?new He(t).shade(20).toString():""})}const Se=(e,n)=>{const t=w("menu");return m(()=>t.cssVarBlock({"text-color":e.textColor||"","hover-text-color":e.textColor||"","bg-color":e.backgroundColor||"","hover-bg-color":nt(e).value||"","active-color":e.activeTextColor||"",level:`${n}`}))},ot=de({index:{type:String,required:!0},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},popperClass:String,disabled:Boolean,popperAppendToBody:{type:Boolean,default:void 0},popperOffset:{type:Number,default:6},expandCloseIcon:{type:U},expandOpenIcon:{type:U},collapseCloseIcon:{type:U},collapseOpenIcon:{type:U}}),le="ElSubMenu";var Me=V({name:le,props:ot,setup(e,{slots:n,expose:t}){const u=he(),{indexPath:r,parentMenu:C}=xe(u,m(()=>e.index)),c=w("menu"),f=w("sub-menu"),a=Q("rootMenu");a||X(le,"can not inject root menu");const d=Q(`subMenu:${C.value.uid}`);d||X(le,"can not inject sub menu");const p=k({}),M=k({});let I;const N=k(!1),Y=k(),q=k(null),_=m(()=>l.value==="horizontal"&&z.value?"bottom-start":"right-start"),A=m(()=>l.value==="horizontal"&&z.value||l.value==="vertical"&&!a.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?S.value?e.expandOpenIcon:e.expandCloseIcon:_e:e.collapseCloseIcon&&e.collapseOpenIcon?S.value?e.collapseOpenIcon:e.collapseCloseIcon:Ae),z=m(()=>d.level===0),D=m(()=>e.popperAppendToBody===void 0?z.value:Boolean(e.popperAppendToBody)),ee=m(()=>a.props.collapse?`${c.namespace.value}-zoom-in-left`:`${c.namespace.value}-zoom-in-top`),te=m(()=>l.value==="horizontal"&&z.value?["bottom-start","bottom-end","top-start","top-end","right-start","left-start"]:["right-start","left-start","bottom-start","bottom-end","top-start","top-end"]),S=m(()=>a.openedMenus.includes(e.index)),O=m(()=>{let i=!1;return Object.values(p.value).forEach(v=>{v.active&&(i=!0)}),Object.values(M.value).forEach(v=>{v.active&&(i=!0)}),i}),R=m(()=>a.props.backgroundColor||""),L=m(()=>a.props.activeTextColor||""),o=m(()=>a.props.textColor||""),l=m(()=>a.props.mode),s=pe({index:e.index,indexPath:r,active:O}),g=m(()=>l.value!=="horizontal"?{color:o.value}:{borderBottomColor:O.value?a.props.activeTextColor?L.value:"":"transparent",color:O.value?L.value:o.value}),h=()=>{var i,v,y;return(y=(v=(i=q.value)==null?void 0:i.popperRef)==null?void 0:v.popperInstanceRef)==null?void 0:y.destroy()},T=i=>{i||h()},P=()=>{a.props.menuTrigger==="hover"&&a.props.mode==="horizontal"||a.props.collapse&&a.props.mode==="vertical"||e.disabled||a.handleSubMenuClick({index:e.index,indexPath:r.value,active:O.value})},$=(i,v=e.showTimeout)=>{var y;i.type!=="focus"&&(a.props.menuTrigger==="click"&&a.props.mode==="horizontal"||!a.props.collapse&&a.props.mode==="vertical"||e.disabled||(d.mouseInChild.value=!0,I==null||I(),{stop:I}=ge(()=>{a.openMenu(e.index,r.value)},v),D.value&&((y=C.value.vnode.el)==null||y.dispatchEvent(new MouseEvent("mouseenter")))))},x=(i=!1)=>{var v,y;a.props.menuTrigger==="click"&&a.props.mode==="horizontal"||!a.props.collapse&&a.props.mode==="vertical"||(I==null||I(),d.mouseInChild.value=!1,{stop:I}=ge(()=>!N.value&&a.closeMenu(e.index,r.value),e.hideTimeout),D.value&&i&&((v=u.parent)==null?void 0:v.type.name)==="ElSubMenu"&&((y=d.handleMouseleave)==null||y.call(d,!0)))};J(()=>a.props.collapse,i=>T(Boolean(i)));{const i=y=>{M.value[y.index]=y},v=y=>{delete M.value[y.index]};ie(`subMenu:${u.uid}`,{addSubMenu:i,removeSubMenu:v,handleMouseleave:x,mouseInChild:N,level:d.level+1})}return t({opened:S}),ve(()=>{a.addSubMenu(s),d.addSubMenu(s)}),Ce(()=>{d.removeSubMenu(s),a.removeSubMenu(s)}),()=>{var i;const v=[(i=n.title)==null?void 0:i.call(n),b(ye,{class:f.e("icon-arrow"),style:{transform:S.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&a.props.collapse?"none":"rotateZ(180deg)":"none"}},{default:()=>W(A.value)?b(u.appContext.components[A.value]):b(A.value)})],y=Se(a.props,d.level+1),$e=a.isMenuPopup?b(ke,{ref:q,visible:S.value,effect:"light",pure:!0,offset:e.popperOffset,showArrow:!1,persistent:!0,popperClass:e.popperClass,placement:_.value,teleported:D.value,fallbackPlacements:te.value,transition:ee.value,gpuAcceleration:!1},{content:()=>{var F;return b("div",{class:[c.m(l.value),c.m("popup-container"),e.popperClass],onMouseenter:ne=>$(ne,100),onMouseleave:()=>x(!0),onFocus:ne=>$(ne,100)},[b("ul",{class:[c.b(),c.m("popup"),c.m(`popup-${_.value}`)],style:y.value},[(F=n.default)==null?void 0:F.call(n)])])},default:()=>b("div",{class:f.e("title"),style:[g.value,{backgroundColor:R.value}],onClick:P},v)}):b(fe,{},[b("div",{class:f.e("title"),style:[g.value,{backgroundColor:R.value}],ref:Y,onClick:P},v),b(Ue,{},{default:()=>{var F;return Le(b("ul",{role:"menu",class:[c.b(),c.m("inline")],style:y.value},[(F=n.default)==null?void 0:F.call(n)]),[[Ne,S.value]])}})]);return b("li",{class:[f.b(),f.is("active",O.value),f.is("opened",S.value),f.is("disabled",e.disabled)],role:"menuitem",ariaHaspopup:!0,ariaExpanded:S.value,onMouseenter:$,onMouseleave:()=>x(!0),onFocus:$},[$e])}}});const lt=de({mode:{type:String,values:["horizontal","vertical"],default:"vertical"},defaultActive:{type:String,default:""},defaultOpeneds:{type:ue(Array),default:()=>Je([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:["hover","click"],default:"hover"},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperEffect:{type:String,values:["dark","light"],default:"dark"}}),ae=e=>Array.isArray(e)&&e.every(n=>W(n)),at={close:(e,n)=>W(e)&&ae(n),open:(e,n)=>W(e)&&ae(n),select:(e,n,t,u)=>W(e)&&ae(n)&&We(t)&&(u===void 0||u instanceof Promise)};var st=V({name:"ElMenu",props:lt,emits:at,setup(e,{emit:n,slots:t,expose:u}){const r=he(),C=r.appContext.config.globalProperties.$router,c=k(),f=w("menu"),a=w("sub-menu"),d=k(-1),p=k(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),M=k(e.defaultActive),I=k({}),N=k({}),Y=m(()=>e.mode==="horizontal"||e.mode==="vertical"&&e.collapse),q=()=>{const o=M.value&&I.value[M.value];if(!o||e.mode==="horizontal"||e.collapse)return;o.indexPath.forEach(s=>{const g=N.value[s];g&&_(s,g.indexPath)})},_=(o,l)=>{p.value.includes(o)||(e.uniqueOpened&&(p.value=p.value.filter(s=>l.includes(s))),p.value.push(o),n("open",o,l))},A=(o,l)=>{const s=p.value.indexOf(o);s!==-1&&p.value.splice(s,1),n("close",o,l)},z=({index:o,indexPath:l})=>{p.value.includes(o)?A(o,l):_(o,l)},D=o=>{(e.mode==="horizontal"||e.collapse)&&(p.value=[]);const{index:l,indexPath:s}=o;if(!(l===void 0||s===void 0))if(e.router&&C){const g=o.route||l,h=C.push(g).then(T=>(T||(M.value=l),T));n("select",l,s,{index:l,indexPath:s,route:g},h)}else M.value=l,n("select",l,s,{index:l,indexPath:s})},ee=o=>{const l=I.value,s=l[o]||M.value&&l[M.value]||l[e.defaultActive];s?M.value=s.index:M.value=o},te=()=>{var o,l;if(!c.value)return-1;const s=Array.from((l=(o=c.value)==null?void 0:o.childNodes)!=null?l:[]).filter(i=>i.nodeName!=="#text"||i.nodeValue),g=64,h=Number.parseInt(getComputedStyle(c.value).paddingLeft,10),T=Number.parseInt(getComputedStyle(c.value).paddingRight,10),P=c.value.clientWidth-h-T;let $=0,x=0;return s.forEach((i,v)=>{$+=i.offsetWidth||0,$<=P-g&&(x=v+1)}),x===s.length?-1:x},S=(o,l=33.34)=>{let s;return()=>{s&&clearTimeout(s),s=setTimeout(()=>{o()},l)}};let O=!0;const R=()=>{const o=()=>{d.value=-1,De(()=>{d.value=te()})};O?o():S(o)(),O=!1};J(()=>e.defaultActive,o=>{I.value[o]||(M.value=""),ee(o)}),J(()=>e.collapse,o=>{o&&(p.value=[])}),J(I.value,q);let L;je(()=>{e.mode==="horizontal"&&e.ellipsis?L=Oe(c,R).stop:L==null||L()});{const o=h=>{N.value[h.index]=h},l=h=>{delete N.value[h.index]};ie("rootMenu",pe({props:e,openedMenus:p,items:I,subMenus:N,activeIndex:M,isMenuPopup:Y,addMenuItem:h=>{I.value[h.index]=h},removeMenuItem:h=>{delete I.value[h.index]},addSubMenu:o,removeSubMenu:l,openMenu:_,closeMenu:A,handleMenuItemClick:D,handleSubMenuClick:z})),ie(`subMenu:${r.uid}`,{addSubMenu:o,removeSubMenu:l,mouseInChild:k(!1),level:0})}return ve(()=>{e.mode==="horizontal"&&new Xe(r.vnode.el,f.namespace.value)}),u({open:l=>{const{indexPath:s}=N.value[l];s.forEach(g=>_(g,s))},close:A,handleResize:R}),()=>{var o,l;let s=(l=(o=t.default)==null?void 0:o.call(t))!=null?l:[];const g=[];if(e.mode==="horizontal"&&c.value){const P=Qe(s),$=d.value===-1?P:P.slice(0,d.value),x=d.value===-1?[]:P.slice(d.value);x!=null&&x.length&&e.ellipsis&&(s=$,g.push(b(Me,{index:"sub-menu-more",class:a.e("hide-arrow")},{title:()=>b(ye,{class:a.e("icon-more")},{default:()=>b(Be)}),default:()=>x})))}const h=Se(e,0),T=b("ul",{key:String(e.collapse),role:"menubar",ref:c,style:h.value,class:{[f.b()]:!0,[f.m(e.mode)]:!0,[f.m("collapse")]:e.collapse}},[...s,...g]);return e.collapseTransition&&e.mode==="vertical"?b(tt,()=>T):T}}});const ut=de({index:{type:ue([String,null]),default:null},route:{type:ue([String,Object])},disabled:Boolean}),rt={click:e=>W(e.index)&&Array.isArray(e.indexPath)},se="ElMenuItem",it=V({name:se,components:{ElTooltip:ke},props:ut,emits:rt,setup(e,{emit:n}){const t=he(),u=Q("rootMenu"),r=w("menu"),C=w("menu-item");u||X(se,"can not inject root menu");const{parentMenu:c,indexPath:f}=xe(t,Re(e,"index")),a=Q(`subMenu:${c.value.uid}`);a||X(se,"can not inject sub menu");const d=m(()=>e.index===u.activeIndex),p=pe({index:e.index,indexPath:f,active:d}),M=()=>{e.disabled||(u.handleMenuItemClick({index:e.index,indexPath:f.value,route:e.route}),n("click",p))};return ve(()=>{a.addSubMenu(p),u.addMenuItem(p)}),Ce(()=>{a.removeSubMenu(p),u.removeMenuItem(p)}),{parentMenu:c,rootMenu:u,active:d,nsMenu:r,nsMenuItem:C,handleClick:M}}});function ct(e,n,t,u,r,C){const c=Fe("el-tooltip");return j(),Z("li",{class:K([e.nsMenuItem.b(),e.nsMenuItem.is("active",e.active),e.nsMenuItem.is("disabled",e.disabled)]),role:"menuitem",tabindex:"-1",onClick:n[0]||(n[0]=(...f)=>e.handleClick&&e.handleClick(...f))},[e.parentMenu.type.name==="ElMenu"&&e.rootMenu.props.collapse&&e.$slots.title?(j(),Ie(c,{key:0,effect:e.rootMenu.props.popperEffect,placement:"right","fallback-placements":["left"],persistent:""},{content:re(()=>[B(e.$slots,"title")]),default:re(()=>[ce("div",{class:K(e.nsMenu.be("tooltip","trigger"))},[B(e.$slots,"default")],2)]),_:3},8,["effect"])):(j(),Z(fe,{key:1},[B(e.$slots,"default"),B(e.$slots,"title")],64))],2)}var Ee=me(it,[["render",ct],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item.vue"]]);const dt={title:String},mt="ElMenuItemGroup",pt=V({name:mt,props:dt,setup(){return{ns:w("menu-item-group")}}});function vt(e,n,t,u,r,C){return j(),Z("li",{class:K(e.ns.b())},[ce("div",{class:K(e.ns.e("title"))},[e.$slots.title?B(e.$slots,"title",{key:1}):(j(),Z(fe,{key:0},[Ve(qe(e.title),1)],64))],2),ce("ul",null,[B(e.$slots,"default")])],2)}var Te=me(pt,[["render",vt],["__file","/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-item-group.vue"]]);const wt=Ge(st,{MenuItem:Ee,MenuItemGroup:Te,SubMenu:Me}),Nt=be(Ee),Ot=be(Te),Pt=be(Me);export{wt as E,Nt as a,Ot as b,Pt as c};