@opentiny/vue-docs 3.28.1 → 3.30.0

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 (285) hide show
  1. package/demos/apis/action-menu.js +22 -0
  2. package/demos/apis/alert.js +19 -22
  3. package/demos/apis/button-group.js +15 -0
  4. package/demos/apis/calendar-view.js +5 -5
  5. package/demos/apis/cascader-view.js +5 -5
  6. package/demos/apis/dialog-box.js +39 -38
  7. package/demos/apis/drawer.js +31 -0
  8. package/demos/apis/dropdown.js +39 -1
  9. package/demos/apis/filter-panel.js +21 -1
  10. package/demos/apis/fluent-editor.js +30 -0
  11. package/demos/apis/form.js +11 -0
  12. package/demos/apis/fullscreen.js +10 -11
  13. package/demos/apis/grid.js +131 -16
  14. package/demos/apis/guide.js +14 -0
  15. package/demos/apis/link.js +11 -0
  16. package/demos/apis/message.js +48 -22
  17. package/demos/apis/modal.js +34 -31
  18. package/demos/apis/notify.js +13 -13
  19. package/demos/apis/rate.js +15 -0
  20. package/demos/apis/search-box.js +343 -0
  21. package/demos/apis/select.js +14 -2
  22. package/demos/apis/tag-input.js +182 -0
  23. package/demos/apis/tree.js +23 -23
  24. package/demos/mobile-first/app/button-group/display-mode.vue +31 -0
  25. package/demos/mobile-first/app/button-group/webdoc/button-group.js +13 -0
  26. package/demos/mobile-first/app/calendar-view/webdoc/calendar-view.js +5 -4
  27. package/demos/mobile-first/app/modal/webdoc/modal.js +2 -1
  28. package/demos/pc/app/alert/center.spec.ts +8 -0
  29. package/demos/pc/app/alert/custom-close.spec.ts +39 -9
  30. package/demos/pc/app/alert/icon.spec.ts +18 -7
  31. package/demos/pc/app/alert/show-icon.spec.ts +1 -1
  32. package/demos/pc/app/anchor/webdoc/anchor.js +1 -0
  33. package/demos/pc/app/base-select/copy-multi.spec.ts +1 -1
  34. package/demos/pc/app/button-group/display-mode-composition-api.vue +23 -0
  35. package/demos/pc/app/button-group/display-mode.spec.ts +0 -0
  36. package/demos/pc/app/button-group/display-mode.vue +31 -0
  37. package/demos/pc/app/button-group/sup-composition-api.vue +1 -0
  38. package/demos/pc/app/button-group/sup.vue +1 -0
  39. package/demos/pc/app/button-group/webdoc/button-group.js +14 -0
  40. package/demos/pc/app/calendar-view/calendar-event.spec.ts +1 -1
  41. package/demos/pc/app/calendar-view/custom-day-bg-color.vue +10 -0
  42. package/demos/pc/app/calendar-view/webdoc/calendar-view.js +4 -4
  43. package/demos/pc/app/cascader/filter-mode-composition-api.vue +2 -3
  44. package/demos/pc/app/checkbox/checked-composition-api.vue +3 -3
  45. package/demos/pc/app/checkbox/checked.vue +3 -3
  46. package/demos/pc/app/date-picker/align.spec.ts +10 -13
  47. package/demos/pc/app/date-picker/clear.spec.ts +3 -3
  48. package/demos/pc/app/date-picker/default-value.spec.ts +4 -4
  49. package/demos/pc/app/date-picker/events.spec.ts +2 -2
  50. package/demos/pc/app/date-picker/format.spec.ts +3 -3
  51. package/demos/pc/app/date-picker/now.spec.ts +4 -4
  52. package/demos/pc/app/date-picker/shortcuts.spec.ts +1 -1
  53. package/demos/pc/app/date-picker/slot.spec.ts +5 -5
  54. package/demos/pc/app/dialog-box/basic-usage.spec.ts +5 -5
  55. package/demos/pc/app/dialog-box/form-in-dialog.spec.ts +1 -2
  56. package/demos/pc/app/drawer/basic-usage.spec.ts +4 -3
  57. package/demos/pc/app/drawer/close-on-press-escape.spec.ts +4 -2
  58. package/demos/pc/app/drawer/placement.spec.ts +4 -4
  59. package/demos/pc/app/drawer/show-header.spec.ts +3 -2
  60. package/demos/pc/app/drawer/webdoc/drawer.js +3 -2
  61. package/demos/pc/app/dropdown/show-icon-composition-api.vue +1 -1
  62. package/demos/pc/app/dropdown/show-icon.vue +1 -1
  63. package/demos/pc/app/dropdown/tip-composition-api.vue +5 -2
  64. package/demos/pc/app/dropdown/tip.vue +5 -2
  65. package/demos/pc/app/dropdown/webdoc/dropdown.js +2 -2
  66. package/demos/pc/app/filter-panel/size-composition-api.vue +58 -0
  67. package/demos/pc/app/filter-panel/size.spec.ts +23 -0
  68. package/demos/pc/app/filter-panel/size.vue +68 -0
  69. package/demos/pc/app/filter-panel/webdoc/filter-panel.js +13 -0
  70. package/demos/pc/app/flowchart/basic-usage-composition-api.vue +10 -260
  71. package/demos/pc/app/flowchart/basic-usage.spec.ts +2 -1
  72. package/demos/pc/app/flowchart/basic-usage.vue +4 -249
  73. package/demos/pc/app/flowchart/slots-composition-api.vue +182 -0
  74. package/demos/pc/app/flowchart/slots.spec.ts +24 -0
  75. package/demos/pc/app/flowchart/slots.vue +193 -0
  76. package/demos/pc/app/flowchart/webdoc/flowchart.js +14 -2
  77. package/demos/pc/app/form/basic-usage.spec.ts +6 -4
  78. package/demos/pc/app/form/custom-validation-string-length-composition-api.vue +38 -0
  79. package/demos/pc/app/form/custom-validation-string-length.spec.ts +18 -0
  80. package/demos/pc/app/form/custom-validation-string-length.vue +28 -13
  81. package/demos/pc/app/form/group-form-composition-api.vue +2 -2
  82. package/demos/pc/app/form/group-form.vue +2 -2
  83. package/demos/pc/app/grid/filter/advanced-filter-composition-api.vue +1 -1
  84. package/demos/pc/app/grid/filter/advanced-filter.spec.js +1 -0
  85. package/demos/pc/app/grid/filter/advanced-filter.vue +1 -1
  86. package/demos/pc/app/grid/filter/custom-filter-composition-api.vue +46 -23
  87. package/demos/pc/app/grid/filter/custom-filter.spec.js +1 -1
  88. package/demos/pc/app/grid/filter/custom-filter.vue +47 -24
  89. package/demos/pc/app/grid/filter/default-filter-composition-api.vue +5 -1
  90. package/demos/pc/app/grid/filter/default-filter.spec.ts +1 -0
  91. package/demos/pc/app/grid/filter/default-filter.vue +4 -1
  92. package/demos/pc/app/grid/filter/filter-label-value-composition-api.vue +71 -0
  93. package/demos/pc/app/grid/filter/filter-label-value.spec.ts +27 -0
  94. package/demos/pc/app/grid/filter/filter-label-value.vue +78 -0
  95. package/demos/pc/app/grid/filter/input-filter-custom-component-composition-api.vue +116 -0
  96. package/demos/pc/app/grid/filter/input-filter-custom-component.spec.ts +20 -0
  97. package/demos/pc/app/grid/filter/input-filter-custom-component.vue +126 -0
  98. package/demos/pc/app/grid/filter/layout-order-filter-composition-api.vue +114 -0
  99. package/demos/pc/app/grid/filter/layout-order-filter.spec.ts +31 -0
  100. package/demos/pc/app/grid/filter/layout-order-filter.vue +123 -0
  101. package/demos/pc/app/grid/toolbar/custom-toolbar.spec.js +1 -1
  102. package/demos/pc/app/grid/webdoc/grid-filter.js +89 -40
  103. package/demos/pc/app/guide/show-close-composition-api.vue +77 -0
  104. package/demos/pc/app/guide/show-close.spec.ts +37 -0
  105. package/demos/pc/app/guide/show-close.vue +84 -0
  106. package/demos/pc/app/guide/webdoc/guide.js +12 -0
  107. package/demos/pc/app/icon/advance-icons.js +108 -2
  108. package/demos/pc/app/icon/advance-usage-composition-api.vue +26 -1
  109. package/demos/pc/app/icon/advance-usage.vue +27 -1
  110. package/demos/pc/app/icon/webdoc/icon.js +5 -3
  111. package/demos/pc/app/input/resize.spec.ts +2 -2
  112. package/demos/pc/app/link/custom-icon-composition-api.vue +1 -1
  113. package/demos/pc/app/link/custom-icon.vue +1 -1
  114. package/demos/pc/app/link/target-composition-api.vue +24 -0
  115. package/demos/pc/app/link/target.spec.ts +41 -0
  116. package/demos/pc/app/link/target.vue +30 -0
  117. package/demos/pc/app/link/webdoc/link.js +14 -0
  118. package/demos/pc/app/message/basic-usage-composition-api.vue +48 -0
  119. package/demos/pc/app/message/basic-usage.spec.ts +27 -0
  120. package/demos/pc/app/message/basic-usage.vue +50 -0
  121. package/demos/pc/app/message/message-close-composition-api.vue +25 -0
  122. package/demos/pc/app/message/message-close.spec.ts +9 -0
  123. package/demos/pc/app/message/message-close.vue +32 -0
  124. package/demos/pc/app/message/message-duration-composition-api.vue +25 -0
  125. package/demos/pc/app/message/message-duration.spec.ts +9 -0
  126. package/demos/pc/app/message/message-duration.vue +32 -0
  127. package/demos/pc/app/message/prevent-duplicate-composition-api.vue +25 -0
  128. package/demos/pc/app/message/prevent-duplicate.spec.ts +9 -0
  129. package/demos/pc/app/message/prevent-duplicate.vue +32 -0
  130. package/demos/pc/app/message/webdoc/message.cn.md +7 -0
  131. package/demos/pc/app/message/webdoc/message.en.md +7 -0
  132. package/demos/pc/app/message/webdoc/message.js +56 -0
  133. package/demos/pc/app/modal/basic-usage.spec.ts +3 -3
  134. package/demos/pc/app/modal/modal-footer-composition-api.vue +3 -3
  135. package/demos/pc/app/modal/modal-footer.spec.ts +9 -4
  136. package/demos/pc/app/modal/modal-footer.vue +3 -3
  137. package/demos/pc/app/modal/modal-header.spec.ts +2 -2
  138. package/demos/pc/app/modal/modal-size.spec.ts +2 -2
  139. package/demos/pc/app/modal/status.spec.ts +22 -15
  140. package/demos/pc/app/nav-menu/overflow.spec.ts +1 -1
  141. package/demos/pc/app/popconfirm/custom-class.spec.ts +0 -1
  142. package/demos/pc/app/popconfirm/slot-message.spec.ts +10 -2
  143. package/demos/pc/app/popconfirm/trigger.spec.ts +16 -12
  144. package/demos/pc/app/popover/basic-usage.spec.js +3 -8
  145. package/demos/pc/app/popover/custom-popper.spec.js +2 -2
  146. package/demos/pc/app/popover/delay.spec.js +2 -2
  147. package/demos/pc/app/popover/disabled.spec.js +2 -2
  148. package/demos/pc/app/popover/events.spec.js +1 -1
  149. package/demos/pc/app/popover/ignore-boundaries.spec.js +2 -3
  150. package/demos/pc/app/popover/offset.spec.js +17 -31
  151. package/demos/pc/app/radio/dynamic-disable-composition-api.vue +3 -3
  152. package/demos/pc/app/radio/dynamic-disable.vue +2 -2
  153. package/demos/pc/app/rate/clearable-composition-api.vue +20 -0
  154. package/demos/pc/app/rate/clearable.spec.js +74 -0
  155. package/demos/pc/app/rate/clearable.vue +28 -0
  156. package/demos/pc/app/rate/webdoc/rate.js +12 -0
  157. package/demos/pc/app/search/events.spec.ts +1 -1
  158. package/demos/pc/app/search-box/append-to-body-composition-api.vue +300 -0
  159. package/demos/pc/app/search-box/append-to-body.vue +308 -0
  160. package/demos/pc/app/search-box/auto-match-composition-api.vue +162 -0
  161. package/demos/pc/app/search-box/auto-match.vue +170 -0
  162. package/demos/pc/app/search-box/basic-usage-composition-api.vue +269 -0
  163. package/demos/pc/app/search-box/basic-usage.vue +277 -0
  164. package/demos/pc/app/search-box/custom-panel-composition-api.vue +63 -0
  165. package/demos/pc/app/search-box/custom-panel.vue +72 -0
  166. package/demos/pc/app/search-box/default-field-composition-api.vue +163 -0
  167. package/demos/pc/app/search-box/default-field.vue +171 -0
  168. package/demos/pc/app/search-box/editable-composition-api.vue +311 -0
  169. package/demos/pc/app/search-box/editable.vue +320 -0
  170. package/demos/pc/app/search-box/empty-placeholder-composition-api.vue +162 -0
  171. package/demos/pc/app/search-box/empty-placeholder.vue +170 -0
  172. package/demos/pc/app/search-box/events-composition-api.vue +169 -0
  173. package/demos/pc/app/search-box/events.vue +173 -0
  174. package/demos/pc/app/search-box/group-key-composition-api.vue +257 -0
  175. package/demos/pc/app/search-box/group-key.vue +266 -0
  176. package/demos/pc/app/search-box/help-composition-api.vue +166 -0
  177. package/demos/pc/app/search-box/help.vue +175 -0
  178. package/demos/pc/app/search-box/id-map-key-composition-api.vue +131 -0
  179. package/demos/pc/app/search-box/id-map-key.vue +140 -0
  180. package/demos/pc/app/search-box/item-placeholder-composition-api.vue +119 -0
  181. package/demos/pc/app/search-box/item-placeholder.vue +127 -0
  182. package/demos/pc/app/search-box/max-length-composition-api.vue +29 -0
  183. package/demos/pc/app/search-box/max-length.vue +38 -0
  184. package/demos/pc/app/search-box/max-time-length-composition-api.vue +53 -0
  185. package/demos/pc/app/search-box/max-time-length.vue +62 -0
  186. package/demos/pc/app/search-box/merge-tag-composition-api.vue +59 -0
  187. package/demos/pc/app/search-box/merge-tag.vue +68 -0
  188. package/demos/pc/app/search-box/panel-max-height-composition-api.vue +162 -0
  189. package/demos/pc/app/search-box/panel-max-height.vue +170 -0
  190. package/demos/pc/app/search-box/potential-match-composition-api.vue +193 -0
  191. package/demos/pc/app/search-box/potential-match.vue +201 -0
  192. package/demos/pc/app/search-box/settings-composition-api.vue +163 -0
  193. package/demos/pc/app/search-box/settings.vue +171 -0
  194. package/demos/pc/app/search-box/size-composition-api.vue +162 -0
  195. package/demos/pc/app/search-box/size.vue +170 -0
  196. package/demos/pc/app/search-box/split-input-value-composition-api.vue +162 -0
  197. package/demos/pc/app/search-box/split-input-value.vue +170 -0
  198. package/demos/pc/app/search-box/suffix-icon-composition-api.vue +209 -0
  199. package/demos/pc/app/search-box/suffix-icon.vue +219 -0
  200. package/demos/pc/app/search-box/v-model-composition-api.vue +174 -0
  201. package/demos/pc/app/search-box/v-model.vue +182 -0
  202. package/demos/pc/app/search-box/webdoc/search-box.cn.md +7 -0
  203. package/demos/pc/app/search-box/webdoc/search-box.en.md +7 -0
  204. package/demos/pc/app/search-box/webdoc/search-box.js +257 -0
  205. package/demos/pc/app/select/copy-multi.spec.ts +1 -1
  206. package/demos/pc/app/select-wrapper/copy-multi.spec.ts +2 -1
  207. package/demos/pc/app/tabs/basic-usage.spec.ts +2 -2
  208. package/demos/pc/app/tabs/more-show-all.spec.ts +2 -1
  209. package/demos/pc/app/tabs/tabs-events-close-composition-api.vue +8 -2
  210. package/demos/pc/app/tabs/tabs-events-close.vue +8 -2
  211. package/demos/pc/app/tag/basic-usage.spec.ts +1 -1
  212. package/demos/pc/app/tag/color-border.spec.ts +2 -2
  213. package/demos/pc/app/tag/max-width.spec.ts +1 -1
  214. package/demos/pc/app/tag/size.spec.ts +3 -3
  215. package/demos/pc/app/tag/slot-default.spec.ts +3 -3
  216. package/demos/pc/app/tag-group/basic-usage.spec.js +5 -5
  217. package/demos/pc/app/tag-group/tag-group-effect.spec.js +10 -10
  218. package/demos/pc/app/tag-group/tag-group-event.spec.js +1 -1
  219. package/demos/pc/app/tag-input/basic-usage-composition-api.vue +29 -0
  220. package/demos/pc/app/tag-input/basic-usage.spec.ts +0 -0
  221. package/demos/pc/app/tag-input/basic-usage.vue +38 -0
  222. package/demos/pc/app/tag-input/clearable-tag-composition-api.vue +20 -0
  223. package/demos/pc/app/tag-input/clearable-tag.vue +27 -0
  224. package/demos/pc/app/tag-input/collapsed-tag-composition-api.vue +20 -0
  225. package/demos/pc/app/tag-input/collapsed-tag.vue +28 -0
  226. package/demos/pc/app/tag-input/disabled-readonly-composition-api.vue +20 -0
  227. package/demos/pc/app/tag-input/disabled-readonly.vue +29 -0
  228. package/demos/pc/app/tag-input/draggable-tag-composition-api.vue +12 -0
  229. package/demos/pc/app/tag-input/draggable-tag.spec.ts +0 -0
  230. package/demos/pc/app/tag-input/draggable-tag.vue +20 -0
  231. package/demos/pc/app/tag-input/max-composition-api.vue +20 -0
  232. package/demos/pc/app/tag-input/max.vue +28 -0
  233. package/demos/pc/app/tag-input/prefix-suffix-composition-api.vue +26 -0
  234. package/demos/pc/app/tag-input/prefix-suffix.vue +34 -0
  235. package/demos/pc/app/tag-input/separator-tag-composition-api.vue +20 -0
  236. package/demos/pc/app/tag-input/separator-tag.vue +28 -0
  237. package/demos/pc/app/tag-input/webdoc/tag-input.cn.md +7 -0
  238. package/demos/pc/app/tag-input/webdoc/tag-input.en.md +7 -0
  239. package/demos/pc/app/tag-input/webdoc/tag-input.js +107 -0
  240. package/demos/pc/app/time-picker/basic-usage.spec.ts +5 -4
  241. package/demos/pc/app/time-picker/clearable.spec.ts +5 -4
  242. package/demos/pc/app/time-picker/default-value.spec.ts +2 -2
  243. package/demos/pc/app/time-picker/disabled.spec.ts +4 -3
  244. package/demos/pc/app/time-picker/format.spec.ts +8 -11
  245. package/demos/pc/app/time-picker/is-range.spec.ts +4 -3
  246. package/demos/pc/app/time-picker/name.spec.ts +1 -1
  247. package/demos/pc/app/time-picker/placeholder.spec.ts +3 -3
  248. package/demos/pc/app/time-picker/popper-class.spec.ts +1 -1
  249. package/demos/pc/app/time-picker/size.spec.ts +2 -1
  250. package/demos/pc/app/time-select/basic-usage.spec.ts +1 -1
  251. package/demos/pc/app/time-select/clear-icon.spec.ts +1 -2
  252. package/demos/pc/app/time-select/focus.spec.ts +1 -1
  253. package/demos/pc/app/time-select/picker-options.spec.ts +2 -1
  254. package/demos/pc/app/time-select/range-placeholder.spec.ts +2 -2
  255. package/demos/pc/app/time-select/size-medium.spec.ts +3 -3
  256. package/demos/pc/app/tooltip/delay.spec.js +7 -9
  257. package/demos/pc/app/tooltip/offset.spec.js +0 -2
  258. package/demos/pc/app/tooltip/popper-options.spec.js +2 -1
  259. package/demos/pc/menus.js +6 -4
  260. package/demos/pc/webdoc/changelog-en.md +209 -86
  261. package/demos/pc/webdoc/changelog.md +176 -257
  262. package/demos/pc/webdoc/develop-demo-en.md +13 -13
  263. package/demos/pc/webdoc/import-components.md +1 -1
  264. package/demos/pc/webdoc/introduce.md +2 -0
  265. package/demos/pc/webdoc/skills-en.md +107 -0
  266. package/demos/pc/webdoc/skills.md +107 -0
  267. package/demos/pc/webdoc/theme-en.md +82 -79
  268. package/demos/pc/webdoc/v3.28.0-release-article.md +943 -0
  269. package/demos/saas/menus.js +1 -0
  270. package/package.json +21 -20
  271. package/playground/App.vue +6 -4
  272. package/playground/shims/vue-search-box.mjs +154 -0
  273. package/public/static/css/mobile-dark-theme.css +1 -0
  274. package/src/i18n/index.js +1 -2
  275. package/src/main.js +8 -5
  276. package/src/style.css +5 -0
  277. package/src/views/components-doc/common.vue +0 -25
  278. package/src/views/components-doc/mobile.vue +49 -2
  279. package/vite.config.ts +3 -2
  280. package/vite.extend.ts +65 -0
  281. package/demos/pc/app/grid/webdoc/grid-ai-agent.js +0 -23
  282. package/demos/pc/webdoc/mcp-en.md +0 -101
  283. package/demos/pc/webdoc/mcp.md +0 -101
  284. package/src/components/mcp-docs.vue +0 -33
  285. package/src/composable/useTinyRemoter.ts +0 -176
@@ -5,6 +5,21 @@ export default {
5
5
  name: 'drawer',
6
6
  type: 'component',
7
7
  props: [
8
+ {
9
+ name: 'append-to-body',
10
+ type: 'boolean',
11
+ defaultValue: 'false',
12
+ desc: {
13
+ 'zh-CN': 'drawer 本身是否插入到 body 上',
14
+ 'en-US': 'Whether the drawer itself is inserted into the body'
15
+ },
16
+ mode: ['pc', 'mobile-first'],
17
+ pcDemo: '',
18
+ mfDemo: '',
19
+ meta: {
20
+ stable: '3.30.0'
21
+ }
22
+ },
8
23
  {
9
24
  name: 'before-close',
10
25
  type: '(type) => boolean',
@@ -236,6 +251,21 @@ export default {
236
251
  pcDemo: 'events',
237
252
  mfDemo: ''
238
253
  },
254
+ {
255
+ name: 'closed',
256
+ type: '() => void',
257
+ defaultValue: '',
258
+ desc: {
259
+ 'zh-CN': '关闭抽屉动画结束时的事件',
260
+ 'en-US': 'Event emitted when drawer closing animation ends'
261
+ },
262
+ mode: ['pc', 'mobile-first'],
263
+ pcDemo: 'events',
264
+ mfDemo: '',
265
+ meta: {
266
+ stable: '3.29.0'
267
+ }
268
+ },
239
269
  {
240
270
  name: 'confirm',
241
271
  type: '() => void',
@@ -371,6 +401,7 @@ interface IDrawerConfigs extends IDrawerProps {
371
401
  events: {
372
402
  // 监听事件
373
403
  close: () => void
404
+ closed: () => void
374
405
  confirm: () => void
375
406
  show: (instance: Component) => void
376
407
  },
@@ -498,7 +498,40 @@ export default {
498
498
  'en-US': 'Sets the level-2 drop-down menu flag.'
499
499
  },
500
500
  mode: ['mobile-first']
501
- }
501
+ },
502
+ {
503
+ name: 'tip',
504
+ type: 'string | Function',
505
+ defaultValue: '',
506
+ desc: {
507
+ 'zh-CN': '提示信息内容,支持字符串或函数。函数接收参数 { itemData, vm }',
508
+ 'en-US': 'Tooltip content, supports string or function. Function receives parameters { itemData, vm }'
509
+ },
510
+ mode: ['pc'],
511
+ pcDemo: 'tip'
512
+ },
513
+ {
514
+ name: 'tip-position',
515
+ type: 'string',
516
+ defaultValue: "'right'",
517
+ desc: {
518
+ 'zh-CN': '提示信息的位置,可选值:top / right / bottom / left',
519
+ 'en-US': 'Position of tooltip, optional values: top / right / bottom / left'
520
+ },
521
+ mode: ['pc'],
522
+ pcDemo: 'tip'
523
+ },
524
+ {
525
+ name: 'tip-effect',
526
+ type: 'string',
527
+ defaultValue: "'light'",
528
+ desc: {
529
+ 'zh-CN': '提示信息的主题,可选值:light(浅色)/ dark(深色)',
530
+ 'en-US': 'Theme of tooltip, optional values: light / dark'
531
+ },
532
+ mode: ['pc'],
533
+ pcDemo: 'tip'
534
+ },
502
535
  ],
503
536
  events: [],
504
537
  methods: [],
@@ -555,6 +588,11 @@ interface IItemData {
555
588
  label?: string
556
589
  disabled?: boolean
557
590
  divided?: boolean
591
+ tip?: string | ((params: { itemData: IItemData, vm: any }) => string)
592
+ tipPosition?: 'top' | 'right' | 'bottom' | 'left'
593
+ tipEffect?: 'light' | 'dark'
594
+ children?: IItemData[]
595
+ icon?: Component
558
596
  }
559
597
  `
560
598
  },
@@ -17,7 +17,15 @@ export default {
17
17
  pcDemo: 'tip'
18
18
  },
19
19
  {
20
- mode: []
20
+ name: 'clearable',
21
+ type: 'boolean',
22
+ defaultValue: 'true',
23
+ desc: {
24
+ 'zh-CN': '是否显示清空按钮',
25
+ 'en-US': 'Whether to display the clear button'
26
+ },
27
+ mode: ['pc'],
28
+ pcDemo: 'tip'
21
29
  },
22
30
  {
23
31
  name: 'disabled',
@@ -76,6 +84,18 @@ export default {
76
84
  mode: ['pc'],
77
85
  pcDemo: 'popper-class'
78
86
  },
87
+ {
88
+ name: 'size',
89
+ type: "'medium'",
90
+ defaultValue: '',
91
+ desc: {
92
+ 'zh-CN': '过滤器面板的尺寸,可选值:medium(中等尺寸),不设置则为默认尺寸',
93
+ 'en-US': 'Size of the filter panel. Optional value: medium. If not set, the default size is used'
94
+ },
95
+ stable: '3.29.0',
96
+ mode: ['pc'],
97
+ pcDemo: 'size'
98
+ },
79
99
  {
80
100
  name: 'tip',
81
101
  type: 'string',
@@ -18,6 +18,22 @@ export default {
18
18
  },
19
19
  pcDemo: 'before-editor-init'
20
20
  },
21
+ {
22
+ name: 'before-link-open',
23
+ typeAnchorName: 'IBeforeLinkOpen',
24
+ type: 'IBeforeLinkOpen',
25
+ defaultValue: '',
26
+ meta: {
27
+ stable: '3.30.0'
28
+ },
29
+ desc: {
30
+ 'zh-CN':
31
+ '点击富文本中的超链接前触发。返回 false(或 Promise resolve false)可拦截跳转;返回 true/undefined 继续跳转。',
32
+ 'en-US': ''
33
+ },
34
+ mode: ['pc', 'mobile-first'],
35
+ pcDemo: ''
36
+ },
21
37
  {
22
38
  name: 'data-type',
23
39
  type: 'boolean',
@@ -103,6 +119,20 @@ export default {
103
119
  }
104
120
  ],
105
121
  types: [
122
+ {
123
+ name: 'IBeforeLinkOpen',
124
+ type: 'type',
125
+ code: `
126
+ type IBeforeLinkOpen = (payload: {
127
+ url: string // 过滤后的安全链接
128
+ rawUrl: string // 原始 href
129
+ target: string // 超链接 target,默认 _blank
130
+ rel: string // 超链接 rel
131
+ event: MouseEvent // 点击事件对象
132
+ quill: any // 当前编辑器实例
133
+ }) => boolean | void | Promise<boolean | void>
134
+ `
135
+ },
106
136
  {
107
137
  name: 'IImageUploadOptions',
108
138
  type: 'interface',
@@ -580,6 +580,17 @@ export default {
580
580
  mode: ['pc'],
581
581
  pcDemo: 'slot-label'
582
582
  },
583
+ {
584
+ name: 'label-line',
585
+ defaultValue: 2,
586
+ type: 'number',
587
+ desc: {
588
+ 'zh-CN': '标签文本显示的行数',
589
+ 'en-US': 'The number of lines displayed in the label text'
590
+ },
591
+ mode: ['mobile-first'],
592
+ pcDemo: 'slot-label'
593
+ },
583
594
  {
584
595
  name: 'error',
585
596
  defaultValue: '',
@@ -12,7 +12,7 @@ export default {
12
12
  desc: {
13
13
  'zh-CN': '组件式使用时,点击组件 wrapper 是否关闭全屏显示。默认为 true',
14
14
  'en-US':
15
- 'When the component is used in component mode, click the component wrapper to determine whether to disable full-screen display. The default value is true.'
15
+ 'In component mode, whether clicking the component wrapper exits fullscreen display. Default is true.'
16
16
  },
17
17
  mode: ['pc'],
18
18
  pcDemo: ''
@@ -23,7 +23,7 @@ export default {
23
23
  defaultValue: '',
24
24
  desc: {
25
25
  'zh-CN': '组件式使用时,控制组件是否全屏显示。默认为 false',
26
- 'en-US': 'Whether to display a component in full screen mode. The default value is false'
26
+ 'en-US': 'In component mode, controls whether the component displays in fullscreen. Default is false.'
27
27
  },
28
28
  mode: ['pc'],
29
29
  pcDemo: 'example-component'
@@ -34,7 +34,7 @@ export default {
34
34
  defaultValue: '',
35
35
  desc: {
36
36
  'zh-CN': '自定义组件 wrapper 的样式类名',
37
- 'en-US': 'Style class name of the custom component wrapper'
37
+ 'en-US': 'Custom CSS class name for the component wrapper.'
38
38
  },
39
39
  mode: ['pc'],
40
40
  pcDemo: ''
@@ -45,8 +45,7 @@ export default {
45
45
  defaultValue: '',
46
46
  desc: {
47
47
  'zh-CN': '显示模式。true 为网页全屏,false 为浏览器全屏。默认值为 false',
48
- 'en-US':
49
- 'Display mode. The value true indicates that the web page is displayed in full screen mode, and the value false indicates that the browser is displayed in full screen mode. The default value is false'
48
+ 'en-US': 'Display mode. true for webpage fullscreen, false for browser fullscreen. Default is false.'
50
49
  },
51
50
  mode: ['pc'],
52
51
  pcDemo: 'example-component'
@@ -58,7 +57,7 @@ export default {
58
57
  desc: {
59
58
  'zh-CN': '是否将目标元素移动到 body 下。true 为移动,false 为不移动。默认值为 false',
60
59
  'en-US':
61
- 'Indicates whether to move the target element to the body. true: move; false: do not move. The default value is false'
60
+ 'Whether to teleport the target element to body. true to move, false to not move. Default is false.'
62
61
  },
63
62
  mode: ['pc'],
64
63
  pcDemo: 'example-component'
@@ -69,7 +68,7 @@ export default {
69
68
  defaultValue: '',
70
69
  desc: {
71
70
  'zh-CN': '在全屏显示时,目标元素的 zIndex',
72
- 'en-US': 'ZIndex of the target element in full-screen display'
71
+ 'en-US': 'z-index value of the target element when in fullscreen display.'
73
72
  },
74
73
  mode: ['pc'],
75
74
  pcDemo: 'example-component'
@@ -82,7 +81,7 @@ export default {
82
81
  defaultValue: '',
83
82
  desc: {
84
83
  'zh-CN': '拦截事件',
85
- 'en-US': 'Intercept Events.'
84
+ 'en-US': 'Intercept event handler.'
86
85
  },
87
86
  mode: ['pc'],
88
87
  pcDemo: 'before-change'
@@ -92,7 +91,7 @@ export default {
92
91
  defaultValue: '',
93
92
  desc: {
94
93
  'zh-CN': '组件式使用时,更新 fullscreen 属性',
95
- 'en-US': 'Update the fullscreen attribute in component mode.'
94
+ 'en-US': 'In component mode, updates the fullscreen prop.'
96
95
  },
97
96
  mode: ['pc'],
98
97
  pcDemo: 'example-component'
@@ -104,7 +103,7 @@ export default {
104
103
  defaultValue: '',
105
104
  desc: {
106
105
  'zh-CN': '函数式使用时,切换全屏模式',
107
- 'en-US': 'Switch the full-screen mode when the function mode is used.'
106
+ 'en-US': 'In function mode, toggles between fullscreen and normal mode.'
108
107
  },
109
108
  mode: ['pc'],
110
109
  pcDemo: 'example-api'
@@ -116,7 +115,7 @@ export default {
116
115
  defaultValue: '',
117
116
  desc: {
118
117
  'zh-CN': '自定义内容,需要在 layout 中列出 slot',
119
- 'en-US': 'User-defined content. Slots must be listed in the layout.'
118
+ 'en-US': 'Custom content slot. Must be declared in the layout.'
120
119
  },
121
120
  mode: ['pc'],
122
121
  pcDemo: 'example-component'
@@ -30,6 +30,23 @@ export default {
30
30
  pcDemo: 'grid-data-source#data-source-auto-load',
31
31
  mfDemo: ''
32
32
  },
33
+ {
34
+ name: 'filter-popper-options',
35
+ typeAnchorName: 'IPopperOption',
36
+ type: 'IPopperOption',
37
+ defaultValue: '{}',
38
+ desc: {
39
+ 'zh-CN': '过滤面板弹出层配置项;具体参考 IPopperOption 的描述',
40
+ 'en-US':
41
+ 'Configuration item for the filter panel pop-up layer; refer to the description of IPopperOption for details'
42
+ },
43
+ meta: {
44
+ stable: '3.29.0'
45
+ },
46
+ mode: ['pc'],
47
+ pcDemo: 'grid-filter#filter-default-filter',
48
+ mfDemo: ''
49
+ },
33
50
  {
34
51
  name: 'auto-resize',
35
52
  type: 'boolean',
@@ -3217,6 +3234,21 @@ export default {
3217
3234
  }
3218
3235
  ],
3219
3236
  types: [
3237
+ {
3238
+ name: 'IPopperOption',
3239
+ type: 'interface',
3240
+ code: `
3241
+ interface IPopperOption {
3242
+ bubbling: boolean // 是否监听元素所有上级有滚动元素的scroll事件,监听到则更新popper的位置。用于解决某些弹出层位置在页面滚动时,位置不正确的场景,默认true
3243
+ followReferenceHide: boolean // 当触发源隐藏时,自动隐藏弹出层,默认true
3244
+ removeOnDestroy: boolean // 弹出层消失后,是否移除弹出层的DOM元素,布尔false
3245
+ updateHiddenPopperOnScroll: boolean // 滚动过程中是否更新隐藏的弹出层位置
3246
+ boundariesElement: 'viewport' | 'body' | HTMLElement // 滚动过程中,弹出层的碰撞边界。 默认值为: 'viewport'
3247
+ ignoreBoundaries: boolean // 忽略边界判断,弹出的位置始终是设置的 placement 值
3248
+ scrollParent: HTMLElement // 指定滚动的父节点,优化级最高。 默认为null
3249
+ }
3250
+ `
3251
+ },
3220
3252
  {
3221
3253
  name: 'IRow',
3222
3254
  type: 'interface',
@@ -4169,25 +4201,108 @@ interface IEditorConfig {
4169
4201
  {
4170
4202
  name: 'IFilterConfig',
4171
4203
  type: 'type',
4204
+ depTypes: ['IRow', 'IColumnConfig'],
4172
4205
  code: `
4173
4206
  interface IFilterConfig {
4174
- // 设置在显示枚举选项功能是否为多选, 仅在 enumable:true 下有效
4175
- multi: boolean
4207
+ // 设置在显示枚举选项功能是否为多选,仅在 enumable:true 下有效,默认 true
4208
+ multi?: boolean
4176
4209
  // 设置在过滤面板中显示枚举选项
4177
- enumable: boolean
4178
- // 设置在过滤面板中显示默认的筛选条件
4179
- defaultFilter: boolean
4180
- // 设置在过滤面板中显示输入筛选的项
4181
- inputFilter: boolean
4182
- // 设置在显示枚举选项功能(enumable)下制定静态数据源,也可以是函数返回一个Promise对象
4183
- values: {
4184
- // 设置枚举数据的显示值属性字段, 默认'label'
4185
- label: string
4186
- // 设置枚举数据的实际值属性字段, 默认'value'
4187
- value: string
4188
- }[] | () => Promise
4189
- // 3.25.0新增,设置过滤面板根节点属性
4190
- attrs: { [props: string]: string }
4210
+ enumable?: boolean
4211
+ // 设置在过滤面板中显示空/非空筛选条件
4212
+ defaultFilter?: boolean
4213
+ // 设置在过滤面板中显示输入筛选,true 使用默认 input,或传入 IInputFilterConfig 配置
4214
+ inputFilter?: boolean | IInputFilterConfig
4215
+ // 设置枚举选项的静态数据源,也可为函数 (params) => Promise<Array<{label,value,checked?}>>
4216
+ values?: Array<{ [key: string]: any }> | (params: { property: string; filter: IFilterConfig }) => Promise<Array<{ [key: string]: any }>>
4217
+ // 设置枚举数据的显示值属性字段,默认 'label'
4218
+ label?: string
4219
+ // 设置枚举数据的实际值属性字段,默认 'value'
4220
+ value?: string
4221
+ // 设置筛选项的显示顺序和组合,默认为 'input,enum,default,extends,base'
4222
+ // 可选项:input | enum | default | extends | base | simple(简化版与其它互斥)
4223
+ layout?: string
4224
+ // 初始筛选条件
4225
+ condition?: IFilterCondition
4226
+ // 扩展快捷筛选项,点击后直接应用对应 method 筛选
4227
+ extends?: IExtendsFilterItem[]
4228
+ // 自定义筛选方法,用于 filter 插槽或 extends 扩展项
4229
+ method?: (params: { row: IRow; column: IColumnConfig; property: string }) => boolean
4230
+ // 简化版筛选配置,layout 需包含 'simple'
4231
+ simpleFilter?: ISimpleFilterConfig
4232
+ // 3.25.0 新增,设置过滤面板根节点属性
4233
+ attrs?: Record<string, string>
4234
+ // 数据源配置,用于异步获取枚举选项
4235
+ dataset?: any
4236
+ }
4237
+
4238
+ // 输入筛选配置
4239
+ interface IInputFilterConfig {
4240
+ // 输入组件,默认 'input',可传入 TinyDatePicker、TinyNumeric 等
4241
+ component?: string | object
4242
+ // 传递给输入组件的属性
4243
+ attrs?: Record<string, any>
4244
+ // 筛选关系选项,内置:equals|unequal|greaterThan|lessThan|equalToGreaterThan|equalToLessThan|contains|startwith|endwith|exclude
4245
+ relations?: IRelationFilterItem[]
4246
+ // 默认选中的 relation 值
4247
+ relation?: string
4248
+ // 重置输入时的回调
4249
+ onResetInputFilter?: (ref: any) => void
4250
+ }
4251
+
4252
+ // 关系选项项
4253
+ interface IRelationFilterItem {
4254
+ label: string
4255
+ value: string
4256
+ // 自定义筛选方法,(params) => boolean,不传则使用内置 relation 逻辑
4257
+ method?: (params: { value: any; input: any; row?: IRow; column?: IColumnConfig }) => boolean
4258
+ }
4259
+
4260
+ // 扩展筛选项
4261
+ interface IExtendsFilterItem {
4262
+ label: string
4263
+ value?: string
4264
+ // 本地筛选时必填;服务端筛选可不填
4265
+ method?: (params: { value: any; row: IRow; column: IColumnConfig }) => boolean
4266
+ }
4267
+
4268
+ // 筛选条件
4269
+ interface IFilterCondition {
4270
+ input?: string | number
4271
+ relation?: string
4272
+ empty?: boolean | null
4273
+ type?: 'input' | 'enum' | 'empty' | 'extend' | 'date' | 'custom' | null
4274
+ value?: any[]
4275
+ dateList?: [string, string]
4276
+ }
4277
+
4278
+ // 简化版筛选配置
4279
+ interface ISimpleFilterConfig {
4280
+ // 是否为日期时间模式,true 时渲染日期范围选择器
4281
+ isDatetime?: boolean
4282
+ // 是否显示全选按钮,多选模式下有效;搜索模式下与 searchable 互斥显示
4283
+ selectAll?: boolean
4284
+ // 日期时间配置,isDatetime 为 true 时必填
4285
+ datetimeConfig?: IDatetimeFilterConfig
4286
+ // 搜索配置,isDatetime 为 false 时可配置,用于在枚举列表中增加搜索框
4287
+ searchConfig?: ISearchFilterConfig
4288
+ }
4289
+
4290
+ // 简化版-日期时间配置
4291
+ interface IDatetimeFilterConfig {
4292
+ component: object
4293
+ format?: string
4294
+ valueFormat?: string
4295
+ type?: 'date' | 'datetime' | 'daterange'
4296
+ min?: Date
4297
+ max?: Date
4298
+ startDate?: string
4299
+ endDate?: string
4300
+ }
4301
+
4302
+ // 简化版-搜索配置
4303
+ interface ISearchFilterConfig {
4304
+ component?: object
4305
+ searchValue?: string
4191
4306
  }
4192
4307
  `
4193
4308
  },
@@ -152,6 +152,20 @@ export default {
152
152
  meta: {
153
153
  stable: '3.27.0'
154
154
  }
155
+ },
156
+ {
157
+ name: 'show-close',
158
+ type: 'boolean',
159
+ defaultValue: 'true',
160
+ desc: {
161
+ 'zh-CN': '是否显示关闭按钮',
162
+ 'en-US': ''
163
+ },
164
+ mode: ['pc'],
165
+ pcDemo: 'show-close',
166
+ meta: {
167
+ stable: '3.29.0'
168
+ }
155
169
  }
156
170
  ],
157
171
  events: [],
@@ -70,6 +70,17 @@ export default {
70
70
  },
71
71
  mode: ['pc'],
72
72
  pcDemo: 'basic-usage'
73
+ },
74
+ {
75
+ name: 'target',
76
+ type: "'_self' | '_blank' | '_parent' | '_top'",
77
+ defaultValue: '_self',
78
+ desc: {
79
+ 'zh-CN': '链接打开方式',
80
+ 'en-US': 'Link open mode'
81
+ },
82
+ mode: ['pc'],
83
+ pcDemo: 'target'
73
84
  }
74
85
  ],
75
86
  events: [
@@ -1,5 +1,5 @@
1
1
  export default {
2
- mode: ['mobile-first'],
2
+ mode: ['mobile-first', 'pc'],
3
3
  apis: [
4
4
  {
5
5
  name: 'message',
@@ -7,63 +7,89 @@ export default {
7
7
  props: [
8
8
  {
9
9
  name: 'duration',
10
- type: 'String',
11
- defaultValue: '',
10
+ type: 'string',
11
+ defaultValue: '3000',
12
12
  desc: {
13
13
  'zh-CN': '设置提示信息停留时间',
14
- 'en-US': ''
14
+ 'en-US': 'Set the prompt information retention time'
15
15
  },
16
- mode: ['mobile-first'],
17
- mfDemo: ''
16
+ mode: ['mobile-first', 'pc'],
17
+ mfDemo: '',
18
+ pcDemo: 'message-duration'
18
19
  },
19
20
  {
20
21
  name: 'id',
21
- type: 'String',
22
+ type: 'string',
22
23
  defaultValue: '',
23
24
  desc: {
24
25
  'zh-CN': '设置唯一的 id 防止重复提示,只对 type=message 有效',
25
- 'en-US': ''
26
+ 'en-US': 'Set a unique id to prevent duplicate prompts, only valid for type=message'
26
27
  },
27
- mode: ['mobile-first'],
28
- mfDemo: ''
28
+ mode: ['mobile-first', 'pc'],
29
+ mfDemo: '',
30
+ pcDemo: 'prevent-duplicate'
29
31
  },
30
32
  {
31
33
  name: 'message',
32
- type: 'String',
34
+ type: 'string',
33
35
  defaultValue: '',
34
36
  desc: {
35
37
  'zh-CN': '设置提示信息',
36
- 'en-US': ''
38
+ 'en-US': 'Set the prompt information'
37
39
  },
38
- mode: ['mobile-first'],
39
- mfDemo: ''
40
+ mode: ['mobile-first', 'pc'],
41
+ mfDemo: '',
42
+ pcDemo: 'basic-usage'
40
43
  },
41
44
  {
42
45
  name: 'show-close',
43
- type: 'String',
46
+ type: 'string',
44
47
  defaultValue: '',
45
48
  desc: {
46
49
  'zh-CN': '控制弹窗是否显示关闭图标',
47
- 'en-US': ''
50
+ 'en-US': 'Whether to display the close icon'
48
51
  },
49
52
  mode: ['mobile-first'],
50
53
  mfDemo: ''
51
54
  },
55
+ {
56
+ name: 'message-closable',
57
+ type: 'boolean',
58
+ defaultValue: 'false',
59
+ desc: {
60
+ 'zh-CN': '是否显示关闭按钮,默认值为 false',
61
+ 'en-US': 'close button is displayed or not, the default value is false'
62
+ },
63
+ mode: ['pc'],
64
+ mfDemo: '',
65
+ pcDemo: 'message-close'
66
+ },
52
67
  {
53
68
  name: 'status',
54
- type: 'String',
55
- defaultValue: '',
69
+ typeAnchorName: 'IStatus',
70
+ type: 'IStatus',
71
+ defaultValue: "'info'",
56
72
  desc: {
57
- 'zh-CN': '设置消息状态,可选值有 info | success | warning | error',
58
- 'en-US': ''
73
+ 'zh-CN': '设置消息状态',
74
+ 'en-US': 'Set the message status'
59
75
  },
60
- mode: ['mobile-first'],
61
- mfDemo: ''
76
+ mode: ['mobile-first', 'pc'],
77
+ mfDemo: '',
78
+ pcDemo: 'basic-usage'
62
79
  }
63
80
  ],
64
81
  events: [],
65
82
  methods: [],
66
83
  slots: []
67
84
  }
85
+ ],
86
+ types: [
87
+ {
88
+ name: 'IStatus',
89
+ type: 'type',
90
+ code: `
91
+ type IStatus = 'info' | 'success' | 'warning' | 'error' | 'loading'
92
+ `
93
+ }
68
94
  ]
69
95
  }