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.
Files changed (46) hide show
  1. package/dist/index.css +1 -1
  2. package/es/components/carousel/use-carousel.js +1 -1
  3. package/es/components/horizontal-menu/horizontal-menu.vue.d.ts +20 -4
  4. package/es/components/horizontal-menu/horizontal-menu.vue2.js +29 -29
  5. package/es/components/horizontal-menu/index.d.ts +20 -4
  6. package/es/components/input/input.vue2.js +4 -4
  7. package/es/components/input-tag/composables/use-input-tag.js +1 -1
  8. package/es/components/menu/index.d.ts +28 -7
  9. package/es/components/menu/menu-item-group.vue.d.ts +2 -4
  10. package/es/components/menu/menu-item.vue.d.ts +1 -17
  11. package/es/components/menu/menu.vue.d.ts +3 -28
  12. package/es/components/menu/menu.vue2.js +81 -76
  13. package/es/components/menu/sub-menu.vue.d.ts +1 -19
  14. package/es/components/menu/types.d.ts +64 -0
  15. package/es/components/side-menu/index.d.ts +55 -4
  16. package/es/components/side-menu/side-menu.vue.d.ts +20 -3
  17. package/es/components/side-menu/side-menu.vue2.js +166 -139
  18. package/es/components/side-menu/types.d.ts +13 -2
  19. package/es/components/super-form/super-form-action.vue2.js +55 -55
  20. package/es/components/super-form/super-form-item.vue2.js +1 -1
  21. package/es/package.json.d.ts +1 -1
  22. package/es/package.json.js +1 -1
  23. package/es/utils/vue/vnode.js +1 -1
  24. package/lib/components/horizontal-menu/horizontal-menu.vue.d.ts +20 -4
  25. package/lib/components/horizontal-menu/horizontal-menu.vue2.cjs +1 -1
  26. package/lib/components/horizontal-menu/index.d.ts +20 -4
  27. package/lib/components/input/input.vue2.cjs +1 -1
  28. package/lib/components/menu/index.d.ts +28 -7
  29. package/lib/components/menu/menu-item-group.vue.d.ts +2 -4
  30. package/lib/components/menu/menu-item.vue.d.ts +1 -17
  31. package/lib/components/menu/menu.vue.d.ts +3 -28
  32. package/lib/components/menu/menu.vue2.cjs +1 -1
  33. package/lib/components/menu/sub-menu.vue.d.ts +1 -19
  34. package/lib/components/menu/types.d.ts +64 -0
  35. package/lib/components/side-menu/index.d.ts +55 -4
  36. package/lib/components/side-menu/side-menu.vue.d.ts +20 -3
  37. package/lib/components/side-menu/side-menu.vue2.cjs +1 -1
  38. package/lib/components/side-menu/types.d.ts +13 -2
  39. package/lib/components/super-form/super-form-action.vue2.cjs +1 -1
  40. package/lib/package.json.cjs +1 -1
  41. package/lib/package.json.d.ts +1 -1
  42. package/package.json +5 -5
  43. package/theme-style/index.css +1 -1
  44. package/theme-style/src/menu.scss +54 -0
  45. package/theme-style/vft-menu.css +1 -1
  46. 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 y, watchEffect as _, provide as N, reactive as ee, onMounted as te, h as g, nextTick as ne } from "vue";
2
- import { isNullOrUndefined as R, isMobile as le } from "@vft/utils";
3
- import { VftIcon as oe } from "../icon/index.js";
4
- import { useResizeObserver as ue } from "@vueuse/core";
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(n, { expose: W, emit: V }) {
37
- const v = V, M = w("menu"), $ = X(), h = Y(), I = h.appContext.config.globalProperties.$router, s = i(), z = w("sub-menu"), f = i(-1), a = i(
38
- n.defaultOpeneds && !n.collapse ? n.defaultOpeneds.slice(0) : []
39
- ), u = i(n.defaultActive), r = i({}), p = i({}), q = Z(() => n.mode === "horizontal" || n.mode === "vertical" && n.collapse), D = () => {
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 || n.mode === "horizontal" || n.collapse) return;
42
- e.indexPath.forEach((l) => {
43
- const o = p.value[l];
44
- o && b(l, o.indexPath);
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, t, l) => {
47
- a.value.includes(e) || (n.uniqueOpened && (a.value = a.value.filter(
48
- (o) => t.includes(o)
49
- )), a.value.push(e), v("open", { index: e, indexPath: t, e: l }));
50
- }, x = (e, t, l) => {
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: t, event: l });
56
+ o !== -1 && a.value.splice(o, 1), v("close", { index: e, indexPath: l, event: n });
53
57
  }, L = ({
54
58
  e,
55
- index: t,
56
- indexPath: l,
59
+ index: l,
60
+ indexPath: n,
57
61
  isFirstLevel: o = !1
58
62
  }) => {
59
63
  if (!o) {
60
- const c = a.value.includes(t);
61
- u.value = t, n.disableSubMenuAction || (c ? x(t, l, e) : b(t, l, e));
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: t, indexPath: l });
67
+ v("sub-menu-click", { e, index: l, indexPath: n });
64
68
  }, F = (e) => {
65
- (n.mode === "horizontal" || n.collapse) && (a.value = []);
66
- const { index: t, indexPath: l } = e;
67
- if (!(R(t) || R(l))) {
68
- if (n.router && I) {
69
- const o = e.route || t, c = I.push(o).then((d) => (d || (u.value = t), d));
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 = t, v("select", e);
73
- le() && setTimeout(() => {
76
+ u.value = l, v("select", e);
77
+ ue() && setTimeout(() => {
74
78
  a.value = [];
75
79
  }, 100);
76
80
  }
77
- }, C = (e) => {
78
- const t = r.value, l = t[e] || u.value && t[u.value] || t[n.defaultActive];
79
- l ? u.value = l.index : u.value = e;
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
- ), t = 64, l = Number.parseInt(
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 - l - o;
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 - t && (m = Q + 1);
97
+ d += S.offsetWidth || 0, d <= c - l && (m = Q + 1);
94
98
  }), m === e.length ? -1 : m;
95
- }, j = (e, t = 33.34) => {
96
- let l;
99
+ }, j = (e, l = 33.34) => {
100
+ let n;
97
101
  return () => {
98
- l && clearTimeout(l), l = setTimeout(() => {
102
+ n && clearTimeout(n), n = setTimeout(() => {
99
103
  e();
100
- }, t);
104
+ }, l);
101
105
  };
102
106
  };
103
- let T = !0;
107
+ let z = !0;
104
108
  const O = () => {
105
109
  const e = () => {
106
- f.value = -1, ne(() => {
110
+ f.value = -1, le(() => {
107
111
  f.value = U();
108
112
  });
109
113
  };
110
- T ? e() : j(e)(), T = !1;
114
+ z ? e() : j(e)(), z = !1;
111
115
  };
112
- y(
113
- () => n.defaultActive,
116
+ x(
117
+ () => t.defaultActive,
114
118
  (e) => {
115
- r.value[e] || (u.value = ""), C(e);
119
+ r.value[e] || (u.value = ""), I(e);
116
120
  }
117
- ), y(
118
- () => n.collapse,
121
+ ), x(
122
+ () => t.collapse,
119
123
  (e) => {
120
124
  e && (a.value = []);
121
125
  }
122
- ), y(r.value, D);
126
+ ), x(r.value, D);
123
127
  let k;
124
128
  _(() => {
125
- n.mode === "horizontal" && n.ellipsis ? k = ue(s, O).stop : k?.();
129
+ t.mode === "horizontal" && t.ellipsis ? k = oe(s, O).stop : k?.();
126
130
  });
127
131
  const A = (e) => {
128
- p.value[e.index] = e;
132
+ M.value[e.index] = e;
129
133
  }, B = (e) => {
130
- delete p.value[e.index];
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: p,
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: x,
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
- n.mode === "horizontal" && new re(h.vnode.el, M.namespace.value);
168
+ t.mode === "horizontal" && new re(h.vnode.el, p.namespace.value);
165
169
  }), W({
166
170
  open: (e) => {
167
- const { indexPath: t } = p.value[e];
168
- t.forEach((l) => b(l, t));
171
+ const { indexPath: l } = M.value[e];
172
+ l.forEach((n) => b(n, l));
169
173
  },
170
- close: x,
174
+ close: y,
171
175
  handleResize: O,
172
176
  menu: s,
173
177
  inSubMenu: P,
174
- updateActiveIndex: C,
178
+ updateActiveIndex: I,
175
179
  activeIndex: u
176
180
  }), () => {
177
- let e = $.default?.() ?? [];
178
- const t = [];
179
- if (n.mode === "horizontal" && s.value) {
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 && n.ellipsis && (e = d, t.push(
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: z.e("hide-arrow"),
187
- ...n.horizontalMenuProps
190
+ class: C.e("hide-arrow"),
191
+ ...t.horizontalMenuProps
188
192
  },
189
193
  {
190
- title: () => g(oe, {
194
+ title: () => g(ne, {
191
195
  icon: "icon-menu-line",
192
- class: z.e("icon-more")
196
+ class: C.e("icon-more")
193
197
  }),
194
198
  default: () => m
195
199
  }
196
200
  )
197
201
  ));
198
202
  }
199
- const l = ce(h.props, 0), o = g(
203
+ const n = ce(h.props, 0), o = g(
200
204
  "ul",
201
205
  {
202
- key: String(n.collapse),
206
+ key: String(t.collapse),
203
207
  role: "menubar",
204
208
  ref: s,
205
- style: l.value,
209
+ style: n.value,
206
210
  class: {
207
- [M.b()]: !0,
208
- [M.m(n.mode)]: !0,
209
- [M.m("collapse")]: n.collapse
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, ...t]
217
+ [...e, ...l]
213
218
  );
214
- return n.collapseTransition && n.mode === "vertical" ? g(ie, () => o) : o;
219
+ return t.collapseTransition && t.mode === "vertical" ? g(ie, () => o) : o;
215
220
  };
216
221
  }
217
222
  });
@@ -1,22 +1,4 @@
1
- import type { ToolTipProps } from 'vft/es/components/tooltip';
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<(string | number)[]>;
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: (val: import("./types").MenuSelectEventData) => void;
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<(string | number)[]>;
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?: ((val: import("./types").MenuSelectEventData) => any) | undefined;
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 { MenuSelectEventData, SideMenuProps } from './types';
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: (val: MenuSelectEventData) => void;
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?: ((val: MenuSelectEventData) => any) | undefined;
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;