You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2 lines
5.1 KiB
2 lines
5.1 KiB
var ne=Object.defineProperty;var z=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,oe=Object.prototype.propertyIsEnumerable;var D=(e,n,s)=>n in e?ne(e,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[n]=s,P=(e,n)=>{for(var s in n||(n={}))se.call(n,s)&&D(e,s,n[s]);if(z)for(var s of z(n))oe.call(n,s)&&D(e,s,n[s]);return e};import{d as te,bY as ae,dS as le,b8 as ie,ay as L,D as ue,q as j,m as re,k as me,f as u,u as r,bg as de,an as pe,aX as ce,p as fe,aN as W,dT as be,aT as ve,aU as N,o as S,g as q,F as Ce,j as b,aV as M,b as F,x as m,bJ as ge,a9 as he,w as k,s as $e,v as Se,a as Y,aW as Me,bW as ye,i as Te,aP as Ie}from"./index-f4658ae7.js";import{useMenuItem as we}from"./useMenu-0528c2f2.js";import{useSimpleRootMenuContext as Pe}from"./useSimpleMenuContext-8e83f8e2.js";const G=200,Ne=te({name:"SubMenu",components:{Icon:ae,CollapseTransition:le,Popover:ie},props:{name:{type:[String,Number],required:!0},disabled:L.bool,collapsedShowTitle:L.bool},setup(e){var B;const n=ue(),s=j({active:!1,opened:!1}),t=j({timeout:null,mouseInChild:!1,isChild:!1}),{getParentSubMenu:C,getItemStyle:A,getParentMenu:v,getParentList:y}=we(n),{prefixCls:a}=re("menu"),d=be(),{rootMenuEmitter:g}=Pe(),{addSubMenu:O,removeSubMenu:R,removeAll:T,getOpenNames:p,isRemoveAllPopup:h,sliceIndex:V,level:$,props:c,handleMouseleave:I}=me(`subMenu:${(B=v.value)==null?void 0:B.uid}`),J=u(()=>[`${a}-submenu`,{[`${a}-item-active`]:s.active,[`${a}-opened`]:s.opened,[`${a}-submenu-disabled`]:e.disabled,[`${a}-submenu-has-parent-submenu`]:r(C),[`${a}-child-item-active`]:s.active}]),U=u(()=>c.accordion),f=u(()=>c.collapse),X=u(()=>c.theme),K=u(()=>({minWidth:"200px"})),Q=u(()=>{const o=e.name;return r(f)?p().includes(o):s.opened}),Z=u(()=>{const o=c.activeSubMenuNames.includes(e.name);return[`${a}-submenu-title`,{[`${a}-submenu-active`]:o,[`${a}-submenu-active-border`]:o&&$===0,[`${a}-submenu-collapse`]:r(f)&&$===0}]});function H(o){return r(f)?{onMouseenter:_,onMouseleave:()=>E(o)}:{}}function x(){const{disabled:o}=e;if(o||r(f))return;const l=s.opened;if(r(U)){const{uidList:i}=y();g.emit("on-update-opened",{opend:!1,parent:n==null?void 0:n.parent,uidList:i})}else g.emit("open-name-change",{name:e.name,opened:!l});s.opened=!l}function _(){if(e.disabled)return;d.emit("submenu:mouse-enter-child");const l=p().findIndex(w=>w===e.name);V(l),$===0&&p().length===2&&T(),t.isChild=p().includes(e.name),clearTimeout(t.timeout),t.timeout=setTimeout(()=>{O(e.name)},G)}function E(o=!1){var i;((i=v.value)==null?void 0:i.props.name)||(h.value=!0),p().slice(-1)[0]===e.name&&(t.isChild=!1),d.emit("submenu:mouse-leave-child"),t.timeout&&(clearTimeout(t.timeout),t.timeout=setTimeout(()=>{h.value?T():t.mouseInChild||R(e.name)},G)),o&&C.value&&(I==null||I(!0))}de(()=>{d.on("submenu:mouse-enter-child",()=>{t.mouseInChild=!0,h.value=!1,clearTimeout(t.timeout)}),d.on("submenu:mouse-leave-child",()=>{t.isChild||(t.mouseInChild=!1,clearTimeout(t.timeout))}),g.on("on-update-opened",o=>{if(!r(f)){if(pe(o)){s.opened=o;return}if(ce(o)&&c.accordion){const{opend:l,parent:i,uidList:w}=o;i===(n==null?void 0:n.parent)?s.opened=l:w.includes(n==null?void 0:n.uid)||(s.opened=!1);return}e.name&&Array.isArray(o)&&(s.opened=o.includes(e.name))}}),g.on("on-update-active-name:submenu",o=>{n!=null&&n.uid&&(s.active=o.includes(n==null?void 0:n.uid))})});function ee(o){s.opened=o}return fe(`subMenu:${n==null?void 0:n.uid}`,{addSubMenu:O,removeSubMenu:R,getOpenNames:p,removeAll:T,isRemoveAllPopup:h,sliceIndex:V,level:$+1,handleMouseleave:E,props:c}),P(P({getClass:J,prefixCls:a,getCollapse:f,getItemStyle:A,handleClick:x,handleVisibleChange:ee,getParentSubMenu:C,getOverlayStyle:K,getTheme:X,getIsOpend:Q,getEvents:H,getSubClass:Z},W(s)),W(t))}});function ke(e,n,s,t,C,A){const v=N("Icon"),y=N("CollapseTransition"),a=N("Popover");return S(),q("li",{class:m(e.getClass)},[e.getCollapse?(S(),Y(a,{key:1,placement:"right",overlayClassName:`${e.prefixCls}-menu-popover`,visible:e.getIsOpend,onVisibleChange:e.handleVisibleChange,overlayStyle:e.getOverlayStyle,align:{offset:[0,0]}},{content:k(()=>[b("div",Me(ye(e.getEvents(!0))),[b("ul",{class:m([e.prefixCls,`${e.prefixCls}-${e.getTheme}`,`${e.prefixCls}-popup`])},[M(e.$slots,"default")],2)],16)]),default:k(()=>[b("div",Ie({class:e.getSubClass},e.getEvents(!1)),[b("div",{class:m([{[`${e.prefixCls}-submenu-popup`]:!e.getParentSubMenu,[`${e.prefixCls}-submenu-collapsed-show-tit`]:e.collapsedShowTitle}])},[M(e.$slots,"title")],2),e.getParentSubMenu?(S(),Y(v,{key:0,icon:"eva:arrow-ios-downward-outline",size:14,class:m(`${e.prefixCls}-submenu-title-icon`)},null,8,["class"])):Te("",!0)],16)]),_:3},8,["overlayClassName","visible","onVisibleChange","overlayStyle"])):(S(),q(Ce,{key:0},[b("div",{class:m(`${e.prefixCls}-submenu-title`),onClick:n[0]||(n[0]=ge((...d)=>e.handleClick&&e.handleClick(...d),["stop"])),style:he(e.getItemStyle)},[M(e.$slots,"title"),F(v,{icon:"eva:arrow-ios-downward-outline",size:14,class:m(`${e.prefixCls}-submenu-title-icon`)},null,8,["class"])],6),F(y,null,{default:k(()=>[$e(b("ul",{class:m(e.prefixCls)},[M(e.$slots,"default")],2),[[Se,e.opened]])]),_:3})],64))],2)}const Ee=ve(Ne,[["render",ke]]);export{Ee as default};
|