测试
This commit is contained in:
21
frontend/node_modules/element-plus/es/components/menu/index.d.ts
generated
vendored
Normal file
21
frontend/node_modules/element-plus/es/components/menu/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
import Menu from './src/menu';
|
||||
import MenuItem from './src/menu-item.vue';
|
||||
import MenuItemGroup from './src/menu-item-group.vue';
|
||||
import SubMenu from './src/sub-menu';
|
||||
import type { SFCWithInstall } from 'element-plus/es/utils';
|
||||
export declare const ElMenu: SFCWithInstall<typeof Menu> & {
|
||||
MenuItem: typeof MenuItem;
|
||||
MenuItemGroup: typeof MenuItemGroup;
|
||||
SubMenu: typeof SubMenu;
|
||||
};
|
||||
export default ElMenu;
|
||||
export declare const ElMenuItem: SFCWithInstall<typeof MenuItem>;
|
||||
export declare const ElMenuItemGroup: SFCWithInstall<typeof MenuItemGroup>;
|
||||
export declare const ElSubMenu: SFCWithInstall<typeof SubMenu>;
|
||||
export * from './src/menu';
|
||||
export * from './src/menu-item';
|
||||
export * from './src/menu-item-group';
|
||||
export * from './src/sub-menu';
|
||||
export * from './src/types';
|
||||
export * from './src/instance';
|
||||
export * from './src/tokens';
|
||||
22
frontend/node_modules/element-plus/es/components/menu/index.mjs
generated
vendored
Normal file
22
frontend/node_modules/element-plus/es/components/menu/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
import Menu from './src/menu.mjs';
|
||||
export { menuEmits, menuProps } from './src/menu.mjs';
|
||||
import MenuItem from './src/menu-item2.mjs';
|
||||
import MenuItemGroup from './src/menu-item-group.mjs';
|
||||
import SubMenu from './src/sub-menu.mjs';
|
||||
export { subMenuProps } from './src/sub-menu.mjs';
|
||||
export { menuItemEmits, menuItemProps } from './src/menu-item.mjs';
|
||||
export { menuItemGroupProps } from './src/menu-item-group2.mjs';
|
||||
export { MENU_INJECTION_KEY, SUB_MENU_INJECTION_KEY } from './src/tokens.mjs';
|
||||
import { withInstall, withNoopInstall } from '../../utils/vue/install.mjs';
|
||||
|
||||
const ElMenu = withInstall(Menu, {
|
||||
MenuItem,
|
||||
MenuItemGroup,
|
||||
SubMenu
|
||||
});
|
||||
const ElMenuItem = withNoopInstall(MenuItem);
|
||||
const ElMenuItemGroup = withNoopInstall(MenuItemGroup);
|
||||
const ElSubMenu = withNoopInstall(SubMenu);
|
||||
|
||||
export { ElMenu, ElMenuItem, ElMenuItemGroup, ElSubMenu, ElMenu as default };
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/index.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/index.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/menu/index.ts"],"sourcesContent":["import { withInstall, withNoopInstall } from '@element-plus/utils'\nimport Menu from './src/menu'\nimport MenuItem from './src/menu-item.vue'\nimport MenuItemGroup from './src/menu-item-group.vue'\nimport SubMenu from './src/sub-menu'\n\nimport type { SFCWithInstall } from '@element-plus/utils'\n\nexport const ElMenu: SFCWithInstall<typeof Menu> & {\n MenuItem: typeof MenuItem\n MenuItemGroup: typeof MenuItemGroup\n SubMenu: typeof SubMenu\n} = withInstall(Menu, {\n MenuItem,\n MenuItemGroup,\n SubMenu,\n})\nexport default ElMenu\nexport const ElMenuItem: SFCWithInstall<typeof MenuItem> =\n withNoopInstall(MenuItem)\nexport const ElMenuItemGroup: SFCWithInstall<typeof MenuItemGroup> =\n withNoopInstall(MenuItemGroup)\nexport const ElSubMenu: SFCWithInstall<typeof SubMenu> =\n withNoopInstall(SubMenu)\n\nexport * from './src/menu'\nexport * from './src/menu-item'\nexport * from './src/menu-item-group'\nexport * from './src/sub-menu'\nexport * from './src/types'\nexport * from './src/instance'\nexport * from './src/tokens'\n"],"names":[],"mappings":";;;;;;;;;;;AAKY,MAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE;AACxC,EAAE,QAAQ;AACV,EAAE,aAAa;AACf,EAAE,OAAO;AACT,CAAC,EAAE;AAES,MAAC,UAAU,GAAG,eAAe,CAAC,QAAQ,EAAE;AACxC,MAAC,eAAe,GAAG,eAAe,CAAC,aAAa,EAAE;AAClD,MAAC,SAAS,GAAG,eAAe,CAAC,OAAO;;;;"}
|
||||
13
frontend/node_modules/element-plus/es/components/menu/src/instance.d.ts
generated
vendored
Normal file
13
frontend/node_modules/element-plus/es/components/menu/src/instance.d.ts
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
import type Menu from './menu';
|
||||
import type MenuItem from './menu-item.vue';
|
||||
import type MenuItemGroup from './menu-item-group.vue';
|
||||
import type SubMenu from './sub-menu';
|
||||
export type MenuInstance = InstanceType<typeof Menu> & {
|
||||
open: (index: string) => void;
|
||||
close: (index: string) => void;
|
||||
handleResize: () => void;
|
||||
updateActiveIndex: (index: string) => void;
|
||||
};
|
||||
export type MenuItemInstance = InstanceType<typeof MenuItem> & unknown;
|
||||
export type MenuItemGroupInstance = InstanceType<typeof MenuItemGroup> & unknown;
|
||||
export type SubMenuInstance = InstanceType<typeof SubMenu> & unknown;
|
||||
2
frontend/node_modules/element-plus/es/components/menu/src/instance.mjs
generated
vendored
Normal file
2
frontend/node_modules/element-plus/es/components/menu/src/instance.mjs
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
//# sourceMappingURL=instance.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/instance.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/instance.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"instance.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
||||
59
frontend/node_modules/element-plus/es/components/menu/src/menu-collapse-transition.mjs
generated
vendored
Normal file
59
frontend/node_modules/element-plus/es/components/menu/src/menu-collapse-transition.mjs
generated
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
import { defineComponent, openBlock, createBlock, Transition, mergeProps, unref, withCtx, renderSlot } from 'vue';
|
||||
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
||||
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
||||
import { addClass, removeClass, hasClass } from '../../../utils/dom/style.mjs';
|
||||
|
||||
const __default__ = defineComponent({
|
||||
name: "ElMenuCollapseTransition"
|
||||
});
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
...__default__,
|
||||
setup(__props) {
|
||||
const ns = useNamespace("menu");
|
||||
const listeners = {
|
||||
onBeforeEnter: (el) => el.style.opacity = "0.2",
|
||||
onEnter(el, done) {
|
||||
addClass(el, `${ns.namespace.value}-opacity-transition`);
|
||||
el.style.opacity = "1";
|
||||
done();
|
||||
},
|
||||
onAfterEnter(el) {
|
||||
removeClass(el, `${ns.namespace.value}-opacity-transition`);
|
||||
el.style.opacity = "";
|
||||
},
|
||||
onBeforeLeave(el) {
|
||||
if (!el.dataset)
|
||||
el.dataset = {};
|
||||
if (hasClass(el, ns.m("collapse"))) {
|
||||
removeClass(el, ns.m("collapse"));
|
||||
el.dataset.oldOverflow = el.style.overflow;
|
||||
el.dataset.scrollWidth = el.clientWidth.toString();
|
||||
addClass(el, ns.m("collapse"));
|
||||
} else {
|
||||
addClass(el, ns.m("collapse"));
|
||||
el.dataset.oldOverflow = el.style.overflow;
|
||||
el.dataset.scrollWidth = el.clientWidth.toString();
|
||||
removeClass(el, ns.m("collapse"));
|
||||
}
|
||||
el.style.width = `${el.scrollWidth}px`;
|
||||
el.style.overflow = "hidden";
|
||||
},
|
||||
onLeave(el) {
|
||||
addClass(el, "horizontal-collapse-transition");
|
||||
el.style.width = `${el.dataset.scrollWidth}px`;
|
||||
}
|
||||
};
|
||||
return (_ctx, _cache) => {
|
||||
return openBlock(), createBlock(Transition, mergeProps({ mode: "out-in" }, unref(listeners)), {
|
||||
default: withCtx(() => [
|
||||
renderSlot(_ctx.$slots, "default")
|
||||
]),
|
||||
_: 3
|
||||
}, 16);
|
||||
};
|
||||
}
|
||||
});
|
||||
var ElMenuCollapseTransition = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "menu-collapse-transition.vue"]]);
|
||||
|
||||
export { ElMenuCollapseTransition as default };
|
||||
//# sourceMappingURL=menu-collapse-transition.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/menu-collapse-transition.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/menu-collapse-transition.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"menu-collapse-transition.mjs","sources":["../../../../../../packages/components/menu/src/menu-collapse-transition.vue"],"sourcesContent":["<template>\n <transition mode=\"out-in\" v-bind=\"listeners\">\n <slot />\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useNamespace } from '@element-plus/hooks'\nimport { addClass, hasClass, removeClass } from '@element-plus/utils'\n\nimport type { BaseTransitionProps, TransitionProps } from 'vue'\n\ndefineOptions({\n name: 'ElMenuCollapseTransition',\n})\n\nconst ns = useNamespace('menu')\nconst listeners = {\n onBeforeEnter: (el) => (el.style.opacity = '0.2'),\n onEnter(el, done) {\n addClass(el, `${ns.namespace.value}-opacity-transition`)\n el.style.opacity = '1'\n done()\n },\n\n onAfterEnter(el) {\n removeClass(el, `${ns.namespace.value}-opacity-transition`)\n el.style.opacity = ''\n },\n\n onBeforeLeave(el) {\n if (!el.dataset) (el as any).dataset = {}\n\n if (hasClass(el, ns.m('collapse'))) {\n removeClass(el, ns.m('collapse'))\n el.dataset.oldOverflow = el.style.overflow\n el.dataset.scrollWidth = el.clientWidth.toString()\n addClass(el, ns.m('collapse'))\n } else {\n addClass(el, ns.m('collapse'))\n el.dataset.oldOverflow = el.style.overflow\n el.dataset.scrollWidth = el.clientWidth.toString()\n removeClass(el, ns.m('collapse'))\n }\n\n el.style.width = `${el.scrollWidth}px`\n el.style.overflow = 'hidden'\n },\n\n onLeave(el: HTMLElement) {\n addClass(el, 'horizontal-collapse-transition')\n el.style.width = `${el.dataset.scrollWidth}px`\n },\n} as BaseTransitionProps<HTMLElement> as TransitionProps\n</script>\n"],"names":[],"mappings":";;;;;mCAYc,CAAA;AAAA,EACZ,IAAM,EAAA,0BAAA;AACR,CAAA,CAAA,CAAA;;;;AAEA,IAAM,MAAA,EAAA,GAAK,aAAa,MAAM,CAAA,CAAA;AAC9B,IAAA,MAAM,SAAY,GAAA;AAAA,MAChB,aAAe,EAAA,CAAC,EAAQ,KAAA,EAAA,CAAG,MAAM,OAAU,GAAA,KAAA;AAAA,MAC3C,OAAA,CAAQ,IAAI,IAAM,EAAA;AAChB,QAAA,QAAA,CAAS,EAAI,EAAA,CAAA,EAAG,EAAG,CAAA,SAAA,CAAU,KAAK,CAAqB,mBAAA,CAAA,CAAA,CAAA;AACvD,QAAA,EAAA,CAAG,MAAM,OAAU,GAAA,GAAA,CAAA;AACnB,QAAK,IAAA,EAAA,CAAA;AAAA,OACP;AAAA,MAEA,aAAa,EAAI,EAAA;AACf,QAAA,WAAA,CAAY,EAAI,EAAA,CAAA,EAAG,EAAG,CAAA,SAAA,CAAU,KAAK,CAAqB,mBAAA,CAAA,CAAA,CAAA;AAC1D,QAAA,EAAA,CAAG,MAAM,OAAU,GAAA,EAAA,CAAA;AAAA,OACrB;AAAA,MAEA,cAAc,EAAI,EAAA;AAChB,QAAA,IAAI,CAAC,EAAG,CAAA,OAAA;AAER,UAAA,EAAI,WAAa,EAAA,CAAA;AACf,QAAA,IAAA,QAAA,CAAA,EAAgB,EAAA,EAAA,CAAA,CAAG,CAAE,UAAA,CAAU,CAAC,EAAA;AAChC,UAAG,WAAQ,CAAc,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,UAAS,CAAA,CAAA,CAAA;AAClC,UAAA,EAAA,CAAG,OAAQ,CAAA,WAAA,GAAc,EAAG,CAAA,KAAA,CAAA,QAAqB,CAAA;AACjD,UAAA,EAAA,CAAA,OAAa,CAAA,WAAK,GAAA,EAAA,CAAU,WAAC,CAAA,QAAA,EAAA,CAAA;AAAA,UACxB,QAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA;AACL,SAAA,MAAA;AACA,UAAG,QAAA,CAAA,EAAQ,EAAc,EAAA,CAAA,CAAA,CAAA,UAAG,CAAM,CAAA,CAAA;AAClC,UAAA,EAAA,CAAG,OAAQ,CAAA,WAAA,GAAc,EAAG,CAAA,KAAA,CAAA,QAAqB,CAAA;AACjD,UAAA,EAAA,CAAA,OAAA,CAAA,WAAqB,GAAA,EAAA,CAAA,WAAW,CAAA,QAAA,EAAA,CAAA;AAAA,UAClC,WAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,UAAA,CAAA,CAAA,CAAA;AAEA,SAAA;AACA,QAAA,EAAA,CAAG,MAAM,KAAW,GAAA,CAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,CAAA;AAAA,QACtB,EAAA,CAAA,KAAA,CAAA,QAAA,GAAA,QAAA,CAAA;AAAA;AAGE,MAAA,OAAA,CAAA,EAAA;AACA,QAAA,QAAS,CAAA,EAAA,EAAA,gCAAiC,CAAA,CAAA;AAAA,QAC5C,EAAA,CAAA,KAAA,CAAA,KAAA,GAAA,CAAA,EAAA,EAAA,CAAA,OAAA,CAAA,WAAA,CAAA,EAAA,CAAA,CAAA;AAAA,OACF;;;;;;;;;;;;;;;;"}
|
||||
11
frontend/node_modules/element-plus/es/components/menu/src/menu-collapse-transition.vue.d.ts
generated
vendored
Normal file
11
frontend/node_modules/element-plus/es/components/menu/src/menu-collapse-transition.vue.d.ts
generated
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
declare function __VLS_template(): {
|
||||
default?(_: {}): any;
|
||||
};
|
||||
declare const __VLS_component: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, import("vue").EmitsOptions, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
||||
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
||||
export default _default;
|
||||
type __VLS_WithTemplateSlots<T, S> = T & {
|
||||
new (): {
|
||||
$slots: S;
|
||||
};
|
||||
};
|
||||
9
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group.d.ts
generated
vendored
Normal file
9
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group.d.ts
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
import type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue';
|
||||
export declare const menuItemGroupProps: {
|
||||
/**
|
||||
* @description group title
|
||||
*/
|
||||
readonly title: StringConstructor;
|
||||
};
|
||||
export type MenuItemGroupProps = ExtractPropTypes<typeof menuItemGroupProps>;
|
||||
export type MenuItemGroupPropsPublic = __ExtractPublicPropTypes<typeof menuItemGroupProps>;
|
||||
35
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group.mjs
generated
vendored
Normal file
35
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group.mjs
generated
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, Fragment, createTextVNode, toDisplayString, renderSlot } from 'vue';
|
||||
import { menuItemGroupProps } from './menu-item-group2.mjs';
|
||||
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
||||
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
||||
|
||||
const __default__ = defineComponent({
|
||||
name: "ElMenuItemGroup"
|
||||
});
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
...__default__,
|
||||
props: menuItemGroupProps,
|
||||
setup(__props) {
|
||||
const ns = useNamespace("menu-item-group");
|
||||
return (_ctx, _cache) => {
|
||||
return openBlock(), createElementBlock("li", {
|
||||
class: normalizeClass(unref(ns).b())
|
||||
}, [
|
||||
createElementVNode("div", {
|
||||
class: normalizeClass(unref(ns).e("title"))
|
||||
}, [
|
||||
!_ctx.$slots.title ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
|
||||
createTextVNode(toDisplayString(_ctx.title), 1)
|
||||
], 64)) : renderSlot(_ctx.$slots, "title", { key: 1 })
|
||||
], 2),
|
||||
createElementVNode("ul", null, [
|
||||
renderSlot(_ctx.$slots, "default")
|
||||
])
|
||||
], 2);
|
||||
};
|
||||
}
|
||||
});
|
||||
var MenuItemGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "menu-item-group.vue"]]);
|
||||
|
||||
export { MenuItemGroup as default };
|
||||
//# sourceMappingURL=menu-item-group.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"menu-item-group.mjs","sources":["../../../../../../packages/components/menu/src/menu-item-group.vue"],"sourcesContent":["<template>\n <li :class=\"ns.b()\">\n <div :class=\"ns.e('title')\">\n <template v-if=\"!$slots.title\">{{ title }}</template>\n <slot v-else name=\"title\" />\n </div>\n <ul>\n <slot />\n </ul>\n </li>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useNamespace } from '@element-plus/hooks'\nimport { menuItemGroupProps } from './menu-item-group'\n\ndefineOptions({\n name: 'ElMenuItemGroup',\n})\ndefineProps(menuItemGroupProps)\nconst ns = useNamespace('menu-item-group')\n</script>\n"],"names":[],"mappings":";;;;;mCAgBc,CAAA;AAAA,EACZ,IAAM,EAAA,iBAAA;AACR,CAAA,CAAA,CAAA;;;;;AAEA,IAAM,MAAA,EAAA,GAAK,aAAa,iBAAiB,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
16
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group.vue.d.ts
generated
vendored
Normal file
16
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group.vue.d.ts
generated
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
declare function __VLS_template(): {
|
||||
title?(_: {}): any;
|
||||
default?(_: {}): any;
|
||||
};
|
||||
declare const __VLS_component: import("vue").DefineComponent<{
|
||||
readonly title: StringConstructor;
|
||||
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
||||
readonly title: StringConstructor;
|
||||
}>>, {}>;
|
||||
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
||||
export default _default;
|
||||
type __VLS_WithTemplateSlots<T, S> = T & {
|
||||
new (): {
|
||||
$slots: S;
|
||||
};
|
||||
};
|
||||
6
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group2.mjs
generated
vendored
Normal file
6
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group2.mjs
generated
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
const menuItemGroupProps = {
|
||||
title: String
|
||||
};
|
||||
|
||||
export { menuItemGroupProps };
|
||||
//# sourceMappingURL=menu-item-group2.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group2.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/menu-item-group2.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"menu-item-group2.mjs","sources":["../../../../../../packages/components/menu/src/menu-item-group.ts"],"sourcesContent":["import type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue'\n\nexport const menuItemGroupProps = {\n /**\n * @description group title\n */\n title: String,\n} as const\nexport type MenuItemGroupProps = ExtractPropTypes<typeof menuItemGroupProps>\nexport type MenuItemGroupPropsPublic = __ExtractPublicPropTypes<\n typeof menuItemGroupProps\n>\n"],"names":[],"mappings":"AAAY,MAAC,kBAAkB,GAAG;AAClC,EAAE,KAAK,EAAE,MAAM;AACf;;;;"}
|
||||
19
frontend/node_modules/element-plus/es/components/menu/src/menu-item.d.ts
generated
vendored
Normal file
19
frontend/node_modules/element-plus/es/components/menu/src/menu-item.d.ts
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
import type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue';
|
||||
import type { RouteLocationRaw } from 'vue-router';
|
||||
import type { MenuItemRegistered } from './types';
|
||||
export declare const menuItemProps: {
|
||||
readonly index: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string) | (() => string | null) | ((new (...args: any[]) => string) | (() => string | null))[], unknown, unknown, null, boolean>;
|
||||
readonly route: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => RouteLocationRaw & {}) | (() => RouteLocationRaw) | ((new (...args: any[]) => RouteLocationRaw & {}) | (() => RouteLocationRaw))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly disabled: BooleanConstructor;
|
||||
};
|
||||
export type MenuItemProps = ExtractPropTypes<typeof menuItemProps>;
|
||||
export type MenuItemPropsPublic = __ExtractPublicPropTypes<typeof menuItemProps>;
|
||||
export declare const menuItemEmits: {
|
||||
click: (item: MenuItemRegistered) => boolean;
|
||||
};
|
||||
export type MenuItemEmits = typeof menuItemEmits;
|
||||
19
frontend/node_modules/element-plus/es/components/menu/src/menu-item.mjs
generated
vendored
Normal file
19
frontend/node_modules/element-plus/es/components/menu/src/menu-item.mjs
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
|
||||
import { isString, isArray } from '@vue/shared';
|
||||
|
||||
const menuItemProps = buildProps({
|
||||
index: {
|
||||
type: definePropType([String, null]),
|
||||
default: null
|
||||
},
|
||||
route: {
|
||||
type: definePropType([String, Object])
|
||||
},
|
||||
disabled: Boolean
|
||||
});
|
||||
const menuItemEmits = {
|
||||
click: (item) => isString(item.index) && isArray(item.indexPath)
|
||||
};
|
||||
|
||||
export { menuItemEmits, menuItemProps };
|
||||
//# sourceMappingURL=menu-item.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/menu-item.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/menu-item.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"menu-item.mjs","sources":["../../../../../../packages/components/menu/src/menu-item.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n isArray,\n isString,\n} from '@element-plus/utils'\n\nimport type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue'\nimport type { RouteLocationRaw } from 'vue-router'\nimport type { MenuItemRegistered } from './types'\n\nexport const menuItemProps = buildProps({\n /**\n * @description unique identification\n */\n index: {\n type: definePropType<string | null>([String, null]),\n // will be required in the next major version\n // required: true,\n default: null,\n },\n /**\n * @description Vue Router object\n */\n route: {\n type: definePropType<RouteLocationRaw>([String, Object]),\n },\n /**\n * @description whether disabled\n */\n disabled: Boolean,\n} as const)\nexport type MenuItemProps = ExtractPropTypes<typeof menuItemProps>\nexport type MenuItemPropsPublic = __ExtractPublicPropTypes<typeof menuItemProps>\n\nexport const menuItemEmits = {\n click: (item: MenuItemRegistered) =>\n isString(item.index) && isArray(item.indexPath),\n}\nexport type MenuItemEmits = typeof menuItemEmits\n"],"names":[],"mappings":";;;AAMY,MAAC,aAAa,GAAG,UAAU,CAAC;AACxC,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACxC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,CAAC,EAAE;AACS,MAAC,aAAa,GAAG;AAC7B,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;AAClE;;;;"}
|
||||
81
frontend/node_modules/element-plus/es/components/menu/src/menu-item.vue.d.ts
generated
vendored
Normal file
81
frontend/node_modules/element-plus/es/components/menu/src/menu-item.vue.d.ts
generated
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
import type { MenuItemRegistered, MenuProvider } from './types';
|
||||
declare function __VLS_template(): {
|
||||
title?(_: {}): any;
|
||||
title?(_: {}): any;
|
||||
default?(_: {}): any;
|
||||
default?(_: {}): any;
|
||||
};
|
||||
declare const __VLS_component: import("vue").DefineComponent<{
|
||||
readonly index: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string) | (() => string | null) | ((new (...args: any[]) => string) | (() => string | null))[], unknown, unknown, null, boolean>;
|
||||
readonly route: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => import("vue-router").RouteLocationRaw & {}) | (() => import("vue-router").RouteLocationRaw) | ((new (...args: any[]) => import("vue-router").RouteLocationRaw & {}) | (() => import("vue-router").RouteLocationRaw))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly disabled: BooleanConstructor;
|
||||
}, {
|
||||
parentMenu: import("vue").ComputedRef<import("vue").ComponentInternalInstance>;
|
||||
rootMenu: MenuProvider;
|
||||
active: import("vue").ComputedRef<boolean>;
|
||||
nsMenu: {
|
||||
namespace: import("vue").ComputedRef<string>;
|
||||
b: (blockSuffix?: string) => string;
|
||||
e: (element?: string) => string;
|
||||
m: (modifier?: string) => string;
|
||||
be: (blockSuffix?: string, element?: string) => string;
|
||||
em: (element?: string, modifier?: string) => string;
|
||||
bm: (blockSuffix?: string, modifier?: string) => string;
|
||||
bem: (blockSuffix?: string, element?: string, modifier?: string) => string;
|
||||
is: {
|
||||
(name: string, state: boolean | undefined): string;
|
||||
(name: string): string;
|
||||
};
|
||||
cssVar: (object: Record<string, string>) => Record<string, string>;
|
||||
cssVarName: (name: string) => string;
|
||||
cssVarBlock: (object: Record<string, string>) => Record<string, string>;
|
||||
cssVarBlockName: (name: string) => string;
|
||||
};
|
||||
nsMenuItem: {
|
||||
namespace: import("vue").ComputedRef<string>;
|
||||
b: (blockSuffix?: string) => string;
|
||||
e: (element?: string) => string;
|
||||
m: (modifier?: string) => string;
|
||||
be: (blockSuffix?: string, element?: string) => string;
|
||||
em: (element?: string, modifier?: string) => string;
|
||||
bm: (blockSuffix?: string, modifier?: string) => string;
|
||||
bem: (blockSuffix?: string, element?: string, modifier?: string) => string;
|
||||
is: {
|
||||
(name: string, state: boolean | undefined): string;
|
||||
(name: string): string;
|
||||
};
|
||||
cssVar: (object: Record<string, string>) => Record<string, string>;
|
||||
cssVarName: (name: string) => string;
|
||||
cssVarBlock: (object: Record<string, string>) => Record<string, string>;
|
||||
cssVarBlockName: (name: string) => string;
|
||||
};
|
||||
handleClick: () => void;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
||||
click: (item: MenuItemRegistered) => void;
|
||||
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
||||
readonly index: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string) | (() => string | null) | ((new (...args: any[]) => string) | (() => string | null))[], unknown, unknown, null, boolean>;
|
||||
readonly route: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => import("vue-router").RouteLocationRaw & {}) | (() => import("vue-router").RouteLocationRaw) | ((new (...args: any[]) => import("vue-router").RouteLocationRaw & {}) | (() => import("vue-router").RouteLocationRaw))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly disabled: BooleanConstructor;
|
||||
}>> & {
|
||||
onClick?: ((item: MenuItemRegistered) => any) | undefined;
|
||||
}, {
|
||||
readonly disabled: boolean;
|
||||
readonly index: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string) | (() => string | null) | ((new (...args: any[]) => string) | (() => string | null))[], unknown, unknown>;
|
||||
}>;
|
||||
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
||||
export default _default;
|
||||
type __VLS_WithTemplateSlots<T, S> = T & {
|
||||
new (): {
|
||||
$slots: S;
|
||||
};
|
||||
};
|
||||
105
frontend/node_modules/element-plus/es/components/menu/src/menu-item2.mjs
generated
vendored
Normal file
105
frontend/node_modules/element-plus/es/components/menu/src/menu-item2.mjs
generated
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
import { defineComponent, getCurrentInstance, inject, toRef, computed, reactive, onMounted, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, unref, createBlock, withCtx, renderSlot, createElementVNode, Fragment } from 'vue';
|
||||
import { ElTooltip } from '../../tooltip/index.mjs';
|
||||
import useMenu from './use-menu.mjs';
|
||||
import { menuItemProps, menuItemEmits } from './menu-item.mjs';
|
||||
import { MENU_INJECTION_KEY, SUB_MENU_INJECTION_KEY } from './tokens.mjs';
|
||||
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
||||
import { isPropAbsent } from '../../../utils/types.mjs';
|
||||
import { debugWarn, throwError } from '../../../utils/error.mjs';
|
||||
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
||||
|
||||
const COMPONENT_NAME = "ElMenuItem";
|
||||
const __default__ = defineComponent({
|
||||
name: COMPONENT_NAME
|
||||
});
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
...__default__,
|
||||
props: menuItemProps,
|
||||
emits: menuItemEmits,
|
||||
setup(__props, { expose, emit }) {
|
||||
const props = __props;
|
||||
isPropAbsent(props.index) && debugWarn();
|
||||
const instance = getCurrentInstance();
|
||||
const rootMenu = inject(MENU_INJECTION_KEY);
|
||||
const nsMenu = useNamespace("menu");
|
||||
const nsMenuItem = useNamespace("menu-item");
|
||||
if (!rootMenu)
|
||||
throwError(COMPONENT_NAME, "can not inject root menu");
|
||||
const { parentMenu, indexPath } = useMenu(instance, toRef(props, "index"));
|
||||
const subMenu = inject(`${SUB_MENU_INJECTION_KEY}${parentMenu.value.uid}`);
|
||||
if (!subMenu)
|
||||
throwError(COMPONENT_NAME, "can not inject sub menu");
|
||||
const active = computed(() => props.index === rootMenu.activeIndex);
|
||||
const item = reactive({
|
||||
index: props.index,
|
||||
indexPath,
|
||||
active
|
||||
});
|
||||
const handleClick = () => {
|
||||
if (!props.disabled) {
|
||||
rootMenu.handleMenuItemClick({
|
||||
index: props.index,
|
||||
indexPath: indexPath.value,
|
||||
route: props.route
|
||||
});
|
||||
emit("click", item);
|
||||
}
|
||||
};
|
||||
onMounted(() => {
|
||||
subMenu.addSubMenu(item);
|
||||
rootMenu.addMenuItem(item);
|
||||
});
|
||||
onBeforeUnmount(() => {
|
||||
subMenu.removeSubMenu(item);
|
||||
rootMenu.removeMenuItem(item);
|
||||
});
|
||||
expose({
|
||||
parentMenu,
|
||||
rootMenu,
|
||||
active,
|
||||
nsMenu,
|
||||
nsMenuItem,
|
||||
handleClick
|
||||
});
|
||||
return (_ctx, _cache) => {
|
||||
return openBlock(), createElementBlock("li", {
|
||||
class: normalizeClass([
|
||||
unref(nsMenuItem).b(),
|
||||
unref(nsMenuItem).is("active", unref(active)),
|
||||
unref(nsMenuItem).is("disabled", _ctx.disabled)
|
||||
]),
|
||||
role: "menuitem",
|
||||
tabindex: "-1",
|
||||
onClick: handleClick
|
||||
}, [
|
||||
unref(parentMenu).type.name === "ElMenu" && unref(rootMenu).props.collapse && _ctx.$slots.title ? (openBlock(), createBlock(unref(ElTooltip), {
|
||||
key: 0,
|
||||
effect: unref(rootMenu).props.popperEffect,
|
||||
placement: "right",
|
||||
"fallback-placements": ["left"],
|
||||
persistent: unref(rootMenu).props.persistent,
|
||||
"focus-on-target": ""
|
||||
}, {
|
||||
content: withCtx(() => [
|
||||
renderSlot(_ctx.$slots, "title")
|
||||
]),
|
||||
default: withCtx(() => [
|
||||
createElementVNode("div", {
|
||||
class: normalizeClass(unref(nsMenu).be("tooltip", "trigger"))
|
||||
}, [
|
||||
renderSlot(_ctx.$slots, "default")
|
||||
], 2)
|
||||
]),
|
||||
_: 3
|
||||
}, 8, ["effect", "persistent"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
||||
renderSlot(_ctx.$slots, "default"),
|
||||
renderSlot(_ctx.$slots, "title")
|
||||
], 64))
|
||||
], 2);
|
||||
};
|
||||
}
|
||||
});
|
||||
var MenuItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "menu-item.vue"]]);
|
||||
|
||||
export { MenuItem as default };
|
||||
//# sourceMappingURL=menu-item2.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/menu-item2.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/menu-item2.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"menu-item2.mjs","sources":["../../../../../../packages/components/menu/src/menu-item.vue"],"sourcesContent":["<template>\n <li\n :class=\"[\n nsMenuItem.b(),\n nsMenuItem.is('active', active),\n nsMenuItem.is('disabled', disabled),\n ]\"\n role=\"menuitem\"\n tabindex=\"-1\"\n @click=\"handleClick\"\n >\n <el-tooltip\n v-if=\"\n parentMenu.type.name === 'ElMenu' &&\n rootMenu.props.collapse &&\n $slots.title\n \"\n :effect=\"rootMenu.props.popperEffect\"\n placement=\"right\"\n :fallback-placements=\"['left']\"\n :persistent=\"rootMenu.props.persistent\"\n focus-on-target\n >\n <template #content>\n <slot name=\"title\" />\n </template>\n <div :class=\"nsMenu.be('tooltip', 'trigger')\">\n <slot />\n </div>\n </el-tooltip>\n <template v-else>\n <slot />\n <slot name=\"title\" />\n </template>\n </li>\n</template>\n\n<script lang=\"ts\" setup>\n// @ts-nocheck\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onMounted,\n reactive,\n toRef,\n} from 'vue'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { debugWarn, isPropAbsent, throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport useMenu from './use-menu'\nimport { menuItemEmits, menuItemProps } from './menu-item'\nimport { MENU_INJECTION_KEY, SUB_MENU_INJECTION_KEY } from './tokens'\n\nimport type { MenuItemRegistered, MenuProvider, SubMenuProvider } from './types'\n\nconst COMPONENT_NAME = 'ElMenuItem'\ndefineOptions({\n name: COMPONENT_NAME,\n})\nconst props = defineProps(menuItemProps)\nconst emit = defineEmits(menuItemEmits)\n\nisPropAbsent(props.index) &&\n debugWarn(COMPONENT_NAME, 'Missing required prop: \"index\"')\n\nconst instance = getCurrentInstance()!\nconst rootMenu = inject<MenuProvider>(MENU_INJECTION_KEY)\nconst nsMenu = useNamespace('menu')\nconst nsMenuItem = useNamespace('menu-item')\nif (!rootMenu) throwError(COMPONENT_NAME, 'can not inject root menu')\n\nconst { parentMenu, indexPath } = useMenu(instance, toRef(props, 'index'))\n\nconst subMenu = inject<SubMenuProvider>(\n `${SUB_MENU_INJECTION_KEY}${parentMenu.value.uid}`\n)\nif (!subMenu) throwError(COMPONENT_NAME, 'can not inject sub menu')\n\nconst active = computed(() => props.index === rootMenu.activeIndex)\nconst item: MenuItemRegistered = reactive({\n index: props.index,\n indexPath,\n active,\n})\n\nconst handleClick = () => {\n if (!props.disabled) {\n rootMenu.handleMenuItemClick({\n index: props.index,\n indexPath: indexPath.value,\n route: props.route,\n })\n emit('click', item)\n }\n}\n\nonMounted(() => {\n subMenu.addSubMenu(item)\n rootMenu.addMenuItem(item)\n})\n\nonBeforeUnmount(() => {\n subMenu.removeSubMenu(item)\n rootMenu.removeMenuItem(item)\n})\n\ndefineExpose({\n parentMenu,\n rootMenu,\n active,\n nsMenu,\n nsMenuItem,\n handleClick,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;mCA0Dc,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;;AAIA,IAAA,YAAA,CAAa,KAAM,CAAA,KAAK,CACtB,IAAA,SAAA,CAA0D,CAAA,CAAA;AAE5D,IAAA,MAAM,WAAW,kBAAmB,EAAA,CAAA;AACpC,IAAM,MAAA,QAAA,GAAW,OAAqB,kBAAkB,CAAA,CAAA;AACxD,IAAM,MAAA,MAAA,GAAS,aAAa,MAAM,CAAA,CAAA;AAClC,IAAM,MAAA,UAAA,GAAa,aAAa,WAAW,CAAA,CAAA;AAC3C,IAAA,IAAI,CAAC,QAAA;AAEL,MAAM,yBAAwB,EAAA,0BAAsB,CAAA,CAAA;AAEpD,IAAA,MAAM,EAAU,UAAA,EAAA,SAAA,EAAA,GAAA,OAAA,CAAA,QAAA,EAAA,KAAA,CAAA,KAAA,EAAA,OAAA,CAAA,CAAA,CAAA;AAAA,IAAA,MACX,OAAA,GAAA,MAAA,CAAA,CAAA,EAAA,sBAA6C,CAAA,EAAA,UAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AAAA,IAClD,IAAA,CAAA,OAAA;AACA,MAAA,UAAK,CAAS,cAAW,EAAA,yBAAyC,CAAA,CAAA;AAElE,IAAA,MAAM,SAAS,QAAS,CAAA,MAAM,KAAM,CAAA,KAAA,KAAU,SAAS,WAAW,CAAA,CAAA;AAClE,IAAA,MAAM,OAA2B,QAAS,CAAA;AAAA,MACxC,OAAO,KAAM,CAAA,KAAA;AAAA,MACb,SAAA;AAAA,MACA,MAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,cAAc,MAAM;AACxB,MAAI,IAAA,CAAC,MAAM,QAAU,EAAA;AACnB,QAAA,QAAA,CAAS,mBAAoB,CAAA;AAAA,UAC3B,OAAO,KAAM,CAAA,KAAA;AAAA,UACb,WAAW,SAAU,CAAA,KAAA;AAAA,UACrB,OAAO,KAAM,CAAA,KAAA;AAAA,SACd,CAAA,CAAA;AACD,QAAA,IAAA,CAAK,SAAS,IAAI,CAAA,CAAA;AAAA,OACpB;AAAA,KACF,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,OAAA,CAAQ,WAAW,IAAI,CAAA,CAAA;AACvB,MAAA,QAAA,CAAS,YAAY,IAAI,CAAA,CAAA;AAAA,KAC1B,CAAA,CAAA;AAED,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,OAAA,CAAQ,cAAc,IAAI,CAAA,CAAA;AAC1B,MAAA,QAAA,CAAS,eAAe,IAAI,CAAA,CAAA;AAAA,KAC7B,CAAA,CAAA;AAED,IAAa,MAAA,CAAA;AAAA,MACX,UAAA;AAAA,MACA,QAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
123
frontend/node_modules/element-plus/es/components/menu/src/menu.d.ts
generated
vendored
Normal file
123
frontend/node_modules/element-plus/es/components/menu/src/menu.d.ts
generated
vendored
Normal file
@@ -0,0 +1,123 @@
|
||||
import type { PopperEffect } from 'element-plus/es/components/popper';
|
||||
import type { MenuItemClicked } from './types';
|
||||
import type { NavigationFailure } from 'vue-router';
|
||||
import type { CSSProperties, Component, ExtractPropTypes, VNode, __ExtractPublicPropTypes } from 'vue';
|
||||
export declare const menuProps: {
|
||||
readonly mode: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "horizontal" | "vertical", unknown, "vertical", boolean>;
|
||||
readonly defaultActive: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
|
||||
readonly defaultOpeneds: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string[]) | (() => string[]) | ((new (...args: any[]) => string[]) | (() => string[]))[], unknown, unknown, () => [], boolean>;
|
||||
readonly uniqueOpened: BooleanConstructor;
|
||||
readonly router: BooleanConstructor;
|
||||
readonly menuTrigger: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "click" | "hover", unknown, "hover", boolean>;
|
||||
readonly collapse: BooleanConstructor;
|
||||
readonly backgroundColor: StringConstructor;
|
||||
readonly textColor: StringConstructor;
|
||||
readonly activeTextColor: StringConstructor;
|
||||
readonly closeOnClickOutside: BooleanConstructor;
|
||||
readonly collapseTransition: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
||||
readonly ellipsis: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
||||
readonly popperOffset: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
|
||||
readonly ellipsisIcon: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown, () => any, boolean>;
|
||||
readonly popperEffect: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string) | (() => PopperEffect) | ((new (...args: any[]) => string) | (() => PopperEffect))[], unknown, unknown, "dark", boolean>;
|
||||
readonly popperClass: StringConstructor;
|
||||
readonly popperStyle: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties) | ((new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly showTimeout: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
|
||||
readonly hideTimeout: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
|
||||
readonly persistent: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
||||
};
|
||||
export type MenuProps = ExtractPropTypes<typeof menuProps>;
|
||||
export type MenuPropsPublic = __ExtractPublicPropTypes<typeof menuProps>;
|
||||
export declare const menuEmits: {
|
||||
close: (index: string, indexPath: string[]) => boolean;
|
||||
open: (index: string, indexPath: string[]) => boolean;
|
||||
select: (index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<void | NavigationFailure>) => boolean;
|
||||
};
|
||||
export type MenuEmits = typeof menuEmits;
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
readonly mode: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "horizontal" | "vertical", unknown, "vertical", boolean>;
|
||||
readonly defaultActive: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
|
||||
readonly defaultOpeneds: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string[]) | (() => string[]) | ((new (...args: any[]) => string[]) | (() => string[]))[], unknown, unknown, () => [], boolean>;
|
||||
readonly uniqueOpened: BooleanConstructor;
|
||||
readonly router: BooleanConstructor;
|
||||
readonly menuTrigger: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "click" | "hover", unknown, "hover", boolean>;
|
||||
readonly collapse: BooleanConstructor;
|
||||
readonly backgroundColor: StringConstructor;
|
||||
readonly textColor: StringConstructor;
|
||||
readonly activeTextColor: StringConstructor;
|
||||
readonly closeOnClickOutside: BooleanConstructor;
|
||||
readonly collapseTransition: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
||||
readonly ellipsis: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
||||
readonly popperOffset: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
|
||||
readonly ellipsisIcon: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown, () => any, boolean>;
|
||||
readonly popperEffect: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string) | (() => PopperEffect) | ((new (...args: any[]) => string) | (() => PopperEffect))[], unknown, unknown, "dark", boolean>;
|
||||
readonly popperClass: StringConstructor;
|
||||
readonly popperStyle: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties) | ((new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly showTimeout: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
|
||||
readonly hideTimeout: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
|
||||
readonly persistent: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
||||
}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
||||
close: (index: string, indexPath: string[]) => boolean;
|
||||
open: (index: string, indexPath: string[]) => boolean;
|
||||
select: (index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<void | NavigationFailure>) => boolean;
|
||||
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
||||
readonly mode: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "horizontal" | "vertical", unknown, "vertical", boolean>;
|
||||
readonly defaultActive: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
|
||||
readonly defaultOpeneds: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string[]) | (() => string[]) | ((new (...args: any[]) => string[]) | (() => string[]))[], unknown, unknown, () => [], boolean>;
|
||||
readonly uniqueOpened: BooleanConstructor;
|
||||
readonly router: BooleanConstructor;
|
||||
readonly menuTrigger: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "click" | "hover", unknown, "hover", boolean>;
|
||||
readonly collapse: BooleanConstructor;
|
||||
readonly backgroundColor: StringConstructor;
|
||||
readonly textColor: StringConstructor;
|
||||
readonly activeTextColor: StringConstructor;
|
||||
readonly closeOnClickOutside: BooleanConstructor;
|
||||
readonly collapseTransition: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
||||
readonly ellipsis: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
||||
readonly popperOffset: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 6, boolean>;
|
||||
readonly ellipsisIcon: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown, () => any, boolean>;
|
||||
readonly popperEffect: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string) | (() => PopperEffect) | ((new (...args: any[]) => string) | (() => PopperEffect))[], unknown, unknown, "dark", boolean>;
|
||||
readonly popperClass: StringConstructor;
|
||||
readonly popperStyle: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties) | ((new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly showTimeout: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
|
||||
readonly hideTimeout: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, unknown, unknown, 300, boolean>;
|
||||
readonly persistent: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
|
||||
}>> & {
|
||||
onSelect?: ((index: string, indexPath: string[], item: MenuItemClicked, routerResult?: Promise<void | NavigationFailure> | undefined) => any) | undefined;
|
||||
onOpen?: ((index: string, indexPath: string[]) => any) | undefined;
|
||||
onClose?: ((index: string, indexPath: string[]) => any) | undefined;
|
||||
}, {
|
||||
readonly ellipsis: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
||||
readonly collapse: boolean;
|
||||
readonly mode: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "horizontal" | "vertical", unknown>;
|
||||
readonly persistent: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
||||
readonly showTimeout: number;
|
||||
readonly hideTimeout: number;
|
||||
readonly defaultActive: string;
|
||||
readonly defaultOpeneds: string[];
|
||||
readonly menuTrigger: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "click" | "hover", unknown>;
|
||||
readonly collapseTransition: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
||||
readonly popperOffset: number;
|
||||
readonly ellipsisIcon: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | ((new (...args: any[]) => (string | Component) & {}) | (() => string | Component))[], unknown, unknown>;
|
||||
readonly popperEffect: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string) | (() => PopperEffect) | ((new (...args: any[]) => string) | (() => PopperEffect))[], unknown, unknown>;
|
||||
readonly uniqueOpened: boolean;
|
||||
readonly router: boolean;
|
||||
readonly closeOnClickOutside: boolean;
|
||||
}>;
|
||||
export default _default;
|
||||
353
frontend/node_modules/element-plus/es/components/menu/src/menu.mjs
generated
vendored
Normal file
353
frontend/node_modules/element-plus/es/components/menu/src/menu.mjs
generated
vendored
Normal file
@@ -0,0 +1,353 @@
|
||||
import { defineComponent, getCurrentInstance, ref, computed, watch, watchEffect, provide, reactive, onMounted, h, withDirectives, nextTick } from 'vue';
|
||||
import { useResizeObserver, unrefElement } from '@vueuse/core';
|
||||
import { isNil } from 'lodash-unified';
|
||||
import { ElIcon } from '../../icon/index.mjs';
|
||||
import { More } from '@element-plus/icons-vue';
|
||||
import Menu$1 from './utils/menu-bar.mjs';
|
||||
import ElMenuCollapseTransition from './menu-collapse-transition.mjs';
|
||||
import SubMenu from './sub-menu.mjs';
|
||||
import { useMenuCssVar } from './use-menu-css-var.mjs';
|
||||
import { MENU_INJECTION_KEY, SUB_MENU_INJECTION_KEY } from './tokens.mjs';
|
||||
import ClickOutside from '../../../directives/click-outside/index.mjs';
|
||||
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
|
||||
import { mutable } from '../../../utils/typescript.mjs';
|
||||
import { iconPropType } from '../../../utils/vue/icon.mjs';
|
||||
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
||||
import { flattedChildren } from '../../../utils/vue/vnode.mjs';
|
||||
import { isString, isArray, isObject } from '@vue/shared';
|
||||
import { isUndefined } from '../../../utils/types.mjs';
|
||||
|
||||
const menuProps = buildProps({
|
||||
mode: {
|
||||
type: String,
|
||||
values: ["horizontal", "vertical"],
|
||||
default: "vertical"
|
||||
},
|
||||
defaultActive: {
|
||||
type: String,
|
||||
default: ""
|
||||
},
|
||||
defaultOpeneds: {
|
||||
type: definePropType(Array),
|
||||
default: () => mutable([])
|
||||
},
|
||||
uniqueOpened: Boolean,
|
||||
router: Boolean,
|
||||
menuTrigger: {
|
||||
type: String,
|
||||
values: ["hover", "click"],
|
||||
default: "hover"
|
||||
},
|
||||
collapse: Boolean,
|
||||
backgroundColor: String,
|
||||
textColor: String,
|
||||
activeTextColor: String,
|
||||
closeOnClickOutside: Boolean,
|
||||
collapseTransition: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
ellipsis: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
popperOffset: {
|
||||
type: Number,
|
||||
default: 6
|
||||
},
|
||||
ellipsisIcon: {
|
||||
type: iconPropType,
|
||||
default: () => More
|
||||
},
|
||||
popperEffect: {
|
||||
type: definePropType(String),
|
||||
default: "dark"
|
||||
},
|
||||
popperClass: String,
|
||||
popperStyle: {
|
||||
type: definePropType([String, Object])
|
||||
},
|
||||
showTimeout: {
|
||||
type: Number,
|
||||
default: 300
|
||||
},
|
||||
hideTimeout: {
|
||||
type: Number,
|
||||
default: 300
|
||||
},
|
||||
persistent: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
}
|
||||
});
|
||||
const checkIndexPath = (indexPath) => isArray(indexPath) && indexPath.every((path) => isString(path));
|
||||
const menuEmits = {
|
||||
close: (index, indexPath) => isString(index) && checkIndexPath(indexPath),
|
||||
open: (index, indexPath) => isString(index) && checkIndexPath(indexPath),
|
||||
select: (index, indexPath, item, routerResult) => isString(index) && checkIndexPath(indexPath) && isObject(item) && (isUndefined(routerResult) || routerResult instanceof Promise)
|
||||
};
|
||||
var Menu = defineComponent({
|
||||
name: "ElMenu",
|
||||
props: menuProps,
|
||||
emits: menuEmits,
|
||||
setup(props, { emit, slots, expose }) {
|
||||
const instance = getCurrentInstance();
|
||||
const router = instance.appContext.config.globalProperties.$router;
|
||||
const menu = ref();
|
||||
const subMenu = ref();
|
||||
const nsMenu = useNamespace("menu");
|
||||
const nsSubMenu = useNamespace("sub-menu");
|
||||
let moreItemWidth = 64;
|
||||
const sliceIndex = ref(-1);
|
||||
const openedMenus = ref(props.defaultOpeneds && !props.collapse ? props.defaultOpeneds.slice(0) : []);
|
||||
const activeIndex = ref(props.defaultActive);
|
||||
const items = ref({});
|
||||
const subMenus = ref({});
|
||||
const isMenuPopup = computed(() => props.mode === "horizontal" || props.mode === "vertical" && props.collapse);
|
||||
const initMenu = () => {
|
||||
const activeItem = activeIndex.value && items.value[activeIndex.value];
|
||||
if (!activeItem || props.mode === "horizontal" || props.collapse)
|
||||
return;
|
||||
const indexPath = activeItem.indexPath;
|
||||
indexPath.forEach((index) => {
|
||||
const subMenu2 = subMenus.value[index];
|
||||
subMenu2 && openMenu(index, subMenu2.indexPath);
|
||||
});
|
||||
};
|
||||
const openMenu = (index, indexPath) => {
|
||||
if (openedMenus.value.includes(index))
|
||||
return;
|
||||
if (props.uniqueOpened) {
|
||||
openedMenus.value = openedMenus.value.filter((index2) => indexPath.includes(index2));
|
||||
}
|
||||
openedMenus.value.push(index);
|
||||
emit("open", index, indexPath);
|
||||
};
|
||||
const close = (index) => {
|
||||
const i = openedMenus.value.indexOf(index);
|
||||
if (i !== -1) {
|
||||
openedMenus.value.splice(i, 1);
|
||||
}
|
||||
};
|
||||
const closeMenu = (index, indexPath) => {
|
||||
close(index);
|
||||
emit("close", index, indexPath);
|
||||
};
|
||||
const handleSubMenuClick = ({
|
||||
index,
|
||||
indexPath
|
||||
}) => {
|
||||
const isOpened = openedMenus.value.includes(index);
|
||||
isOpened ? closeMenu(index, indexPath) : openMenu(index, indexPath);
|
||||
};
|
||||
const handleMenuItemClick = (menuItem) => {
|
||||
if (props.mode === "horizontal" || props.collapse) {
|
||||
openedMenus.value = [];
|
||||
}
|
||||
const { index, indexPath } = menuItem;
|
||||
if (isNil(index) || isNil(indexPath))
|
||||
return;
|
||||
if (props.router && router) {
|
||||
const route = menuItem.route || index;
|
||||
const routerResult = router.push(route).then((res) => {
|
||||
if (!res)
|
||||
activeIndex.value = index;
|
||||
return res;
|
||||
});
|
||||
emit("select", index, indexPath, { index, indexPath, route }, routerResult);
|
||||
} else {
|
||||
activeIndex.value = index;
|
||||
emit("select", index, indexPath, { index, indexPath });
|
||||
}
|
||||
};
|
||||
const updateActiveIndex = (val) => {
|
||||
var _a;
|
||||
const itemsInData = items.value;
|
||||
const item = itemsInData[val] || activeIndex.value && itemsInData[activeIndex.value] || itemsInData[props.defaultActive];
|
||||
activeIndex.value = (_a = item == null ? void 0 : item.index) != null ? _a : val;
|
||||
};
|
||||
const calcMenuItemWidth = (menuItem) => {
|
||||
const computedStyle = getComputedStyle(menuItem);
|
||||
const marginLeft = Number.parseInt(computedStyle.marginLeft, 10);
|
||||
const marginRight = Number.parseInt(computedStyle.marginRight, 10);
|
||||
return menuItem.offsetWidth + marginLeft + marginRight || 0;
|
||||
};
|
||||
const calcSliceIndex = () => {
|
||||
var _a, _b;
|
||||
if (!menu.value)
|
||||
return -1;
|
||||
const items2 = Array.from((_b = (_a = menu.value) == null ? void 0 : _a.childNodes) != null ? _b : []).filter((item) => item.nodeName !== "#comment" && (item.nodeName !== "#text" || item.nodeValue));
|
||||
const computedMenuStyle = getComputedStyle(menu.value);
|
||||
const paddingLeft = Number.parseInt(computedMenuStyle.paddingLeft, 10);
|
||||
const paddingRight = Number.parseInt(computedMenuStyle.paddingRight, 10);
|
||||
const menuWidth = menu.value.clientWidth - paddingLeft - paddingRight;
|
||||
let calcWidth = 0;
|
||||
let sliceIndex2 = 0;
|
||||
items2.forEach((item, index) => {
|
||||
calcWidth += calcMenuItemWidth(item);
|
||||
if (calcWidth <= menuWidth - moreItemWidth) {
|
||||
sliceIndex2 = index + 1;
|
||||
}
|
||||
});
|
||||
return sliceIndex2 === items2.length ? -1 : sliceIndex2;
|
||||
};
|
||||
const getIndexPath = (index) => subMenus.value[index].indexPath;
|
||||
const debounce = (fn, wait = 33.34) => {
|
||||
let timer;
|
||||
return () => {
|
||||
timer && clearTimeout(timer);
|
||||
timer = setTimeout(() => {
|
||||
fn();
|
||||
}, wait);
|
||||
};
|
||||
};
|
||||
let isFirstTimeRender = true;
|
||||
const handleResize = () => {
|
||||
const el = unrefElement(subMenu);
|
||||
if (el)
|
||||
moreItemWidth = calcMenuItemWidth(el) || 64;
|
||||
if (sliceIndex.value === calcSliceIndex())
|
||||
return;
|
||||
const callback = () => {
|
||||
sliceIndex.value = -1;
|
||||
nextTick(() => {
|
||||
sliceIndex.value = calcSliceIndex();
|
||||
});
|
||||
};
|
||||
isFirstTimeRender ? callback() : debounce(callback)();
|
||||
isFirstTimeRender = false;
|
||||
};
|
||||
watch(() => props.defaultActive, (currentActive) => {
|
||||
if (!items.value[currentActive]) {
|
||||
activeIndex.value = "";
|
||||
}
|
||||
updateActiveIndex(currentActive);
|
||||
});
|
||||
watch(() => props.collapse, (value) => {
|
||||
if (value)
|
||||
openedMenus.value = [];
|
||||
});
|
||||
watch(items.value, initMenu);
|
||||
let resizeStopper;
|
||||
watchEffect(() => {
|
||||
if (props.mode === "horizontal" && props.ellipsis)
|
||||
resizeStopper = useResizeObserver(menu, handleResize).stop;
|
||||
else
|
||||
resizeStopper == null ? void 0 : resizeStopper();
|
||||
});
|
||||
const mouseInChild = ref(false);
|
||||
{
|
||||
const addSubMenu = (item) => {
|
||||
subMenus.value[item.index] = item;
|
||||
};
|
||||
const removeSubMenu = (item) => {
|
||||
delete subMenus.value[item.index];
|
||||
};
|
||||
const addMenuItem = (item) => {
|
||||
items.value[item.index] = item;
|
||||
};
|
||||
const removeMenuItem = (item) => {
|
||||
delete items.value[item.index];
|
||||
};
|
||||
provide(MENU_INJECTION_KEY, reactive({
|
||||
props,
|
||||
openedMenus,
|
||||
items,
|
||||
subMenus,
|
||||
activeIndex,
|
||||
isMenuPopup,
|
||||
addMenuItem,
|
||||
removeMenuItem,
|
||||
addSubMenu,
|
||||
removeSubMenu,
|
||||
openMenu,
|
||||
closeMenu,
|
||||
handleMenuItemClick,
|
||||
handleSubMenuClick
|
||||
}));
|
||||
provide(`${SUB_MENU_INJECTION_KEY}${instance.uid}`, {
|
||||
addSubMenu,
|
||||
removeSubMenu,
|
||||
mouseInChild,
|
||||
level: 0
|
||||
});
|
||||
}
|
||||
onMounted(() => {
|
||||
if (props.mode === "horizontal") {
|
||||
new Menu$1(instance.vnode.el, nsMenu.namespace.value);
|
||||
}
|
||||
});
|
||||
{
|
||||
const open = (index) => {
|
||||
const { indexPath } = subMenus.value[index];
|
||||
indexPath.forEach((i) => openMenu(i, indexPath));
|
||||
};
|
||||
expose({
|
||||
open,
|
||||
close,
|
||||
updateActiveIndex,
|
||||
handleResize
|
||||
});
|
||||
}
|
||||
const ulStyle = useMenuCssVar(props, 0);
|
||||
return () => {
|
||||
var _a, _b;
|
||||
let slot = (_b = (_a = slots.default) == null ? void 0 : _a.call(slots)) != null ? _b : [];
|
||||
const vShowMore = [];
|
||||
if (props.mode === "horizontal" && menu.value) {
|
||||
const originalSlot = flattedChildren(slot).filter((vnode) => {
|
||||
return (vnode == null ? void 0 : vnode.shapeFlag) !== 8;
|
||||
});
|
||||
const slotDefault = sliceIndex.value === -1 ? originalSlot : originalSlot.slice(0, sliceIndex.value);
|
||||
const slotMore = sliceIndex.value === -1 ? [] : originalSlot.slice(sliceIndex.value);
|
||||
if ((slotMore == null ? void 0 : slotMore.length) && props.ellipsis) {
|
||||
slot = slotDefault;
|
||||
vShowMore.push(h(SubMenu, {
|
||||
ref: subMenu,
|
||||
index: "sub-menu-more",
|
||||
class: nsSubMenu.e("hide-arrow"),
|
||||
popperOffset: props.popperOffset
|
||||
}, {
|
||||
title: () => h(ElIcon, {
|
||||
class: nsSubMenu.e("icon-more")
|
||||
}, {
|
||||
default: () => h(props.ellipsisIcon)
|
||||
}),
|
||||
default: () => slotMore
|
||||
}));
|
||||
}
|
||||
}
|
||||
const directives = props.closeOnClickOutside ? [
|
||||
[
|
||||
ClickOutside,
|
||||
() => {
|
||||
if (!openedMenus.value.length)
|
||||
return;
|
||||
if (!mouseInChild.value) {
|
||||
openedMenus.value.forEach((openedMenu) => emit("close", openedMenu, getIndexPath(openedMenu)));
|
||||
openedMenus.value = [];
|
||||
}
|
||||
}
|
||||
]
|
||||
] : [];
|
||||
const vMenu = withDirectives(h("ul", {
|
||||
key: String(props.collapse),
|
||||
role: "menubar",
|
||||
ref: menu,
|
||||
style: ulStyle.value,
|
||||
class: {
|
||||
[nsMenu.b()]: true,
|
||||
[nsMenu.m(props.mode)]: true,
|
||||
[nsMenu.m("collapse")]: props.collapse
|
||||
}
|
||||
}, [...slot, ...vShowMore]), directives);
|
||||
if (props.collapseTransition && props.mode === "vertical") {
|
||||
return h(ElMenuCollapseTransition, () => vMenu);
|
||||
}
|
||||
return vMenu;
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
export { Menu as default, menuEmits, menuProps };
|
||||
//# sourceMappingURL=menu.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/menu.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/menu.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
140
frontend/node_modules/element-plus/es/components/menu/src/sub-menu.d.ts
generated
vendored
Normal file
140
frontend/node_modules/element-plus/es/components/menu/src/sub-menu.d.ts
generated
vendored
Normal file
@@ -0,0 +1,140 @@
|
||||
import type { CSSProperties, ExtractPropTypes, __ExtractPublicPropTypes } from 'vue';
|
||||
export declare const subMenuProps: {
|
||||
readonly index: {
|
||||
readonly type: import("vue").PropType<string>;
|
||||
readonly required: true;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly showTimeout: NumberConstructor;
|
||||
readonly hideTimeout: NumberConstructor;
|
||||
readonly popperClass: StringConstructor;
|
||||
readonly popperStyle: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties) | ((new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly disabled: BooleanConstructor;
|
||||
readonly teleported: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
|
||||
readonly popperOffset: NumberConstructor;
|
||||
readonly expandCloseIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly expandOpenIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly collapseCloseIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly collapseOpenIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
};
|
||||
export type SubMenuProps = ExtractPropTypes<typeof subMenuProps>;
|
||||
export type SubMenuPropsPublic = __ExtractPublicPropTypes<typeof subMenuProps>;
|
||||
declare const _default: import("vue").DefineComponent<{
|
||||
readonly index: {
|
||||
readonly type: import("vue").PropType<string>;
|
||||
readonly required: true;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly showTimeout: NumberConstructor;
|
||||
readonly hideTimeout: NumberConstructor;
|
||||
readonly popperClass: StringConstructor;
|
||||
readonly popperStyle: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties) | ((new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly disabled: BooleanConstructor;
|
||||
readonly teleported: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
|
||||
readonly popperOffset: NumberConstructor;
|
||||
readonly expandCloseIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly expandOpenIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly collapseCloseIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly collapseOpenIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
||||
readonly index: {
|
||||
readonly type: import("vue").PropType<string>;
|
||||
readonly required: true;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly showTimeout: NumberConstructor;
|
||||
readonly hideTimeout: NumberConstructor;
|
||||
readonly popperClass: StringConstructor;
|
||||
readonly popperStyle: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties) | ((new (...args: any[]) => string | CSSProperties) | (() => string | CSSProperties))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly disabled: BooleanConstructor;
|
||||
readonly teleported: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
|
||||
readonly popperOffset: NumberConstructor;
|
||||
readonly expandCloseIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly expandOpenIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly collapseCloseIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
readonly collapseOpenIcon: {
|
||||
readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | ((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component))[], unknown, unknown>>;
|
||||
readonly required: false;
|
||||
readonly validator: ((val: unknown) => boolean) | undefined;
|
||||
__epPropKey: true;
|
||||
};
|
||||
}>>, {
|
||||
readonly disabled: boolean;
|
||||
readonly teleported: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
||||
}>;
|
||||
export default _default;
|
||||
308
frontend/node_modules/element-plus/es/components/menu/src/sub-menu.mjs
generated
vendored
Normal file
308
frontend/node_modules/element-plus/es/components/menu/src/sub-menu.mjs
generated
vendored
Normal file
@@ -0,0 +1,308 @@
|
||||
import { defineComponent, getCurrentInstance, computed, inject, ref, reactive, watch, provide, onMounted, onBeforeUnmount, h, Fragment, withDirectives, vShow, nextTick } from 'vue';
|
||||
import { useTimeoutFn } from '@vueuse/core';
|
||||
import { ElCollapseTransition } from '../../collapse-transition/index.mjs';
|
||||
import { ElTooltip } from '../../tooltip/index.mjs';
|
||||
import { ArrowDown, ArrowRight } from '@element-plus/icons-vue';
|
||||
import { ElIcon } from '../../icon/index.mjs';
|
||||
import useMenu from './use-menu.mjs';
|
||||
import { useMenuCssVar } from './use-menu-css-var.mjs';
|
||||
import { MENU_INJECTION_KEY, SUB_MENU_INJECTION_KEY } from './tokens.mjs';
|
||||
import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
|
||||
import { iconPropType } from '../../../utils/vue/icon.mjs';
|
||||
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
||||
import { throwError } from '../../../utils/error.mjs';
|
||||
import { isUndefined } from '../../../utils/types.mjs';
|
||||
import { isString } from '@vue/shared';
|
||||
import { focusElement } from '../../../utils/dom/aria.mjs';
|
||||
|
||||
const subMenuProps = buildProps({
|
||||
index: {
|
||||
type: String,
|
||||
required: true
|
||||
},
|
||||
showTimeout: Number,
|
||||
hideTimeout: Number,
|
||||
popperClass: String,
|
||||
popperStyle: {
|
||||
type: definePropType([String, Object])
|
||||
},
|
||||
disabled: Boolean,
|
||||
teleported: {
|
||||
type: Boolean,
|
||||
default: void 0
|
||||
},
|
||||
popperOffset: Number,
|
||||
expandCloseIcon: {
|
||||
type: iconPropType
|
||||
},
|
||||
expandOpenIcon: {
|
||||
type: iconPropType
|
||||
},
|
||||
collapseCloseIcon: {
|
||||
type: iconPropType
|
||||
},
|
||||
collapseOpenIcon: {
|
||||
type: iconPropType
|
||||
}
|
||||
});
|
||||
const COMPONENT_NAME = "ElSubMenu";
|
||||
var SubMenu = defineComponent({
|
||||
name: COMPONENT_NAME,
|
||||
props: subMenuProps,
|
||||
setup(props, { slots, expose }) {
|
||||
const instance = getCurrentInstance();
|
||||
const { indexPath, parentMenu } = useMenu(instance, computed(() => props.index));
|
||||
const nsMenu = useNamespace("menu");
|
||||
const nsSubMenu = useNamespace("sub-menu");
|
||||
const rootMenu = inject(MENU_INJECTION_KEY);
|
||||
if (!rootMenu)
|
||||
throwError(COMPONENT_NAME, "can not inject root menu");
|
||||
const subMenu = inject(`${SUB_MENU_INJECTION_KEY}${parentMenu.value.uid}`);
|
||||
if (!subMenu)
|
||||
throwError(COMPONENT_NAME, "can not inject sub menu");
|
||||
const items = ref({});
|
||||
const subMenus = ref({});
|
||||
let timeout;
|
||||
const mouseInChild = ref(false);
|
||||
const verticalTitleRef = ref();
|
||||
const vPopper = ref();
|
||||
const isFirstLevel = computed(() => subMenu.level === 0);
|
||||
const currentPlacement = computed(() => mode.value === "horizontal" && isFirstLevel.value ? "bottom-start" : "right-start");
|
||||
const subMenuTitleIcon = computed(() => {
|
||||
const isExpandedMode = mode.value === "horizontal" && isFirstLevel.value || mode.value === "vertical" && !rootMenu.props.collapse;
|
||||
if (isExpandedMode) {
|
||||
if (props.expandCloseIcon && props.expandOpenIcon) {
|
||||
return opened.value ? props.expandOpenIcon : props.expandCloseIcon;
|
||||
}
|
||||
return ArrowDown;
|
||||
} else {
|
||||
if (props.collapseCloseIcon && props.collapseOpenIcon) {
|
||||
return opened.value ? props.collapseOpenIcon : props.collapseCloseIcon;
|
||||
}
|
||||
return ArrowRight;
|
||||
}
|
||||
});
|
||||
const appendToBody = computed(() => {
|
||||
const value = props.teleported;
|
||||
return isUndefined(value) ? isFirstLevel.value : value;
|
||||
});
|
||||
const menuTransitionName = computed(() => rootMenu.props.collapse ? `${nsMenu.namespace.value}-zoom-in-left` : `${nsMenu.namespace.value}-zoom-in-top`);
|
||||
const fallbackPlacements = computed(() => mode.value === "horizontal" && isFirstLevel.value ? [
|
||||
"bottom-start",
|
||||
"bottom-end",
|
||||
"top-start",
|
||||
"top-end",
|
||||
"right-start",
|
||||
"left-start"
|
||||
] : [
|
||||
"right-start",
|
||||
"right",
|
||||
"right-end",
|
||||
"left-start",
|
||||
"bottom-start",
|
||||
"bottom-end",
|
||||
"top-start",
|
||||
"top-end"
|
||||
]);
|
||||
const opened = computed(() => rootMenu.openedMenus.includes(props.index));
|
||||
const active = computed(() => [...Object.values(items.value), ...Object.values(subMenus.value)].some(({ active: active2 }) => active2));
|
||||
const mode = computed(() => rootMenu.props.mode);
|
||||
const persistent = computed(() => rootMenu.props.persistent);
|
||||
const item = reactive({
|
||||
index: props.index,
|
||||
indexPath,
|
||||
active
|
||||
});
|
||||
const ulStyle = useMenuCssVar(rootMenu.props, subMenu.level + 1);
|
||||
const subMenuPopperOffset = computed(() => {
|
||||
var _a;
|
||||
return (_a = props.popperOffset) != null ? _a : rootMenu.props.popperOffset;
|
||||
});
|
||||
const subMenuPopperClass = computed(() => {
|
||||
var _a;
|
||||
return (_a = props.popperClass) != null ? _a : rootMenu.props.popperClass;
|
||||
});
|
||||
const subMenuPopperStyle = computed(() => {
|
||||
var _a;
|
||||
return (_a = props.popperStyle) != null ? _a : rootMenu.props.popperStyle;
|
||||
});
|
||||
const subMenuShowTimeout = computed(() => {
|
||||
var _a;
|
||||
return (_a = props.showTimeout) != null ? _a : rootMenu.props.showTimeout;
|
||||
});
|
||||
const subMenuHideTimeout = computed(() => {
|
||||
var _a;
|
||||
return (_a = props.hideTimeout) != null ? _a : rootMenu.props.hideTimeout;
|
||||
});
|
||||
const doDestroy = () => {
|
||||
var _a, _b, _c;
|
||||
return (_c = (_b = (_a = vPopper.value) == null ? void 0 : _a.popperRef) == null ? void 0 : _b.popperInstanceRef) == null ? void 0 : _c.destroy();
|
||||
};
|
||||
const handleCollapseToggle = (value) => {
|
||||
if (!value) {
|
||||
doDestroy();
|
||||
}
|
||||
};
|
||||
const handleClick = () => {
|
||||
if (rootMenu.props.menuTrigger === "hover" && rootMenu.props.mode === "horizontal" || rootMenu.props.collapse && rootMenu.props.mode === "vertical" || props.disabled)
|
||||
return;
|
||||
rootMenu.handleSubMenuClick({
|
||||
index: props.index,
|
||||
indexPath: indexPath.value,
|
||||
active: active.value
|
||||
});
|
||||
};
|
||||
const handleMouseenter = (event, showTimeout = subMenuShowTimeout.value) => {
|
||||
var _a;
|
||||
if (event.type === "focus")
|
||||
return;
|
||||
if (rootMenu.props.menuTrigger === "click" && rootMenu.props.mode === "horizontal" || !rootMenu.props.collapse && rootMenu.props.mode === "vertical" || props.disabled) {
|
||||
subMenu.mouseInChild.value = true;
|
||||
return;
|
||||
}
|
||||
subMenu.mouseInChild.value = true;
|
||||
timeout == null ? void 0 : timeout();
|
||||
({ stop: timeout } = useTimeoutFn(() => {
|
||||
rootMenu.openMenu(props.index, indexPath.value);
|
||||
}, showTimeout));
|
||||
if (appendToBody.value) {
|
||||
(_a = parentMenu.value.vnode.el) == null ? void 0 : _a.dispatchEvent(new MouseEvent("mouseenter"));
|
||||
}
|
||||
if (event.type === "mouseenter" && event.target) {
|
||||
nextTick(() => {
|
||||
focusElement(event.target, { preventScroll: true });
|
||||
});
|
||||
}
|
||||
};
|
||||
const handleMouseleave = (deepDispatch = false) => {
|
||||
var _a;
|
||||
if (rootMenu.props.menuTrigger === "click" && rootMenu.props.mode === "horizontal" || !rootMenu.props.collapse && rootMenu.props.mode === "vertical") {
|
||||
subMenu.mouseInChild.value = false;
|
||||
return;
|
||||
}
|
||||
timeout == null ? void 0 : timeout();
|
||||
subMenu.mouseInChild.value = false;
|
||||
({ stop: timeout } = useTimeoutFn(() => !mouseInChild.value && rootMenu.closeMenu(props.index, indexPath.value), subMenuHideTimeout.value));
|
||||
if (appendToBody.value && deepDispatch) {
|
||||
(_a = subMenu.handleMouseleave) == null ? void 0 : _a.call(subMenu, true);
|
||||
}
|
||||
};
|
||||
watch(() => rootMenu.props.collapse, (value) => handleCollapseToggle(Boolean(value)));
|
||||
{
|
||||
const addSubMenu = (item2) => {
|
||||
subMenus.value[item2.index] = item2;
|
||||
};
|
||||
const removeSubMenu = (item2) => {
|
||||
delete subMenus.value[item2.index];
|
||||
};
|
||||
provide(`${SUB_MENU_INJECTION_KEY}${instance.uid}`, {
|
||||
addSubMenu,
|
||||
removeSubMenu,
|
||||
handleMouseleave,
|
||||
mouseInChild,
|
||||
level: subMenu.level + 1
|
||||
});
|
||||
}
|
||||
expose({
|
||||
opened
|
||||
});
|
||||
onMounted(() => {
|
||||
rootMenu.addSubMenu(item);
|
||||
subMenu.addSubMenu(item);
|
||||
});
|
||||
onBeforeUnmount(() => {
|
||||
subMenu.removeSubMenu(item);
|
||||
rootMenu.removeSubMenu(item);
|
||||
});
|
||||
return () => {
|
||||
var _a;
|
||||
const titleTag = [
|
||||
(_a = slots.title) == null ? void 0 : _a.call(slots),
|
||||
h(ElIcon, {
|
||||
class: nsSubMenu.e("icon-arrow"),
|
||||
style: {
|
||||
transform: opened.value ? props.expandCloseIcon && props.expandOpenIcon || props.collapseCloseIcon && props.collapseOpenIcon && rootMenu.props.collapse ? "none" : "rotateZ(180deg)" : "none"
|
||||
}
|
||||
}, {
|
||||
default: () => isString(subMenuTitleIcon.value) ? h(instance.appContext.components[subMenuTitleIcon.value]) : h(subMenuTitleIcon.value)
|
||||
})
|
||||
];
|
||||
const child = rootMenu.isMenuPopup ? h(ElTooltip, {
|
||||
ref: vPopper,
|
||||
visible: opened.value,
|
||||
effect: "light",
|
||||
pure: true,
|
||||
offset: subMenuPopperOffset.value,
|
||||
showArrow: false,
|
||||
persistent: persistent.value,
|
||||
popperClass: subMenuPopperClass.value,
|
||||
popperStyle: subMenuPopperStyle.value,
|
||||
placement: currentPlacement.value,
|
||||
teleported: appendToBody.value,
|
||||
fallbackPlacements: fallbackPlacements.value,
|
||||
transition: menuTransitionName.value,
|
||||
gpuAcceleration: false
|
||||
}, {
|
||||
content: () => {
|
||||
var _a2;
|
||||
return h("div", {
|
||||
class: [
|
||||
nsMenu.m(mode.value),
|
||||
nsMenu.m("popup-container"),
|
||||
subMenuPopperClass.value
|
||||
],
|
||||
onMouseenter: (evt) => handleMouseenter(evt, 100),
|
||||
onMouseleave: () => handleMouseleave(true),
|
||||
onFocus: (evt) => handleMouseenter(evt, 100)
|
||||
}, [
|
||||
h("ul", {
|
||||
class: [
|
||||
nsMenu.b(),
|
||||
nsMenu.m("popup"),
|
||||
nsMenu.m(`popup-${currentPlacement.value}`)
|
||||
],
|
||||
style: ulStyle.value
|
||||
}, [(_a2 = slots.default) == null ? void 0 : _a2.call(slots)])
|
||||
]);
|
||||
},
|
||||
default: () => h("div", {
|
||||
class: nsSubMenu.e("title"),
|
||||
onClick: handleClick
|
||||
}, titleTag)
|
||||
}) : h(Fragment, {}, [
|
||||
h("div", {
|
||||
class: nsSubMenu.e("title"),
|
||||
ref: verticalTitleRef,
|
||||
onClick: handleClick
|
||||
}, titleTag),
|
||||
h(ElCollapseTransition, {}, {
|
||||
default: () => {
|
||||
var _a2;
|
||||
return withDirectives(h("ul", {
|
||||
role: "menu",
|
||||
class: [nsMenu.b(), nsMenu.m("inline")],
|
||||
style: ulStyle.value
|
||||
}, [(_a2 = slots.default) == null ? void 0 : _a2.call(slots)]), [[vShow, opened.value]]);
|
||||
}
|
||||
})
|
||||
]);
|
||||
return h("li", {
|
||||
class: [
|
||||
nsSubMenu.b(),
|
||||
nsSubMenu.is("active", active.value),
|
||||
nsSubMenu.is("opened", opened.value),
|
||||
nsSubMenu.is("disabled", props.disabled)
|
||||
],
|
||||
role: "menuitem",
|
||||
ariaHaspopup: true,
|
||||
ariaExpanded: opened.value,
|
||||
onMouseenter: handleMouseenter,
|
||||
onMouseleave: () => handleMouseleave(),
|
||||
onFocus: handleMouseenter
|
||||
}, [child]);
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
export { SubMenu as default, subMenuProps };
|
||||
//# sourceMappingURL=sub-menu.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/sub-menu.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/sub-menu.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
2
frontend/node_modules/element-plus/es/components/menu/src/tokens.d.ts
generated
vendored
Normal file
2
frontend/node_modules/element-plus/es/components/menu/src/tokens.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
export declare const MENU_INJECTION_KEY = "rootMenu";
|
||||
export declare const SUB_MENU_INJECTION_KEY = "subMenu:";
|
||||
5
frontend/node_modules/element-plus/es/components/menu/src/tokens.mjs
generated
vendored
Normal file
5
frontend/node_modules/element-plus/es/components/menu/src/tokens.mjs
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
const MENU_INJECTION_KEY = "rootMenu";
|
||||
const SUB_MENU_INJECTION_KEY = "subMenu:";
|
||||
|
||||
export { MENU_INJECTION_KEY, SUB_MENU_INJECTION_KEY };
|
||||
//# sourceMappingURL=tokens.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/tokens.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/tokens.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"tokens.mjs","sources":["../../../../../../packages/components/menu/src/tokens.ts"],"sourcesContent":["export const MENU_INJECTION_KEY = 'rootMenu'\n\nexport const SUB_MENU_INJECTION_KEY = 'subMenu:'\n"],"names":[],"mappings":"AAAY,MAAC,kBAAkB,GAAG,WAAW;AACjC,MAAC,sBAAsB,GAAG;;;;"}
|
||||
36
frontend/node_modules/element-plus/es/components/menu/src/types.d.ts
generated
vendored
Normal file
36
frontend/node_modules/element-plus/es/components/menu/src/types.d.ts
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
import type { Ref } from 'vue';
|
||||
import type { RouteLocationRaw } from 'vue-router';
|
||||
import type { MenuProps } from './menu';
|
||||
export interface MenuItemRegistered {
|
||||
index: string;
|
||||
indexPath: string[];
|
||||
active: boolean;
|
||||
}
|
||||
export interface MenuItemClicked {
|
||||
index: string;
|
||||
indexPath: string[];
|
||||
route?: RouteLocationRaw;
|
||||
}
|
||||
export interface MenuProvider {
|
||||
openedMenus: string[];
|
||||
items: Record<string, MenuItemRegistered>;
|
||||
subMenus: Record<string, MenuItemRegistered>;
|
||||
activeIndex?: string;
|
||||
isMenuPopup: boolean;
|
||||
props: MenuProps;
|
||||
addMenuItem: (item: MenuItemRegistered) => void;
|
||||
removeMenuItem: (item: MenuItemRegistered) => void;
|
||||
addSubMenu: (item: MenuItemRegistered) => void;
|
||||
removeSubMenu: (item: MenuItemRegistered) => void;
|
||||
openMenu: (index: string, indexPath: string[]) => void;
|
||||
closeMenu: (index: string, indexPath: string[]) => void;
|
||||
handleMenuItemClick: (item: MenuItemClicked) => void;
|
||||
handleSubMenuClick: (subMenu: MenuItemRegistered) => void;
|
||||
}
|
||||
export interface SubMenuProvider {
|
||||
addSubMenu: (item: MenuItemRegistered) => void;
|
||||
removeSubMenu: (item: MenuItemRegistered) => void;
|
||||
handleMouseleave?: (deepDispatch: boolean) => void;
|
||||
mouseInChild: Ref<boolean>;
|
||||
level: number;
|
||||
}
|
||||
2
frontend/node_modules/element-plus/es/components/menu/src/types.mjs
generated
vendored
Normal file
2
frontend/node_modules/element-plus/es/components/menu/src/types.mjs
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
//# sourceMappingURL=types.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/types.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/types.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"types.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
||||
2
frontend/node_modules/element-plus/es/components/menu/src/use-menu-color.d.ts
generated
vendored
Normal file
2
frontend/node_modules/element-plus/es/components/menu/src/use-menu-color.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import type { MenuProps } from './menu';
|
||||
export default function useMenuColor(props: MenuProps): import("vue").ComputedRef<string>;
|
||||
13
frontend/node_modules/element-plus/es/components/menu/src/use-menu-color.mjs
generated
vendored
Normal file
13
frontend/node_modules/element-plus/es/components/menu/src/use-menu-color.mjs
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
import { computed } from 'vue';
|
||||
import { TinyColor } from '@ctrl/tinycolor';
|
||||
|
||||
function useMenuColor(props) {
|
||||
const menuBarColor = computed(() => {
|
||||
const color = props.backgroundColor;
|
||||
return color ? new TinyColor(color).shade(20).toString() : "";
|
||||
});
|
||||
return menuBarColor;
|
||||
}
|
||||
|
||||
export { useMenuColor as default };
|
||||
//# sourceMappingURL=use-menu-color.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/use-menu-color.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/use-menu-color.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"use-menu-color.mjs","sources":["../../../../../../packages/components/menu/src/use-menu-color.ts"],"sourcesContent":["import { computed } from 'vue'\nimport { TinyColor } from '@ctrl/tinycolor'\n\nimport type { MenuProps } from './menu'\n\nexport default function useMenuColor(props: MenuProps) {\n const menuBarColor = computed(() => {\n const color = props.backgroundColor\n return color ? new TinyColor(color).shade(20).toString() : ''\n })\n return menuBarColor\n}\n"],"names":[],"mappings":";;;AAEe,SAAS,YAAY,CAAC,KAAK,EAAE;AAC5C,EAAE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM;AACtC,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC;AACxC,IAAI,OAAO,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC;AAClE,GAAG,CAAC,CAAC;AACL,EAAE,OAAO,YAAY,CAAC;AACtB;;;;"}
|
||||
2
frontend/node_modules/element-plus/es/components/menu/src/use-menu-css-var.d.ts
generated
vendored
Normal file
2
frontend/node_modules/element-plus/es/components/menu/src/use-menu-css-var.d.ts
generated
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
import type { MenuProps } from './menu';
|
||||
export declare const useMenuCssVar: (props: MenuProps, level: number) => import("vue").ComputedRef<Record<string, string>>;
|
||||
18
frontend/node_modules/element-plus/es/components/menu/src/use-menu-css-var.mjs
generated
vendored
Normal file
18
frontend/node_modules/element-plus/es/components/menu/src/use-menu-css-var.mjs
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
import { computed } from 'vue';
|
||||
import useMenuColor from './use-menu-color.mjs';
|
||||
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
||||
|
||||
const useMenuCssVar = (props, level) => {
|
||||
const ns = useNamespace("menu");
|
||||
return computed(() => ns.cssVarBlock({
|
||||
"text-color": props.textColor || "",
|
||||
"hover-text-color": props.textColor || "",
|
||||
"bg-color": props.backgroundColor || "",
|
||||
"hover-bg-color": useMenuColor(props).value || "",
|
||||
"active-color": props.activeTextColor || "",
|
||||
level: `${level}`
|
||||
}));
|
||||
};
|
||||
|
||||
export { useMenuCssVar };
|
||||
//# sourceMappingURL=use-menu-css-var.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/use-menu-css-var.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/use-menu-css-var.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"use-menu-css-var.mjs","sources":["../../../../../../packages/components/menu/src/use-menu-css-var.ts"],"sourcesContent":["import { computed } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport useMenuColor from './use-menu-color'\n\nimport type { MenuProps } from './menu'\n\nexport const useMenuCssVar = (props: MenuProps, level: number) => {\n const ns = useNamespace('menu')\n return computed(() =>\n ns.cssVarBlock({\n 'text-color': props.textColor || '',\n 'hover-text-color': props.textColor || '',\n 'bg-color': props.backgroundColor || '',\n 'hover-bg-color': useMenuColor(props).value || '',\n 'active-color': props.activeTextColor || '',\n level: `${level}`,\n })\n )\n}\n"],"names":[],"mappings":";;;;AAGY,MAAC,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK;AAC/C,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AAClC,EAAE,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,CAAC;AACvC,IAAI,YAAY,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;AACvC,IAAI,kBAAkB,EAAE,KAAK,CAAC,SAAS,IAAI,EAAE;AAC7C,IAAI,UAAU,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;AAC3C,IAAI,gBAAgB,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,EAAE;AACrD,IAAI,cAAc,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;AAC/C,IAAI,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrB,GAAG,CAAC,CAAC,CAAC;AACN;;;;"}
|
||||
5
frontend/node_modules/element-plus/es/components/menu/src/use-menu.d.ts
generated
vendored
Normal file
5
frontend/node_modules/element-plus/es/components/menu/src/use-menu.d.ts
generated
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
import type { ComponentInternalInstance, Ref } from 'vue';
|
||||
export default function useMenu(instance: ComponentInternalInstance, currentIndex: Ref<string>): {
|
||||
parentMenu: import("vue").ComputedRef<ComponentInternalInstance>;
|
||||
indexPath: import("vue").ComputedRef<string[]>;
|
||||
};
|
||||
29
frontend/node_modules/element-plus/es/components/menu/src/use-menu.mjs
generated
vendored
Normal file
29
frontend/node_modules/element-plus/es/components/menu/src/use-menu.mjs
generated
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
import { computed } from 'vue';
|
||||
|
||||
function useMenu(instance, currentIndex) {
|
||||
const indexPath = computed(() => {
|
||||
let parent = instance.parent;
|
||||
const path = [currentIndex.value];
|
||||
while (parent.type.name !== "ElMenu") {
|
||||
if (parent.props.index) {
|
||||
path.unshift(parent.props.index);
|
||||
}
|
||||
parent = parent.parent;
|
||||
}
|
||||
return path;
|
||||
});
|
||||
const parentMenu = computed(() => {
|
||||
let parent = instance.parent;
|
||||
while (parent && !["ElMenu", "ElSubMenu"].includes(parent.type.name)) {
|
||||
parent = parent.parent;
|
||||
}
|
||||
return parent;
|
||||
});
|
||||
return {
|
||||
parentMenu,
|
||||
indexPath
|
||||
};
|
||||
}
|
||||
|
||||
export { useMenu as default };
|
||||
//# sourceMappingURL=use-menu.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/use-menu.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/use-menu.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"use-menu.mjs","sources":["../../../../../../packages/components/menu/src/use-menu.ts"],"sourcesContent":["import { computed } from 'vue'\n\nimport type { ComponentInternalInstance, Ref } from 'vue'\n\nexport default function useMenu(\n instance: ComponentInternalInstance,\n currentIndex: Ref<string>\n) {\n const indexPath = computed(() => {\n let parent = instance.parent!\n const path = [currentIndex.value]\n while (parent.type.name !== 'ElMenu') {\n if (parent.props.index) {\n path.unshift(parent.props.index as string)\n }\n parent = parent.parent!\n }\n return path\n })\n\n const parentMenu = computed(() => {\n let parent = instance.parent\n while (parent && !['ElMenu', 'ElSubMenu'].includes(parent.type.name!)) {\n parent = parent.parent\n }\n return parent!\n })\n\n return {\n parentMenu,\n indexPath,\n }\n}\n"],"names":[],"mappings":";;AACe,SAAS,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE;AACxD,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,IAAI,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1C,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;AAC9B,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzC,OAAO;AACP,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;AACpC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,UAAU;AACd,IAAI,SAAS;AACb,GAAG,CAAC;AACJ;;;;"}
|
||||
7
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-bar.d.ts
generated
vendored
Normal file
7
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-bar.d.ts
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
import type { RendererNode } from 'vue';
|
||||
declare class Menu {
|
||||
domNode: RendererNode;
|
||||
constructor(domNode: RendererNode, namespace: string);
|
||||
init(namespace: string): void;
|
||||
}
|
||||
export default Menu;
|
||||
19
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-bar.mjs
generated
vendored
Normal file
19
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-bar.mjs
generated
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
import MenuItem from './menu-item.mjs';
|
||||
|
||||
class Menu {
|
||||
constructor(domNode, namespace) {
|
||||
this.domNode = domNode;
|
||||
this.init(namespace);
|
||||
}
|
||||
init(namespace) {
|
||||
const menuChildren = this.domNode.childNodes;
|
||||
Array.from(menuChildren).forEach((child) => {
|
||||
if (child.nodeType === 1) {
|
||||
new MenuItem(child, namespace);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export { Menu as default };
|
||||
//# sourceMappingURL=menu-bar.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-bar.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-bar.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"menu-bar.mjs","sources":["../../../../../../../packages/components/menu/src/utils/menu-bar.ts"],"sourcesContent":["import MenuItem from './menu-item'\n\nimport type { RendererNode } from 'vue'\n\nclass Menu {\n constructor(\n public domNode: RendererNode,\n namespace: string\n ) {\n this.init(namespace)\n }\n init(namespace: string): void {\n const menuChildren = this.domNode.childNodes\n Array.from<Node>(menuChildren).forEach((child) => {\n if (child.nodeType === 1) {\n new MenuItem(child as HTMLElement, namespace)\n }\n })\n }\n}\n\nexport default Menu\n"],"names":[],"mappings":";;AACA,MAAM,IAAI,CAAC;AACX,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE;AAClC,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACjD,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AAChD,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE;AAChC,QAAQ,IAAI,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AACvC,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH;;;;"}
|
||||
9
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-item.d.ts
generated
vendored
Normal file
9
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-item.d.ts
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
import SubMenu from './submenu';
|
||||
declare class MenuItem {
|
||||
domNode: HTMLElement;
|
||||
submenu: SubMenu;
|
||||
constructor(domNode: HTMLElement, namespace: string);
|
||||
init(namespace: string): void;
|
||||
addListeners(): void;
|
||||
}
|
||||
export default MenuItem;
|
||||
58
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-item.mjs
generated
vendored
Normal file
58
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-item.mjs
generated
vendored
Normal file
@@ -0,0 +1,58 @@
|
||||
import SubMenu from './submenu.mjs';
|
||||
import { getEventCode } from '../../../../utils/dom/event.mjs';
|
||||
import { EVENT_CODE } from '../../../../constants/aria.mjs';
|
||||
import { triggerEvent } from '../../../../utils/dom/aria.mjs';
|
||||
|
||||
class MenuItem {
|
||||
constructor(domNode, namespace) {
|
||||
this.domNode = domNode;
|
||||
this.submenu = null;
|
||||
this.submenu = null;
|
||||
this.init(namespace);
|
||||
}
|
||||
init(namespace) {
|
||||
this.domNode.setAttribute("tabindex", "0");
|
||||
const menuChild = this.domNode.querySelector(`.${namespace}-menu`);
|
||||
if (menuChild) {
|
||||
this.submenu = new SubMenu(this, menuChild);
|
||||
}
|
||||
this.addListeners();
|
||||
}
|
||||
addListeners() {
|
||||
this.domNode.addEventListener("keydown", (event) => {
|
||||
const code = getEventCode(event);
|
||||
let prevDef = false;
|
||||
switch (code) {
|
||||
case EVENT_CODE.down: {
|
||||
triggerEvent(event.currentTarget, "mouseenter");
|
||||
this.submenu && this.submenu.gotoSubIndex(0);
|
||||
prevDef = true;
|
||||
break;
|
||||
}
|
||||
case EVENT_CODE.up: {
|
||||
triggerEvent(event.currentTarget, "mouseenter");
|
||||
this.submenu && this.submenu.gotoSubIndex(this.submenu.subMenuItems.length - 1);
|
||||
prevDef = true;
|
||||
break;
|
||||
}
|
||||
case EVENT_CODE.tab: {
|
||||
triggerEvent(event.currentTarget, "mouseleave");
|
||||
break;
|
||||
}
|
||||
case EVENT_CODE.enter:
|
||||
case EVENT_CODE.numpadEnter:
|
||||
case EVENT_CODE.space: {
|
||||
prevDef = true;
|
||||
event.currentTarget.click();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (prevDef) {
|
||||
event.preventDefault();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export { MenuItem as default };
|
||||
//# sourceMappingURL=menu-item.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-item.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/utils/menu-item.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"menu-item.mjs","sources":["../../../../../../../packages/components/menu/src/utils/menu-item.ts"],"sourcesContent":["// @ts-nocheck\nimport { getEventCode, triggerEvent } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport SubMenu from './submenu'\n\nclass MenuItem {\n public submenu: SubMenu = null\n constructor(\n public domNode: HTMLElement,\n namespace: string\n ) {\n this.submenu = null\n this.init(namespace)\n }\n\n init(namespace: string): void {\n this.domNode.setAttribute('tabindex', '0')\n const menuChild = this.domNode.querySelector(`.${namespace}-menu`)\n if (menuChild) {\n this.submenu = new SubMenu(this, menuChild)\n }\n this.addListeners()\n }\n\n addListeners(): void {\n this.domNode.addEventListener('keydown', (event: KeyboardEvent) => {\n const code = getEventCode(event)\n let prevDef = false\n\n switch (code) {\n case EVENT_CODE.down: {\n triggerEvent(event.currentTarget as HTMLElement, 'mouseenter')\n this.submenu && this.submenu.gotoSubIndex(0)\n prevDef = true\n break\n }\n case EVENT_CODE.up: {\n triggerEvent(event.currentTarget as HTMLElement, 'mouseenter')\n this.submenu &&\n this.submenu.gotoSubIndex(this.submenu.subMenuItems.length - 1)\n prevDef = true\n break\n }\n case EVENT_CODE.tab: {\n triggerEvent(event.currentTarget as HTMLElement, 'mouseleave')\n break\n }\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n case EVENT_CODE.space: {\n prevDef = true\n ;(event.currentTarget as HTMLElement).click()\n break\n }\n }\n if (prevDef) {\n event.preventDefault()\n }\n })\n }\n}\n\nexport default MenuItem\n"],"names":[],"mappings":";;;;;AAGA,MAAM,QAAQ,CAAC;AACf,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE;AAClC,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACxB,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,CAAC,SAAS,EAAE;AAClB,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC/C,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACvE,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,KAAK;AACL,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;AACxB,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AACxD,MAAM,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACvC,MAAM,IAAI,OAAO,GAAG,KAAK,CAAC;AAC1B,MAAM,QAAQ,IAAI;AAClB,QAAQ,KAAK,UAAU,CAAC,IAAI,EAAE;AAC9B,UAAU,YAAY,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AAC1D,UAAU,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACvD,UAAU,OAAO,GAAG,IAAI,CAAC;AACzB,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,KAAK,UAAU,CAAC,EAAE,EAAE;AAC5B,UAAU,YAAY,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AAC1D,UAAU,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1F,UAAU,OAAO,GAAG,IAAI,CAAC;AACzB,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,KAAK,UAAU,CAAC,GAAG,EAAE;AAC7B,UAAU,YAAY,CAAC,KAAK,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;AAC1D,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,KAAK,UAAU,CAAC,KAAK,CAAC;AAC9B,QAAQ,KAAK,UAAU,CAAC,WAAW,CAAC;AACpC,QAAQ,KAAK,UAAU,CAAC,KAAK,EAAE;AAC/B,UAAU,OAAO,GAAG,IAAI,CAAC;AACzB,UAAU,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACtC,UAAU,MAAM;AAChB,SAAS;AACT,OAAO;AACP,MAAM,IAAI,OAAO,EAAE;AACnB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,OAAO;AACP,KAAK,CAAC,CAAC;AACP,GAAG;AACH;;;;"}
|
||||
12
frontend/node_modules/element-plus/es/components/menu/src/utils/submenu.d.ts
generated
vendored
Normal file
12
frontend/node_modules/element-plus/es/components/menu/src/utils/submenu.d.ts
generated
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
import type MenuItem from './menu-item';
|
||||
declare class SubMenu {
|
||||
parent: MenuItem;
|
||||
domNode: ParentNode;
|
||||
subMenuItems: NodeList;
|
||||
subIndex: number;
|
||||
constructor(parent: MenuItem, domNode: ParentNode);
|
||||
init(): void;
|
||||
gotoSubIndex(idx: number): void;
|
||||
addListeners(): void;
|
||||
}
|
||||
export default SubMenu;
|
||||
66
frontend/node_modules/element-plus/es/components/menu/src/utils/submenu.mjs
generated
vendored
Normal file
66
frontend/node_modules/element-plus/es/components/menu/src/utils/submenu.mjs
generated
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
import { triggerEvent } from '../../../../utils/dom/aria.mjs';
|
||||
import { getEventCode } from '../../../../utils/dom/event.mjs';
|
||||
import { EVENT_CODE } from '../../../../constants/aria.mjs';
|
||||
|
||||
class SubMenu {
|
||||
constructor(parent, domNode) {
|
||||
this.parent = parent;
|
||||
this.domNode = domNode;
|
||||
this.subIndex = 0;
|
||||
this.subIndex = 0;
|
||||
this.init();
|
||||
}
|
||||
init() {
|
||||
this.subMenuItems = this.domNode.querySelectorAll("li");
|
||||
this.addListeners();
|
||||
}
|
||||
gotoSubIndex(idx) {
|
||||
if (idx === this.subMenuItems.length) {
|
||||
idx = 0;
|
||||
} else if (idx < 0) {
|
||||
idx = this.subMenuItems.length - 1;
|
||||
}
|
||||
this.subMenuItems[idx].focus();
|
||||
this.subIndex = idx;
|
||||
}
|
||||
addListeners() {
|
||||
const parentNode = this.parent.domNode;
|
||||
Array.prototype.forEach.call(this.subMenuItems, (el) => {
|
||||
el.addEventListener("keydown", (event) => {
|
||||
const code = getEventCode(event);
|
||||
let prevDef = false;
|
||||
switch (code) {
|
||||
case EVENT_CODE.down: {
|
||||
this.gotoSubIndex(this.subIndex + 1);
|
||||
prevDef = true;
|
||||
break;
|
||||
}
|
||||
case EVENT_CODE.up: {
|
||||
this.gotoSubIndex(this.subIndex - 1);
|
||||
prevDef = true;
|
||||
break;
|
||||
}
|
||||
case EVENT_CODE.tab: {
|
||||
triggerEvent(parentNode, "mouseleave");
|
||||
break;
|
||||
}
|
||||
case EVENT_CODE.enter:
|
||||
case EVENT_CODE.numpadEnter:
|
||||
case EVENT_CODE.space: {
|
||||
prevDef = true;
|
||||
event.currentTarget.click();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (prevDef) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
return false;
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export { SubMenu as default };
|
||||
//# sourceMappingURL=submenu.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/src/utils/submenu.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/src/utils/submenu.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"submenu.mjs","sources":["../../../../../../../packages/components/menu/src/utils/submenu.ts"],"sourcesContent":["// @ts-nocheck\nimport { getEventCode, triggerEvent } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\n\nimport type MenuItem from './menu-item'\n\nclass SubMenu {\n public subMenuItems: NodeList\n public subIndex = 0\n constructor(\n public parent: MenuItem,\n public domNode: ParentNode\n ) {\n this.subIndex = 0\n this.init()\n }\n\n init(): void {\n this.subMenuItems = this.domNode.querySelectorAll('li')\n this.addListeners()\n }\n\n gotoSubIndex(idx: number): void {\n if (idx === this.subMenuItems.length) {\n idx = 0\n } else if (idx < 0) {\n idx = this.subMenuItems.length - 1\n }\n ;(this.subMenuItems[idx] as HTMLElement).focus()\n this.subIndex = idx\n }\n\n addListeners(): void {\n const parentNode = this.parent.domNode\n Array.prototype.forEach.call(this.subMenuItems, (el: Element) => {\n el.addEventListener('keydown', (event: KeyboardEvent) => {\n const code = getEventCode(event)\n let prevDef = false\n\n switch (code) {\n case EVENT_CODE.down: {\n this.gotoSubIndex(this.subIndex + 1)\n prevDef = true\n break\n }\n case EVENT_CODE.up: {\n this.gotoSubIndex(this.subIndex - 1)\n prevDef = true\n break\n }\n case EVENT_CODE.tab: {\n triggerEvent(parentNode as HTMLElement, 'mouseleave')\n break\n }\n case EVENT_CODE.enter:\n case EVENT_CODE.numpadEnter:\n case EVENT_CODE.space: {\n prevDef = true\n ;(event.currentTarget as HTMLElement).click()\n break\n }\n }\n if (prevDef) {\n event.preventDefault()\n event.stopPropagation()\n }\n return false\n })\n })\n }\n}\n\nexport default SubMenu\n"],"names":[],"mappings":";;;;AAEA,MAAM,OAAO,CAAC;AACd,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AAC/B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC3B,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AACtB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,GAAG;AACT,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC5D,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;AACxB,GAAG;AACH,EAAE,YAAY,CAAC,GAAG,EAAE;AACpB,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;AAC1C,MAAM,GAAG,GAAG,CAAC,CAAC;AACd,KAAK,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE;AACxB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AACzC,KAAK;AAEL,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;AACnC,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;AACxB,GAAG;AACH,EAAE,YAAY,GAAG;AACjB,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAC3C,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK;AAC5D,MAAM,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,KAAK,KAAK;AAChD,QAAQ,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AACzC,QAAQ,IAAI,OAAO,GAAG,KAAK,CAAC;AAC5B,QAAQ,QAAQ,IAAI;AACpB,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE;AAChC,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACjD,YAAY,OAAO,GAAG,IAAI,CAAC;AAC3B,YAAY,MAAM;AAClB,WAAW;AACX,UAAU,KAAK,UAAU,CAAC,EAAE,EAAE;AAC9B,YAAY,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AACjD,YAAY,OAAO,GAAG,IAAI,CAAC;AAC3B,YAAY,MAAM;AAClB,WAAW;AACX,UAAU,KAAK,UAAU,CAAC,GAAG,EAAE;AAC/B,YAAY,YAAY,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AACnD,YAAY,MAAM;AAClB,WAAW;AACX,UAAU,KAAK,UAAU,CAAC,KAAK,CAAC;AAChC,UAAU,KAAK,UAAU,CAAC,WAAW,CAAC;AACtC,UAAU,KAAK,UAAU,CAAC,KAAK,EAAE;AACjC,YAAY,OAAO,GAAG,IAAI,CAAC;AAC3B,YAAY,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AACxC,YAAY,MAAM;AAClB,WAAW;AACX,SAAS;AACT,QAAQ,IAAI,OAAO,EAAE;AACrB,UAAU,KAAK,CAAC,cAAc,EAAE,CAAC;AACjC,UAAU,KAAK,CAAC,eAAe,EAAE,CAAC;AAClC,SAAS;AACT,QAAQ,OAAO,KAAK,CAAC;AACrB,OAAO,CAAC,CAAC;AACT,KAAK,CAAC,CAAC;AACP,GAAG;AACH;;;;"}
|
||||
3
frontend/node_modules/element-plus/es/components/menu/style/css.d.ts
generated
vendored
Normal file
3
frontend/node_modules/element-plus/es/components/menu/style/css.d.ts
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import 'element-plus/es/components/base/style/css';
|
||||
import 'element-plus/theme-chalk/el-menu.css';
|
||||
import 'element-plus/es/components/tooltip/style/css';
|
||||
4
frontend/node_modules/element-plus/es/components/menu/style/css.mjs
generated
vendored
Normal file
4
frontend/node_modules/element-plus/es/components/menu/style/css.mjs
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import '../../base/style/css.mjs';
|
||||
import 'element-plus/theme-chalk/el-menu.css';
|
||||
import '../../tooltip/style/css.mjs';
|
||||
//# sourceMappingURL=css.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/style/css.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/style/css.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"css.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
||||
3
frontend/node_modules/element-plus/es/components/menu/style/index.d.ts
generated
vendored
Normal file
3
frontend/node_modules/element-plus/es/components/menu/style/index.d.ts
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
import 'element-plus/es/components/base/style';
|
||||
import 'element-plus/theme-chalk/src/menu.scss';
|
||||
import 'element-plus/es/components/tooltip/style';
|
||||
4
frontend/node_modules/element-plus/es/components/menu/style/index.mjs
generated
vendored
Normal file
4
frontend/node_modules/element-plus/es/components/menu/style/index.mjs
generated
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import '../../base/style/index.mjs';
|
||||
import 'element-plus/theme-chalk/src/menu.scss';
|
||||
import '../../tooltip/style/index.mjs';
|
||||
//# sourceMappingURL=index.mjs.map
|
||||
1
frontend/node_modules/element-plus/es/components/menu/style/index.mjs.map
generated
vendored
Normal file
1
frontend/node_modules/element-plus/es/components/menu/style/index.mjs.map
generated
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
||||
Reference in New Issue
Block a user