@opentiny/vue-docs 2.1.10 → 2.2.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 (765) hide show
  1. package/demos/pc/app/action-menu/basic-usage.spec.ts +19 -10
  2. package/demos/pc/app/action-menu/disabled.spec.ts +3 -3
  3. package/demos/pc/app/action-menu/events.spec.ts +15 -39
  4. package/demos/pc/app/action-menu/max-show-num.spec.ts +8 -6
  5. package/demos/pc/app/action-menu/more-text.spec.ts +5 -5
  6. package/demos/pc/app/action-menu/popper-class.spec.ts +7 -5
  7. package/demos/pc/app/action-menu/slot-item.spec.ts +5 -5
  8. package/demos/pc/app/action-menu/spacing.spec.ts +2 -2
  9. package/demos/pc/app/action-menu/text-field.spec.ts +6 -6
  10. package/demos/pc/app/action-menu/webdoc/action-menu.js +12 -11
  11. package/demos/pc/app/alert/basic-usage.spec.ts +16 -3
  12. package/demos/pc/app/alert/center.spec.ts +1 -1
  13. package/demos/pc/app/alert/custom-close.spec.ts +26 -25
  14. package/demos/pc/app/alert/icon.spec.ts +5 -4
  15. package/demos/pc/app/alert/show-icon.spec.ts +2 -2
  16. package/demos/pc/app/alert/size.spec.ts +2 -2
  17. package/demos/pc/app/alert/title.spec.ts +1 -0
  18. package/demos/pc/app/autocomplete/webdoc/autocomplete.js +1 -1
  19. package/demos/pc/app/breadcrumb/webdoc/breadcrumb.js +1 -1
  20. package/demos/pc/app/carousel/webdoc/carousel.js +11 -8
  21. package/demos/pc/app/cascader/webdoc/cascader.js +11 -7
  22. package/demos/pc/app/cascader-panel/webdoc/cascader-panel.js +9 -5
  23. package/demos/pc/app/checkbox/basic-usage.spec.ts +4 -2
  24. package/demos/pc/app/checkbox/border.spec.ts +12 -5
  25. package/demos/pc/app/checkbox/checkbox-button-multiple.spec.ts +26 -4
  26. package/demos/pc/app/checkbox/checkbox-button.spec.ts +12 -17
  27. package/demos/pc/app/checkbox/checkbox-events.spec.ts +6 -5
  28. package/demos/pc/app/checkbox/checkbox-group-composition-api.vue +1 -1
  29. package/demos/pc/app/checkbox/checkbox-group.spec.ts +6 -5
  30. package/demos/pc/app/checkbox/checkbox-group.vue +1 -1
  31. package/demos/pc/app/checkbox/checkbox-slot.spec.ts +6 -5
  32. package/demos/pc/app/checkbox/checked.spec.ts +5 -4
  33. package/demos/pc/app/checkbox/custom-color.spec.ts +13 -0
  34. package/demos/pc/app/checkbox/description.spec.ts +12 -0
  35. package/demos/pc/app/checkbox/dynamic-create-checkbox.spec.ts +4 -3
  36. package/demos/pc/app/checkbox/group-options.spec.ts +2 -2
  37. package/demos/pc/app/checkbox/indeterminate.spec.ts +9 -5
  38. package/demos/pc/app/checkbox/min-max.spec.ts +4 -2
  39. package/demos/pc/app/checkbox/size.spec.ts +19 -0
  40. package/demos/pc/app/checkbox/text.spec.ts +10 -5
  41. package/demos/pc/app/checkbox/vertical-checkbox.spec.ts +8 -6
  42. package/demos/pc/app/collapse/before-close.spec.ts +1 -1
  43. package/demos/pc/app/collapse/disable.spec.ts +3 -3
  44. package/demos/pc/app/collapse/events.spec.ts +1 -1
  45. package/demos/pc/app/collapse/title.spec.ts +4 -4
  46. package/demos/pc/app/color-picker/history.spec.ts +9 -5
  47. package/demos/pc/app/color-picker/predefine.spec.ts +9 -5
  48. package/demos/pc/app/color-picker/size.spec.ts +4 -4
  49. package/demos/pc/app/container/basic-usage-composition-api.vue +38 -21
  50. package/demos/pc/app/container/basic-usage.spec.js +4 -11
  51. package/demos/pc/app/container/basic-usage.vue +40 -23
  52. package/demos/pc/app/container/custom-with-height-composition-api.vue +7 -7
  53. package/demos/pc/app/container/custom-with-height.spec.js +3 -7
  54. package/demos/pc/app/container/custom-with-height.vue +7 -7
  55. package/demos/pc/app/container/webdoc/container.js +1 -1
  56. package/demos/pc/app/dropdown/basic-usage.spec.ts +13 -6
  57. package/demos/pc/app/dropdown/disabled.spec.ts +49 -5
  58. package/demos/pc/app/dropdown/events.spec.ts +37 -5
  59. package/demos/pc/app/dropdown/events.vue +1 -1
  60. package/demos/pc/app/dropdown/hide-on-click.spec.ts +5 -4
  61. package/demos/pc/app/dropdown/multi-level-composition-api.vue +29 -3
  62. package/demos/pc/app/dropdown/multi-level.spec.ts +31 -5
  63. package/demos/pc/app/dropdown/multi-level.vue +2 -10
  64. package/demos/pc/app/dropdown/options.spec.ts +88 -8
  65. package/demos/pc/app/dropdown/size.spec.ts +3 -2
  66. package/demos/pc/app/dropdown/slots-composition-api.vue +3 -3
  67. package/demos/pc/app/dropdown/slots.spec.ts +11 -4
  68. package/demos/pc/app/dropdown/split-button.spec.ts +5 -3
  69. package/demos/pc/app/dropdown/title.spec.ts +2 -2
  70. package/demos/pc/app/dropdown/trigger.spec.ts +6 -2
  71. package/demos/pc/app/dropdown/webdoc/dropdown.js +62 -43
  72. package/demos/pc/app/fall-menu/custom-menuitem-composition-api.vue +3 -3
  73. package/demos/pc/app/fall-menu/custom-menuitem.vue +3 -3
  74. package/demos/pc/app/fall-menu/webdoc/fall-menu.js +5 -4
  75. package/demos/pc/app/form/{basic-usage.spec.js → basic-usage.spec.ts} +7 -13
  76. package/demos/pc/app/form/custom-validation-rule-composition-api.vue +3 -1
  77. package/demos/pc/app/form/custom-validation-rule.spec.ts +54 -0
  78. package/demos/pc/app/form/custom-validation-rule.vue +3 -1
  79. package/demos/pc/app/form/display-only.spec.ts +21 -0
  80. package/demos/pc/app/form/form-disabled.spec.js +7 -7
  81. package/demos/pc/app/form/form-in-row.spec.js +3 -3
  82. package/demos/pc/app/form/form-row-col.spec.js +2 -2
  83. package/demos/pc/app/form/form-validate-field.spec.ts +16 -0
  84. package/demos/pc/app/form/{form-validation.spec.js → form-validation.spec.ts} +5 -16
  85. package/demos/pc/app/form/{group-form.spec.js → group-form.spec.ts} +3 -3
  86. package/demos/pc/app/form/label-align-composition-api.vue +1 -1
  87. package/demos/pc/app/form/label-align.spec.ts +16 -0
  88. package/demos/pc/app/form/label-align.vue +1 -1
  89. package/demos/pc/app/form/{label-align.spec.js → label-position.spec.ts} +15 -13
  90. package/demos/pc/app/form/message-type.spec.ts +20 -0
  91. package/demos/pc/app/form/{novalid-tip.spec.js → novalid-tip.spec.ts} +2 -3
  92. package/demos/pc/app/form/overflow-title.spec.ts +14 -0
  93. package/demos/pc/app/form/popper-options-composition-api.vue +49 -0
  94. package/demos/pc/app/form/popper-options.spec.ts +18 -0
  95. package/demos/pc/app/form/popper-options.vue +59 -0
  96. package/demos/pc/app/form/size.spec.ts +26 -0
  97. package/demos/pc/app/form/{slot-label.spec.js → slot-label.spec.ts} +2 -2
  98. package/demos/pc/app/form/{smb-required.spec.js → smb-required.spec.ts} +8 -11
  99. package/demos/pc/app/form/validate-debounce.spec.ts +13 -0
  100. package/demos/pc/app/form/{validate-type.spec.js → validate-type.spec.ts} +2 -4
  101. package/demos/pc/app/form/{validation-position.spec.js → validation-position.spec.ts} +3 -7
  102. package/demos/pc/app/form/webdoc/form.js +22 -0
  103. package/demos/pc/app/grid/drag/row-drag-ctrl-composition-api.vue +17 -5
  104. package/demos/pc/app/grid/drag/row-drag-ctrl.spec.js +17 -5
  105. package/demos/pc/app/grid/drag/row-drag-ctrl.vue +17 -5
  106. package/demos/pc/app/grid/filter/dynamic-filter-composition-api.vue +127 -0
  107. package/demos/pc/app/grid/filter/dynamic-filter.spec.js +11 -0
  108. package/demos/pc/app/grid/filter/dynamic-filter.vue +136 -0
  109. package/demos/pc/app/grid/slot/editor-slot-composition-api.vue +1 -1
  110. package/demos/pc/app/grid/slot/editor-slot.vue +74 -75
  111. package/demos/pc/app/grid/webdoc/grid-drag.js +1 -1
  112. package/demos/pc/app/grid/webdoc/grid-filter.js +9 -0
  113. package/demos/pc/app/grid/webdoc/grid-slot.js +4 -1
  114. package/demos/pc/app/grid/webdoc/grid.js +19 -9
  115. package/demos/pc/app/guide/basic-usage.spec.ts +9 -7
  116. package/demos/pc/app/guide/callback.spec.ts +8 -10
  117. package/demos/pc/app/guide/highlight-box.spec.ts +2 -2
  118. package/demos/pc/app/guide/offset.spec.ts +2 -2
  119. package/demos/pc/app/guide/only-content.spec.ts +1 -1
  120. package/demos/pc/app/icon/list-composition-api.vue +1 -1
  121. package/demos/pc/app/icon/list.vue +1 -1
  122. package/demos/pc/app/icon/webdoc/icon.js +1 -1
  123. package/demos/pc/app/image/basic-usage.spec.ts +2 -5
  124. package/demos/pc/app/image/events.spec.ts +5 -4
  125. package/demos/pc/app/image/lazy.spec.ts +7 -4
  126. package/demos/pc/app/image/preview-in-dialog.spec.ts +1 -1
  127. package/demos/pc/app/image/preview.spec.ts +30 -26
  128. package/demos/pc/app/image/slot.spec.ts +5 -7
  129. package/demos/pc/app/image/webdoc/image.js +1 -1
  130. package/demos/pc/app/input/event.spec.ts +2 -2
  131. package/demos/pc/app/input/webdoc/input.js +1 -1
  132. package/demos/pc/app/ip-address/basic-usage.spec.ts +8 -3
  133. package/demos/pc/app/ip-address/delimiter.spec.ts +7 -7
  134. package/demos/pc/app/ip-address/disabled.spec.ts +6 -3
  135. package/demos/pc/app/ip-address/event.spec.ts +37 -17
  136. package/demos/pc/app/ip-address/readonly.spec.ts +5 -5
  137. package/demos/pc/app/ip-address/size.spec.ts +6 -4
  138. package/demos/pc/app/layout/alignment.spec.ts +3 -2
  139. package/demos/pc/app/layout/basic-usage.spec.ts +14 -14
  140. package/demos/pc/app/layout/gutter.spec.ts +7 -7
  141. package/demos/pc/app/layout/order.spec.ts +4 -2
  142. package/demos/pc/app/layout/responsive-layout.spec.ts +3 -3
  143. package/demos/pc/app/layout/tag.spec.ts +10 -0
  144. package/demos/pc/app/layout/webdoc/layout.js +13 -8
  145. package/demos/pc/app/link/custom-icon-composition-api.vue +0 -4
  146. package/demos/pc/app/link/custom-icon.vue +0 -4
  147. package/demos/pc/app/loading/webdoc/loading.js +6 -2
  148. package/demos/pc/app/milestone/basic-usage.spec.ts +10 -9
  149. package/demos/pc/app/milestone/custom-bottom-top.spec.ts +2 -2
  150. package/demos/pc/app/milestone/custom-flag.spec.ts +1 -1
  151. package/demos/pc/app/milestone/custom-icon-slot.spec.ts +1 -1
  152. package/demos/pc/app/milestone/data-field-mapping.spec.ts +1 -1
  153. package/demos/pc/app/milestone/flag-before.spec.ts +9 -7
  154. package/demos/pc/app/milestone/line-style.spec.ts +2 -2
  155. package/demos/pc/app/milestone/milestone-events.spec.ts +1 -1
  156. package/demos/pc/app/milestone/show-number.spec.ts +8 -5
  157. package/demos/pc/app/milestone/solid-style.spec.ts +8 -5
  158. package/demos/pc/app/modal/{base.spec.ts → basic-usage.spec.ts} +8 -7
  159. package/demos/pc/app/modal/duration-composition-api.vue +1 -3
  160. package/demos/pc/app/modal/duration.spec.ts +1 -1
  161. package/demos/pc/app/modal/duration.vue +1 -3
  162. package/demos/pc/app/modal/esc-closable-composition-api.vue +1 -1
  163. package/demos/pc/app/modal/esc-closable.spec.ts +1 -1
  164. package/demos/pc/app/modal/esc-closable.vue +1 -1
  165. package/demos/pc/app/modal/event-composition-api.vue +55 -0
  166. package/demos/pc/app/modal/event.spec.ts +41 -0
  167. package/demos/pc/app/modal/event.vue +60 -0
  168. package/demos/pc/app/modal/footer-btn-content-composition-api.vue +1 -1
  169. package/demos/pc/app/modal/footer-btn-content.spec.ts +18 -32
  170. package/demos/pc/app/modal/footer-btn-props.spec.ts +1 -1
  171. package/demos/pc/app/modal/footer-slot-composition-api.vue +4 -4
  172. package/demos/pc/app/modal/footer-slot.vue +4 -4
  173. package/demos/pc/app/modal/fullscreen-composition-api.vue +1 -1
  174. package/demos/pc/app/modal/fullscreen.spec.ts +1 -1
  175. package/demos/pc/app/modal/fullscreen.vue +1 -1
  176. package/demos/pc/app/modal/grid-composition-api.vue +4 -4
  177. package/demos/pc/app/modal/grid.vue +4 -4
  178. package/demos/pc/app/modal/id-composition-api.vue +1 -1
  179. package/demos/pc/app/modal/id.spec.ts +5 -3
  180. package/demos/pc/app/modal/id.vue +1 -1
  181. package/demos/pc/app/modal/is-form-reset-composition-api.vue +4 -12
  182. package/demos/pc/app/modal/is-form-reset.spec.ts +12 -10
  183. package/demos/pc/app/modal/is-form-reset.vue +4 -13
  184. package/demos/pc/app/modal/lock-scroll-composition-api.vue +2 -2
  185. package/demos/pc/app/modal/lock-scroll.spec.ts +1 -1
  186. package/demos/pc/app/modal/lock-scroll.vue +2 -2
  187. package/demos/pc/app/modal/lock-view-composition-api.vue +1 -1
  188. package/demos/pc/app/modal/lock-view.spec.ts +6 -8
  189. package/demos/pc/app/modal/lock-view.vue +1 -1
  190. package/demos/pc/app/modal/mask-closable-composition-api.vue +1 -1
  191. package/demos/pc/app/modal/mask-closable.spec.ts +2 -2
  192. package/demos/pc/app/modal/mask-closable.vue +1 -1
  193. package/demos/pc/app/modal/message-closable-composition-api.vue +13 -0
  194. package/demos/pc/app/modal/message-closable.spec.ts +14 -0
  195. package/demos/pc/app/modal/message-closable.vue +20 -0
  196. package/demos/pc/app/modal/message-composition-api.vue +1 -1
  197. package/demos/pc/app/modal/message.spec.ts +2 -1
  198. package/demos/pc/app/modal/message.vue +2 -1
  199. package/demos/pc/app/modal/min-height-composition-api.vue +2 -1
  200. package/demos/pc/app/modal/min-height.spec.ts +3 -2
  201. package/demos/pc/app/modal/min-height.vue +2 -1
  202. package/demos/pc/app/modal/min-width-composition-api.vue +2 -1
  203. package/demos/pc/app/modal/min-width.spec.ts +3 -2
  204. package/demos/pc/app/modal/min-width.vue +2 -1
  205. package/demos/pc/app/modal/resize-composition-api.vue +1 -1
  206. package/demos/pc/app/modal/resize.spec.ts +1 -1
  207. package/demos/pc/app/modal/resize.vue +1 -1
  208. package/demos/pc/app/modal/showFooter-composition-api.vue +1 -1
  209. package/demos/pc/app/modal/showFooter.spec.ts +1 -1
  210. package/demos/pc/app/modal/showFooter.vue +1 -1
  211. package/demos/pc/app/modal/showHeader-composition-api.vue +1 -1
  212. package/demos/pc/app/modal/showHeader.spec.ts +1 -1
  213. package/demos/pc/app/modal/showHeader.vue +1 -1
  214. package/demos/pc/app/modal/status-composition-api.vue +1 -14
  215. package/demos/pc/app/modal/status.spec.ts +4 -6
  216. package/demos/pc/app/modal/status.vue +1 -13
  217. package/demos/pc/app/modal/title-composition-api.vue +1 -1
  218. package/demos/pc/app/modal/title.spec.ts +1 -1
  219. package/demos/pc/app/modal/title.vue +1 -1
  220. package/demos/pc/app/modal/top-composition-api.vue +1 -1
  221. package/demos/pc/app/modal/top.spec.ts +1 -1
  222. package/demos/pc/app/modal/top.vue +1 -1
  223. package/demos/pc/app/modal/type-composition-api.vue +1 -1
  224. package/demos/pc/app/modal/type.vue +1 -1
  225. package/demos/pc/app/modal/value-composition-api.vue +1 -1
  226. package/demos/pc/app/modal/value.spec.ts +3 -10
  227. package/demos/pc/app/modal/value.vue +1 -1
  228. package/demos/pc/app/modal/webdoc/modal.js +324 -314
  229. package/demos/pc/app/modal/z-index-composition-api.vue +11 -0
  230. package/demos/pc/app/modal/{zIndex.spec.ts → z-index.spec.ts} +3 -3
  231. package/demos/pc/app/modal/{zIndex.vue → z-index.vue} +3 -3
  232. package/demos/pc/app/notify/debounceDelay.spec.ts +4 -7
  233. package/demos/pc/app/notify/notify-events.spec.ts +4 -8
  234. package/demos/pc/app/notify/webdoc/notify.js +1 -1
  235. package/demos/pc/app/pager/align.spec.ts +13 -0
  236. package/demos/pc/app/pager/basic-usage.spec.ts +5 -23
  237. package/demos/pc/app/pager/before-page-change.spec.ts +3 -3
  238. package/demos/pc/app/pager/current-page.spec.ts +5 -5
  239. package/demos/pc/app/pager/custom-layout.spec.ts +16 -16
  240. package/demos/pc/app/pager/custom-next-prev-text.spec.ts +2 -2
  241. package/demos/pc/app/pager/custom-total.spec.ts +2 -2
  242. package/demos/pc/app/pager/disabled-and-size.spec.ts +5 -4
  243. package/demos/pc/app/pager/hide-on-single-page.spec.ts +3 -3
  244. package/demos/pc/app/pager/page-append-to-body.spec.ts +2 -2
  245. package/demos/pc/app/pager/page-count.spec.ts +2 -2
  246. package/demos/pc/app/pager/page-size.spec.ts +4 -4
  247. package/demos/pc/app/pager/pager-count.spec.ts +2 -2
  248. package/demos/pc/app/pager/pager-event-composition-api.vue +1 -1
  249. package/demos/pc/app/pager/pager-event.spec.ts +27 -10
  250. package/demos/pc/app/pager/pager-event.vue +1 -1
  251. package/demos/pc/app/pager/pager-in-grid.spec.ts +3 -3
  252. package/demos/pc/app/pager/pager-mode.spec.ts +2 -2
  253. package/demos/pc/app/pager/popper-class.spec.ts +3 -2
  254. package/demos/pc/app/pager/show-total-loading.spec.ts +5 -5
  255. package/demos/pc/app/pager/webdoc/pager.js +1 -11
  256. package/demos/pc/app/popconfirm/basic-usage.spec.ts +2 -2
  257. package/demos/pc/app/popconfirm/cancel-button.spec.ts +2 -2
  258. package/demos/pc/app/popconfirm/custom-class.spec.ts +2 -2
  259. package/demos/pc/app/popconfirm/event.spec.ts +22 -3
  260. package/demos/pc/app/popconfirm/placement.spec.ts +2 -2
  261. package/demos/pc/app/popconfirm/slot-footer.spec.ts +2 -2
  262. package/demos/pc/app/popconfirm/trigger.spec.ts +2 -2
  263. package/demos/pc/app/popconfirm/type.spec.ts +4 -4
  264. package/demos/pc/app/popconfirm/width.spec.ts +2 -2
  265. package/demos/pc/app/popeditor/auto-lookup.spec.ts +1 -1
  266. package/demos/pc/app/popeditor/auto-reset.spec.ts +1 -1
  267. package/demos/pc/app/popeditor/basic-usage.spec.ts +3 -5
  268. package/demos/pc/app/popeditor/before-close.spec.ts +1 -2
  269. package/demos/pc/app/popeditor/before-reset.spec.ts +1 -1
  270. package/demos/pc/app/popeditor/clearable.spec.ts +1 -1
  271. package/demos/pc/app/popeditor/condition-form.spec.ts +16 -10
  272. package/demos/pc/app/popeditor/condition-layout.spec.ts +1 -1
  273. package/demos/pc/app/popeditor/conditions.spec.ts +1 -1
  274. package/demos/pc/app/popeditor/disabled.spec.ts +1 -2
  275. package/demos/pc/app/popeditor/draggable.spec.ts +1 -1
  276. package/demos/pc/app/popeditor/events.spec.ts +1 -1
  277. package/demos/pc/app/popeditor/grid.spec.ts +1 -1
  278. package/demos/pc/app/popeditor/icon.spec.ts +1 -1
  279. package/demos/pc/app/popeditor/multi-value-array.spec.ts +1 -5
  280. package/demos/pc/app/popeditor/multi.spec.ts +1 -1
  281. package/demos/pc/app/popeditor/pager.spec.ts +1 -1
  282. package/demos/pc/app/popeditor/readonly.spec.ts +1 -1
  283. package/demos/pc/app/popeditor/remote-search.spec.ts +1 -1
  284. package/demos/pc/app/popeditor/render-text.spec.ts +1 -1
  285. package/demos/pc/app/popeditor/resize.spec.ts +1 -1
  286. package/demos/pc/app/popeditor/selected-box.spec.ts +1 -1
  287. package/demos/pc/app/popeditor/show-clear-btn.spec.ts +6 -7
  288. package/demos/pc/app/popeditor/show-history.spec.ts +1 -1
  289. package/demos/pc/app/popeditor/show-overflow.spec.ts +3 -5
  290. package/demos/pc/app/popeditor/single-select-radio.spec.ts +1 -1
  291. package/demos/pc/app/popeditor/size.spec.ts +8 -4
  292. package/demos/pc/app/popeditor/slot-footer.spec.ts +2 -2
  293. package/demos/pc/app/popeditor/slot.spec.ts +1 -1
  294. package/demos/pc/app/popeditor/suggest.spec.ts +1 -1
  295. package/demos/pc/app/popeditor/tabindex.spec.ts +1 -1
  296. package/demos/pc/app/popeditor/textField.spec.ts +2 -2
  297. package/demos/pc/app/popeditor/title.spec.ts +2 -2
  298. package/demos/pc/app/popeditor/tree.spec.ts +1 -1
  299. package/demos/pc/app/popeditor/trigger.spec.ts +1 -1
  300. package/demos/pc/app/popeditor/width.spec.ts +1 -1
  301. package/demos/pc/app/popover/basic-usage.spec.js +1 -1
  302. package/demos/pc/app/popover/content.spec.js +4 -4
  303. package/demos/pc/app/popover/custom-popper.spec.js +3 -7
  304. package/demos/pc/app/popover/delay.spec.js +2 -5
  305. package/demos/pc/app/popover/disabled.spec.js +4 -4
  306. package/demos/pc/app/popover/dynamic-reference-composition-api.vue +36 -0
  307. package/demos/pc/app/popover/dynamic-reference.spec.js +16 -0
  308. package/demos/pc/app/popover/dynamic-reference.vue +45 -0
  309. package/demos/pc/app/popover/events.spec.js +1 -6
  310. package/demos/pc/app/popover/offset.spec.js +3 -10
  311. package/demos/pc/app/popover/popper-options.spec.js +1 -1
  312. package/demos/pc/app/popover/transition.spec.js +9 -8
  313. package/demos/pc/app/popover/trigger.spec.js +6 -6
  314. package/demos/pc/app/popover/webdoc/popover.js +16 -2
  315. package/demos/pc/app/progress/basic-usage-composition-api.vue +1 -1
  316. package/demos/pc/app/progress/basic-usage.spec.ts +13 -7
  317. package/demos/pc/app/progress/basic-usage.vue +1 -1
  318. package/demos/pc/app/progress/custom-status.spec.ts +11 -0
  319. package/demos/pc/app/progress/format-text.spec.ts +9 -1
  320. package/demos/pc/app/progress/progress-status.spec.ts +1 -1
  321. package/demos/pc/app/progress/progress-type-circle.spec.ts +6 -6
  322. package/demos/pc/app/progress/progress-type-dashboard-composition-api.vue +9 -2
  323. package/demos/pc/app/progress/progress-type-dashboard.spec.ts +4 -4
  324. package/demos/pc/app/progress/progress-type-dashboard.vue +10 -3
  325. package/demos/pc/app/radio/active-color.spec.ts +8 -5
  326. package/demos/pc/app/radio/basic-usage.spec.ts +15 -2
  327. package/demos/pc/app/radio/default-slot.spec.ts +5 -3
  328. package/demos/pc/app/radio/dynamic-disable.spec.ts +3 -1
  329. package/demos/pc/app/radio/radio-events.spec.ts +4 -2
  330. package/demos/pc/app/radio/radio-group.spec.ts +17 -0
  331. package/demos/pc/app/radio/radio-size.spec.ts +10 -6
  332. package/demos/pc/app/radio/radio-text.spec.ts +7 -4
  333. package/demos/pc/app/radio/vertical.spec.ts +4 -2
  334. package/demos/pc/app/radio/webdoc/radio.js +1 -1
  335. package/demos/pc/app/rate/allow-half.spec.js +1 -3
  336. package/demos/pc/app/rate/basic-usage.spec.js +1 -8
  337. package/demos/pc/app/rate/custom-3-threshold-colors.spec.js +2 -0
  338. package/demos/pc/app/rate/not-selected-color.spec.js +3 -3
  339. package/demos/pc/app/rate/rate-events.spec.js +1 -1
  340. package/demos/pc/app/rate/threshold-value.spec.js +2 -0
  341. package/demos/pc/app/rate/webdoc/rate.js +1 -1
  342. package/demos/pc/app/rich-text-editor/basic-usage-composition-api.vue +17 -1
  343. package/demos/pc/app/rich-text-editor/basic-usage.vue +21 -3
  344. package/demos/pc/app/rich-text-editor/webdoc/rich-text-editor.js +5 -20
  345. package/demos/pc/app/search/basic-usage.spec.ts +6 -7
  346. package/demos/pc/app/search/clearable.spec.ts +1 -1
  347. package/demos/pc/app/search/custom-search-types.spec.ts +1 -1
  348. package/demos/pc/app/search/events.spec.ts +10 -10
  349. package/demos/pc/app/search/search-types.spec.ts +1 -1
  350. package/demos/pc/app/search/show-selected-types.spec.ts +1 -1
  351. package/demos/pc/app/select/allow-create.spec.ts +23 -9
  352. package/demos/pc/app/select/automatic-dropdown-composition-api.vue +1 -1
  353. package/demos/pc/app/select/automatic-dropdown.spec.ts +21 -6
  354. package/demos/pc/app/select/automatic-dropdown.vue +1 -1
  355. package/demos/pc/app/select/basic-usage.spec.ts +9 -7
  356. package/demos/pc/app/select/binding-obj.spec.ts +8 -4
  357. package/demos/pc/app/select/cache-usage.spec.ts +8 -4
  358. package/demos/pc/app/select/clearable.spec.ts +8 -3
  359. package/demos/pc/app/select/collapse-tags.spec.ts +25 -13
  360. package/demos/pc/app/select/copy-multi.spec.ts +49 -0
  361. package/demos/pc/app/select/copy-single.spec.ts +70 -0
  362. package/demos/pc/app/select/{search-allow-copy.vue → copy-single.vue} +1 -1
  363. package/demos/pc/app/select/disabled.spec.ts +70 -27
  364. package/demos/pc/app/select/events-composition-api.vue +7 -6
  365. package/demos/pc/app/select/events.spec.ts +50 -55
  366. package/demos/pc/app/select/events.vue +7 -6
  367. package/demos/pc/app/select/filter-method.spec.ts +65 -28
  368. package/demos/pc/app/select/hide-drop.spec.ts +4 -3
  369. package/demos/pc/app/select/hide-drop.vue +34 -0
  370. package/demos/pc/app/select/input-box-type.spec.ts +49 -6
  371. package/demos/pc/app/select/is-drop-inherit-width.spec.ts +19 -14
  372. package/demos/pc/app/select/manual-focus-blur-composition-api.vue +4 -2
  373. package/demos/pc/app/select/manual-focus-blur.spec.ts +10 -6
  374. package/demos/pc/app/select/manual-focus-blur.vue +4 -2
  375. package/demos/pc/app/select/map-field.spec.ts +35 -11
  376. package/demos/pc/app/select/memoize-usage.spec.ts +11 -7
  377. package/demos/pc/app/select/memoize-usage.vue +3 -0
  378. package/demos/pc/app/select/multiple-limit.spec.ts +17 -11
  379. package/demos/pc/app/select/multiple.spec.ts +17 -13
  380. package/demos/pc/app/select/native-properties.spec.ts +8 -16
  381. package/demos/pc/app/select/nest-grid-composition-api.vue +50 -12
  382. package/demos/pc/app/select/nest-grid-disable.spec.ts +32 -20
  383. package/demos/pc/app/select/{nest-grid-remote-filter-composition-api.vue → nest-grid-remote-multi-composition-api.vue} +1 -1
  384. package/demos/pc/app/select/nest-grid-remote-multi.spec.ts +66 -0
  385. package/demos/pc/app/select/{nest-grid-remote-filter.vue → nest-grid-remote-multi.vue} +1 -1
  386. package/demos/pc/app/select/{nest-remote-grid-composition-api.vue → nest-grid-remote-single-composition-api.vue} +2 -3
  387. package/demos/pc/app/select/{nest-remote-grid.spec.ts → nest-grid-remote-single.spec.ts} +18 -14
  388. package/demos/pc/app/select/{nest-remote-grid.vue → nest-grid-remote-single.vue} +2 -1
  389. package/demos/pc/app/select/nest-grid.spec.ts +72 -74
  390. package/demos/pc/app/select/nest-grid.vue +22 -6
  391. package/demos/pc/app/select/nest-radio-grid-much-data.spec.ts +19 -16
  392. package/demos/pc/app/select/nest-tree.spec.ts +49 -44
  393. package/demos/pc/app/select/no-data-text.spec.ts +25 -9
  394. package/demos/pc/app/select/optimization.spec.ts +34 -30
  395. package/demos/pc/app/select/option-group.spec.ts +15 -6
  396. package/demos/pc/app/select/popup-style-position-composition-api.vue +7 -8
  397. package/demos/pc/app/select/popup-style-position.spec.ts +8 -4
  398. package/demos/pc/app/select/popup-style-position.vue +4 -5
  399. package/demos/pc/app/select/remote-method.spec.ts +56 -27
  400. package/demos/pc/app/select/searchable.spec.ts +45 -30
  401. package/demos/pc/app/select/show-alloption.spec.ts +6 -3
  402. package/demos/pc/app/select/size.spec.ts +47 -3
  403. package/demos/pc/app/select/slot-default.spec.ts +8 -5
  404. package/demos/pc/app/select/slot-empty.spec.ts +9 -6
  405. package/demos/pc/app/select/slot-footer.spec.ts +8 -5
  406. package/demos/pc/app/select/slot-prefix.spec.ts +12 -6
  407. package/demos/pc/app/select/slot-reference.spec.ts +11 -4
  408. package/demos/pc/app/select/webdoc/select.js +102 -103
  409. package/demos/pc/app/slider/about-step.spec.ts +2 -2
  410. package/demos/pc/app/slider/basic-usage.spec.ts +3 -4
  411. package/demos/pc/app/slider/dynamic-disable.spec.ts +3 -3
  412. package/demos/pc/app/slider/format-tooltip.spec.ts +1 -2
  413. package/demos/pc/app/slider/max-min.spec.ts +4 -5
  414. package/demos/pc/app/slider/range-select.spec.ts +1 -2
  415. package/demos/pc/app/slider/shortcut-operation.spec.ts +10 -21
  416. package/demos/pc/app/slider/show-iput.spec.ts +13 -4
  417. package/demos/pc/app/slider/show-tip.spec.ts +6 -6
  418. package/demos/pc/app/slider/slider-event.spec.ts +6 -9
  419. package/demos/pc/app/slider/slider-slot.spec.ts +5 -5
  420. package/demos/pc/app/slider/vertical-mode.spec.ts +2 -13
  421. package/demos/pc/app/slider/webdoc/slider.js +1 -1
  422. package/demos/pc/app/split/basic-usage.spec.ts +12 -16
  423. package/demos/pc/app/split/disabled-drag.spec.ts +20 -0
  424. package/demos/pc/app/split/event-click.spec.ts +10 -0
  425. package/demos/pc/app/split/horizontal-collapse-composition-api.vue +2 -2
  426. package/demos/pc/app/split/horizontal-collapse-left.spec.ts +8 -0
  427. package/demos/pc/app/split/horizontal-collapse.spec.ts +11 -0
  428. package/demos/pc/app/split/horizontal-collapse.vue +2 -2
  429. package/demos/pc/app/split/movestart-event.spec.ts +0 -1
  430. package/demos/pc/app/split/nested-use.spec.ts +5 -5
  431. package/demos/pc/app/split/split-mode.spec.ts +1 -1
  432. package/demos/pc/app/split/split-threshold.spec.ts +11 -16
  433. package/demos/pc/app/split/three-areas.spec.ts +9 -0
  434. package/demos/pc/app/split/trigger-simple.spec.ts +20 -0
  435. package/demos/pc/app/split/trigger-slot-composition-api.vue +2 -2
  436. package/demos/pc/app/split/trigger-slot.spec.ts +1 -1
  437. package/demos/pc/app/split/trigger-slot.vue +2 -2
  438. package/demos/pc/app/split/webdoc/split.js +25 -25
  439. package/demos/pc/app/steps/size-composition-api.vue +7 -4
  440. package/demos/pc/app/steps/size.vue +6 -1
  441. package/demos/pc/app/steps/slot-description-composition-api.vue +1 -1
  442. package/demos/pc/app/steps/vertical-steps-composition-api.vue +1 -1
  443. package/demos/pc/app/switch/basic-usage.spec.ts +15 -0
  444. package/demos/pc/app/switch/before-change.spec.ts +14 -0
  445. package/demos/pc/app/switch/custom-open-close.spec.ts +16 -0
  446. package/demos/pc/app/switch/custom-true-false-value.spec.ts +13 -0
  447. package/demos/pc/app/switch/dynamic-disable.spec.ts +14 -0
  448. package/demos/pc/app/switch/event-change.spec.ts +15 -0
  449. package/demos/pc/app/switch/mini-mode.spec.ts +11 -0
  450. package/demos/pc/app/tabs/before-leave.spec.ts +1 -1
  451. package/demos/pc/app/tabs/custom-more-icon.spec.ts +2 -2
  452. package/demos/pc/app/tabs/custom-tab-title.spec.ts +1 -1
  453. package/demos/pc/app/tabs/position.spec.ts +16 -14
  454. package/demos/pc/app/tabs/show-different-grid-data.spec.ts +1 -1
  455. package/demos/pc/app/tabs/stretch-wh.spec.ts +2 -2
  456. package/demos/pc/app/tabs/tabs-draggable.spec.ts +5 -8
  457. package/demos/pc/app/tabs/tabs-events-click.spec.ts +1 -1
  458. package/demos/pc/app/tabs/tabs-events-close.spec.ts +3 -3
  459. package/demos/pc/app/tabs/tabs-events-edit.spec.ts +3 -3
  460. package/demos/pc/app/tabs/tabs-second-layer.spec.ts +1 -1
  461. package/demos/pc/app/tabs/tabs-separator.spec.ts +5 -3
  462. package/demos/pc/app/tabs/with-add.spec.ts +3 -3
  463. package/demos/pc/app/tag-group/basic-usage.spec.js +29 -0
  464. package/demos/pc/app/tag-group/tag-group-effect.spec.js +71 -0
  465. package/demos/pc/app/tag-group/tag-group-event.spec.js +11 -0
  466. package/demos/pc/app/tag-group/tag-group-size.spec.js +20 -0
  467. package/demos/pc/app/tag-group/webdoc/tag-group.js +1 -1
  468. package/demos/pc/app/time-line/timeline-item-composition-api.vue +2 -2
  469. package/demos/pc/app/time-line/timeline-item.vue +7 -3
  470. package/demos/pc/app/tooltip/basic-usage.spec.js +4 -8
  471. package/demos/pc/app/tooltip/content.spec.js +1 -8
  472. package/demos/pc/app/tooltip/control.spec.js +12 -8
  473. package/demos/pc/app/tooltip/custom-popper-composition-api.vue +2 -16
  474. package/demos/pc/app/tooltip/custom-popper.vue +3 -16
  475. package/demos/pc/app/tooltip/delay.spec.js +3 -18
  476. package/demos/pc/app/tooltip/offset.spec.js +2 -9
  477. package/demos/pc/app/tooltip/popper-options.spec.js +2 -7
  478. package/demos/pc/app/tooltip/theme.spec.js +1 -1
  479. package/demos/pc/app/tooltip/transition.spec.js +4 -6
  480. package/demos/pc/app/tooltip/webdoc/tooltip.js +7 -6
  481. package/demos/pc/app/transfer/webdoc/transfer.js +1 -1
  482. package/demos/pc/app/tree/basic-usage-composition-api.vue +62 -57
  483. package/demos/pc/app/tree/basic-usage.vue +65 -57
  484. package/demos/pc/app/tree/check-op-composition-api.vue +109 -0
  485. package/demos/pc/app/tree/check-op.spec.ts +23 -0
  486. package/demos/pc/app/tree/check-op.vue +118 -0
  487. package/demos/pc/app/tree/checkbox-composition-api.vue +72 -0
  488. package/demos/pc/app/tree/checkbox.spec.ts +23 -0
  489. package/demos/pc/app/tree/checkbox.vue +80 -0
  490. package/demos/pc/app/tree/contextmenu-composition-api.vue +23 -83
  491. package/demos/pc/app/tree/contextmenu.vue +26 -86
  492. package/demos/pc/app/tree/drag-composition-api.vue +105 -0
  493. package/demos/pc/app/tree/drag.spec.ts +23 -0
  494. package/demos/pc/app/tree/drag.vue +117 -0
  495. package/demos/pc/app/tree/edit-composition-api.vue +40 -59
  496. package/demos/pc/app/tree/edit.vue +40 -60
  497. package/demos/pc/app/tree/expand-control-composition-api.vue +97 -0
  498. package/demos/pc/app/tree/expand-control.spec.ts +23 -0
  499. package/demos/pc/app/tree/expand-control.vue +105 -0
  500. package/demos/pc/app/tree/filter-view-composition-api.vue +86 -0
  501. package/demos/pc/app/tree/filter-view.spec.ts +23 -0
  502. package/demos/pc/app/tree/filter-view.vue +97 -0
  503. package/demos/pc/app/tree/icons-composition-api.vue +52 -0
  504. package/demos/pc/app/tree/icons.spec.ts +23 -0
  505. package/demos/pc/app/tree/icons.vue +60 -0
  506. package/demos/pc/app/tree/lazy-composition-api.vue +45 -0
  507. package/demos/pc/app/tree/lazy.spec.ts +23 -0
  508. package/demos/pc/app/tree/lazy.vue +51 -0
  509. package/demos/pc/app/tree/node-hl-composition-api.vue +81 -0
  510. package/demos/pc/app/tree/node-hl.spec.ts +23 -0
  511. package/demos/pc/app/tree/node-hl.vue +91 -0
  512. package/demos/pc/app/tree/node-op-composition-api.vue +69 -0
  513. package/demos/pc/app/tree/node-op.spec.ts +23 -0
  514. package/demos/pc/app/tree/node-op.vue +84 -0
  515. package/demos/pc/app/tree/other-composition-api.vue +38 -0
  516. package/demos/pc/app/tree/other.spec.ts +23 -0
  517. package/demos/pc/app/tree/other.vue +46 -0
  518. package/demos/pc/app/tree/props-composition-api.vue +37 -0
  519. package/demos/pc/app/tree/props.spec.ts +23 -0
  520. package/demos/pc/app/tree/props.vue +46 -0
  521. package/demos/pc/app/tree/radio-composition-api.vue +87 -0
  522. package/demos/pc/app/tree/radio.spec.ts +23 -0
  523. package/demos/pc/app/tree/radio.vue +96 -0
  524. package/demos/pc/app/tree/slot-composition-api.vue +104 -0
  525. package/demos/pc/app/tree/slot.spec.ts +23 -0
  526. package/demos/pc/app/tree/slot.vue +110 -0
  527. package/demos/pc/app/tree/webdoc/tree.cn.md +1 -1
  528. package/demos/pc/app/tree/webdoc/tree.en.md +1 -1
  529. package/demos/pc/app/tree/webdoc/tree.js +869 -651
  530. package/demos/pc/app/tree-menu/accordion-composition-api.vue +1 -5
  531. package/demos/pc/app/tree-menu/accordion.vue +1 -1
  532. package/demos/pc/app/tree-menu/basic-usage-composition-api.vue +1 -1
  533. package/demos/pc/app/tree-menu/basic-usage.vue +1 -4
  534. package/demos/pc/app/tree-menu/current-node-composition-api.vue +22 -31
  535. package/demos/pc/app/tree-menu/current-node.vue +22 -31
  536. package/demos/pc/app/tree-menu/custom-icon-composition-api.vue +11 -0
  537. package/demos/pc/app/tree-menu/custom-icon.vue +20 -0
  538. package/demos/pc/app/tree-menu/data-resource-composition-api.vue +18 -6
  539. package/demos/pc/app/tree-menu/data-resource.spec.ts +17 -2
  540. package/demos/pc/app/tree-menu/data-resource.vue +19 -2
  541. package/demos/pc/app/tree-menu/default-expand-all-composition-api.vue +10 -7
  542. package/demos/pc/app/tree-menu/default-expand-all.vue +10 -7
  543. package/demos/pc/app/tree-menu/default-expanded-keys-composition-api.vue +10 -7
  544. package/demos/pc/app/tree-menu/default-expanded-keys-highlight-composition-api.vue +18 -11
  545. package/demos/pc/app/tree-menu/default-expanded-keys-highlight.vue +18 -7
  546. package/demos/pc/app/tree-menu/default-expanded-keys.spec.ts +1 -1
  547. package/demos/pc/app/tree-menu/default-expanded-keys.vue +13 -9
  548. package/demos/pc/app/tree-menu/{can-draggable-composition-api.vue → draggable-composition-api.vue} +1 -5
  549. package/demos/pc/app/tree-menu/{can-draggable.vue → draggable.vue} +1 -5
  550. package/demos/pc/app/tree-menu/empty-text-composition-api.vue +1 -1
  551. package/demos/pc/app/tree-menu/empty-text.vue +1 -1
  552. package/demos/pc/app/tree-menu/event-allow-draggable-composition-api.vue +1 -5
  553. package/demos/pc/app/tree-menu/event-allow-draggable.vue +10 -6
  554. package/demos/pc/app/tree-menu/{event-check-change-composition-api.vue → events-composition-api.vue} +27 -7
  555. package/demos/pc/app/tree-menu/events.spec.ts +62 -0
  556. package/demos/pc/app/tree-menu/{event-check-change.vue → events.vue} +31 -12
  557. package/demos/pc/app/tree-menu/expand-on-click-node-composition-api.vue +18 -6
  558. package/demos/pc/app/tree-menu/expand-on-click-node.vue +18 -2
  559. package/demos/pc/app/tree-menu/filter-node-method-composition-api.vue +6 -8
  560. package/demos/pc/app/tree-menu/filter-node-method.vue +5 -3
  561. package/demos/pc/app/tree-menu/{tree-menu-indent-composition-api.vue → indent-composition-api.vue} +1 -5
  562. package/demos/pc/app/tree-menu/{tree-menu-indent.vue → indent.vue} +1 -1
  563. package/demos/pc/app/tree-menu/lazy-load-composition-api.vue +2 -4
  564. package/demos/pc/app/tree-menu/lazy-load.vue +2 -4
  565. package/demos/pc/app/tree-menu/menu-collapsible-composition-api.vue +1 -6
  566. package/demos/pc/app/tree-menu/menu-collapsible.vue +2 -2
  567. package/demos/pc/app/tree-menu/{get-menu-data-sync-composition-api.vue → only-check-children-composition-api.vue} +5 -9
  568. package/demos/pc/app/tree-menu/only-check-children.spec.ts +5 -0
  569. package/demos/pc/app/tree-menu/{get-menu-data-sync.vue → only-check-children.vue} +5 -5
  570. package/demos/pc/app/tree-menu/props-composition-api.vue +129 -0
  571. package/demos/pc/app/tree-menu/props.spec.ts +6 -0
  572. package/demos/pc/app/tree-menu/props.vue +129 -0
  573. package/demos/pc/app/tree-menu/show-checkbox-composition-api.vue +20 -7
  574. package/demos/pc/app/tree-menu/show-checkbox.spec.ts +27 -0
  575. package/demos/pc/app/tree-menu/show-checkbox.vue +19 -6
  576. package/demos/pc/app/tree-menu/{check-strictly-composition-api.vue → show-expand-composition-api.vue} +18 -9
  577. package/demos/pc/app/tree-menu/show-expand.spec.ts +10 -0
  578. package/demos/pc/app/tree-menu/show-expand.vue +132 -0
  579. package/demos/pc/app/tree-menu/{text-wrap-composition-api.vue → show-filter-composition-api.vue} +19 -7
  580. package/demos/pc/app/tree-menu/show-filter.spec.ts +6 -0
  581. package/demos/pc/app/tree-menu/{text-wrap.vue → show-filter.vue} +19 -7
  582. package/demos/pc/app/tree-menu/show-number-composition-api.vue +135 -0
  583. package/demos/pc/app/tree-menu/show-number.spec.ts +4 -0
  584. package/demos/pc/app/tree-menu/{check-strictly.vue → show-number.vue} +26 -6
  585. package/demos/pc/app/tree-menu/text-ellipsis-composition-api.vue +19 -9
  586. package/demos/pc/app/tree-menu/text-ellipsis.spec.ts +9 -0
  587. package/demos/pc/app/tree-menu/text-ellipsis.vue +19 -5
  588. package/demos/pc/app/tree-menu/tree-menu-slot-composition-api.vue +12 -9
  589. package/demos/pc/app/tree-menu/tree-menu-slot.vue +13 -16
  590. package/demos/pc/app/tree-menu/webdoc/tree-menu.cn.md +1 -1
  591. package/demos/pc/app/tree-menu/webdoc/tree-menu.en.md +1 -1
  592. package/demos/pc/app/tree-menu/webdoc/tree-menu.js +550 -341
  593. package/demos/pc/webdoc/i18n-en.md +2 -2
  594. package/demos/pc/webdoc/i18n.md +2 -5
  595. package/demos/pc/webdoc/theme-en.md +34 -3
  596. package/demos/pc/webdoc/theme.md +27 -1
  597. package/package.json +7 -7
  598. package/src/tools/utils.js +23 -2
  599. package/src/views/components/VersionTip.vue +192 -0
  600. package/src/views/components/components.vue +29 -4
  601. package/src/views/layout/layout.vue +30 -2
  602. package/demos/pc/app/checkbox/button-check-box.spec.ts +0 -12
  603. package/demos/pc/app/checkbox/with-border-composition-api.vue +0 -48
  604. package/demos/pc/app/checkbox/with-border.spec.ts +0 -26
  605. package/demos/pc/app/checkbox/with-border.vue +0 -57
  606. package/demos/pc/app/form/custom-validation-rule.spec.js +0 -93
  607. package/demos/pc/app/form/form-clear-validate-composition-api.vue +0 -114
  608. package/demos/pc/app/form/form-clear-validate.spec.js +0 -29
  609. package/demos/pc/app/form/form-clear-validate.vue +0 -114
  610. package/demos/pc/app/form/size.spec.js +0 -22
  611. package/demos/pc/app/modal/cancel-event-composition-api.vue +0 -21
  612. package/demos/pc/app/modal/cancel-event.spec.ts +0 -12
  613. package/demos/pc/app/modal/cancel-event.vue +0 -31
  614. package/demos/pc/app/modal/close-event-composition-api.vue +0 -21
  615. package/demos/pc/app/modal/close-event.spec.ts +0 -12
  616. package/demos/pc/app/modal/close-event.vue +0 -31
  617. package/demos/pc/app/modal/confirm-event-composition-api.vue +0 -21
  618. package/demos/pc/app/modal/confirm-event.spec.ts +0 -12
  619. package/demos/pc/app/modal/confirm-event.vue +0 -31
  620. package/demos/pc/app/modal/hide-event-composition-api.vue +0 -21
  621. package/demos/pc/app/modal/hide-event.spec.ts +0 -17
  622. package/demos/pc/app/modal/hide-event.vue +0 -31
  623. package/demos/pc/app/modal/show-event-composition-api.vue +0 -21
  624. package/demos/pc/app/modal/show-event.spec.ts +0 -11
  625. package/demos/pc/app/modal/show-event.vue +0 -31
  626. package/demos/pc/app/modal/zIndex-composition-api.vue +0 -11
  627. package/demos/pc/app/modal/zoom-event-composition-api.vue +0 -21
  628. package/demos/pc/app/modal/zoom-event.spec.ts +0 -19
  629. package/demos/pc/app/modal/zoom-event.vue +0 -31
  630. package/demos/pc/app/progress/text-inside-or-no-text.spec.ts +0 -14
  631. package/demos/pc/app/select/nest-grid-remote-filter.spec.ts +0 -58
  632. package/demos/pc/app/select/search-allow-copy.spec.ts +0 -52
  633. package/demos/pc/app/select/show-tip.spec.ts +0 -0
  634. package/demos/pc/app/select/tag-select.spec.ts +0 -32
  635. package/demos/pc/app/split/basic-usage1-composition-api.vue +0 -27
  636. package/demos/pc/app/split/basic-usage1.spec.ts +0 -20
  637. package/demos/pc/app/split/basic-usage1.vue +0 -33
  638. package/demos/pc/app/tree/accordion-mode-composition-api.vue +0 -81
  639. package/demos/pc/app/tree/accordion-mode.spec.ts +0 -14
  640. package/demos/pc/app/tree/accordion-mode.vue +0 -89
  641. package/demos/pc/app/tree/allow-drag-composition-api.vue +0 -63
  642. package/demos/pc/app/tree/allow-drag.spec.ts +0 -21
  643. package/demos/pc/app/tree/allow-drag.vue +0 -73
  644. package/demos/pc/app/tree/allow-drop-composition-api.vue +0 -67
  645. package/demos/pc/app/tree/allow-drop.spec.ts +0 -20
  646. package/demos/pc/app/tree/allow-drop.vue +0 -76
  647. package/demos/pc/app/tree/auto-expand-parent-composition-api.vue +0 -85
  648. package/demos/pc/app/tree/auto-expand-parent.spec.ts +0 -11
  649. package/demos/pc/app/tree/auto-expand-parent.vue +0 -93
  650. package/demos/pc/app/tree/check-on-click-node-composition-api.vue +0 -106
  651. package/demos/pc/app/tree/check-on-click-node.spec.ts +0 -30
  652. package/demos/pc/app/tree/check-on-click-node.vue +0 -111
  653. package/demos/pc/app/tree/check-strictly-composition-api.vue +0 -59
  654. package/demos/pc/app/tree/check-strictly.spec.ts +0 -48
  655. package/demos/pc/app/tree/check-strictly.vue +0 -67
  656. package/demos/pc/app/tree/current-node-key-composition-api.vue +0 -59
  657. package/demos/pc/app/tree/current-node-key.spec.ts +0 -15
  658. package/demos/pc/app/tree/current-node-key.vue +0 -67
  659. package/demos/pc/app/tree/custom-empty-text-composition-api.vue +0 -14
  660. package/demos/pc/app/tree/custom-empty-text.spec.ts +0 -9
  661. package/demos/pc/app/tree/custom-empty-text.vue +0 -22
  662. package/demos/pc/app/tree/custom-node-icon-composition-api.vue +0 -61
  663. package/demos/pc/app/tree/custom-node-icon.spec.ts +0 -18
  664. package/demos/pc/app/tree/custom-node-icon.vue +0 -69
  665. package/demos/pc/app/tree/data-source-composition-api.vue +0 -59
  666. package/demos/pc/app/tree/data-source.spec.ts +0 -14
  667. package/demos/pc/app/tree/data-source.vue +0 -67
  668. package/demos/pc/app/tree/default-checked-keys-composition-api.vue +0 -66
  669. package/demos/pc/app/tree/default-checked-keys.spec.ts +0 -17
  670. package/demos/pc/app/tree/default-checked-keys.vue +0 -74
  671. package/demos/pc/app/tree/default-expand-all-composition-api.vue +0 -59
  672. package/demos/pc/app/tree/default-expand-all.spec.ts +0 -15
  673. package/demos/pc/app/tree/default-expand-all.vue +0 -67
  674. package/demos/pc/app/tree/default-expanded-keys-composition-api.vue +0 -74
  675. package/demos/pc/app/tree/default-expanded-keys.vue +0 -82
  676. package/demos/pc/app/tree/default-expended-keys.spec.ts +0 -15
  677. package/demos/pc/app/tree/disable-node-composition-api.vue +0 -62
  678. package/demos/pc/app/tree/disable-node.spec.ts +0 -44
  679. package/demos/pc/app/tree/disable-node.vue +0 -70
  680. package/demos/pc/app/tree/drag-events-composition-api.vue +0 -88
  681. package/demos/pc/app/tree/drag-events.spec.ts +0 -23
  682. package/demos/pc/app/tree/drag-events.vue +0 -93
  683. package/demos/pc/app/tree/expand-on-click-node-composition-api.vue +0 -59
  684. package/demos/pc/app/tree/expand-on-click-node.spec.ts +0 -24
  685. package/demos/pc/app/tree/expand-on-click-node.vue +0 -67
  686. package/demos/pc/app/tree/filter-node-composition-api.vue +0 -79
  687. package/demos/pc/app/tree/filter-node.spec.ts +0 -12
  688. package/demos/pc/app/tree/filter-node.vue +0 -89
  689. package/demos/pc/app/tree/guide-line-composition-api.vue +0 -89
  690. package/demos/pc/app/tree/guide-line.spec.ts +0 -9
  691. package/demos/pc/app/tree/guide-line.vue +0 -100
  692. package/demos/pc/app/tree/highlight-current-composition-api.vue +0 -59
  693. package/demos/pc/app/tree/highlight-current.spec.ts +0 -10
  694. package/demos/pc/app/tree/highlight-current.vue +0 -67
  695. package/demos/pc/app/tree/indent-composition-api.vue +0 -59
  696. package/demos/pc/app/tree/indent.spec.ts +0 -11
  697. package/demos/pc/app/tree/indent.vue +0 -67
  698. package/demos/pc/app/tree/lazy-load-node-composition-api.vue +0 -70
  699. package/demos/pc/app/tree/lazy-load-node.spec.ts +0 -19
  700. package/demos/pc/app/tree/lazy-load-node.vue +0 -77
  701. package/demos/pc/app/tree/node-contextmenu-composition-api.vue +0 -73
  702. package/demos/pc/app/tree/node-contextmenu.spec.ts +0 -12
  703. package/demos/pc/app/tree/node-contextmenu.vue +0 -81
  704. package/demos/pc/app/tree/node-draggable-composition-api.vue +0 -63
  705. package/demos/pc/app/tree/node-draggable.spec.ts +0 -27
  706. package/demos/pc/app/tree/node-draggable.vue +0 -72
  707. package/demos/pc/app/tree/node-events-composition-api.vue +0 -67
  708. package/demos/pc/app/tree/node-events.spec.ts +0 -11
  709. package/demos/pc/app/tree/node-events.vue +0 -75
  710. package/demos/pc/app/tree/node-key-composition-api.vue +0 -150
  711. package/demos/pc/app/tree/node-key.spec.ts +0 -46
  712. package/demos/pc/app/tree/node-key.vue +0 -154
  713. package/demos/pc/app/tree/node-props-config-composition-api.vue +0 -63
  714. package/demos/pc/app/tree/node-props-config.spec.ts +0 -13
  715. package/demos/pc/app/tree/node-props-config.vue +0 -71
  716. package/demos/pc/app/tree/plain-mode-composition-api.vue +0 -110
  717. package/demos/pc/app/tree/plain-mode.spec.ts +0 -52
  718. package/demos/pc/app/tree/plain-mode.vue +0 -120
  719. package/demos/pc/app/tree/render-after-expand-composition-api.vue +0 -74
  720. package/demos/pc/app/tree/render-after-expand.spec.ts +0 -10
  721. package/demos/pc/app/tree/render-after-expand.vue +0 -83
  722. package/demos/pc/app/tree/render-content-composition-api.vue +0 -104
  723. package/demos/pc/app/tree/render-content.spec.ts +0 -28
  724. package/demos/pc/app/tree/render-content.vue +0 -112
  725. package/demos/pc/app/tree/set-tree-icon-composition-api.vue +0 -73
  726. package/demos/pc/app/tree/set-tree-icon.spec.ts +0 -13
  727. package/demos/pc/app/tree/set-tree-icon.vue +0 -81
  728. package/demos/pc/app/tree/show-checkbox-composition-api.vue +0 -94
  729. package/demos/pc/app/tree/show-checkbox.spec.ts +0 -45
  730. package/demos/pc/app/tree/show-checkbox.vue +0 -99
  731. package/demos/pc/app/tree/single-select-radio-composition-api.vue +0 -76
  732. package/demos/pc/app/tree/single-select-radio.spec.ts +0 -16
  733. package/demos/pc/app/tree/single-select-radio.vue +0 -85
  734. package/demos/pc/app/tree/slot-deffault-composition-api.vue +0 -110
  735. package/demos/pc/app/tree/slot-deffault.spec.ts +0 -13
  736. package/demos/pc/app/tree/slot-deffault.vue +0 -119
  737. package/demos/pc/app/tree/slot-operation-composition-api.vue +0 -127
  738. package/demos/pc/app/tree/slot-operation.spec.ts +0 -16
  739. package/demos/pc/app/tree/slot-operation.vue +0 -129
  740. package/demos/pc/app/tree-menu/check-strictly.spec.ts +0 -24
  741. package/demos/pc/app/tree-menu/event-check-change.spec.ts +0 -16
  742. package/demos/pc/app/tree-menu/event-current-change-composition-api.vue +0 -171
  743. package/demos/pc/app/tree-menu/event-current-change.spec.ts +0 -12
  744. package/demos/pc/app/tree-menu/event-current-change.vue +0 -180
  745. package/demos/pc/app/tree-menu/event-node-click-composition-api.vue +0 -171
  746. package/demos/pc/app/tree-menu/event-node-click.spec.ts +0 -14
  747. package/demos/pc/app/tree-menu/event-node-click.vue +0 -180
  748. package/demos/pc/app/tree-menu/event-node-collapse-composition-api.vue +0 -171
  749. package/demos/pc/app/tree-menu/event-node-collapse.spec.ts +0 -11
  750. package/demos/pc/app/tree-menu/event-node-collapse.vue +0 -180
  751. package/demos/pc/app/tree-menu/event-node-expand-composition-api.vue +0 -171
  752. package/demos/pc/app/tree-menu/event-node-expand.spec.ts +0 -10
  753. package/demos/pc/app/tree-menu/event-node-expand.vue +0 -180
  754. package/demos/pc/app/tree-menu/get-menu-data-sync.spec.ts +0 -16
  755. package/demos/pc/app/tree-menu/search-icon-composition-api.vue +0 -10
  756. package/demos/pc/app/tree-menu/search-icon.vue +0 -19
  757. package/demos/pc/app/tree-menu/text-wrap.spec.ts +0 -9
  758. /package/demos/pc/app/modal/{base-composition-api.vue → basic-usage-composition-api.vue} +0 -0
  759. /package/demos/pc/app/modal/{base.vue → basic-usage.vue} +0 -0
  760. /package/demos/pc/app/select/{tag-select-composition-api.vue → copy-multi-composition-api.vue} +0 -0
  761. /package/demos/pc/app/select/{tag-select.vue → copy-multi.vue} +0 -0
  762. /package/demos/pc/app/select/{search-allow-copy-composition-api.vue → copy-single-composition-api.vue} +0 -0
  763. /package/demos/pc/app/tree-menu/{search-icon.spec.ts → custom-icon.spec.ts} +0 -0
  764. /package/demos/pc/app/tree-menu/{can-draggable.spec.ts → draggable.spec.ts} +0 -0
  765. /package/demos/pc/app/tree-menu/{tree-menu-indent.spec.ts → indent.spec.ts} +0 -0
@@ -1,25 +1,68 @@
1
1
  import { test, expect } from '@playwright/test'
2
2
 
3
- test('default', async ({ page }) => {
3
+ test('下划线默认', async ({ page }) => {
4
4
  await page.goto('select#input-box-type')
5
- const select = page.locator('#preview .tiny-select').first()
5
+ const wrap = page.locator('#input-box-type')
6
+ const select = wrap.locator('.tiny-select').nth(0)
7
+ const input = select.locator('.tiny-input__inner')
8
+ const dropdown = page.locator('body > .tiny-select-dropdown')
9
+ const option = dropdown.locator('.tiny-option')
6
10
 
7
11
  await expect(select).toHaveClass(/tiny-select__underline/)
12
+ await expect(input).toHaveCSS('border-top-width', '0px')
13
+ await expect(input).toHaveCSS('border-left-width', '0px')
14
+ await expect(input).toHaveCSS('border-right-width', '0px')
15
+ await expect(input).toHaveCSS('border-color', 'rgb(173, 176, 184)')
16
+ await expect(select.locator('svg')).toHaveCSS('fill', 'rgb(87, 93, 108)')
17
+
18
+ await select.click()
19
+ await option.first().click()
20
+ await expect(dropdown).toBeHidden()
21
+ await expect(input).toHaveValue('黄金糕')
8
22
  })
9
23
 
10
- test('disable', async ({ page }) => {
24
+ test('下划线禁用', async ({ page }) => {
11
25
  await page.goto('select#input-box-type')
12
- const select = page.locator('#preview .tiny-select').nth(1)
26
+ const wrap = page.locator('#input-box-type')
27
+ const select = wrap.locator('.tiny-select').nth(1)
13
28
  const input = select.locator('.tiny-input__inner')
29
+ const dropdown = page.locator('body > .tiny-select-dropdown')
14
30
 
15
31
  await expect(select).toHaveClass(/tiny-select__underline/)
32
+ await expect(input).toHaveCSS('border-top-width', '0px')
33
+ await expect(input).toHaveCSS('border-left-width', '0px')
34
+ await expect(input).toHaveCSS('border-right-width', '0px')
35
+ await expect(input).toHaveCSS('border-color', 'rgb(223, 225, 230)')
36
+ await expect(input).toHaveCSS('cursor', 'not-allowed')
37
+ await expect(select.locator('svg')).toHaveCSS('fill', 'rgb(173, 176, 184)')
16
38
  const hasDisabled = await input.evaluate((input) => input.hasAttribute('disabled'))
17
39
  await expect(hasDisabled).toBe(true)
40
+
41
+ await select.click()
42
+ await expect(dropdown).toBeHidden()
43
+ await expect(input).toHaveValue('')
18
44
  })
19
45
 
20
- test('multiple', async ({ page }) => {
46
+ test('下划线多选', async ({ page }) => {
21
47
  await page.goto('select#input-box-type')
22
- const select = page.locator('#preview .tiny-select').nth(2)
48
+ const wrap = page.locator('#input-box-type')
49
+ const select = wrap.locator('.tiny-select').nth(2)
50
+ const input = select.locator('.tiny-input__inner')
51
+ const tag = wrap.locator('.tiny-tag')
52
+ const dropdown = page.locator('body > .tiny-select-dropdown')
53
+ const option = dropdown.locator('.tiny-option')
54
+
55
+ await expect(select).toHaveClass(/tiny-select__underline/)
56
+ await expect(input).toHaveCSS('border-top-width', '0px')
57
+ await expect(input).toHaveCSS('border-left-width', '0px')
58
+ await expect(input).toHaveCSS('border-right-width', '0px')
59
+ await expect(input).toHaveCSS('border-color', 'rgb(173, 176, 184)')
60
+ await expect(select.locator('.tiny-select__caret')).toHaveCSS('fill', 'rgb(87, 93, 108)')
61
+
62
+ await select.click()
63
+ await expect(dropdown).toBeVisible()
64
+ await option.first().click()
65
+ await expect(tag).toHaveCount(5)
23
66
 
24
67
  await expect(select).toHaveClass(/tiny-select__underline/)
25
68
  await expect(select).toHaveClass(/tiny-select__multiple/)
@@ -1,29 +1,34 @@
1
1
  import { expect, test } from '@playwright/test'
2
2
 
3
- test('not-inherit-width', async ({ page }) => {
3
+ test('默认下拉弹框宽度由内容撑开', async ({ page }) => {
4
4
  await page.goto('select#is-drop-inherit-width')
5
- const input = page.getByPlaceholder('请选择').first()
6
- await input.click()
7
- await page.waitForTimeout(1000)
8
- const listitem = page.getByRole('listitem').filter({ hasText: '双皮奶' })
5
+
6
+ const wrap = page.locator('#is-drop-inherit-width')
7
+ const select = wrap.locator('.tiny-select').nth(0)
8
+ const dropdown = page.locator('body > .tiny-select-dropdown')
9
+ const input = select.locator('.tiny-input__inner')
10
+ const option = dropdown.locator('.tiny-option')
11
+
12
+ await select.click()
9
13
  const inputBox = await input.boundingBox()
14
+ const listitemBox = await option.first().boundingBox()
10
15
 
11
- const listitemBox = await listitem.boundingBox()
12
- await page.waitForTimeout(3000)
13
16
  const result = listitemBox.width > inputBox.width
14
17
  await expect(result).toBe(true)
15
18
  })
16
19
 
17
- test('inherit-width', async ({ page }) => {
20
+ test('下拉弹框宽度与输入框一致', async ({ page }) => {
18
21
  await page.goto('select#is-drop-inherit-width')
19
- const input = page.getByPlaceholder('请选择').nth(1)
20
- await input.click()
21
- await page.waitForTimeout(1000)
22
- const listitem = page.getByRole('listitem').filter({ hasText: '双皮奶' })
22
+ const wrap = page.locator('#is-drop-inherit-width')
23
+ const select = wrap.locator('.tiny-select').nth(1)
24
+ const dropdown = page.locator('body > .tiny-select-dropdown')
25
+ const input = select.locator('.tiny-input__inner')
26
+ const option = dropdown.locator('.tiny-option')
27
+
28
+ await select.click()
23
29
  const inputBox = await input.boundingBox()
30
+ const listitemBox = await option.first().boundingBox()
24
31
 
25
- const listitemBox = await listitem.boundingBox()
26
- await page.waitForTimeout(3000)
27
32
  const result = listitemBox.width === inputBox.width
28
33
  await expect(result).toBe(true)
29
34
  })
@@ -1,7 +1,9 @@
1
1
  <template>
2
2
  <div>
3
- <tiny-button @click="handleFocus"> 点击获取焦点 </tiny-button>
4
- <tiny-button @click="handleBlur"> 点击失去焦点 </tiny-button>
3
+ <div>
4
+ <tiny-button @click="handleFocus"> 点击获取焦点 </tiny-button>
5
+ <tiny-button @click="handleBlur"> 点击失去焦点 </tiny-button>
6
+ </div>
5
7
  <tiny-select v-model="value" ref="drop" filterable>
6
8
  <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
7
9
  </tiny-select>
@@ -1,12 +1,16 @@
1
1
  import { test, expect } from '@playwright/test'
2
2
 
3
- test('manual-focus-blur', async ({ page }) => {
3
+ test('手动聚焦失焦', async ({ page }) => {
4
4
  await page.goto('select#manual-focus-blur')
5
- await page.getByRole('button', { name: '单击按钮 Select 将获取焦点' }).click()
6
- await page.waitForTimeout(1000)
7
- const dropdown = page.locator('.tiny-select-dropdown')
5
+ const wrap = page.locator('#manual-focus-blur')
6
+ const select = wrap.locator('.tiny-select').nth(2)
7
+ const input = select.locator('.tiny-input__inner')
8
+ const dropdown = page.locator('body > .tiny-select-dropdown')
9
+ const option = dropdown.locator('.tiny-option')
10
+ const button = wrap.locator('.tiny-button')
11
+
12
+ await button.first().click()
8
13
  await expect(dropdown).toBeVisible()
9
- await page.getByRole('button', { name: '单击按钮 Select 将失去焦点' }).click()
10
- await page.waitForTimeout(1000)
14
+ await button.nth(1).click()
11
15
  await expect(dropdown).toBeHidden()
12
16
  })
@@ -1,7 +1,9 @@
1
1
  <template>
2
2
  <div>
3
- <tiny-button @click="handleFocus"> 点击获取焦点 </tiny-button>
4
- <tiny-button @click="handleBlur"> 点击失去焦点 </tiny-button>
3
+ <div>
4
+ <tiny-button @click="handleFocus"> 点击获取焦点 </tiny-button>
5
+ <tiny-button @click="handleBlur"> 点击失去焦点 </tiny-button>
6
+ </div>
5
7
  <tiny-select v-model="value" ref="drop" filterable>
6
8
  <tiny-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </tiny-option>
7
9
  </tiny-select>
@@ -1,32 +1,56 @@
1
1
  import { expect, test } from '@playwright/test'
2
2
 
3
- test('grid-multiple', async ({ page }) => {
4
- await page.goto('select#nest-checkbox-grid')
5
- const suffix = page.locator('#preview .tiny-input__suffix')
6
- const select = page.locator('#preview .tiny-select')
3
+ test('配置式配置映射字段', async ({ page }) => {
4
+ await page.goto('select#map-field')
5
+ const wrap = page.locator('#map-field')
6
+ const select = wrap.locator('.tiny-select').nth(0)
7
+ const dropdown = page.locator('body > .tiny-select-dropdown')
8
+ const option = dropdown.locator('.tiny-option')
9
+ const suffix = select.locator('.tiny-input__suffix')
10
+ const tag = select.locator('.tiny-tag')
11
+
12
+ await expect(tag).toHaveCount(2)
13
+ await expect(tag.first()).toHaveText('黄金糕')
14
+ await expect(tag.nth(1)).toHaveText('双皮奶')
15
+ await suffix.click()
16
+ await page.waitForTimeout(500)
17
+ await expect(dropdown).toBeVisible()
18
+ await expect(option.filter({ hasText: '黄金糕' })).toHaveClass(/selected/)
19
+ await expect(option.filter({ hasText: '双皮奶' })).toHaveClass(/selected/)
20
+ })
21
+
22
+ test('嵌套表格配置映射字段', async ({ page }) => {
23
+ await page.goto('select#map-field')
24
+ const wrap = page.locator('#map-field')
25
+ const select = wrap.locator('.tiny-select').nth(1)
26
+ const dropdown = page.locator('body > .tiny-select-dropdown')
27
+ const suffix = select.locator('.tiny-input__suffix')
7
28
  const tag = select.locator('.tiny-tag')
8
29
 
9
30
  await expect(tag).toHaveCount(2)
10
31
  await suffix.click()
11
32
  await page.waitForTimeout(500)
12
33
 
13
- const tr = page.locator('.tiny-select-dropdown .tiny-grid__body-wrapper .tiny-grid-body__row')
14
- const currentTr = page.locator('.tiny-select-dropdown .tiny-grid__body-wrapper .row__selected')
34
+ const tr = dropdown.locator('.tiny-grid__body-wrapper .tiny-grid-body__row')
35
+ const currentTr = dropdown.locator('.tiny-grid__body-wrapper .row__selected')
15
36
 
16
37
  await expect(tr).toHaveCount(5)
17
38
  await expect(currentTr).toHaveCount(2)
18
- await page.getByRole('row', { name: '华南区 广东省 珠海市' }).getByRole('cell').first().click()
39
+ await dropdown.getByRole('row', { name: '华南区 广东省 珠海市' }).getByRole('cell').first().click()
19
40
  await expect(tag).toHaveCount(3)
20
41
  await expect(currentTr).toHaveCount(3)
21
- await page.getByRole('row', { name: '华南区 广东省 珠海市' }).getByRole('cell').first().click()
42
+ await dropdown.getByRole('row', { name: '华南区 广东省 珠海市' }).getByRole('cell').first().click()
22
43
  await expect(tag).toHaveCount(2)
23
44
  await expect(currentTr).toHaveCount(2)
24
- await page.getByRole('row', { name: '区域 省份 城市' }).getByRole('cell').first().click()
45
+ await dropdown.getByRole('row', { name: '区域 省份 城市' }).getByRole('cell').first().click()
25
46
  await expect(tag).toHaveCount(5)
26
47
  await expect(currentTr).toHaveCount(5)
27
- let all = await page.getByRole('row', { name: '区域 省份 城市' }).locator('.tiny-grid-checkbox__icon .tiny-svg')
48
+ let all = await dropdown
49
+ .getByRole('row', { name: '区域 省份 城市' })
50
+ .locator('.tiny-grid-checkbox__icon .tiny-svg')
51
+ .nth(1)
28
52
  await expect(all).toHaveClass(/icon-checked-sur/)
29
- await page.getByRole('row', { name: '区域 省份 城市' }).getByRole('cell').first().click()
53
+ await dropdown.getByRole('row', { name: '区域 省份 城市' }).getByRole('cell').first().click()
30
54
  await page.waitForTimeout(500)
31
55
  await expect(all).toBeHidden()
32
56
  await expect(tag).toHaveCount(0)
@@ -1,14 +1,18 @@
1
1
  import { expect, test } from '@playwright/test'
2
2
 
3
- test('memoize-usage', async ({ page }) => {
3
+ test('手动缓存', async ({ page }) => {
4
4
  await page.goto('select#memoize-usage')
5
- const input = page.locator('#preview .tiny-input__inner')
6
- const cacheValue = page.locator('#preview .cache-value')
5
+ const wrap = page.locator('#memoize-usage')
6
+ const select = wrap.locator('.tiny-select')
7
+ const dropdown = page.locator('body > .tiny-select-dropdown')
8
+ const option = dropdown.locator('.tiny-option')
9
+ const cacheValue = wrap.locator('.cache-value')
7
10
 
8
- await input.click()
9
- await page.getByRole('listitem').filter({ hasText: '黄金糕' }).click()
11
+ await select.click()
12
+ await option.filter({ hasText: '黄金糕' }).click()
10
13
  await expect(cacheValue).toContainText(['选项1'])
11
- await input.click()
12
- await page.getByRole('listitem').filter({ hasText: '双皮奶' }).click()
14
+
15
+ await select.click()
16
+ await option.filter({ hasText: '双皮奶' }).click()
13
17
  await expect(cacheValue).toContainText(['选项2'])
14
18
  })
@@ -47,6 +47,9 @@ export default {
47
47
  MemorizeInstance.updateByKey(value)
48
48
  this.cacheValue = window.localStorage.getItem('tiny_memorize_test456')
49
49
  }
50
+ },
51
+ mounted() {
52
+ window.localStorage.setItem('tiny_memorize_test456', '')
50
53
  }
51
54
  }
52
55
  </script>
@@ -2,18 +2,24 @@ import { test, expect } from '@playwright/test'
2
2
 
3
3
  test('multiple-limit', async ({ page }) => {
4
4
  await page.goto('select#multiple-limit')
5
- const select = page.locator('#preview .tiny-select')
5
+ const wrap = page.locator('#multiple-limit')
6
+ const select = wrap.locator('.tiny-select')
7
+ const dropdown = page.locator('body > .tiny-select-dropdown')
8
+ const option = dropdown.locator('.tiny-option')
9
+ const tag = select.locator('.tiny-tag')
6
10
 
7
11
  await select.click()
8
- await page.getByRole('listitem').filter({ hasText: '黄金糕' }).click()
9
- await page.getByRole('listitem').filter({ hasText: '双皮奶' }).click()
10
- await page.waitForTimeout(2000)
11
- const listitems = await page
12
- .locator('.tiny-select-dropdown')
13
- .getByRole('listitem')
14
- .filter({ hasNotText: /黄金糕|双皮奶/ })
12
+ await option.nth(0).click()
13
+ await option.nth(1).click()
14
+ await expect(tag).toHaveCount(2)
15
+ await expect(option.filter({ hasText: '全部' })).toHaveCount(0)
15
16
 
16
- await expect(listitems.nth(0)).toHaveClass(/is-disabled/)
17
- await expect(listitems.nth(1)).toHaveClass(/is-disabled/)
18
- await expect(listitems.nth(2)).toHaveClass(/is-disabled/)
17
+ const list = await option.all()
18
+ list.forEach(async (item, index) => {
19
+ if (index <= 1) {
20
+ await expect(item).toHaveClass(/selected/)
21
+ } else {
22
+ await expect(item).toHaveClass(/is-disabled/)
23
+ }
24
+ })
19
25
  })
@@ -2,18 +2,22 @@ import { expect, test } from '@playwright/test'
2
2
 
3
3
  test('test', async ({ page }) => {
4
4
  await page.goto('select#multiple')
5
- const select = page.locator('#preview .tiny-select')
5
+ const wrap = page.locator('#multiple')
6
+ const select = wrap.locator('.tiny-select')
7
+ const dropdown = page.locator('body > .tiny-select-dropdown')
8
+ const option = dropdown.locator('.tiny-option')
9
+ const tag = select.locator('.tiny-tag')
6
10
 
7
- await expect(select.locator('.tiny-tag')).toHaveCount(2)
8
- await select.click()
9
- await page.getByRole('listitem').filter({ hasText: '全部' }).click()
10
- await expect(select.locator('.tiny-tag')).toHaveCount(7)
11
- await page.getByRole('listitem').filter({ hasText: '全部' }).click()
12
- await expect(select.locator('.tiny-tag')).toHaveCount(0)
13
- await page.getByRole('listitem').filter({ hasText: '黄金糕' }).click()
14
- await expect(select.locator('.tiny-tag')).toHaveCount(1)
15
- await page.getByRole('listitem').filter({ hasText: '双皮奶' }).click()
16
- await expect(select.locator('.tiny-tag')).toHaveCount(2)
17
- await select.locator('.tiny-tag').filter({ hasText: '双皮奶' }).getByRole('img').click()
18
- await expect(select.locator('.tiny-tag')).toHaveCount(1)
11
+ await expect(tag).toHaveCount(2)
12
+ await select.locator('.tiny-input__suffix').click()
13
+ await option.filter({ hasText: '全部' }).click()
14
+ await expect(tag).toHaveCount(7)
15
+ await option.filter({ hasText: '全部' }).click()
16
+ await expect(tag).toHaveCount(0)
17
+ await option.filter({ hasText: '黄金糕' }).click()
18
+ await expect(tag).toHaveCount(1)
19
+ await option.filter({ hasText: '双皮奶' }).click()
20
+ await expect(tag).toHaveCount(2)
21
+ await tag.filter({ hasText: '双皮奶' }).locator('.tiny-tag__close').click()
22
+ await expect(tag).toHaveCount(1)
19
23
  })
@@ -1,23 +1,15 @@
1
1
  import { test, expect } from '@playwright/test'
2
2
 
3
- test('name', async ({ page }) => {
4
- await page.goto('http://localhost:7130/pc/select/name')
3
+ test('原生属性', async ({ page }) => {
4
+ await page.goto('select#native-properties')
5
5
 
6
- const input = page.locator('#preview .tiny-input__inner')
7
- await expect(input).toHaveAttribute('name', 'inputName')
8
- })
6
+ const wrap = page.locator('#native-properties')
7
+ const select = wrap.locator('.tiny-select')
8
+ const input = select.locator('.tiny-input__inner')
9
9
 
10
- test('placeholder', async ({ page }) => {
11
- await page.goto('http://localhost:7130/pc/select/name')
12
-
13
- const input = page.locator('#preview .tiny-input__inner')
10
+ await expect(input).toHaveAttribute('name', 'inputName')
14
11
  await expect(input).toHaveAttribute('placeholder', '自定义 placeholder')
15
- })
16
-
17
- test('autocomplete', async ({ page }) => {
18
- await page.goto('http://localhost:7130/pc/select/name')
19
12
 
20
- const input = page.locator('#preview .tiny-input__inner')
21
- await expect(input).toHaveAttribute('autocomplete', 'off')
13
+ const isHasAutocomplete = await input.evaluate((input) => input.hasAttribute('autocomplete'))
14
+ await expect(isHasAutocomplete).toBe(true)
22
15
  })
23
-
@@ -1,26 +1,44 @@
1
1
  <template>
2
2
  <div class="demo-select">
3
+ <p>场景1:嵌套表格(单选)</p>
3
4
  <tiny-select
4
- ref="selectRef"
5
- v-model="radioValue"
5
+ v-model="value1"
6
+ value-field="id"
7
+ text-field="city"
8
+ render-type="grid"
9
+ :grid-op="gridOpSingle"
10
+ ></tiny-select>
11
+ <p>场景2:嵌套表格(多选)</p>
12
+ <tiny-select
13
+ v-model="value2"
14
+ multiple
15
+ value-field="id"
16
+ text-field="city"
17
+ render-type="grid"
18
+ :grid-op="gridOpMulti"
19
+ ></tiny-select>
20
+ <p>场景3:嵌套表格 + 可搜索 + 可清除</p>
21
+ <tiny-select
22
+ ref="select"
23
+ v-model="value3"
24
+ filterable
6
25
  :filter-method="filter"
7
26
  clearable
8
- filterable
9
27
  value-field="id"
10
- :multiple="false"
11
28
  text-field="city"
12
29
  render-type="grid"
13
- :grid-op="gridOpRadio"
30
+ :grid-op="gridOpSingle"
14
31
  ></tiny-select>
15
32
  </div>
16
33
  </template>
17
34
 
18
35
  <script setup>
19
- import { ref } from 'vue'
36
+ import { ref, reactive } from 'vue'
20
37
  import { Select as TinySelect } from '@opentiny/vue'
21
38
 
22
39
  const radioValue = ref('')
23
- const gridOpRadio = ref({
40
+
41
+ const gridOpSingle = reactive({
24
42
  data: [
25
43
  { id: '001', area: '华南区', province: '广东省', city: '深圳1' },
26
44
  { id: '002', area: '华南区', province: '广东省', city: '深圳市' },
@@ -36,19 +54,39 @@ const gridOpRadio = ref({
36
54
  ]
37
55
  })
38
56
 
57
+ const gridOpMulti = reactive({
58
+ data: [
59
+ { id: '001', area: '华南区', province: '广东省', city: '深圳1' },
60
+ { id: '002', area: '华南区', province: '广东省', city: '深圳市' },
61
+ { id: '003', area: '华南区', province: '广东省', city: '珠海市' },
62
+ { id: '004', area: '华南区', province: '广东省', city: '佛山市' },
63
+ { id: '005', area: '华南区', province: '广东省', city: '中山市' }
64
+ ],
65
+ columns: [
66
+ { type: 'selection', title: '' },
67
+ { field: 'area', title: '区域', width: 90 },
68
+ { field: 'province', title: '省份', width: 60 },
69
+ { field: 'city', title: '城市', width: 60 }
70
+ ]
71
+ })
72
+
39
73
  const filter = (value) => {
40
74
  if (!value) {
41
- return gridOpRadio.value.data
75
+ return gridOpSingle.value.data
42
76
  }
43
77
 
44
- return gridOpRadio.value.data.filter((item) => {
78
+ return gridOpSingle.value.data.filter((item) => {
45
79
  return item.city.includes(value)
46
80
  })
47
81
  }
48
82
  </script>
49
83
 
50
- <style scoped>
51
- .demo-select .tiny-select {
52
- width: 270px;
84
+ <style lang="less" scoped>
85
+ .tiny-select {
86
+ width: 280px;
87
+ }
88
+ p {
89
+ font-size: 14px;
90
+ line-height: 1.5;
53
91
  }
54
92
  </style>
@@ -1,27 +1,39 @@
1
1
  import { test, expect } from '@playwright/test'
2
2
 
3
- test('test-grid-select', async ({ page }) => {
4
- await page.goto('select#disable-grid-select-radio')
5
- const tags = page.locator('.grid-select .tiny-tag')
3
+ test('嵌套表格禁用某项(单选)', async ({ page }) => {
4
+ await page.goto('select#nest-grid-disable')
5
+ const wrap = page.locator('#nest-grid-disable')
6
6
 
7
- await page.locator('.tiny-select__tags').click()
8
- await page.getByRole('row', { name: '华南区 广东省 广州市' }).getByRole('cell').first().click()
7
+ const select = wrap.locator('.tiny-select').nth(0)
8
+ const input = select.locator('.tiny-input__inner')
9
+ const dropdown = page.locator('body > .tiny-select-dropdown')
9
10
 
10
- await expect(tags.filter({ hasText: '广州市' })).toHaveCount(1)
11
- await page.getByRole('row', { name: '华南区 广东省 深圳市' }).getByRole('cell').first().click()
12
- await expect(tags.filter({ hasText: '深圳市' })).toHaveCount(0)
11
+ await select.click()
12
+ await expect(dropdown.locator('.tiny-grid-radio.is__disabled')).toHaveCount(3)
13
+ await expect(input).toHaveValue('')
14
+
15
+ await dropdown.getByRole('row').nth(1).getByRole('cell').first().click()
16
+ await expect(input).toHaveValue('')
17
+
18
+ await dropdown.getByRole('row').nth(2).getByRole('cell').first().click()
19
+ await expect(input).toHaveValue('深圳市')
13
20
  })
14
21
 
15
- test('test-grid-radio', async ({ page }) => {
16
- await page.goto('select#disable-grid-select-radio')
17
-
18
- const input = page.locator('.grid-radio .tiny-input__inner')
19
- await input.click()
20
- await page.getByRole('row', { name: '华南区 广东省 深圳市' }).getByRole('cell').first().click()
21
- await expect(page.getByPlaceholder('请选择').nth(1)).toHaveValue('深圳市')
22
- await input.click()
23
- await page.getByRole('row', { name: '华南区 广东省 广州市' }).getByRole('cell').first().click()
24
- await expect(page.getByPlaceholder('请选择').nth(1)).toHaveValue('深圳市')
25
- await page.getByRole('row', { name: '华南区 广东省 佛山市' }).getByRole('cell').first().click()
26
- await expect(page.getByPlaceholder('请选择').nth(1)).toHaveValue('佛山市')
22
+ test('嵌套表格禁用某项(多选)', async ({ page }) => {
23
+ await page.goto('select#nest-grid-disable')
24
+
25
+ const wrap = page.locator('#nest-grid-disable')
26
+ const select = wrap.locator('.tiny-select').nth(1)
27
+ const dropdown = page.locator('body > .tiny-select-dropdown')
28
+ const tag = select.locator('.tiny-tag')
29
+
30
+ await select.click()
31
+ await dropdown.getByRole('row').nth(2).getByRole('cell').first().click()
32
+ await expect(tag).toHaveCount(0)
33
+
34
+ await dropdown.getByRole('row').nth(1).getByRole('cell').first().click()
35
+ await expect(tag).toHaveCount(1)
36
+
37
+ await dropdown.getByRole('row').nth(4).getByRole('cell').first().click()
38
+ await expect(tag).toHaveCount(1)
27
39
  })
@@ -25,7 +25,7 @@
25
25
  filterable
26
26
  remote
27
27
  :remote-method="remoteMethod"
28
- :remote-config="{ autoSeach: true, clearData: true, showIcon: true }"
28
+ :remote-config="{ autoSearch: true, clearData: true, showIcon: true }"
29
29
  value-field="id"
30
30
  text-field="city"
31
31
  render-type="grid"
@@ -0,0 +1,66 @@
1
+ import { expect, test } from '@playwright/test'
2
+
3
+ test('下拉表格远程搜索基础用法', async ({ page }) => {
4
+ await page.goto('select#nest-grid-remote-multi')
5
+ const wrap = page.locator('#nest-grid-remote-multi')
6
+ const select = wrap.locator('.tiny-select').nth(0)
7
+ const input = select.locator('.tiny-select__input')
8
+ const dropdown = page.locator('body > .tiny-select-dropdown')
9
+ const suffixSvg = select.locator('.tiny-input__suffix .tiny-select__caret').first()
10
+
11
+ // 下拉按钮不显示
12
+ await expect(suffixSvg).toBeHidden()
13
+ await expect(dropdown).toBeHidden()
14
+
15
+ await input.fill(' ')
16
+ await input.press('Enter')
17
+ await page.waitForTimeout(1000)
18
+ await expect(dropdown).toBeVisible()
19
+ await expect(dropdown.locator('.tiny-grid__body tbody')).toBeEmpty()
20
+ await input.fill('')
21
+ await input.press('Enter')
22
+ await page.waitForTimeout(1000)
23
+ await expect(dropdown.locator('.tiny-grid__body tbody')).not.toBeEmpty()
24
+ await page.getByRole('row', { name: '华南区0 广东省0 广州市0' }).getByRole('cell').first().click()
25
+ const tags = page.locator('.tiny-select .tiny-tag')
26
+ await expect((await tags.all()).length).toEqual(1)
27
+ await expect(tags.first()).toContainText(/广州市0/)
28
+ await page.getByRole('row', { name: '华南区1 广东省1 广州市1' }).getByRole('cell').first().click()
29
+ await expect((await tags.all()).length).toEqual(2)
30
+ await expect(tags.first()).toContainText(/广州市0/)
31
+ await expect(tags.nth(1)).toContainText(/广州市1/)
32
+ })
33
+
34
+ test('下拉表格远程搜索 + 自动搜索 + 显示按钮', async ({ page }) => {
35
+ await page.goto('select#nest-grid-remote-multi')
36
+
37
+ const wrap = page.locator('#nest-grid-remote-multi')
38
+ const select = wrap.locator('.tiny-select').nth(1)
39
+ const input = select.locator('.tiny-select__input')
40
+ const dropdown = page.locator('body > .tiny-select-dropdown')
41
+ const suffixSvg = select.locator('.tiny-input__suffix .tiny-select__caret').first()
42
+ const tag = select.locator('.tiny-tag')
43
+
44
+ await expect(suffixSvg).toBeVisible()
45
+ await expect(dropdown).toBeHidden()
46
+ await select.click()
47
+ await expect(dropdown).toBeVisible()
48
+ await expect(dropdown.locator('.tiny-grid__body tbody')).not.toBeEmpty()
49
+
50
+ await dropdown.getByRole('row', { name: '华南区0 广东省0 广州市0' }).getByRole('cell').first().click()
51
+
52
+ await expect((await tag.all()).length).toEqual(1)
53
+ await expect(tag.first()).toContainText(/广州市0/)
54
+
55
+ await dropdown.getByRole('row', { name: '华南区1 广东省1 广州市1' }).getByRole('cell').first().click()
56
+ await expect((await tag.all()).length).toEqual(2)
57
+ await expect(tag.first()).toContainText(/广州市0/)
58
+ await expect(tag.nth(1)).toContainText(/广州市1/)
59
+ await tag.nth(0).locator('.tiny-svg').click()
60
+ await tag.nth(0).locator('.tiny-svg').click()
61
+ await expect((await tag.all()).length).toEqual(0)
62
+ await input.fill(' ')
63
+ await input.press('Enter')
64
+ await expect(dropdown).toBeVisible()
65
+ await expect(dropdown.locator('.tiny-grid__body tbody')).toBeEmpty()
66
+ })
@@ -27,7 +27,7 @@
27
27
  filterable
28
28
  remote
29
29
  :remote-method="remoteMethod"
30
- :remote-config="{ autoSeach: true, clearData: true, showIcon: true }"
30
+ :remote-config="{ autoSearch: true, clearData: true, showIcon: true }"
31
31
  value-field="id"
32
32
  text-field="city"
33
33
  render-type="grid"