vft 0.0.482 → 0.0.485
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/dist/index.css +1 -1
- package/es/components/carousel/use-carousel.js +1 -1
- package/es/components/horizontal-menu/horizontal-menu.vue.d.ts +20 -4
- package/es/components/horizontal-menu/horizontal-menu.vue2.js +29 -29
- package/es/components/horizontal-menu/index.d.ts +20 -4
- package/es/components/input/input.vue2.js +4 -4
- package/es/components/input-tag/composables/use-input-tag.js +1 -1
- package/es/components/menu/index.d.ts +28 -7
- package/es/components/menu/menu-item-group.vue.d.ts +2 -4
- package/es/components/menu/menu-item.vue.d.ts +1 -17
- package/es/components/menu/menu.vue.d.ts +3 -28
- package/es/components/menu/menu.vue2.js +81 -76
- package/es/components/menu/sub-menu.vue.d.ts +1 -19
- package/es/components/menu/types.d.ts +64 -0
- package/es/components/side-menu/index.d.ts +55 -4
- package/es/components/side-menu/side-menu.vue.d.ts +20 -3
- package/es/components/side-menu/side-menu.vue2.js +166 -139
- package/es/components/side-menu/types.d.ts +13 -2
- package/es/components/super-form/super-form-action.vue2.js +55 -55
- package/es/components/super-form/super-form-item.vue2.js +1 -1
- package/es/package.json.d.ts +1 -1
- package/es/package.json.js +1 -1
- package/es/utils/vue/vnode.js +1 -1
- package/lib/components/horizontal-menu/horizontal-menu.vue.d.ts +20 -4
- package/lib/components/horizontal-menu/horizontal-menu.vue2.cjs +1 -1
- package/lib/components/horizontal-menu/index.d.ts +20 -4
- package/lib/components/input/input.vue2.cjs +1 -1
- package/lib/components/menu/index.d.ts +28 -7
- package/lib/components/menu/menu-item-group.vue.d.ts +2 -4
- package/lib/components/menu/menu-item.vue.d.ts +1 -17
- package/lib/components/menu/menu.vue.d.ts +3 -28
- package/lib/components/menu/menu.vue2.cjs +1 -1
- package/lib/components/menu/sub-menu.vue.d.ts +1 -19
- package/lib/components/menu/types.d.ts +64 -0
- package/lib/components/side-menu/index.d.ts +55 -4
- package/lib/components/side-menu/side-menu.vue.d.ts +20 -3
- package/lib/components/side-menu/side-menu.vue2.cjs +1 -1
- package/lib/components/side-menu/types.d.ts +13 -2
- package/lib/components/super-form/super-form-action.vue2.cjs +1 -1
- package/lib/package.json.cjs +1 -1
- package/lib/package.json.d.ts +1 -1
- package/package.json +5 -5
- package/theme-style/index.css +1 -1
- package/theme-style/src/menu.scss +54 -0
- package/theme-style/vft-menu.css +1 -1
- package/web-types.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent as E, useSlots as X, getCurrentInstance as Y, ref as i, computed as Z, watch as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { defineComponent as E, useSlots as X, getCurrentInstance as Y, ref as i, computed as Z, watch as x, watchEffect as _, provide as N, reactive as ee, onMounted as te, h as g, nextTick as le } from "vue";
|
|
2
|
+
import { VftIcon as ne } from "../icon/index.js";
|
|
3
|
+
import { useResizeObserver as oe } from "@vueuse/core";
|
|
4
|
+
import { isNullOrUndefined as R, isMobile as ue } from "@vft/utils";
|
|
5
5
|
import "../config-provider/hooks/use-global-config.js";
|
|
6
6
|
import "lodash-es";
|
|
7
7
|
import { flattedChildren as ae } from "../../utils/vue/vnode.js";
|
|
@@ -30,104 +30,108 @@ const de = E({
|
|
|
30
30
|
ellipsis: { type: Boolean, default: !0 },
|
|
31
31
|
horizontalMenuProps: {},
|
|
32
32
|
persistent: { type: Boolean, default: !0 },
|
|
33
|
-
disableSubMenuAction: { type: Boolean, default: !1 }
|
|
33
|
+
disableSubMenuAction: { type: Boolean, default: !1 },
|
|
34
|
+
backgroundColor: {},
|
|
35
|
+
textColor: {},
|
|
36
|
+
activeTextColor: {},
|
|
37
|
+
collapseType: {}
|
|
34
38
|
},
|
|
35
39
|
emits: ["update:collapse", "sub-menu-click", "select", "close", "open"],
|
|
36
|
-
setup(
|
|
37
|
-
const v =
|
|
38
|
-
|
|
39
|
-
), u = i(
|
|
40
|
+
setup(t, { expose: W, emit: $ }) {
|
|
41
|
+
const v = $, p = w("menu"), V = X(), h = Y(), T = h.appContext.config.globalProperties.$router, s = i(), C = w("sub-menu"), f = i(-1), a = i(
|
|
42
|
+
t.defaultOpeneds && !t.collapse ? t.defaultOpeneds.slice(0) : []
|
|
43
|
+
), u = i(t.defaultActive), r = i({}), M = i({}), q = Z(() => t.mode === "horizontal" || t.mode === "vertical" && t.collapse), D = () => {
|
|
40
44
|
const e = u.value && r.value[u.value];
|
|
41
|
-
if (!e ||
|
|
42
|
-
e.indexPath.forEach((
|
|
43
|
-
const o =
|
|
44
|
-
o && b(
|
|
45
|
+
if (!e || t.mode === "horizontal" || t.collapse) return;
|
|
46
|
+
e.indexPath.forEach((n) => {
|
|
47
|
+
const o = M.value[n];
|
|
48
|
+
o && b(n, o.indexPath);
|
|
45
49
|
});
|
|
46
|
-
}, b = (e,
|
|
47
|
-
a.value.includes(e) || (
|
|
48
|
-
(o) =>
|
|
49
|
-
)), a.value.push(e), v("open", { index: e, indexPath:
|
|
50
|
-
},
|
|
50
|
+
}, b = (e, l, n) => {
|
|
51
|
+
a.value.includes(e) || (t.uniqueOpened && (a.value = a.value.filter(
|
|
52
|
+
(o) => l.includes(o)
|
|
53
|
+
)), a.value.push(e), v("open", { index: e, indexPath: l, e: n }));
|
|
54
|
+
}, y = (e, l, n) => {
|
|
51
55
|
const o = a.value.indexOf(e);
|
|
52
|
-
o !== -1 && a.value.splice(o, 1), v("close", { index: e, indexPath:
|
|
56
|
+
o !== -1 && a.value.splice(o, 1), v("close", { index: e, indexPath: l, event: n });
|
|
53
57
|
}, L = ({
|
|
54
58
|
e,
|
|
55
|
-
index:
|
|
56
|
-
indexPath:
|
|
59
|
+
index: l,
|
|
60
|
+
indexPath: n,
|
|
57
61
|
isFirstLevel: o = !1
|
|
58
62
|
}) => {
|
|
59
63
|
if (!o) {
|
|
60
|
-
const c = a.value.includes(
|
|
61
|
-
u.value =
|
|
64
|
+
const c = a.value.includes(l);
|
|
65
|
+
u.value = l, t.disableSubMenuAction || (c ? y(l, n, e) : b(l, n, e));
|
|
62
66
|
}
|
|
63
|
-
v("sub-menu-click", { e, index:
|
|
67
|
+
v("sub-menu-click", { e, index: l, indexPath: n });
|
|
64
68
|
}, F = (e) => {
|
|
65
|
-
(
|
|
66
|
-
const { index:
|
|
67
|
-
if (!(R(
|
|
68
|
-
if (
|
|
69
|
-
const o = e.route ||
|
|
69
|
+
(t.mode === "horizontal" || t.collapse) && (a.value = []);
|
|
70
|
+
const { index: l, indexPath: n } = e;
|
|
71
|
+
if (!(R(l) || R(n))) {
|
|
72
|
+
if (t.router && T) {
|
|
73
|
+
const o = e.route || l, c = T.push(o).then((d) => (d || (u.value = l), d));
|
|
70
74
|
v("select", e, c);
|
|
71
75
|
} else
|
|
72
|
-
u.value =
|
|
73
|
-
|
|
76
|
+
u.value = l, v("select", e);
|
|
77
|
+
ue() && setTimeout(() => {
|
|
74
78
|
a.value = [];
|
|
75
79
|
}, 100);
|
|
76
80
|
}
|
|
77
|
-
},
|
|
78
|
-
const
|
|
79
|
-
|
|
81
|
+
}, I = (e) => {
|
|
82
|
+
const l = r.value, n = l[e] || u.value && l[u.value] || l[t.defaultActive];
|
|
83
|
+
n ? u.value = n.index : u.value = e;
|
|
80
84
|
}, U = () => {
|
|
81
85
|
if (!s.value) return -1;
|
|
82
86
|
const e = Array.from(s.value?.childNodes ?? []).filter(
|
|
83
87
|
(S) => S.nodeName !== "#text" || S.nodeValue
|
|
84
|
-
),
|
|
88
|
+
), l = 64, n = Number.parseInt(
|
|
85
89
|
getComputedStyle(s.value).paddingLeft,
|
|
86
90
|
10
|
|
87
91
|
), o = Number.parseInt(
|
|
88
92
|
getComputedStyle(s.value).paddingRight,
|
|
89
93
|
10
|
|
90
|
-
), c = s.value.clientWidth -
|
|
94
|
+
), c = s.value.clientWidth - n - o;
|
|
91
95
|
let d = 0, m = 0;
|
|
92
96
|
return e.forEach((S, Q) => {
|
|
93
|
-
d += S.offsetWidth || 0, d <= c -
|
|
97
|
+
d += S.offsetWidth || 0, d <= c - l && (m = Q + 1);
|
|
94
98
|
}), m === e.length ? -1 : m;
|
|
95
|
-
}, j = (e,
|
|
96
|
-
let
|
|
99
|
+
}, j = (e, l = 33.34) => {
|
|
100
|
+
let n;
|
|
97
101
|
return () => {
|
|
98
|
-
|
|
102
|
+
n && clearTimeout(n), n = setTimeout(() => {
|
|
99
103
|
e();
|
|
100
|
-
},
|
|
104
|
+
}, l);
|
|
101
105
|
};
|
|
102
106
|
};
|
|
103
|
-
let
|
|
107
|
+
let z = !0;
|
|
104
108
|
const O = () => {
|
|
105
109
|
const e = () => {
|
|
106
|
-
f.value = -1,
|
|
110
|
+
f.value = -1, le(() => {
|
|
107
111
|
f.value = U();
|
|
108
112
|
});
|
|
109
113
|
};
|
|
110
|
-
|
|
114
|
+
z ? e() : j(e)(), z = !1;
|
|
111
115
|
};
|
|
112
|
-
|
|
113
|
-
() =>
|
|
116
|
+
x(
|
|
117
|
+
() => t.defaultActive,
|
|
114
118
|
(e) => {
|
|
115
|
-
r.value[e] || (u.value = ""),
|
|
119
|
+
r.value[e] || (u.value = ""), I(e);
|
|
116
120
|
}
|
|
117
|
-
),
|
|
118
|
-
() =>
|
|
121
|
+
), x(
|
|
122
|
+
() => t.collapse,
|
|
119
123
|
(e) => {
|
|
120
124
|
e && (a.value = []);
|
|
121
125
|
}
|
|
122
|
-
),
|
|
126
|
+
), x(r.value, D);
|
|
123
127
|
let k;
|
|
124
128
|
_(() => {
|
|
125
|
-
|
|
129
|
+
t.mode === "horizontal" && t.ellipsis ? k = oe(s, O).stop : k?.();
|
|
126
130
|
});
|
|
127
131
|
const A = (e) => {
|
|
128
|
-
|
|
132
|
+
M.value[e.index] = e;
|
|
129
133
|
}, B = (e) => {
|
|
130
|
-
delete
|
|
134
|
+
delete M.value[e.index];
|
|
131
135
|
}, G = (e) => {
|
|
132
136
|
r.value[e.index] = e;
|
|
133
137
|
}, H = (e) => {
|
|
@@ -139,7 +143,7 @@ const de = E({
|
|
|
139
143
|
props: h.props,
|
|
140
144
|
openedMenus: a,
|
|
141
145
|
items: r,
|
|
142
|
-
subMenus:
|
|
146
|
+
subMenus: M,
|
|
143
147
|
activeIndex: u,
|
|
144
148
|
isMenuPopup: q,
|
|
145
149
|
inSubMenu: P,
|
|
@@ -150,7 +154,7 @@ const de = E({
|
|
|
150
154
|
addSubMenu: A,
|
|
151
155
|
removeSubMenu: B,
|
|
152
156
|
openMenu: b,
|
|
153
|
-
closeMenu:
|
|
157
|
+
closeMenu: y,
|
|
154
158
|
handleMenuItemClick: F,
|
|
155
159
|
handleSubMenuClick: L
|
|
156
160
|
})
|
|
@@ -161,57 +165,58 @@ const de = E({
|
|
|
161
165
|
// 表示当前是第一级的 sub-menu
|
|
162
166
|
level: 0
|
|
163
167
|
}), te(() => {
|
|
164
|
-
|
|
168
|
+
t.mode === "horizontal" && new re(h.vnode.el, p.namespace.value);
|
|
165
169
|
}), W({
|
|
166
170
|
open: (e) => {
|
|
167
|
-
const { indexPath:
|
|
168
|
-
|
|
171
|
+
const { indexPath: l } = M.value[e];
|
|
172
|
+
l.forEach((n) => b(n, l));
|
|
169
173
|
},
|
|
170
|
-
close:
|
|
174
|
+
close: y,
|
|
171
175
|
handleResize: O,
|
|
172
176
|
menu: s,
|
|
173
177
|
inSubMenu: P,
|
|
174
|
-
updateActiveIndex:
|
|
178
|
+
updateActiveIndex: I,
|
|
175
179
|
activeIndex: u
|
|
176
180
|
}), () => {
|
|
177
|
-
let e =
|
|
178
|
-
const
|
|
179
|
-
if (
|
|
181
|
+
let e = V.default?.() ?? [];
|
|
182
|
+
const l = [];
|
|
183
|
+
if (t.mode === "horizontal" && s.value) {
|
|
180
184
|
const c = ae(e), d = f.value === -1 ? c : c.slice(0, f.value), m = f.value === -1 ? [] : c.slice(f.value);
|
|
181
|
-
m?.length &&
|
|
185
|
+
m?.length && t.ellipsis && (e = d, l.push(
|
|
182
186
|
g(
|
|
183
187
|
se,
|
|
184
188
|
{
|
|
185
189
|
index: "sub-menu-more",
|
|
186
|
-
class:
|
|
187
|
-
...
|
|
190
|
+
class: C.e("hide-arrow"),
|
|
191
|
+
...t.horizontalMenuProps
|
|
188
192
|
},
|
|
189
193
|
{
|
|
190
|
-
title: () => g(
|
|
194
|
+
title: () => g(ne, {
|
|
191
195
|
icon: "icon-menu-line",
|
|
192
|
-
class:
|
|
196
|
+
class: C.e("icon-more")
|
|
193
197
|
}),
|
|
194
198
|
default: () => m
|
|
195
199
|
}
|
|
196
200
|
)
|
|
197
201
|
));
|
|
198
202
|
}
|
|
199
|
-
const
|
|
203
|
+
const n = ce(h.props, 0), o = g(
|
|
200
204
|
"ul",
|
|
201
205
|
{
|
|
202
|
-
key: String(
|
|
206
|
+
key: String(t.collapse),
|
|
203
207
|
role: "menubar",
|
|
204
208
|
ref: s,
|
|
205
|
-
style:
|
|
209
|
+
style: n.value,
|
|
206
210
|
class: {
|
|
207
|
-
[
|
|
208
|
-
[
|
|
209
|
-
[
|
|
211
|
+
[p.b()]: !0,
|
|
212
|
+
[p.m(t.mode)]: !0,
|
|
213
|
+
[p.m("collapse")]: t.collapse,
|
|
214
|
+
[p.m(`collapse-type-${t.collapseType}`)]: t.collapseType
|
|
210
215
|
}
|
|
211
216
|
},
|
|
212
|
-
[...e, ...
|
|
217
|
+
[...e, ...l]
|
|
213
218
|
);
|
|
214
|
-
return
|
|
219
|
+
return t.collapseTransition && t.mode === "vertical" ? g(ie, () => o) : o;
|
|
215
220
|
};
|
|
216
221
|
}
|
|
217
222
|
});
|
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { IconProps } from 'vft/es/components/icon';
|
|
3
|
-
import type { ClassType } from '../types';
|
|
4
|
-
export interface SubMenuProps {
|
|
5
|
-
index: string;
|
|
6
|
-
showTimeout?: number;
|
|
7
|
-
hideTimeout?: number;
|
|
8
|
-
popperClass?: ClassType;
|
|
9
|
-
disabled?: boolean;
|
|
10
|
-
popperOffset?: number;
|
|
11
|
-
expandIcon?: string | IconProps;
|
|
12
|
-
collapseIcon?: string | IconProps;
|
|
13
|
-
title?: string;
|
|
14
|
-
icon?: IconProps | string;
|
|
15
|
-
showArrow?: boolean;
|
|
16
|
-
toolTipCfg?: ToolTipProps;
|
|
17
|
-
teleported?: boolean;
|
|
18
|
-
[key: string]: any;
|
|
19
|
-
}
|
|
1
|
+
import type { SubMenuProps } from './types';
|
|
20
2
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<SubMenuProps>>, {
|
|
21
3
|
opened: import("vue").ComputedRef<boolean>;
|
|
22
4
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
@@ -1,5 +1,66 @@
|
|
|
1
|
+
import type { IconProps } from 'vft/es/components';
|
|
1
2
|
import type { Ref } from 'vue';
|
|
2
3
|
import type { RouteLocationRaw } from 'vue-router';
|
|
4
|
+
import type { ToolTipProps } from 'vft/es/components/tooltip';
|
|
5
|
+
import type { ClassType } from '../types';
|
|
6
|
+
export interface MenuProps {
|
|
7
|
+
/** 菜单展示模式 */
|
|
8
|
+
mode?: 'horizontal' | 'vertical';
|
|
9
|
+
/** 页面加载时默认激活菜单的 index(menu-item 的index) */
|
|
10
|
+
defaultActive?: string;
|
|
11
|
+
/** 默认打开的 sub-menu 的 index 的数组 */
|
|
12
|
+
defaultOpeneds?: string[];
|
|
13
|
+
/** 是否只保持一个子菜单的展开 */
|
|
14
|
+
uniqueOpened?: boolean;
|
|
15
|
+
/** 是否启用 vue-router 模式。 启用该模式会在激活导航时以 index 作为 path 进行路由跳转 使用 default-active 来设置加载时的激活项 */
|
|
16
|
+
router?: boolean;
|
|
17
|
+
/** 子菜单打开的触发方式,只在 mode 为 horizontal 时有效 */
|
|
18
|
+
menuTrigger?: 'hover' | 'click';
|
|
19
|
+
/** 是否水平折叠收起菜单(仅在 mode 为 vertical 时可用) */
|
|
20
|
+
collapse?: boolean;
|
|
21
|
+
/** 是否开启折叠动画 */
|
|
22
|
+
collapseTransition?: boolean;
|
|
23
|
+
/** 是否省略多余的子项(仅在横向模式生效) */
|
|
24
|
+
ellipsis?: boolean;
|
|
25
|
+
horizontalMenuProps?: Partial<SubMenuProps>;
|
|
26
|
+
persistent?: boolean;
|
|
27
|
+
/** 禁用子菜单的展开收缩行为 */
|
|
28
|
+
disableSubMenuAction?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface SubMenuProps {
|
|
31
|
+
index: string;
|
|
32
|
+
showTimeout?: number;
|
|
33
|
+
hideTimeout?: number;
|
|
34
|
+
popperClass?: ClassType;
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
popperOffset?: number;
|
|
37
|
+
expandIcon?: string | IconProps;
|
|
38
|
+
collapseIcon?: string | IconProps;
|
|
39
|
+
title?: string;
|
|
40
|
+
icon?: IconProps | string;
|
|
41
|
+
showArrow?: boolean;
|
|
42
|
+
toolTipCfg?: ToolTipProps;
|
|
43
|
+
teleported?: boolean;
|
|
44
|
+
[key: string]: any;
|
|
45
|
+
}
|
|
46
|
+
export interface MenuItemGroupProps {
|
|
47
|
+
title?: string;
|
|
48
|
+
}
|
|
49
|
+
export interface MenuItemProps {
|
|
50
|
+
/** 唯一标志 */
|
|
51
|
+
index?: string;
|
|
52
|
+
/** Vue Router 路径对象 */
|
|
53
|
+
route?: RouteLocationRaw;
|
|
54
|
+
/** 是否禁用 */
|
|
55
|
+
disabled?: boolean;
|
|
56
|
+
icon?: IconProps | string;
|
|
57
|
+
title?: string | number;
|
|
58
|
+
isAloneUse?: boolean;
|
|
59
|
+
divider?: boolean;
|
|
60
|
+
className?: string;
|
|
61
|
+
reverse?: boolean;
|
|
62
|
+
[key: string]: any;
|
|
63
|
+
}
|
|
3
64
|
export interface MenuItemRegistered {
|
|
4
65
|
index: string;
|
|
5
66
|
indexPath: string[];
|
|
@@ -24,6 +85,7 @@ export interface MenuProps {
|
|
|
24
85
|
router?: boolean;
|
|
25
86
|
/** 子菜单打开的触发方式,只在 mode 为 horizontal 时有效 */
|
|
26
87
|
menuTrigger?: 'hover' | 'click';
|
|
88
|
+
/** 是否收缩 */
|
|
27
89
|
collapse?: boolean;
|
|
28
90
|
/** 是否水平折叠收起菜单(仅在 mode 为 vertical 时可用) */
|
|
29
91
|
backgroundColor?: string;
|
|
@@ -31,6 +93,8 @@ export interface MenuProps {
|
|
|
31
93
|
activeTextColor?: string;
|
|
32
94
|
/** 是否开启折叠动画 */
|
|
33
95
|
collapseTransition?: boolean;
|
|
96
|
+
/** 收缩类型 */
|
|
97
|
+
collapseType?: 'menu-title';
|
|
34
98
|
/** 是否省略多余的子项(仅在横向模式生效) */
|
|
35
99
|
ellipsis?: boolean;
|
|
36
100
|
persistent?: boolean;
|
|
@@ -15,20 +15,31 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
15
15
|
type: import("vue").PropType<import("./types").MenuType[]>;
|
|
16
16
|
required: true;
|
|
17
17
|
};
|
|
18
|
+
tooltipCfg: {
|
|
19
|
+
type: import("vue").PropType<Partial<import("vft/es/vft").ToolTipProps>>;
|
|
20
|
+
};
|
|
18
21
|
defaultActive: {
|
|
19
22
|
type: import("vue").PropType<string>;
|
|
20
23
|
};
|
|
21
24
|
defaultOpeneds: {
|
|
22
|
-
type: import("vue").PropType<
|
|
25
|
+
type: import("vue").PropType<string[]>;
|
|
23
26
|
};
|
|
24
27
|
uniqueOpened: {
|
|
25
28
|
type: import("vue").PropType<boolean>;
|
|
26
29
|
default: boolean;
|
|
27
30
|
};
|
|
31
|
+
collapseTransition: {
|
|
32
|
+
type: import("vue").PropType<boolean>;
|
|
33
|
+
default: boolean;
|
|
34
|
+
};
|
|
28
35
|
disableSubMenuAction: {
|
|
29
36
|
type: import("vue").PropType<boolean>;
|
|
30
37
|
default: boolean;
|
|
31
38
|
};
|
|
39
|
+
collapseType: {
|
|
40
|
+
type: import("vue").PropType<"menu-title">;
|
|
41
|
+
default: undefined;
|
|
42
|
+
};
|
|
32
43
|
isFixedLeft: {
|
|
33
44
|
type: import("vue").PropType<boolean>;
|
|
34
45
|
default: boolean;
|
|
@@ -83,6 +94,18 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
83
94
|
type: import("vue").PropType<number | boolean>;
|
|
84
95
|
default: boolean;
|
|
85
96
|
};
|
|
97
|
+
enableScroll: {
|
|
98
|
+
type: import("vue").PropType<boolean>;
|
|
99
|
+
default: boolean;
|
|
100
|
+
};
|
|
101
|
+
scrollThreshold: {
|
|
102
|
+
type: import("vue").PropType<number>;
|
|
103
|
+
default: number;
|
|
104
|
+
};
|
|
105
|
+
scrollMaxHeight: {
|
|
106
|
+
type: import("vue").PropType<string | number>;
|
|
107
|
+
default: number;
|
|
108
|
+
};
|
|
86
109
|
}>, {
|
|
87
110
|
sideRef: import("vue").Ref<any, any>;
|
|
88
111
|
jumpActiveDom: ({ activeDom, offset, delay }?: {
|
|
@@ -96,7 +119,7 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
96
119
|
"update:width": (val: string | number) => void;
|
|
97
120
|
dragEnd: (oldIndex: import("sortablejs").SortableEvent, newIndex: import("sortablejs").SortableEvent) => void;
|
|
98
121
|
dragWidthEnd: () => void;
|
|
99
|
-
select: (
|
|
122
|
+
select: (menuItem: import("vft/es/vft").MenuItemClicked, routerResult?: Promise<void | import("vue-router").NavigationFailure> | undefined) => void;
|
|
100
123
|
subMenuClick: (val: any) => void;
|
|
101
124
|
subMenuOpenClick: (val: any) => void;
|
|
102
125
|
menuItemMouseenter: (val: any) => void;
|
|
@@ -118,20 +141,31 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
118
141
|
type: import("vue").PropType<import("./types").MenuType[]>;
|
|
119
142
|
required: true;
|
|
120
143
|
};
|
|
144
|
+
tooltipCfg: {
|
|
145
|
+
type: import("vue").PropType<Partial<import("vft/es/vft").ToolTipProps>>;
|
|
146
|
+
};
|
|
121
147
|
defaultActive: {
|
|
122
148
|
type: import("vue").PropType<string>;
|
|
123
149
|
};
|
|
124
150
|
defaultOpeneds: {
|
|
125
|
-
type: import("vue").PropType<
|
|
151
|
+
type: import("vue").PropType<string[]>;
|
|
126
152
|
};
|
|
127
153
|
uniqueOpened: {
|
|
128
154
|
type: import("vue").PropType<boolean>;
|
|
129
155
|
default: boolean;
|
|
130
156
|
};
|
|
157
|
+
collapseTransition: {
|
|
158
|
+
type: import("vue").PropType<boolean>;
|
|
159
|
+
default: boolean;
|
|
160
|
+
};
|
|
131
161
|
disableSubMenuAction: {
|
|
132
162
|
type: import("vue").PropType<boolean>;
|
|
133
163
|
default: boolean;
|
|
134
164
|
};
|
|
165
|
+
collapseType: {
|
|
166
|
+
type: import("vue").PropType<"menu-title">;
|
|
167
|
+
default: undefined;
|
|
168
|
+
};
|
|
135
169
|
isFixedLeft: {
|
|
136
170
|
type: import("vue").PropType<boolean>;
|
|
137
171
|
default: boolean;
|
|
@@ -186,8 +220,20 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
186
220
|
type: import("vue").PropType<number | boolean>;
|
|
187
221
|
default: boolean;
|
|
188
222
|
};
|
|
223
|
+
enableScroll: {
|
|
224
|
+
type: import("vue").PropType<boolean>;
|
|
225
|
+
default: boolean;
|
|
226
|
+
};
|
|
227
|
+
scrollThreshold: {
|
|
228
|
+
type: import("vue").PropType<number>;
|
|
229
|
+
default: number;
|
|
230
|
+
};
|
|
231
|
+
scrollMaxHeight: {
|
|
232
|
+
type: import("vue").PropType<string | number>;
|
|
233
|
+
default: number;
|
|
234
|
+
};
|
|
189
235
|
}>> & Readonly<{
|
|
190
|
-
onSelect?: ((
|
|
236
|
+
onSelect?: ((menuItem: import("vft/es/vft").MenuItemClicked, routerResult?: Promise<void | import("vue-router").NavigationFailure> | undefined) => any) | undefined;
|
|
191
237
|
"onUpdate:collapse"?: ((val: boolean) => any) | undefined;
|
|
192
238
|
"onUpdate:width"?: ((val: string | number) => any) | undefined;
|
|
193
239
|
onDragEnd?: ((oldIndex: import("sortablejs").SortableEvent, newIndex: import("sortablejs").SortableEvent) => any) | undefined;
|
|
@@ -201,7 +247,9 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
201
247
|
width: string | number;
|
|
202
248
|
collapse: boolean;
|
|
203
249
|
uniqueOpened: boolean;
|
|
250
|
+
collapseTransition: boolean;
|
|
204
251
|
disableSubMenuAction: boolean;
|
|
252
|
+
collapseType: "menu-title";
|
|
205
253
|
isFixedLeft: boolean;
|
|
206
254
|
collapseWidth: string | number;
|
|
207
255
|
menuTopBottomHeight: number;
|
|
@@ -215,6 +263,9 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
|
|
|
215
263
|
openMenuCollapse: boolean;
|
|
216
264
|
disabledJudgeTurnOver: boolean;
|
|
217
265
|
defaultOpenedsLevel: number | boolean;
|
|
266
|
+
enableScroll: boolean;
|
|
267
|
+
scrollThreshold: number;
|
|
268
|
+
scrollMaxHeight: string | number;
|
|
218
269
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>> & Record<string, any>;
|
|
219
270
|
export default VftSideMenu;
|
|
220
271
|
export * from './types';
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import type { MenuItemClicked } from 'vft/es/components/menu';
|
|
1
2
|
import type { SortableEvent } from 'sortablejs';
|
|
2
|
-
import type {
|
|
3
|
+
import type { NavigationFailure } from 'vue-router';
|
|
4
|
+
import type { SideMenuProps } from './types';
|
|
3
5
|
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<SideMenuProps>, {
|
|
4
6
|
isFixedLeft: boolean;
|
|
5
7
|
autoScrollActiveDom: boolean;
|
|
@@ -16,6 +18,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
16
18
|
useRouterJump: boolean;
|
|
17
19
|
disableSubMenuAction: boolean;
|
|
18
20
|
defaultOpenedsLevel: boolean;
|
|
21
|
+
enableScroll: boolean;
|
|
22
|
+
scrollThreshold: number;
|
|
23
|
+
scrollMaxHeight: number;
|
|
24
|
+
collapseTransition: boolean;
|
|
25
|
+
collapseType: undefined;
|
|
19
26
|
}>>, {
|
|
20
27
|
sideRef: import("vue").Ref<any, any>;
|
|
21
28
|
jumpActiveDom: ({ activeDom, offset, delay }?: {
|
|
@@ -29,7 +36,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
29
36
|
"update:width": (val: string | number) => void;
|
|
30
37
|
dragEnd: (oldIndex: SortableEvent, newIndex: SortableEvent) => void;
|
|
31
38
|
dragWidthEnd: () => void;
|
|
32
|
-
select: (
|
|
39
|
+
select: (menuItem: MenuItemClicked, routerResult?: Promise<void | NavigationFailure> | undefined) => void;
|
|
33
40
|
subMenuClick: (val: any) => void;
|
|
34
41
|
subMenuOpenClick: (val: any) => void;
|
|
35
42
|
menuItemMouseenter: (val: any) => void;
|
|
@@ -50,8 +57,13 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
50
57
|
useRouterJump: boolean;
|
|
51
58
|
disableSubMenuAction: boolean;
|
|
52
59
|
defaultOpenedsLevel: boolean;
|
|
60
|
+
enableScroll: boolean;
|
|
61
|
+
scrollThreshold: number;
|
|
62
|
+
scrollMaxHeight: number;
|
|
63
|
+
collapseTransition: boolean;
|
|
64
|
+
collapseType: undefined;
|
|
53
65
|
}>>> & Readonly<{
|
|
54
|
-
onSelect?: ((
|
|
66
|
+
onSelect?: ((menuItem: MenuItemClicked, routerResult?: Promise<void | NavigationFailure> | undefined) => any) | undefined;
|
|
55
67
|
"onUpdate:collapse"?: ((val: boolean) => any) | undefined;
|
|
56
68
|
"onUpdate:width"?: ((val: string | number) => any) | undefined;
|
|
57
69
|
onDragEnd?: ((oldIndex: SortableEvent, newIndex: SortableEvent) => any) | undefined;
|
|
@@ -65,7 +77,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
65
77
|
width: string | number;
|
|
66
78
|
collapse: boolean;
|
|
67
79
|
uniqueOpened: boolean;
|
|
80
|
+
collapseTransition: boolean;
|
|
68
81
|
disableSubMenuAction: boolean;
|
|
82
|
+
collapseType: "menu-title";
|
|
69
83
|
isFixedLeft: boolean;
|
|
70
84
|
collapseWidth: string | number;
|
|
71
85
|
menuTopBottomHeight: number;
|
|
@@ -79,6 +93,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
79
93
|
openMenuCollapse: boolean;
|
|
80
94
|
disabledJudgeTurnOver: boolean;
|
|
81
95
|
defaultOpenedsLevel: number | boolean;
|
|
96
|
+
enableScroll: boolean;
|
|
97
|
+
scrollThreshold: number;
|
|
98
|
+
scrollMaxHeight: string | number;
|
|
82
99
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
83
100
|
export default _default;
|
|
84
101
|
type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|