@opentiny/vue-docs 2.2.4 → 2.2.6

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 (414) hide show
  1. package/demos/mobile/app/container/basic-usage.vue +105 -0
  2. package/demos/mobile/app/container/custom-width.vue +93 -0
  3. package/demos/mobile/app/container/webdoc/container.cn.md +7 -0
  4. package/demos/mobile/app/container/webdoc/container.en.md +7 -0
  5. package/demos/mobile/app/container/webdoc/container.js +80 -0
  6. package/demos/mobile/app/pull-refresh/animation-duration.vue +58 -12
  7. package/demos/mobile/app/pull-refresh/base.vue +32 -18
  8. package/demos/mobile/app/pull-refresh/disabled-pull-down.vue +66 -0
  9. package/demos/mobile/app/pull-refresh/disabled-pull-up.vue +67 -0
  10. package/demos/mobile/app/pull-refresh/{hasmore.vue → event.vue} +21 -20
  11. package/demos/mobile/app/pull-refresh/{enhance.vue → has-more.vue} +20 -25
  12. package/demos/mobile/app/pull-refresh/loosing-text.vue +55 -12
  13. package/demos/mobile/app/pull-refresh/pull-refresh-slot.vue +64 -15
  14. package/demos/mobile/app/pull-refresh/pull-up-distance.vue +74 -0
  15. package/demos/mobile/app/pull-refresh/pulling-text.vue +56 -12
  16. package/demos/mobile/app/pull-refresh/webdoc/pull-refresh.js +98 -120
  17. package/demos/mobile/app/tabs/before-leave.vue +3 -3
  18. package/demos/mobile/app/tabs/tabs-events.vue +7 -7
  19. package/demos/mobile/menus.js +4 -1
  20. package/demos/mobile-first/app/tabs/basic-usage.vue +3 -3
  21. package/demos/mobile-first/app/tabs/before-leave.vue +3 -3
  22. package/demos/mobile-first/app/tabs/change-title.vue +2 -2
  23. package/demos/mobile-first/app/tabs/custom-tab-content.vue +3 -3
  24. package/demos/mobile-first/app/tabs/custom-tab-title.vue +3 -3
  25. package/demos/mobile-first/app/tabs/position-bottom.vue +10 -10
  26. package/demos/mobile-first/app/tabs/position-left.vue +10 -10
  27. package/demos/mobile-first/app/tabs/position-right.vue +10 -10
  28. package/demos/mobile-first/app/tabs/position.vue +10 -10
  29. package/demos/mobile-first/app/tabs/prevent-tab-switching.vue +3 -3
  30. package/demos/mobile-first/app/tabs/stretch-wh.vue +3 -3
  31. package/demos/mobile-first/app/tabs/tab-style-bordercard.vue +10 -10
  32. package/demos/mobile-first/app/tabs/tab-style-card.vue +10 -10
  33. package/demos/mobile-first/app/tabs/tabdata-title.vue +4 -4
  34. package/demos/mobile-first/app/tabs/tabs-draggable.vue +1 -1
  35. package/demos/mobile-first/app/tabs/tabs-events-add.vue +3 -3
  36. package/demos/mobile-first/app/tabs/tabs-events-click.vue +3 -3
  37. package/demos/mobile-first/app/tabs/tabs-events-close.vue +4 -4
  38. package/demos/mobile-first/app/tabs/tabs-events-edit.vue +4 -4
  39. package/demos/mobile-first/app/tabs/tabs-separator.vue +8 -8
  40. package/demos/mobile-first/app/tabs/tabs-size.vue +3 -3
  41. package/demos/mobile-first/app/tabs/tabs-tabs.vue +2 -2
  42. package/demos/mobile-first/app/tabs/with-add.vue +1 -1
  43. package/demos/pc/app/action-menu/disabled.vue +2 -1
  44. package/demos/pc/app/action-menu/icon-composition-api.vue +73 -0
  45. package/demos/pc/app/action-menu/icon.vue +79 -0
  46. package/demos/pc/app/action-menu/popper-class.spec.ts +2 -1
  47. package/demos/pc/app/action-menu/webdoc/action-menu.js +42 -1
  48. package/demos/pc/app/autocomplete/webdoc/autocomplete.js +30 -16
  49. package/demos/pc/app/breadcrumb/webdoc/breadcrumb.js +3 -3
  50. package/demos/pc/app/button/basic-usage-composition-api.vue +2 -0
  51. package/demos/pc/app/button/basic-usage.vue +2 -0
  52. package/demos/pc/app/button/click-composition-api.vue +1 -1
  53. package/demos/pc/app/button/click.vue +1 -1
  54. package/demos/pc/app/button/dynamic-disabled-composition-api.vue +10 -1
  55. package/demos/pc/app/button/{dynamic-disabled.spec.js → dynamic-disabled.spec.ts} +4 -0
  56. package/demos/pc/app/button/dynamic-disabled.vue +12 -3
  57. package/demos/pc/app/button/ghost-composition-api.vue +26 -0
  58. package/demos/pc/app/button/ghost.spec.ts +69 -0
  59. package/demos/pc/app/button/ghost.vue +32 -0
  60. package/demos/pc/app/button/icon-composition-api.vue +2 -0
  61. package/demos/pc/app/button/icon.vue +2 -0
  62. package/demos/pc/app/button/loading-composition-api.vue +2 -0
  63. package/demos/pc/app/button/loading.vue +2 -0
  64. package/demos/pc/app/button/size-composition-api.vue +2 -0
  65. package/demos/pc/app/button/size.vue +2 -0
  66. package/demos/pc/app/button/text-composition-api.vue +1 -1
  67. package/demos/pc/app/button/text.vue +1 -1
  68. package/demos/pc/app/button/webdoc/button.js +28 -1
  69. package/demos/pc/app/button-group/button-group-multiple-composition-api.vue +9 -9
  70. package/demos/pc/app/button-group/button-group-multiple.vue +9 -9
  71. package/demos/pc/app/button-group/change-event-composition-api.vue +1 -1
  72. package/demos/pc/app/button-group/change-event.vue +1 -1
  73. package/demos/pc/app/button-group/show-edit-composition-api.vue +1 -1
  74. package/demos/pc/app/button-group/show-edit.vue +1 -1
  75. package/demos/pc/app/button-group/webdoc/button-group.js +2 -3
  76. package/demos/pc/app/carousel/webdoc/carousel.js +82 -49
  77. package/demos/pc/app/cascader/auto-load-checkStrictly-composition-api.vue +2 -1
  78. package/demos/pc/app/cascader/auto-load-checkStrictly.vue +2 -1
  79. package/demos/pc/app/cascader/auto-load-composition-api.vue +3 -1
  80. package/demos/pc/app/cascader/auto-load.vue +2 -1
  81. package/demos/pc/app/cascader/events-composition-api.vue +1 -1
  82. package/demos/pc/app/cascader/expand-trigger-composition-api.vue +195 -2
  83. package/demos/pc/app/cascader/show-all-levels-composition-api.vue +197 -2
  84. package/demos/pc/app/cascader/webdoc/cascader.js +27 -13
  85. package/demos/pc/app/cascader-panel/basic-usage-composition-api.vue +3 -1
  86. package/demos/pc/app/cascader-panel/basic-usage.vue +2 -1
  87. package/demos/pc/app/cascader-panel/cascader-panel-props-composition-api.vue +3 -1
  88. package/demos/pc/app/cascader-panel/cascader-panel-props.vue +3 -1
  89. package/demos/pc/app/cascader-panel/change-composition-api.vue +1 -2
  90. package/demos/pc/app/cascader-panel/change.vue +1 -1
  91. package/demos/pc/app/cascader-panel/webdoc/cascader-panel.js +5 -5
  92. package/demos/pc/app/color-picker/webdoc/color-picker.js +36 -18
  93. package/demos/pc/app/color-select-panel/webdoc/color-select-panel.js +32 -19
  94. package/demos/pc/app/config-provider/basic.spec.ts +9 -0
  95. package/demos/pc/app/config-provider/tag.spec.ts +12 -0
  96. package/demos/pc/app/config-provider/text-direct.spec.ts +11 -0
  97. package/demos/pc/app/config-provider/webdoc/config-provider.en.md +7 -0
  98. package/demos/pc/app/config-provider/webdoc/config-provider.js +27 -12
  99. package/demos/pc/app/container/basic-usage.spec.js +47 -2
  100. package/demos/pc/app/container/custom-with-height.spec.js +10 -2
  101. package/demos/pc/app/crop/webdoc/crop.js +53 -49
  102. package/demos/pc/app/dialog-box/webdoc/dialog-box.js +82 -83
  103. package/demos/pc/app/divider/webdoc/divider.js +25 -21
  104. package/demos/pc/app/dropdown/events-composition-api.vue +1 -1
  105. package/demos/pc/app/dropdown/events.spec.ts +1 -0
  106. package/demos/pc/app/dropdown/multi-level-composition-api.vue +4 -8
  107. package/demos/pc/app/dropdown/multi-level.spec.ts +16 -9
  108. package/demos/pc/app/dropdown/multi-level.vue +3 -7
  109. package/demos/pc/app/dropdown/show-icon-composition-api.vue +44 -21
  110. package/demos/pc/app/dropdown/show-icon.vue +42 -12
  111. package/demos/pc/app/dropdown/webdoc/dropdown.js +29 -8
  112. package/demos/pc/app/fall-menu/custom-menuitem.spec.ts +6 -9
  113. package/demos/pc/app/fall-menu/custom-slider-icon.spec.ts +10 -21
  114. package/demos/pc/app/fall-menu/data-resource.spec.ts +6 -9
  115. package/demos/pc/app/file-upload/abort-quest.spec.ts +6 -5
  116. package/demos/pc/app/file-upload/accept-file-image.spec.ts +9 -4
  117. package/demos/pc/app/file-upload/custom-trigger.spec.ts +1 -1
  118. package/demos/pc/app/file-upload/disabled.spec.ts +4 -5
  119. package/demos/pc/app/file-upload/drag-upload.spec.ts +1 -1
  120. package/demos/pc/app/file-upload/file-picture-card.spec.ts +7 -6
  121. package/demos/pc/app/file-upload/form-validation.spec.ts +2 -2
  122. package/demos/pc/app/file-upload/image-size.spec.ts +2 -2
  123. package/demos/pc/app/file-upload/max-file-count.spec.ts +6 -6
  124. package/demos/pc/app/file-upload/paste-upload-composition-api.vue +2 -2
  125. package/demos/pc/app/file-upload/paste-upload.spec.ts +19 -2
  126. package/demos/pc/app/file-upload/picture-card.spec.ts +6 -5
  127. package/demos/pc/app/file-upload/picture-list.spec.ts +2 -3
  128. package/demos/pc/app/file-upload/prevent-delete-file.spec.ts +1 -1
  129. package/demos/pc/app/file-upload/prevent-upload-file.spec.ts +1 -1
  130. package/demos/pc/app/file-upload/upload-events.spec.ts +6 -4
  131. package/demos/pc/app/file-upload/upload-file-list-slot.spec.ts +18 -0
  132. package/demos/pc/app/file-upload/upload-file-list-thumb-composition-api.vue +4 -3
  133. package/demos/pc/app/file-upload/upload-file-list-thumb.spec.ts +2 -2
  134. package/demos/pc/app/file-upload/upload-file-list-thumb.vue +4 -3
  135. package/demos/pc/app/file-upload/upload-file-list.spec.ts +9 -9
  136. package/demos/pc/app/file-upload/upload-limit.spec.ts +5 -8
  137. package/demos/pc/app/file-upload/upload-request.spec.ts +1 -1
  138. package/demos/pc/app/file-upload/upload-user-head.spec.ts +1 -1
  139. package/demos/pc/app/file-upload/webdoc/file-upload.js +4 -4
  140. package/demos/pc/app/file-upload//346/265/213/350/257/225.txt +1 -0
  141. package/demos/pc/app/form/custom-validation-rule-composition-api.vue +2 -14
  142. package/demos/pc/app/form/custom-validation-rule.vue +2 -8
  143. package/demos/pc/app/form/form-validate-field.vue +2 -2
  144. package/demos/pc/app/form/size.spec.ts +26 -6
  145. package/demos/pc/app/grid/custom-style/body-style-composition-api.vue +1 -1
  146. package/demos/pc/app/grid/custom-style/footer-style-composition-api.vue +64 -19
  147. package/demos/pc/app/grid/drag/row-drag-ctrl-composition-api.vue +4 -4
  148. package/demos/pc/app/grid/edit/trigger-mode-hm-editing-composition-api.vue +2 -2
  149. package/demos/pc/app/grid/edit/trigger-mode-hm-editing.vue +1 -1
  150. package/demos/pc/app/grid/event/cell-mouse-event-composition-api.vue +1 -1
  151. package/demos/pc/app/grid/event/context-menu-event-composition-api.vue +1 -0
  152. package/demos/pc/app/grid/event/edit-event-composition-api.vue +1 -1
  153. package/demos/pc/app/grid/expand/set-row-expansion-composition-api.vue +9 -4
  154. package/demos/pc/app/grid/loading/{grid-loading-off-tip-composition-api.vue → grid-custom-loading-composition-api.vue} +29 -4
  155. package/demos/pc/app/grid/loading/grid-custom-loading.spec.js +7 -0
  156. package/demos/pc/app/grid/loading/{grid-loading-off-tip.vue → grid-custom-loading.vue} +27 -1
  157. package/demos/pc/app/grid/operation-column/clear-and-set-radio-row-composition-api.vue +5 -1
  158. package/demos/pc/app/grid/operation-column/selection-operation-composition-api.vue +32 -0
  159. package/demos/pc/app/grid/size/grid-size-composition-api.vue +17 -0
  160. package/demos/pc/app/grid/slot/editor-slot-composition-api.vue +13 -7
  161. package/demos/pc/app/grid/sort/combinations-sort-composition-api.vue +3 -3
  162. package/demos/pc/app/grid/sort/combinations-sort.spec.js +3 -0
  163. package/demos/pc/app/grid/sort/combinations-sort.vue +3 -3
  164. package/demos/pc/app/grid/toolbar/insert-remove-rows-composition-api.vue +1 -1
  165. package/demos/pc/app/grid/toolbar/insert-remove-rows.vue +1 -1
  166. package/demos/pc/app/grid/toolbar/refresh-grid-composition-api.vue +105 -0
  167. package/demos/pc/app/grid/tree-table/set-tree-expansion-composition-api.vue +4 -4
  168. package/demos/pc/app/grid/validation/before-submit-validation-composition-api.vue +19 -2
  169. package/demos/pc/app/grid/validation/before-submit-validation.spec.js +5 -2
  170. package/demos/pc/app/grid/validation/before-submit-validation.vue +19 -2
  171. package/demos/pc/app/grid/webdoc/grid-loading.js +9 -5
  172. package/demos/pc/app/grid/webdoc/grid-size.js +2 -2
  173. package/demos/pc/app/grid/webdoc/grid-validation.js +1 -1
  174. package/demos/pc/app/grid/webdoc/grid.js +8 -1
  175. package/demos/pc/app/guide/callback-composition-api.vue +2 -2
  176. package/demos/pc/app/guide/callback.vue +2 -2
  177. package/demos/pc/app/guide/highlight-box-composition-api.vue +9 -8
  178. package/demos/pc/app/guide/highlight-box.vue +8 -2
  179. package/demos/pc/app/guide/offset-composition-api.vue +7 -2
  180. package/demos/pc/app/guide/offset.vue +7 -2
  181. package/demos/pc/app/guide/size-composition-api.vue +3 -8
  182. package/demos/pc/app/guide/size.vue +3 -8
  183. package/demos/pc/app/guide/webdoc/guide.js +2 -2
  184. package/demos/pc/app/image/basic-usage.spec.ts +9 -2
  185. package/demos/pc/app/image/events.spec.ts +3 -1
  186. package/demos/pc/app/image/lazy-composition-api.vue +2 -2
  187. package/demos/pc/app/image/lazy.spec.ts +7 -4
  188. package/demos/pc/app/image/lazy.vue +2 -2
  189. package/demos/pc/app/image/preview-in-dialog.spec.ts +15 -1
  190. package/demos/pc/app/image/preview.spec.ts +28 -13
  191. package/demos/pc/app/image/slot.spec.ts +3 -0
  192. package/demos/pc/app/input/webdoc/input.js +11 -11
  193. package/demos/pc/app/link/basic-usage-composition-api.vue +1 -1
  194. package/demos/pc/app/link/basic-usage.spec.ts +1 -1
  195. package/demos/pc/app/link/basic-usage.vue +1 -1
  196. package/demos/pc/app/link/config-href.spec.ts +2 -2
  197. package/demos/pc/app/link/custom-icon.spec.ts +5 -5
  198. package/demos/pc/app/link/dynamic-disable.spec.ts +11 -11
  199. package/demos/pc/app/link/focus-no-underline.spec.ts +3 -3
  200. package/demos/pc/app/link/link-style-composition-api.vue +6 -6
  201. package/demos/pc/app/link/link-style.spec.ts +36 -7
  202. package/demos/pc/app/link/link-style.vue +6 -6
  203. package/demos/pc/app/link/webdoc/link.js +20 -22
  204. package/demos/pc/app/link-menu/webdoc/link-menu.js +22 -22
  205. package/demos/pc/app/milestone/basic-usage-composition-api.vue +6 -6
  206. package/demos/pc/app/milestone/basic-usage.spec.ts +1 -1
  207. package/demos/pc/app/milestone/basic-usage.vue +6 -6
  208. package/demos/pc/app/milestone/line-style-composition-api.vue +6 -6
  209. package/demos/pc/app/milestone/line-style.vue +6 -6
  210. package/demos/pc/app/milestone/show-number-composition-api.vue +9 -7
  211. package/demos/pc/app/milestone/show-number.spec.ts +7 -7
  212. package/demos/pc/app/milestone/show-number.vue +9 -7
  213. package/demos/pc/app/milestone/solid-style-composition-api.vue +7 -7
  214. package/demos/pc/app/milestone/solid-style.spec.ts +7 -7
  215. package/demos/pc/app/milestone/solid-style.vue +7 -7
  216. package/demos/pc/app/milestone/webdoc/milestone.js +31 -12
  217. package/demos/pc/app/modal/webdoc/modal.js +80 -76
  218. package/demos/pc/app/nav-menu/basic-usage.spec.ts +2 -2
  219. package/demos/pc/app/nav-menu/before-skip-prevent.spec.ts +1 -1
  220. package/demos/pc/app/nav-menu/before-skip.spec.ts +1 -1
  221. package/demos/pc/app/nav-menu/custom-service.spec.ts +1 -2
  222. package/demos/pc/app/nav-menu/overflow.spec.ts +2 -2
  223. package/demos/pc/app/nav-menu/slot-logo.spec.ts +1 -1
  224. package/demos/pc/app/nav-menu/slot-toolbar.spec.ts +2 -2
  225. package/demos/pc/app/numeric/webdoc/numeric.js +33 -32
  226. package/demos/pc/app/search/basic-usage.spec.ts +1 -1
  227. package/demos/pc/app/search/clearable.spec.ts +1 -1
  228. package/demos/pc/app/search/events-composition-api.vue +6 -0
  229. package/demos/pc/app/search/events.spec.ts +9 -6
  230. package/demos/pc/app/search/events.vue +5 -0
  231. package/demos/pc/app/search/webdoc/search.js +14 -4
  232. package/demos/pc/app/slide-bar/webdoc/slide-bar.js +18 -12
  233. package/demos/pc/app/slider/webdoc/slider.js +23 -18
  234. package/demos/pc/app/steps/advanced-steps.spec.ts +3 -2
  235. package/demos/pc/app/steps/click-composition-api.vue +0 -1
  236. package/demos/pc/app/steps/click.spec.ts +1 -12
  237. package/demos/pc/app/steps/custom-steps-item.spec.ts +1 -1
  238. package/demos/pc/app/steps/node-status-composition-api.vue +1 -1
  239. package/demos/pc/app/steps/node-status.spec.ts +1 -1
  240. package/demos/pc/app/steps/node-status.vue +1 -1
  241. package/demos/pc/app/steps/normal-steps-composition-api.vue +1 -1
  242. package/demos/pc/app/steps/normal-steps.spec.ts +2 -2
  243. package/demos/pc/app/steps/normal-steps.vue +1 -1
  244. package/demos/pc/app/steps/only-number-composition-api.vue +1 -1
  245. package/demos/pc/app/steps/only-number.spec.ts +1 -1
  246. package/demos/pc/app/steps/only-number.vue +1 -1
  247. package/demos/pc/app/steps/show-divider-composition-api.vue +1 -1
  248. package/demos/pc/app/steps/show-divider.spec.ts +1 -1
  249. package/demos/pc/app/steps/show-divider.vue +1 -1
  250. package/demos/pc/app/steps/size-composition-api.vue +6 -9
  251. package/demos/pc/app/steps/size.spec.ts +1 -4
  252. package/demos/pc/app/steps/size.vue +4 -4
  253. package/demos/pc/app/steps/slot-active-node-desc-composition-api.vue +3 -1
  254. package/demos/pc/app/steps/slot-active-node-desc.spec.ts +1 -1
  255. package/demos/pc/app/steps/slot-active-node-desc.vue +3 -1
  256. package/demos/pc/app/steps/slot-description-composition-api.vue +6 -6
  257. package/demos/pc/app/steps/slot-description.spec.ts +1 -1
  258. package/demos/pc/app/steps/slot-description.vue +5 -5
  259. package/demos/pc/app/steps/slot-item-composition-api.vue +0 -1
  260. package/demos/pc/app/steps/slot-item.spec.ts +1 -7
  261. package/demos/pc/app/steps/slot-item.vue +0 -1
  262. package/demos/pc/app/steps/space.spec.ts +1 -1
  263. package/demos/pc/app/steps/text-position-composition-api.vue +1 -1
  264. package/demos/pc/app/steps/text-position.spec.ts +1 -4
  265. package/demos/pc/app/steps/text-position.vue +1 -1
  266. package/demos/pc/app/steps/vertical-steps.spec.ts +13 -19
  267. package/demos/pc/app/steps/webdoc/steps.js +18 -17
  268. package/demos/pc/app/tabs/basic-usage-composition-api.vue +4 -4
  269. package/demos/pc/app/tabs/basic-usage.vue +4 -4
  270. package/demos/pc/app/tabs/before-leave-composition-api.vue +3 -3
  271. package/demos/pc/app/tabs/before-leave.vue +3 -3
  272. package/demos/pc/app/tabs/custom-more-icon-composition-api.vue +1 -1
  273. package/demos/pc/app/tabs/custom-more-icon.vue +1 -1
  274. package/demos/pc/app/tabs/custom-tab-content-composition-api.vue +3 -3
  275. package/demos/pc/app/tabs/custom-tab-content.vue +3 -3
  276. package/demos/pc/app/tabs/custom-tab-title-composition-api.vue +3 -3
  277. package/demos/pc/app/tabs/custom-tab-title.vue +3 -3
  278. package/demos/pc/app/tabs/lazy-composition-api.vue +5 -3
  279. package/demos/pc/app/tabs/lazy.vue +5 -3
  280. package/demos/pc/app/tabs/position-composition-api.vue +22 -17
  281. package/demos/pc/app/tabs/position.spec.ts +4 -4
  282. package/demos/pc/app/tabs/position.vue +19 -18
  283. package/demos/pc/app/tabs/prevent-tab-switching-composition-api.vue +3 -3
  284. package/demos/pc/app/tabs/prevent-tab-switching.vue +3 -3
  285. package/demos/pc/app/tabs/stretch-wh-composition-api.vue +3 -3
  286. package/demos/pc/app/tabs/stretch-wh.vue +3 -3
  287. package/demos/pc/app/tabs/tab-style-bordercard-composition-api.vue +10 -10
  288. package/demos/pc/app/tabs/tab-style-bordercard.vue +10 -10
  289. package/demos/pc/app/tabs/tab-style-card-composition-api.vue +1 -1
  290. package/demos/pc/app/tabs/tab-style-card.vue +1 -1
  291. package/demos/pc/app/tabs/tabs-draggable-composition-api.vue +1 -1
  292. package/demos/pc/app/tabs/tabs-draggable.spec.ts +1 -7
  293. package/demos/pc/app/tabs/tabs-draggable.vue +1 -1
  294. package/demos/pc/app/tabs/tabs-events-click-composition-api.vue +3 -3
  295. package/demos/pc/app/tabs/tabs-events-click.vue +3 -3
  296. package/demos/pc/app/tabs/tabs-events-close-composition-api.vue +4 -4
  297. package/demos/pc/app/tabs/tabs-events-close.vue +4 -4
  298. package/demos/pc/app/tabs/tabs-events-edit-composition-api.vue +4 -4
  299. package/demos/pc/app/tabs/tabs-events-edit.vue +4 -4
  300. package/demos/pc/app/tabs/tabs-separator-composition-api.vue +7 -7
  301. package/demos/pc/app/tabs/tabs-separator.vue +7 -7
  302. package/demos/pc/app/tabs/tabs-size-composition-api.vue +3 -3
  303. package/demos/pc/app/tabs/tabs-size.vue +3 -3
  304. package/demos/pc/app/tabs/tooltip-composition-api.vue +17 -13
  305. package/demos/pc/app/tabs/tooltip.vue +17 -13
  306. package/demos/pc/app/tabs/webdoc/tabs.js +35 -35
  307. package/demos/pc/app/tabs/with-add-composition-api.vue +1 -1
  308. package/demos/pc/app/tabs/with-add.vue +1 -1
  309. package/demos/pc/app/tag/{before-delete-composition-api.vue → delete-composition-api.vue} +6 -16
  310. package/demos/pc/app/tag/delete.spec.ts +19 -0
  311. package/demos/pc/app/tag/{closable.vue → delete.vue} +22 -5
  312. package/demos/pc/app/tag/webdoc/tag.js +15 -7
  313. package/demos/pc/app/time-line/webdoc/time-line.js +12 -12
  314. package/demos/pc/app/toggle-menu/webdoc/toggle-menu.js +64 -55
  315. package/demos/pc/app/tooltip/content.spec.js +1 -1
  316. package/demos/pc/app/tooltip/custom-popper.spec.js +4 -4
  317. package/demos/pc/app/transfer/basic-usage.spec.ts +7 -20
  318. package/demos/pc/app/transfer/custom-btns.spec.ts +11 -19
  319. package/demos/pc/app/transfer/custom-filter.spec.ts +6 -4
  320. package/demos/pc/app/transfer/custom-footer.spec.ts +1 -2
  321. package/demos/pc/app/transfer/custom-render.spec.ts +7 -5
  322. package/demos/pc/app/transfer/custom-titles.spec.ts +5 -3
  323. package/demos/pc/app/transfer/default-checked.spec.ts +5 -9
  324. package/demos/pc/app/transfer/drop-config.spec.ts +21 -16
  325. package/demos/pc/app/transfer/manual-clear-query.spec.ts +2 -2
  326. package/demos/pc/app/transfer/nested-table.spec.ts +12 -35
  327. package/demos/pc/app/transfer/nested-tree.spec.ts +3 -30
  328. package/demos/pc/app/transfer/target-order.spec.ts +2 -1
  329. package/demos/pc/app/transfer/transfer-events.spec.ts +2 -1
  330. package/demos/pc/app/tree/basic-usage.spec.ts +26 -16
  331. package/demos/pc/app/tree/check-op.spec.ts +37 -19
  332. package/demos/pc/app/tree/checkbox.spec.ts +23 -18
  333. package/demos/pc/app/tree/contextmenu.spec.ts +9 -8
  334. package/demos/pc/app/tree/drag.spec.ts +10 -18
  335. package/demos/pc/app/tree/edit.spec.ts +24 -103
  336. package/demos/pc/app/tree/expand-control.spec.ts +22 -18
  337. package/demos/pc/app/tree/filter-view.spec.ts +16 -18
  338. package/demos/pc/app/tree/icons.spec.ts +20 -18
  339. package/demos/pc/app/tree/lazy.spec.ts +10 -18
  340. package/demos/pc/app/tree/node-hl.spec.ts +27 -18
  341. package/demos/pc/app/tree/node-op-composition-api.vue +12 -6
  342. package/demos/pc/app/tree/node-op.spec.ts +32 -19
  343. package/demos/pc/app/tree/other.spec.ts +5 -18
  344. package/demos/pc/app/tree/props.spec.ts +7 -18
  345. package/demos/pc/app/tree/radio.spec.ts +10 -18
  346. package/demos/pc/app/tree/slot.spec.ts +12 -18
  347. package/demos/pc/app/tree/webdoc/tree.js +2 -2
  348. package/demos/pc/app/tree-menu/accordion.spec.ts +3 -1
  349. package/demos/pc/app/tree-menu/basic-usage.spec.ts +4 -2
  350. package/demos/pc/app/tree-menu/current-node-composition-api.vue +7 -3
  351. package/demos/pc/app/tree-menu/current-node.spec.ts +20 -13
  352. package/demos/pc/app/tree-menu/current-node.vue +8 -6
  353. package/demos/pc/app/tree-menu/custom-icon.spec.ts +12 -2
  354. package/demos/pc/app/tree-menu/data-resource.spec.ts +33 -21
  355. package/demos/pc/app/tree-menu/default-expand-all.spec.ts +25 -8
  356. package/demos/pc/app/tree-menu/default-expanded-keys-highlight.spec.ts +6 -4
  357. package/demos/pc/app/tree-menu/default-expanded-keys.spec.ts +11 -7
  358. package/demos/pc/app/tree-menu/draggable.spec.ts +11 -4
  359. package/demos/pc/app/tree-menu/empty-text.spec.ts +1 -1
  360. package/demos/pc/app/tree-menu/event-allow-draggable.spec.ts +4 -1
  361. package/demos/pc/app/tree-menu/events.spec.ts +56 -28
  362. package/demos/pc/app/tree-menu/expand-on-click-node.spec.ts +32 -3
  363. package/demos/pc/app/tree-menu/filter-node-method.spec.ts +9 -6
  364. package/demos/pc/app/tree-menu/filter-node-method.vue +0 -4
  365. package/demos/pc/app/tree-menu/indent.spec.ts +9 -4
  366. package/demos/pc/app/tree-menu/lazy-load.spec.ts +8 -4
  367. package/demos/pc/app/tree-menu/menu-collapsible.spec.ts +5 -2
  368. package/demos/pc/app/tree-menu/show-checkbox.spec.ts +79 -41
  369. package/demos/pc/app/tree-menu/text-ellipsis.spec.ts +7 -4
  370. package/demos/pc/app/tree-menu/tree-menu-slot.spec.ts +4 -3
  371. package/demos/pc/app/tree-menu/webdoc/tree-menu.cn.md +1 -1
  372. package/demos/pc/app/tree-menu/webdoc/tree-menu.en.md +1 -1
  373. package/demos/pc/app/tree-menu/webdoc/tree-menu.js +3 -3
  374. package/demos/pc/app/user-contact/webdoc/user-contact.js +21 -13
  375. package/demos/pc/app/user-head/icon-user-head.spec.ts +3 -3
  376. package/demos/pc/app/user-head/image-user-head.spec.ts +2 -2
  377. package/demos/pc/app/user-head/webdoc/user-head.js +44 -28
  378. package/demos/pc/webdoc/changelog.md +1 -0
  379. package/demos/pc/webdoc/import-components.md +2 -4
  380. package/demos/pc/webdoc/theme-en.md +8 -4
  381. package/demos/pc/webdoc/theme.md +10 -3
  382. package/package.json +6 -6
  383. package/src/App.vue +0 -2
  384. package/src/i18n/index.js +3 -3
  385. package/src/main.js +2 -7
  386. package/src/menus.jsx +1 -1
  387. package/src/tools/useApiMode.js +2 -2
  388. package/src/tools/useBulletin.jsx +2 -2
  389. package/src/tools/utils.js +2 -2
  390. package/src/views/components/VersionTip.vue +14 -8
  391. package/src/views/components/components.vue +48 -47
  392. package/src/views/components/demo.vue +11 -11
  393. package/src/views/docs/docs.vue +2 -3
  394. package/src/views/layout/layout.vue +17 -19
  395. package/src/views/overview.vue +16 -13
  396. package/vite.config.ts +10 -4
  397. package/demos/mobile/app/pull-refresh/disabled.vue +0 -57
  398. package/demos/mobile/app/pull-refresh/head-height.vue +0 -31
  399. package/demos/mobile/app/pull-refresh/result-text.vue +0 -46
  400. package/demos/mobile/app/pull-refresh/success-duration.vue +0 -31
  401. package/demos/mobile/app/pull-refresh/success-text.vue +0 -27
  402. package/demos/pc/app/grid/loading/grid-loading-off-tip.spec.js +0 -8
  403. package/demos/pc/app/tag/before-delete.vue +0 -64
  404. package/demos/pc/app/tag/closable-composition-api.vue +0 -25
  405. package/demos/pc/app/tag/closable.spec.ts +0 -14
  406. /package/demos/pc/app/button/{autofocus.spec.js → autofocus.spec.ts} +0 -0
  407. /package/demos/pc/app/button/{basic-usage.spec.js → basic-usage.spec.ts} +0 -0
  408. /package/demos/pc/app/button/{click.spec.js → click.spec.ts} +0 -0
  409. /package/demos/pc/app/button/{icon.spec.js → icon.spec.ts} +0 -0
  410. /package/demos/pc/app/button/{image.spec.js → image.spec.ts} +0 -0
  411. /package/demos/pc/app/button/{loading.spec.js → loading.spec.ts} +0 -0
  412. /package/demos/pc/app/button/{reset-time.spec.js → reset-time.spec.ts} +0 -0
  413. /package/demos/pc/app/button/{size.spec.js → size.spec.ts} +0 -0
  414. /package/demos/pc/app/button/{text.spec.js → text.spec.ts} +0 -0
@@ -10,8 +10,14 @@
10
10
  <tiny-button plain class="hight3">新手引导3</tiny-button>
11
11
  </div>
12
12
  <div>
13
- <tiny-alert class="hight4" :closable="false" description="type 为默认值 info"></tiny-alert>
14
- <tiny-alert class="hight5" type="success" size="large" :closable="false" description="提交结果页用于反馈一系列操作任务的处理结果。">
13
+ <tiny-alert class="hight4" :closable="false" description="type 为默认值 info"></tiny-alert>
14
+ <tiny-alert
15
+ class="hight5"
16
+ type="success"
17
+ size="large"
18
+ :closable="false"
19
+ description="提交结果页用于反馈一系列操作任务的处理结果。"
20
+ >
15
21
  <tiny-button size="mini" type="primary">继续提交</tiny-button>
16
22
  <tiny-button size="mini">取消操作</tiny-button>
17
23
  </tiny-alert>
@@ -23,12 +29,7 @@
23
29
 
24
30
  <script setup>
25
31
  import { ref } from 'vue'
26
- import {
27
- Guide as TinyGuide,
28
- Alert as TinyAlert,
29
- Button as TinyButton,
30
- Divider as TinyDivider
31
- } from '@opentiny/vue'
32
+ import { Guide as TinyGuide, Alert as TinyAlert, Button as TinyButton, Divider as TinyDivider } from '@opentiny/vue'
32
33
 
33
34
  const showStep = ref(false)
34
35
  const domData = ref([
@@ -10,8 +10,14 @@
10
10
  <tiny-button plain class="hight3">新手引导3</tiny-button>
11
11
  </div>
12
12
  <div>
13
- <tiny-alert class="hight4" :closable="false" description="type 为默认值 info"></tiny-alert>
14
- <tiny-alert class="hight5" type="success" size="large" :closable="false" description="提交结果页用于反馈一系列操作任务的处理结果。">
13
+ <tiny-alert class="hight4" :closable="false" description="type 为默认值 info"></tiny-alert>
14
+ <tiny-alert
15
+ class="hight5"
16
+ type="success"
17
+ size="large"
18
+ :closable="false"
19
+ description="提交结果页用于反馈一系列操作任务的处理结果。"
20
+ >
15
21
  <tiny-button size="mini" type="primary">继续提交</tiny-button>
16
22
  <tiny-button size="mini">取消操作</tiny-button>
17
23
  </tiny-alert>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div>
3
- <tiny-alert class="demo-guide-offset" :closable="false" description="type 为默认值 info"></tiny-alert>
3
+ <tiny-alert class="demo-guide-offset" :closable="false" description="type 为默认值 info"></tiny-alert>
4
4
  <tiny-button plain @click="stepStartDefault">默认</tiny-button>
5
5
  <tiny-button plain @click="stepStartMainAxis">纵轴偏移 50px</tiny-button>
6
6
  <tiny-button plain @click="stepStartCrossAxis">横轴偏移 50px</tiny-button>
@@ -8,7 +8,12 @@
8
8
  <tiny-guide :show-step="showStepDefault" :dom-data="domDataDefault"></tiny-guide>
9
9
  <tiny-guide :show-step="showStepMainAxis" :dom-data="domDataMainAxis" :main-axis="50"></tiny-guide>
10
10
  <tiny-guide :show-step="showStepCrossAxis" :dom-data="domDataCrossAxis" :cross-axis="50"></tiny-guide>
11
- <tiny-guide :show-step="showStepAlignmentAxis" :dom-data="domDataAlignmentAxis" :alignment-axis="50" pop-position="bottom-start"></tiny-guide>
11
+ <tiny-guide
12
+ :show-step="showStepAlignmentAxis"
13
+ :dom-data="domDataAlignmentAxis"
14
+ :alignment-axis="50"
15
+ pop-position="bottom-start"
16
+ ></tiny-guide>
12
17
  </div>
13
18
  </template>
14
19
 
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div>
3
- <tiny-alert class="demo-guide-offset" :closable="false" description="type 为默认值 info"></tiny-alert>
3
+ <tiny-alert class="demo-guide-offset" :closable="false" description="type 为默认值 info"></tiny-alert>
4
4
  <tiny-button plain @click="stepStartDefault">默认</tiny-button>
5
5
  <tiny-button plain @click="stepStartMainAxis">纵轴偏移 50px</tiny-button>
6
6
  <tiny-button plain @click="stepStartCrossAxis">横轴偏移 50px</tiny-button>
@@ -8,7 +8,12 @@
8
8
  <tiny-guide :show-step="showStepDefault" :dom-data="domDataDefault"></tiny-guide>
9
9
  <tiny-guide :show-step="showStepMainAxis" :dom-data="domDataMainAxis" :main-axis="50"></tiny-guide>
10
10
  <tiny-guide :show-step="showStepCrossAxis" :dom-data="domDataCrossAxis" :cross-axis="50"></tiny-guide>
11
- <tiny-guide :show-step="showStepAlignmentAxis" :dom-data="domDataAlignmentAxis" :alignment-axis="50" pop-position="bottom-start"></tiny-guide>
11
+ <tiny-guide
12
+ :show-step="showStepAlignmentAxis"
13
+ :dom-data="domDataAlignmentAxis"
14
+ :alignment-axis="50"
15
+ pop-position="bottom-start"
16
+ ></tiny-guide>
12
17
  </div>
13
18
  </template>
14
19
 
@@ -1,12 +1,7 @@
1
1
  <template>
2
2
  <div>
3
- <tiny-button plain class="h1" @click="stepStart">新手引导自定义宽高</tiny-button>
4
- <tiny-guide
5
- :show-step="showStep"
6
- :dom-data="domData"
7
- width="300"
8
- height="200"
9
- ></tiny-guide>
3
+ <tiny-button plain class="auto-size" @click="stepStart">新手引导自定义宽高</tiny-button>
4
+ <tiny-guide :show-step="showStep" :dom-data="domData" width="300" height="200"></tiny-guide>
10
5
  </div>
11
6
  </template>
12
7
 
@@ -19,7 +14,7 @@ const domData = ref([
19
14
  {
20
15
  title: '新手引导标题1',
21
16
  text: '这里是新手引导文案这里是新手引导文案这里是新手引导文案这里是新手引导文案这里是新手引导文案这里是是新手引导',
22
- domElement: '.h1',
17
+ domElement: '.auto-size',
23
18
  button: [
24
19
  {
25
20
  text: '完成',
@@ -1,12 +1,7 @@
1
1
  <template>
2
2
  <div>
3
- <tiny-button plain class="h1" @click="stepStart">新手引导自定义宽高</tiny-button>
4
- <tiny-guide
5
- :show-step="showStep"
6
- :dom-data="domData"
7
- width="300"
8
- height="200"
9
- ></tiny-guide>
3
+ <tiny-button plain class="auto-size" @click="stepStart">新手引导自定义宽高</tiny-button>
4
+ <tiny-guide :show-step="showStep" :dom-data="domData" width="300" height="200"></tiny-guide>
10
5
  </div>
11
6
  </template>
12
7
 
@@ -25,7 +20,7 @@ export default {
25
20
  {
26
21
  title: '新手引导标题1',
27
22
  text: '这里是新手引导文案这里是新手引导文案这里是新手引导文案这里是新手引导文案这里是新手引导文案这里是是新手引导',
28
- domElement: '.h1',
23
+ domElement: '.auto-size',
29
24
  button: [
30
25
  {
31
26
  text: '完成',
@@ -70,10 +70,10 @@ export default {
70
70
  },
71
71
  {
72
72
  'demoId': 'modal-overlay-opening',
73
- 'name': { 'zh-CN': '设置模态叠加层开口', 'en-US': '' },
73
+ 'name': { 'zh-CN': '模态叠加层开口', 'en-US': '' },
74
74
  'desc': {
75
75
  'zh-CN': `
76
- <p><code>modal-overlay-opening-padding</code>:可以在模态叠加层开口周围添加的填充量,控制引导元素高亮范围;</p>
76
+ <p><code>modal-overlay-opening-padding</code>:可以在模态叠加层开口周围添加的填充量,控制引导元素高亮范围。</p>
77
77
  <p><code>modal-overlay-opening-radius</code>:可以在模态叠加层开口周围添加的边界半径量,控制引导元素高亮圆角。</p>
78
78
  `,
79
79
  'en-US': ''
@@ -4,6 +4,13 @@ test('基础用法', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('image#basic-usage')
6
6
 
7
- const img = page.locator('.tiny-image > .tiny-image__inner')
8
- await expect(img).toHaveCount(5)
7
+ const preview = page.locator('.pc-demo-container')
8
+ const imgs = preview.locator('.tiny-image > .tiny-image__inner')
9
+ await expect(imgs).toHaveCount(5)
10
+
11
+ await expect(imgs.nth(0)).toHaveCSS('object-fit', 'fill')
12
+ await expect(imgs.nth(1)).toHaveCSS('object-fit', 'contain')
13
+ await expect(imgs.nth(2)).toHaveCSS('object-fit', 'cover')
14
+ await expect(imgs.nth(3)).toHaveCSS('object-fit', 'none')
15
+ await expect(imgs.nth(4)).toHaveCSS('object-fit', 'scale-down')
9
16
  })
@@ -4,6 +4,8 @@ test('事件', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('image#events')
6
6
  const errorSlot = page.locator('.tiny-image__error')
7
- await page.waitForTimeout(300)
7
+ const eventMsg = page.getByText('加载失败触发事件')
8
+
8
9
  await expect(errorSlot).toHaveCount(1)
10
+ await expect(eventMsg).toHaveCount(1)
9
11
  })
@@ -2,7 +2,7 @@
2
2
  <div>
3
3
  <div style="margin: 12px">滚动下面的容器,通过开发者工具中的观察网络请求:</div>
4
4
  <div class="demo-image__lazy" style="height: 300px; overflow-y: auto">
5
- <tiny-image v-for="url in srcList" :key="url" :src="url" lazy></tiny-image>
5
+ <tiny-image v-for="url in srcList" :key="url" :src="url" lazy fit="fill"></tiny-image>
6
6
  </div>
7
7
  </div>
8
8
  </template>
@@ -21,6 +21,6 @@ const srcList = ref([
21
21
  <style scoped>
22
22
  .demo-image__lazy .tiny-image {
23
23
  display: block;
24
- min-height: 200px;
24
+ min-height: 500px;
25
25
  }
26
26
  </style>
@@ -5,12 +5,15 @@ test('懒加载', async ({ page }) => {
5
5
  await page.goto('image#lazy')
6
6
 
7
7
  const preview = page.locator('.pc-demo-container')
8
- await expect(preview.locator('.demo-image__lazy div').locator('img')).toHaveCount(2)
8
+ await expect(preview.locator('.demo-image__lazy div').locator('img')).toHaveCount(1)
9
9
 
10
+ // 滚动2次,触发下面2张加载
10
11
  const imageBox = preview.locator('.demo-image__lazy')
11
12
  await imageBox.hover()
12
- await page.mouse.wheel(0, 2000)
13
- await page.waitForTimeout(300)
14
- await page.mouse.wheel(0, 1000)
13
+ await page.mouse.wheel(0, 300)
14
+ await page.waitForTimeout(100)
15
+ await page.mouse.wheel(0, 500)
16
+ await page.waitForTimeout(30)
17
+
15
18
  await expect(preview.locator('.demo-image__lazy').locator('img')).toHaveCount(3)
16
19
  })
@@ -2,7 +2,7 @@
2
2
  <div>
3
3
  <div style="margin: 12px">滚动下面的容器,通过开发者工具中的观察网络请求:</div>
4
4
  <div class="demo-image__lazy" style="height: 300px; overflow-y: auto">
5
- <tiny-image v-for="url in srcList" :key="url" :src="url" lazy></tiny-image>
5
+ <tiny-image v-for="url in srcList" :key="url" :src="url" lazy fit="fill"></tiny-image>
6
6
  </div>
7
7
  </div>
8
8
  </template>
@@ -29,6 +29,6 @@ export default {
29
29
  <style scoped>
30
30
  .demo-image__lazy .tiny-image {
31
31
  display: block;
32
- min-height: 200px;
32
+ min-height: 500px;
33
33
  }
34
34
  </style>
@@ -3,7 +3,21 @@ import { test, expect } from '@playwright/test'
3
3
  test('对话框中预览图片', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('image#preview-in-dialog')
6
- await page.getByRole('button', { name: '弹出Dialog' }).click()
6
+
7
+ const preview = page.locator('.pc-demo-container')
8
+ const viewerImage = page.locator('.tiny-image-viewer')
9
+ const btn = preview.getByRole('button', { name: '弹出Dialog' })
7
10
  const dialog = page.locator('.pc-demo-container .tiny-dialog-box__title')
11
+ const image = preview.locator('.tiny-image__inner')
12
+
13
+ // 打开对话框
14
+ await btn.click()
15
+ await page.waitForTimeout(50)
8
16
  await expect(dialog).toBeVisible()
17
+ await expect(image).toBeVisible()
18
+
19
+ // 打开预览
20
+ await image.click()
21
+ await page.waitForTimeout(50)
22
+ await expect(viewerImage).toBeVisible()
9
23
  })
@@ -5,35 +5,50 @@ test('图片大图', async ({ page }) => {
5
5
 
6
6
  await page.goto('image#preview')
7
7
  const preview = page.locator('.pc-demo-container')
8
-
9
8
  await preview.locator('.tiny-image__inner').click()
10
- const viewerImage = page.locator('.tiny-image-viewer')
11
- await expect(viewerImage).toHaveCount(1)
9
+ await page.waitForTimeout(50)
12
10
 
11
+ // viewerImage 是插入到body末尾的。
12
+ const viewerImage = page.locator('.tiny-image-viewer')
13
+ const mask = viewerImage.locator('.tiny-image-viewer__mask')
13
14
  const toolbar = viewerImage.locator('.tiny-image-viewer__actions-inner')
14
15
  const canvas = viewerImage.locator('.tiny-image-viewer__img')
16
+
17
+ // 验证出现
18
+ await expect(viewerImage).toHaveCount(1)
19
+ await expect(canvas).toHaveCount(1)
20
+ await expect(mask).toHaveCSS('position', 'absolute')
21
+ await expect(mask).toHaveCSS('opacity', '0.5')
22
+ await expect(canvas).toHaveCSS('transform', 'matrix(1, 0, 0, 1, 0, 0)')
23
+
15
24
  // 点击缩小
16
25
  await toolbar.locator('svg').first().click()
26
+ await page.waitForTimeout(20)
17
27
  await expect(canvas).toHaveCSS('transform', 'matrix(0.8, 0, 0, 0.8, 0, 0)')
18
28
 
19
29
  // 点击放大
20
30
  await toolbar.locator('svg').nth(1).click()
31
+ await page.waitForTimeout(20)
21
32
  await expect(canvas).toHaveCSS('transform', 'matrix(1, 0, 0, 1, 0, 0)')
22
33
 
23
34
  // 点击向左旋转
24
35
  await toolbar.locator('svg').nth(3).click()
36
+ await page.waitForTimeout(20)
25
37
  await expect(canvas).toHaveCSS('transform', 'matrix(0, -1, 1, 0, 0, 0)')
26
38
 
27
- // // 点击切换上一张图片
28
- // let preImageSrc = await page.locator('.tiny-image-viewer__img').getAttribute('src')
29
- // await page.locator('span:nth-child(3) > .tiny-svg').click()
30
- // let currentImageSrc = await page.locator('.tiny-image-viewer__img').getAttribute('src')
31
- // await expect(preImageSrc).not.toEqual(currentImageSrc)
32
- // // 点击切换下一张图片
33
- // preImageSrc = await page.locator('.tiny-image-viewer__img').getAttribute('src')
34
- // await page.locator('span:nth-child(4) > .tiny-svg').click()
35
- // currentImageSrc = await page.locator('.tiny-image-viewer__img').getAttribute('src')
36
- // await expect(preImageSrc).not.toEqual(currentImageSrc)
39
+ const prev = viewerImage.locator('.tiny-image-viewer__prev')
40
+ const next = viewerImage.locator('.tiny-image-viewer__next')
41
+
42
+ // // 点击切换
43
+ await next.click()
44
+ await page.waitForTimeout(20)
45
+ await expect(canvas).toHaveAttribute('src', /house\.jpg/)
46
+
47
+ await prev.click()
48
+ await page.waitForTimeout(20)
49
+ await prev.click()
50
+ await page.waitForTimeout(20)
51
+ await expect(canvas).toHaveAttribute('src', /bridge\.jpg/)
37
52
 
38
53
  // 点击关闭
39
54
  await viewerImage.locator('.tiny-image-viewer__close').click()
@@ -5,5 +5,8 @@ test('插槽', async ({ page }) => {
5
5
 
6
6
  await page.goto('image#slot')
7
7
  const errorSlot = page.locator('.tiny-image__error')
8
+ const customLost = page.getByText('图片已丢失')
9
+
8
10
  await expect(errorSlot).toBeVisible()
11
+ await expect(customLost).toBeVisible()
9
12
  })
@@ -193,7 +193,7 @@ export default {
193
193
  {
194
194
  'name': 'autocomplete',
195
195
  'type': 'string',
196
- 'defaultValue': 'off',
196
+ 'defaultValue': `'off'`,
197
197
  'desc': {
198
198
  'zh-CN': '原生 autocomplete 属性',
199
199
  'en-US': 'Native autocomplete attribute'
@@ -317,7 +317,7 @@ export default {
317
317
  },
318
318
  {
319
319
  'name': 'modelValue / v-model',
320
- 'type': 'string , number',
320
+ 'type': 'string | number',
321
321
  'defaultValue': '',
322
322
  'desc': {
323
323
  'zh-CN': '设置文本的绑定值',
@@ -347,7 +347,7 @@ export default {
347
347
  },
348
348
  {
349
349
  'name': 'prefix-icon',
350
- 'type': 'Component',
350
+ 'type': 'VueComponent',
351
351
  'defaultValue': '',
352
352
  'desc': {
353
353
  'zh-CN': '输入框头部图标',
@@ -367,7 +367,7 @@ export default {
367
367
  },
368
368
  {
369
369
  'name': 'resize',
370
- 'type': '"both" | "horizontal" | "vertical" | "none"',
370
+ 'type': `'both' | 'horizontal' | 'vertical' | 'none'`,
371
371
  'defaultValue': '',
372
372
  'desc': {
373
373
  'zh-CN': '控制是否能被用户缩放',
@@ -408,7 +408,7 @@ export default {
408
408
  },
409
409
  {
410
410
  'name': 'size',
411
- 'type': '"medium" | "small" | "mini"',
411
+ 'type': `'medium' | 'small' | 'mini'`,
412
412
  'defaultValue': '',
413
413
  'desc': {
414
414
  'zh-CN': '输入框尺寸,只在 type!="textarea" 时有效',
@@ -428,7 +428,7 @@ export default {
428
428
  },
429
429
  {
430
430
  'name': 'suffix-icon',
431
- 'type': 'Component',
431
+ 'type': 'VueComponent',
432
432
  'defaultValue': '',
433
433
  'desc': {
434
434
  'zh-CN': '输入框尾部图标',
@@ -441,19 +441,19 @@ export default {
441
441
  'type': 'string',
442
442
  'defaultValue': '',
443
443
  'desc': {
444
- 'zh-CN': '原生属性,输入框的tabindex',
444
+ 'zh-CN': '原生属性,输入框的 tabindex',
445
445
  'en-US': 'Native attribute, tabindex in the text box'
446
446
  },
447
447
  'demoId': ''
448
448
  },
449
449
  {
450
450
  'name': 'type',
451
- 'type': '"text" | "textarea" | "password" | InputHTMLAttributes.type',
452
- 'defaultValue': 'text',
451
+ 'type': `'text' | 'textarea' | 'password' | InputHTMLAttributes.type`,
452
+ 'defaultValue': `'text'`,
453
453
  'desc': {
454
- 'zh-CN': '设置input框的type属性,默认为 text,可选值 text,textarea 和其他 原生 input 的 type 值',
454
+ 'zh-CN': '设置 input 框的 type 属性,默认为 "text",可选值 "text""textarea" 和其他 原生 input 的 type 值',
455
455
  'en-US':
456
- 'Set the type attribute of the input box. The default value is text. The options are text, textarea, and type values of other native inputs.'
456
+ 'Set the type attribute of the input box. The default value is "text". The options are "text", "textarea", and type values of other native inputs.'
457
457
  },
458
458
  'demoId': 'type'
459
459
  },
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <tiny-link :underline="false">默认链接</tiny-link>
2
+ <tiny-link>默认链接</tiny-link>
3
3
  </template>
4
4
 
5
5
  <script setup lang="jsx">
@@ -3,7 +3,7 @@ import { test, expect } from '@playwright/test'
3
3
  test('基础用法', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('link#basic-usage')
6
- const preview = page.locator('#preview')
6
+ const preview = page.locator('#basic-usage')
7
7
  const anchor = preview.locator('a')
8
8
  await anchor.hover()
9
9
  await expect(anchor).toHaveCSS('color', 'rgb(82, 110, 204)')
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <tiny-link :underline="false">默认链接</tiny-link>
2
+ <tiny-link>默认链接</tiny-link>
3
3
  </template>
4
4
 
5
5
  <script lang="jsx">
@@ -3,8 +3,8 @@ import { test, expect } from '@playwright/test'
3
3
  test('链接地址', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('link#config-href')
6
- const preview = page.locator('#preview')
7
- const anchor = preview.getByRole('link', { name: '默认链接' })
6
+ const demo = page.locator('#config-href')
7
+ const anchor = demo.getByRole('link', { name: '默认链接' })
8
8
  await expect(anchor).toHaveAttribute('target', '_blank')
9
9
  await expect(anchor).toHaveAttribute('href', /\S+/)
10
10
  })
@@ -3,13 +3,13 @@ import { test, expect } from '@playwright/test'
3
3
  test('自定义图标', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('link#custom-icon')
6
- const preview = page.locator('#preview')
7
- const edit = preview.locator('a').filter({ hasText: '编辑' })
6
+ const demo = page.locator('#custom-icon')
7
+ const edit = demo.locator('a').filter({ hasText: '编辑' })
8
8
  await expect(edit.locator('svg')).toHaveCount(1)
9
- const disabled = preview.locator('a').filter({ hasText: '禁用' })
9
+ const disabled = demo.locator('a').filter({ hasText: '禁用' })
10
10
  await expect(disabled.locator('svg')).toHaveCount(1)
11
- const view = preview.locator('a').filter({ hasText: '查看' })
11
+ const view = demo.locator('a').filter({ hasText: '查看' })
12
12
  await expect(view.locator('svg')).toHaveCount(1)
13
- const del = preview.locator('a').filter({ hasText: '删除' })
13
+ const del = demo.locator('a').filter({ hasText: '删除' })
14
14
  await expect(del.locator('svg')).toHaveCount(1)
15
15
  })
@@ -3,28 +3,28 @@ import { test, expect } from '@playwright/test'
3
3
  test('禁用', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('link#dynamic-disable')
6
- const preview = page.locator('#preview')
7
- let anchor = preview.locator('a').filter({ hasText: '默认链接' })
6
+ const demo = page.locator('#dynamic-disable')
7
+ let anchor = demo.locator('a').filter({ hasText: '默认链接' })
8
8
  await expect(anchor).toHaveCSS('cursor', 'not-allowed')
9
9
  await anchor.hover()
10
10
  await expect(anchor).toHaveCSS('color', 'rgb(191, 191, 191)')
11
- anchor = preview.locator('a').filter({ hasText: '主要链接' })
11
+ anchor = demo.locator('a').filter({ hasText: '主要链接' })
12
12
  await expect(anchor).toHaveCSS('cursor', 'not-allowed')
13
13
  await anchor.hover()
14
- await expect(anchor).toHaveCSS('color', 'rgb(191, 191, 191)')
15
- anchor = preview.locator('a').filter({ hasText: '成功链接' })
14
+ await expect(anchor).toHaveCSS('color', 'rgb(160, 207, 255)')
15
+ anchor = demo.locator('a').filter({ hasText: '成功链接' })
16
16
  await expect(anchor).toHaveCSS('cursor', 'not-allowed')
17
17
  await anchor.hover()
18
- await expect(anchor).toHaveCSS('color', 'rgb(191, 191, 191)')
19
- anchor = preview.locator('a').filter({ hasText: '警告链接' })
18
+ await expect(anchor).toHaveCSS('color', 'rgb(166, 195, 185)')
19
+ anchor = demo.locator('a').filter({ hasText: '警告链接' })
20
20
  await expect(anchor).toHaveCSS('cursor', 'not-allowed')
21
21
  await anchor.hover()
22
- await expect(anchor).toHaveCSS('color', 'rgb(191, 191, 191)')
23
- anchor = preview.locator('a').filter({ hasText: '危险链接' })
22
+ await expect(anchor).toHaveCSS('color', 'rgb(211, 198, 162)')
23
+ anchor = demo.locator('a').filter({ hasText: '危险链接' })
24
24
  await expect(anchor).toHaveCSS('cursor', 'not-allowed')
25
25
  await anchor.hover()
26
- await expect(anchor).toHaveCSS('color', 'rgb(191, 191, 191)')
27
- anchor = preview.locator('a').filter({ hasText: '信息链接' })
26
+ await expect(anchor).toHaveCSS('color', 'rgb(216, 186, 181)')
27
+ anchor = demo.locator('a').filter({ hasText: '信息链接' })
28
28
  await expect(anchor).toHaveCSS('cursor', 'not-allowed')
29
29
  await anchor.hover()
30
30
  await expect(anchor).toHaveCSS('color', 'rgb(191, 191, 191)')
@@ -3,11 +3,11 @@ import { test, expect } from '@playwright/test'
3
3
  test('聚焦时有无下划线', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('link#focus-no-underline')
6
- const preview = page.locator('#preview')
7
- let anchor = preview.locator('a').filter({ hasText: '无下划线' })
6
+ const demo = page.locator('#focus-no-underline')
7
+ let anchor = demo.locator('a').filter({ hasText: '无下划线' })
8
8
  await anchor.hover()
9
9
  await expect(anchor).toHaveCSS('text-decoration', /none/)
10
10
  // 无法获取到伪元素::after,暂时跳过测试
11
- anchor = preview.locator('a').filter({ hasText: '有下划线' })
11
+ anchor = demo.locator('a').filter({ hasText: '有下划线' })
12
12
  await anchor.hover()
13
13
  })
@@ -1,11 +1,11 @@
1
1
  <template>
2
2
  <div>
3
- <tiny-link :underline="false"> 默认链接 </tiny-link>
4
- <tiny-link :underline="false" type="primary"> 主要链接 </tiny-link>
5
- <tiny-link :underline="false" type="success"> 成功链接 </tiny-link>
6
- <tiny-link :underline="false" type="warning"> 警告链接 </tiny-link>
7
- <tiny-link :underline="false" type="danger"> 危险链接 </tiny-link>
8
- <tiny-link :underline="false" type="info"> 信息链接 </tiny-link>
3
+ <tiny-link> 默认链接 </tiny-link>
4
+ <tiny-link type="primary"> 主要链接 </tiny-link>
5
+ <tiny-link type="success"> 成功链接 </tiny-link>
6
+ <tiny-link type="warning"> 警告链接 </tiny-link>
7
+ <tiny-link type="danger"> 危险链接 </tiny-link>
8
+ <tiny-link type="info"> 信息链接 </tiny-link>
9
9
  </div>
10
10
  </template>
11
11
 
@@ -3,23 +3,52 @@ import { test, expect } from '@playwright/test'
3
3
  test('主题样式', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('link#link-style')
6
- const preview = page.locator('#preview')
7
- let anchor = preview.locator('a').filter({ hasText: '默认链接' })
6
+
7
+ const demo = page.locator('#link-style')
8
+ let getAfter = async (index: number) =>
9
+ await page.evaluate((index: number) => {
10
+ const link = document.querySelector(`#link-style .tiny-link:nth-child(${index})`)
11
+ if (link) {
12
+ const { borderBottomColor } = window.getComputedStyle(link, '::after')
13
+ return borderBottomColor
14
+ } else {
15
+ return ''
16
+ }
17
+ }, index)
18
+
19
+ let anchor = demo.locator('a').filter({ hasText: '默认链接' })
20
+ await expect(anchor).toHaveCSS('color', 'rgb(37, 43, 58)')
8
21
  await anchor.hover()
22
+ await expect(await getAfter(1)).toBe('rgb(94, 124, 224)')
9
23
  await expect(anchor).toHaveCSS('color', 'rgb(82, 110, 204)')
10
- anchor = preview.locator('a').filter({ hasText: '主要链接' })
24
+
25
+ anchor = demo.locator('a').filter({ hasText: '主要链接' })
26
+ await expect(anchor).toHaveCSS('color', 'rgb(94, 124, 224)')
11
27
  await anchor.hover()
28
+ await expect(await getAfter(2)).toBe('rgb(94, 124, 224)')
12
29
  await expect(anchor).toHaveCSS('color', 'rgb(118, 147, 245)')
13
- anchor = preview.locator('a').filter({ hasText: '成功链接' })
30
+
31
+ anchor = demo.locator('a').filter({ hasText: '成功链接' })
32
+ await expect(anchor).toHaveCSS('color', 'rgb(80, 212, 171)')
14
33
  await anchor.hover()
34
+ await expect(await getAfter(3)).toBe('rgb(80, 212, 171)')
15
35
  await expect(anchor).toHaveCSS('color', 'rgb(172, 242, 220)')
16
- anchor = preview.locator('a').filter({ hasText: '警告链接' })
36
+
37
+ anchor = demo.locator('a').filter({ hasText: '警告链接' })
38
+ await expect(anchor).toHaveCSS('color', 'rgb(250, 152, 65)')
17
39
  await anchor.hover()
40
+ await expect(await getAfter(4)).toBe('rgb(250, 152, 65)')
18
41
  await expect(anchor).toHaveCSS('color', 'rgb(250, 194, 10)')
19
- anchor = preview.locator('a').filter({ hasText: '危险链接' })
42
+
43
+ anchor = demo.locator('a').filter({ hasText: '危险链接' })
44
+ await expect(anchor).toHaveCSS('color', 'rgb(199, 0, 11)')
20
45
  await anchor.hover()
46
+ await expect(await getAfter(5)).toBe('rgb(199, 0, 11)')
21
47
  await expect(anchor).toHaveCSS('color', 'rgb(214, 74, 82)')
22
- anchor = preview.locator('a').filter({ hasText: '信息链接' })
48
+
49
+ anchor = demo.locator('a').filter({ hasText: '信息链接' })
50
+ await expect(anchor).toHaveCSS('color', 'rgb(37, 43, 58)')
23
51
  await anchor.hover()
52
+ await expect(await getAfter(6)).toBe('rgb(37, 43, 58)')
24
53
  await expect(anchor).toHaveCSS('color', 'rgb(92, 97, 115)')
25
54
  })