vft 0.0.429 → 0.0.431

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 (234) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/es/components/alert/alert.vue2.js +38 -38
  4. package/es/components/autocomplete/autocomplete.vue2.js +82 -82
  5. package/es/components/avatar/avatar.vue2.js +23 -23
  6. package/es/components/avatar-stack/avatar-stack.vue2.js +25 -25
  7. package/es/components/breadcrumb/breadcrumb-item.vue2.js +19 -19
  8. package/es/components/button/button.vue2.js +37 -37
  9. package/es/components/card/card.vue2.js +19 -19
  10. package/es/components/carousel/carousel.vue2.js +75 -75
  11. package/es/components/carousel/use-carousel.js +1 -1
  12. package/es/components/cascader-panel/index.vue2.js +2 -2
  13. package/es/components/cascader-panel/menu.vue2.js +2 -2
  14. package/es/components/cascader-panel/node.vue2.js +3 -4
  15. package/es/components/checkbox/checkbox-button.vue2.js +52 -52
  16. package/es/components/checkbox/checkbox-group.vue2.js +26 -26
  17. package/es/components/checkbox/checkbox.vue2.js +57 -57
  18. package/es/components/clamp/clamp.vue2.js +14 -14
  19. package/es/components/clamp-toggle/clamp-toggle.vue2.js +17 -17
  20. package/es/components/clamp-tooltip/clamp-tooltip.vue2.js +19 -19
  21. package/es/components/col/col.vue2.js +20 -20
  22. package/es/components/color-picker/color-picker.vue2.js +126 -128
  23. package/es/components/color-picker/components/sv-panel.vue.js +2 -2
  24. package/es/components/config-provider/hooks/use-global-config.js +3 -3
  25. package/es/components/context-menu/context-menu.vue2.js +18 -18
  26. package/es/components/date-picker/date-picker-com/panel-date-pick.vue2.js +37 -39
  27. package/es/components/date-picker/date-picker-com/panel-date-range.vue2.js +8 -10
  28. package/es/components/date-picker/date-picker.d.ts +1 -1
  29. package/es/components/date-picker/index.d.ts +2 -2
  30. package/es/components/descriptions/description.vue2.js +44 -44
  31. package/es/components/descriptions/descriptions-row.vue2.js +12 -12
  32. package/es/components/dialog/dialog-content.vue2.js +31 -31
  33. package/es/components/dialog/dialog.vue2.js +46 -46
  34. package/es/components/divider/divider.vue2.js +19 -19
  35. package/es/components/drawer/drawer.vue2.js +41 -41
  36. package/es/components/dropdown/dropdown-item-impl.vue2.js +40 -40
  37. package/es/components/dropdown/dropdown-item.vue2.js +28 -28
  38. package/es/components/dropdown/dropdown.vue2.js +124 -124
  39. package/es/components/form/form-item.vue2.js +71 -71
  40. package/es/components/header-layout/header-layout.vue2.js +25 -25
  41. package/es/components/icon/icon.vue2.js +15 -15
  42. package/es/components/icon-text/icon-text.vue2.js +28 -28
  43. package/es/components/iframe-layout/iframe-layout.vue2.js +13 -13
  44. package/es/components/iframe-layout/iframe-page.vue2.js +11 -11
  45. package/es/components/image/image.vue2.js +63 -63
  46. package/es/components/image-viewer/image-viewer.vue2.js +88 -88
  47. package/es/components/infinite-scroll/index.d.ts +1 -1
  48. package/es/components/input/input.vue2.js +112 -112
  49. package/es/components/input-number/input-number.vue2.js +100 -100
  50. package/es/components/input-tag/composables/use-input-tag.js +1 -1
  51. package/es/components/link/link.vue2.js +20 -20
  52. package/es/components/list-cell/list-cell.vue2.js +19 -19
  53. package/es/components/logo/logo.vue2.js +22 -22
  54. package/es/components/menu/menu-item-group.vue2.js +8 -8
  55. package/es/components/menu/menu-item.vue2.js +48 -48
  56. package/es/components/menu/sub-menu.vue2.js +33 -31
  57. package/es/components/message/message.vue2.js +66 -66
  58. package/es/components/modal/modal-footer-action.vue2.js +25 -25
  59. package/es/components/modal/modal.vue2.js +40 -40
  60. package/es/components/multiple-tabs/multiple-tabs.vue2.js +30 -30
  61. package/es/components/page-wrapper/page-wrapper.vue2.js +12 -12
  62. package/es/components/pagination/components/jumper.vue2.js +18 -18
  63. package/es/components/pagination/components/next.vue2.js +11 -11
  64. package/es/components/pagination/components/pager.vue2.js +74 -74
  65. package/es/components/pagination/components/prev.vue2.js +9 -9
  66. package/es/components/pagination/components/sizes.vue2.js +18 -18
  67. package/es/components/pagination/components/total.vue2.js +8 -8
  68. package/es/components/popconfirm/popconfirm.vue2.js +47 -47
  69. package/es/components/popover/popover.vue2.js +28 -28
  70. package/es/components/popper/trigger.vue2.js +9 -9
  71. package/es/components/progress/progress.vue2.js +87 -87
  72. package/es/components/qrcode/qrcode.vue2.js +31 -31
  73. package/es/components/radio/radio-button.vue2.js +17 -17
  74. package/es/components/radio/radio-group.vue2.js +35 -35
  75. package/es/components/router-view-content/router-view-content.vue2.js +25 -25
  76. package/es/components/roving-focus-group/roving-focus-item.vue2.js +30 -30
  77. package/es/components/row/row.vue2.js +5 -5
  78. package/es/components/scrollbar/bar.vue2.js +16 -16
  79. package/es/components/scrollbar/scrollbar.vue2.js +48 -48
  80. package/es/components/scrollbar/thumb.vue2.js +27 -27
  81. package/es/components/search/search.vue2.js +29 -29
  82. package/es/components/select/index.d.ts +1 -1
  83. package/es/components/select/select.vue.d.ts +1 -1
  84. package/es/components/side-menu/index.d.ts +2 -8
  85. package/es/components/side-menu/side-menu.vue.d.ts +8 -62
  86. package/es/components/side-menu/side-menu.vue2.js +48 -46
  87. package/es/components/side-menu/types.d.ts +107 -0
  88. package/es/components/side-menu/use-drag-line.d.ts +3 -1
  89. package/es/components/side-menu/use-drag-line.js +39 -28
  90. package/es/components/skeleton/skeleton-item.vue2.js +9 -9
  91. package/es/components/skeleton/skeleton.vue2.js +14 -14
  92. package/es/components/slider/button.vue2.js +54 -54
  93. package/es/components/slider/slider.vue2.js +106 -106
  94. package/es/components/steps/item.vue2.js +56 -56
  95. package/es/components/steps/steps.vue2.js +16 -16
  96. package/es/components/super-form/super-form-action.vue2.js +28 -28
  97. package/es/components/super-form/super-form-item.vue2.js +1 -1
  98. package/es/components/switch/switch.vue2.js +108 -108
  99. package/es/components/table/field.d.ts +4 -4
  100. package/es/components/teleport/teleport.vue2.js +6 -6
  101. package/es/components/time-picker/common/picker.vue.d.ts +1 -1
  102. package/es/components/time-picker/index.d.ts +2 -2
  103. package/es/components/time-picker/time-picker.d.ts +1 -1
  104. package/es/components/timeline/timeline-item.vue2.js +20 -20
  105. package/es/components/tooltip/content.vue2.js +57 -57
  106. package/es/components/tooltip/tooltip.vue2.js +66 -66
  107. package/es/components/tooltip/trigger.vue2.js +42 -42
  108. package/es/components/tree/tree.vue2.js +72 -72
  109. package/es/components/upload/upload-content.vue2.js +85 -85
  110. package/es/components/upload/upload-list.vue2.js +70 -70
  111. package/es/components/upload/upload.vue2.js +86 -86
  112. package/es/components/verify-code/verify-code.vue2.js +18 -18
  113. package/es/package.json.d.ts +1 -1
  114. package/es/package.json.js +1 -1
  115. package/es/utils/vue/vnode.js +1 -1
  116. package/lib/components/alert/alert.vue2.cjs +1 -1
  117. package/lib/components/autocomplete/autocomplete.vue2.cjs +1 -1
  118. package/lib/components/avatar/avatar.vue2.cjs +1 -1
  119. package/lib/components/avatar-stack/avatar-stack.vue2.cjs +1 -1
  120. package/lib/components/breadcrumb/breadcrumb-item.vue2.cjs +1 -1
  121. package/lib/components/button/button.vue2.cjs +1 -1
  122. package/lib/components/card/card.vue2.cjs +1 -1
  123. package/lib/components/carousel/carousel.vue2.cjs +1 -1
  124. package/lib/components/cascader-panel/index.vue2.cjs +1 -1
  125. package/lib/components/cascader-panel/menu.vue2.cjs +1 -1
  126. package/lib/components/cascader-panel/node.vue2.cjs +1 -1
  127. package/lib/components/checkbox/checkbox-button.vue2.cjs +1 -1
  128. package/lib/components/checkbox/checkbox-group.vue2.cjs +1 -1
  129. package/lib/components/checkbox/checkbox.vue2.cjs +1 -1
  130. package/lib/components/clamp/clamp.vue2.cjs +1 -1
  131. package/lib/components/clamp-toggle/clamp-toggle.vue2.cjs +1 -1
  132. package/lib/components/clamp-tooltip/clamp-tooltip.vue2.cjs +1 -1
  133. package/lib/components/col/col.vue2.cjs +1 -1
  134. package/lib/components/color-picker/color-picker.vue2.cjs +1 -1
  135. package/lib/components/color-picker/components/sv-panel.vue.cjs +1 -1
  136. package/lib/components/context-menu/context-menu.vue2.cjs +1 -1
  137. package/lib/components/date-picker/date-picker-com/panel-date-pick.vue2.cjs +1 -1
  138. package/lib/components/date-picker/date-picker-com/panel-date-range.vue2.cjs +1 -1
  139. package/lib/components/date-picker/date-picker.d.ts +1 -1
  140. package/lib/components/date-picker/index.d.ts +2 -2
  141. package/lib/components/descriptions/description.vue2.cjs +1 -1
  142. package/lib/components/descriptions/descriptions-row.vue2.cjs +1 -1
  143. package/lib/components/dialog/dialog-content.vue2.cjs +1 -1
  144. package/lib/components/dialog/dialog.vue2.cjs +1 -1
  145. package/lib/components/divider/divider.vue2.cjs +1 -1
  146. package/lib/components/drawer/drawer.vue2.cjs +1 -1
  147. package/lib/components/dropdown/dropdown-item-impl.vue2.cjs +1 -1
  148. package/lib/components/dropdown/dropdown-item.vue2.cjs +1 -1
  149. package/lib/components/dropdown/dropdown.vue2.cjs +1 -1
  150. package/lib/components/form/form-item.vue2.cjs +1 -1
  151. package/lib/components/header-layout/header-layout.vue2.cjs +1 -1
  152. package/lib/components/icon/icon.vue2.cjs +1 -1
  153. package/lib/components/icon-text/icon-text.vue2.cjs +1 -1
  154. package/lib/components/iframe-layout/iframe-layout.vue2.cjs +1 -1
  155. package/lib/components/iframe-layout/iframe-page.vue2.cjs +1 -1
  156. package/lib/components/image/image.vue2.cjs +1 -1
  157. package/lib/components/image-viewer/image-viewer.vue2.cjs +1 -1
  158. package/lib/components/infinite-scroll/index.d.ts +1 -1
  159. package/lib/components/input/input.vue2.cjs +1 -1
  160. package/lib/components/input-number/input-number.vue2.cjs +1 -1
  161. package/lib/components/link/link.vue2.cjs +1 -1
  162. package/lib/components/list-cell/list-cell.vue2.cjs +1 -1
  163. package/lib/components/logo/logo.vue2.cjs +1 -1
  164. package/lib/components/menu/menu-item-group.vue2.cjs +1 -1
  165. package/lib/components/menu/menu-item.vue2.cjs +1 -1
  166. package/lib/components/menu/sub-menu.vue2.cjs +1 -1
  167. package/lib/components/message/message.vue2.cjs +1 -1
  168. package/lib/components/modal/modal-footer-action.vue2.cjs +1 -1
  169. package/lib/components/modal/modal.vue2.cjs +1 -1
  170. package/lib/components/multiple-tabs/multiple-tabs.vue2.cjs +1 -1
  171. package/lib/components/page-wrapper/page-wrapper.vue2.cjs +1 -1
  172. package/lib/components/pagination/components/jumper.vue2.cjs +1 -1
  173. package/lib/components/pagination/components/next.vue2.cjs +1 -1
  174. package/lib/components/pagination/components/pager.vue2.cjs +1 -1
  175. package/lib/components/pagination/components/prev.vue2.cjs +1 -1
  176. package/lib/components/pagination/components/sizes.vue2.cjs +1 -1
  177. package/lib/components/pagination/components/total.vue2.cjs +1 -1
  178. package/lib/components/popconfirm/popconfirm.vue2.cjs +1 -1
  179. package/lib/components/popover/popover.vue2.cjs +1 -1
  180. package/lib/components/popper/trigger.vue2.cjs +1 -1
  181. package/lib/components/progress/progress.vue2.cjs +5 -5
  182. package/lib/components/qrcode/qrcode.vue2.cjs +1 -1
  183. package/lib/components/radio/radio-button.vue2.cjs +1 -1
  184. package/lib/components/radio/radio-group.vue2.cjs +1 -1
  185. package/lib/components/router-view-content/router-view-content.vue2.cjs +1 -1
  186. package/lib/components/roving-focus-group/roving-focus-item.vue2.cjs +1 -1
  187. package/lib/components/row/row.vue2.cjs +1 -1
  188. package/lib/components/scrollbar/bar.vue2.cjs +1 -1
  189. package/lib/components/scrollbar/scrollbar.vue2.cjs +1 -1
  190. package/lib/components/scrollbar/thumb.vue2.cjs +1 -1
  191. package/lib/components/search/search.vue2.cjs +1 -1
  192. package/lib/components/select/index.d.ts +1 -1
  193. package/lib/components/select/select.vue.d.ts +1 -1
  194. package/lib/components/side-menu/index.d.ts +2 -8
  195. package/lib/components/side-menu/side-menu.vue.d.ts +8 -62
  196. package/lib/components/side-menu/side-menu.vue2.cjs +1 -1
  197. package/lib/components/side-menu/types.d.ts +107 -0
  198. package/lib/components/side-menu/use-drag-line.cjs +1 -1
  199. package/lib/components/side-menu/use-drag-line.d.ts +3 -1
  200. package/lib/components/skeleton/skeleton-item.vue2.cjs +1 -1
  201. package/lib/components/skeleton/skeleton.vue2.cjs +1 -1
  202. package/lib/components/slider/button.vue2.cjs +1 -1
  203. package/lib/components/slider/slider.vue2.cjs +1 -1
  204. package/lib/components/steps/item.vue2.cjs +1 -1
  205. package/lib/components/steps/steps.vue2.cjs +1 -1
  206. package/lib/components/super-form/super-form-action.vue2.cjs +1 -1
  207. package/lib/components/switch/switch.vue2.cjs +1 -1
  208. package/lib/components/table/field.d.ts +4 -4
  209. package/lib/components/teleport/teleport.vue2.cjs +1 -1
  210. package/lib/components/time-picker/common/picker.vue.d.ts +1 -1
  211. package/lib/components/time-picker/index.d.ts +2 -2
  212. package/lib/components/time-picker/time-picker.d.ts +1 -1
  213. package/lib/components/timeline/timeline-item.vue2.cjs +1 -1
  214. package/lib/components/tooltip/content.vue2.cjs +1 -1
  215. package/lib/components/tooltip/tooltip.vue2.cjs +1 -1
  216. package/lib/components/tooltip/trigger.vue2.cjs +1 -1
  217. package/lib/components/tree/tree.vue2.cjs +1 -1
  218. package/lib/components/upload/upload-content.vue2.cjs +1 -1
  219. package/lib/components/upload/upload-list.vue2.cjs +1 -1
  220. package/lib/components/upload/upload.vue2.cjs +1 -1
  221. package/lib/components/verify-code/verify-code.vue2.cjs +1 -1
  222. package/lib/package.json.cjs +1 -1
  223. package/lib/package.json.d.ts +1 -1
  224. package/package.json +4 -4
  225. package/tags.json +1 -1
  226. package/theme-style/index.css +1 -1
  227. package/theme-style/src/header-layout.scss +1 -1
  228. package/theme-style/src/menu.scss +7 -2
  229. package/theme-style/src/mixins/mixins.scss +1 -0
  230. package/theme-style/src/side-menu.scss +0 -3
  231. package/theme-style/vft-header-layout.css +1 -1
  232. package/theme-style/vft-menu.css +1 -1
  233. package/theme-style/vft-side-menu.css +1 -1
  234. package/web-types.json +1 -1
@@ -47,30 +47,30 @@ const re = g({
47
47
  inputStyle: { type: [Boolean, null, String, Object, Array] }
48
48
  },
49
49
  emits: ["update:modelValue", "blur", "focus", "clear", "enter", "prefixClick", "suffixClick", "mouseenter", "mouseleave", "keydown", "change", "input", "compositionstart", "compositionupdate", "compositionend"],
50
- setup(t, { expose: P, emit: R }) {
51
- const f = le("search"), o = R, y = a(), C = a(), c = a(), p = a(!1), m = a(!1), n = a(!1), S = u(
50
+ setup(o, { expose: x, emit: P }) {
51
+ const f = le("search"), t = P, y = a(), C = a(), c = a(), p = a(!1), m = a(!1), n = a(!1), R = u(
52
52
  () => b(
53
53
  {
54
- width: t.activeWidth && (n.value || t.modelValue) ? d(t.activeWidth) : d(t.width)
54
+ width: o.activeWidth && (n.value || o.modelValue) ? d(o.activeWidth) : d(o.width)
55
55
  },
56
56
  "input"
57
57
  )
58
- ), $ = u(
58
+ ), S = u(
59
59
  () => b(
60
60
  {
61
- "active-width": t.activeWidth ? d(t.activeWidth) : d(t.width)
61
+ "active-width": o.activeWidth ? d(o.activeWidth) : d(o.width)
62
62
  },
63
63
  "search"
64
64
  )
65
- ), x = u(() => ({
65
+ ), $ = u(() => ({
66
66
  "show-arrow": !1,
67
67
  transition: "vft-zoom-in-top",
68
68
  placement: "bottom-start",
69
69
  offset: 3,
70
70
  width: 500,
71
- ...t.popoverCfg
71
+ ...o.popoverCfg
72
72
  })), E = (e) => {
73
- o("update:modelValue", e), o("input", e);
73
+ t("update:modelValue", e), t("input", e);
74
74
  }, W = () => {
75
75
  v();
76
76
  };
@@ -81,46 +81,46 @@ const re = g({
81
81
  n.value = !1;
82
82
  }
83
83
  const I = () => {
84
- o("clear"), s(!1);
84
+ t("clear"), s(!1);
85
85
  };
86
86
  function M() {
87
- m.value = !0, o("mouseenter", t.modelValue);
87
+ m.value = !0, t("mouseenter", o.modelValue);
88
88
  }
89
89
  function U() {
90
- m.value = !1, o("mouseleave", t.modelValue);
90
+ m.value = !1, t("mouseleave", o.modelValue);
91
91
  }
92
92
  const F = () => {
93
- n.value = !0, p.value = !0, o("focus");
93
+ n.value = !0, p.value = !0, t("focus");
94
94
  };
95
95
  function N() {
96
- p.value = !1, o("blur");
96
+ p.value = !1, t("blur");
97
97
  }
98
98
  function O() {
99
- s(), o("prefixClick", t.modelValue);
99
+ s(), t("prefixClick", o.modelValue);
100
100
  }
101
101
  function j() {
102
- s(), o("suffixClick", t.modelValue);
102
+ s(), t("suffixClick", o.modelValue);
103
103
  }
104
104
  function A() {
105
- s(), o("enter", t.modelValue);
105
+ s(), t("enter", o.modelValue);
106
106
  }
107
107
  function s(e = !0) {
108
- t.usePopover && v(), e && c.value.blur();
108
+ o.usePopover && v(), e && c.value.blur();
109
109
  }
110
110
  const D = (e) => {
111
- o("keydown", e);
111
+ t("keydown", e);
112
112
  }, K = u(() => y.value?.popperRef?.contentRef), L = (e) => {
113
- o("update:modelValue", e);
113
+ t("update:modelValue", e);
114
114
  }, H = (e) => {
115
- o("change", e);
115
+ t("change", e);
116
116
  }, q = (e) => {
117
- o("compositionstart", e);
117
+ t("compositionstart", e);
118
118
  }, G = (e) => {
119
- o("compositionupdate", e);
119
+ t("compositionupdate", e);
120
120
  }, J = (e) => {
121
- o("compositionend", e);
121
+ t("compositionend", e);
122
122
  };
123
- return P({
123
+ return x({
124
124
  isFocus: p,
125
125
  isHover: m,
126
126
  visible: n,
@@ -131,14 +131,14 @@ const re = g({
131
131
  X((h(), V("div", {
132
132
  ref_key: "searchRef",
133
133
  ref: C,
134
- class: w([l(f).b(), l(f).is("active", !!n.value || !!e.modelValue)]),
135
- style: _($.value)
134
+ class: w([l(f).b(), l(f).is("active", !!n.value || !!o.modelValue)]),
135
+ style: _(S.value)
136
136
  }, [
137
137
  ee(l(ne), B({
138
138
  ref_key: "inputRef",
139
139
  ref: c
140
140
  }, e.$props, {
141
- "input-style": S.value,
141
+ "input-style": R.value,
142
142
  onInput: E,
143
143
  onFocus: F,
144
144
  onEnter: A,
@@ -187,12 +187,12 @@ const re = g({
187
187
  ], 6)), [
188
188
  [l(ie), W, K.value]
189
189
  ]),
190
- e.usePopover ? (h(), Y(l(ae), B({
190
+ o.usePopover ? (h(), Y(l(ae), B({
191
191
  key: 0,
192
192
  style: { "--vft-transition-duration": "3s" },
193
193
  ref_key: "popoverRef",
194
194
  ref: y
195
- }, x.value, {
195
+ }, $.value, {
196
196
  "virtual-ref": C.value,
197
197
  visible: n.value,
198
198
  "onUpdate:visible": k[0] || (k[0] = (Q) => n.value = Q),
@@ -2780,6 +2780,6 @@ export declare const VftSelect: SFCWithInstall<import("vue").DefineComponent<imp
2780
2780
  };
2781
2781
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>> & Record<string, any>;
2782
2782
  }, {
2783
- ClickOutside: import("vue").ObjectDirective<any, any, string, string>;
2783
+ ClickOutside: import("vue").ObjectDirective<any, any, string, any>;
2784
2784
  }, string, import("vue").ComponentProvideOptions, true, {}, any>>;
2785
2785
  export * from './token';
@@ -2776,6 +2776,6 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
2776
2776
  };
2777
2777
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>> & Record<string, any>;
2778
2778
  }, {
2779
- ClickOutside: import("vue").ObjectDirective<any, any, string, string>;
2779
+ ClickOutside: import("vue").ObjectDirective<any, any, string, any>;
2780
2780
  }, string, import("vue").ComponentProvideOptions, true, {}, any>;
2781
2781
  export default _default;
@@ -96,10 +96,7 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
96
96
  "update:width": (val: string | number) => void;
97
97
  dragEnd: (oldIndex: import("sortablejs").SortableEvent, newIndex: import("sortablejs").SortableEvent) => void;
98
98
  dragWidthEnd: () => void;
99
- select: (val: {
100
- route: string;
101
- indexPath: string[];
102
- }) => void;
99
+ select: (val: import("./types").MenuSelectEventData) => void;
103
100
  subMenuClick: (val: any) => void;
104
101
  subMenuOpenClick: (val: any) => void;
105
102
  menuItemMouseenter: (val: any) => void;
@@ -190,10 +187,7 @@ export declare const VftSideMenu: import("vft/es/utils").SFCWithInstall<import("
190
187
  default: boolean;
191
188
  };
192
189
  }>> & Readonly<{
193
- onSelect?: ((val: {
194
- route: string;
195
- indexPath: string[];
196
- }) => any) | undefined;
190
+ onSelect?: ((val: import("./types").MenuSelectEventData) => any) | undefined;
197
191
  "onUpdate:collapse"?: ((val: boolean) => any) | undefined;
198
192
  "onUpdate:width"?: ((val: string | number) => any) | undefined;
199
193
  onDragEnd?: ((oldIndex: import("sortablejs").SortableEvent, newIndex: import("sortablejs").SortableEvent) => any) | undefined;
@@ -1,54 +1,6 @@
1
- import Sortable from 'sortablejs';
2
- import type { MenuAttrMapping, MenuType } from './types';
3
- export interface MenuConProps {
4
- /** 是否需要固定在左侧 */
5
- isFixedLeft?: boolean;
6
- /** 菜单列表 */
7
- menus: MenuType[];
8
- /** 侧边栏宽度 */
9
- width?: string | number;
10
- /** 侧边栏高度 */
11
- height?: string;
12
- /** 侧边栏折叠后的宽度 */
13
- collapseWidth?: string | number;
14
- /** 属性字段映射 */
15
- attrMapping?: MenuAttrMapping;
16
- /** 菜单内上下 slot 插槽高度总和 */
17
- menuTopBottomHeight?: number;
18
- /** 是否显示底部收缩 */
19
- showCollapse?: boolean;
20
- /** 只有一级菜单时拖拽配置 */
21
- dragOption?: Sortable.Options & {
22
- dragClassName: string;
23
- };
24
- /** 是否可以拖拽侧边栏宽度 */
25
- dragWidthCfg?: boolean | {
26
- maxWidth?: number;
27
- minWidth?: number;
28
- };
29
- /** 是否使用菜单组件内部的选中事件 */
30
- useRouterJump?: boolean;
31
- /** 是否开启菜单禁用 */
32
- openDisabled?: boolean;
33
- /** 点击子菜单时是否滚动到其父级位置 */
34
- autoScrollActiveDom?: boolean | number;
35
- /** 开启菜单折叠 */
36
- openMenuCollapse?: boolean;
37
- /** 是否收缩 */
38
- collapse?: boolean;
39
- /** 保持只打开一个 */
40
- uniqueOpened?: boolean;
41
- /** 禁用判断使用相反的条件 */
42
- disabledJudgeTurnOver?: boolean;
43
- /** 默认选中 */
44
- defaultActive?: string;
45
- /** 默认展开 */
46
- defaultOpeneds?: Array<string | number>;
47
- defaultOpenedsLevel?: number | boolean;
48
- /** 禁用子菜单的展开收缩行为 */
49
- disableSubMenuAction?: boolean;
50
- }
51
- declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<MenuConProps>, {
1
+ import type { SortableEvent } from 'sortablejs';
2
+ import type { MenuSelectEventData, SideMenuProps } from './types';
3
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<SideMenuProps>, {
52
4
  isFixedLeft: boolean;
53
5
  autoScrollActiveDom: boolean;
54
6
  openMenuCollapse: boolean;
@@ -75,17 +27,14 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
75
27
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
76
28
  "update:collapse": (val: boolean) => void;
77
29
  "update:width": (val: string | number) => void;
78
- dragEnd: (oldIndex: Sortable.SortableEvent, newIndex: Sortable.SortableEvent) => void;
30
+ dragEnd: (oldIndex: SortableEvent, newIndex: SortableEvent) => void;
79
31
  dragWidthEnd: () => void;
80
- select: (val: {
81
- route: string;
82
- indexPath: string[];
83
- }) => void;
32
+ select: (val: MenuSelectEventData) => void;
84
33
  subMenuClick: (val: any) => void;
85
34
  subMenuOpenClick: (val: any) => void;
86
35
  menuItemMouseenter: (val: any) => void;
87
36
  menuItemMouseleave: (val: any) => void;
88
- }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<MenuConProps>, {
37
+ }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<SideMenuProps>, {
89
38
  isFixedLeft: boolean;
90
39
  autoScrollActiveDom: boolean;
91
40
  openMenuCollapse: boolean;
@@ -102,13 +51,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
102
51
  disableSubMenuAction: boolean;
103
52
  defaultOpenedsLevel: boolean;
104
53
  }>>> & Readonly<{
105
- onSelect?: ((val: {
106
- route: string;
107
- indexPath: string[];
108
- }) => any) | undefined;
54
+ onSelect?: ((val: MenuSelectEventData) => any) | undefined;
109
55
  "onUpdate:collapse"?: ((val: boolean) => any) | undefined;
110
56
  "onUpdate:width"?: ((val: string | number) => any) | undefined;
111
- onDragEnd?: ((oldIndex: Sortable.SortableEvent, newIndex: Sortable.SortableEvent) => any) | undefined;
57
+ onDragEnd?: ((oldIndex: SortableEvent, newIndex: SortableEvent) => any) | undefined;
112
58
  onDragWidthEnd?: (() => any) | undefined;
113
59
  onSubMenuClick?: ((val: any) => any) | undefined;
114
60
  onSubMenuOpenClick?: ((val: any) => any) | undefined;
@@ -1,25 +1,25 @@
1
- import { defineComponent as J, toRefs as se, useSlots as ie, getCurrentInstance as de, ref as h, computed as b, watch as re, onMounted as ce, nextTick as pe, createVNode as p, h as y, isVNode as fe } from "vue";
2
- import { listenerRouteChange as me, useRouterHelper as ve } from "@vft/router";
3
- import { useSortable as he } from "@vft/use/sortable";
4
- import { isNullOrUndefined as V, isNumber as j, isUrl as ge } from "@vft/utils";
1
+ import { defineComponent as J, toRefs as ie, useSlots as de, getCurrentInstance as re, ref as h, computed as b, watch as ce, onMounted as pe, nextTick as fe, createVNode as p, h as y, isVNode as me } from "vue";
2
+ import { listenerRouteChange as ve, useRouterHelper as he } from "@vft/router";
3
+ import { useSortable as ge } from "@vft/use/sortable";
4
+ import { isNullOrUndefined as W, isNumber as j, isUrl as be } from "@vft/utils";
5
5
  import "@vueuse/core";
6
6
  import { addUnit as q } from "../../utils/helper.js";
7
7
  import "lodash-es";
8
8
  import "../form/index.js";
9
- import { VftIcon as be } from "../icon/index.js";
10
- import { VftMenu as ye, VftSubMenu as Me, VftMenuItem as E } from "../menu/index.js";
11
- import { useNamespace as Se } from "../../hooks/use-namespace/index.js";
9
+ import { VftIcon as ye } from "../icon/index.js";
10
+ import { VftMenu as Me, VftSubMenu as Se, VftMenuItem as E } from "../menu/index.js";
11
+ import { useNamespace as Oe } from "../../hooks/use-namespace/index.js";
12
12
  import "../../hooks/use-model-toggle/index.js";
13
13
  import "@popperjs/core";
14
14
  import "../../hooks/use-z-index/index.js";
15
15
  import { useDragLine as Ce } from "./use-drag-line.js";
16
- function Oe(g) {
17
- return typeof g == "function" || Object.prototype.toString.call(g) === "[object Object]" && !fe(g);
16
+ function xe(g) {
17
+ return typeof g == "function" || Object.prototype.toString.call(g) === "[object Object]" && !me(g);
18
18
  }
19
- const xe = J({
19
+ const _e = J({
20
20
  name: "vft-side-menu"
21
- }), Je = /* @__PURE__ */ J({
22
- ...xe,
21
+ }), Le = /* @__PURE__ */ J({
22
+ ..._e,
23
23
  props: {
24
24
  isFixedLeft: {
25
25
  type: Boolean,
@@ -98,7 +98,7 @@ const xe = J({
98
98
  defaultOpeneds: $,
99
99
  openMenuCollapse: F,
100
100
  defaultOpenedsLevel: M
101
- } = se(t), u = Se("side-menu"), r = ie(), O = de(), x = h(), a = b(() => ({
101
+ } = ie(t), u = Oe("side-menu"), r = de(), C = re(), x = h(), a = b(() => ({
102
102
  path: "path",
103
103
  children: "children",
104
104
  title: "title",
@@ -114,7 +114,7 @@ const xe = J({
114
114
  };
115
115
  return n(e), l;
116
116
  };
117
- me(({
117
+ ve(({
118
118
  route: e
119
119
  }) => {
120
120
  !e || e.meta?.hideSide && !t.useRouterJump || (x.value = e.path);
@@ -148,7 +148,7 @@ const xe = J({
148
148
  const l = e[a.value.path], n = e[a.value.title], s = e?.[a.value.children], i = e?.[a.value.index], v = e?.[a.value.icon], T = !!e?.[a.value.disabled], R = t.disabledJudgeTurnOver ? !T : T, N = i || l || o + n;
149
149
  return s?.length ? y(
150
150
  // @ts-ignore
151
- Me,
151
+ Se,
152
152
  {
153
153
  ...e,
154
154
  popperAppendToBody: !0,
@@ -160,18 +160,18 @@ const xe = J({
160
160
  popperClass: u.e("popper")
161
161
  },
162
162
  {
163
- default: () => s?.map((c, ne) => {
164
- const C = c[a.value.path], I = c[a.value.index], oe = c[a.value.icon], ae = c[a.value.title], W = !!c[a.value.disabled], ue = t.disabledJudgeTurnOver ? !W : W;
165
- return c?.[a.value.children]?.length ? B(c, ne) : (
163
+ default: () => s?.map((c, oe) => {
164
+ const O = c[a.value.path], I = c[a.value.index], ae = c[a.value.icon], ue = c[a.value.title], V = !!c[a.value.disabled], se = t.disabledJudgeTurnOver ? !V : V;
165
+ return c?.[a.value.children]?.length ? B(c, oe) : (
166
166
  // @ts-ignore
167
167
  y(E, {
168
168
  ...c,
169
- key: I || C,
170
- index: I || C,
171
- route: C,
172
- icon: oe,
173
- title: ae,
174
- disabled: t.openDisabled && ue
169
+ key: I || O,
170
+ index: I || O,
171
+ route: O,
172
+ icon: ae,
173
+ title: ue,
174
+ disabled: t.openDisabled && se
175
175
  }, r.menuItem ? () => r.menuItem?.({
176
176
  item: c
177
177
  }) : "")
@@ -197,14 +197,14 @@ const xe = J({
197
197
  width: 0
198
198
  } : {},
199
199
  height: `calc(100% - ${t.menuTopBottomHeight}px)`
200
- })), w = O.appContext.config.globalProperties.$router;
200
+ })), w = C.appContext.config.globalProperties.$router;
201
201
  async function X(e) {
202
202
  if (t.useRouterJump) {
203
203
  const {
204
204
  go: o
205
- } = ve(w), l = e.route;
205
+ } = he(w), l = e.route;
206
206
  let n = e.route;
207
- e.indexPath.some((i) => ge(i)) && (n = e.indexPath.slice(-2).join("/"));
207
+ e.indexPath.some((i) => be(i)) && (n = e.indexPath.slice(-2).join("/"));
208
208
  const s = w.getRoutes().filter((i) => i.path === n)?.[0]?.meta?.linkTarget;
209
209
  o(s ? {
210
210
  url: l,
@@ -215,32 +215,34 @@ const xe = J({
215
215
  }
216
216
  d("select", e);
217
217
  }
218
- const S = h(), k = h(), A = h(), ee = b(() => ({
218
+ const S = h(), D = h(), k = h(), ee = b(() => ({
219
219
  ...t.collapseWidth === 0 && f.value ? {
220
220
  borderRight: "none"
221
221
  } : {},
222
222
  width: q(t.width),
223
223
  height: t.height
224
224
  }));
225
- re(() => f.value, (e) => {
226
- e ? d("update:width", t.collapseWidth) : d("update:width", A.value || t.width), A.value = t.width;
227
- }), t.dragWidthCfg && Ce(S, k, O);
228
- const te = b(() => ({
225
+ ce(() => f.value, (e) => {
226
+ te.value || (e ? d("update:width", t.collapseWidth) : d("update:width", k.value || t.width), k.value = t.width);
227
+ });
228
+ const {
229
+ isDraging: te
230
+ } = Ce(S, D, C), le = b(() => ({
229
231
  left: q(t.width)
230
- })), le = b(() => [u.b(), t.isFixedLeft ? u.m("fixed") : ""]), D = h([]);
231
- return ce(() => {
232
- pe(() => {
232
+ })), ne = b(() => [u.b(), t.isFixedLeft ? u.m("fixed") : ""]), A = h([]);
233
+ return pe(() => {
234
+ fe(() => {
233
235
  if (t.dragOption?.dragClassName) {
234
236
  const e = document.querySelectorAll(`.${u.e(t.dragOption?.dragClassName)}`)?.[0], {
235
237
  initSortable: o
236
- } = he(e, {
238
+ } = ge(e, {
237
239
  draggable: ".vft-menu-item",
238
240
  onEnd: (l) => {
239
241
  const {
240
242
  oldIndex: n,
241
243
  newIndex: s
242
244
  } = l;
243
- V(n) || V(s) || n === s || d("dragEnd", n, s);
245
+ W(n) || W(s) || n === s || d("dragEnd", n, s);
244
246
  },
245
247
  ...t.dragOption
246
248
  });
@@ -253,46 +255,46 @@ const xe = J({
253
255
  menuRef: m
254
256
  }), () => {
255
257
  let e;
256
- return M.value && (D.value = Z(t.menus, j(M.value) ? M.value : 1 / 0)), p("div", {
258
+ return M.value && (A.value = Z(t.menus, j(M.value) ? M.value : 1 / 0)), p("div", {
257
259
  ref: S,
258
- class: le.value,
260
+ class: ne.value,
259
261
  style: ee.value
260
262
  }, [r.top ? p("div", {
261
263
  class: u.e("top")
262
- }, [r.top()]) : null, y(p(ye, {
264
+ }, [r.top()]) : null, y(p(Me, {
263
265
  ref: m,
264
266
  onSelect: X,
265
267
  onOpen: z,
266
268
  onSubMenuClick: Y,
267
269
  defaultActive: H?.value || x.value,
268
- defaultOpeneds: $?.value || D.value,
270
+ defaultOpeneds: $?.value || A.value,
269
271
  disableSubMenuAction: t.disableSubMenuAction,
270
272
  class: [u.e("con"), t.dragOption?.dragClassName ? u.e(t.dragOption?.dragClassName) : ""],
271
273
  style: Q.value,
272
274
  collapse: F.value ? f.value : !1,
273
275
  uniqueOpened: U.value,
274
276
  collapseTransition: !1
275
- }, Oe(e = t.menus.map((o, l) => B(o, l))) ? e : {
277
+ }, xe(e = t.menus.map((o, l) => B(o, l))) ? e : {
276
278
  default: () => [e]
277
279
  })), r.bottom ? p("div", {
278
280
  class: u.e("bottom")
279
281
  }, [r.bottom()]) : t.showCollapse ? p("div", {
280
282
  onClick: () => d("update:collapse", !f.value),
281
283
  class: [u.e("bottom"), u.e("collapse")]
282
- }, [p(be, {
284
+ }, [p(ye, {
283
285
  style: {
284
286
  transform: f.value ? "rotateY(180deg)" : ""
285
287
  },
286
288
  size: 20,
287
289
  icon: "icon-sidebar-collapse"
288
290
  }, null)]) : null, r.default?.(), t.dragWidthCfg ? p("div", {
289
- ref: k,
290
- style: te.value,
291
+ ref: D,
292
+ style: le.value,
291
293
  class: u.e("drag-bar")
292
294
  }, null) : null]);
293
295
  };
294
296
  }
295
297
  });
296
298
  export {
297
- Je as default
299
+ Le as default
298
300
  };
@@ -1,14 +1,121 @@
1
+ import type Sortable from 'sortablejs';
2
+ import type { SortableEvent } from 'sortablejs';
3
+ /** 菜单项类型 */
1
4
  export type MenuType = {
5
+ /** 子菜单列表 */
2
6
  children?: MenuType[];
7
+ /** 菜单标题 */
3
8
  title: string;
9
+ /** 菜单图标 */
4
10
  icon?: string;
11
+ /** 其他自定义属性 */
5
12
  [key: string]: any;
6
13
  };
14
+ /** 菜单属性字段映射配置 */
7
15
  export type MenuAttrMapping = {
16
+ /** 路径字段名 */
8
17
  path?: string;
18
+ /** 子菜单字段名 */
9
19
  children?: string;
20
+ /** 标题字段名 */
10
21
  title?: string;
22
+ /** 索引字段名 */
11
23
  index?: string | number;
24
+ /** 图标字段名 */
12
25
  icon?: string;
26
+ /** 禁用字段名 */
13
27
  disabled?: string;
14
28
  };
29
+ /** 侧边菜单组件属性 */
30
+ export interface SideMenuProps {
31
+ /** 是否固定在左侧 */
32
+ isFixedLeft?: boolean;
33
+ /** 菜单列表 */
34
+ menus: MenuType[];
35
+ /** 侧边栏宽度 */
36
+ width?: string | number;
37
+ /** 侧边栏高度 */
38
+ height?: string;
39
+ /** 侧边栏折叠后的宽度 */
40
+ collapseWidth?: string | number;
41
+ /** 属性字段映射 */
42
+ attrMapping?: MenuAttrMapping;
43
+ /** 菜单内上下插槽高度总和 */
44
+ menuTopBottomHeight?: number;
45
+ /** 是否显示底部收缩按钮 */
46
+ showCollapse?: boolean;
47
+ /** 只有一级菜单时的拖拽配置 */
48
+ dragOption?: Sortable.Options & {
49
+ dragClassName: string;
50
+ };
51
+ /** 是否可以拖拽侧边栏宽度 */
52
+ dragWidthCfg?: boolean | {
53
+ /** 最大宽度 */
54
+ maxWidth?: number;
55
+ /** 最小宽度 */
56
+ minWidth?: number;
57
+ };
58
+ /** 是否使用菜单组件内部的选中事件进行路由跳转 */
59
+ useRouterJump?: boolean;
60
+ /** 是否开启菜单禁用功能 */
61
+ openDisabled?: boolean;
62
+ /** 点击子菜单时是否自动滚动到其父级位置 */
63
+ autoScrollActiveDom?: boolean | number;
64
+ /** 是否开启菜单折叠功能 */
65
+ openMenuCollapse?: boolean;
66
+ /** 是否折叠菜单 */
67
+ collapse?: boolean;
68
+ /** 是否保持只打开一个子菜单 */
69
+ uniqueOpened?: boolean;
70
+ /** 禁用判断使用相反的条件 */
71
+ disabledJudgeTurnOver?: boolean;
72
+ /** 默认选中的菜单索引 */
73
+ defaultActive?: string;
74
+ /** 默认展开的子菜单索引数组 */
75
+ defaultOpeneds?: Array<string | number>;
76
+ /** 默认展开的层级深度 */
77
+ defaultOpenedsLevel?: number | boolean;
78
+ /** 禁用子菜单的展开收缩行为 */
79
+ disableSubMenuAction?: boolean;
80
+ }
81
+ /** 菜单选中事件参数 */
82
+ export interface MenuSelectEventData {
83
+ /** 选中的路由路径 */
84
+ route: string;
85
+ /** 选中菜单的索引路径 */
86
+ indexPath: string[];
87
+ }
88
+ /** 侧边菜单组件 Emits */
89
+ export interface SideMenuEmits {
90
+ /** 折叠状态更新事件 */
91
+ (e: 'update:collapse', val: boolean): void;
92
+ /** 宽度更新事件 */
93
+ (e: 'update:width', val: string | number): void;
94
+ /** 拖拽结束事件 */
95
+ (e: 'dragEnd', oldIndex: SortableEvent, newIndex: SortableEvent): void;
96
+ /** 拖拽宽度结束事件 */
97
+ (e: 'dragWidthEnd'): void;
98
+ /** 菜单选中事件 */
99
+ (e: 'select', val: MenuSelectEventData): void;
100
+ /** 子菜单点击事件 */
101
+ (e: 'subMenuClick', val: any): void;
102
+ /** 子菜单展开点击事件 */
103
+ (e: 'subMenuOpenClick', val: any): void;
104
+ /** 菜单项鼠标进入事件 */
105
+ (e: 'menuItemMouseenter', val: any): void;
106
+ /** 菜单项鼠标离开事件 */
107
+ (e: 'menuItemMouseleave', val: any): void;
108
+ }
109
+ /** 侧边菜单组件暴露的方法和属性 */
110
+ export interface SideMenuExpose {
111
+ /** 侧边栏容器引用 */
112
+ sideRef: any;
113
+ /** 跳转到激活的菜单项 */
114
+ jumpActiveDom: (options?: {
115
+ activeDom?: HTMLElement | null;
116
+ offset?: number;
117
+ delay?: number;
118
+ }) => void;
119
+ /** 菜单组件引用 */
120
+ menuRef: any;
121
+ }
@@ -1,2 +1,4 @@
1
1
  import { type Ref } from 'vue';
2
- export declare function useDragLine(siderRef: Ref<any>, dragBarRef: Ref<any>, instance: any): {};
2
+ export declare function useDragLine(siderRef: Ref<any>, dragBarRef: Ref<any>, instance: any): {
3
+ isDraging: Ref<boolean, boolean>;
4
+ };