vft 0.0.1 → 0.0.3

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 (756) hide show
  1. package/dist/index.css +1 -0
  2. package/es/component.d.ts +3 -0
  3. package/es/component.mjs +18 -0
  4. package/es/component.mjs.map +1 -0
  5. package/es/components/avatar/avatar.vue.d.ts +64 -0
  6. package/es/components/avatar/avatar.vue.mjs +5 -0
  7. package/es/components/avatar/avatar.vue.mjs.map +1 -0
  8. package/es/components/avatar/avatar.vue2.mjs +51 -0
  9. package/es/components/avatar/avatar.vue2.mjs.map +1 -0
  10. package/es/components/avatar/index.d.ts +62 -0
  11. package/es/components/avatar/index.mjs +9 -0
  12. package/es/components/avatar/index.mjs.map +1 -0
  13. package/es/components/avatar/style/css.d.ts +0 -0
  14. package/es/components/avatar/style/css.mjs +3 -0
  15. package/es/components/avatar/style/css.mjs.map +1 -0
  16. package/es/components/avatar/style/index.d.ts +0 -0
  17. package/es/components/avatar/style/index.mjs +3 -0
  18. package/es/components/avatar/style/index.mjs.map +1 -0
  19. package/es/components/back-top/back-top.vue.d.ts +48 -0
  20. package/es/components/back-top/back-top.vue.mjs +5 -0
  21. package/es/components/back-top/back-top.vue.mjs.map +1 -0
  22. package/es/components/back-top/back-top.vue2.mjs +62 -0
  23. package/es/components/back-top/back-top.vue2.mjs.map +1 -0
  24. package/es/components/back-top/index.d.ts +47 -0
  25. package/es/components/back-top/index.mjs +9 -0
  26. package/es/components/back-top/index.mjs.map +1 -0
  27. package/es/components/back-top/style/css.d.ts +0 -0
  28. package/es/components/back-top/style/css.mjs +3 -0
  29. package/es/components/back-top/style/css.mjs.map +1 -0
  30. package/es/components/back-top/style/index.d.ts +0 -0
  31. package/es/components/back-top/style/index.mjs +3 -0
  32. package/es/components/back-top/style/index.mjs.map +1 -0
  33. package/es/components/back-top/types.d.ts +13 -0
  34. package/es/components/back-top/types.mjs +2 -0
  35. package/es/components/back-top/types.mjs.map +1 -0
  36. package/es/components/back-top/use-back-top.d.ts +5 -0
  37. package/es/components/back-top/use-back-top.mjs +32 -0
  38. package/es/components/back-top/use-back-top.mjs.map +1 -0
  39. package/es/components/base/style/css.d.ts +0 -0
  40. package/es/components/base/style/css.mjs +2 -0
  41. package/es/components/base/style/css.mjs.map +1 -0
  42. package/es/components/base/style/index.d.ts +0 -0
  43. package/es/components/base/style/index.mjs +2 -0
  44. package/es/components/base/style/index.mjs.map +1 -0
  45. package/es/components/divider/divider.vue.d.ts +53 -0
  46. package/es/components/divider/divider.vue.mjs +5 -0
  47. package/es/components/divider/divider.vue.mjs.map +1 -0
  48. package/es/components/divider/divider.vue2.mjs +44 -0
  49. package/es/components/divider/divider.vue2.mjs.map +1 -0
  50. package/es/components/divider/index.d.ts +52 -0
  51. package/es/components/divider/index.mjs +9 -0
  52. package/es/components/divider/index.mjs.map +1 -0
  53. package/es/components/divider/style/css.d.ts +0 -0
  54. package/es/components/divider/style/css.mjs +3 -0
  55. package/es/components/divider/style/css.mjs.map +1 -0
  56. package/es/components/divider/style/index.d.ts +0 -0
  57. package/es/components/divider/style/index.mjs +3 -0
  58. package/es/components/divider/style/index.mjs.map +1 -0
  59. package/es/components/divider/types.d.ts +2 -0
  60. package/es/components/divider/types.mjs +2 -0
  61. package/es/components/divider/types.mjs.map +1 -0
  62. package/es/components/empty/assets/no-collect.png.mjs +5 -0
  63. package/es/components/empty/assets/no-collect.png.mjs.map +1 -0
  64. package/es/components/empty/assets/no-data.png.mjs +5 -0
  65. package/es/components/empty/assets/no-data.png.mjs.map +1 -0
  66. package/es/components/empty/assets/no-filter.png.mjs +5 -0
  67. package/es/components/empty/assets/no-filter.png.mjs.map +1 -0
  68. package/es/components/empty/assets/no-page-data.png.mjs +5 -0
  69. package/es/components/empty/assets/no-page-data.png.mjs.map +1 -0
  70. package/es/components/empty/assets/no-search.png.mjs +5 -0
  71. package/es/components/empty/assets/no-search.png.mjs.map +1 -0
  72. package/es/components/empty/constants.d.ts +12 -0
  73. package/es/components/empty/constants.mjs +5 -0
  74. package/es/components/empty/constants.mjs.map +1 -0
  75. package/es/components/empty/empty.vue.d.ts +39 -0
  76. package/es/components/empty/empty.vue.mjs +5 -0
  77. package/es/components/empty/empty.vue.mjs.map +1 -0
  78. package/es/components/empty/empty.vue2.mjs +98 -0
  79. package/es/components/empty/empty.vue2.mjs.map +1 -0
  80. package/es/components/empty/index.d.ts +37 -0
  81. package/es/components/empty/index.mjs +11 -0
  82. package/es/components/empty/index.mjs.map +1 -0
  83. package/es/components/empty/style/css.d.ts +0 -0
  84. package/es/components/empty/style/css.mjs +3 -0
  85. package/es/components/empty/style/css.mjs.map +1 -0
  86. package/es/components/empty/style/index.d.ts +0 -0
  87. package/es/components/empty/style/index.mjs +3 -0
  88. package/es/components/empty/style/index.mjs.map +1 -0
  89. package/es/components/exception/exception.png.mjs +5 -0
  90. package/es/components/exception/exception.png.mjs.map +1 -0
  91. package/es/components/exception/exception.vue.d.ts +29 -0
  92. package/es/components/exception/exception.vue.mjs +5 -0
  93. package/es/components/exception/exception.vue.mjs.map +1 -0
  94. package/es/components/exception/exception.vue2.mjs +47 -0
  95. package/es/components/exception/exception.vue2.mjs.map +1 -0
  96. package/es/components/exception/index.d.ts +28 -0
  97. package/es/components/exception/index.mjs +9 -0
  98. package/es/components/exception/index.mjs.map +1 -0
  99. package/es/components/exception/style/css.d.ts +0 -0
  100. package/es/components/exception/style/css.mjs +3 -0
  101. package/es/components/exception/style/css.mjs.map +1 -0
  102. package/es/components/exception/style/index.d.ts +0 -0
  103. package/es/components/exception/style/index.mjs +3 -0
  104. package/es/components/exception/style/index.mjs.map +1 -0
  105. package/es/components/icon/icon.vue.d.ts +96 -0
  106. package/es/components/icon/icon.vue.mjs +5 -0
  107. package/es/components/icon/icon.vue.mjs.map +1 -0
  108. package/es/components/icon/icon.vue2.mjs +37 -0
  109. package/es/components/icon/icon.vue2.mjs.map +1 -0
  110. package/es/components/icon/index.d.ts +79 -0
  111. package/es/components/icon/index.mjs +9 -0
  112. package/es/components/icon/index.mjs.map +1 -0
  113. package/es/components/icon/style/css.d.ts +0 -0
  114. package/es/components/icon/style/css.mjs +3 -0
  115. package/es/components/icon/style/css.mjs.map +1 -0
  116. package/es/components/icon/style/index.d.ts +0 -0
  117. package/es/components/icon/style/index.mjs +3 -0
  118. package/es/components/icon/style/index.mjs.map +1 -0
  119. package/es/components/index.d.ts +6 -0
  120. package/es/components/index.mjs +17 -0
  121. package/es/components/index.mjs.map +1 -0
  122. package/es/components/result/index.d.ts +28 -0
  123. package/es/components/result/index.mjs +9 -0
  124. package/es/components/result/index.mjs.map +1 -0
  125. package/es/components/result/result.vue.d.ts +30 -0
  126. package/es/components/result/result.vue.mjs +5 -0
  127. package/es/components/result/result.vue.mjs.map +1 -0
  128. package/es/components/result/result.vue2.mjs +56 -0
  129. package/es/components/result/result.vue2.mjs.map +1 -0
  130. package/es/components/result/style/css.d.ts +0 -0
  131. package/es/components/result/style/css.mjs +3 -0
  132. package/es/components/result/style/css.mjs.map +1 -0
  133. package/es/components/result/style/index.d.ts +0 -0
  134. package/es/components/result/style/index.mjs +3 -0
  135. package/es/components/result/style/index.mjs.map +1 -0
  136. package/es/components/types.mjs +2 -0
  137. package/es/components/types.mjs.map +1 -0
  138. package/es/constants/aria.d.ts +17 -0
  139. package/es/constants/aria.mjs +25 -0
  140. package/es/constants/aria.mjs.map +1 -0
  141. package/es/constants/date.d.ts +3 -0
  142. package/es/constants/date.mjs +24 -0
  143. package/es/constants/date.mjs.map +1 -0
  144. package/es/constants/event.d.ts +3 -0
  145. package/es/constants/event.mjs +7 -0
  146. package/es/constants/event.mjs.map +1 -0
  147. package/es/constants/index.d.ts +5 -0
  148. package/es/constants/index.mjs +17 -0
  149. package/es/constants/index.mjs.map +1 -0
  150. package/es/constants/key.d.ts +1 -0
  151. package/es/constants/key.mjs +5 -0
  152. package/es/constants/key.mjs.map +1 -0
  153. package/es/constants/size.d.ts +7 -0
  154. package/es/constants/size.mjs +10 -0
  155. package/es/constants/size.mjs.map +1 -0
  156. package/es/defaults.d.ts +5 -0
  157. package/es/defaults.mjs +7 -0
  158. package/es/defaults.mjs.map +1 -0
  159. package/es/hooks/index.d.ts +1 -0
  160. package/es/hooks/index.mjs +7 -0
  161. package/es/hooks/index.mjs.map +1 -0
  162. package/es/hooks/use-namespace/index.d.ts +21 -0
  163. package/es/hooks/use-namespace/index.mjs +42 -0
  164. package/es/hooks/use-namespace/index.mjs.map +1 -0
  165. package/es/index.d.ts +9 -0
  166. package/es/index.mjs +44 -0
  167. package/es/index.mjs.map +1 -0
  168. package/es/make-installer.d.ts +5 -0
  169. package/es/make-installer.mjs +12 -0
  170. package/es/make-installer.mjs.map +1 -0
  171. package/es/package.json.mjs +5 -0
  172. package/es/package.json.mjs.map +1 -0
  173. package/es/style.css +1 -0
  174. package/es/theme-style/src/avatar.scss.mjs +5 -0
  175. package/es/theme-style/src/avatar.scss.mjs.map +1 -0
  176. package/es/theme-style/src/back-top.scss.mjs +5 -0
  177. package/es/theme-style/src/back-top.scss.mjs.map +1 -0
  178. package/es/theme-style/src/base.scss.mjs +5 -0
  179. package/es/theme-style/src/base.scss.mjs.map +1 -0
  180. package/es/theme-style/src/divider.scss.mjs +5 -0
  181. package/es/theme-style/src/divider.scss.mjs.map +1 -0
  182. package/es/theme-style/src/empty.scss.mjs +5 -0
  183. package/es/theme-style/src/empty.scss.mjs.map +1 -0
  184. package/es/theme-style/src/icon.scss.mjs +5 -0
  185. package/es/theme-style/src/icon.scss.mjs.map +1 -0
  186. package/es/theme-style/src/result.scss.mjs +5 -0
  187. package/es/theme-style/src/result.scss.mjs.map +1 -0
  188. package/es/utils/error.d.ts +3 -0
  189. package/es/utils/error.mjs +20 -0
  190. package/es/utils/error.mjs.map +1 -0
  191. package/es/utils/helper.d.ts +1 -0
  192. package/es/utils/helper.mjs +5 -0
  193. package/es/utils/helper.mjs.map +1 -0
  194. package/es/utils/index.d.ts +3 -0
  195. package/es/utils/index.mjs +13 -0
  196. package/es/utils/index.mjs.map +1 -0
  197. package/es/utils/vue/index.d.ts +2 -0
  198. package/es/utils/vue/index.mjs +8 -0
  199. package/es/utils/vue/index.mjs.map +1 -0
  200. package/es/utils/vue/install.d.ts +6 -0
  201. package/es/utils/vue/install.mjs +21 -0
  202. package/es/utils/vue/install.mjs.map +1 -0
  203. package/es/utils/vue/typescript.d.ts +5 -0
  204. package/es/utils/vue/typescript.mjs +2 -0
  205. package/es/utils/vue/typescript.mjs.map +1 -0
  206. package/lib/component.d.ts +3 -0
  207. package/lib/component.js +2 -0
  208. package/lib/component.js.map +1 -0
  209. package/lib/components/avatar/avatar.vue.d.ts +64 -0
  210. package/lib/components/avatar/avatar.vue.js +2 -0
  211. package/lib/components/avatar/avatar.vue.js.map +1 -0
  212. package/lib/components/avatar/avatar.vue2.js +2 -0
  213. package/lib/components/avatar/avatar.vue2.js.map +1 -0
  214. package/lib/components/avatar/index.d.ts +62 -0
  215. package/lib/components/avatar/index.js +2 -0
  216. package/lib/components/avatar/index.js.map +1 -0
  217. package/lib/components/avatar/style/css.d.ts +0 -0
  218. package/lib/components/avatar/style/css.js +2 -0
  219. package/lib/components/avatar/style/css.js.map +1 -0
  220. package/lib/components/avatar/style/index.d.ts +0 -0
  221. package/lib/components/avatar/style/index.js +2 -0
  222. package/lib/components/avatar/style/index.js.map +1 -0
  223. package/lib/components/back-top/back-top.vue.d.ts +48 -0
  224. package/lib/components/back-top/back-top.vue.js +2 -0
  225. package/lib/components/back-top/back-top.vue.js.map +1 -0
  226. package/lib/components/back-top/back-top.vue2.js +2 -0
  227. package/lib/components/back-top/back-top.vue2.js.map +1 -0
  228. package/lib/components/back-top/index.d.ts +47 -0
  229. package/lib/components/back-top/index.js +2 -0
  230. package/lib/components/back-top/index.js.map +1 -0
  231. package/lib/components/back-top/style/css.d.ts +0 -0
  232. package/lib/components/back-top/style/css.js +2 -0
  233. package/lib/components/back-top/style/css.js.map +1 -0
  234. package/lib/components/back-top/style/index.d.ts +0 -0
  235. package/lib/components/back-top/style/index.js +2 -0
  236. package/lib/components/back-top/style/index.js.map +1 -0
  237. package/lib/components/back-top/types.d.ts +13 -0
  238. package/lib/components/back-top/types.js +2 -0
  239. package/lib/components/back-top/types.js.map +1 -0
  240. package/lib/components/back-top/use-back-top.d.ts +5 -0
  241. package/lib/components/back-top/use-back-top.js +2 -0
  242. package/lib/components/back-top/use-back-top.js.map +1 -0
  243. package/lib/components/base/style/css.d.ts +0 -0
  244. package/lib/components/base/style/css.js +2 -0
  245. package/lib/components/base/style/css.js.map +1 -0
  246. package/lib/components/base/style/index.d.ts +0 -0
  247. package/lib/components/base/style/index.js +2 -0
  248. package/lib/components/base/style/index.js.map +1 -0
  249. package/lib/components/divider/divider.vue.d.ts +53 -0
  250. package/lib/components/divider/divider.vue.js +2 -0
  251. package/lib/components/divider/divider.vue.js.map +1 -0
  252. package/lib/components/divider/divider.vue2.js +2 -0
  253. package/lib/components/divider/divider.vue2.js.map +1 -0
  254. package/lib/components/divider/index.d.ts +52 -0
  255. package/lib/components/divider/index.js +2 -0
  256. package/lib/components/divider/index.js.map +1 -0
  257. package/lib/components/divider/style/css.d.ts +0 -0
  258. package/lib/components/divider/style/css.js +2 -0
  259. package/lib/components/divider/style/css.js.map +1 -0
  260. package/lib/components/divider/style/index.d.ts +0 -0
  261. package/lib/components/divider/style/index.js +2 -0
  262. package/lib/components/divider/style/index.js.map +1 -0
  263. package/lib/components/divider/types.d.ts +2 -0
  264. package/lib/components/divider/types.js +2 -0
  265. package/lib/components/divider/types.js.map +1 -0
  266. package/lib/components/empty/assets/no-collect.png.js +2 -0
  267. package/lib/components/empty/assets/no-collect.png.js.map +1 -0
  268. package/lib/components/empty/assets/no-data.png.js +2 -0
  269. package/lib/components/empty/assets/no-data.png.js.map +1 -0
  270. package/lib/components/empty/assets/no-filter.png.js +2 -0
  271. package/lib/components/empty/assets/no-filter.png.js.map +1 -0
  272. package/lib/components/empty/assets/no-page-data.png.js +2 -0
  273. package/lib/components/empty/assets/no-page-data.png.js.map +1 -0
  274. package/lib/components/empty/assets/no-search.png.js +2 -0
  275. package/lib/components/empty/assets/no-search.png.js.map +1 -0
  276. package/lib/components/empty/constants.d.ts +12 -0
  277. package/lib/components/empty/constants.js +2 -0
  278. package/lib/components/empty/constants.js.map +1 -0
  279. package/lib/components/empty/empty.vue.d.ts +39 -0
  280. package/lib/components/empty/empty.vue.js +2 -0
  281. package/lib/components/empty/empty.vue.js.map +1 -0
  282. package/lib/components/empty/empty.vue2.js +2 -0
  283. package/lib/components/empty/empty.vue2.js.map +1 -0
  284. package/lib/components/empty/index.d.ts +37 -0
  285. package/lib/components/empty/index.js +2 -0
  286. package/lib/components/empty/index.js.map +1 -0
  287. package/lib/components/empty/style/css.d.ts +0 -0
  288. package/lib/components/empty/style/css.js +2 -0
  289. package/lib/components/empty/style/css.js.map +1 -0
  290. package/lib/components/empty/style/index.d.ts +0 -0
  291. package/lib/components/empty/style/index.js +2 -0
  292. package/lib/components/empty/style/index.js.map +1 -0
  293. package/lib/components/exception/exception.png.js +2 -0
  294. package/lib/components/exception/exception.png.js.map +1 -0
  295. package/lib/components/exception/exception.vue.d.ts +29 -0
  296. package/lib/components/exception/exception.vue.js +2 -0
  297. package/lib/components/exception/exception.vue.js.map +1 -0
  298. package/lib/components/exception/exception.vue2.js +2 -0
  299. package/lib/components/exception/exception.vue2.js.map +1 -0
  300. package/lib/components/exception/index.d.ts +28 -0
  301. package/lib/components/exception/index.js +2 -0
  302. package/lib/components/exception/index.js.map +1 -0
  303. package/lib/components/exception/style/css.d.ts +0 -0
  304. package/lib/components/exception/style/css.js +2 -0
  305. package/lib/components/exception/style/css.js.map +1 -0
  306. package/lib/components/exception/style/index.d.ts +0 -0
  307. package/lib/components/exception/style/index.js +2 -0
  308. package/lib/components/exception/style/index.js.map +1 -0
  309. package/lib/components/icon/icon.vue.d.ts +96 -0
  310. package/lib/components/icon/icon.vue.js +2 -0
  311. package/lib/components/icon/icon.vue.js.map +1 -0
  312. package/lib/components/icon/icon.vue2.js +2 -0
  313. package/lib/components/icon/icon.vue2.js.map +1 -0
  314. package/lib/components/icon/index.d.ts +79 -0
  315. package/lib/components/icon/index.js +2 -0
  316. package/lib/components/icon/index.js.map +1 -0
  317. package/lib/components/icon/style/css.d.ts +0 -0
  318. package/lib/components/icon/style/css.js +2 -0
  319. package/lib/components/icon/style/css.js.map +1 -0
  320. package/lib/components/icon/style/index.d.ts +0 -0
  321. package/lib/components/icon/style/index.js +2 -0
  322. package/lib/components/icon/style/index.js.map +1 -0
  323. package/lib/components/index.d.ts +6 -0
  324. package/lib/components/index.js +2 -0
  325. package/lib/components/index.js.map +1 -0
  326. package/lib/components/result/index.d.ts +28 -0
  327. package/lib/components/result/index.js +2 -0
  328. package/lib/components/result/index.js.map +1 -0
  329. package/lib/components/result/result.vue.d.ts +30 -0
  330. package/lib/components/result/result.vue.js +2 -0
  331. package/lib/components/result/result.vue.js.map +1 -0
  332. package/lib/components/result/result.vue2.js +2 -0
  333. package/lib/components/result/result.vue2.js.map +1 -0
  334. package/lib/components/result/style/css.d.ts +0 -0
  335. package/lib/components/result/style/css.js +2 -0
  336. package/lib/components/result/style/css.js.map +1 -0
  337. package/lib/components/result/style/index.d.ts +0 -0
  338. package/lib/components/result/style/index.js +2 -0
  339. package/lib/components/result/style/index.js.map +1 -0
  340. package/lib/components/types.d.ts +1 -0
  341. package/lib/components/types.js +2 -0
  342. package/lib/components/types.js.map +1 -0
  343. package/lib/constants/aria.d.ts +17 -0
  344. package/lib/constants/aria.js +2 -0
  345. package/lib/constants/aria.js.map +1 -0
  346. package/lib/constants/date.d.ts +3 -0
  347. package/lib/constants/date.js +2 -0
  348. package/lib/constants/date.js.map +1 -0
  349. package/lib/constants/event.d.ts +3 -0
  350. package/lib/constants/event.js +2 -0
  351. package/lib/constants/event.js.map +1 -0
  352. package/lib/constants/index.d.ts +5 -0
  353. package/lib/constants/index.js +2 -0
  354. package/lib/constants/index.js.map +1 -0
  355. package/lib/constants/key.d.ts +1 -0
  356. package/lib/constants/key.js +2 -0
  357. package/lib/constants/key.js.map +1 -0
  358. package/lib/constants/size.d.ts +7 -0
  359. package/lib/constants/size.js +2 -0
  360. package/lib/constants/size.js.map +1 -0
  361. package/lib/defaults.d.ts +5 -0
  362. package/lib/defaults.js +2 -0
  363. package/lib/defaults.js.map +1 -0
  364. package/lib/hooks/index.d.ts +1 -0
  365. package/lib/hooks/index.js +2 -0
  366. package/lib/hooks/index.js.map +1 -0
  367. package/lib/hooks/use-namespace/index.d.ts +21 -0
  368. package/lib/hooks/use-namespace/index.js +2 -0
  369. package/lib/hooks/use-namespace/index.js.map +1 -0
  370. package/lib/index.d.ts +9 -0
  371. package/lib/index.js +2 -0
  372. package/lib/index.js.map +1 -0
  373. package/lib/make-installer.d.ts +5 -0
  374. package/lib/make-installer.js +2 -0
  375. package/lib/make-installer.js.map +1 -0
  376. package/lib/package.json.js +2 -0
  377. package/lib/package.json.js.map +1 -0
  378. package/lib/theme-style/src/avatar.scss.js +2 -0
  379. package/lib/theme-style/src/avatar.scss.js.map +1 -0
  380. package/lib/theme-style/src/back-top.scss.js +2 -0
  381. package/lib/theme-style/src/back-top.scss.js.map +1 -0
  382. package/lib/theme-style/src/base.scss.js +2 -0
  383. package/lib/theme-style/src/base.scss.js.map +1 -0
  384. package/lib/theme-style/src/divider.scss.js +2 -0
  385. package/lib/theme-style/src/divider.scss.js.map +1 -0
  386. package/lib/theme-style/src/empty.scss.js +2 -0
  387. package/lib/theme-style/src/empty.scss.js.map +1 -0
  388. package/lib/theme-style/src/icon.scss.js +2 -0
  389. package/lib/theme-style/src/icon.scss.js.map +1 -0
  390. package/lib/theme-style/src/result.scss.js +2 -0
  391. package/lib/theme-style/src/result.scss.js.map +1 -0
  392. package/lib/utils/error.d.ts +3 -0
  393. package/lib/utils/error.js +2 -0
  394. package/lib/utils/error.js.map +1 -0
  395. package/lib/utils/helper.d.ts +1 -0
  396. package/lib/utils/helper.js +2 -0
  397. package/lib/utils/helper.js.map +1 -0
  398. package/lib/utils/index.d.ts +3 -0
  399. package/lib/utils/index.js +2 -0
  400. package/lib/utils/index.js.map +1 -0
  401. package/lib/utils/vue/index.d.ts +2 -0
  402. package/lib/utils/vue/index.js +2 -0
  403. package/lib/utils/vue/index.js.map +1 -0
  404. package/lib/utils/vue/install.d.ts +6 -0
  405. package/lib/utils/vue/install.js +2 -0
  406. package/lib/utils/vue/install.js.map +1 -0
  407. package/lib/utils/vue/typescript.d.ts +5 -0
  408. package/lib/utils/vue/typescript.js +2 -0
  409. package/lib/utils/vue/typescript.js.map +1 -0
  410. package/package.json +50 -44
  411. package/theme-style/base.css +1 -0
  412. package/theme-style/dark/css-vars.css +1 -0
  413. package/theme-style/index.css +1 -0
  414. package/{src/web/avatar/index.scss → theme-style/src/avatar.scss} +7 -4
  415. package/{src/web/back-top/index.scss → theme-style/src/back-top.scss} +3 -6
  416. package/theme-style/src/base.scss +2 -0
  417. package/theme-style/src/color/index.scss +17 -0
  418. package/theme-style/src/common/transition.scss +128 -0
  419. package/theme-style/src/common/var.scss +841 -0
  420. package/theme-style/src/dark/css-vars.scss +41 -0
  421. package/theme-style/src/dark/var.scss +221 -0
  422. package/{src/web/divider/index.scss → theme-style/src/divider.scss} +4 -1
  423. package/{src/web/empty/index.scss → theme-style/src/empty.scss} +3 -10
  424. package/{src/web/full-screen/index.scss → theme-style/src/full-screen.scss} +3 -0
  425. package/{src/common/icon/index.scss → theme-style/src/icon.scss} +2 -1
  426. package/{src/web/image/index.scss → theme-style/src/image.scss} +3 -0
  427. package/theme-style/src/index.scss +7 -0
  428. package/{src/web/input/index.scss → theme-style/src/input.scss} +3 -0
  429. package/theme-style/src/mixins/_var.scss +91 -0
  430. package/theme-style/src/mixins/config.scss +5 -0
  431. package/theme-style/src/mixins/function.scss +86 -0
  432. package/theme-style/src/mixins/mixins.scss +258 -0
  433. package/{src/web/result/index.scss → theme-style/src/result.scss} +3 -9
  434. package/theme-style/src/var.scss +73 -0
  435. package/theme-style/vft-avatar.css +1 -0
  436. package/theme-style/vft-back-top.css +1 -0
  437. package/theme-style/vft-divider.css +1 -0
  438. package/theme-style/vft-empty.css +1 -0
  439. package/theme-style/vft-full-screen.css +1 -0
  440. package/theme-style/vft-icon.css +1 -0
  441. package/theme-style/vft-image.css +1 -0
  442. package/theme-style/vft-input.css +1 -0
  443. package/theme-style/vft-result.css +1 -0
  444. package/theme-style/vft-var.css +1 -0
  445. package/theme-style/vft-virtual-list.css +1 -0
  446. package/src/app/index.ts +0 -3
  447. package/src/app/page-loading/assets/spin.gif +0 -0
  448. package/src/app/page-loading/index.less +0 -10
  449. package/src/app/page-loading/index.ts +0 -3
  450. package/src/app/page-loading/index.vue +0 -38
  451. package/src/app/table/assets/sort_triangle.png +0 -0
  452. package/src/app/table/demos/basic.vue +0 -117
  453. package/src/app/table/demos/complex.vue +0 -2543
  454. package/src/app/table/demos/index.vue +0 -453
  455. package/src/app/table/demos/rightAngle.png +0 -0
  456. package/src/app/table/header.vue +0 -203
  457. package/src/app/table/index.less +0 -119
  458. package/src/app/table/index.ts +0 -5
  459. package/src/app/table/index.vue +0 -478
  460. package/src/app/table/md/api.md +0 -23
  461. package/src/app/table/md/demo.md +0 -3
  462. package/src/app/table/types.ts +0 -45
  463. package/src/common/badge/index.scss +0 -78
  464. package/src/common/badge/index.ts +0 -4
  465. package/src/common/badge/index.vue +0 -111
  466. package/src/common/badge/types.ts +0 -1
  467. package/src/common/clamp/clamp-toggle.vue +0 -91
  468. package/src/common/clamp/index.ts +0 -4
  469. package/src/common/clamp/index.vue +0 -247
  470. package/src/common/code/index.less +0 -321
  471. package/src/common/code/index.ts +0 -3
  472. package/src/common/code/index.vue +0 -60
  473. package/src/common/config-provider/index.ts +0 -4
  474. package/src/common/config-provider/index.vue +0 -94
  475. package/src/common/config-provider/types.ts +0 -29
  476. package/src/common/icon/iconfont/iconfont.css +0 -334
  477. package/src/common/icon/index.ts +0 -4
  478. package/src/common/icon/index.vue +0 -74
  479. package/src/common/icon/types.ts +0 -16
  480. package/src/common/index.ts +0 -6
  481. package/src/common/message/index.ts +0 -5
  482. package/src/common/message/instance.ts +0 -29
  483. package/src/common/message/message.scss +0 -108
  484. package/src/common/message/message.ts +0 -80
  485. package/src/common/message/message.vue +0 -162
  486. package/src/common/message/method.ts +0 -172
  487. package/src/common/overlay/index.scss +0 -14
  488. package/src/common/overlay/index.ts +0 -3
  489. package/src/common/overlay/index.vue +0 -117
  490. package/src/constants/comp.ts +0 -1
  491. package/src/constants/index.ts +0 -1
  492. package/src/index.ts +0 -3
  493. package/src/page/index.ts +0 -1
  494. package/src/page/page-wrapper/index.scss +0 -31
  495. package/src/page/page-wrapper/index.ts +0 -5
  496. package/src/page/page-wrapper/index.vue +0 -31
  497. package/src/styles/vars.scss +0 -500
  498. package/src/use/index.ts +0 -14
  499. package/src/use/onPopupReopen.ts +0 -15
  500. package/src/use/use-delayed-toggle/index.ts +0 -30
  501. package/src/use/use-floating/index.ts +0 -121
  502. package/src/use/use-forward-ref.ts +0 -35
  503. package/src/use/use-global-config/index.ts +0 -81
  504. package/src/use/use-id/index.ts +0 -43
  505. package/src/use/use-model-toggle/index.ts +0 -151
  506. package/src/use/use-namespace/index.ts +0 -91
  507. package/src/use/use-ordered-children/index.ts +0 -43
  508. package/src/use/use-popper-container/index.ts +0 -43
  509. package/src/use/use-timeout/index.ts +0 -18
  510. package/src/use/use-z-index/index.ts +0 -20
  511. package/src/use/useGlobalZIndex.ts +0 -24
  512. package/src/use/useLazyRender.ts +0 -17
  513. package/src/use/useLockScroll.ts +0 -66
  514. package/src/utils/aria.ts +0 -126
  515. package/src/utils/arrays.ts +0 -13
  516. package/src/utils/error.ts +0 -23
  517. package/src/utils/event.ts +0 -15
  518. package/src/utils/helper.ts +0 -7
  519. package/src/utils/index.ts +0 -8
  520. package/src/utils/interceptor.ts +0 -39
  521. package/src/utils/mount-component.ts +0 -65
  522. package/src/utils/popper.ts +0 -6
  523. package/src/utils/rand.ts +0 -12
  524. package/src/utils/scroll.ts +0 -101
  525. package/src/utils/vnode.ts +0 -169
  526. package/src/web/avatar/index.ts +0 -3
  527. package/src/web/avatar/index.vue +0 -83
  528. package/src/web/back-top/index.ts +0 -3
  529. package/src/web/back-top/index.vue +0 -72
  530. package/src/web/back-top/types.ts +0 -14
  531. package/src/web/back-top/use-back-top.ts +0 -65
  532. package/src/web/cascader/index.scss +0 -214
  533. package/src/web/cascader/index.ts +0 -5
  534. package/src/web/cascader/index.vue +0 -767
  535. package/src/web/cascader-panel/config.ts +0 -44
  536. package/src/web/cascader-panel/index.scss +0 -134
  537. package/src/web/cascader-panel/index.ts +0 -5
  538. package/src/web/cascader-panel/index.vue +0 -319
  539. package/src/web/cascader-panel/menu.vue +0 -135
  540. package/src/web/cascader-panel/node-content.ts +0 -23
  541. package/src/web/cascader-panel/node.ts +0 -218
  542. package/src/web/cascader-panel/node.vue +0 -197
  543. package/src/web/cascader-panel/store.ts +0 -83
  544. package/src/web/cascader-panel/types.ts +0 -56
  545. package/src/web/cascader-panel/utils.ts +0 -40
  546. package/src/web/cascader-select/README.md +0 -31
  547. package/src/web/cascader-select/index.scss +0 -54
  548. package/src/web/cascader-select/index.ts +0 -5
  549. package/src/web/cascader-select/index.vue +0 -132
  550. package/src/web/cascader-select/types.ts +0 -9
  551. package/src/web/context-menu/createContextMenu.ts +0 -72
  552. package/src/web/context-menu/index.ts +0 -4
  553. package/src/web/context-menu/index.vue +0 -89
  554. package/src/web/context-menu/types.ts +0 -27
  555. package/src/web/context-menu/useContextMenu.ts +0 -14
  556. package/src/web/descriptions/description-item.vue +0 -34
  557. package/src/web/descriptions/description.vue +0 -124
  558. package/src/web/descriptions/descriptions-cell.ts +0 -95
  559. package/src/web/descriptions/descriptions-item.scss +0 -68
  560. package/src/web/descriptions/descriptions-row.vue +0 -49
  561. package/src/web/descriptions/descriptions.scss +0 -153
  562. package/src/web/descriptions/descriptions.type.ts +0 -19
  563. package/src/web/descriptions/index.ts +0 -4
  564. package/src/web/descriptions/token.ts +0 -4
  565. package/src/web/divider/index.ts +0 -5
  566. package/src/web/divider/index.vue +0 -60
  567. package/src/web/divider/types.ts +0 -2
  568. package/src/web/empty/assets/no-collect.png +0 -0
  569. package/src/web/empty/assets/no-data.png +0 -0
  570. package/src/web/empty/assets/no-filter.png +0 -0
  571. package/src/web/empty/assets/no-page-data.png +0 -0
  572. package/src/web/empty/assets/no-search.png +0 -0
  573. package/src/web/empty/constants.ts +0 -12
  574. package/src/web/empty/index.ts +0 -5
  575. package/src/web/empty/index.vue +0 -96
  576. package/src/web/exception/exception.png +0 -0
  577. package/src/web/exception/index.ts +0 -3
  578. package/src/web/exception/index.vue +0 -44
  579. package/src/web/filter/README.md +0 -25
  580. package/src/web/filter/index.scss +0 -14
  581. package/src/web/filter/index.ts +0 -5
  582. package/src/web/filter/index.vue +0 -60
  583. package/src/web/filter/type.ts +0 -13
  584. package/src/web/focus-trap/index.ts +0 -6
  585. package/src/web/focus-trap/index.vue +0 -328
  586. package/src/web/focus-trap/tokens.ts +0 -23
  587. package/src/web/focus-trap/utils.ts +0 -178
  588. package/src/web/full-screen/index.ts +0 -3
  589. package/src/web/full-screen/index.vue +0 -24
  590. package/src/web/icon-text/index.ts +0 -3
  591. package/src/web/icon-text/index.vue +0 -77
  592. package/src/web/image/index.ts +0 -5
  593. package/src/web/image/index.vue +0 -251
  594. package/src/web/image/types.ts +0 -1
  595. package/src/web/index.ts +0 -33
  596. package/src/web/input/index.ts +0 -3
  597. package/src/web/input/index.vue +0 -533
  598. package/src/web/input/utils.ts +0 -102
  599. package/src/web/layouts/blank.vue +0 -4
  600. package/src/web/layouts/footer/index.scss +0 -31
  601. package/src/web/layouts/footer/index.ts +0 -3
  602. package/src/web/layouts/footer/index.vue +0 -38
  603. package/src/web/layouts/header/index.scss +0 -35
  604. package/src/web/layouts/header/index.ts +0 -3
  605. package/src/web/layouts/header/index.vue +0 -47
  606. package/src/web/layouts/iframe/index.scss +0 -18
  607. package/src/web/layouts/iframe/index.vue +0 -36
  608. package/src/web/layouts/iframe/page.vue +0 -30
  609. package/src/web/layouts/index.ts +0 -8
  610. package/src/web/layouts/router-view-content/index.vue +0 -70
  611. package/src/web/link/index.scss +0 -95
  612. package/src/web/link/index.ts +0 -3
  613. package/src/web/link/index.vue +0 -68
  614. package/src/web/loading/directive.ts +0 -104
  615. package/src/web/loading/index.ts +0 -6
  616. package/src/web/loading/loading.scss +0 -108
  617. package/src/web/loading/loading.ts +0 -156
  618. package/src/web/loading/service.ts +0 -145
  619. package/src/web/loading/types.ts +0 -29
  620. package/src/web/logo/index.scss +0 -31
  621. package/src/web/logo/index.ts +0 -5
  622. package/src/web/logo/index.vue +0 -45
  623. package/src/web/logo/types.ts +0 -6
  624. package/src/web/menu/index.scss +0 -336
  625. package/src/web/menu/index.ts +0 -8
  626. package/src/web/menu/menu-collapse-transition.vue +0 -62
  627. package/src/web/menu/menu-item-group.vue +0 -27
  628. package/src/web/menu/menu-item.vue +0 -126
  629. package/src/web/menu/menu.vue +0 -459
  630. package/src/web/menu/sub-menu.vue +0 -440
  631. package/src/web/menu/types.ts +0 -66
  632. package/src/web/menu/use-menu-css-var.ts +0 -11
  633. package/src/web/menu/use-menu.ts +0 -60
  634. package/src/web/menu/utils/menu-bar.ts +0 -19
  635. package/src/web/menu/utils/menu-item.ts +0 -55
  636. package/src/web/menu/utils/submenu.ts +0 -66
  637. package/src/web/multiple-select-flat/index.ts +0 -5
  638. package/src/web/multiple-select-flat/index.vue +0 -53
  639. package/src/web/multiple-select-flat/types.ts +0 -5
  640. package/src/web/multiple-tabs/index.scss +0 -16
  641. package/src/web/multiple-tabs/index.ts +0 -5
  642. package/src/web/multiple-tabs/index.vue +0 -193
  643. package/src/web/multiple-tabs/tab-content.vue +0 -40
  644. package/src/web/multiple-tabs/types.ts +0 -3
  645. package/src/web/multiple-tabs/use/index.ts +0 -2
  646. package/src/web/multiple-tabs/use/use-multiple-tabs.ts +0 -86
  647. package/src/web/multiple-tabs/use/use-tab-dropdown.ts +0 -101
  648. package/src/web/nodata/README.md +0 -42
  649. package/src/web/nodata/fail.vue +0 -13
  650. package/src/web/nodata/img/100.png +0 -0
  651. package/src/web/nodata/img/101.png +0 -0
  652. package/src/web/nodata/img/102.png +0 -0
  653. package/src/web/nodata/img/103.png +0 -0
  654. package/src/web/nodata/img/104.png +0 -0
  655. package/src/web/nodata/img/105.png +0 -0
  656. package/src/web/nodata/img/106.png +0 -0
  657. package/src/web/nodata/img/107.png +0 -0
  658. package/src/web/nodata/img/200.png +0 -0
  659. package/src/web/nodata/img/201.png +0 -0
  660. package/src/web/nodata/img/202.png +0 -0
  661. package/src/web/nodata/img/203.png +0 -0
  662. package/src/web/nodata/index.scss +0 -37
  663. package/src/web/nodata/index.ts +0 -6
  664. package/src/web/nodata/index.vue +0 -46
  665. package/src/web/nodata/types.ts +0 -17
  666. package/src/web/only-child/index.tsx +0 -69
  667. package/src/web/pagination/components/jumper.vue +0 -49
  668. package/src/web/pagination/components/next.vue +0 -40
  669. package/src/web/pagination/components/pager.vue +0 -215
  670. package/src/web/pagination/components/prev.vue +0 -35
  671. package/src/web/pagination/components/sizes.vue +0 -76
  672. package/src/web/pagination/components/total.vue +0 -21
  673. package/src/web/pagination/index.scss +0 -231
  674. package/src/web/pagination/index.ts +0 -5
  675. package/src/web/pagination/pagination.ts +0 -363
  676. package/src/web/pagination/usePagination.ts +0 -13
  677. package/src/web/popover/directive.ts +0 -21
  678. package/src/web/popover/index.scss +0 -58
  679. package/src/web/popover/index.ts +0 -3
  680. package/src/web/popover/index.vue +0 -161
  681. package/src/web/popover/types.ts +0 -26
  682. package/src/web/popper/arrow.vue +0 -45
  683. package/src/web/popper/content.vue +0 -311
  684. package/src/web/popper/index.scss +0 -108
  685. package/src/web/popper/index.ts +0 -11
  686. package/src/web/popper/popper.vue +0 -57
  687. package/src/web/popper/tokens.ts +0 -28
  688. package/src/web/popper/trigger.vue +0 -166
  689. package/src/web/popper/types.ts +0 -49
  690. package/src/web/popper/utils.ts +0 -81
  691. package/src/web/qrcode/drawCanvas.ts +0 -32
  692. package/src/web/qrcode/drawLogo.ts +0 -82
  693. package/src/web/qrcode/index.ts +0 -5
  694. package/src/web/qrcode/index.vue +0 -107
  695. package/src/web/qrcode/qrcodePlus.ts +0 -4
  696. package/src/web/qrcode/toCanvas.ts +0 -11
  697. package/src/web/qrcode/types.ts +0 -38
  698. package/src/web/result/index.ts +0 -3
  699. package/src/web/result/index.vue +0 -63
  700. package/src/web/scrollbar/bar.vue +0 -48
  701. package/src/web/scrollbar/index.scss +0 -91
  702. package/src/web/scrollbar/index.ts +0 -5
  703. package/src/web/scrollbar/index.vue +0 -236
  704. package/src/web/scrollbar/thumb.vue +0 -183
  705. package/src/web/scrollbar/tokens.ts +0 -10
  706. package/src/web/scrollbar/types.ts +0 -7
  707. package/src/web/scrollbar/util.ts +0 -38
  708. package/src/web/select/constants.ts +0 -13
  709. package/src/web/select/index.ts +0 -11
  710. package/src/web/select/index.vue +0 -555
  711. package/src/web/select/option-group.scss +0 -49
  712. package/src/web/select/option-group.vue +0 -97
  713. package/src/web/select/option-item.scss +0 -66
  714. package/src/web/select/option.scss +0 -32
  715. package/src/web/select/option.vue +0 -110
  716. package/src/web/select/select-dropdown.scss +0 -86
  717. package/src/web/select/select-dropdown.vue +0 -51
  718. package/src/web/select/select.scss +0 -213
  719. package/src/web/select/token.ts +0 -56
  720. package/src/web/select/useOption.ts +0 -146
  721. package/src/web/select/useSelect.ts +0 -942
  722. package/src/web/select/utils.ts +0 -5
  723. package/src/web/side-menu/index.scss +0 -66
  724. package/src/web/side-menu/index.ts +0 -4
  725. package/src/web/side-menu/index.vue +0 -228
  726. package/src/web/side-menu/types.ts +0 -20
  727. package/src/web/single-select/index.scss +0 -60
  728. package/src/web/single-select/index.ts +0 -5
  729. package/src/web/single-select/index.vue +0 -70
  730. package/src/web/single-select/select@2x.png +0 -0
  731. package/src/web/single-select/types.ts +0 -5
  732. package/src/web/svg/index.ts +0 -3
  733. package/src/web/svg/index.vue +0 -22
  734. package/src/web/tabs/index.scss +0 -579
  735. package/src/web/tabs/index.ts +0 -6
  736. package/src/web/tabs/index.vue +0 -236
  737. package/src/web/tabs/tab-bar.vue +0 -90
  738. package/src/web/tabs/tab-nav.vue +0 -403
  739. package/src/web/tabs/tab-pane.vue +0 -90
  740. package/src/web/tabs/types.ts +0 -66
  741. package/src/web/tag/index.scss +0 -182
  742. package/src/web/tag/index.ts +0 -5
  743. package/src/web/tag/index.vue +0 -78
  744. package/src/web/tag/types.ts +0 -2
  745. package/src/web/tooltip/content.vue +0 -239
  746. package/src/web/tooltip/index.ts +0 -4
  747. package/src/web/tooltip/tokens.ts +0 -21
  748. package/src/web/tooltip/tooltip.vue +0 -270
  749. package/src/web/tooltip/trigger.vue +0 -119
  750. package/src/web/tooltip/types.ts +0 -56
  751. package/src/web/tooltip/utils.ts +0 -20
  752. package/src/web/transition/collapse-transition.vue +0 -73
  753. package/src/web/transition/index.ts +0 -5
  754. package/tsconfig.json +0 -8
  755. package/types/index.d.ts +0 -286
  756. /package/{types/component.ts → es/components/types.d.ts} +0 -0
@@ -1,403 +0,0 @@
1
- <script lang="tsx" setup>
2
- import {
3
- computed,
4
- type CSSProperties,
5
- getCurrentInstance,
6
- inject,
7
- nextTick,
8
- onMounted,
9
- onUpdated,
10
- ref,
11
- watch
12
- } from 'vue';
13
- import { type IconProps } from '../../common';
14
- import { useNamespace } from '../../use';
15
- import { capitalize } from '@vri/utils';
16
- import { EVENT_CODE } from '@vri/constants';
17
- import { TabsRootContextKey } from './types';
18
- import type { TabsPaneContext, TabsType, Scrollable } from './types';
19
- import { useDocumentVisibility, useResizeObserver, useWindowFocus } from '@vueuse/core';
20
- import TabBar from './tab-bar.vue';
21
- import Icon from '../../common/icon/index.vue';
22
-
23
- interface TabNavProps {
24
- panes: TabsPaneContext[];
25
- /** 标签是否同时可增加和关闭 */
26
- editable?: boolean;
27
- /** 标签是否可增加 */
28
- addable?: boolean;
29
- /** tab 类型 */
30
- type?: TabsType;
31
- stretch?: boolean;
32
- /** 图标配置 */
33
- closeIconCfg?: IconProps;
34
- addIconCfg?: IconProps;
35
- arrowLeftIconCfg?: IconProps;
36
- arrowRightIconCfg?: IconProps;
37
- }
38
-
39
- const {
40
- panes,
41
- editable,
42
- addable,
43
- type,
44
- stretch,
45
- closeIconCfg,
46
- addIconCfg,
47
- arrowLeftIconCfg,
48
- arrowRightIconCfg
49
- } = defineProps<TabNavProps>();
50
-
51
- const emit = defineEmits(['tabClick', 'tabRemove', 'tabAdd', 'tabContextmenu']);
52
-
53
- const vm = getCurrentInstance()!;
54
-
55
- // 获取从 index.vue 提供的数据信息
56
- const rootTabs = inject(TabsRootContextKey)!;
57
-
58
- const ns = useNamespace('tabs');
59
- const visibility = useDocumentVisibility();
60
- const focused = useWindowFocus();
61
-
62
- // 整个 nav dom 包含前进后退 btn (vri-tabs__nav-wrap)
63
- const el$ = ref<HTMLDivElement>();
64
- // el$ 子节点 包含 newButton (vri-tabs__nav-scroll)
65
- const navScroll$ = ref<HTMLDivElement>();
66
- // navScroll$ 子节点 (vri-tabs__nav)
67
- const nav$ = ref<HTMLDivElement>();
68
-
69
- /** 是否展示左右滚动 */
70
- const scrollable = ref<false | Scrollable>(false);
71
- // 记录滚动时的偏移量
72
- const navOffset = ref(0);
73
- const isFocus = ref(false);
74
- const focusable = ref(true);
75
-
76
- // 根据 tabPosition 确定 sizeName 是 width or height
77
- const sizeName = computed(() => ['top', 'bottom'].includes(rootTabs.props.tabPosition!) ? 'width' : 'height');
78
-
79
- // 设置 tab 导航栏的 translateX or translateY 的偏移量
80
- const navStyle = computed<CSSProperties>(() => {
81
- const dir = sizeName.value === 'width' ? 'X' : 'Y';
82
- return {
83
- transform: `translate${dir}(-${navOffset.value}px)`
84
- };
85
- });
86
-
87
- // 向前滚动
88
- const scrollPrev = () => {
89
- if (!navScroll$.value) return;
90
- const containerSize =
91
- navScroll$.value[`offset${capitalize(sizeName.value)}`];
92
- const currentOffset = navOffset.value;
93
-
94
- if (!currentOffset) return;
95
-
96
- navOffset.value = currentOffset > containerSize ? currentOffset - containerSize : 0;
97
- };
98
-
99
- // 向后滚动
100
- const scrollNext = () => {
101
- if (!navScroll$.value || !nav$.value) return;
102
-
103
- const navSize = nav$.value[`offset${capitalize(sizeName.value)}`];
104
- const containerSize =
105
- navScroll$.value[`offset${capitalize(sizeName.value)}`];
106
- const currentOffset = navOffset.value;
107
-
108
- if (navSize - currentOffset <= containerSize) return;
109
-
110
- navOffset.value = navSize - currentOffset > containerSize * 2
111
- ? currentOffset + containerSize
112
- : navSize - containerSize;
113
- };
114
-
115
- // 滚动到激活的 tab 主要是获取 navOffset 的值
116
- const scrollToActiveTab = async() => {
117
- const nav = nav$.value;
118
- if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return;
119
-
120
- await nextTick();
121
-
122
- const activeTab = el$.value.querySelector('.is-active');
123
- if (!activeTab) return;
124
-
125
- const navScroll = navScroll$.value;
126
- const isHorizontal = ['top', 'bottom'].includes(
127
- rootTabs.props.tabPosition!
128
- );
129
- const activeTabBounding = activeTab.getBoundingClientRect();
130
- // vri-tabs__nav-scroll
131
- const navScrollBounding = navScroll.getBoundingClientRect();
132
- const maxOffset = isHorizontal
133
- ? nav.offsetWidth - navScrollBounding.width
134
- : nav.offsetHeight - navScrollBounding.height;
135
-
136
- const currentOffset = navOffset.value;
137
-
138
- let newOffset = currentOffset;
139
-
140
- if (isHorizontal) {
141
- if (activeTabBounding.left < navScrollBounding.left) {
142
- newOffset =
143
- currentOffset - (navScrollBounding.left - activeTabBounding.left);
144
- }
145
- if (activeTabBounding.right > navScrollBounding.right) {
146
- newOffset =
147
- currentOffset + activeTabBounding.right - navScrollBounding.right;
148
- }
149
- } else {
150
- if (activeTabBounding.top < navScrollBounding.top) {
151
- newOffset =
152
- currentOffset - (navScrollBounding.top - activeTabBounding.top);
153
- }
154
- if (activeTabBounding.bottom > navScrollBounding.bottom) {
155
- newOffset =
156
- currentOffset +
157
- (activeTabBounding.bottom - navScrollBounding.bottom);
158
- }
159
- }
160
- newOffset = Math.max(newOffset, 0);
161
- navOffset.value = Math.min(newOffset, maxOffset);
162
- };
163
-
164
- const update = () => {
165
- if (!nav$.value || !navScroll$.value) return;
166
- // 根据 position 的不同 获取 nav$(vri-tabs__nav) 的 offsetWidth or offsetHeight
167
- const navSize = nav$.value[`offset${capitalize(sizeName.value)}`];
168
- // 获取到 navScroll$ 的 offsetWidth or offsetHeight
169
- const containerSize = navScroll$.value[`offset${capitalize(sizeName.value)}`];
170
- // 获取到当前的偏移量
171
- const currentOffset = navOffset.value;
172
- // 由于 navScroll$ 的 overflow 是 hidden,所以当 vri-tabs__nav 撑开时其宽度可能会超过 vri-tabs__nav-scroll
173
- if (containerSize < navSize) {
174
- scrollable.value = scrollable.value || {};
175
- scrollable.value.prev = currentOffset;
176
- scrollable.value.next = currentOffset + containerSize < navSize;
177
- if (navSize - currentOffset < containerSize) {
178
- navOffset.value = navSize - containerSize;
179
- }
180
- } else {
181
- scrollable.value = false;
182
- if (currentOffset > 0) {
183
- navOffset.value = 0;
184
- }
185
- }
186
- };
187
-
188
- const changeTab = (e: KeyboardEvent) => {
189
- const code = e.code;
190
-
191
- const { up, down, left, right } = EVENT_CODE;
192
- if (![up, down, left, right].includes(code)) return;
193
-
194
- // 左右上下键更换tab
195
- const tabList = Array.from(
196
- (e.currentTarget as HTMLDivElement).querySelectorAll<HTMLDivElement>(
197
- '[role=tab]:not(.is-disabled)'
198
- )
199
- );
200
- const currentIndex = tabList.indexOf(e.target as HTMLDivElement);
201
-
202
- let nextIndex: number;
203
- if (code === left || code === up) {
204
- // left
205
- if (currentIndex === 0) {
206
- // first
207
- nextIndex = tabList.length - 1;
208
- } else {
209
- nextIndex = currentIndex - 1;
210
- }
211
- } else {
212
- // right
213
- if (currentIndex < tabList.length - 1) {
214
- // not last
215
- nextIndex = currentIndex + 1;
216
- } else {
217
- nextIndex = 0;
218
- }
219
- }
220
- tabList[nextIndex].focus(); // 改变焦点元素
221
- tabList[nextIndex].click(); // 选中下一个tab
222
- setFocus();
223
- };
224
-
225
- const setFocus = () => {
226
- if (focusable.value) isFocus.value = true;
227
- };
228
- const removeFocus = () => (isFocus.value = false);
229
-
230
- watch(visibility, (visibility) => {
231
- if (visibility === 'hidden') {
232
- focusable.value = false;
233
- } else if (visibility === 'visible') {
234
- setTimeout(() => (focusable.value = true), 50);
235
- }
236
- });
237
-
238
- watch(focused, (focused) => {
239
- if (focused) {
240
- setTimeout(() => (focusable.value = true), 50);
241
- } else {
242
- focusable.value = false;
243
- }
244
- });
245
-
246
- // 监听 resize 触发 update
247
- useResizeObserver(el$, update);
248
-
249
- onMounted(() => setTimeout(() => scrollToActiveTab(), 0));
250
- onUpdated(() => update());
251
-
252
- defineExpose({
253
- scrollToActiveTab,
254
- removeFocus
255
- });
256
-
257
- watch(
258
- () => panes,
259
- () => vm.update(),
260
- { flush: 'post' }
261
- );
262
-
263
- // 前进后退标签
264
- const scrollBtn = computed(() => {
265
- return scrollable.value
266
- ? [
267
- <span
268
- class={[
269
- ns.e('nav-prev'),
270
- ns.is('disabled', !scrollable.value.prev)
271
- ]}
272
- onClick={scrollPrev}
273
- >
274
- {arrowLeftIconCfg?.icon ? <Icon {...arrowLeftIconCfg}></Icon> : null}
275
- </span>,
276
- <span
277
- class={[
278
- ns.e('nav-next'),
279
- ns.is('disabled', !scrollable.value.next)
280
- ]}
281
- onClick={scrollNext}
282
- >
283
- {arrowRightIconCfg?.icon ? <Icon {...arrowRightIconCfg}></Icon> : null}
284
- </span>
285
- ]
286
- : null;
287
- });
288
-
289
- // 渲染 tab-pane
290
- const tabs = computed(() => {
291
- return panes?.map((pane, index) => {
292
- const uid = pane.uid;
293
- const disabled = pane.props.disabled;
294
- const tabName = pane.props.name ?? pane.index ?? `${index}`;
295
- const closable = !disabled && (pane.isClosable || editable);
296
- pane.index = `${index}`;
297
-
298
- // 关闭标签图标
299
- const btnClose = closable ? (
300
- <span class="is-icon-close" onClick={(ev: MouseEvent) => emit('tabRemove', pane, ev)}>
301
- {closeIconCfg?.icon ? <Icon {...closeIconCfg}></Icon> : null}
302
- </span>
303
- ) : null;
304
-
305
- const tabLabelContent = pane.slots.label?.() || pane.props.label;
306
- const tabindex = !disabled && pane.active ? 0 : -1;
307
-
308
- return (
309
- <div
310
- ref={`tab-${uid}`}
311
- class={[
312
- ns.e('item'),
313
- ns.is(rootTabs.props.tabPosition!),
314
- ns.is('active', pane.active),
315
- ns.is('disabled', disabled),
316
- ns.is('closable', closable),
317
- ns.is('focus', isFocus.value)
318
- ]}
319
- id={`tab-${tabName}`}
320
- key={`tab-${uid}`}
321
- aria-controls={`pane-${tabName}`}
322
- role="tab"
323
- aria-selected={pane.active}
324
- tabindex={tabindex}
325
- onFocus={() => setFocus()}
326
- onBlur={() => removeFocus()}
327
- onClick={(ev: MouseEvent) => {
328
- removeFocus();
329
- emit('tabClick', pane, tabName, ev);
330
- }}
331
- onContextmenu={(event) => {
332
- event.preventDefault();
333
- emit('tabContextmenu', { pane, index, event });
334
- }}
335
- onKeydown={(ev: KeyboardEvent) => {
336
- if (
337
- closable &&
338
- (ev.code === EVENT_CODE.delete ||
339
- ev.code === EVENT_CODE.backspace)
340
- ) {
341
- emit('tabRemove', pane, ev);
342
- }
343
- }}
344
- >
345
- {...[tabLabelContent, btnClose]}
346
- </div>
347
- );
348
- });
349
- });
350
-
351
- // 增加 tab 的 dom
352
- const newButton =
353
- editable || addable ? (
354
- <span
355
- class={ns.e('new-tab')}
356
- tabindex="0"
357
- onClick={() => emit('tabAdd')}
358
- onKeydown={(ev: KeyboardEvent) => {
359
- if (ev.code === EVENT_CODE.enter) emit('tabAdd');
360
- }}
361
- >
362
- {addIconCfg?.icon ? <Icon {...addIconCfg}></Icon> : null}
363
- </span>
364
- ) : null;
365
-
366
- defineRender(() => {
367
- return (
368
- <div
369
- ref={el$}
370
- class={[
371
- ns.e('nav-wrap'),
372
- ns.is('scrollable', !!scrollable.value),
373
- ns.is(rootTabs.props.tabPosition!)
374
- ]}
375
- >
376
- {scrollBtn.value}
377
- <div class={ns.e('nav-scroll')} ref={navScroll$}>
378
- <div
379
- class={[
380
- ns.e('nav'),
381
- ns.is(rootTabs.props.tabPosition!),
382
- ns.is(
383
- 'stretch',
384
- stretch &&
385
- ['top', 'bottom'].includes(rootTabs.props.tabPosition!)
386
- )
387
- ]}
388
- ref={nav$}
389
- style={navStyle.value}
390
- role="tablist"
391
- onKeydown={changeTab}
392
- >
393
- {...[
394
- !type ? <TabBar tabs={[...panes]} /> : null,
395
- tabs.value
396
- ]}
397
- </div>
398
- {newButton}
399
- </div>
400
- </div>
401
- );
402
- });
403
- </script>
@@ -1,90 +0,0 @@
1
- <script lang="ts" setup>
2
- import { type TabsPaneContext, TabsRootContextKey } from './types';
3
- import { useNamespace } from '../../use';
4
- import {
5
- computed,
6
- getCurrentInstance,
7
- inject,
8
- onMounted,
9
- onUnmounted,
10
- reactive,
11
- ref,
12
- useSlots,
13
- watch
14
- } from 'vue';
15
- import { eagerComputed } from '@vueuse/core';
16
-
17
- interface TabPaneProps {
18
- /** 选项卡标题 */
19
- label?: string;
20
- /** 与选项卡绑定值 value 对应的标识符,表示选项卡别名 */
21
- name?: Numberish;
22
- /** 标签是否可关闭 */
23
- closable?: boolean;
24
- /** 是否禁用 */
25
- disabled?: boolean;
26
- /** 标签是否延迟渲染 */
27
- lazy?: boolean;
28
- }
29
-
30
- const { name, closable, lazy } = defineProps<TabPaneProps>();
31
-
32
- const vm = getCurrentInstance()!;
33
-
34
- const slots = useSlots();
35
-
36
- const tabsRoot = inject(TabsRootContextKey)!;
37
-
38
- const ns = /* hoist-static*/ useNamespace('tab-pane');
39
-
40
- defineOptions({
41
- name: ns.b()
42
- });
43
-
44
- const index = ref<string>();
45
- // 可关闭
46
- const isClosable = computed(() => closable || tabsRoot.props.closable);
47
- // 激活
48
- const active = eagerComputed(() => {
49
- return tabsRoot.currentName.value === (name ?? index.value);
50
- });
51
-
52
- const loaded = ref(active.value);
53
-
54
- const paneName = computed(() => name ?? index.value);
55
-
56
- const shouldBeRender = eagerComputed(() => {
57
- return !lazy || loaded.value || active.value;
58
- });
59
-
60
- watch(active, (val) => {
61
- if (val) loaded.value = true;
62
- });
63
-
64
- const pane = reactive({
65
- uid: vm.uid,
66
- slots,
67
- props: vm.props as unknown as TabPaneProps,
68
- paneName,
69
- active,
70
- index,
71
- isClosable,
72
- attrs: vm.attrs
73
- });
74
-
75
-
76
- onMounted(() => {
77
- tabsRoot.registerPane(pane as TabsPaneContext);
78
- });
79
-
80
- onUnmounted(() => {
81
- tabsRoot.unregisterPane(pane.uid);
82
- });
83
- </script>
84
-
85
- <template>
86
- <div v-if="shouldBeRender" v-show="active" :id="`pane-${paneName}`" :class="ns.b()"
87
- role="tabpanel" :aria-hidden="!active" :aria-labelledby="`tab-${paneName}`">
88
- <slot />
89
- </div>
90
- </template>
@@ -1,66 +0,0 @@
1
- import type { ComputedRef, InjectionKey, Ref, Slots, UnwrapRef } from 'vue';
2
- import { type IconProps } from '../../common';
3
-
4
- export type TabsPaneContext = UnwrapRef<{
5
- uid: number;
6
- slots: Slots;
7
- props: TabPaneProps;
8
- paneName: ComputedRef<string | number | undefined>;
9
- active: ComputedRef<boolean>;
10
- index: Ref<string | undefined>;
11
- isClosable: ComputedRef<boolean>;
12
- attrs: Record<string, any>;
13
- }>;
14
-
15
- export type TabsType = 'card' | 'border-card' | '';
16
-
17
- export interface TabsRootContext {
18
- props: TabsProps;
19
- currentName: Ref<string | number>;
20
- registerPane: (pane: TabsPaneContext) => void;
21
- unregisterPane: (uid: number) => void;
22
- }
23
-
24
- export interface TabPaneProps {
25
- /** 选项卡标题 */
26
- label: string;
27
- /** 与选项卡绑定值 value 对应的标识符,表示选项卡别名 */
28
- name: Numberish;
29
- /** 标签是否可关闭 */
30
- closable: boolean;
31
- /** 是否禁用 */
32
- disabled: boolean;
33
- /** 标签是否延迟渲染 */
34
- lazy: boolean;
35
- }
36
-
37
- export interface TabsProps {
38
- /** 风格类型 */
39
- type?: TabsType;
40
- /** 标签是否可关闭 */
41
- closable?: boolean;
42
- /** 标签是否可增加 */
43
- addable?: boolean;
44
- /** 绑定值,选中选项卡的 name */
45
- modelValue: Numberish;
46
- /** 标签是否同时可增加和关闭 */
47
- editable?: boolean;
48
- /** 选项卡所在位置 */
49
- tabPosition?: 'top' | 'right' | 'bottom' | 'left';
50
- /** 切换标签之前的钩子函数, 若返回 false 或者返回被 reject 的 Promise,则阻止切换 */
51
- beforeLeave?: Function;
52
- stretch?: boolean;
53
- closeIconCfg?: IconProps;
54
- addIconCfg?: IconProps;
55
- arrowLeftIconCfg?: IconProps;
56
- arrowRightIconCfg?: IconProps;
57
- }
58
-
59
- export const TabsRootContextKey: InjectionKey<TabsRootContext> = Symbol('tabsRootContextKey');
60
-
61
- export interface Scrollable {
62
- next?: boolean;
63
- prev?: number;
64
- }
65
-
66
- export type TabsPanes = Record<number, TabsPaneContext>;