@imengyu/vue3-context-menu 1.1.7 → 1.1.8
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/README.CN.md +60 -4
- package/README.md +102 -7
- package/examples/single-test.html +146 -0
- package/examples/views/BasicComponent.vue +9 -2
- package/examples/views/BasicUseage.vue +8 -1
- package/lib/vue3-context-menu.common.js +17 -8
- package/lib/vue3-context-menu.common.js.map +1 -1
- package/lib/vue3-context-menu.umd.js +17 -8
- package/lib/vue3-context-menu.umd.js.map +1 -1
- package/lib/vue3-context-menu.umd.min.js +1 -1
- package/lib/vue3-context-menu.umd.min.js.map +1 -1
- package/package.json +7 -3
- package/src/ContextMenuInstance.ts +1 -0
- package/src/ContextMenuUtils.ts +8 -1
- package/src/ContextSubMenu.vue +2 -2
package/README.CN.md
CHANGED
|
@@ -7,20 +7,76 @@
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
[查看在线演示](https://imengyu.top/pages/vue3-context-menu-demo/)
|
|
11
|
-
|
|
12
10
|
## 特性
|
|
13
11
|
|
|
14
12
|
* 简洁易用,体积小
|
|
15
13
|
* 提供组件模式和函数模式,调用方便
|
|
16
14
|
* 可自定义
|
|
17
15
|
|
|
18
|
-
###
|
|
16
|
+
### 用法
|
|
19
17
|
|
|
20
18
|
```
|
|
21
19
|
npm install -save @imengyu/vue3-context-menu
|
|
22
20
|
```
|
|
23
21
|
|
|
22
|
+
然后在 main.ts 中导入:
|
|
23
|
+
|
|
24
|
+
```js
|
|
25
|
+
import '@imengyu/vue3-context-menu/lib/vue3-context-menu.css'
|
|
26
|
+
import ContextMenu from '@imengyu/vue3-context-menu'
|
|
27
|
+
|
|
28
|
+
createApp(App).use(ContextMenu)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
然后你就可以在 vue 文件中使用菜单了:
|
|
32
|
+
|
|
33
|
+
```js
|
|
34
|
+
import ContextMenu from '@imengyu/vue3-context-menu'
|
|
35
|
+
|
|
36
|
+
onContextMenu(e : MouseEvent) {
|
|
37
|
+
//prevent the browser's default menu
|
|
38
|
+
e.preventDefault();
|
|
39
|
+
//show your menu
|
|
40
|
+
ContextMenu.showContextMenu({
|
|
41
|
+
x: e.x,
|
|
42
|
+
y: e.y,
|
|
43
|
+
items: [
|
|
44
|
+
{
|
|
45
|
+
label: "A menu item",
|
|
46
|
+
onClick: () => {
|
|
47
|
+
alert("You click a menu item");
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
label: "A submenu",
|
|
52
|
+
children: [
|
|
53
|
+
{ label: "Item1" },
|
|
54
|
+
{ label: "Item2" },
|
|
55
|
+
{ label: "Item3" },
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
]
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
关于详细的用法,请参考文档。
|
|
64
|
+
|
|
24
65
|
## 文档
|
|
25
66
|
|
|
26
|
-
[查看文档](https://imengyu.top/pages/vue3-context-menu-docs/)
|
|
67
|
+
[查看文档](https://imengyu.top/pages/vue3-context-menu-docs/)
|
|
68
|
+
|
|
69
|
+
[查看在线演示](https://imengyu.top/pages/vue3-context-menu-demo/)
|
|
70
|
+
|
|
71
|
+
## 开发
|
|
72
|
+
|
|
73
|
+
```shell
|
|
74
|
+
git clone git@github.com:imengyu/vue3-context-menu.git
|
|
75
|
+
cd vue3-context-menu
|
|
76
|
+
npm install
|
|
77
|
+
npm serve
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## License
|
|
81
|
+
|
|
82
|
+
[MIT](./LICENSE)
|
package/README.md
CHANGED
|
@@ -5,24 +5,119 @@ A context menu component for Vue3
|
|
|
5
5
|
|
|
6
6
|

|
|
7
7
|
|
|
8
|
-
[
|
|
8
|
+
English | [简体中文](https://github.com/imengyu/vue3-context-menu/blob/main/README.CN.md)
|
|
9
9
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
## features
|
|
12
|
+
## Features
|
|
15
13
|
|
|
16
14
|
* Simple and easy to use, small size
|
|
17
15
|
* Provide component mode and function mode
|
|
18
16
|
* Customizable
|
|
19
17
|
|
|
20
|
-
|
|
18
|
+
## Documentation
|
|
19
|
+
|
|
20
|
+
[View Documentation](https://imengyu.top/pages/vue3-context-menu-docs/en/)
|
|
21
|
+
|
|
22
|
+
[Click here View online Demo](https://imengyu.top/pages/vue3-context-menu-demo/)
|
|
23
|
+
|
|
24
|
+
### Useage
|
|
21
25
|
|
|
22
26
|
```
|
|
23
27
|
npm install -save @imengyu/vue3-context-menu
|
|
24
28
|
```
|
|
25
29
|
|
|
26
|
-
|
|
30
|
+
Then import in the main.ts file:
|
|
31
|
+
|
|
32
|
+
```js
|
|
33
|
+
import '@imengyu/vue3-context-menu/lib/vue3-context-menu.css'
|
|
34
|
+
import ContextMenu from '@imengyu/vue3-context-menu'
|
|
35
|
+
|
|
36
|
+
createApp(App).use(ContextMenu)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Then you can use the ContextMenu in the .vue file:
|
|
40
|
+
|
|
41
|
+
```js
|
|
42
|
+
import ContextMenu from '@imengyu/vue3-context-menu'
|
|
43
|
+
|
|
44
|
+
onContextMenu(e : MouseEvent) {
|
|
45
|
+
//prevent the browser's default menu
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
//show your menu
|
|
48
|
+
ContextMenu.showContextMenu({
|
|
49
|
+
x: e.x,
|
|
50
|
+
y: e.y,
|
|
51
|
+
items: [
|
|
52
|
+
{
|
|
53
|
+
label: "A menu item",
|
|
54
|
+
onClick: () => {
|
|
55
|
+
alert("You click a menu item");
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
label: "A submenu",
|
|
60
|
+
children: [
|
|
61
|
+
{ label: "Item1" },
|
|
62
|
+
{ label: "Item2" },
|
|
63
|
+
{ label: "Item3" },
|
|
64
|
+
]
|
|
65
|
+
},
|
|
66
|
+
]
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Or component:
|
|
72
|
+
|
|
73
|
+
```html
|
|
74
|
+
<context-menu
|
|
75
|
+
v-model:show="show"
|
|
76
|
+
:options="optionsComponent"
|
|
77
|
+
>
|
|
78
|
+
<context-menu-item label="Simple item" @click="onMenuClick(1)" />
|
|
79
|
+
<context-menu-sperator /><!--use this to add sperator-->
|
|
80
|
+
<context-menu-group label="Menu with child">
|
|
81
|
+
<context-menu-item label="Item1" @click="onMenuClick(2)" />
|
|
82
|
+
<context-menu-item label="Item2" @click="onMenuClick(3)" />
|
|
83
|
+
<context-menu-group label="Child with v-for 50">
|
|
84
|
+
<context-menu-item v-for="index of 50" :key="index" :label="'Item3-'+index" @click="onLoopMenuClick(index)" />
|
|
85
|
+
</context-menu-group>
|
|
86
|
+
</context-menu-group>
|
|
87
|
+
</context-menu>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
```js
|
|
91
|
+
data() {
|
|
92
|
+
return {
|
|
93
|
+
show: false,
|
|
94
|
+
optionsComponent: {
|
|
95
|
+
zIndex: 3,
|
|
96
|
+
minWidth: 230,
|
|
97
|
+
x: 500,
|
|
98
|
+
y: 200
|
|
99
|
+
},
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
methods: {
|
|
103
|
+
onButtonClick(e : MouseEvent) {
|
|
104
|
+
//Show component mode menu
|
|
105
|
+
this.show = true;
|
|
106
|
+
this.options.x = e.x;
|
|
107
|
+
this.options.y = e.y;
|
|
108
|
+
},
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Development
|
|
113
|
+
|
|
114
|
+
```shell
|
|
115
|
+
git clone git@github.com:imengyu/vue3-context-menu.git
|
|
116
|
+
cd vue3-context-menu
|
|
117
|
+
npm install
|
|
118
|
+
npm serve
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## License
|
|
27
122
|
|
|
28
|
-
[
|
|
123
|
+
[MIT](./LICENSE)
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
<html>
|
|
2
|
+
<head>
|
|
3
|
+
<title>vue3-context-menu test</title>
|
|
4
|
+
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
|
|
5
|
+
<link rel="stylesheet" href="./vue3-context-menu.css" />
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<script src="./vue3-context-menu.umd.js"></script>
|
|
9
|
+
|
|
10
|
+
<div id="app">
|
|
11
|
+
<div @contextmenu="onContextMenu($event)">{{ message }}</div>
|
|
12
|
+
</div>
|
|
13
|
+
|
|
14
|
+
<script>
|
|
15
|
+
const { createApp } = Vue
|
|
16
|
+
|
|
17
|
+
createApp({
|
|
18
|
+
data() {
|
|
19
|
+
return {
|
|
20
|
+
message: 'Right click here to show contextmenu !'
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
methods: {
|
|
24
|
+
onContextMenu(e) {
|
|
25
|
+
//prevent the browser's default menu
|
|
26
|
+
e.preventDefault();
|
|
27
|
+
//show our menu
|
|
28
|
+
this.$contextmenu({
|
|
29
|
+
items: [
|
|
30
|
+
{
|
|
31
|
+
label: 'Simple item',
|
|
32
|
+
onClick: () => alert('Click Simple item'),
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
label: "Sub menu Example",
|
|
36
|
+
children: [
|
|
37
|
+
{
|
|
38
|
+
label: "Back",
|
|
39
|
+
onClick: () => {
|
|
40
|
+
console.log("You click Back");
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
{ label: "Forward", disabled: true },
|
|
44
|
+
{
|
|
45
|
+
label: "Reload",
|
|
46
|
+
divided: true,
|
|
47
|
+
icon: "icon-reload-1",
|
|
48
|
+
onClick: () => {
|
|
49
|
+
alert("You click Reload");
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
label: "Save as...",
|
|
54
|
+
icon: "icon-save",
|
|
55
|
+
onClick: () => {
|
|
56
|
+
alert("You click Save as");
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
label: "Print...",
|
|
61
|
+
icon: "icon-print",
|
|
62
|
+
onClick: () => {
|
|
63
|
+
alert("You click Print");
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{ label: "View source", icon: "icon-terminal" },
|
|
67
|
+
{ label: "Inspect" }
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
label: "Submenu with Submenu",
|
|
72
|
+
children: [
|
|
73
|
+
{
|
|
74
|
+
label: "Very long submenu",
|
|
75
|
+
divided: true,
|
|
76
|
+
children: [
|
|
77
|
+
{ label: "Test1" },
|
|
78
|
+
{ label: "Test2" },
|
|
79
|
+
{ label: "Test3" },
|
|
80
|
+
{ label: "Test4" },
|
|
81
|
+
{ label: "Test5" },
|
|
82
|
+
{ label: "Test6" },
|
|
83
|
+
{ label: "Test7" },
|
|
84
|
+
{ label: "Test8" },
|
|
85
|
+
{ label: "Test9" },
|
|
86
|
+
{ label: "Test10" },
|
|
87
|
+
{ label: "Test11" },
|
|
88
|
+
{ label: "Test12" },
|
|
89
|
+
{ label: "Test13" },
|
|
90
|
+
{ label: "Test14" },
|
|
91
|
+
{ label: "Test15" },
|
|
92
|
+
{ label: "Test16" },
|
|
93
|
+
{ label: "Test17" },
|
|
94
|
+
{ label: "Test18" },
|
|
95
|
+
{ label: "Test19" },
|
|
96
|
+
{ label: "Test20" },
|
|
97
|
+
{ label: "Test21" },
|
|
98
|
+
{ label: "Test22" },
|
|
99
|
+
{ label: "Test23" },
|
|
100
|
+
{ label: "Test24" },
|
|
101
|
+
{ label: "Test25" },
|
|
102
|
+
{ label: "Test26" },
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
label: "A submenu",
|
|
107
|
+
children: [
|
|
108
|
+
{ label: "Item1" },
|
|
109
|
+
{ label: "Item2" },
|
|
110
|
+
{ label: "Item3" },
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
label: "A submenu2",
|
|
115
|
+
children: [
|
|
116
|
+
{ label: "Item1" },
|
|
117
|
+
{ label: "Item2" },
|
|
118
|
+
{ label: "Item3" },
|
|
119
|
+
{
|
|
120
|
+
label: "A submenu",
|
|
121
|
+
children: [
|
|
122
|
+
{ label: "Item1" },
|
|
123
|
+
{ label: "Item2" },
|
|
124
|
+
{ label: "Item3" },
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
]
|
|
128
|
+
},
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
iconFontClass: 'iconfont',
|
|
133
|
+
customClass: "class-a",
|
|
134
|
+
zIndex: 3,
|
|
135
|
+
minWidth: 230,
|
|
136
|
+
x: e.x,
|
|
137
|
+
y: e.y,
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
})
|
|
142
|
+
.use(window['vue3-context-menu'].default)
|
|
143
|
+
.mount('#app')
|
|
144
|
+
</script>
|
|
145
|
+
</body>
|
|
146
|
+
</html>
|
|
@@ -13,14 +13,16 @@
|
|
|
13
13
|
>
|
|
14
14
|
<context-menu-item label="Simple item" @click="alertContextMenuItemClicked('Item1')" />
|
|
15
15
|
<context-menu-item label="Item with a icon" icon="icon-reload-1" @click="alertContextMenuItemClicked('Item2')" />
|
|
16
|
+
<context-menu-item label="Test item dynamic show and hide" :clickClose="false" @click="showItem=!showItem" />
|
|
17
|
+
<context-menu-item v-if="showItem" label="Click the item above to show/hide me" />
|
|
18
|
+
<context-menu-sperator v-if="showItem" />
|
|
19
|
+
<context-menu-item :label="itemText" :clickClose="false" @click="changeLabelText" />
|
|
16
20
|
<context-menu-group label="Menu with child">
|
|
17
21
|
<context-menu-item label="Item1" @click="alertContextMenuItemClicked('Item1-1')" />
|
|
18
22
|
<context-menu-item label="Item1" @click="alertContextMenuItemClicked('Item1-2')" />
|
|
19
23
|
</context-menu-group>
|
|
20
|
-
<context-menu-sperator />
|
|
21
24
|
<context-menu-group label="Menu with child child child">
|
|
22
25
|
<context-menu-item label="Item1" @click="alertContextMenuItemClicked('Item2-1')" />
|
|
23
|
-
<context-menu-item label="Item2" @click="alertContextMenuItemClicked('Item2-2')" />
|
|
24
26
|
<context-menu-sperator />
|
|
25
27
|
<context-menu-group label="Child with v-for 50">
|
|
26
28
|
<context-menu-item v-for="index of 50" :key="index" :label="'Item3-'+index" @click="alertContextMenuItemClicked('Item2-3-' + index)" />
|
|
@@ -92,6 +94,8 @@ export default defineComponent({
|
|
|
92
94
|
data() {
|
|
93
95
|
return {
|
|
94
96
|
show: false,
|
|
97
|
+
showItem: true,
|
|
98
|
+
itemText: 'Test item dynamic change label',
|
|
95
99
|
optionsComponent: {
|
|
96
100
|
iconFontClass: 'iconfont',
|
|
97
101
|
customClass: "class-a",
|
|
@@ -111,6 +115,9 @@ export default defineComponent({
|
|
|
111
115
|
//Show menu
|
|
112
116
|
this.show = true;
|
|
113
117
|
},
|
|
118
|
+
changeLabelText() {
|
|
119
|
+
this.itemText = (this.itemText == 'My label CHANGED!' ? 'Test item dynamic change label' : 'My label CHANGED!');
|
|
120
|
+
},
|
|
114
121
|
alertContextMenuItemClicked(name: string) {
|
|
115
122
|
alert('You clicked ' + name + ' !');
|
|
116
123
|
},
|
|
@@ -207,6 +207,7 @@ const menuData = reactive<MenuOptions>({
|
|
|
207
207
|
},
|
|
208
208
|
{
|
|
209
209
|
label: 'Click the item above to show/hide me',
|
|
210
|
+
divided: true,
|
|
210
211
|
},
|
|
211
212
|
{
|
|
212
213
|
label: 'Test item dynamic change the label',
|
|
@@ -294,4 +295,10 @@ function onContextMenu2(e : MouseEvent) {
|
|
|
294
295
|
y: e.y
|
|
295
296
|
} as MenuOptions);
|
|
296
297
|
}
|
|
297
|
-
</script>
|
|
298
|
+
</script>
|
|
299
|
+
|
|
300
|
+
<style>
|
|
301
|
+
.class-a {
|
|
302
|
+
font-family: 'Times New Roman', Times, serif;
|
|
303
|
+
}
|
|
304
|
+
</style>
|
|
@@ -2786,6 +2786,7 @@ function removeContainer(container) {
|
|
|
2786
2786
|
|
|
2787
2787
|
(_container$parentNode = container.parentNode) === null || _container$parentNode === void 0 ? void 0 : _container$parentNode.removeChild(container);
|
|
2788
2788
|
}
|
|
2789
|
+
var DEFAULT_CONTAINER_ID = 'mx-menu-default-container';
|
|
2789
2790
|
function genContainer(options) {
|
|
2790
2791
|
var getContainer = options.getContainer,
|
|
2791
2792
|
zIndex = options.zIndex;
|
|
@@ -2802,7 +2803,13 @@ function genContainer(options) {
|
|
|
2802
2803
|
}
|
|
2803
2804
|
}
|
|
2804
2805
|
|
|
2805
|
-
var container = document.
|
|
2806
|
+
var container = document.getElementById(DEFAULT_CONTAINER_ID);
|
|
2807
|
+
|
|
2808
|
+
if (!container) {
|
|
2809
|
+
container = document.createElement('div');
|
|
2810
|
+
container.setAttribute('id', DEFAULT_CONTAINER_ID);
|
|
2811
|
+
}
|
|
2812
|
+
|
|
2806
2813
|
container.setAttribute('class', 'mx-menu-ghost-host');
|
|
2807
2814
|
container.style.zIndex = (zIndex === null || zIndex === void 0 ? void 0 : zIndex.toString()) || MenuConstOptions.defaultZindex.toString();
|
|
2808
2815
|
document.body.appendChild(container);
|
|
@@ -2881,7 +2888,7 @@ function _objectSpread2(target) {
|
|
|
2881
2888
|
}
|
|
2882
2889
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/web.timers.js
|
|
2883
2890
|
var web_timers = __webpack_require__(2564);
|
|
2884
|
-
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/ContextSubMenu.vue?vue&type=template&id=
|
|
2891
|
+
;// CONCATENATED MODULE: ./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[4]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/ContextSubMenu.vue?vue&type=template&id=755535e6&ts=true
|
|
2885
2892
|
|
|
2886
2893
|
var _hoisted_1 = {
|
|
2887
2894
|
"class": "mx-context-menu-scroll",
|
|
@@ -2954,13 +2961,14 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2954
2961
|
minWidth: item.minWidth,
|
|
2955
2962
|
adjustPosition: item.adjustSubMenuPosition
|
|
2956
2963
|
}, null, 8, ["items", "maxWidth", "minWidth", "adjustPosition"])];
|
|
2957
|
-
})
|
|
2958
|
-
|
|
2964
|
+
}),
|
|
2965
|
+
key: "0"
|
|
2966
|
+
} : undefined]), 1032, ["clickHandler", "disabled", "hidden", "icon", "iconFontClass", "svgIcon", "svgProps", "label", "customRender", "customClass", "clickClose", "clickableWhenHasChildren", "showRightArrow", "hasChildren"]), item.hidden !== true && item.divided && _ctx.globalHasSlot('separatorRender') ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_VNodeRender, {
|
|
2959
2967
|
key: 0,
|
|
2960
2968
|
vnode: function vnode() {
|
|
2961
2969
|
return _ctx.globalRenderSlot('separatorRender', {});
|
|
2962
2970
|
}
|
|
2963
|
-
}, null, 8, ["vnode"])) : item.divided ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_ContextMenuSeparator, {
|
|
2971
|
+
}, null, 8, ["vnode"])) : item.hidden !== true && item.divided ? ((0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.openBlock)(), (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createBlock)(_component_ContextMenuSeparator, {
|
|
2964
2972
|
key: 1
|
|
2965
2973
|
})) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.createCommentVNode)("", true)]);
|
|
2966
2974
|
}), 128))];
|
|
@@ -2976,7 +2984,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
2976
2984
|
})
|
|
2977
2985
|
}, _hoisted_5, 512), [[external_commonjs_vue_commonjs2_vue_root_Vue_namespaceObject.vShow, _ctx.overflow && _ctx.scrollValue > -_ctx.scrollHeight]])], 512)], 6);
|
|
2978
2986
|
}
|
|
2979
|
-
;// CONCATENATED MODULE: ./src/ContextSubMenu.vue?vue&type=template&id=
|
|
2987
|
+
;// CONCATENATED MODULE: ./src/ContextSubMenu.vue?vue&type=template&id=755535e6&ts=true
|
|
2980
2988
|
|
|
2981
2989
|
// EXTERNAL MODULE: ./node_modules/core-js/modules/es.number.constructor.js
|
|
2982
2990
|
var es_number_constructor = __webpack_require__(9653);
|
|
@@ -3479,10 +3487,10 @@ const ContextMenuSeparator_exports_ = /*#__PURE__*/(0,exportHelper/* default */.
|
|
|
3479
3487
|
}));
|
|
3480
3488
|
;// CONCATENATED MODULE: ./src/ContextSubMenu.vue?vue&type=script&lang=ts
|
|
3481
3489
|
|
|
3482
|
-
;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/ContextSubMenu.vue?vue&type=style&index=0&id=
|
|
3490
|
+
;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-22.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-22.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-22.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-22.use[3]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/ContextSubMenu.vue?vue&type=style&index=0&id=755535e6&lang=scss
|
|
3483
3491
|
// extracted by mini-css-extract-plugin
|
|
3484
3492
|
|
|
3485
|
-
;// CONCATENATED MODULE: ./src/ContextSubMenu.vue?vue&type=style&index=0&id=
|
|
3493
|
+
;// CONCATENATED MODULE: ./src/ContextSubMenu.vue?vue&type=style&index=0&id=755535e6&lang=scss
|
|
3486
3494
|
|
|
3487
3495
|
;// CONCATENATED MODULE: ./src/ContextSubMenu.vue
|
|
3488
3496
|
|
|
@@ -3933,6 +3941,7 @@ function $contextmenu(options, customSlots) {
|
|
|
3933
3941
|
},
|
|
3934
3942
|
//Close the currently open menu
|
|
3935
3943
|
closeContextMenu: closeContextMenu,
|
|
3944
|
+
//Tools
|
|
3936
3945
|
transformMenuPosition: transformMenuPosition
|
|
3937
3946
|
});
|
|
3938
3947
|
;// CONCATENATED MODULE: ./index.js
|