ll-package
Version:
2 lines (1 loc) • 8.26 kB
JavaScript
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const T=require("../../../../@babel/runtime/helpers/esm/objectSpread2.js"),z=require("../../../../@babel/runtime/helpers/esm/extends.js"),e=require("vue"),K=require("../../_util/shallowequal.js"),P=require("./hooks/useMenuContext.js"),se=require("../../config-provider/hooks/useConfigInject.js"),W=require("../../vc-util/devWarning.js"),R=require("../../../../lodash-es/uniq.js"),ce=require("../../layout/injectionKey.js"),re=require("../../_util/props-util/index.js"),V=require("../../vc-overflow/Overflow.js"),ve=require("./MenuItem.js"),Y=require("./SubMenu.js"),fe=require("../../../../@ant-design/icons-vue/es/icons/EllipsisOutlined.js"),me=require("../../_util/vnode.js"),b=require("./hooks/useKeyPath.js"),ye=require("../../_util/collapseMotion.js"),he=require("./hooks/useItems.js"),ge=require("../style/index.js"),be=require("./OverrideContext.js"),G=()=>({id:String,prefixCls:String,items:Array,disabled:Boolean,inlineCollapsed:Boolean,disabledOverflow:Boolean,forceSubMenuRender:Boolean,openKeys:Array,selectedKeys:Array,activeKey:String,selectable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},tabindex:{type:[Number,String]},motion:Object,role:String,theme:{type:String,default:"light"},mode:{type:String,default:"vertical"},inlineIndent:{type:Number,default:24},subMenuOpenDelay:{type:Number,default:0},subMenuCloseDelay:{type:Number,default:.1},builtinPlacements:{type:Object},triggerSubMenuAction:{type:String,default:"hover"},getPopupContainer:Function,expandIcon:Function,onOpenChange:Function,onSelect:Function,onDeselect:Function,onClick:[Function,Array],onFocus:Function,onBlur:Function,onMousedown:Function,"onUpdate:openKeys":Function,"onUpdate:selectedKeys":Function,"onUpdate:activeKey":Function}),U=[],Ce=e.defineComponent({compatConfig:{MODE:3},name:"AMenu",inheritAttrs:!1,props:G(),slots:Object,setup(n,H){let{slots:h,emit:y,attrs:F}=H;const{direction:J,getPrefixCls:N}=se.default("menu",n),a=be.useInjectOverride(),c=e.computed(()=>{var t;return N("menu",n.prefixCls||((t=a==null?void 0:a.prefixCls)===null||t===void 0?void 0:t.value))}),[Q,_]=ge.default(c,e.computed(()=>!a)),f=e.shallowRef(new Map),p=e.inject(ce.SiderCollapsedKey,e.ref(void 0)),$=e.computed(()=>p.value!==void 0?p.value:n.inlineCollapsed),{itemsNodes:X}=he.default(n),I=e.shallowRef(!1);e.onMounted(()=>{I.value=!0}),e.watchEffect(()=>{W.default(!(n.inlineCollapsed===!0&&n.mode!=="inline"),"Menu","`inlineCollapsed` should only be used when `mode` is inline."),W.default(!(p.value!==void 0&&n.inlineCollapsed===!0),"Menu","`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead.")});const M=e.ref([]),m=e.ref([]),C=e.ref({});e.watch(f,()=>{const t={};for(const l of f.value.values())t[l.key]=l;C.value=t},{flush:"post"}),e.watchEffect(()=>{if(n.activeKey!==void 0){let t=[];const l=n.activeKey?C.value[n.activeKey]:void 0;l&&n.activeKey!==void 0?t=R.default([].concat(e.unref(l.parentKeys),n.activeKey)):t=[],K.default(M.value,t)||(M.value=t)}}),e.watch(()=>n.selectedKeys,t=>{t&&(m.value=t.slice())},{immediate:!0,deep:!0});const S=e.ref([]);e.watch([C,m],()=>{let t=[];m.value.forEach(l=>{const u=C.value[l];u&&(t=t.concat(e.unref(u.parentKeys)))}),t=R.default(t),K.default(S.value,t)||(S.value=t)},{immediate:!0});const Z=t=>{if(n.selectable){const{key:l}=t,u=m.value.includes(l);let o;n.multiple?u?o=m.value.filter(r=>r!==l):o=[...m.value,l]:o=[l];const i=z.default(z.default({},t),{selectedKeys:o});K.default(o,m.value)||(n.selectedKeys===void 0&&(m.value=o),y("update:selectedKeys",o),u&&n.multiple?y("deselect",i):y("select",i))}s.value!=="inline"&&!n.multiple&&d.value.length&&x(U)},d=e.ref([]);e.watch(()=>n.openKeys,function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d.value;K.default(d.value,t)||(d.value=t.slice())},{immediate:!0,deep:!0});let A;const ee=t=>{clearTimeout(A),A=setTimeout(()=>{n.activeKey===void 0&&(M.value=t),y("update:activeKey",t[t.length-1])})},te=e.computed(()=>!!n.disabled),D=e.computed(()=>J.value==="rtl"),s=e.ref("vertical"),w=e.shallowRef(!1);e.watchEffect(()=>{var t;(n.mode==="inline"||n.mode==="vertical")&&$.value?(s.value="vertical",w.value=$.value):(s.value=n.mode,w.value=!1),!((t=a==null?void 0:a.mode)===null||t===void 0)&&t.value&&(s.value=a.mode.value)});const O=e.computed(()=>s.value==="inline"),x=t=>{d.value=t,y("update:openKeys",t),y("openChange",t)},j=e.ref(d.value),k=e.shallowRef(!1);e.watch(d,()=>{O.value&&(j.value=d.value)},{immediate:!0}),e.watch(O,()=>{if(!k.value){k.value=!0;return}O.value?d.value=j.value:x(U)},{immediate:!0});const ne=e.computed(()=>({[`${c.value}`]:!0,[`${c.value}-root`]:!0,[`${c.value}-${s.value}`]:!0,[`${c.value}-inline-collapsed`]:w.value,[`${c.value}-rtl`]:D.value,[`${c.value}-${n.theme}`]:!0})),E=e.computed(()=>N()),le=e.computed(()=>({horizontal:{name:`${E.value}-slide-up`},inline:ye.default(`${E.value}-motion-collapse`),other:{name:`${E.value}-zoom-big`}}));P.useProvideFirstLevel(!0);const L=function(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];const l=[],u=f.value;return t.forEach(o=>{const{key:i,childrenEventKeys:r}=u.get(o);l.push(i,...L(e.unref(r)))}),l},ue=t=>{var l;y("click",t),Z(t),(l=a==null?void 0:a.onClick)===null||l===void 0||l.call(a)},ae=(t,l)=>{var u;const o=((u=C.value[t])===null||u===void 0?void 0:u.childrenEventKeys)||[];let i=d.value.filter(r=>r!==t);if(l)i.push(t);else if(s.value!=="inline"){const r=L(e.unref(o));i=R.default(i.filter(v=>!r.includes(v)))}K.default(d,i)||x(i)},oe=(t,l)=>{f.value.set(t,l),f.value=new Map(f.value)},ie=t=>{f.value.delete(t),f.value=new Map(f.value)},q=e.ref(0),de=e.computed(()=>{var t;return n.expandIcon||h.expandIcon||!((t=a==null?void 0:a.expandIcon)===null||t===void 0)&&t.value?l=>{let u=n.expandIcon||h.expandIcon;return u=typeof u=="function"?u(l):u,me.cloneElement(u,{class:`${c.value}-submenu-expand-icon`},!1)}:null});return P.default({prefixCls:c,activeKeys:M,openKeys:d,selectedKeys:m,changeActiveKeys:ee,disabled:te,rtl:D,mode:s,inlineIndent:e.computed(()=>n.inlineIndent),subMenuCloseDelay:e.computed(()=>n.subMenuCloseDelay),subMenuOpenDelay:e.computed(()=>n.subMenuOpenDelay),builtinPlacements:e.computed(()=>n.builtinPlacements),triggerSubMenuAction:e.computed(()=>n.triggerSubMenuAction),getPopupContainer:e.computed(()=>n.getPopupContainer),inlineCollapsed:w,theme:e.computed(()=>n.theme),siderCollapsed:p,defaultMotions:e.computed(()=>I.value?le.value:null),motion:e.computed(()=>I.value?n.motion:null),overflowDisabled:e.shallowRef(void 0),onOpenChange:ae,onItemClick:ue,registerMenuInfo:oe,unRegisterMenuInfo:ie,selectedSubMenuKeys:S,expandIcon:de,forceSubMenuRender:e.computed(()=>n.forceSubMenuRender),rootClassName:_}),()=>{var t,l;const u=X.value||re.flattenChildren((t=h.default)===null||t===void 0?void 0:t.call(h)),o=q.value>=u.length-1||s.value!=="horizontal"||n.disabledOverflow,i=s.value!=="horizontal"||n.disabledOverflow?u:u.map((v,g)=>e.createVNode(P.MenuContextProvider,{key:v.key,overflowDisabled:g>q.value},{default:()=>v})),r=((l=h.overflowedIndicator)===null||l===void 0?void 0:l.call(h))||e.createVNode(fe.default,null,null);return Q(e.createVNode(V.default,T.default(T.default({},F),{},{onMousedown:n.onMousedown,prefixCls:`${c.value}-overflow`,component:"ul",itemComponent:ve.default,class:[ne.value,F.class,_.value],role:"menu",id:n.id,data:i,renderRawItem:v=>v,renderRawRest:v=>{const g=v.length,B=g?u.slice(-g):null;return e.createVNode(e.Fragment,null,[e.createVNode(Y.default,{eventKey:b.OVERFLOW_KEY,key:b.OVERFLOW_KEY,title:r,disabled:o,internalPopupClose:g===0},{default:()=>B}),e.createVNode(b.PathContext,null,{default:()=>[e.createVNode(Y.default,{eventKey:b.OVERFLOW_KEY,key:b.OVERFLOW_KEY,title:r,disabled:o,internalPopupClose:g===0},{default:()=>B})]})])},maxCount:s.value!=="horizontal"||n.disabledOverflow?V.default.INVALIDATE:V.default.RESPONSIVE,ssr:"full","data-menu-list":!0,onVisibleChange:v=>{q.value=v}}),{default:()=>[e.createVNode(e.Teleport,{to:"body"},{default:()=>[e.createVNode("div",{style:{display:"none"},"aria-hidden":!0},[e.createVNode(b.PathContext,null,{default:()=>[i]})])]})]}))}}});exports.default=Ce;exports.menuProps=G;
;