UNPKG

vuux

Version:

Vue3 Nuxt3 Nuxt4 组件库

2 lines (1 loc) 1.18 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("vue"),f=require("@vuux/utils"),h=(s,a)=>{const n=c.inject("menuContext"),l=c.computed(()=>n?.props.skey),d=c.computed(()=>n?.props.trigger==="hover"&&n?.props.mode!=="vertical"&&!f.Utils.isMobile),v=c.computed(()=>n?.props.mode==="horizontal"),r=(e,t)=>{e.disabled||n?.onOpenKeys(e[l.value],t)};let o=null;return{menuContext:n,onMouseenter:e=>{if(e.children?.length&&d.value){o&&(clearTimeout(o),o=null);for(let t=0;t<s.data.length;t++){const u=s.data[t];n?.openKeys.value.includes(u[l.value])&&u!==e&&n?.onOpenKeys(u[l.value],!1)}r(e,!0)}},onMouseleave:e=>{!e.children?.length||!d.value||(o=window.setTimeout(()=>r(e,!1),100))},handleClick:(e,t)=>{if(t.stopPropagation(),!e.disabled){o&&(clearTimeout(o),o=null);for(let u=0;u<s.data.length;u++){const i=s.data[u];if(n?.openKeys.value.includes(i[l.value])&&i!==e){n?.onOpenKeys(i[l.value],!1);break}}e.children?.length?r(e,!n?.openKeys.value.includes(e[l.value])):(n?.onSelectKey(e[l.value]),v.value&&(n.openKeys.value=[])),a("select",e),a("change",e)}},onSelect:e=>{a("select",e)},onChange:e=>{a("change",e)}}};exports.useItemMenu=h;