vft 0.0.429 → 0.0.430

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 (218) hide show
  1. package/attributes.json +1 -1
  2. package/es/components/alert/alert.vue2.js +38 -38
  3. package/es/components/autocomplete/autocomplete.vue2.js +82 -82
  4. package/es/components/avatar/avatar.vue2.js +23 -23
  5. package/es/components/avatar-stack/avatar-stack.vue2.js +25 -25
  6. package/es/components/breadcrumb/breadcrumb-item.vue2.js +19 -19
  7. package/es/components/button/button.vue2.js +37 -37
  8. package/es/components/card/card.vue2.js +19 -19
  9. package/es/components/carousel/carousel.vue2.js +75 -75
  10. package/es/components/carousel/use-carousel.js +1 -1
  11. package/es/components/cascader-panel/index.vue2.js +2 -2
  12. package/es/components/cascader-panel/menu.vue2.js +2 -2
  13. package/es/components/cascader-panel/node.vue2.js +3 -4
  14. package/es/components/checkbox/checkbox-button.vue2.js +52 -52
  15. package/es/components/checkbox/checkbox-group.vue2.js +26 -26
  16. package/es/components/checkbox/checkbox.vue2.js +57 -57
  17. package/es/components/clamp/clamp.vue2.js +14 -14
  18. package/es/components/clamp-toggle/clamp-toggle.vue2.js +17 -17
  19. package/es/components/clamp-tooltip/clamp-tooltip.vue2.js +19 -19
  20. package/es/components/col/col.vue2.js +20 -20
  21. package/es/components/color-picker/color-picker.vue2.js +126 -128
  22. package/es/components/color-picker/components/sv-panel.vue.js +2 -2
  23. package/es/components/config-provider/hooks/use-global-config.js +3 -3
  24. package/es/components/context-menu/context-menu.vue2.js +18 -18
  25. package/es/components/date-picker/date-picker-com/panel-date-pick.vue2.js +37 -39
  26. package/es/components/date-picker/date-picker-com/panel-date-range.vue2.js +8 -10
  27. package/es/components/date-picker/date-picker.d.ts +1 -1
  28. package/es/components/date-picker/index.d.ts +2 -2
  29. package/es/components/descriptions/description.vue2.js +44 -44
  30. package/es/components/descriptions/descriptions-row.vue2.js +12 -12
  31. package/es/components/dialog/dialog-content.vue2.js +31 -31
  32. package/es/components/dialog/dialog.vue2.js +46 -46
  33. package/es/components/divider/divider.vue2.js +19 -19
  34. package/es/components/drawer/drawer.vue2.js +41 -41
  35. package/es/components/dropdown/dropdown-item-impl.vue2.js +40 -40
  36. package/es/components/dropdown/dropdown-item.vue2.js +28 -28
  37. package/es/components/dropdown/dropdown.vue2.js +124 -124
  38. package/es/components/form/form-item.vue2.js +71 -71
  39. package/es/components/header-layout/header-layout.vue2.js +25 -25
  40. package/es/components/icon/icon.vue2.js +15 -15
  41. package/es/components/icon-text/icon-text.vue2.js +28 -28
  42. package/es/components/iframe-layout/iframe-layout.vue2.js +13 -13
  43. package/es/components/iframe-layout/iframe-page.vue2.js +11 -11
  44. package/es/components/image/image.vue2.js +63 -63
  45. package/es/components/image-viewer/image-viewer.vue2.js +88 -88
  46. package/es/components/infinite-scroll/index.d.ts +1 -1
  47. package/es/components/input/input.vue2.js +112 -112
  48. package/es/components/input-number/input-number.vue2.js +100 -100
  49. package/es/components/input-tag/composables/use-input-tag.js +1 -1
  50. package/es/components/link/link.vue2.js +20 -20
  51. package/es/components/list-cell/list-cell.vue2.js +19 -19
  52. package/es/components/logo/logo.vue2.js +22 -22
  53. package/es/components/menu/menu-item-group.vue2.js +8 -8
  54. package/es/components/menu/menu-item.vue2.js +48 -48
  55. package/es/components/message/message.vue2.js +66 -66
  56. package/es/components/modal/modal-footer-action.vue2.js +25 -25
  57. package/es/components/modal/modal.vue2.js +40 -40
  58. package/es/components/multiple-tabs/multiple-tabs.vue2.js +30 -30
  59. package/es/components/page-wrapper/page-wrapper.vue2.js +12 -12
  60. package/es/components/pagination/components/jumper.vue2.js +18 -18
  61. package/es/components/pagination/components/next.vue2.js +11 -11
  62. package/es/components/pagination/components/pager.vue2.js +74 -74
  63. package/es/components/pagination/components/prev.vue2.js +9 -9
  64. package/es/components/pagination/components/sizes.vue2.js +18 -18
  65. package/es/components/pagination/components/total.vue2.js +8 -8
  66. package/es/components/popconfirm/popconfirm.vue2.js +47 -47
  67. package/es/components/popover/popover.vue2.js +28 -28
  68. package/es/components/popper/trigger.vue2.js +9 -9
  69. package/es/components/progress/progress.vue2.js +87 -87
  70. package/es/components/qrcode/qrcode.vue2.js +31 -31
  71. package/es/components/radio/radio-button.vue2.js +17 -17
  72. package/es/components/radio/radio-group.vue2.js +35 -35
  73. package/es/components/router-view-content/router-view-content.vue2.js +25 -25
  74. package/es/components/roving-focus-group/roving-focus-item.vue2.js +30 -30
  75. package/es/components/row/row.vue2.js +5 -5
  76. package/es/components/scrollbar/bar.vue2.js +16 -16
  77. package/es/components/scrollbar/scrollbar.vue2.js +48 -48
  78. package/es/components/scrollbar/thumb.vue2.js +27 -27
  79. package/es/components/search/search.vue2.js +29 -29
  80. package/es/components/select/index.d.ts +1 -1
  81. package/es/components/select/select.vue.d.ts +1 -1
  82. package/es/components/side-menu/index.d.ts +2 -8
  83. package/es/components/side-menu/side-menu.vue.d.ts +5 -59
  84. package/es/components/side-menu/types.d.ts +107 -0
  85. package/es/components/skeleton/skeleton-item.vue2.js +9 -9
  86. package/es/components/skeleton/skeleton.vue2.js +14 -14
  87. package/es/components/slider/button.vue2.js +54 -54
  88. package/es/components/slider/slider.vue2.js +106 -106
  89. package/es/components/steps/item.vue2.js +56 -56
  90. package/es/components/steps/steps.vue2.js +16 -16
  91. package/es/components/super-form/super-form-action.vue2.js +28 -28
  92. package/es/components/super-form/super-form-item.vue2.js +1 -1
  93. package/es/components/switch/switch.vue2.js +108 -108
  94. package/es/components/table/field.d.ts +4 -4
  95. package/es/components/teleport/teleport.vue2.js +6 -6
  96. package/es/components/time-picker/common/picker.vue.d.ts +1 -1
  97. package/es/components/time-picker/index.d.ts +2 -2
  98. package/es/components/time-picker/time-picker.d.ts +1 -1
  99. package/es/components/timeline/timeline-item.vue2.js +20 -20
  100. package/es/components/tooltip/content.vue2.js +57 -57
  101. package/es/components/tooltip/tooltip.vue2.js +66 -66
  102. package/es/components/tooltip/trigger.vue2.js +42 -42
  103. package/es/components/tree/tree.vue2.js +72 -72
  104. package/es/components/upload/upload-content.vue2.js +85 -85
  105. package/es/components/upload/upload-list.vue2.js +70 -70
  106. package/es/components/upload/upload.vue2.js +86 -86
  107. package/es/components/verify-code/verify-code.vue2.js +18 -18
  108. package/es/package.json.d.ts +1 -1
  109. package/es/package.json.js +1 -1
  110. package/es/utils/vue/vnode.js +1 -1
  111. package/lib/components/alert/alert.vue2.cjs +1 -1
  112. package/lib/components/autocomplete/autocomplete.vue2.cjs +1 -1
  113. package/lib/components/avatar/avatar.vue2.cjs +1 -1
  114. package/lib/components/avatar-stack/avatar-stack.vue2.cjs +1 -1
  115. package/lib/components/breadcrumb/breadcrumb-item.vue2.cjs +1 -1
  116. package/lib/components/button/button.vue2.cjs +1 -1
  117. package/lib/components/card/card.vue2.cjs +1 -1
  118. package/lib/components/carousel/carousel.vue2.cjs +1 -1
  119. package/lib/components/cascader-panel/index.vue2.cjs +1 -1
  120. package/lib/components/cascader-panel/menu.vue2.cjs +1 -1
  121. package/lib/components/cascader-panel/node.vue2.cjs +1 -1
  122. package/lib/components/checkbox/checkbox-button.vue2.cjs +1 -1
  123. package/lib/components/checkbox/checkbox-group.vue2.cjs +1 -1
  124. package/lib/components/checkbox/checkbox.vue2.cjs +1 -1
  125. package/lib/components/clamp/clamp.vue2.cjs +1 -1
  126. package/lib/components/clamp-toggle/clamp-toggle.vue2.cjs +1 -1
  127. package/lib/components/clamp-tooltip/clamp-tooltip.vue2.cjs +1 -1
  128. package/lib/components/col/col.vue2.cjs +1 -1
  129. package/lib/components/color-picker/color-picker.vue2.cjs +1 -1
  130. package/lib/components/color-picker/components/sv-panel.vue.cjs +1 -1
  131. package/lib/components/context-menu/context-menu.vue2.cjs +1 -1
  132. package/lib/components/date-picker/date-picker-com/panel-date-pick.vue2.cjs +1 -1
  133. package/lib/components/date-picker/date-picker-com/panel-date-range.vue2.cjs +1 -1
  134. package/lib/components/date-picker/date-picker.d.ts +1 -1
  135. package/lib/components/date-picker/index.d.ts +2 -2
  136. package/lib/components/descriptions/description.vue2.cjs +1 -1
  137. package/lib/components/descriptions/descriptions-row.vue2.cjs +1 -1
  138. package/lib/components/dialog/dialog-content.vue2.cjs +1 -1
  139. package/lib/components/dialog/dialog.vue2.cjs +1 -1
  140. package/lib/components/divider/divider.vue2.cjs +1 -1
  141. package/lib/components/drawer/drawer.vue2.cjs +1 -1
  142. package/lib/components/dropdown/dropdown-item-impl.vue2.cjs +1 -1
  143. package/lib/components/dropdown/dropdown-item.vue2.cjs +1 -1
  144. package/lib/components/dropdown/dropdown.vue2.cjs +1 -1
  145. package/lib/components/form/form-item.vue2.cjs +1 -1
  146. package/lib/components/header-layout/header-layout.vue2.cjs +1 -1
  147. package/lib/components/icon/icon.vue2.cjs +1 -1
  148. package/lib/components/icon-text/icon-text.vue2.cjs +1 -1
  149. package/lib/components/iframe-layout/iframe-layout.vue2.cjs +1 -1
  150. package/lib/components/iframe-layout/iframe-page.vue2.cjs +1 -1
  151. package/lib/components/image/image.vue2.cjs +1 -1
  152. package/lib/components/image-viewer/image-viewer.vue2.cjs +1 -1
  153. package/lib/components/infinite-scroll/index.d.ts +1 -1
  154. package/lib/components/input/input.vue2.cjs +1 -1
  155. package/lib/components/input-number/input-number.vue2.cjs +1 -1
  156. package/lib/components/link/link.vue2.cjs +1 -1
  157. package/lib/components/list-cell/list-cell.vue2.cjs +1 -1
  158. package/lib/components/logo/logo.vue2.cjs +1 -1
  159. package/lib/components/menu/menu-item-group.vue2.cjs +1 -1
  160. package/lib/components/menu/menu-item.vue2.cjs +1 -1
  161. package/lib/components/message/message.vue2.cjs +1 -1
  162. package/lib/components/modal/modal-footer-action.vue2.cjs +1 -1
  163. package/lib/components/modal/modal.vue2.cjs +1 -1
  164. package/lib/components/multiple-tabs/multiple-tabs.vue2.cjs +1 -1
  165. package/lib/components/page-wrapper/page-wrapper.vue2.cjs +1 -1
  166. package/lib/components/pagination/components/jumper.vue2.cjs +1 -1
  167. package/lib/components/pagination/components/next.vue2.cjs +1 -1
  168. package/lib/components/pagination/components/pager.vue2.cjs +1 -1
  169. package/lib/components/pagination/components/prev.vue2.cjs +1 -1
  170. package/lib/components/pagination/components/sizes.vue2.cjs +1 -1
  171. package/lib/components/pagination/components/total.vue2.cjs +1 -1
  172. package/lib/components/popconfirm/popconfirm.vue2.cjs +1 -1
  173. package/lib/components/popover/popover.vue2.cjs +1 -1
  174. package/lib/components/popper/trigger.vue2.cjs +1 -1
  175. package/lib/components/progress/progress.vue2.cjs +5 -5
  176. package/lib/components/qrcode/qrcode.vue2.cjs +1 -1
  177. package/lib/components/radio/radio-button.vue2.cjs +1 -1
  178. package/lib/components/radio/radio-group.vue2.cjs +1 -1
  179. package/lib/components/router-view-content/router-view-content.vue2.cjs +1 -1
  180. package/lib/components/roving-focus-group/roving-focus-item.vue2.cjs +1 -1
  181. package/lib/components/row/row.vue2.cjs +1 -1
  182. package/lib/components/scrollbar/bar.vue2.cjs +1 -1
  183. package/lib/components/scrollbar/scrollbar.vue2.cjs +1 -1
  184. package/lib/components/scrollbar/thumb.vue2.cjs +1 -1
  185. package/lib/components/search/search.vue2.cjs +1 -1
  186. package/lib/components/select/index.d.ts +1 -1
  187. package/lib/components/select/select.vue.d.ts +1 -1
  188. package/lib/components/side-menu/index.d.ts +2 -8
  189. package/lib/components/side-menu/side-menu.vue.d.ts +5 -59
  190. package/lib/components/side-menu/types.d.ts +107 -0
  191. package/lib/components/skeleton/skeleton-item.vue2.cjs +1 -1
  192. package/lib/components/skeleton/skeleton.vue2.cjs +1 -1
  193. package/lib/components/slider/button.vue2.cjs +1 -1
  194. package/lib/components/slider/slider.vue2.cjs +1 -1
  195. package/lib/components/steps/item.vue2.cjs +1 -1
  196. package/lib/components/steps/steps.vue2.cjs +1 -1
  197. package/lib/components/super-form/super-form-action.vue2.cjs +1 -1
  198. package/lib/components/switch/switch.vue2.cjs +1 -1
  199. package/lib/components/table/field.d.ts +4 -4
  200. package/lib/components/teleport/teleport.vue2.cjs +1 -1
  201. package/lib/components/time-picker/common/picker.vue.d.ts +1 -1
  202. package/lib/components/time-picker/index.d.ts +2 -2
  203. package/lib/components/time-picker/time-picker.d.ts +1 -1
  204. package/lib/components/timeline/timeline-item.vue2.cjs +1 -1
  205. package/lib/components/tooltip/content.vue2.cjs +1 -1
  206. package/lib/components/tooltip/tooltip.vue2.cjs +1 -1
  207. package/lib/components/tooltip/trigger.vue2.cjs +1 -1
  208. package/lib/components/tree/tree.vue2.cjs +1 -1
  209. package/lib/components/upload/upload-content.vue2.cjs +1 -1
  210. package/lib/components/upload/upload-list.vue2.cjs +1 -1
  211. package/lib/components/upload/upload.vue2.cjs +1 -1
  212. package/lib/components/verify-code/verify-code.vue2.cjs +1 -1
  213. package/lib/package.json.cjs +1 -1
  214. package/lib/package.json.d.ts +1 -1
  215. package/package.json +5 -5
  216. package/tags.json +1 -1
  217. package/theme-style/src/mixins/mixins.scss +1 -0
  218. package/web-types.json +1 -1
@@ -193,11 +193,11 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
193
193
  }>, {
194
194
  disabled: boolean;
195
195
  type: string;
196
+ placeholder: string;
196
197
  modelValue: import("vft/es/utils").EpPropMergeType<(new (...args: any[]) => string | number | string[] | Date | [import("./common/props").DateModelType, import("./common/props").DateModelType]) | (() => import("./common/props").ModelValueType) | (((new (...args: any[]) => string | number | string[] | Date | [import("./common/props").DateModelType, import("./common/props").DateModelType]) | (() => import("./common/props").ModelValueType)) | null)[], unknown, unknown>;
197
198
  placement: import("vft/es/utils").EpPropMergeType<(new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("@popperjs/core").Placement) | (((new (...args: any[]) => "top" | "bottom" | "left" | "right" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => import("@popperjs/core").Placement)) | null)[], import("@popperjs/core").Placement, unknown>;
198
199
  tabindex: import("vft/es/utils").EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown>;
199
200
  readonly: boolean;
200
- placeholder: string;
201
201
  validateEvent: import("vft/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
202
202
  clearable: import("vft/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
203
203
  prefixIcon: import("vft/es/utils").EpPropMergeType<(new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component) | (((new (...args: any[]) => (string | import("vue").Component) & {}) | (() => string | import("vue").Component)) | null)[], unknown, unknown>;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),r=require("../icon/index.cjs");require("@vueuse/core");require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const a=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const s=e.defineComponent({name:"vft-timeline-item"}),i=e.defineComponent({...s,props:{timestamp:{},hideTimestamp:{type:Boolean,default:!1},center:{type:Boolean,default:!1},placement:{default:"bottom"},type:{},color:{},size:{default:"normal"},icon:{},hollow:{type:Boolean,default:!1}},setup(l){const o=a.useNamespace("timeline-item"),n=e.computed(()=>[o.e("node"),o.em("node",l.size||""),o.em("node",l.type||""),o.is("hollow",l.hollow)]);return(t,m)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass([e.unref(o).b(),{[e.unref(o).e("center")]:t.center}])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("tail"))},null,2),t.$slots.dot?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(n.value),style:e.normalizeStyle({backgroundColor:t.color})},[t.icon?.icon?(e.openBlock(),e.createBlock(e.unref(r.VftIcon),e.mergeProps({key:0},t.icon,{class:e.unref(o).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],6)),t.$slots.dot?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(o).e("dot"))},[e.renderSlot(t.$slots,"dot")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("wrapper"))},[!t.hideTimestamp&&t.placement==="top"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(o).e("timestamp"),e.unref(o).is("top")])},e.toDisplayString(t.timestamp),3)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(o).e("content"))},[e.renderSlot(t.$slots,"default")],2),!t.hideTimestamp&&t.placement==="bottom"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass([e.unref(o).e("timestamp"),e.unref(o).is("bottom")])},e.toDisplayString(t.timestamp),3)):e.createCommentVNode("",!0)],2)],2))}});exports.default=i;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),a=require("../icon/index.cjs");require("@vueuse/core");require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const r=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const s=e.defineComponent({name:"vft-timeline-item"}),i=e.defineComponent({...s,props:{timestamp:{},hideTimestamp:{type:Boolean,default:!1},center:{type:Boolean,default:!1},placement:{default:"bottom"},type:{},color:{},size:{default:"normal"},icon:{},hollow:{type:Boolean,default:!1}},setup(l){const t=r.useNamespace("timeline-item"),n=e.computed(()=>[t.e("node"),t.em("node",l.size||""),t.em("node",l.type||""),t.is("hollow",l.hollow)]);return(o,m)=>(e.openBlock(),e.createElementBlock("li",{class:e.normalizeClass([e.unref(t).b(),{[e.unref(t).e("center")]:l.center}])},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(t).e("tail"))},null,2),o.$slots.dot?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(n.value),style:e.normalizeStyle({backgroundColor:l.color})},[l.icon?.icon?(e.openBlock(),e.createBlock(e.unref(a.VftIcon),e.mergeProps({key:0},l.icon,{class:e.unref(t).e("icon")}),null,16,["class"])):e.createCommentVNode("",!0)],6)),o.$slots.dot?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(t).e("dot"))},[e.renderSlot(o.$slots,"dot")],2)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(t).e("wrapper"))},[!l.hideTimestamp&&l.placement==="top"?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass([e.unref(t).e("timestamp"),e.unref(t).is("top")])},e.toDisplayString(l.timestamp),3)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(e.unref(t).e("content"))},[e.renderSlot(o.$slots,"default")],2),!l.hideTimestamp&&l.placement==="bottom"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass([e.unref(t).e("timestamp"),e.unref(t).is("bottom")])},e.toDisplayString(l.timestamp),3)):e.createCommentVNode("",!0)],2)],2))}});exports.default=i;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../focus-trap/focus-trap.vue2.cjs");const j=require("../focus-trap/utils.cjs"),v=require("@vueuse/core");require("@vft/utils");const g=require("../../utils/event.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const z=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");const D=require("../../hooks/use-popper-container/index.cjs");require("../../hooks/use-z-index/index.cjs");require("../popper/index.cjs");const F=require("../teleport/index.cjs"),U=require("./constants.cjs"),W=require("../popper/content.vue2.cjs"),J=e.defineComponent({name:"VftTooltipContent",inheritAttrs:!1}),K=e.defineComponent({...J,props:{boundariesPadding:{default:0},fallbackPlacements:{},gpuAcceleration:{type:Boolean,default:!0},offset:{default:12},placement:{default:"bottom"},popperOptions:{default:()=>({})},strategy:{default:"absolute"},style:{type:[Boolean,null,String,Object,Array]},className:{},effect:{default:"dark"},enterable:{type:Boolean,default:!0},pure:{type:Boolean},focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{},popperStyle:{type:[Boolean,null,String,Object,Array]},referenceEl:{},triggerTargetEl:{},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:{type:Boolean},zIndex:{},showAfter:{default:0},hideAfter:{default:200},appendTo:{},content:{default:""},rawContent:{type:Boolean,default:!1},persistent:{type:Boolean},ariaLabel:{},visible:{type:Boolean,default:null},transition:{},teleported:{type:Boolean,default:!0},disabled:{type:Boolean},arrowOffset:{default:5}},setup(n,{expose:m}){const{selector:y}=D.usePopperContainerId(),b=z.useNamespace("tooltip"),r=e.ref(null),C=e.computed(()=>r.value?.popperContentRef);let a;const{controlled:p,id:h,open:l,trigger:s,onClose:o,onOpen:B,onShow:E,onHide:T,onBeforeShow:q,onBeforeHide:w}=e.inject(U.TOOLTIP_INJECTION_KEY,void 0),S=e.computed(()=>n.transition||`${b.namespace.value}-fade-in-linear`),O=e.computed(()=>process.env.NODE_ENV==="test"&&!process.env.RUN_TEST_WITH_PERSISTENT?!0:process.env.NODE_ENV==="development"&&!v.isClient?!1:n.persistent);e.onBeforeUnmount(()=>{a?.()});const k=e.computed(()=>e.unref(O)?!0:e.unref(l)),f=e.computed(()=>n.disabled?!1:e.unref(l)),N=e.computed(()=>n.appendTo||y.value),P=e.computed(()=>n.style??{}),u=e.ref(!0),A=()=>{T(),c()&&j.tryFocus(document.body),u.value=!0},d=()=>{if(e.unref(p))return!0},I=g.composeEventHandlers(d,()=>{n.enterable&&e.unref(s)==="hover"&&B()}),R=g.composeEventHandlers(d,()=>{e.unref(s)==="hover"&&o()}),H=()=>{r.value?.updatePopper?.(),q?.()},L=()=>{w?.()},M=()=>{E()},$=()=>{n.virtualTriggering||o()},c=t=>{const i=r.value?.popperContentRef,V=t?.relatedTarget||document.activeElement;return i?.contains(V)};return e.watch(()=>e.unref(l),t=>{t?(u.value=!1,a=v.onClickOutside(C,()=>{if(e.unref(p))return;e.unref(s)!=="hover"&&o()})):a?.()},{flush:"post"}),e.watch(()=>n.content,()=>{r.value?.updatePopper?.()}),m({contentRef:r,isFocusInsideContent:c}),(t,i)=>(e.openBlock(),e.createBlock(e.unref(F.VftTeleport),{disabled:!t.teleported,to:N.value},{default:e.withCtx(()=>[e.createVNode(e.Transition,{name:S.value,onAfterLeave:A,onBeforeEnter:H,onAfterEnter:M,onBeforeLeave:L},{default:e.withCtx(()=>[k.value?e.withDirectives((e.openBlock(),e.createBlock(e.unref(W.default),e.mergeProps({key:0,id:e.unref(h),ref_key:"contentRef",ref:r},t.$attrs,{"aria-label":t.ariaLabel,"aria-hidden":u.value,"boundaries-padding":t.boundariesPadding,"fallback-placements":t.fallbackPlacements,"gpu-acceleration":t.gpuAcceleration,offset:t.offset,placement:t.placement,"popper-options":t.popperOptions,"arrow-offset":t.arrowOffset,strategy:t.strategy,effect:t.effect,enterable:t.enterable,pure:t.pure,"popper-class":t.popperClass,"popper-style":[t.popperStyle,P.value],"reference-el":t.referenceEl,"trigger-target-el":t.triggerTargetEl,visible:f.value,"z-index":t.zIndex,onMouseenter:e.unref(I),onMouseleave:e.unref(R),onBlur:$,onClose:e.unref(o)}),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","arrow-offset","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[e.vShow,f.value]]):e.createCommentVNode("",!0)]),_:3},8,["name"])]),_:3},8,["disabled","to"]))}});exports.default=K;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../focus-trap/focus-trap.vue2.cjs");const V=require("../focus-trap/utils.cjs"),v=require("@vueuse/core");require("@vft/utils");const g=require("../../utils/event.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const j=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");const z=require("../../hooks/use-popper-container/index.cjs");require("../../hooks/use-z-index/index.cjs");require("../popper/index.cjs");const D=require("../teleport/index.cjs"),F=require("./constants.cjs"),U=require("../popper/content.vue2.cjs"),W=e.defineComponent({name:"VftTooltipContent",inheritAttrs:!1}),J=e.defineComponent({...W,props:{boundariesPadding:{default:0},fallbackPlacements:{},gpuAcceleration:{type:Boolean,default:!0},offset:{default:12},placement:{default:"bottom"},popperOptions:{default:()=>({})},strategy:{default:"absolute"},style:{type:[Boolean,null,String,Object,Array]},className:{},effect:{default:"dark"},enterable:{type:Boolean,default:!0},pure:{type:Boolean},focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{},popperStyle:{type:[Boolean,null,String,Object,Array]},referenceEl:{},triggerTargetEl:{},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:{type:Boolean},zIndex:{},showAfter:{default:0},hideAfter:{default:200},appendTo:{},content:{default:""},rawContent:{type:Boolean,default:!1},persistent:{type:Boolean},ariaLabel:{},visible:{type:Boolean,default:null},transition:{},teleported:{type:Boolean,default:!0},disabled:{type:Boolean},arrowOffset:{default:5}},setup(t,{expose:m}){const{selector:y}=z.usePopperContainerId(),b=j.useNamespace("tooltip"),n=e.ref(null),C=e.computed(()=>n.value?.popperContentRef);let a;const{controlled:c,id:h,open:l,trigger:u,onClose:o,onOpen:B,onShow:E,onHide:T,onBeforeShow:q,onBeforeHide:w}=e.inject(F.TOOLTIP_INJECTION_KEY,void 0),S=e.computed(()=>t.transition||`${b.namespace.value}-fade-in-linear`),O=e.computed(()=>process.env.NODE_ENV==="test"&&!process.env.RUN_TEST_WITH_PERSISTENT?!0:process.env.NODE_ENV==="development"&&!v.isClient?!1:t.persistent);e.onBeforeUnmount(()=>{a?.()});const k=e.computed(()=>e.unref(O)?!0:e.unref(l)),f=e.computed(()=>t.disabled?!1:e.unref(l)),N=e.computed(()=>t.appendTo||y.value),P=e.computed(()=>t.style??{}),i=e.ref(!0),x=()=>{T(),p()&&V.tryFocus(document.body),i.value=!0},d=()=>{if(e.unref(c))return!0},A=g.composeEventHandlers(d,()=>{t.enterable&&e.unref(u)==="hover"&&B()}),I=g.composeEventHandlers(d,()=>{e.unref(u)==="hover"&&o()}),R=()=>{n.value?.updatePopper?.(),q?.()},H=()=>{w?.()},L=()=>{E()},M=()=>{t.virtualTriggering||o()},p=r=>{const s=n.value?.popperContentRef,$=r?.relatedTarget||document.activeElement;return s?.contains($)};return e.watch(()=>e.unref(l),r=>{r?(i.value=!1,a=v.onClickOutside(C,()=>{if(e.unref(c))return;e.unref(u)!=="hover"&&o()})):a?.()},{flush:"post"}),e.watch(()=>t.content,()=>{n.value?.updatePopper?.()}),m({contentRef:n,isFocusInsideContent:p}),(r,s)=>(e.openBlock(),e.createBlock(e.unref(D.VftTeleport),{disabled:!t.teleported,to:N.value},{default:e.withCtx(()=>[e.createVNode(e.Transition,{name:S.value,onAfterLeave:x,onBeforeEnter:R,onAfterEnter:L,onBeforeLeave:H},{default:e.withCtx(()=>[k.value?e.withDirectives((e.openBlock(),e.createBlock(e.unref(U.default),e.mergeProps({key:0,id:e.unref(h),ref_key:"contentRef",ref:n},r.$attrs,{"aria-label":t.ariaLabel,"aria-hidden":i.value,"boundaries-padding":t.boundariesPadding,"fallback-placements":t.fallbackPlacements,"gpu-acceleration":t.gpuAcceleration,offset:t.offset,placement:t.placement,"popper-options":t.popperOptions,"arrow-offset":t.arrowOffset,strategy:t.strategy,effect:t.effect,enterable:t.enterable,pure:t.pure,"popper-class":t.popperClass,"popper-style":[t.popperStyle,P.value],"reference-el":t.referenceEl,"trigger-target-el":t.triggerTargetEl,visible:f.value,"z-index":t.zIndex,onMouseenter:e.unref(A),onMouseleave:e.unref(I),onBlur:M,onClose:e.unref(o)}),{default:e.withCtx(()=>[e.renderSlot(r.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","arrow-offset","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","onMouseenter","onMouseleave","onClose"])),[[e.vShow,f.value]]):e.createCommentVNode("",!0)]),_:3},8,["name"])]),_:3},8,["disabled","to"]))}});exports.default=J;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),k=require("../popper/index.cjs");require("@vueuse/core");const T=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const q=require("../../hooks/use-id/index.cjs"),E=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");const O=require("../../hooks/use-popper-container/index.cjs");require("../../hooks/use-z-index/index.cjs");const A=require("../../hooks/use-delayed-toggle/index.cjs"),d=require("@vft/constants"),R=require("./constants.cjs"),S=require("./content.vue2.cjs"),N=require("./trigger.vue2.cjs"),I=require("./utils.cjs"),P=require("../popper/arrow.vue2.cjs"),V=["innerHTML"],$={key:1},M=t.defineComponent({name:"VftTooltip"}),D=t.defineComponent({...M,props:{role:{default:"tooltip"},showArrow:{type:Boolean,default:!0},arrowOffset:{default:5},virtualRef:{},virtualTriggering:{type:Boolean},onMouseenter:{},onMouseleave:{},onClick:{},onKeydown:{},onFocus:{},onBlur:{},onContextmenu:{},id:{},open:{type:Boolean},boundariesPadding:{default:0},fallbackPlacements:{},gpuAcceleration:{type:Boolean,default:!0},offset:{default:12},placement:{default:"bottom"},popperOptions:{default:()=>({})},strategy:{default:"absolute"},style:{type:[Boolean,null,String,Object,Array]},className:{},effect:{default:"dark"},visible:{type:[Boolean,null],default:null},enterable:{type:Boolean,default:!0},pure:{type:Boolean},focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{},popperStyle:{type:[Boolean,null,String,Object,Array]},referenceEl:{},triggerTargetEl:{},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{},zIndex:{},showAfter:{default:0},hideAfter:{default:200},appendTo:{},content:{default:""},rawContent:{type:Boolean,default:!1},persistent:{type:Boolean},transition:{},teleported:{type:Boolean,default:!0},disabled:{type:Boolean},trigger:{default:"hover"},triggerKeys:{default:()=>[d.EVENT_CODE.enter,d.EVENT_CODE.numpadEnter,d.EVENT_CODE.space]}},emits:["before-show","before-hide","show","hide","open","close"],setup(l,{expose:c,emit:y}){const n=y;O.usePopperContainer();const b=E.useNamespace("tooltip"),h=q.useId(),s=t.ref(),i=t.ref(),g=()=>{const e=t.unref(s);e&&e.popperInstanceRef?.update()},r=t.ref(!1),o=t.ref(),{show:v,hide:p,hasUpdateHandler:w}=I.useTooltipModelToggle({indicator:r,toggleReason:o}),a=t.getCurrentInstance(),{onOpen:u,onClose:f}=A.useDelayedToggle({showAfter:t.toRef(a.props,"showAfter"),hideAfter:t.toRef(a.props,"hideAfter"),autoClose:t.toRef(a.props,"autoClose"),open:v,close:p}),m=t.computed(()=>T.isBoolean(l.visible)&&!w.value),B=t.computed(()=>[b.b(),l.popperClass]);t.provide(R.TOOLTIP_INJECTION_KEY,{controlled:m,id:h,open:t.readonly(r),trigger:t.toRef(a.props,"trigger"),onOpen:e=>{u(e)},onClose:e=>{f(e)},onToggle:e=>{t.unref(r)?f(e):u(e)},onShow:()=>{n("show",o.value)},onHide:()=>{n("hide",o.value)},onBeforeShow:()=>{n("before-show",o.value)},onBeforeHide:()=>{n("before-hide",o.value)},updatePopper:g}),t.watch(()=>l.disabled,e=>{e&&r.value&&(r.value=!1)});const C=e=>i.value?.isFocusInsideContent(e);return t.onDeactivated(()=>r.value&&p()),c({popperRef:s,contentRef:i,isFocusInsideContent:C,updatePopper:g,onOpen:u,onClose:f,hide:p}),(e,H)=>(t.openBlock(),t.createBlock(t.unref(k.VftPopper),{ref_key:"popperRef",ref:s,role:e.role},{default:t.withCtx(()=>[t.createVNode(N.default,{disabled:e.disabled,trigger:e.trigger,"trigger-keys":e.triggerKeys,"virtual-ref":e.virtualRef,"virtual-triggering":e.virtualTriggering},{default:t.withCtx(()=>[e.$slots.default?t.renderSlot(e.$slots,"default",{key:0}):t.createCommentVNode("",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),t.createVNode(S.default,{ref_key:"contentRef",ref:i,"aria-label":e.ariaLabel,"boundaries-padding":e.boundariesPadding,content:e.content,disabled:e.disabled,effect:e.effect,enterable:e.enterable,"fallback-placements":e.fallbackPlacements,"hide-after":e.hideAfter,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,persistent:e.persistent,"popper-class":B.value,"popper-style":e.popperStyle,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,pure:e.pure,"raw-content":e.rawContent,"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,"show-after":e.showAfter,strategy:e.strategy,teleported:e.teleported,transition:e.transition,"virtual-triggering":e.virtualTriggering,"z-index":e.zIndex,"append-to":e.appendTo},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"content",{},()=>[e.rawContent?(t.openBlock(),t.createElementBlock("span",{key:0,innerHTML:e.content},null,8,V)):(t.openBlock(),t.createElementBlock("span",$,t.toDisplayString(e.content),1))]),e.showArrow?(t.openBlock(),t.createBlock(t.unref(P.default),{key:0,"arrow-offset":e.arrowOffset},null,8,["arrow-offset"])):t.createCommentVNode("",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","arrow-offset","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});exports.default=D;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue"),k=require("../popper/index.cjs");require("@vueuse/core");const T=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const q=require("../../hooks/use-id/index.cjs"),E=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");const O=require("../../hooks/use-popper-container/index.cjs");require("../../hooks/use-z-index/index.cjs");const A=require("../../hooks/use-delayed-toggle/index.cjs"),c=require("@vft/constants"),x=require("./constants.cjs"),R=require("./content.vue2.cjs"),S=require("./trigger.vue2.cjs"),N=require("./utils.cjs"),I=require("../popper/arrow.vue2.cjs"),P=["innerHTML"],V={key:1},$=t.defineComponent({name:"VftTooltip"}),M=t.defineComponent({...$,props:{role:{default:"tooltip"},showArrow:{type:Boolean,default:!0},arrowOffset:{default:5},virtualRef:{},virtualTriggering:{type:Boolean},onMouseenter:{},onMouseleave:{},onClick:{},onKeydown:{},onFocus:{},onBlur:{},onContextmenu:{},id:{},open:{type:Boolean},boundariesPadding:{default:0},fallbackPlacements:{},gpuAcceleration:{type:Boolean,default:!0},offset:{default:12},placement:{default:"bottom"},popperOptions:{default:()=>({})},strategy:{default:"absolute"},style:{type:[Boolean,null,String,Object,Array]},className:{},effect:{default:"dark"},visible:{type:[Boolean,null],default:null},enterable:{type:Boolean,default:!0},pure:{type:Boolean},focusOnShow:{type:Boolean,default:!1},trapping:{type:Boolean,default:!1},popperClass:{},popperStyle:{type:[Boolean,null,String,Object,Array]},referenceEl:{},triggerTargetEl:{},stopPopperMouseEvent:{type:Boolean,default:!0},ariaLabel:{},zIndex:{},showAfter:{default:0},hideAfter:{default:200},appendTo:{},content:{default:""},rawContent:{type:Boolean,default:!1},persistent:{type:Boolean},transition:{},teleported:{type:Boolean,default:!0},disabled:{type:Boolean},trigger:{default:"hover"},triggerKeys:{default:()=>[c.EVENT_CODE.enter,c.EVENT_CODE.numpadEnter,c.EVENT_CODE.space]}},emits:["before-show","before-hide","show","hide","open","close"],setup(e,{expose:p,emit:y}){const a=y;O.usePopperContainer();const b=E.useNamespace("tooltip"),h=q.useId(),i=t.ref(),u=t.ref(),g=()=>{const r=t.unref(i);r&&r.popperInstanceRef?.update()},n=t.ref(!1),o=t.ref(),{show:v,hide:s,hasUpdateHandler:w}=N.useTooltipModelToggle({indicator:n,toggleReason:o}),l=t.getCurrentInstance(),{onOpen:f,onClose:d}=A.useDelayedToggle({showAfter:t.toRef(l.props,"showAfter"),hideAfter:t.toRef(l.props,"hideAfter"),autoClose:t.toRef(l.props,"autoClose"),open:v,close:s}),m=t.computed(()=>T.isBoolean(e.visible)&&!w.value),B=t.computed(()=>[b.b(),e.popperClass]);t.provide(x.TOOLTIP_INJECTION_KEY,{controlled:m,id:h,open:t.readonly(n),trigger:t.toRef(l.props,"trigger"),onOpen:r=>{f(r)},onClose:r=>{d(r)},onToggle:r=>{t.unref(n)?d(r):f(r)},onShow:()=>{a("show",o.value)},onHide:()=>{a("hide",o.value)},onBeforeShow:()=>{a("before-show",o.value)},onBeforeHide:()=>{a("before-hide",o.value)},updatePopper:g}),t.watch(()=>e.disabled,r=>{r&&n.value&&(n.value=!1)});const C=r=>u.value?.isFocusInsideContent(r);return t.onDeactivated(()=>n.value&&s()),p({popperRef:i,contentRef:u,isFocusInsideContent:C,updatePopper:g,onOpen:f,onClose:d,hide:s}),(r,D)=>(t.openBlock(),t.createBlock(t.unref(k.VftPopper),{ref_key:"popperRef",ref:i,role:e.role},{default:t.withCtx(()=>[t.createVNode(S.default,{disabled:e.disabled,trigger:e.trigger,"trigger-keys":e.triggerKeys,"virtual-ref":e.virtualRef,"virtual-triggering":e.virtualTriggering},{default:t.withCtx(()=>[r.$slots.default?t.renderSlot(r.$slots,"default",{key:0}):t.createCommentVNode("",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering"]),t.createVNode(R.default,{ref_key:"contentRef",ref:u,"aria-label":e.ariaLabel,"boundaries-padding":e.boundariesPadding,content:e.content,disabled:e.disabled,effect:e.effect,enterable:e.enterable,"fallback-placements":e.fallbackPlacements,"hide-after":e.hideAfter,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,persistent:e.persistent,"popper-class":B.value,"popper-style":e.popperStyle,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,pure:e.pure,"raw-content":e.rawContent,"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,"show-after":e.showAfter,strategy:e.strategy,teleported:e.teleported,transition:e.transition,"virtual-triggering":e.virtualTriggering,"z-index":e.zIndex,"append-to":e.appendTo},{default:t.withCtx(()=>[t.renderSlot(r.$slots,"content",{},()=>[e.rawContent?(t.openBlock(),t.createElementBlock("span",{key:0,innerHTML:e.content},null,8,P)):(t.openBlock(),t.createElementBlock("span",V,t.toDisplayString(e.content),1))]),e.showArrow?(t.openBlock(),t.createBlock(t.unref(I.default),{key:0,"arrow-offset":e.arrowOffset},null,8,["arrow-offset"])):t.createCommentVNode("",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","arrow-offset","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to"])]),_:3},8,["role"]))}});exports.default=M;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),g=require("@vft/constants");require("../popper/index.cjs");require("@vueuse/core");require("@vft/utils");const t=require("../../utils/event.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const M=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const O=require("./constants.cjs"),u=require("./utils.cjs"),B=require("../popper/trigger.vue2.cjs"),H=e.defineComponent({name:"VftTooltipTrigger"}),b=e.defineComponent({...H,props:{disabled:{type:Boolean},trigger:{default:"hover"},triggerKeys:{default:()=>[g.EVENT_CODE.enter,g.EVENT_CODE.space]},virtualRef:{},virtualTriggering:{type:Boolean}},setup(r,{expose:a}){const d=M.useNamespace("tooltip"),{controlled:f,id:v,open:m,onOpen:s,onClose:l,onToggle:i}=e.inject(O.TOOLTIP_INJECTION_KEY,void 0),p=e.ref(null),o=()=>{if(e.unref(f)||r.disabled)return!0},T=t.composeEventHandlers(o,u.whenTrigger(r.trigger,"hover",s)),q=t.composeEventHandlers(o,u.whenTrigger(r.trigger,"hover",l)),C=t.composeEventHandlers(o,u.whenTrigger(r.trigger,"click",n=>{n.button===0&&i(n)})),E=t.composeEventHandlers(o,u.whenTrigger(r.trigger,"focus",s)),h=t.composeEventHandlers(o,u.whenTrigger(r.trigger,"focus",l)),w=t.composeEventHandlers(o,u.whenTrigger(r.trigger,"contextmenu",n=>{n.preventDefault(),i(n)})),y=t.composeEventHandlers(o,n=>{const{code:c}=n;r.triggerKeys.includes(c)&&(n.preventDefault(),i(n))});return a({triggerRef:p}),(n,c)=>(e.openBlock(),e.createBlock(e.unref(B.default),{id:e.unref(v),"virtual-ref":n.virtualRef,open:e.unref(m),"virtual-triggering":n.virtualTriggering,class:e.normalizeClass(e.unref(d).e("trigger")),onBlur:e.unref(h),onClick:e.unref(C),onContextmenu:e.unref(w),onFocus:e.unref(E),onMouseenter:e.unref(T),onMouseleave:e.unref(q),onKeydown:e.unref(y)},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});exports.default=b;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),g=require("@vft/constants");require("../popper/index.cjs");require("@vueuse/core");require("@vft/utils");const o=require("../../utils/event.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");require("../form/index.cjs");const M=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const O=require("./constants.cjs"),u=require("./utils.cjs"),x=require("../popper/trigger.vue2.cjs"),B=e.defineComponent({name:"VftTooltipTrigger"}),H=e.defineComponent({...B,props:{disabled:{type:Boolean},trigger:{default:"hover"},triggerKeys:{default:()=>[g.EVENT_CODE.enter,g.EVENT_CODE.space]},virtualRef:{},virtualTriggering:{type:Boolean}},setup(r,{expose:a}){const d=M.useNamespace("tooltip"),{controlled:f,id:v,open:m,onOpen:s,onClose:l,onToggle:i}=e.inject(O.TOOLTIP_INJECTION_KEY,void 0),T=e.ref(null),t=()=>{if(e.unref(f)||r.disabled)return!0},q=o.composeEventHandlers(t,u.whenTrigger(r.trigger,"hover",s)),C=o.composeEventHandlers(t,u.whenTrigger(r.trigger,"hover",l)),E=o.composeEventHandlers(t,u.whenTrigger(r.trigger,"click",n=>{n.button===0&&i(n)})),p=o.composeEventHandlers(t,u.whenTrigger(r.trigger,"focus",s)),h=o.composeEventHandlers(t,u.whenTrigger(r.trigger,"focus",l)),w=o.composeEventHandlers(t,u.whenTrigger(r.trigger,"contextmenu",n=>{n.preventDefault(),i(n)})),y=o.composeEventHandlers(t,n=>{const{code:c}=n;r.triggerKeys.includes(c)&&(n.preventDefault(),i(n))});return a({triggerRef:T}),(n,c)=>(e.openBlock(),e.createBlock(e.unref(x.default),{id:e.unref(v),"virtual-ref":r.virtualRef,open:e.unref(m),"virtual-triggering":r.virtualTriggering,class:e.normalizeClass(e.unref(d).e("trigger")),onBlur:e.unref(h),onClick:e.unref(E),onContextmenu:e.unref(w),onFocus:e.unref(p),onMouseenter:e.unref(q),onMouseleave:e.unref(C),onKeydown:e.unref(y)},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});exports.default=H;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("vue");require("../form/index.cjs");require("../icon/index.cjs");require("@vueuse/core");require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const F=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const L=require("./model/tree-store.cjs"),R=require("./model/useDragNode.cjs"),U=require("./model/useKeydown.cjs"),G=require("./model/useNodeExpandEventBroadcast.cjs"),h=require("./model/util.cjs"),J=require("./tree-node.vue.cjs"),Q=require("../form/constants.cjs"),W=r.defineComponent({__name:"tree",props:{data:{default:[]},emptyText:{},renderAfterExpand:{type:Boolean,default:!0},nodeKey:{},checkStrictly:{type:Boolean},defaultExpandAll:{type:Boolean},expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:{type:Boolean},checkDescendants:{type:Boolean},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:{},defaultExpandedKeys:{},currentNodeKey:{},renderContent:{},showCheckbox:{type:Boolean},draggable:{type:Boolean},allowDrag:{},allowDrop:{},props:{default:{children:"children",label:"label",disabled:"disabled"}},lazy:{type:Boolean},highlightCurrent:{type:Boolean},load:{},filterNodeMethod:{},accordion:{type:Boolean},indent:{default:18},icon:{}},emits:["check-change","current-change","node-click","node-contextmenu","node-collapse","node-expand","check","node-drag-start","node-drag-end","node-drop","node-drag-leave","node-drag-enter","node-drag-over"],setup(g,{expose:k,emit:N}){const t=g,u=N,p=r.getCurrentInstance(),a=F.useNamespace("tree"),n=r.ref(new L.default({key:t.nodeKey,data:t.data,lazy:t.lazy,props:t.props,load:t.load,currentNodeKey:t.currentNodeKey,checkStrictly:t.checkStrictly,checkDescendants:t.checkDescendants,defaultCheckedKeys:t.defaultCheckedKeys,defaultExpandedKeys:t.defaultExpandedKeys,autoExpandParent:t.autoExpandParent,defaultExpandAll:t.defaultExpandAll,filterNodeMethod:t.filterNodeMethod}));n.value.initialize();const s=r.ref(n.value.root),v=r.ref(null),i=r.ref(null),y=r.ref(null),{broadcastExpanded:w}=G.useNodeExpandEventBroadcast(t),{dragState:c}=R.useDragNodeHandler({props:t,ctx:p,el$:i,dropIndicator$:y,store:n});U.useKeydown({el$:i},n);const E=r.computed(()=>{const{childNodes:e}=s.value;return!e||e.length===0||e.every(({visible:o})=>!o)});r.watch(()=>t.currentNodeKey,e=>{n.value.setCurrentNodeKey(e)}),r.watch(()=>t.defaultCheckedKeys,e=>{n.value.setDefaultCheckedKey(e)}),r.watch(()=>t.defaultExpandedKeys,e=>{n.value.setDefaultExpandedKeys(e)}),r.watch(()=>t.data,e=>{n.value.setData(e)},{deep:!0}),r.watch(()=>t.checkStrictly,e=>{n.value.checkStrictly=e});const m=e=>{if(!t.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");n.value.filter(e)},f=e=>h.getNodeKey(t.nodeKey,e.data),x=e=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");const o=n.value.getNode(e);if(!o)return[];const d=[o.data];let l=o.parent;for(;l&&l!==s.value;)d.push(l.data),l=l.parent;return d.reverse()},q=(e,o)=>n.value.getCheckedNodes(e,o),B=e=>n.value.getCheckedKeys(e),C=()=>{const e=n.value.getCurrentNode();return e?e.data:null},b=()=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");const e=C();return e?e[t.nodeKey]:null},D=(e,o)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");n.value.setCheckedNodes(e,o)},T=(e,o)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");n.value.setCheckedKeys(e,o)},S=(e,o,d)=>{n.value.setChecked(e,o,d)},z=()=>n.value.getHalfCheckedNodes(),A=()=>n.value.getHalfCheckedKeys(),M=(e,o=!0)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");h.handleCurrentChange(n,u,()=>n.value.setUserCurrentNode(e,o))},I=(e,o=!0)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");h.handleCurrentChange(n,u,()=>n.value.setCurrentNodeKey(e,o))},P=e=>n.value.getNode(e),H=e=>{n.value.remove(e)},$=(e,o)=>{n.value.append(e,o)},O=(e,o)=>{n.value.insertBefore(e,o)},V=(e,o)=>{n.value.insertAfter(e,o)},K=(e,o,d)=>{w(o),u("node-expand",e,o,d)},_=(e,o)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");n.value.updateChildren(e,o)},j=(e,o)=>{if(!t.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");n.value.updateNode(e,o)};return r.provide("RootTree",{ctx:p,props:t,store:n,root:s,currentNode:v,instance:r.getCurrentInstance()}),r.provide(Q.formItemContextKey,void 0),k({filter:m,getNodeKey:f,getNodePath:x,getCheckedNodes:q,getCheckedKeys:B,getCurrentNode:C,getCurrentKey:b,setCheckedNodes:D,setCheckedKeys:T,setChecked:S,getHalfCheckedNodes:z,getHalfCheckedKeys:A,setCurrentNode:M,setCurrentKey:I,getNode:P,remove:H,append:$,insertBefore:O,insertAfter:V,handleNodeExpand:K,updateKeyChildren:_,updateNode:j}),(e,o)=>(r.openBlock(),r.createElementBlock("div",{ref_key:"el$",ref:i,class:r.normalizeClass([r.unref(a).b(),r.unref(a).is("dragging",!!r.unref(c).draggingNode),r.unref(a).is("drop-not-allow",!r.unref(c).allowDrop),r.unref(a).is("drop-inner",r.unref(c).dropType==="inner"),{[r.unref(a).m("highlight-current")]:e.highlightCurrent}]),role:"tree"},[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(s.value.childNodes,d=>(r.openBlock(),r.createBlock(J.default,{key:f(d),node:d,props:t,accordion:e.accordion,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,"render-content":e.renderContent,onNodeExpand:K},null,8,["node","accordion","render-after-expand","show-checkbox","render-content"]))),128)),E.value?(r.openBlock(),r.createElementBlock("div",{key:0,class:r.normalizeClass(r.unref(a).e("empty-block"))},[r.renderSlot(e.$slots,"empty",{},()=>[r.createElementVNode("span",{class:r.normalizeClass(r.unref(a).e("empty-text"))},r.toDisplayString(e.emptyText??"暂无数据"),3)])],2)):r.createCommentVNode("",!0),r.withDirectives(r.createElementVNode("div",{ref_key:"dropIndicator$",ref:y,class:r.normalizeClass(r.unref(a).e("drop-indicator"))},null,2),[[r.vShow,r.unref(c).showDropIndicator]])],2))}});exports.default=W;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("../form/index.cjs");require("../icon/index.cjs");require("@vueuse/core");require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const L=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const R=require("./model/tree-store.cjs"),U=require("./model/useDragNode.cjs"),G=require("./model/useKeydown.cjs"),J=require("./model/useNodeExpandEventBroadcast.cjs"),y=require("./model/util.cjs"),Q=require("./tree-node.vue.cjs"),W=require("../form/constants.cjs"),X=t.defineComponent({__name:"tree",props:{data:{default:[]},emptyText:{},renderAfterExpand:{type:Boolean,default:!0},nodeKey:{},checkStrictly:{type:Boolean},defaultExpandAll:{type:Boolean},expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:{type:Boolean},checkDescendants:{type:Boolean},autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:{},defaultExpandedKeys:{},currentNodeKey:{},renderContent:{},showCheckbox:{type:Boolean},draggable:{type:Boolean},allowDrag:{},allowDrop:{},props:{default:{children:"children",label:"label",disabled:"disabled"}},lazy:{type:Boolean},highlightCurrent:{type:Boolean},load:{},filterNodeMethod:{},accordion:{type:Boolean},indent:{default:18},icon:{}},emits:["check-change","current-change","node-click","node-contextmenu","node-collapse","node-expand","check","node-drag-start","node-drag-end","node-drop","node-drag-leave","node-drag-enter","node-drag-over"],setup(l,{expose:k,emit:N}){const r=l,i=N,p=t.getCurrentInstance(),a=L.useNamespace("tree"),n=t.ref(new R.default({key:r.nodeKey,data:r.data,lazy:r.lazy,props:r.props,load:r.load,currentNodeKey:r.currentNodeKey,checkStrictly:r.checkStrictly,checkDescendants:r.checkDescendants,defaultCheckedKeys:r.defaultCheckedKeys,defaultExpandedKeys:r.defaultExpandedKeys,autoExpandParent:r.autoExpandParent,defaultExpandAll:r.defaultExpandAll,filterNodeMethod:r.filterNodeMethod}));n.value.initialize();const s=t.ref(n.value.root),v=t.ref(null),h=t.ref(null),f=t.ref(null),{broadcastExpanded:w}=J.useNodeExpandEventBroadcast(r),{dragState:u}=U.useDragNodeHandler({props:r,ctx:p,el$:h,dropIndicator$:f,store:n});G.useKeydown({el$:h},n);const x=t.computed(()=>{const{childNodes:e}=s.value;return!e||e.length===0||e.every(({visible:o})=>!o)});t.watch(()=>r.currentNodeKey,e=>{n.value.setCurrentNodeKey(e)}),t.watch(()=>r.defaultCheckedKeys,e=>{n.value.setDefaultCheckedKey(e)}),t.watch(()=>r.defaultExpandedKeys,e=>{n.value.setDefaultExpandedKeys(e)}),t.watch(()=>r.data,e=>{n.value.setData(e)},{deep:!0}),t.watch(()=>r.checkStrictly,e=>{n.value.checkStrictly=e});const E=e=>{if(!r.filterNodeMethod)throw new Error("[Tree] filterNodeMethod is required when filter");n.value.filter(e)},C=e=>y.getNodeKey(r.nodeKey,e.data),m=e=>{if(!r.nodeKey)throw new Error("[Tree] nodeKey is required in getNodePath");const o=n.value.getNode(e);if(!o)return[];const d=[o.data];let c=o.parent;for(;c&&c!==s.value;)d.push(c.data),c=c.parent;return d.reverse()},q=(e,o)=>n.value.getCheckedNodes(e,o),B=e=>n.value.getCheckedKeys(e),K=()=>{const e=n.value.getCurrentNode();return e?e.data:null},b=()=>{if(!r.nodeKey)throw new Error("[Tree] nodeKey is required in getCurrentKey");const e=K();return e?e[r.nodeKey]:null},D=(e,o)=>{if(!r.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedNodes");n.value.setCheckedNodes(e,o)},T=(e,o)=>{if(!r.nodeKey)throw new Error("[Tree] nodeKey is required in setCheckedKeys");n.value.setCheckedKeys(e,o)},S=(e,o,d)=>{n.value.setChecked(e,o,d)},z=()=>n.value.getHalfCheckedNodes(),A=()=>n.value.getHalfCheckedKeys(),M=(e,o=!0)=>{if(!r.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentNode");y.handleCurrentChange(n,i,()=>n.value.setUserCurrentNode(e,o))},I=(e,o=!0)=>{if(!r.nodeKey)throw new Error("[Tree] nodeKey is required in setCurrentKey");y.handleCurrentChange(n,i,()=>n.value.setCurrentNodeKey(e,o))},P=e=>n.value.getNode(e),H=e=>{n.value.remove(e)},$=(e,o)=>{n.value.append(e,o)},O=(e,o)=>{n.value.insertBefore(e,o)},V=(e,o)=>{n.value.insertAfter(e,o)},g=(e,o,d)=>{w(o),i("node-expand",e,o,d)},j=(e,o)=>{if(!r.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");n.value.updateChildren(e,o)},F=(e,o)=>{if(!r.nodeKey)throw new Error("[Tree] nodeKey is required in updateKeyChild");n.value.updateNode(e,o)};return t.provide("RootTree",{ctx:p,props:r,store:n,root:s,currentNode:v,instance:t.getCurrentInstance()}),t.provide(W.formItemContextKey,void 0),k({filter:E,getNodeKey:C,getNodePath:m,getCheckedNodes:q,getCheckedKeys:B,getCurrentNode:K,getCurrentKey:b,setCheckedNodes:D,setCheckedKeys:T,setChecked:S,getHalfCheckedNodes:z,getHalfCheckedKeys:A,setCurrentNode:M,setCurrentKey:I,getNode:P,remove:H,append:$,insertBefore:O,insertAfter:V,handleNodeExpand:g,updateKeyChildren:j,updateNode:F}),(e,o)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"el$",ref:h,class:t.normalizeClass([t.unref(a).b(),t.unref(a).is("dragging",!!t.unref(u).draggingNode),t.unref(a).is("drop-not-allow",!t.unref(u).allowDrop),t.unref(a).is("drop-inner",t.unref(u).dropType==="inner"),{[t.unref(a).m("highlight-current")]:l.highlightCurrent}]),role:"tree"},[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(s.value.childNodes,d=>(t.openBlock(),t.createBlock(Q.default,{key:C(d),node:d,props:r,accordion:l.accordion,"render-after-expand":l.renderAfterExpand,"show-checkbox":l.showCheckbox,"render-content":l.renderContent,onNodeExpand:g},null,8,["node","accordion","render-after-expand","show-checkbox","render-content"]))),128)),x.value?(t.openBlock(),t.createElementBlock("div",{key:0,class:t.normalizeClass(t.unref(a).e("empty-block"))},[t.renderSlot(e.$slots,"empty",{},()=>[t.createElementVNode("span",{class:t.normalizeClass(t.unref(a).e("empty-text"))},t.toDisplayString(l.emptyText??"暂无数据"),3)])],2)):t.createCommentVNode("",!0),t.withDirectives(t.createElementVNode("div",{ref_key:"dropIndicator$",ref:f,class:t.normalizeClass(t.unref(a).e("drop-indicator"))},null,2),[[t.vShow,t.unref(u).showDropIndicator]])],2))}});exports.default=X;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("../form/index.cjs");require("@vueuse/core");const C=require("@vft/utils"),D=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const k=require("lodash-es"),L=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const M=require("./ajax.cjs"),K=require("./constants.cjs"),V=require("./upload-dragger.vue2.cjs"),b=require("./utils.cjs"),H=require("../form/hooks/use-form-common-props.cjs"),W=require("../form/hooks/use-form-item.cjs"),$=["onKeydown"],A=["name","multiple","accept"],N=t.defineComponent({name:"VftUploadContent",inheritAttrs:!1}),X=t.defineComponent({...N,props:{fileList:{default:[]},replaceOnLimit:{type:Boolean,default:!1},action:{default:"#"},headers:{},method:{default:"post"},data:{},multiple:{type:Boolean,default:!1},name:{default:"file"},drag:{type:Boolean,default:!1},withCredentials:{type:Boolean},showFileList:{type:Boolean,default:!0},accept:{default:""},type:{default:"select"},autoUpload:{type:Boolean,default:!1},listType:{default:"text"},httpRequest:{type:Function,default:M.ajaxUpload},disabled:{type:Boolean},limit:{},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},sizeWidth:{default:void 0},sizeHeight:{default:void 0},onSizeInvalid:{},onTypeInvalid:{},beforeUpload:{},onRemove:{},onStart:{},onSuccess:{},onProgress:{},onError:{},onExceed:{},onSizeExceed:{}},setup(U,{expose:w}){const l=U,y=L.useNamespace("upload"),_=H.useFormDisabled(),{formItem:x}=W.useFormItem(),f=t.shallowRef({}),v=t.shallowRef(),B=async e=>{if(e.length===0)return;const{autoUpload:n,limit:a,fileList:s,multiple:p,onStart:h,onExceed:S,replaceOnLimit:z,maxSize:u,onSizeExceed:q,sizeWidth:m,sizeHeight:g,onSizeInvalid:d,accept:r,onTypeInvalid:c}=l;if(r){const i=e.filter(o=>!b.validateFileType(o,r));if(i.length>0&&(i.forEach(o=>{c&&c(o,r)}),e=e.filter(o=>b.validateFileType(o,r)),e.length===0))return}if(u){const i=e.filter(o=>o.size>u);if(i.length>0&&(i.forEach(o=>{q&&q(o,u)}),e=e.filter(o=>o.size<=u),e.length===0))return}if(m&&g){const i=[];for(const o of e)if(b.isImageOrVideo(o))try{const{isValid:E,width:P,height:j}=await b.validateFileSize(o,m,g);E?i.push(o):d&&d(o,P,j,m,g)}catch(E){console.error("尺寸校验失败:",E)}else i.push(o);if(e=i,e.length===0)return}if(a&&s&&s.length+e.length>a&&!(a===1&&z)){S?.(e,s);return}p||(e=e.slice(0,1));for(const i of e){const o=i;o.uid=K.genFileId(),h?.(o),n&&R(o)}},R=async e=>{if(v.value.value="",!l.beforeUpload)return I(e);let n,a={};try{const p=l.data,h=l.beforeUpload(e);a=C.isObject(l.data)?k.cloneDeep(l.data):l.data,n=await h,C.isObject(l.data)&&k.isEqual(p,a)&&(a=k.cloneDeep(l.data))}catch{n=!1}if(n===!1){l.onRemove?.(e);return}let s=e;n instanceof Blob&&(n instanceof File?s=n:s=new File([n],e.name,{type:e.type})),I(Object.assign(s,{uid:e.uid}),a)},I=(e,n)=>{const{headers:a,data:s,method:p,withCredentials:h,name:S,action:z,onProgress:u,onSuccess:q,onError:m,httpRequest:g}=l,{uid:d}=e,r={headers:a||{},withCredentials:h,file:e,data:n??(s||{}),method:p,filename:S,action:z,onProgress:i=>{u?.(i,e)},onSuccess:i=>{q?.(i,e),delete f.value[d]},onError:i=>{m?.(i,e),delete f.value[d]}},c=g(r);f.value[d]=c,c instanceof Promise&&c.then(r.onSuccess,r.onError)},F=async e=>{const n=e.target.files;n&&(await B(Array.from(n)),t.nextTick(()=>{x?.validate("change").catch(a=>D.debugWarn(a))}))},T=()=>{_.value||(v.value.value="",v.value.click())},O=()=>{T()};return w({abort:e=>{C.entriesOf(f.value).filter(e?([a])=>String(e.uid)===a:()=>!0).forEach(([a,s])=>{s instanceof XMLHttpRequest&&s.abort(),delete f.value[a]})},upload:R}),(e,n)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([t.unref(y).b(),t.unref(y).m(e.listType),t.unref(y).is("drag",e.drag)]),tabindex:"0",onClick:T,onKeydown:t.withKeys(t.withModifiers(O,["self"]),["enter","space"])},[e.drag?(t.openBlock(),t.createBlock(V.default,{key:0,disabled:t.unref(_),onFile:n[0]||(n[0]=a=>B(a.file))},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},8,["disabled"])):t.renderSlot(e.$slots,"default",{key:1}),t.createElementVNode("input",{ref_key:"inputRef",ref:v,class:t.normalizeClass(t.unref(y).e("input")),name:e.name,multiple:e.multiple,accept:e.accept,type:"file",onChange:F,onClick:n[1]||(n[1]=t.withModifiers(()=>{},["stop"]))},null,42,A)],42,$))}});exports.default=X;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");require("../form/index.cjs");require("@vueuse/core");const C=require("@vft/utils"),D=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");const k=require("lodash-es"),L=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const M=require("./ajax.cjs"),K=require("./constants.cjs"),V=require("./upload-dragger.vue2.cjs"),S=require("./utils.cjs"),H=require("../form/hooks/use-form-common-props.cjs"),W=require("../form/hooks/use-form-item.cjs"),$=["onKeydown"],A=["name","multiple","accept"],N=t.defineComponent({name:"VftUploadContent",inheritAttrs:!1}),X=t.defineComponent({...N,props:{fileList:{default:[]},replaceOnLimit:{type:Boolean,default:!1},action:{default:"#"},headers:{},method:{default:"post"},data:{},multiple:{type:Boolean,default:!1},name:{default:"file"},drag:{type:Boolean,default:!1},withCredentials:{type:Boolean},showFileList:{type:Boolean,default:!0},accept:{default:""},type:{default:"select"},autoUpload:{type:Boolean,default:!1},listType:{default:"text"},httpRequest:{type:Function,default:M.ajaxUpload},disabled:{type:Boolean},limit:{},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},sizeWidth:{default:void 0},sizeHeight:{default:void 0},onSizeInvalid:{},onTypeInvalid:{},beforeUpload:{},onRemove:{},onStart:{},onSuccess:{},onProgress:{},onError:{},onExceed:{},onSizeExceed:{}},setup(u,{expose:w}){const s=u,v=L.useNamespace("upload"),B=H.useFormDisabled(),{formItem:F}=W.useFormItem(),p=t.shallowRef({}),q=t.shallowRef(),R=async e=>{if(e.length===0)return;const{autoUpload:n,limit:a,fileList:l,multiple:h,onStart:m,onExceed:z,replaceOnLimit:E,maxSize:d,onSizeExceed:b,sizeWidth:g,sizeHeight:y,onSizeInvalid:c,accept:r,onTypeInvalid:f}=s;if(r){const i=e.filter(o=>!S.validateFileType(o,r));if(i.length>0&&(i.forEach(o=>{f&&f(o,r)}),e=e.filter(o=>S.validateFileType(o,r)),e.length===0))return}if(d){const i=e.filter(o=>o.size>d);if(i.length>0&&(i.forEach(o=>{b&&b(o,d)}),e=e.filter(o=>o.size<=d),e.length===0))return}if(g&&y){const i=[];for(const o of e)if(S.isImageOrVideo(o))try{const{isValid:x,width:_,height:j}=await S.validateFileSize(o,g,y);x?i.push(o):c&&c(o,_,j,g,y)}catch(x){console.error("尺寸校验失败:",x)}else i.push(o);if(e=i,e.length===0)return}if(a&&l&&l.length+e.length>a&&!(a===1&&E)){z?.(e,l);return}h||(e=e.slice(0,1));for(const i of e){const o=i;o.uid=K.genFileId(),m?.(o),n&&I(o)}},I=async e=>{if(q.value.value="",!s.beforeUpload)return T(e);let n,a={};try{const h=s.data,m=s.beforeUpload(e);a=C.isObject(s.data)?k.cloneDeep(s.data):s.data,n=await m,C.isObject(s.data)&&k.isEqual(h,a)&&(a=k.cloneDeep(s.data))}catch{n=!1}if(n===!1){s.onRemove?.(e);return}let l=e;n instanceof Blob&&(n instanceof File?l=n:l=new File([n],e.name,{type:e.type})),T(Object.assign(l,{uid:e.uid}),a)},T=(e,n)=>{const{headers:a,data:l,method:h,withCredentials:m,name:z,action:E,onProgress:d,onSuccess:b,onError:g,httpRequest:y}=s,{uid:c}=e,r={headers:a||{},withCredentials:m,file:e,data:n??(l||{}),method:h,filename:z,action:E,onProgress:i=>{d?.(i,e)},onSuccess:i=>{b?.(i,e),delete p.value[c]},onError:i=>{g?.(i,e),delete p.value[c]}},f=y(r);p.value[c]=f,f instanceof Promise&&f.then(r.onSuccess,r.onError)},O=async e=>{const n=e.target.files;n&&(await R(Array.from(n)),t.nextTick(()=>{F?.validate("change").catch(a=>D.debugWarn(a))}))},U=()=>{B.value||(q.value.value="",q.value.click())},P=()=>{U()};return w({abort:e=>{C.entriesOf(p.value).filter(e?([a])=>String(e.uid)===a:()=>!0).forEach(([a,l])=>{l instanceof XMLHttpRequest&&l.abort(),delete p.value[a]})},upload:I}),(e,n)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass([t.unref(v).b(),t.unref(v).m(u.listType),t.unref(v).is("drag",u.drag)]),tabindex:"0",onClick:U,onKeydown:t.withKeys(t.withModifiers(P,["self"]),["enter","space"])},[u.drag?(t.openBlock(),t.createBlock(V.default,{key:0,disabled:t.unref(B),onFile:n[0]||(n[0]=a=>R(a.file))},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default")]),_:3},8,["disabled"])):t.renderSlot(e.$slots,"default",{key:1}),t.createElementVNode("input",{ref_key:"inputRef",ref:q,class:t.normalizeClass(t.unref(v).e("input")),name:u.name,multiple:u.multiple,accept:u.accept,type:"file",onChange:O,onClick:n[1]||(n[1]=t.withModifiers(()=>{},["stop"]))},null,42,A)],42,$))}});exports.default=X;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const a=require("../icon/index.cjs"),C=require("../progress/index.cjs");require("@vueuse/core");require("@vft/utils");const y=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const m=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const B=require("../form/hooks/use-form-common-props.cjs"),v=require("../form/hooks/use-form-item.cjs"),b=["onKeydown"],V=["src"],z=["onClick"],N=["onClick"],g=["onClick"],h=e.defineComponent({name:"VftUploadList"}),q=e.defineComponent({...h,props:{files:{default:[]},disabled:{type:Boolean,default:!1},handlePreview:{type:Function,default:()=>{}},listType:{default:"text"}},emits:["remove"],setup(T,{emit:d}){const p=d,s=m.useNamespace("upload"),l=m.useNamespace("icon"),f=m.useNamespace("list"),c=B.useFormDisabled(),{formItem:k}=v.useFormItem(),i=e.ref(!1),u=n=>{p("remove",n),e.nextTick(()=>{k?.validate("change").catch(o=>y.debugWarn(o))})};return(n,o)=>(e.openBlock(),e.createBlock(e.TransitionGroup,{tag:"ul",class:e.normalizeClass([e.unref(s).b("list"),e.unref(s).bm("list",n.listType),e.unref(s).is("disabled",e.unref(c))]),name:e.unref(f).b()},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.files,t=>(e.openBlock(),e.createElementBlock("li",{key:t.uid||t.name,class:e.normalizeClass([e.unref(s).be("list","item"),e.unref(s).is(t.status),{focusing:i.value}]),tabindex:"0",onKeydown:e.withKeys(r=>!e.unref(c)&&u(t),["delete"]),onFocus:o[0]||(o[0]=r=>i.value=!0),onBlur:o[1]||(o[1]=r=>i.value=!1),onClick:o[2]||(o[2]=r=>i.value=!1)},[e.renderSlot(n.$slots,"default",{file:t},()=>[n.listType==="picture"||t.status!=="uploading"&&n.listType==="picture-card"?(e.openBlock(),e.createElementBlock("img",{key:0,class:e.normalizeClass(e.unref(s).be("list","item-thumbnail")),src:t.url,alt:""},null,10,V)):e.createCommentVNode("",!0),t.status==="uploading"||n.listType!=="picture-card"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(s).be("list","item-info"))},[e.createElementVNode("a",{class:e.normalizeClass(e.unref(s).be("list","item-name")),onClick:e.withModifiers(r=>n.handlePreview(t),["prevent"])},[e.createVNode(e.unref(a.VftIcon),{class:e.normalizeClass(e.unref(l).m("document")),icon:"icon-document"},null,8,["class"]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(s).be("list","item-file-name"))},e.toDisplayString(t.name),3)],10,z),t.status==="uploading"?(e.openBlock(),e.createBlock(e.unref(C.VftProgress),{key:0,type:n.listType==="picture-card"?"circle":"line","stroke-width":n.listType==="picture-card"?6:2,percentage:Number(t.percentage),style:e.normalizeStyle(n.listType==="picture-card"?"":"margin-top: 0.5rem")},null,8,["type","stroke-width","percentage","style"])):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("label",{class:e.normalizeClass(e.unref(s).be("list","item-status-label"))},[n.listType==="text"?(e.openBlock(),e.createBlock(e.unref(a.VftIcon),{key:0,icon:"icon-circle-check",class:e.normalizeClass([e.unref(l).m("upload-success"),e.unref(l).m("circle-check")])},null,8,["class"])):["picture-card","picture"].includes(n.listType)?(e.openBlock(),e.createBlock(e.unref(a.VftIcon),{key:1,icon:"icon-check",class:e.normalizeClass([e.unref(l).m("upload-success"),e.unref(l).m("check")])},null,8,["class"])):e.createCommentVNode("",!0)],2),e.unref(c)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(a.VftIcon),{key:2,icon:"icon-close",class:e.normalizeClass(e.unref(l).m("close")),onClick:r=>u(t)},null,8,["class","onClick"])),e.unref(c)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(e.unref(l).m("close-tip"))}," 按 delete 键可删除 ",2)),n.listType==="picture-card"?(e.openBlock(),e.createElementBlock("span",{key:4,class:e.normalizeClass(e.unref(s).be("list","item-actions"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(s).be("list","item-preview")),onClick:r=>n.handlePreview(t)},[e.createVNode(e.unref(a.VftIcon),{icon:"icon-zoom-in",class:e.normalizeClass(e.unref(l).m("zoom-in"))},null,8,["class"])],10,N),e.unref(c)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(s).be("list","item-delete")),onClick:r=>u(t)},[e.createVNode(e.unref(a.VftIcon),{icon:"icon-delete",class:e.normalizeClass(e.unref(l).m("delete"))},null,8,["class"])],10,g))],2)):e.createCommentVNode("",!0)])],42,b))),128)),e.renderSlot(n.$slots,"append")]),_:3},8,["class","name"]))}});exports.default=q;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const c=require("../icon/index.cjs"),y=require("../progress/index.cjs");require("@vueuse/core");require("@vft/utils");const B=require("../../utils/error.cjs");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const d=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const v=require("../form/hooks/use-form-common-props.cjs"),b=require("../form/hooks/use-form-item.cjs"),V=["onKeydown"],z=["src"],N=["onClick"],g=["onClick"],h=["onClick"],q=e.defineComponent({name:"VftUploadList"}),T=e.defineComponent({...q,props:{files:{default:[]},disabled:{type:Boolean,default:!1},handlePreview:{type:Function,default:()=>{}},listType:{default:"text"}},emits:["remove"],setup(n,{emit:f}){const k=f,l=d.useNamespace("upload"),s=d.useNamespace("icon"),p=d.useNamespace("list"),a=v.useFormDisabled(),{formItem:C}=b.useFormItem(),i=e.ref(!1),m=u=>{k("remove",u),e.nextTick(()=>{C?.validate("change").catch(o=>B.debugWarn(o))})};return(u,o)=>(e.openBlock(),e.createBlock(e.TransitionGroup,{tag:"ul",class:e.normalizeClass([e.unref(l).b("list"),e.unref(l).bm("list",n.listType),e.unref(l).is("disabled",e.unref(a))]),name:e.unref(p).b()},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.files,t=>(e.openBlock(),e.createElementBlock("li",{key:t.uid||t.name,class:e.normalizeClass([e.unref(l).be("list","item"),e.unref(l).is(t.status),{focusing:i.value}]),tabindex:"0",onKeydown:e.withKeys(r=>!e.unref(a)&&m(t),["delete"]),onFocus:o[0]||(o[0]=r=>i.value=!0),onBlur:o[1]||(o[1]=r=>i.value=!1),onClick:o[2]||(o[2]=r=>i.value=!1)},[e.renderSlot(u.$slots,"default",{file:t},()=>[n.listType==="picture"||t.status!=="uploading"&&n.listType==="picture-card"?(e.openBlock(),e.createElementBlock("img",{key:0,class:e.normalizeClass(e.unref(l).be("list","item-thumbnail")),src:t.url,alt:""},null,10,z)):e.createCommentVNode("",!0),t.status==="uploading"||n.listType!=="picture-card"?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(l).be("list","item-info"))},[e.createElementVNode("a",{class:e.normalizeClass(e.unref(l).be("list","item-name")),onClick:e.withModifiers(r=>n.handlePreview(t),["prevent"])},[e.createVNode(e.unref(c.VftIcon),{class:e.normalizeClass(e.unref(s).m("document")),icon:"icon-document"},null,8,["class"]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).be("list","item-file-name"))},e.toDisplayString(t.name),3)],10,N),t.status==="uploading"?(e.openBlock(),e.createBlock(e.unref(y.VftProgress),{key:0,type:n.listType==="picture-card"?"circle":"line","stroke-width":n.listType==="picture-card"?6:2,percentage:Number(t.percentage),style:e.normalizeStyle(n.listType==="picture-card"?"":"margin-top: 0.5rem")},null,8,["type","stroke-width","percentage","style"])):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("label",{class:e.normalizeClass(e.unref(l).be("list","item-status-label"))},[n.listType==="text"?(e.openBlock(),e.createBlock(e.unref(c.VftIcon),{key:0,icon:"icon-circle-check",class:e.normalizeClass([e.unref(s).m("upload-success"),e.unref(s).m("circle-check")])},null,8,["class"])):["picture-card","picture"].includes(n.listType)?(e.openBlock(),e.createBlock(e.unref(c.VftIcon),{key:1,icon:"icon-check",class:e.normalizeClass([e.unref(s).m("upload-success"),e.unref(s).m("check")])},null,8,["class"])):e.createCommentVNode("",!0)],2),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(e.unref(c.VftIcon),{key:2,icon:"icon-close",class:e.normalizeClass(e.unref(s).m("close")),onClick:r=>m(t)},null,8,["class","onClick"])),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("i",{key:3,class:e.normalizeClass(e.unref(s).m("close-tip"))}," 按 delete 键可删除 ",2)),n.listType==="picture-card"?(e.openBlock(),e.createElementBlock("span",{key:4,class:e.normalizeClass(e.unref(l).be("list","item-actions"))},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(l).be("list","item-preview")),onClick:r=>n.handlePreview(t)},[e.createVNode(e.unref(c.VftIcon),{icon:"icon-zoom-in",class:e.normalizeClass(e.unref(s).m("zoom-in"))},null,8,["class"])],10,g),e.unref(a)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(l).be("list","item-delete")),onClick:r=>m(t)},[e.createVNode(e.unref(c.VftIcon),{icon:"icon-delete",class:e.normalizeClass(e.unref(s).m("delete"))},null,8,["class"])],10,h))],2)):e.createCommentVNode("",!0)])],42,V))),128)),e.renderSlot(u.$slots,"append")]),_:3},8,["class","name"]))}});exports.default=T;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const p=require("../message/index.cjs"),M=require("./ajax.cjs"),P=require("./constants.cjs"),C=require("./upload-content.vue2.cjs"),w=require("./upload-list.vue2.cjs"),V=require("./use-handlers.cjs"),_=require("../form/hooks/use-form-common-props.cjs"),E=e.defineComponent({name:"vft-upload"}),F=e.defineComponent({...E,props:{action:{default:"#"},headers:{},method:{default:"post"},data:{},multiple:{type:Boolean,default:!1},name:{default:"file"},drag:{type:Boolean,default:!1},withCredentials:{type:Boolean},showFileList:{type:Boolean,default:!0},accept:{default:""},type:{default:"select"},fileList:{default:[]},autoUpload:{type:Boolean,default:!1},listType:{default:"text"},httpRequest:{type:Function,default:M.ajaxUpload},disabled:{type:Boolean},limit:{},replaceOnLimit:{type:Boolean,default:!1},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},sizeWidth:{default:void 0},sizeHeight:{default:void 0},onSizeInvalid:{},onTypeInvalid:{},beforeUpload:{},beforeRemove:{},onRemove:{},onChange:{},onPreview:{},onSuccess:{},onProgress:{},onError:{},onExceed:{type:Function,default:()=>{}},onSizeExceed:{}},setup(k,{expose:B}){const o=k,a=e.useSlots(),f=_.useFormDisabled(),i=e.shallowRef(),{abort:c,submit:m,clearFiles:v,uploadFiles:r,handleStart:y,handleError:$,handleRemove:d,handleSuccess:b,handleProgress:R}=V.useHandlers(o,i),u=e.computed(()=>o.listType==="picture-card"),z={abort:c,submit:m,clearFiles:v,uploadFiles:r,uploadRef:i},g=e.computed(()=>({...o,fileList:r.value,onStart:y,onProgress:R,onSuccess:b,onError:$,onRemove:d,onChange:(t,l)=>{o.onChange?.(t,l,z)},onSizeExceed:(t,l)=>{if(o.onSizeExceed)o.onSizeExceed?.(t,l);else{const s=`文件大小不能超过 ${(l/1048576).toFixed(2)}MB`;console.warn("默认文件大小超出提示:",s),p.VftMessage.warning(s)}},onSizeInvalid:(t,l,n,s,S)=>{if(o.onSizeInvalid)o.onSizeInvalid(t,l,n,s,S);else{const h=`文件尺寸不符合要求,当前尺寸:${l}x${n},期望尺寸:${s}x${S}`;console.warn("默认尺寸校验提示:",h),p.VftMessage.warning(h)}},onTypeInvalid:(t,l)=>{if(o.onTypeInvalid)o.onTypeInvalid(t,l);else{const n=`文件类型不符合要求,当前文件:${t.name},支持的类型:${l}`;console.warn("默认文件类型校验提示:",n),p.VftMessage.warning(n)}}}));return e.onBeforeUnmount(()=>{r.value.forEach(({url:t})=>{t?.startsWith("blob:")&&URL.revokeObjectURL(t)})}),e.provide(P.uploadContextKey,{accept:e.toRef(o,"accept")}),B({abort:c,submit:m,clearFiles:v,handleStart:y,handleRemove:d,fileList:r}),(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vft-upload-wrapper",{disabled:e.unref(f)}])},[u.value&&t.showFileList?(e.openBlock(),e.createBlock(w.default,{key:0,disabled:e.unref(f),"list-type":t.listType,files:e.unref(r),"handle-preview":t.onPreview,onRemove:e.unref(d)},e.createSlots({append:e.withCtx(()=>[e.createVNode(C.default,e.mergeProps({ref_key:"uploadRef",ref:i},g.value),{default:e.withCtx(()=>[e.unref(a).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(a).trigger&&e.unref(a).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)]),_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:n})=>[e.renderSlot(t.$slots,"file",{file:n})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0),!u.value||u.value&&!t.showFileList?(e.openBlock(),e.createBlock(C.default,e.mergeProps({key:1,ref_key:"uploadRef",ref:i},g.value),{default:e.withCtx(()=>[e.unref(a).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(a).trigger&&e.unref(a).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)):e.createCommentVNode("",!0),t.$slots.trigger?e.renderSlot(t.$slots,"default",{key:2}):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"tip"),!u.value&&t.showFileList?(e.openBlock(),e.createBlock(w.default,{key:3,disabled:e.unref(f),"list-type":t.listType,files:e.unref(r),"handle-preview":t.onPreview,onRemove:e.unref(d)},e.createSlots({_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:n})=>[e.renderSlot(t.$slots,"file",{file:n})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0)],2))}});exports.default=F;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../form/index.cjs");const p=require("../message/index.cjs"),M=require("./ajax.cjs"),P=require("./constants.cjs"),w=require("./upload-content.vue2.cjs"),k=require("./upload-list.vue2.cjs"),V=require("./use-handlers.cjs"),E=require("../form/hooks/use-form-common-props.cjs"),F=e.defineComponent({name:"vft-upload"}),L=e.defineComponent({...F,props:{action:{default:"#"},headers:{},method:{default:"post"},data:{},multiple:{type:Boolean,default:!1},name:{default:"file"},drag:{type:Boolean,default:!1},withCredentials:{type:Boolean},showFileList:{type:Boolean,default:!0},accept:{default:""},type:{default:"select"},fileList:{default:[]},autoUpload:{type:Boolean,default:!1},listType:{default:"text"},httpRequest:{type:Function,default:M.ajaxUpload},disabled:{type:Boolean},limit:{},replaceOnLimit:{type:Boolean,default:!1},maxSize:{default:void 0},sizeExceedMessage:{default:"文件大小超出限制"},sizeWidth:{default:void 0},sizeHeight:{default:void 0},onSizeInvalid:{},onTypeInvalid:{},beforeUpload:{},beforeRemove:{},onRemove:{},onChange:{},onPreview:{},onSuccess:{},onProgress:{},onError:{},onExceed:{type:Function,default:()=>{}},onSizeExceed:{}},setup(a,{expose:B}){const o=a,r=e.useSlots(),c=E.useFormDisabled(),d=e.shallowRef(),{abort:m,submit:v,clearFiles:y,uploadFiles:s,handleStart:g,handleError:$,handleRemove:u,handleSuccess:b,handleProgress:R}=V.useHandlers(o,d),f=e.computed(()=>o.listType==="picture-card"),z={abort:m,submit:v,clearFiles:y,uploadFiles:s,uploadRef:d},S=e.computed(()=>({...o,fileList:s.value,onStart:g,onProgress:R,onSuccess:b,onError:$,onRemove:u,onChange:(t,l)=>{o.onChange?.(t,l,z)},onSizeExceed:(t,l)=>{if(o.onSizeExceed)o.onSizeExceed?.(t,l);else{const i=`文件大小不能超过 ${(l/1048576).toFixed(2)}MB`;console.warn("默认文件大小超出提示:",i),p.VftMessage.warning(i)}},onSizeInvalid:(t,l,n,i,h)=>{if(o.onSizeInvalid)o.onSizeInvalid(t,l,n,i,h);else{const C=`文件尺寸不符合要求,当前尺寸:${l}x${n},期望尺寸:${i}x${h}`;console.warn("默认尺寸校验提示:",C),p.VftMessage.warning(C)}},onTypeInvalid:(t,l)=>{if(o.onTypeInvalid)o.onTypeInvalid(t,l);else{const n=`文件类型不符合要求,当前文件:${t.name},支持的类型:${l}`;console.warn("默认文件类型校验提示:",n),p.VftMessage.warning(n)}}}));return e.onBeforeUnmount(()=>{s.value.forEach(({url:t})=>{t?.startsWith("blob:")&&URL.revokeObjectURL(t)})}),e.provide(P.uploadContextKey,{accept:e.toRef(o,"accept")}),B({abort:m,submit:v,clearFiles:y,handleStart:g,handleRemove:u,fileList:s}),(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vft-upload-wrapper",{disabled:e.unref(c)}])},[f.value&&a.showFileList?(e.openBlock(),e.createBlock(k.default,{key:0,disabled:e.unref(c),"list-type":a.listType,files:e.unref(s),"handle-preview":a.onPreview,onRemove:e.unref(u)},e.createSlots({append:e.withCtx(()=>[e.createVNode(w.default,e.mergeProps({ref_key:"uploadRef",ref:d},S.value),{default:e.withCtx(()=>[e.unref(r).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(r).trigger&&e.unref(r).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)]),_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:n})=>[e.renderSlot(t.$slots,"file",{file:n})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0),!f.value||f.value&&!a.showFileList?(e.openBlock(),e.createBlock(w.default,e.mergeProps({key:1,ref_key:"uploadRef",ref:d},S.value),{default:e.withCtx(()=>[e.unref(r).trigger?e.renderSlot(t.$slots,"trigger",{key:0}):e.createCommentVNode("",!0),!e.unref(r).trigger&&e.unref(r).default?e.renderSlot(t.$slots,"default",{key:1}):e.createCommentVNode("",!0)]),_:3},16)):e.createCommentVNode("",!0),t.$slots.trigger?e.renderSlot(t.$slots,"default",{key:2}):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"tip"),!f.value&&a.showFileList?(e.openBlock(),e.createBlock(k.default,{key:3,disabled:e.unref(c),"list-type":a.listType,files:e.unref(s),"handle-preview":a.onPreview,onRemove:e.unref(u)},e.createSlots({_:2},[t.$slots.file?{name:"default",fn:e.withCtx(({file:n})=>[e.renderSlot(t.$slots,"file",{file:n})]),key:"0"}:void 0]),1032,["disabled","list-type","files","handle-preview","onRemove"])):e.createCommentVNode("",!0)],2))}});exports.default=L;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("@vueuse/core");require("@vft/utils");const i=require("../../utils/helper.cjs");require("lodash-es");require("../form/index.cjs");const h=require("./useImageVerify.cjs"),f=["width","height"],m=e.defineComponent({name:"vft-verify-code"}),g=e.defineComponent({...m,props:{height:{default:40},width:{default:150},radius:{default:5}},emits:["click"],setup(r,{expose:o,emit:n}){const u=n,l=e.computed(()=>({width:i.addUnit(r.width),height:i.addUnit(r.height)})),{domRef:s,imgCode:c,getCode:d}=h.default(),a=()=>{d(),u("click")};return o({getCode:d,code:c}),(t,p)=>(e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle(l.value),onClick:a},[e.createElementVNode("canvas",{ref_key:"domRef",ref:s,style:e.normalizeStyle({borderRadius:e.unref(i.addUnit)(t.radius)}),width:t.width,height:t.height,class:"cursor-pointer"},null,12,f)],4))}});exports.default=g;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("@vueuse/core");require("@vft/utils");const i=require("../../utils/helper.cjs");require("lodash-es");require("../form/index.cjs");const s=require("./useImageVerify.cjs"),h=["width","height"],f=e.defineComponent({name:"vft-verify-code"}),m=e.defineComponent({...f,props:{height:{default:40},width:{default:150},radius:{default:5}},emits:["click"],setup(t,{expose:d,emit:n}){const o=n,u=e.computed(()=>({width:i.addUnit(t.width),height:i.addUnit(t.height)})),{domRef:c,imgCode:l,getCode:r}=s.default(),a=()=>{r(),o("click")};return d({getCode:r,code:l}),(g,y)=>(e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle(u.value),onClick:a},[e.createElementVNode("canvas",{ref_key:"domRef",ref:c,style:e.normalizeStyle({borderRadius:e.unref(i.addUnit)(t.radius)}),width:t.width,height:t.height,class:"cursor-pointer"},null,12,h)],4))}});exports.default=m;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.429";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.430";exports.version=e;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.429",
3
+ "version": "0.0.430",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vft",
3
- "version": "0.0.429",
3
+ "version": "0.0.430",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -55,12 +55,12 @@
55
55
  "resize-detector": "0.3.0",
56
56
  "sortablejs": "1.15.0",
57
57
  "photoswipe": "5.4.4",
58
- "@vft/utils": "0.0.144",
59
58
  "@vft/router": "0.0.67",
60
- "@vft/use": "0.0.89",
61
59
  "@vft/store": "0.0.54",
62
- "@vft/directives": "0.0.36",
63
- "@vft/constants": "0.0.75"
60
+ "@vft/constants": "0.0.75",
61
+ "@vft/utils": "0.0.144",
62
+ "@vft/use": "0.0.89",
63
+ "@vft/directives": "0.0.36"
64
64
  },
65
65
  "vetur": {
66
66
  "tags": "tags.json",
package/tags.json CHANGED
@@ -1 +1 @@
1
- {"vft-alert":{"attributes":["title","type","description","closable","center","close-text","show-icon","effect"],"description":"提示 用于页面中展示重要的提示信息。\n\n[Docs](https://wflynn.cn/pages/alert#alert)"},"vft-auto-complete":{"attributes":["model-value / v-model","placeholder","clearable","disabled","value-key","debounce","placement","fetch-suggestions","trigger-on-focus","select-when-unmatched","name","label","hide-loading","popper-class","popper-append-to-body ^(deprecated)","teleported","highlight-first-item","fit-input-width","select","change"],"description":"自动补全输入框 根据输入内容提供对应的输入建议。\n\n[Docs](https://wflynn.cn/pages/autocomplete#autocomplete)"},"vft-avatar":{"attributes":["icon","size","shape","src","src-set","alt","fit"],"description":"Avatar 组件可以用来代表人物或对象, 支持使用图片、图标或者文字作为 Avatar。\n\n[Docs](https://wflynn.cn/pages/avatar#avatar)"},"vft-backtop":{"attributes":["target","visibility-height","right","bottom"],"description":"返回页面顶部的操作按钮。\n\n[Docs](https://wflynn.cn/pages/backtop#backtop)"},"vft-button":{"attributes":["size","type","plain","text","bg","link<VersionTag version=\"2.2.1\" />","round","circle","loading","loading-icon","disabled","icon","autofocus","native-type","auto-insert-space","color","dark"],"description":"常用的操作按钮。\n\n[Docs](https://wflynn.cn/pages/button#button)"},"vft-button-group":{"description":"[Docs](https://wflynn.cn/pages/button#buttongroup)"},"vft-card":{"attributes":["header","body-style","shadow"],"description":"将信息聚合在卡片容器中展示。\n\n[Docs](https://wflynn.cn/pages/card#card)"},"vft-carousel":{"attributes":["height","initial-index","trigger","autoplay","interval","indicator-position","arrow","type","loop","direction","pause-on-hover","change"],"description":"在有限空间内,循环播放同一类型的图片、文字等内容\n\n[Docs](https://wflynn.cn/pages/carousel#carousel)"},"vft-carousel-item":{"attributes":["name","label"],"description":"[Docs](https://wflynn.cn/pages/carousel#carousel-item)"},"vft-checkbox":{"attributes":["model-value / v-model","label","true-label","false-label","disabled","border","size","name","checked","indeterminate","validate-event","tabindex","id","controls ^(a11y)","change"],"description":"在一组备选项中进行多选。\n\n[Docs](https://wflynn.cn/pages/checkbox#checkbox)"},"vft-checkbox-group":{"attributes":["model-value / v-model","size","disabled","min","max","label","text-color","fill","tag","validate-event","change"],"description":"[Docs](https://wflynn.cn/pages/checkbox#checkboxgroup)"},"vft-checkbox-button":{"attributes":["label","true-label","false-label","disabled","name","checked"],"description":"[Docs](https://wflynn.cn/pages/checkbox#checkboxbutton)"},"vft-clamp":{"attributes":["text","maxHeight","maxLines","expanded","ellipsis","autoResize","location"],"description":"文字...省略\n\n[Docs](https://wflynn.cn/pages/clamp#clamp)"},"vft-color-picker":{"attributes":["model-value / v-model","disabled","size","show-alpha","color-format","popper-class","predefine","validate-event","tabindex","label<A11yTag/>","id","change","active-change"],"description":"用于颜色选择,支持多种格式。\n\n[Docs](https://wflynn.cn/pages/color-picker#colorpicker)"},"vft-config-provider":{"attributes":["locale","size","zIndex","namespace","button","message","experimental-features"],"description":"Config Provider 被用来提供全局的配置选项,让你的配置能够在全局都能够被访问到。\n\n[Docs](https://wflynn.cn/pages/config-provider#config-provider)"},"vft-container":{"attributes":["direction"],"description":"[Docs](https://wflynn.cn/pages/container#container)"},"vft-header":{"attributes":["height"],"description":"[Docs](https://wflynn.cn/pages/container#header)"},"vft-aside":{"attributes":["width"],"description":"[Docs](https://wflynn.cn/pages/container#aside)"},"vft-main":{"description":"[Docs](https://wflynn.cn/pages/container#main)"},"vft-footer":{"attributes":["height"],"description":"[Docs](https://wflynn.cn/pages/container#footer)"},"vft-date-picker":{"attributes":["model-value / v-model","readonly","disabled","size","editable","clearable","placeholder","start-placeholder","end-placeholder","type","format","popper-class","popper-options","range-separator","default-value","default-time","value-format","id","name","unlink-panels","prefix-icon","clear-icon","validate-event","disabled-date","shortcuts","cell-class-name","teleported","change","blur","focus","calendar-change","panel-change","visible-change"],"description":"用于选择或输入日期\n\n[Docs](https://wflynn.cn/pages/date-picker#datepicker)"},"vft-date-time-picker":{"attributes":["model-value / v-model","readonly","disabled","editable","clearable","size","placeholder","start-placeholder","end-placeholder","time-arrow-control","type","format","popper-class","range-separator","default-value","default-time","value-format","id","name","unlink-panels","prefix-icon","clear-icon","shortcuts","disabled-date","cell-class-name","teleported","change","blur","focus","calendar-change","visible-change"],"description":"在同一个选择器里选择日期和时间\n\n[Docs](https://wflynn.cn/pages/datetime-picker#datetimepicker)"},"vft-descriptions":{"attributes":["border","column","direction","size","title","extra"],"description":"列表形式展示多个字段。\n\n[Docs](https://wflynn.cn/pages/descriptions#descriptions)"},"vft-descriptions-item":{"attributes":["label","span","width","min-width","align","label-align","class-name","label-class-name"],"description":"[Docs](https://wflynn.cn/pages/descriptions#descriptions-item)"},"vft-dialog":{"attributes":["model-value / v-model","title","width","fullscreen","top","modal","modal-penetrable","modal-class","header-class","body-class","footer-class","append-to-body","append-to","lock-scroll","open-delay","close-delay","close-on-click-modal","close-on-press-escape","show-close","before-close","draggable","overflow","center","align-center","destroy-on-close","close-icon","z-index","header-aria-level","transition","custom-class","open","opened","close","closed","open-auto-focus","close-auto-focus"],"description":"在保留当前页面状态的情况下,告知用户并承载相关操作。\n\n[Docs](https://wflynn.cn/pages/dialog#dialog)"},"vft-divider":{"attributes":["direction","border-style","content-position"],"description":"区隔内容的分割线。\n\n[Docs](https://wflynn.cn/pages/divider#divider)"},"vft-drawer":{"attributes":["model-value / v-model","append-to-body","lock-scroll","before-close","close-on-click-modal","close-on-press-escape","open-delay","close-delay","custom-class ^(deprecated)","destroy-on-close","modal","direction","show-close","size","title","with-header","modal-class","z-index","open","opened","close","closed"],"description":"有些时候, `Dialog` 组件并不满足我们的需求, 比如你的表单很长, 亦或是你需要临时展示一些文档, `Drawer`\n\n[Docs](https://wflynn.cn/pages/drawer#drawer)"},"vft-dropdown":{"attributes":["type","size","max-height","split-button","disabled","placement","trigger","hide-on-click","show-timeout","hide-timeout","role","tabindex","popper-class","popper-options","teleported","click","command","visible-change"],"description":"将动作或菜单折叠到下拉菜单中。\n\n[Docs](https://wflynn.cn/pages/dropdown#dropdown)"},"vft-dropdown-menu":{"description":"[Docs](https://wflynn.cn/pages/dropdown#dropdown-menu)"},"vft-dropdown-item":{"attributes":["command","disabled","divided","icon"],"description":"[Docs](https://wflynn.cn/pages/dropdown#dropdown-item)"},"vft-empty":{"attributes":["image","image-size","description"],"description":"空状态时的占位提示。\n\n[Docs](https://wflynn.cn/pages/empty#empty)"},"vft-form":{"attributes":["model","rules","inline","label-position","label-width","label-suffix","hide-required-asterisk","require-asterisk-position","show-message","inline-message","status-icon","validate-on-rule-change","size","disabled","scroll-to-error","scroll-into-view-options","validate"],"description":"表单包含 `输入框`, `单选框`, `下拉选择`, `多选框` 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。\n\n[Docs](https://wflynn.cn/pages/form#form)"},"vft-form-item":{"attributes":["prop","label","label-width","required","rules","error","show-message","inline-message","size","for","validate-status"],"description":"[Docs](https://wflynn.cn/pages/form#formitem)"},"vft-icon":{"attributes":["icon","size","color","hoverColor","rotate","rotateSpeed","pointer"],"description":"图标 [图标资源地址]\n\n[Docs](https://wflynn.cn/pages/icon#icon)"},"vft-image":{"attributes":["src","fit","hide-on-click-modal","`loading` ^(2.2.3)","lazy","scroll-container","alt","referrerpolicy","preview-src-list","z-index","initial-index","close-on-press-escape","preview-teleported","load","error","switch","close"],"description":"图片容器,在保留所有原生 img 的特性下,支持懒加载,自定义占位、加载失败等\n\n[Docs](https://wflynn.cn/pages/image#image)"},"vft-image-viewer":{"attributes":["url-list","z-index","initial-index","infinite","hide-on-click-modal","teleported","zoom-rate","close","switch"],"description":"[Docs](https://wflynn.cn/pages/image#image-viewer)"},"vft-input-number":{"attributes":["model-value / v-model","min","max","step","step-strictly","precision","size","readonly","disabled","controls","controls-position","name","label","placeholder","id","value-on-clear ^(2.2.0)","validate-event","change","blur","focus"],"description":"仅允许输入标准的数字值,可定义范围\n\n[Docs](https://wflynn.cn/pages/input-number#input-number)"},"vft-input":{"attributes":["type","model-value / v-model","maxlength","minlength","show-word-limit","placeholder","clearable","formatter","parser","show-password","disabled","size","prefix-icon","suffix-icon","rows","autosize","autocomplete","name","readonly","max","min","step","resize","autofocus","form","label ^(a11y)","tabindex","validate-event","input-style","blur","focus","change","input","clear"],"description":"通过鼠标或键盘输入字符\n\n[Docs](https://wflynn.cn/pages/input#input)"},"vft-row":{"attributes":["gutter","justify","align","tag"],"description":"[Docs](https://wflynn.cn/pages/layout#row)"},"vft-col":{"attributes":["span","offset","push","pull","xs","sm","md","lg","xl","tag"],"description":"[Docs](https://wflynn.cn/pages/layout#col)"},"vft-link":{"attributes":["type","underline","disabled","href","icon"],"description":"文字超链接\n\n[Docs](https://wflynn.cn/pages/link#link)"},"vft-list-cell":{"attributes":["list","cellHeight","leftTextDistance","activeIndex","item-click"],"description":"菜单列表\n\n[Docs](https://wflynn.cn/pages/list-cell#listcell)"},"vft-logo":{"attributes":["title","logo","jump-path","click"],"description":"用于展示品牌 `logo` 和标题的组件,支持点击跳转功能。\n\n[Docs](https://wflynn.cn/pages/logo#logo)"},"vft-menu":{"attributes":["mode","collapse","ellipsis","default-active","default-openeds","unique-opened","menu-trigger","router","collapse-transition","popper-effect","select","open","close"],"description":"为网站提供导航功能的菜单。\n\n[Docs](https://wflynn.cn/pages/menu#menu)"},"vft-sub-menu":{"attributes":["index","popper-class","show-timeout","hide-timeout","disabled","popper-append-to-body(已废弃)","teleported","popper-offset","expand-close-icon","expand-open-icon","collapse-close-icon","collapse-open-icon"],"description":"[Docs](https://wflynn.cn/pages/menu#submenu)"},"vft-menu-item":{"attributes":["index","route","disabled","click"],"description":"[Docs](https://wflynn.cn/pages/menu#menu-item)"},"vft-menu-item-group":{"attributes":["title"],"description":"[Docs](https://wflynn.cn/pages/menu#menu-item-group)"},"vft-modal":{"attributes":["model-value / v-model","title","width","fullscreen","top","modal","append-to-body","lock-scroll","open-delay","close-delay","close-on-click-modal","close-on-press-escape","show-close","before-close","draggable","center","align-center","destroy-on-close","showActionButtonGroup","showSubmitButton","showCancelButton","submitButtonOptions","cancelButtonOptions","actionRowOptions","open","opened","close","closed","open-auto-focus","close-auto-focus"],"description":"在保留当前页面状态的情况下,告知用户并承载相关操作。\n\n[Docs](https://wflynn.cn/pages/modal#modal)"},"vft-page-wrapper":{"attributes":["title"],"description":"页面 demo 容器\n\n[Docs](https://wflynn.cn/pages/page-wrapper#pagewrapper)"},"vft-pagination":{"attributes":["small","background","page-size / v-model:page-size","default-page-size","total","page-count","pager-count","current-page / v-model:current-page","default-current-page","layout","page-sizes","popper-class","prev-text","prev-icon","next-text","next-icon","disabled","hide-on-single-page","size-change","current-change","prev-click","next-click"],"description":"当数据量过多时,使用分页分解数据。\n\n[Docs](https://wflynn.cn/pages/pagination#pagination)"},"vft-popconfirm":{"attributes":["title","confirm-button-text","cancel-button-text","confirm-button-type","cancel-button-type","icon","icon-color","hide-icon","hide-after","teleported","persistent","width"],"description":"点击某个元素弹出一个简单的气泡确认框\n\n[Docs](https://wflynn.cn/pages/popconfirm#popconfirm)"},"vft-popover":{"attributes":["trigger","trigger-keys","title","effect","content","width","placement","disabled","visible / v-model:visible","offset","transition","show-arrow","popper-options","popper-class","popper-style","show-after","hide-after","auto-close","tabindex","teleported","append-to","persistent","virtual-triggering","virtual-ref","show","before-enter","after-enter","hide","before-leave","after-leave"],"description":"<!-- more -->\n\n[Docs](https://wflynn.cn/pages/popover#popover)"},"vft-progress":{"attributes":["percentage","type","stroke-width","text-inside","status","indeterminate","duration","color","width","show-text","stroke-linecap","format","striped","striped-flow"],"description":"用于展示操作进度,告知用户当前状态和预期。\n\n[Docs](https://wflynn.cn/pages/progress#progress)"},"vft-radio":{"attributes":["model-value / v-model","label","disabled","border","size","name","change"],"description":"在一组备选项中进行单选\n\n[Docs](https://wflynn.cn/pages/radio#radio)"},"vft-radio-group":{"attributes":["model-value / v-model","size","disabled","text-color","fill","validate-event","label ^(a11y)","name","id","change"],"description":"[Docs](https://wflynn.cn/pages/radio#radiogroup)"},"vft-radio-button":{"attributes":["label","disabled","name"],"description":"[Docs](https://wflynn.cn/pages/radio#radiobutton)"},"vft-result":{"attributes":["title","sub-title","icon"],"description":"用于对用户的操作结果或者异常状态做反馈。\n\n[Docs](https://wflynn.cn/pages/result#result)"},"vft-scrollbar":{"attributes":["height","max-height","native","wrap-style","wrap-class","view-style","view-class","noresize","tag","always","min-size","scroll"],"description":"用于替换浏览器原生滚动条。\n\n[Docs](https://wflynn.cn/pages/scrollbar#scrollbar)"},"vft-select":{"attributes":["model-value / v-model","options","multiple","disabled","value-key","size","clearable","clear-icon","collapse-tags","multiple-limit","name","effect","autocomplete","placeholder","filterable","allow-create","reserve-keyword","no-data-text","popper-class","popper-append-to-body ^(deprecated)","teleported","persistent","popper-options","automatic-dropdown","height","scrollbar-always-on","remote","remote-method","validate-event","placement","collapse-tags-tooltip","change","visible-change","remove-tag","clear","blur","focus"],"description":"在某些使用情况下,单个选择器可能最终加载数万行数据。 将这么多的数据渲染至 DOM 中可能会给浏览器带来负担,从而造成性能问题。\n\n[Docs](https://wflynn.cn/pages/select#select)"},"vft-skeleton-item":{"attributes":["variant"],"description":"[Docs](https://wflynn.cn/pages/skeleton#skeletonitem)"},"vft-space":{"attributes":["alignment","class","direction","prefix-cls","style","spacer","size","wrap","fill","fill-ratio"],"description":"虽然我们拥有 [Divider 组件]\n\n[Docs](https://wflynn.cn/pages/space#space)"},"vft-switch":{"attributes":["model-value / v-model","disabled","loading","size","width","inline-prompt","active-icon","inactive-icon","active-text","inactive-text","active-value","inactive-value","active-color","inactive-color","border-color","name","validate-event","before-change","change"],"description":"表示两种相互对立的状态间的切换,多用于触发「开/关」。\n\n[Docs](https://wflynn.cn/pages/switch#switch)"},"vft-table":{"attributes":["maxHeight","columns","data","loading","height","pageSize","pageNum","total","defaultSort","tableConfig","sticky","pagePlacement","pageOptions"],"description":"<!-- more -->\n\n[Docs](https://wflynn.cn/pages/table#table)"},"vft-tabs":{"attributes":["model-value / v-model","type","closable","addable","editable","tab-position","stretch","before-leave","tab-click","tab-change","tab-remove","tab-add","edit"],"description":"分隔内容上有关联但属于不同类别的数据集合。\n\n[Docs](https://wflynn.cn/pages/tabs#tabs)"},"vft-tab-pane":{"attributes":["label","disabled","name","closable","lazy"],"description":"[Docs](https://wflynn.cn/pages/tabs#tab-pane)"},"vft-check-tag":{"attributes":["checked","change"],"description":"[Docs](https://wflynn.cn/pages/tag#checktag)"},"vft-tag":{"attributes":["type","closable","disable-transitions","hit","color","size","effect","round","click","close"],"description":"用于标记和选择。\n\n[Docs](https://wflynn.cn/pages/tag#tag)"},"vft-time-picker":{"attributes":["model-value / v-model","readonly","disabled","editable","clearable","size","placeholder","start-placeholder","end-placeholder","is-range","arrow-control","popper-class","range-separator","format","default-value","id","name","label ^(a11y)","prefix-icon","clear-icon","disabled-hours","disabled-minutes","disabled-seconds","teleported","tabindex","change","blur","focus","visible-change"],"description":"用于选择或输入日期\n\n[Docs](https://wflynn.cn/pages/time-picker#timepicker)"},"vft-tooltip":{"attributes":["role","show-arrow","arrow-offset","virtual-ref","virtual-triggering","id","open","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","style","className","effect","visible / v-model:visible","enterable","pure","focus-on-show","trapping","popper-class","popper-style","reference-el","trigger-target-el","stop-popper-mouse-event","aria-label ^(a11y)","before-show","before-hide","show","hide","open","close"],"description":"常用于展示鼠标 hover 时的提示信息。\n\n[Docs](https://wflynn.cn/pages/tooltip#tooltip)"},"vft-tree":{"attributes":["data","empty-text","node-key","props","render-after-expand","load","render-content","highlight-current","default-expand-all","expand-on-click-node","check-on-click-node","auto-expand-parent","default-expanded-keys","show-checkbox","check-strictly","default-checked-keys","current-node-key","filter-node-method","accordion","indent","icon","lazy","draggable","allow-drag","allow-drop","node-click","node-contextmenu","check-change","check","current-change","node-expand","node-collapse","node-drag-start","node-drag-enter","node-drag-leave","node-drag-over","node-drag-end","node-drop"],"description":"用清晰的层级结构展示信息,可展开或折叠。\n\n[Docs](https://wflynn.cn/pages/tree#tree)"},"vft-upload":{"attributes":["action","headers","method","multiple","data","name","with-credentials","show-file-list","drag","accept","on-preview","on-remove","on-success","on-error","on-progress","on-change","on-exceed","before-upload","before-remove","file-list` / `v-model:file-list","list-type","auto-upload","http-request","disabled","limit"],"description":"通过点击或者拖拽上传文件。\n\n[Docs](https://wflynn.cn/pages/upload#upload)"},"vft-date-time-select":{"attributes":["dateList","defaultFormat","placement","change"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/date-time-select#datetimeselect)"},"vft-horizontal-menu":{"attributes":["menus","defaultActive","defaultOpeneds","attrMapping","useRouterJump","openDisabled","disabledJudgeTurnOver","subMenuCfg","maxRowLength","open","close"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/horizontal-menu#horizontalmenu)"},"vft-icon-text":{"attributes":["text","icon","color","hoverColor","distance","reverse","size","direction","pointer"],"description":"文字与图标组合\n\n[Docs](https://wflynn.cn/pages/icon-text#icontext)"},"vft-search":{"attributes":["modelValue","placeholder","prefixIcon","suffixIcon","clearable","clearIcon","width","activeWidth","usePopover","popoverCfg","update:modelValue","blur","focus","clear","enter","prefixClick","suffixClick","mouseenter","mouseleave","keydown","change"],"description":"搜索,以及搜索框\n\n[Docs](https://wflynn.cn/pages/search#search)"},"vft-side-menu":{"attributes":["menus","uniqueOpened","isFixedLeft","autoScrollActiveDom","collapse","defaultActive","defaultOpeneds","width","collapseWidth","height","attrMapping","extraHeight","menuTopBottomHeight","showCollapse","dragOption","dragWidthCfg","useRouterJump","openDisabled","update:collapse","update:width","dragEnd","dragWidthEnd","select","menuItemMouseenter","menuItemMouseleave"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/side-menu#sidemenu)"},"vft-super-form":{"attributes":["register","submit"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/super-form#superform)"}}
1
+ {"vft-alert":{"attributes":["title","type","description","closable","center","close-text","show-icon","effect"],"description":"提示 用于页面中展示重要的提示信息。\n\n[Docs](https://wflynn.cn/pages/alert#alert)"},"vft-auto-complete":{"attributes":["model-value / v-model","placeholder","clearable","disabled","value-key","debounce","placement","fetch-suggestions","trigger-on-focus","select-when-unmatched","name","label","hide-loading","popper-class","popper-append-to-body ^(deprecated)","teleported","highlight-first-item","fit-input-width","select","change"],"description":"自动补全输入框 根据输入内容提供对应的输入建议。\n\n[Docs](https://wflynn.cn/pages/autocomplete#autocomplete)"},"vft-avatar":{"attributes":["icon","size","shape","src","src-set","alt","fit"],"description":"Avatar 组件可以用来代表人物或对象, 支持使用图片、图标或者文字作为 Avatar。\n\n[Docs](https://wflynn.cn/pages/avatar#avatar)"},"vft-backtop":{"attributes":["target","visibility-height","right","bottom"],"description":"返回页面顶部的操作按钮。\n\n[Docs](https://wflynn.cn/pages/backtop#backtop)"},"vft-button":{"attributes":["size","type","plain","text","bg","link<VersionTag version=\"2.2.1\" />","round","circle","loading","loading-icon","disabled","icon","autofocus","native-type","auto-insert-space","color","dark"],"description":"常用的操作按钮。\n\n[Docs](https://wflynn.cn/pages/button#button)"},"vft-button-group":{"description":"[Docs](https://wflynn.cn/pages/button#buttongroup)"},"vft-card":{"attributes":["header","body-style","shadow"],"description":"将信息聚合在卡片容器中展示。\n\n[Docs](https://wflynn.cn/pages/card#card)"},"vft-carousel":{"attributes":["height","initial-index","trigger","autoplay","interval","indicator-position","arrow","type","loop","direction","pause-on-hover","change"],"description":"在有限空间内,循环播放同一类型的图片、文字等内容\n\n[Docs](https://wflynn.cn/pages/carousel#carousel)"},"vft-carousel-item":{"attributes":["name","label"],"description":"[Docs](https://wflynn.cn/pages/carousel#carousel-item)"},"vft-checkbox":{"attributes":["model-value / v-model","label","true-label","false-label","disabled","border","size","name","checked","indeterminate","validate-event","tabindex","id","controls ^(a11y)","change"],"description":"在一组备选项中进行多选。\n\n[Docs](https://wflynn.cn/pages/checkbox#checkbox)"},"vft-checkbox-group":{"attributes":["model-value / v-model","size","disabled","min","max","label","text-color","fill","tag","validate-event","change"],"description":"[Docs](https://wflynn.cn/pages/checkbox#checkboxgroup)"},"vft-checkbox-button":{"attributes":["label","true-label","false-label","disabled","name","checked"],"description":"[Docs](https://wflynn.cn/pages/checkbox#checkboxbutton)"},"vft-clamp":{"attributes":["text","maxHeight","maxLines","expanded","ellipsis","autoResize","location"],"description":"文字...省略\n\n[Docs](https://wflynn.cn/pages/clamp#clamp)"},"vft-color-picker":{"attributes":["model-value / v-model","disabled","size","show-alpha","color-format","popper-class","predefine","validate-event","tabindex","label<A11yTag/>","id","change","active-change"],"description":"用于颜色选择,支持多种格式。\n\n[Docs](https://wflynn.cn/pages/color-picker#colorpicker)"},"vft-config-provider":{"attributes":["locale","size","zIndex","namespace","button","message","experimental-features"],"description":"Config Provider 被用来提供全局的配置选项,让你的配置能够在全局都能够被访问到。\n\n[Docs](https://wflynn.cn/pages/config-provider#config-provider)"},"vft-container":{"attributes":["direction"],"description":"[Docs](https://wflynn.cn/pages/container#container)"},"vft-header":{"attributes":["height"],"description":"[Docs](https://wflynn.cn/pages/container#header)"},"vft-aside":{"attributes":["width"],"description":"[Docs](https://wflynn.cn/pages/container#aside)"},"vft-main":{"description":"[Docs](https://wflynn.cn/pages/container#main)"},"vft-footer":{"attributes":["height"],"description":"[Docs](https://wflynn.cn/pages/container#footer)"},"vft-date-picker":{"attributes":["model-value / v-model","readonly","disabled","size","editable","clearable","placeholder","start-placeholder","end-placeholder","type","format","popper-class","popper-options","range-separator","default-value","default-time","value-format","id","name","unlink-panels","prefix-icon","clear-icon","validate-event","disabled-date","shortcuts","cell-class-name","teleported","change","blur","focus","calendar-change","panel-change","visible-change"],"description":"用于选择或输入日期\n\n[Docs](https://wflynn.cn/pages/date-picker#datepicker)"},"vft-date-time-picker":{"attributes":["model-value / v-model","readonly","disabled","editable","clearable","size","placeholder","start-placeholder","end-placeholder","time-arrow-control","type","format","popper-class","range-separator","default-value","default-time","value-format","id","name","unlink-panels","prefix-icon","clear-icon","shortcuts","disabled-date","cell-class-name","teleported","change","blur","focus","calendar-change","visible-change"],"description":"在同一个选择器里选择日期和时间\n\n[Docs](https://wflynn.cn/pages/datetime-picker#datetimepicker)"},"vft-descriptions":{"attributes":["border","column","direction","size","title","extra"],"description":"列表形式展示多个字段。\n\n[Docs](https://wflynn.cn/pages/descriptions#descriptions)"},"vft-descriptions-item":{"attributes":["label","span","width","min-width","align","label-align","class-name","label-class-name"],"description":"[Docs](https://wflynn.cn/pages/descriptions#descriptions-item)"},"vft-dialog":{"attributes":["model-value / v-model","title","width","fullscreen","top","modal","modal-penetrable","modal-class","header-class","body-class","footer-class","append-to-body","append-to","lock-scroll","open-delay","close-delay","close-on-click-modal","close-on-press-escape","show-close","before-close","draggable","overflow","center","align-center","destroy-on-close","close-icon","z-index","header-aria-level","transition","custom-class","open","opened","close","closed","open-auto-focus","close-auto-focus"],"description":"在保留当前页面状态的情况下,告知用户并承载相关操作。\n\n[Docs](https://wflynn.cn/pages/dialog#dialog)"},"vft-divider":{"attributes":["direction","border-style","content-position"],"description":"区隔内容的分割线。\n\n[Docs](https://wflynn.cn/pages/divider#divider)"},"vft-drawer":{"attributes":["model-value / v-model","append-to-body","lock-scroll","before-close","close-on-click-modal","close-on-press-escape","open-delay","close-delay","custom-class ^(deprecated)","destroy-on-close","modal","direction","show-close","size","title","with-header","modal-class","z-index","open","opened","close","closed"],"description":"有些时候, `Dialog` 组件并不满足我们的需求, 比如你的表单很长, 亦或是你需要临时展示一些文档, `Drawer`\n\n[Docs](https://wflynn.cn/pages/drawer#drawer)"},"vft-dropdown":{"attributes":["type","size","max-height","split-button","disabled","placement","trigger","hide-on-click","show-timeout","hide-timeout","role","tabindex","popper-class","popper-options","teleported","click","command","visible-change"],"description":"将动作或菜单折叠到下拉菜单中。\n\n[Docs](https://wflynn.cn/pages/dropdown#dropdown)"},"vft-dropdown-menu":{"description":"[Docs](https://wflynn.cn/pages/dropdown#dropdown-menu)"},"vft-dropdown-item":{"attributes":["command","disabled","divided","icon"],"description":"[Docs](https://wflynn.cn/pages/dropdown#dropdown-item)"},"vft-empty":{"attributes":["image","image-size","description"],"description":"空状态时的占位提示。\n\n[Docs](https://wflynn.cn/pages/empty#empty)"},"vft-form":{"attributes":["model","rules","inline","label-position","label-width","label-suffix","hide-required-asterisk","require-asterisk-position","show-message","inline-message","status-icon","validate-on-rule-change","size","disabled","scroll-to-error","scroll-into-view-options","validate"],"description":"表单包含 `输入框`, `单选框`, `下拉选择`, `多选框` 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。\n\n[Docs](https://wflynn.cn/pages/form#form)"},"vft-form-item":{"attributes":["prop","label","label-width","required","rules","error","show-message","inline-message","size","for","validate-status"],"description":"[Docs](https://wflynn.cn/pages/form#formitem)"},"vft-icon":{"attributes":["icon","size","color","hoverColor","rotate","rotateSpeed","pointer"],"description":"图标 [图标资源地址]\n\n[Docs](https://wflynn.cn/pages/icon#icon)"},"vft-image":{"attributes":["src","fit","hide-on-click-modal","`loading` ^(2.2.3)","lazy","scroll-container","alt","referrerpolicy","preview-src-list","z-index","initial-index","close-on-press-escape","preview-teleported","load","error","switch","close"],"description":"图片容器,在保留所有原生 img 的特性下,支持懒加载,自定义占位、加载失败等\n\n[Docs](https://wflynn.cn/pages/image#image)"},"vft-image-viewer":{"attributes":["url-list","z-index","initial-index","infinite","hide-on-click-modal","teleported","zoom-rate","close","switch"],"description":"[Docs](https://wflynn.cn/pages/image#image-viewer)"},"vft-input-number":{"attributes":["model-value / v-model","min","max","step","step-strictly","precision","size","readonly","disabled","controls","controls-position","name","label","placeholder","id","value-on-clear ^(2.2.0)","validate-event","change","blur","focus"],"description":"仅允许输入标准的数字值,可定义范围\n\n[Docs](https://wflynn.cn/pages/input-number#input-number)"},"vft-input":{"attributes":["type","model-value / v-model","maxlength","minlength","show-word-limit","placeholder","clearable","formatter","parser","show-password","disabled","size","prefix-icon","suffix-icon","rows","autosize","autocomplete","name","readonly","max","min","step","resize","autofocus","form","label ^(a11y)","tabindex","validate-event","input-style","blur","focus","change","input","clear"],"description":"通过鼠标或键盘输入字符\n\n[Docs](https://wflynn.cn/pages/input#input)"},"vft-row":{"attributes":["gutter","justify","align","tag"],"description":"[Docs](https://wflynn.cn/pages/layout#row)"},"vft-col":{"attributes":["span","offset","push","pull","xs","sm","md","lg","xl","tag"],"description":"[Docs](https://wflynn.cn/pages/layout#col)"},"vft-link":{"attributes":["type","underline","disabled","href","icon"],"description":"文字超链接\n\n[Docs](https://wflynn.cn/pages/link#link)"},"vft-list-cell":{"attributes":["list","cellHeight","leftTextDistance","activeIndex","item-click"],"description":"菜单列表\n\n[Docs](https://wflynn.cn/pages/list-cell#listcell)"},"vft-logo":{"attributes":["title","logo","jump-path","click"],"description":"用于展示品牌 `logo` 和标题的组件,支持点击跳转功能。\n\n[Docs](https://wflynn.cn/pages/logo#logo)"},"vft-menu":{"attributes":["mode","collapse","ellipsis","default-active","default-openeds","unique-opened","menu-trigger","router","collapse-transition","popper-effect","select","open","close"],"description":"为网站提供导航功能的菜单。\n\n[Docs](https://wflynn.cn/pages/menu#menu)"},"vft-sub-menu":{"attributes":["index","popper-class","show-timeout","hide-timeout","disabled","popper-append-to-body(已废弃)","teleported","popper-offset","expand-close-icon","expand-open-icon","collapse-close-icon","collapse-open-icon"],"description":"[Docs](https://wflynn.cn/pages/menu#submenu)"},"vft-menu-item":{"attributes":["index","route","disabled","click"],"description":"[Docs](https://wflynn.cn/pages/menu#menu-item)"},"vft-menu-item-group":{"attributes":["title"],"description":"[Docs](https://wflynn.cn/pages/menu#menu-item-group)"},"vft-modal":{"attributes":["model-value / v-model","title","width","fullscreen","top","modal","append-to-body","lock-scroll","open-delay","close-delay","close-on-click-modal","close-on-press-escape","show-close","before-close","draggable","center","align-center","destroy-on-close","showActionButtonGroup","showSubmitButton","showCancelButton","submitButtonOptions","cancelButtonOptions","actionRowOptions","open","opened","close","closed","open-auto-focus","close-auto-focus"],"description":"在保留当前页面状态的情况下,告知用户并承载相关操作。\n\n[Docs](https://wflynn.cn/pages/modal#modal)"},"vft-page-wrapper":{"attributes":["title"],"description":"页面 demo 容器\n\n[Docs](https://wflynn.cn/pages/page-wrapper#pagewrapper)"},"vft-pagination":{"attributes":["small","background","page-size / v-model:page-size","default-page-size","total","page-count","pager-count","current-page / v-model:current-page","default-current-page","layout","page-sizes","popper-class","prev-text","prev-icon","next-text","next-icon","disabled","hide-on-single-page","size-change","current-change","prev-click","next-click"],"description":"当数据量过多时,使用分页分解数据。\n\n[Docs](https://wflynn.cn/pages/pagination#pagination)"},"vft-popconfirm":{"attributes":["title","confirm-button-text","cancel-button-text","confirm-button-type","cancel-button-type","icon","icon-color","hide-icon","hide-after","teleported","persistent","width"],"description":"点击某个元素弹出一个简单的气泡确认框\n\n[Docs](https://wflynn.cn/pages/popconfirm#popconfirm)"},"vft-popover":{"attributes":["trigger","trigger-keys","title","effect","content","width","placement","disabled","visible / v-model:visible","offset","transition","show-arrow","popper-options","popper-class","popper-style","show-after","hide-after","auto-close","tabindex","teleported","append-to","persistent","virtual-triggering","virtual-ref","show","before-enter","after-enter","hide","before-leave","after-leave"],"description":"<!-- more -->\n\n[Docs](https://wflynn.cn/pages/popover#popover)"},"vft-progress":{"attributes":["percentage","type","stroke-width","text-inside","status","indeterminate","duration","color","width","show-text","stroke-linecap","format","striped","striped-flow"],"description":"用于展示操作进度,告知用户当前状态和预期。\n\n[Docs](https://wflynn.cn/pages/progress#progress)"},"vft-radio":{"attributes":["model-value / v-model","label","disabled","border","size","name","change"],"description":"在一组备选项中进行单选\n\n[Docs](https://wflynn.cn/pages/radio#radio)"},"vft-radio-group":{"attributes":["model-value / v-model","size","disabled","text-color","fill","validate-event","label ^(a11y)","name","id","change"],"description":"[Docs](https://wflynn.cn/pages/radio#radiogroup)"},"vft-radio-button":{"attributes":["label","disabled","name"],"description":"[Docs](https://wflynn.cn/pages/radio#radiobutton)"},"vft-result":{"attributes":["title","sub-title","icon"],"description":"用于对用户的操作结果或者异常状态做反馈。\n\n[Docs](https://wflynn.cn/pages/result#result)"},"vft-scrollbar":{"attributes":["height","max-height","native","wrap-style","wrap-class","view-style","view-class","noresize","tag","always","min-size","scroll"],"description":"用于替换浏览器原生滚动条。\n\n[Docs](https://wflynn.cn/pages/scrollbar#scrollbar)"},"vft-select":{"attributes":["model-value / v-model","options","multiple","disabled","value-key","size","clearable","clear-icon","collapse-tags","multiple-limit","name","effect","autocomplete","placeholder","filterable","allow-create","reserve-keyword","no-data-text","popper-class","popper-append-to-body ^(deprecated)","teleported","persistent","popper-options","automatic-dropdown","height","scrollbar-always-on","remote","remote-method","validate-event","placement","collapse-tags-tooltip","change","visible-change","remove-tag","clear","blur","focus"],"description":"在某些使用情况下,单个选择器可能最终加载数万行数据。 将这么多的数据渲染至 DOM 中可能会给浏览器带来负担,从而造成性能问题。\n\n[Docs](https://wflynn.cn/pages/select#select)"},"vft-side-menu-侧边菜单":{"attributes":["menus","width","height","collapse","collapse-width","is-fixed-left","show-collapse","default-active","default-openeds","default-openeds-level","unique-opened","attr-mapping","menu-top-bottom-height","drag-option","drag-width-cfg","use-router-jump","open-disabled","disabled-judge-turn-over","auto-scroll-active-dom","open-menu-collapse","disable-sub-menu-action","select","update:collapse","update:width","drag-end","drag-width-end","sub-menu-click","sub-menu-open-click","menu-item-mouseenter","menu-item-mouseleave"],"description":"侧边导航菜单组件,提供丰富的功能配置,支持折叠、拖拽宽度、自定义属性映射等特性。\n\n[Docs](https://wflynn.cn/pages/side-menu#sidemenu-侧边菜单)"},"vft-skeleton-item":{"attributes":["variant"],"description":"[Docs](https://wflynn.cn/pages/skeleton#skeletonitem)"},"vft-space":{"attributes":["alignment","class","direction","prefix-cls","style","spacer","size","wrap","fill","fill-ratio"],"description":"虽然我们拥有 [Divider 组件]\n\n[Docs](https://wflynn.cn/pages/space#space)"},"vft-switch":{"attributes":["model-value / v-model","disabled","loading","size","width","inline-prompt","active-icon","inactive-icon","active-text","inactive-text","active-value","inactive-value","active-color","inactive-color","border-color","name","validate-event","before-change","change"],"description":"表示两种相互对立的状态间的切换,多用于触发「开/关」。\n\n[Docs](https://wflynn.cn/pages/switch#switch)"},"vft-table":{"attributes":["maxHeight","columns","data","loading","height","pageSize","pageNum","total","defaultSort","tableConfig","sticky","pagePlacement","pageOptions"],"description":"<!-- more -->\n\n[Docs](https://wflynn.cn/pages/table#table)"},"vft-tabs":{"attributes":["model-value / v-model","type","closable","addable","editable","tab-position","stretch","before-leave","tab-click","tab-change","tab-remove","tab-add","edit"],"description":"分隔内容上有关联但属于不同类别的数据集合。\n\n[Docs](https://wflynn.cn/pages/tabs#tabs)"},"vft-tab-pane":{"attributes":["label","disabled","name","closable","lazy"],"description":"[Docs](https://wflynn.cn/pages/tabs#tab-pane)"},"vft-check-tag":{"attributes":["checked","change"],"description":"[Docs](https://wflynn.cn/pages/tag#checktag)"},"vft-tag":{"attributes":["type","closable","disable-transitions","hit","color","size","effect","round","click","close"],"description":"用于标记和选择。\n\n[Docs](https://wflynn.cn/pages/tag#tag)"},"vft-time-picker":{"attributes":["model-value / v-model","readonly","disabled","editable","clearable","size","placeholder","start-placeholder","end-placeholder","is-range","arrow-control","popper-class","range-separator","format","default-value","id","name","label ^(a11y)","prefix-icon","clear-icon","disabled-hours","disabled-minutes","disabled-seconds","teleported","tabindex","change","blur","focus","visible-change"],"description":"用于选择或输入日期\n\n[Docs](https://wflynn.cn/pages/time-picker#timepicker)"},"vft-tooltip":{"attributes":["role","show-arrow","arrow-offset","virtual-ref","virtual-triggering","id","open","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","strategy","style","className","effect","visible / v-model:visible","enterable","pure","focus-on-show","trapping","popper-class","popper-style","reference-el","trigger-target-el","stop-popper-mouse-event","aria-label ^(a11y)","before-show","before-hide","show","hide","open","close"],"description":"常用于展示鼠标 hover 时的提示信息。\n\n[Docs](https://wflynn.cn/pages/tooltip#tooltip)"},"vft-tree":{"attributes":["data","empty-text","node-key","props","render-after-expand","load","render-content","highlight-current","default-expand-all","expand-on-click-node","check-on-click-node","auto-expand-parent","default-expanded-keys","show-checkbox","check-strictly","default-checked-keys","current-node-key","filter-node-method","accordion","indent","icon","lazy","draggable","allow-drag","allow-drop","node-click","node-contextmenu","check-change","check","current-change","node-expand","node-collapse","node-drag-start","node-drag-enter","node-drag-leave","node-drag-over","node-drag-end","node-drop"],"description":"用清晰的层级结构展示信息,可展开或折叠。\n\n[Docs](https://wflynn.cn/pages/tree#tree)"},"vft-upload":{"attributes":["action","headers","method","multiple","data","name","with-credentials","show-file-list","drag","accept","on-preview","on-remove","on-success","on-error","on-progress","on-change","on-exceed","before-upload","before-remove","file-list` / `v-model:file-list","list-type","auto-upload","http-request","disabled","limit"],"description":"通过点击或者拖拽上传文件。\n\n[Docs](https://wflynn.cn/pages/upload#upload)"},"vft-date-time-select":{"attributes":["dateList","defaultFormat","placement","change"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/date-time-select#datetimeselect)"},"vft-horizontal-menu":{"attributes":["menus","defaultActive","defaultOpeneds","attrMapping","useRouterJump","openDisabled","disabledJudgeTurnOver","subMenuCfg","maxRowLength","open","close"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/horizontal-menu#horizontalmenu)"},"vft-icon-text":{"attributes":["text","icon","color","hoverColor","distance","reverse","size","direction","pointer"],"description":"文字与图标组合\n\n[Docs](https://wflynn.cn/pages/icon-text#icontext)"},"vft-search":{"attributes":["modelValue","placeholder","prefixIcon","suffixIcon","clearable","clearIcon","width","activeWidth","usePopover","popoverCfg","update:modelValue","blur","focus","clear","enter","prefixClick","suffixClick","mouseenter","mouseleave","keydown","change"],"description":"搜索,以及搜索框\n\n[Docs](https://wflynn.cn/pages/search#search)"},"vft-side-menu":{"attributes":["menus","uniqueOpened","isFixedLeft","autoScrollActiveDom","collapse","defaultActive","defaultOpeneds","width","collapseWidth","height","attrMapping","extraHeight","menuTopBottomHeight","showCollapse","dragOption","dragWidthCfg","useRouterJump","openDisabled","update:collapse","update:width","dragEnd","dragWidthEnd","select","menuItemMouseenter","menuItemMouseleave"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/side-menu#sidemenu)"},"vft-super-form":{"attributes":["register","submit"],"description":"自定义时间选择器\n\n[Docs](https://wflynn.cn/pages/super-form#superform)"}}
@@ -353,6 +353,7 @@ $E: null;
353
353
 
354
354
  #{$selector} {
355
355
  width: $width;
356
+ height: $width;
356
357
  background: transparent;
357
358
 
358
359
  &-thumb {