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
1.8 KiB
2 lines
1.8 KiB
import{d as x,ay as n,D as y,r,m as b,f as C,G as v,O as S,p as A,P as O,J as p,dT as T,aT as k,o as w,g as E,aV as I,x as z}from"./index-f4658ae7.js";import{createSimpleRootMenuContext as B}from"./useSimpleMenuContext-8e83f8e2.js";const D=x({name:"Menu",props:{theme:n.oneOf(["light","dark"]).def("light"),activeName:n.oneOfType([n.string,n.number]),openNames:{type:Array,default:()=>[]},accordion:n.bool.def(!0),width:n.string.def("100%"),collapsedWidth:n.string.def("48px"),indentSize:n.number.def(16),collapse:n.bool.def(!0),activeSubMenuNames:{type:Array,default:()=>[]}},emits:["select","open-change"],setup(a,{emit:d}){const l=T(),u=y(),o=r(""),e=r([]),{prefixCls:c}=b("menu"),g=r(!1);B({rootMenuEmitter:l,activeName:o});const h=C(()=>{const{theme:t}=a;return[c,`${c}-${t}`,`${c}-vertical`,{[`${c}-collapse`]:a.collapse}]});v(()=>{e.value=a.openNames}),v(()=>{a.activeName&&(o.value=a.activeName)}),S(()=>a.openNames,()=>{p(()=>{s()})});function s(){l.emit("on-update-opened",e.value)}function _(t){e.value.includes(t)||(e.value.push(t),s())}function N(t){e.value=e.value.filter(i=>i!==t),s()}function f(){e.value=[],s()}function M(t){t!==-1&&(e.value=e.value.slice(0,t+1),s())}return A(`subMenu:${u==null?void 0:u.uid}`,{addSubMenu:_,removeSubMenu:N,getOpenNames:()=>e.value,removeAll:f,isRemoveAllPopup:g,sliceIndex:M,level:0,props:a}),O(()=>{e.value=a.collapse?[]:[...a.openNames],s(),l.on("on-menu-item-select",t=>{o.value=t,p(()=>{a.collapse&&f()}),d("select",t)}),l.on("open-name-change",({name:t,opened:i})=>{if(i&&!e.value.includes(t))e.value.push(t);else if(!i){const m=e.value.findIndex($=>$===t);m!==-1&&e.value.splice(m,1)}})}),{getClass:h,openedNames:e}}});function P(a,d,l,u,o,e){return w(),E("ul",{class:z(a.getClass)},[I(a.$slots,"default")],2)}const J=k(D,[["render",P]]);export{J as default};
|