@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
@@ -27,7 +27,7 @@ const $delay = (time) => new Promise((resolve) => setTimeout(resolve, time))
27
27
  */
28
28
  const $idle = () => new Promise((resolve) => (window.requestIdleCallback || window.requestAnimationFrame)(resolve))
29
29
 
30
- const $pub = (url) => {
30
+ const pubUrl = (url) => {
31
31
  return baseUrl + url
32
32
  }
33
33
 
@@ -80,4 +80,4 @@ const fetchDemosFile = (path) => {
80
80
  })
81
81
  }
82
82
 
83
- export { $clone, $split, $delay, $idle, $pub, fetchDemosFile }
83
+ export { $clone, $split, $delay, $idle, pubUrl, fetchDemosFile }
@@ -25,7 +25,7 @@
25
25
  import type { PropType } from 'vue'
26
26
  import { defineComponent, computed } from 'vue'
27
27
  import { Tag as TinyTag, Alert as TinyAlert, Tooltip as TinyTooltip } from '@opentiny/vue'
28
- import { $t2 } from '../../i18n/index'
28
+ import { getWord } from '../../i18n/index'
29
29
 
30
30
  enum STAGE {
31
31
  experimental = 'experimental',
@@ -140,9 +140,11 @@ export default defineComponent({
140
140
  })
141
141
 
142
142
  const generateDes = (desMap: typeof cnDesMap) => {
143
- // 当前stable之后,不显示experimental的描述
144
- const isFilterExperimental = [STAGE.removed, STAGE.deprecated, STAGE.stable].includes(currentStageComputed.value as STAGE)
145
- // 当前deprecated之后,不显示stable的描述
143
+ // 当前stable之后,不显示experimental的描述
144
+ const isFilterExperimental = [STAGE.removed, STAGE.deprecated, STAGE.stable].includes(
145
+ currentStageComputed.value as STAGE
146
+ )
147
+ // 当前deprecated之后,不显示stable的描述
146
148
  const isFilterStable = [STAGE.removed, STAGE.deprecated].includes(currentStageComputed.value as STAGE)
147
149
 
148
150
  const goingStages = Object.entries(desMap).filter(([stage]) => {
@@ -163,17 +165,21 @@ export default defineComponent({
163
165
  }
164
166
 
165
167
  const tipComputed = computed(() => {
166
- if (props.tip) return $t2(props.tip['zh-CN'], props.tip['en-US']) as string
168
+ if (props.tip) return getWord(props.tip['zh-CN'], props.tip['en-US']) as string
167
169
 
168
170
  if (!props.metaData) return ''
169
171
 
170
172
  const vertionDesZnCn = generateDes(cnDesMap)
171
- const znChTip = `该${props.tipSubject === 'component' ? '组件' : '特性'}${vertionDesZnCn}。${props.extendTip?.['zh-CN'] || ''}`
173
+ const znChTip = `该${props.tipSubject === 'component' ? '组件' : '特性'}${vertionDesZnCn}。${
174
+ props.extendTip?.['zh-CN'] || ''
175
+ }`
172
176
 
173
177
  const vertionDesEnUs = generateDes(enDesMap)
174
- const enUsTip = `This ${props.tipSubject === 'component' ? 'component' : 'feature'} is ${vertionDesEnUs}. ${props.extendTip?.['en-US'] || ''}`
178
+ const enUsTip = `This ${props.tipSubject === 'component' ? 'component' : 'feature'} is ${vertionDesEnUs}. ${
179
+ props.extendTip?.['en-US'] || ''
180
+ }`
175
181
 
176
- return $t2(znChTip, enUsTip) as string
182
+ return getWord(znChTip, enUsTip) as string
177
183
  })
178
184
 
179
185
  const alertTypeComputed = computed(() => {
@@ -8,16 +8,17 @@
8
8
  <div class="ti-fi-1 ti-w0 ti-rel cmp-container">
9
9
  <!-- 一个组件的文档: 描述md + demos + apis -->
10
10
  <div class="markdown-body markdown-top-body" size="medium" v-html="cmpTopMd"></div>
11
- <version-tip
11
+ <version-tip
12
12
  v-if="currJson.metaData || currJson.versionTipOption"
13
- :metaData="currJson.metaData"
14
- v-bind="currJson.versionTipOption">
13
+ :meta-data="currJson.metaData"
14
+ v-bind="currJson.versionTipOption"
15
+ >
15
16
  </version-tip>
16
17
  <template v-if="currJson?.demos?.length > 0">
17
18
  <div class="all-demos-container">
18
- <h2 class="ti-f30 ti-fw-normal !ti-mb20">{{ $t('yan-shi') }}</h2>
19
+ <h2 class="ti-f30 ti-fw-normal !ti-mb20">{{ i18nByKey('yan-shi') }}</h2>
19
20
  <div v-if="apiModeState.demoMode === 'default'" class="ti-f-c ti-f-wrap">
20
- <template v-if="currJson.column === '2'">
21
+ <template v-if="currJson.column === '2' && currJson.demos.length > 1">
21
22
  <div class="one-demo-col2">
22
23
  <div>
23
24
  <demo v-for="demo in evenDemo" :key="demo.name" :demo="demo" />
@@ -40,7 +41,7 @@
40
41
  <div id="API">
41
42
  <h2 class="ti-f30 ti-fw-normal ti-mt28">API</h2>
42
43
  <!-- apis 是一个数组 {name,type,properties:[原table内容],events:[] ...........} -->
43
- <div class="mt20" v-for="(oneGroup, idx) in currJson.apis" :key="oneGroup.name">
44
+ <div class="mt20" v-for="oneGroup in currJson.apis" :key="oneGroup.name">
44
45
  <div class="ti-f-r ti-f-pos-start ti-fw-bold">
45
46
  <div :id="oneGroup.name" class="ti-f18">{{ oneGroup.name }}</div>
46
47
  <div class="ti-ml12 ti-b-a-primary ti-c-primary ti-px8 ti-py4">{{ oneGroup.type }}</div>
@@ -51,32 +52,33 @@
51
52
  <table class="api-table">
52
53
  <thead>
53
54
  <tr v-if="key.includes('slots')">
54
- <th width="15%">{{ $t('name') }}</th>
55
- <th width="85%">{{ $t('desc') }}</th>
55
+ <th width="15%">{{ i18nByKey('name') }}</th>
56
+ <th width="85%">{{ i18nByKey('desc') }}</th>
56
57
  </tr>
57
58
  <tr v-else-if="key.includes('events')">
58
- <th width="15%">{{ $t('name') }}</th>
59
- <th width="20%">{{ $t('propType') }}</th>
60
- <th width="65%">{{ $t('desc') }}</th>
59
+ <th width="15%">{{ i18nByKey('name') }}</th>
60
+ <th width="20%">{{ i18nByKey('propType') }}</th>
61
+ <th width="65%">{{ i18nByKey('desc') }}</th>
61
62
  </tr>
62
63
  <tr v-else>
63
- <th width="15%">{{ $t('name') }}</th>
64
- <th width="20%">{{ $t('propType') }}</th>
65
- <th width="20%">{{ $t('defValue') }}</th>
66
- <th width="45%">{{ $t('desc') }}</th>
64
+ <th width="15%">{{ i18nByKey('name') }}</th>
65
+ <th width="20%">{{ i18nByKey('propType') }}</th>
66
+ <th width="20%">{{ i18nByKey('defValue') }}</th>
67
+ <th width="45%">{{ i18nByKey('desc') }}</th>
67
68
  </tr>
68
69
  </thead>
69
70
  <tbody>
70
- <tr v-for="row in oneApiArr" :key="row.name">
71
+ <tr v-for="row in oneApiArr.sort((a, b) => a.name.localeCompare(b.name))" :key="row.name">
71
72
  <td>
72
73
  <a v-if="row.demoId" @click="jumpToDemo(row.demoId)">{{ row.name }}</a>
73
74
  <span v-else>{{ row.name }}</span>
74
- <version-tip
75
+ <version-tip
75
76
  v-if="row.metaData || row.versionTipOption"
76
- :metaData="row.metaData"
77
- v-bind="row.versionTipOption"
78
- renderType="tag"
79
- tipSubject="api">
77
+ :meta-data="row.metaData"
78
+ v-bind="row.versionTipOption"
79
+ render-type="tag"
80
+ tip-subject="api"
81
+ >
80
82
  </version-tip>
81
83
  </td>
82
84
  <td v-if="!key.includes('slots')">
@@ -115,7 +117,7 @@
115
117
  <h2 id="FAQ" v-if="cmpFAQMd" class="ti-f30 ti-fw-normal ti-mt28 ti-mb20">FAQ</h2>
116
118
  <div class="markdown-body" v-html="cmpFAQMd"></div>
117
119
  <div v-if="currJson.owner" class="ti-abs ti-right24 ti-top24" @click="copyText(currJson.owner)">
118
- {{ $t('doc-owner') }} : {{ currJson.owner }}
120
+ {{ i18nByKey('doc-owner') }} : {{ currJson.owner }}
119
121
  </div>
120
122
  </div>
121
123
 
@@ -138,9 +140,9 @@
138
140
  <script lang="jsx">
139
141
  import { defineComponent, reactive, computed, toRefs, watch, onMounted, ref } from 'vue'
140
142
  import { marked } from 'marked'
141
- import { Loading, Anchor, ButtonGroup, ColumnListGroup } from '@opentiny/vue'
143
+ import { Loading, Anchor, ButtonGroup } from '@opentiny/vue'
142
144
  import debounce from '@opentiny/vue-renderless/common/deps/debounce'
143
- import { $t, $t2, $clone, $split, fetchDemosFile, useApiMode, useTemplateMode } from '@/tools'
145
+ import { i18nByKey, getWord, $clone, fetchDemosFile, useApiMode, useTemplateMode } from '@/tools'
144
146
  import demo from '@/views/components/demo'
145
147
  import { router } from '@/router.js'
146
148
  import { Collapse, CollapseItem } from '@opentiny/vue'
@@ -166,7 +168,7 @@ export default defineComponent({
166
168
  const anchorRefreshKey = ref(0)
167
169
  const state = reactive({
168
170
  webDocPath: computed(() => ''),
169
- langKey: $t2('zh-CN', 'en-US'),
171
+ langKey: getWord('zh-CN', 'en-US'),
170
172
  cmpId: '',
171
173
  currJson: { column: 1, demos: [], apis: [] },
172
174
  cmpTopMd: null,
@@ -217,6 +219,7 @@ export default defineComponent({
217
219
  // 用户打开官网有时候会带一些特殊字符的hash,try catch一下防止js报错
218
220
  scrollTarget = document.querySelector(`#${hash}`)
219
221
  } catch (err) {
222
+ // eslint-disable-next-line no-console
220
223
  console.log('querySelector has special character:', err)
221
224
  }
222
225
  if (scrollTarget) {
@@ -261,7 +264,7 @@ export default defineComponent({
261
264
 
262
265
  // saas下切换mode和组价示例都会触发loadPage,需要防抖
263
266
  const loadPage = debounce(templateModeState.isSaas ? 100 : 0, false, () => {
264
- const lang = $t2('cn', 'en')
267
+ const lang = getWord('cn', 'en')
265
268
  state.cmpId = router.currentRoute.value.params.cmpId
266
269
 
267
270
  // 将请求合并起来,这样页面更新一次,页面刷新的时机就固定了
@@ -285,6 +288,7 @@ export default defineComponent({
285
288
  }
286
289
 
287
290
  // 3、加载cmpId.js 文件
291
+ // eslint-disable-next-line no-eval
288
292
  const json = eval('(' + jsData.slice(15) + ')')
289
293
  state.currJson = {
290
294
  ...json,
@@ -293,12 +297,14 @@ export default defineComponent({
293
297
  }
294
298
  if (state.cmpId?.startsWith('grid-')) {
295
299
  fetchDemosFile(`${staticDemoPath}/grid/webdoc/grid.js`).then((data) => {
300
+ // eslint-disable-next-line no-eval
296
301
  const gridJson = eval('(' + data.slice(15) + ')')
297
302
  state.currJson.apis = gridJson.apis
298
303
  state.currJson.types = gridJson.types
299
304
  })
300
305
  } else if (state.cmpId?.startsWith('chart-')) {
301
306
  fetchDemosFile(`${staticDemoPath}/chart/webdoc/chart.js`).then((data) => {
307
+ // eslint-disable-next-line no-eval
302
308
  const chartJson = eval('(' + data.slice(15) + ')')
303
309
  state.currJson.apis = chartJson.apis
304
310
  })
@@ -328,30 +334,23 @@ export default defineComponent({
328
334
  copyText: (text) => {
329
335
  navigator.clipboard.writeText(text)
330
336
  },
337
+ // 点击 api区域的 name列时
331
338
  jumpToDemo: (demoId) => {
332
339
  if (demoId.startsWith('chart') || demoId.startsWith('grid')) {
333
340
  router.push(demoId)
334
341
  } else {
335
342
  router.push(`#${demoId}`)
336
- }
337
- },
338
- handleApiClick: (ev) => {
339
- if (ev.target.tagName === 'A') {
340
- ev.preventDefault()
341
- const href = ev.target.getAttribute('href')
342
- const hash = $split(href, '#', -1)
343
- router.push(href)
344
- state.singleDemo = state.currJson.demos.find((d) => d.demoId === hash)
345
343
 
346
- scrollByHash(hash)
347
- }
348
- if (apiModeState.demoMode === 'single') {
349
- state.singleDemo = state.currJson.demos.find((d) => d.demoId === demoId)
344
+ if (apiModeState.demoMode === 'single') {
345
+ state.singleDemo = state.currJson.demos.find((d) => d.demoId === demoId)
346
+ }
350
347
  }
351
348
  },
349
+ // 点击api 区域的type列
352
350
  handleTypeClick: (ev) => {
353
351
  changeActiveNames(ev.target.hash, true)
354
352
  },
353
+ // 目录列表上的点击
355
354
  handleAnchorClick: (e, data) => {
356
355
  if (apiModeState.demoMode === 'single' && data.link.startsWith('#')) {
357
356
  e.preventDefault()
@@ -410,7 +409,7 @@ export default defineComponent({
410
409
  return {
411
410
  ...toRefs(state),
412
411
  ...fn,
413
- $t,
412
+ i18nByKey,
414
413
  anchorRefreshKey,
415
414
  apiModeState,
416
415
  templateModeState,
@@ -548,21 +547,23 @@ table.api-table {
548
547
  .custom-block.tip {
549
548
  background-color: #f3f5f7;
550
549
  border-color: #42b983;
551
- border-radius: 0;
552
- padding: 1.5rem;
553
- border-left-width: 0.5rem;
550
+ border-radius: 0.3rem;
551
+ padding: 0.5rem 1rem;
552
+ border-left-width: 0.3rem;
554
553
  border-left-style: solid;
555
554
  margin: 1rem 0;
556
555
  font-size: 14px;
557
556
  color: #5e6d82;
558
- line-height: 1.5;
557
+ line-height: 2;
558
+
559
559
  .custom-block-title {
560
560
  font-weight: 600;
561
+ margin-bottom: 0.5rem;
561
562
  }
563
+
562
564
  p {
563
- margin: 8px 0;
564
- font-size: 16px;
565
- line-height: 1.5;
565
+ margin: 0;
566
+ font-size: 14px;
566
567
  }
567
568
  ul {
568
569
  li {
@@ -16,7 +16,7 @@
16
16
  <tiny-tooltip
17
17
  placement="top"
18
18
  :append-to-body="false"
19
- :content="demo.isOpen ? $t('hideCode') : $t('showCode')"
19
+ :content="demo.isOpen ? i18nByKey('hideCode') : i18nByKey('showCode')"
20
20
  >
21
21
  <i
22
22
  :class="!!demo.isOpen ? 'i-ti-codeslash' : 'i-ti-code'"
@@ -24,7 +24,7 @@
24
24
  @click="toggleDemoCode(demo)"
25
25
  />
26
26
  </tiny-tooltip>
27
- <tiny-tooltip placement="top" :append-to-body="false" :content="$t('playground')">
27
+ <tiny-tooltip placement="top" :append-to-body="false" :content="i18nByKey('playground')">
28
28
  <i class="i-ti-playground ml8 h:c-success ti-w16 ti-h16 ti-cur-hand" @click="openPlayground(demo)" />
29
29
  </tiny-tooltip>
30
30
  </div>
@@ -65,8 +65,8 @@
65
65
 
66
66
  <script lang="jsx">
67
67
  import { defineComponent, reactive, computed, toRefs, shallowRef, onMounted, watch, nextTick, inject } from 'vue'
68
- import { $t, $t2 } from '@/i18n'
69
- import { $split, appData, fetchDemosFile, $pub } from '@/tools'
68
+ import { i18nByKey, getWord } from '@/i18n'
69
+ import { $split, appData, fetchDemosFile } from '@/tools'
70
70
  import { Tooltip as TinyTooltip, Tabs as TinyTabs, TabItem as TinyTabItem, Button as TinyButton } from '@opentiny/vue'
71
71
  import { languageMap, vueComponents, getWebdocPath, staticDemoPath } from './cmpConfig'
72
72
  import { router } from '@/router.js'
@@ -108,7 +108,7 @@ export default defineComponent({
108
108
  .then((code) => {
109
109
  return code
110
110
  })
111
- .catch((error) => {
111
+ .catch(() => {
112
112
  return `${demoName}示例资源不存在,请检查文件名是否正确?`
113
113
  })
114
114
  const ext = $split(fileName, '.', -1)
@@ -123,7 +123,7 @@ export default defineComponent({
123
123
  const state = reactive({
124
124
  tabValue: 'tab0',
125
125
  cmpId: router.currentRoute.value.params.cmpId,
126
- langKey: $t2('zh-CN', 'en-US'),
126
+ langKey: getWord('zh-CN', 'en-US'),
127
127
  currDemoId: computed(() => {
128
128
  let hash = router.currentRoute.value.hash?.slice(1)
129
129
 
@@ -133,7 +133,7 @@ export default defineComponent({
133
133
  }
134
134
  return hash
135
135
  }),
136
- copyTip: $t('copyCode'),
136
+ copyTip: i18nByKey('copyCode'),
137
137
  copyIcon: 'i-ti-copy'
138
138
  })
139
139
 
@@ -169,12 +169,12 @@ export default defineComponent({
169
169
 
170
170
  navigator.clipboard.writeText(demo.files[0].code)
171
171
  }
172
- state.copyTip = $t('copyCodeOk')
172
+ state.copyTip = i18nByKey('copyCodeOk')
173
173
  state.copyIcon = 'i-ti-check'
174
174
  },
175
175
  resetTip() {
176
176
  setTimeout(() => {
177
- state.copyTip = $t('copyCode')
177
+ state.copyTip = i18nByKey('copyCode')
178
178
  state.copyIcon = 'i-ti-copy'
179
179
  }, 300)
180
180
  },
@@ -218,7 +218,7 @@ export default defineComponent({
218
218
  }
219
219
  )
220
220
 
221
- return { ...toRefs(state), ...fn, appData, vueComponents, demoConfig, cmp, isMobileFirst }
221
+ return { ...toRefs(state), ...fn, appData, vueComponents, demoConfig, cmp, isMobileFirst, i18nByKey }
222
222
  }
223
223
  })
224
224
  </script>
@@ -304,7 +304,7 @@ export default defineComponent({
304
304
  position: absolute;
305
305
  left: 11px;
306
306
  top: 79px;
307
- transform: translateX(0);
307
+ transform: i18nByKeyX(0);
308
308
  overflow: hidden;
309
309
  }
310
310
  }
@@ -13,8 +13,7 @@
13
13
 
14
14
  <script setup>
15
15
  import { ref, nextTick, watch, onMounted, computed, shallowRef } from 'vue'
16
- import { Anchor as TinyAnchor } from '@opentiny/vue'
17
- import { $t2 } from '@/tools'
16
+ import { getWord } from '@/tools'
18
17
  import docMDs, { transformIdSelector } from './docConfig.js'
19
18
  import { router } from '@/router.js'
20
19
 
@@ -28,7 +27,7 @@ const catalog = ref([])
28
27
  const docCmp = shallowRef(null)
29
28
 
30
29
  async function loadPage() {
31
- let suffix = $t2('', '-en')
30
+ let suffix = getWord('', '-en')
32
31
  const docKey = router.currentRoute.value.params.docId
33
32
  const docName = isOpen && openDocMap[docKey] ? openDocMap[docKey] : docKey
34
33
 
@@ -2,15 +2,15 @@
2
2
  <div class="main-layout ti-hp100 ti-f-c ti-f-box-stretch">
3
3
  <!-- 切换语言 -->
4
4
  <div class="lang-box">
5
- <tiny-tooltip :content="$t('changeLanguage')" placement="left">
6
- <span class="lang-btn" @click="changeLanguage">{{ $t('language') }}</span>
5
+ <tiny-tooltip :content="i18nByKey('changeLanguage')" placement="left">
6
+ <span class="lang-btn" @click="changeLanguage">{{ i18nByKey('language') }}</span>
7
7
  </tiny-tooltip>
8
8
  </div>
9
9
  <!-- 切換主题样式 -->
10
10
  <tiny-dropdown v-if="!templateModeState.isSaas" class="theme-change-button" trigger="click">
11
- <tiny-tooltip :content="$t('changeTheme')" placement="left">
11
+ <tiny-tooltip :content="i18nByKey('changeTheme')" placement="left">
12
12
  <span>
13
- <img :src="themeSvg" :alt="$t('changeTheme')" />
13
+ <img :src="themeSvg" :alt="i18nByKey('changeTheme')" />
14
14
  </span>
15
15
  </tiny-tooltip>
16
16
  <template #dropdown>
@@ -31,7 +31,7 @@
31
31
  <div v-show="!isCollapsed" class="api-type-box" :class="{ 'is-collapsed': isCollapsed }">
32
32
  <div class="api-type">
33
33
  <div :class="{ 'api-mode': true, active: apiModeState.apiMode === 'Options' }">
34
- {{ $t2('选项式', 'Options') }}
34
+ {{ getWord('选项式', 'Options') }}
35
35
  </div>
36
36
  <tiny-switch
37
37
  class="api-switch"
@@ -41,16 +41,16 @@
41
41
  v-model="apiModeState.apiMode"
42
42
  ></tiny-switch>
43
43
  <div :class="{ 'api-mode': true, active: apiModeState.apiMode === 'Composition' }">
44
- {{ $t2('组合式', 'Composition') }}
44
+ {{ getWord('组合式', 'Composition') }}
45
45
  </div>
46
- <tiny-tooltip :content="$t('apiType')" placement="right">
46
+ <tiny-tooltip :content="i18nByKey('apiType')" placement="right">
47
47
  <icon-help-circle></icon-help-circle>
48
48
  </tiny-tooltip>
49
49
  </div>
50
50
 
51
51
  <div class="api-type">
52
52
  <div :class="{ 'api-mode': true, active: apiModeState.demoMode === 'single' }">
53
- {{ $t2('单示例', 'Single') }}
53
+ {{ getWord('单示例', 'Single') }}
54
54
  </div>
55
55
  <tiny-switch
56
56
  class="api-switch"
@@ -60,9 +60,9 @@
60
60
  v-model="apiModeState.demoMode"
61
61
  ></tiny-switch>
62
62
  <div :class="{ 'api-mode': true, active: apiModeState.demoMode === 'default' }">
63
- {{ $t2('多示例', 'Multiple') }}
63
+ {{ getWord('多示例', 'Multiple') }}
64
64
  </div>
65
- <tiny-tooltip :content="$t2('切换demo的预览模式', 'Change demo preview mode')" placement="right">
65
+ <tiny-tooltip :content="getWord('切换demo的预览模式', 'Change demo preview mode')" placement="right">
66
66
  <icon-help-circle></icon-help-circle>
67
67
  </tiny-tooltip>
68
68
  </div>
@@ -83,12 +83,8 @@
83
83
  <div class="node-name-container">
84
84
  <tiny-tag v-if="data?.mode?.includes('mobile-first')" effect="plain">多端</tiny-tag>
85
85
  <span class="node-name-label">{{ data.label }}</span>
86
- <tiny-tag
87
- v-if="data.mark?.text"
88
- class="node-float-tip"
89
- effect="dark"
90
- :type="data.mark?.type">
91
- {{ data.mark.text}}
86
+ <tiny-tag v-if="data.mark?.text" class="node-float-tip" effect="dark" :type="data.mark?.type">
87
+ {{ data.mark.text }}
92
88
  </tiny-tag>
93
89
  </div>
94
90
  </template>
@@ -113,7 +109,7 @@ import { Switch, TreeMenu, Dropdown, DropdownMenu, DropdownItem, Tooltip, Tag }
113
109
  import { iconHelpCircle } from '@opentiny/vue-icon'
114
110
  import { genMenus } from '@/menus.jsx'
115
111
  import { router } from '@/router.js'
116
- import { $t2, $t, appData, appFn, useApiMode, useTemplateMode } from '@/tools'
112
+ import { getWord, i18nByKey, appData, appFn, useApiMode, useTemplateMode } from '@/tools'
117
113
  import themeSvg from '@/assets/images/theme.svg?url'
118
114
  import useTheme from '@/tools/useTheme'
119
115
 
@@ -144,7 +140,7 @@ export default defineComponent({
144
140
  expandKeys: []
145
141
  })
146
142
 
147
- const lang = $t2('zh-CN', 'en-US')
143
+ const lang = getWord('zh-CN', 'en-US')
148
144
  const getTo = (route, key) => `${import.meta.env.VITE_CONTEXT}${lang}/os-theme/${route}${key}`
149
145
 
150
146
  const changeLanguage = () => {
@@ -217,7 +213,9 @@ export default defineComponent({
217
213
  changeLanguage,
218
214
  apiModeState,
219
215
  apiModeFn,
220
- templateModeState
216
+ templateModeState,
217
+ getWord,
218
+ i18nByKey
221
219
  }
222
220
  }
223
221
  })
@@ -2,16 +2,16 @@
2
2
  <div>
3
3
  <div class="overview-layout ti-pt48">
4
4
  <h1 class="ti-mb20 ti-f24 ti-fw-600">
5
- {{ $t('overview') }}
5
+ {{ i18nByKey('overview') }}
6
6
  <span class="ti-f18">({{ getTotalComponentsNum() }})</span>
7
7
  </h1>
8
8
 
9
9
  <h1 class="ti-f14 ti-my20 ti-lh21">
10
- {{ $t('overviewDesc') }}
10
+ {{ i18nByKey('overviewDesc') }}
11
11
  </h1>
12
12
  <!-- 搜索 -->
13
13
  <tiny-input
14
- :placeholder="$t('searchComponents')"
14
+ :placeholder="i18nByKey('searchComponents')"
15
15
  v-model="value"
16
16
  class="ti-mb10 search-input"
17
17
  :style="{ width: '100%', padding: '6px' }"
@@ -27,7 +27,7 @@
27
27
  </div>
28
28
  <div v-for="(menu, index) in searchMenus" :label="menu" :key="index">
29
29
  <div class="ti-rel ti-mt25">
30
- <h2 class="ti-f16 ti-d-ib ti-fw-600 ti-mr8">{{ $t2(menu.label, menu.labelEn) }}</h2>
30
+ <h2 class="ti-f16 ti-d-ib ti-fw-600 ti-mr8">{{ getWord(menu.label, menu.labelEn) }}</h2>
31
31
  <span v-if="searchMenus?.length !== 0" class="cell-title">{{ menu.children.length }}</span>
32
32
  </div>
33
33
  <div class="ti-f-r ti-f-wrap ti-f-pos-between overview-card">
@@ -41,8 +41,8 @@
41
41
  <div class="ti-br-4 component-card">
42
42
  <img
43
43
  class="ti-h125 ti-w125"
44
- :src="$pub(`@demos/overviewimage/${getSvg(cell.key)}.svg`)"
45
- :onerror="`this.src='${$pub(`@demos/overviewimage/dev.svg`)}'`"
44
+ :src="pubUrl(`@demos/overviewimage/${getSvg(cell.key)}.svg`)"
45
+ :onerror="`this.src='${pubUrl(`@demos/overviewimage/dev.svg`)}'`"
46
46
  />
47
47
  <h2 class="ti-f16 overview-card-label">
48
48
  {{ cell.name }}
@@ -66,8 +66,7 @@ import { cmpMenus } from '@menu/menus.js'
66
66
  import TinyInput from '@opentiny/vue-input'
67
67
  import noDataSvg from '@/assets/images/no-data.svg?url'
68
68
  import searchSvg from '@/assets/images/search.svg?url'
69
- import { $t2, isZhCn } from '@/tools'
70
-
69
+ import { getWord, i18nByKey, isZhCn, pubUrl } from '@/tools'
71
70
 
72
71
  export default defineComponent({
73
72
  name: 'Overview',
@@ -98,7 +97,7 @@ export default defineComponent({
98
97
  const trimValue = value.replaceAll(' ', '').toLowerCase()
99
98
  const currentValue = trimValue
100
99
  const reg = new RegExp(currentValue, 'ig')
101
- const isGrid = (trimValue === 'grid' || trimValue === '表格')
100
+ const isGrid = trimValue === 'grid' || trimValue === '表格'
102
101
  const searchMenus = state.menus
103
102
  .map((item) => {
104
103
  const label = item.label
@@ -115,7 +114,7 @@ export default defineComponent({
115
114
  .filter((item) => item.children.length > 0)
116
115
  state.searchMenus = searchMenus
117
116
  }
118
- const lang = $t2('zh-CN', 'en-US')
117
+ const lang = getWord('zh-CN', 'en-US')
119
118
  let fn = {
120
119
  searchHandler: debounce(searchResultFn, 300),
121
120
  getTo: (key) => `${import.meta.env.VITE_CONTEXT}${lang}/os-theme/components/${key}`,
@@ -128,7 +127,7 @@ export default defineComponent({
128
127
  }
129
128
  },
130
129
  getTotalComponentsNum: () => {
131
- let total = 0;
130
+ let total = 0
132
131
  cmpMenus.forEach((cmpCategory) => {
133
132
  if (cmpCategory.key === 'cmp_frame_style') {
134
133
  total += 2
@@ -145,7 +144,7 @@ export default defineComponent({
145
144
  const common = new window.TDCommon(['#footer'], {})
146
145
  common.renderFooter()
147
146
  })
148
- return { ...toRefs(state), ...fn, TinyInput, noDataSvg, searchSvg, isZhCn }
147
+ return { ...toRefs(state), ...fn, TinyInput, noDataSvg, searchSvg, isZhCn, getWord, i18nByKey, pubUrl }
149
148
  }
150
149
  })
151
150
  </script>
@@ -174,7 +173,11 @@ export default defineComponent({
174
173
 
175
174
  .component-card {
176
175
  box-shadow: 1px 1px 4px 1px rgba(31, 52, 121, 0.1);
177
- transition: color 0.3s, background-color 0.3s, box-shadow 0.3s, border-color 0.3s;
176
+ transition:
177
+ color 0.3s,
178
+ background-color 0.3s,
179
+ box-shadow 0.3s,
180
+ border-color 0.3s;
178
181
  padding: 24px;
179
182
  font-size: 14px;
180
183
  color: rgb(51, 54, 57);
package/vite.config.ts CHANGED
@@ -12,6 +12,7 @@ import importPlugin from '@opentiny/vue-vite-import'
12
12
  import vue3SvgPlugin from 'vite-svg-loader'
13
13
  import { getAlias, pathFromWorkspaceRoot, getOptimizeDeps } from '../../internals/cli/src/config/vite'
14
14
  import virtualTemplatePlugin from '@opentiny-internal/unplugin-virtual-template/vite'
15
+ import tailwindCss from 'tailwindcss'
15
16
 
16
17
  export default defineConfig((config) => {
17
18
  const env = loadEnv(config.mode, process.cwd() + '/env', '')
@@ -97,13 +98,20 @@ export default defineConfig((config) => {
97
98
  strict: false,
98
99
  allow: ['..']
99
100
  }
101
+ },
102
+ define: {
103
+ __VUE_I18N_FULL_INSTALL__: true,
104
+ __VUE_I18N_LEGACY_API__: true,
105
+ __INTLIFY_PROD_DEVTOOLS__: false,
106
+ __INTLIFY_JIT_COMPILATION__: false,
107
+ __INTLIFY_DROP_MESSAGE_COMPILER__: false
100
108
  }
101
109
  }
102
110
 
103
111
  if (env.VITE_TINY_THEME === 'saas') {
104
112
  viteConfig.css = {
105
113
  postcss: {
106
- plugins: [require('tailwindcss')]
114
+ plugins: [tailwindCss]
107
115
  }
108
116
  }
109
117
  // 这里逻辑是兼容saas官网工程的alias写法
@@ -114,9 +122,7 @@ export default defineConfig((config) => {
114
122
  }
115
123
 
116
124
  if (env.NODE_ENV === 'development') {
117
- viteConfig.define = {
118
- 'process.env': {}
119
- }
125
+ viteConfig.define['process.env'] = {}
120
126
  }
121
127
 
122
128
  return viteConfig