@imengyu/vue3-context-menu 1.4.1 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ContextMenuDefine.d.ts +127 -3
- package/lib/ContextMenuItem.vue.d.ts +9 -3
- package/lib/ContextSubMenu.vue.d.ts +27 -16
- package/lib/ContextSubMenuWrapper.vue.d.ts +8 -5
- package/lib/vue3-context-menu.es.js +573 -513
- package/lib/vue3-context-menu.es.js.map +1 -1
- package/lib/vue3-context-menu.umd.js +1 -1
- package/lib/vue3-context-menu.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ export declare const MenuConstOptions: {
|
|
|
7
7
|
defaultMinWidth: number;
|
|
8
8
|
defaultMaxWidth: number;
|
|
9
9
|
defaultZindex: number;
|
|
10
|
+
defaultZoom: number;
|
|
10
11
|
defaultAdjustPadding: {
|
|
11
12
|
x: number;
|
|
12
13
|
y: number;
|
|
@@ -26,6 +27,125 @@ export interface ContextMenuInstance {
|
|
|
26
27
|
* Check if the menu is currently closed.
|
|
27
28
|
*/
|
|
28
29
|
isClosed(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Get current Menu root instance.
|
|
32
|
+
* @returns Return ContextSubMenuInstance of root, return undefined if menu is not showing.
|
|
33
|
+
*/
|
|
34
|
+
getMenuRef(): ContextSubMenuInstance | undefined;
|
|
35
|
+
/**
|
|
36
|
+
* Get root menu size.
|
|
37
|
+
* @returns Return root menu size in pixel, return all zero if menu is not showing.
|
|
38
|
+
*/
|
|
39
|
+
getMenuDimensions(): {
|
|
40
|
+
width: number;
|
|
41
|
+
height: number;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Define that Submenu holder component exposed props
|
|
46
|
+
*
|
|
47
|
+
* Can get by `ContextMenuInstance.getMenuRef`.
|
|
48
|
+
*/
|
|
49
|
+
export interface ContextSubMenuInstance {
|
|
50
|
+
/**
|
|
51
|
+
* Get Root element of this submenu
|
|
52
|
+
*/
|
|
53
|
+
getSubmenuRoot: () => HTMLElement | undefined;
|
|
54
|
+
/**
|
|
55
|
+
* Get Inner container element of this submenu
|
|
56
|
+
*/
|
|
57
|
+
getMenu: () => HTMLElement | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* Get child menu item by array index, Only after the parent submenu is displayed can the child items be retrieved.
|
|
60
|
+
* @param index Array index
|
|
61
|
+
* @returns You can obtain control instance `MenuItemContext according to the index to control menu items.
|
|
62
|
+
*/
|
|
63
|
+
getChildItem: (index: number) => MenuItemContext | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Get submenu root element size.
|
|
66
|
+
* @returns Return root menu size in pixel, return all zero if menu is not showing.
|
|
67
|
+
*/
|
|
68
|
+
getMenuDimensions(): {
|
|
69
|
+
width: number;
|
|
70
|
+
height: number;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Get submenu current scroll value (same as element.scrollTop)
|
|
74
|
+
* @returns
|
|
75
|
+
*/
|
|
76
|
+
getScrollValue: () => number;
|
|
77
|
+
/**
|
|
78
|
+
* Set submenu current scroll value (same as element.scrollTop)
|
|
79
|
+
* @returns
|
|
80
|
+
*/
|
|
81
|
+
setScrollValue: (v: number) => void;
|
|
82
|
+
/**
|
|
83
|
+
* Get submenu max scroll height (same as element.scrollHeight)
|
|
84
|
+
* @returns
|
|
85
|
+
*/
|
|
86
|
+
getScrollHeight: () => number;
|
|
87
|
+
/**
|
|
88
|
+
* Get max submenu height
|
|
89
|
+
* @returns
|
|
90
|
+
*/
|
|
91
|
+
getMaxHeight: () => number;
|
|
92
|
+
/**
|
|
93
|
+
* Get submenu current position (Relative to the parent item)
|
|
94
|
+
* @returns
|
|
95
|
+
*/
|
|
96
|
+
getPosition: () => {
|
|
97
|
+
x: number;
|
|
98
|
+
y: number;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Set submenu current position (Relative to the parent item)
|
|
102
|
+
* @returns
|
|
103
|
+
*/
|
|
104
|
+
setPosition: (x: number, y: number) => void;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Ref define of ContextMenuGroup
|
|
108
|
+
*/
|
|
109
|
+
export interface ContextMenuGroupRef {
|
|
110
|
+
/**
|
|
111
|
+
* Get ContextSubMenuInstance of this group
|
|
112
|
+
*/
|
|
113
|
+
getSubMenuRef(): ContextSubMenuInstance;
|
|
114
|
+
/**
|
|
115
|
+
* Get MenuItemContext of this item.
|
|
116
|
+
*/
|
|
117
|
+
getMenuItemRef(): ContextSubMenuInstance;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* The internal info context for menu item
|
|
121
|
+
*/
|
|
122
|
+
export interface MenuItemContext {
|
|
123
|
+
/**
|
|
124
|
+
* Get current showing submenu instance.
|
|
125
|
+
* @returns Return ContextSubMenuInstance of current submenu, return undefined if menu is not showing.
|
|
126
|
+
*/
|
|
127
|
+
getSubMenuInstance: () => ContextSubMenuInstance | undefined;
|
|
128
|
+
/**
|
|
129
|
+
* Show submenu of this item.
|
|
130
|
+
* @returns
|
|
131
|
+
*/
|
|
132
|
+
showSubMenu: () => boolean;
|
|
133
|
+
/**
|
|
134
|
+
* Force hide submenu of this item.
|
|
135
|
+
*/
|
|
136
|
+
hideSubMenu: () => void;
|
|
137
|
+
/**
|
|
138
|
+
* Get html Element of this item.
|
|
139
|
+
*/
|
|
140
|
+
getElement: () => HTMLElement | undefined;
|
|
141
|
+
/**
|
|
142
|
+
* Check is this item disabled or hidden.
|
|
143
|
+
* @returns
|
|
144
|
+
*/
|
|
145
|
+
isDisabledOrHidden: () => boolean;
|
|
146
|
+
focus: () => void;
|
|
147
|
+
blur: () => void;
|
|
148
|
+
click: (e: MouseEvent | KeyboardEvent) => void;
|
|
29
149
|
}
|
|
30
150
|
export type MenuPopDirection = 'br' | 'b' | 'bl' | 'tr' | 't' | 'tl' | 'l' | 'r';
|
|
31
151
|
export type MenuChildren = MenuItem[];
|
|
@@ -63,6 +183,10 @@ export interface MenuOptions {
|
|
|
63
183
|
* The z-index of this menu.
|
|
64
184
|
*/
|
|
65
185
|
zIndex?: number;
|
|
186
|
+
/**
|
|
187
|
+
* The zoom of this menu.
|
|
188
|
+
*/
|
|
189
|
+
zoom?: number;
|
|
66
190
|
/**
|
|
67
191
|
* Custom menu class.
|
|
68
192
|
*/
|
|
@@ -105,7 +229,7 @@ export interface MenuOptions {
|
|
|
105
229
|
--mx-menu-backgroud: #ececec;
|
|
106
230
|
--mx-menu-hover-backgroud: #0165e1;
|
|
107
231
|
}
|
|
108
|
-
|
|
232
|
+
|
|
109
233
|
//Customize the style of the menu here
|
|
110
234
|
padding: 8px 0;
|
|
111
235
|
box-shadow: 0px 5px 7px 1px var(--mx-menu-shadow-color);
|
|
@@ -357,11 +481,11 @@ export interface MenuItem {
|
|
|
357
481
|
/**
|
|
358
482
|
* This event emit when submenu of this item is closing.
|
|
359
483
|
*/
|
|
360
|
-
onSubMenuClose?: (() => void) | undefined;
|
|
484
|
+
onSubMenuClose?: ((itemInstance: MenuItemContext) => void) | undefined;
|
|
361
485
|
/**
|
|
362
486
|
* This event emit when submenu of this item is showing.
|
|
363
487
|
*/
|
|
364
|
-
onSubMenuOpen?: (() => void) | undefined;
|
|
488
|
+
onSubMenuOpen?: ((itemInstance: MenuItemContext) => void) | undefined;
|
|
365
489
|
/**
|
|
366
490
|
* A custom render callback that allows you to customize the rendering
|
|
367
491
|
* of the current item.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type PropType, type SVGAttributes
|
|
1
|
+
import { type PropType, type SVGAttributes } from 'vue';
|
|
2
2
|
import type { MenuItem } from './ContextMenuDefine';
|
|
3
3
|
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
4
4
|
/**
|
|
@@ -126,8 +126,14 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
126
126
|
default: undefined;
|
|
127
127
|
};
|
|
128
128
|
}, {
|
|
129
|
-
|
|
130
|
-
|
|
129
|
+
getSubMenuInstance: () => import("./ContextMenuDefine").ContextSubMenuInstance | undefined;
|
|
130
|
+
showSubMenu: () => boolean;
|
|
131
|
+
hideSubMenu: () => void;
|
|
132
|
+
getElement: () => HTMLElement | undefined;
|
|
133
|
+
isDisabledOrHidden: () => boolean;
|
|
134
|
+
focus: () => void;
|
|
135
|
+
blur: () => void;
|
|
136
|
+
click: (e: MouseEvent | KeyboardEvent) => void;
|
|
131
137
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
132
138
|
click: (...args: any[]) => void;
|
|
133
139
|
subMenuOpen: (...args: any[]) => void;
|
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
import { type PropType, type Ref } from 'vue';
|
|
2
|
-
import type { MenuOptions, MenuItem, MenuPopDirection } from './ContextMenuDefine';
|
|
2
|
+
import type { MenuOptions, MenuItem, MenuPopDirection, MenuItemContext } from './ContextMenuDefine';
|
|
3
3
|
import type { GlobalHasSlot, GlobalRenderSlot } from './ContextMenu.vue';
|
|
4
4
|
import { solveNumberOrStringSize } from './ContextMenuUtils';
|
|
5
|
-
export interface MenuItemContext {
|
|
6
|
-
focus: () => void;
|
|
7
|
-
blur: () => void;
|
|
8
|
-
showSubMenu: () => boolean;
|
|
9
|
-
getElement: () => HTMLElement | undefined;
|
|
10
|
-
isDisabledOrHidden: () => boolean;
|
|
11
|
-
click: (e: MouseEvent | KeyboardEvent) => void;
|
|
12
|
-
}
|
|
13
5
|
export interface SubMenuContext {
|
|
14
6
|
isTopLevel: () => boolean;
|
|
15
7
|
closeSelfAndActiveParent: () => boolean;
|
|
@@ -36,6 +28,7 @@ export interface SubMenuParentContext {
|
|
|
36
28
|
getParentAbsX: () => number;
|
|
37
29
|
getParentAbsY: () => number;
|
|
38
30
|
getPositon: () => [number, number];
|
|
31
|
+
getZoom: () => number;
|
|
39
32
|
addOpenedSubMenu: (closeFn: () => void) => void;
|
|
40
33
|
closeOtherSubMenu: () => void;
|
|
41
34
|
closeOtherSubMenuWithTimeOut: () => void;
|
|
@@ -91,6 +84,30 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
91
84
|
default: string;
|
|
92
85
|
};
|
|
93
86
|
}, {
|
|
87
|
+
globalHasSlot: GlobalHasSlot;
|
|
88
|
+
globalRenderSlot: GlobalRenderSlot;
|
|
89
|
+
onScroll: (down: boolean) => void;
|
|
90
|
+
onSubMenuBodyClick: () => void;
|
|
91
|
+
onMouseWhell: (e: WheelEvent) => void;
|
|
92
|
+
onMouseWhellMx: (e: WheelEvent) => void;
|
|
93
|
+
solveNumberOrStringSize: typeof solveNumberOrStringSize;
|
|
94
|
+
getSubmenuRoot: () => HTMLElement | undefined;
|
|
95
|
+
getMenu: () => HTMLElement | undefined;
|
|
96
|
+
getChildItem: (index: number) => MenuItemContext | undefined;
|
|
97
|
+
getMenuDimensions(): {
|
|
98
|
+
width: number;
|
|
99
|
+
height: number;
|
|
100
|
+
};
|
|
101
|
+
getScrollValue: () => number;
|
|
102
|
+
setScrollValue: (v: number) => void;
|
|
103
|
+
getScrollHeight: () => number;
|
|
104
|
+
getMaxHeight: () => number;
|
|
105
|
+
getPosition: () => {
|
|
106
|
+
x: number;
|
|
107
|
+
y: number;
|
|
108
|
+
};
|
|
109
|
+
setPosition: (x: number, y: number) => void;
|
|
110
|
+
submenuRoot: Ref<HTMLElement | undefined>;
|
|
94
111
|
menu: Ref<HTMLElement | undefined>;
|
|
95
112
|
scroll: Ref<HTMLElement | undefined>;
|
|
96
113
|
options: Ref<MenuOptions>;
|
|
@@ -100,6 +117,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
100
117
|
defaultMinWidth: number;
|
|
101
118
|
defaultMaxWidth: number;
|
|
102
119
|
defaultZindex: number;
|
|
120
|
+
defaultZoom: number;
|
|
103
121
|
defaultAdjustPadding: {
|
|
104
122
|
x: number;
|
|
105
123
|
y: number;
|
|
@@ -114,13 +132,6 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
114
132
|
}>;
|
|
115
133
|
scrollHeight: Ref<number>;
|
|
116
134
|
maxHeight: Ref<number>;
|
|
117
|
-
globalHasSlot: GlobalHasSlot;
|
|
118
|
-
globalRenderSlot: GlobalRenderSlot;
|
|
119
|
-
onScroll: (down: boolean) => void;
|
|
120
|
-
onSubMenuBodyClick: () => void;
|
|
121
|
-
onMouseWhell: (e: WheelEvent) => void;
|
|
122
|
-
onMouseWhellMx: (e: WheelEvent) => void;
|
|
123
|
-
solveNumberOrStringSize: typeof solveNumberOrStringSize;
|
|
124
135
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
125
136
|
/**
|
|
126
137
|
* Items from options
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { type PropType, type VNode, type Ref } from 'vue';
|
|
2
|
-
import type { MenuItem, MenuOptions } from './ContextMenuDefine';
|
|
2
|
+
import type { ContextSubMenuInstance, MenuItem, MenuOptions } from './ContextMenuDefine';
|
|
3
3
|
/**
|
|
4
4
|
* Context menu component
|
|
5
5
|
*/
|
|
6
6
|
export type GlobalHasSlot = (name: string) => boolean;
|
|
7
7
|
export type GlobalRenderSlot = (name: string, params: Record<string, unknown>) => VNode;
|
|
8
|
-
declare function closeMenu(fromItem?: MenuItem | undefined): void;
|
|
9
|
-
declare function isClosed(): boolean;
|
|
10
8
|
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
11
9
|
/**
|
|
12
10
|
* Menu options
|
|
@@ -37,8 +35,13 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
|
|
|
37
35
|
default: boolean;
|
|
38
36
|
};
|
|
39
37
|
}, {
|
|
40
|
-
closeMenu:
|
|
41
|
-
isClosed:
|
|
38
|
+
closeMenu(fromItem?: MenuItem | undefined): void;
|
|
39
|
+
isClosed(): boolean;
|
|
40
|
+
getMenuRef(): ContextSubMenuInstance | undefined;
|
|
41
|
+
getMenuDimensions(): {
|
|
42
|
+
width: number;
|
|
43
|
+
height: number;
|
|
44
|
+
};
|
|
42
45
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
43
46
|
close: (...args: any[]) => void;
|
|
44
47
|
closeAnimFinished: (...args: any[]) => void;
|