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,440 +0,0 @@
1
- <script lang="tsx" setup>
2
- import { renderTNode, singleAttrToObj } from '@vri/utils';
3
- import { useTimeoutFn } from '@vueuse/core';
4
- import { Tooltip, type ToolTipProps } from '../tooltip';
5
- import type { Placement } from 'element-plus/es/components/popper';
6
- import { Icon, type IconProps } from '../../common';
7
- import { useNamespace } from '../../use';
8
- import { throwError } from '../../utils';
9
- import type { CSSProperties, VNodeArrayChildren } from 'vue';
10
- import {
11
- computed,
12
- Fragment,
13
- getCurrentInstance,
14
- h,
15
- inject,
16
- onBeforeUnmount,
17
- onMounted,
18
- provide,
19
- reactive,
20
- ref,
21
- vShow,
22
- watch,
23
- withDirectives,
24
- useSlots
25
- } from 'vue';
26
- import CollapseTransition from '../transition/collapse-transition.vue';
27
- import type { MenuProvider, SubMenuProvider } from './types';
28
- import useMenu from './use-menu';
29
- import { useMenuCssVar } from './use-menu-css-var';
30
-
31
- interface Props {
32
- /** 唯一标志 */
33
- index: string;
34
- /** 展开 sub-menu 的延时 */
35
- showTimeout?: number;
36
- /** 收起 sub-menu 的延时 */
37
- hideTimeout?: number;
38
- /** 为 popper 添加类名 */
39
- popperClass?: ClassType;
40
- /** 是否禁用 */
41
- disabled?: boolean;
42
- popperAppendToBody?: boolean;
43
- /** 弹出窗口偏移 */
44
- popperOffset?: number;
45
- expandIcon?: IconProps;
46
- collapseIcon?: IconProps;
47
- title?: string;
48
- icon?: IconProps | string;
49
- showArrow?: boolean;
50
- toolTipCfg?: ToolTipProps;
51
- }
52
-
53
- const {
54
- index,
55
- showTimeout = 300,
56
- hideTimeout = 300,
57
- popperClass,
58
- disabled,
59
- popperAppendToBody = undefined,
60
- popperOffset = 6,
61
- expandIcon = {},
62
- collapseIcon = {},
63
- icon,
64
- showArrow = true,
65
- toolTipCfg
66
- } = defineProps<Props>();
67
-
68
- const ns = /* hoist-static*/ useNamespace('sub-menu');
69
-
70
- defineOptions({
71
- name: ns.b()
72
- });
73
-
74
- const instance = getCurrentInstance()!;
75
-
76
- // 返回当前 sub-menu 对应的 indexPath 页面中对 submenu 定义的 index parentMenu -> vri-menu 组件
77
- const { indexPath, parentMenu } = useMenu(instance, computed(() => index));
78
-
79
- const nsMenu = useNamespace('menu');
80
- const nsSubMenu = useNamespace('sub-menu');
81
-
82
- // 接受 vri-menu 组件中注入的数据
83
- const rootMenu = inject<MenuProvider>('rootMenu');
84
- if (!rootMenu) throwError(ns.b(), 'can not inject root menu');
85
-
86
- // 接受 vri-menu 组件中注入的数据 parentMenu.value!.uid 当前 sub-menu 组件对应的 menu.vue 组件
87
- const subMenu = inject<SubMenuProvider>(`subMenu:${parentMenu.value!.uid}`);
88
- if (!subMenu) throwError(ns.b(), 'can not inject sub menu');
89
-
90
- /**
91
- * 格式如下
92
- * ```
93
- * {
94
- * 1-1:{index: '1-1', indexPath: ['mio', '1-1'], active: false},
95
- * 1-2:{index: '1-2', indexPath: ['mio', '1-2'], active: false}
96
- * }
97
- * ```
98
- * @param {MenuItemRegistered} item
99
- */
100
- const subMenus = ref<MenuProvider['subMenus']>({});
101
-
102
- let timeout: (() => void) | undefined;
103
- const mouseInChild = ref(false);
104
-
105
- // sub-menu-title 的 ref
106
- const verticalTitleRef = ref<HTMLDivElement>();
107
- // tooltip 的实例
108
- const vPopper = ref(null);
109
-
110
- // toolTop 的展示位置
111
- const currentPlacement = computed<Placement>(
112
- () => (mode.value === 'horizontal' && isFirstLevel.value ? 'bottom-start' : 'right-start'));
113
-
114
- // 是否为第一级的 subMenu
115
- const isFirstLevel = computed(() => {
116
- return subMenu.level === 0;
117
- });
118
-
119
- const appendToBody = computed(() => {
120
- return popperAppendToBody === undefined ? isFirstLevel.value : Boolean(popperAppendToBody);
121
- });
122
-
123
- // toolTip 弹出的动画名称
124
- const menuTransitionName = computed(
125
- () => (rootMenu.props.collapse ? `${nsMenu.namespace.value}-zoom-in-left` : `${nsMenu.namespace.value}-zoom-in-top`));
126
-
127
- const fallbackPlacements = computed<Placement[]>(() =>
128
- mode.value === 'horizontal' && isFirstLevel.value
129
- ? ['bottom-start', 'bottom-end', 'top-start', 'top-end', 'right-start', 'left-start']
130
- : ['right-start', 'left-start', 'bottom-start', 'bottom-end', 'top-start', 'top-end']
131
- );
132
-
133
- // 获取当前的 index 是否包含在 openedMenus 中,表示当前 sub-menu 是否已经展开,子节点就是通过这个使用 v-show 来显隐
134
- const opened = computed(() => rootMenu.openedMenus.includes(index));
135
-
136
- const active = computed(() => {
137
- let isActive = false;
138
- Object.values(subMenus.value).forEach((subItem) => {
139
- if (subItem.active) {
140
- isActive = true;
141
- }
142
- });
143
- if (index === rootMenu.activeIndex) {
144
- isActive = true;
145
- }
146
- return isActive;
147
- });
148
-
149
- const backgroundColor = computed(() => rootMenu.props.backgroundColor || '');
150
-
151
- const activeTextColor = computed(() => rootMenu.props.activeTextColor || '');
152
-
153
- const textColor = computed(() => rootMenu.props.textColor || '');
154
-
155
- const mode = computed(() => rootMenu.props.mode);
156
-
157
- const item = reactive({
158
- index,
159
- indexPath,
160
- active
161
- });
162
-
163
- //
164
- const titleStyle = computed<CSSProperties>(() => {
165
- if (mode.value !== 'horizontal') {
166
- return {
167
- color: textColor.value
168
- };
169
- }
170
- return {
171
- borderBottomColor: active.value ? (rootMenu.props.activeTextColor ? activeTextColor.value : '') : 'transparent',
172
- color: active.value ? activeTextColor.value : textColor.value
173
- };
174
- });
175
-
176
- // 销毁 toolTip
177
- const doDestroy = () => vPopper.value?.popperRef?.popperInstanceRef?.destroy();
178
-
179
- // 当菜单收缩展开时执行销毁 toolTip
180
- const handleCollapseToggle = (value: boolean) => {
181
- if (!value) {
182
- doDestroy();
183
- }
184
- };
185
-
186
- // sub-menu 菜单点击事件
187
- const handleClick = () => {
188
- // 以下几种情况不执行点击事件操作
189
- if ((rootMenu.props.menuTrigger === 'hover' && rootMenu.props.mode === 'horizontal') || (rootMenu.props.collapse && rootMenu.props.mode === 'vertical') || disabled) return;
190
-
191
- // 调用 menn.vue 中的 handleSubMenuClick 点击事件,传入参数
192
- rootMenu.handleSubMenuClick({
193
- index: index,
194
- indexPath: indexPath.value,
195
- active: active.value
196
- });
197
- };
198
-
199
- // 滑入 sub-menu 菜单事件
200
- const handleMouseenter = (event: MouseEvent | FocusEvent, _showTimeout = showTimeout) => {
201
- if (event.type === 'focus') {
202
- return;
203
- }
204
- if ((rootMenu.props.menuTrigger === 'click' && rootMenu.props.mode === 'horizontal') || (!rootMenu.props.collapse && rootMenu.props.mode === 'vertical') || disabled) {
205
- return;
206
- }
207
- subMenu.mouseInChild.value = true;
208
-
209
- // 根据 _showTimeout 展开滑入的菜单子项
210
- timeout?.();
211
- ({ stop: timeout } = useTimeoutFn(() => {
212
- rootMenu.openMenu(index, indexPath.value);
213
- }, _showTimeout));
214
-
215
- if (appendToBody.value) {
216
- parentMenu.value.vnode.el?.dispatchEvent(new MouseEvent('mouseenter'));
217
- }
218
- };
219
-
220
- // 离开滑入的菜单
221
- const handleMouseleave = (deepDispatch = false) => {
222
- if ((rootMenu.props.menuTrigger === 'click' && rootMenu.props.mode === 'horizontal') || (!rootMenu.props.collapse && rootMenu.props.mode === 'vertical')) {
223
- return;
224
- }
225
- timeout?.();
226
- subMenu.mouseInChild.value = false;
227
- ({ stop: timeout } = useTimeoutFn(
228
- () => !mouseInChild.value && rootMenu.closeMenu(index, indexPath.value),
229
- hideTimeout));
230
-
231
- if (appendToBody.value && deepDispatch) {
232
- if (instance.parent?.type.name === 'vri-sub-menu') {
233
- subMenu.handleMouseleave?.(true);
234
- }
235
- }
236
- };
237
-
238
- // 监听菜单的收缩展开决定是否销毁 ToolTip
239
- watch(
240
- () => rootMenu.props.collapse,
241
- (value) => handleCollapseToggle(Boolean(value))
242
- );
243
-
244
- // 以下代码在 menu-item.vue 中触发
245
- {
246
- /**
247
- * 此函数在 menu-item 中触发,items.value 默认为空对象
248
- * 最后添加后的 items 格式如下
249
- * ```
250
- * {
251
- * 1-1:{index: '1-1', indexPath: ['mio', '1-1'], active: false},
252
- * 1-2:{index: '1-2', indexPath: ['mio', '1-2'], active: false}
253
- * }
254
- * ```
255
- * @param {MenuItemRegistered} item
256
- */
257
- const addSubMenu: SubMenuProvider['addSubMenu'] = (item) => {
258
- subMenus.value[item.index] = item;
259
- };
260
- const removeSubMenu: SubMenuProvider['removeSubMenu'] = (item) => {
261
- delete subMenus.value[item.index];
262
- };
263
- provide<SubMenuProvider>(`subMenu:${instance.uid}`, {
264
- addSubMenu,
265
- removeSubMenu,
266
- handleMouseleave,
267
- mouseInChild,
268
- level: subMenu.level + 1
269
- });
270
- }
271
-
272
- defineExpose({
273
- opened
274
- });
275
-
276
- onMounted(() => {
277
- rootMenu.addSubMenu(item);
278
- subMenu.addSubMenu(item);
279
- });
280
-
281
- onBeforeUnmount(() => {
282
- subMenu.removeSubMenu(item);
283
- rootMenu.removeSubMenu(item);
284
- });
285
-
286
- const slots = useSlots();
287
-
288
- // 箭头设置
289
- const subMenuIcon = computed(() => {
290
- // 水平模式第一级 或者 竖直非折叠
291
- return (mode.value === 'horizontal' && isFirstLevel.value) || (mode.value === 'vertical' && !rootMenu.props.collapse)
292
- ? { icon: 'vi-arrow-down', size: 20, ...expandIcon } :
293
- { icon: 'vi-arrow-right', size: 18, ...collapseIcon };
294
- });
295
-
296
- const _icon = computed(() => {
297
- return singleAttrToObj(icon, 'icon') as IconProps;
298
- });
299
-
300
- const titleCon = computed(() => {
301
- return renderTNode(instance, 'title');
302
- });
303
-
304
- defineRender(() => {
305
- // sub-menu 的标题以及展开箭头 icon 相关
306
- const titleTag: VNodeArrayChildren = [
307
- _icon.value?.icon ? h(Icon, { ..._icon.value }) : null,
308
- h(
309
- 'span',
310
- {
311
- class: showArrow ? nsSubMenu.e('text') : '',
312
- title: instance.props.title
313
- },
314
- titleCon.value
315
- ),
316
- showArrow ? h(
317
- Icon,
318
- {
319
- class: nsSubMenu.e('icon-arrow'),
320
- ...subMenuIcon.value,
321
- style: { transform: opened.value ? 'rotateZ(180deg)' : 'none' }
322
- }
323
- ) : false
324
- ];
325
-
326
- // 给 vri-menu class 这一栏加入 level 等级,以此来区分当前的 level: --vri-menu-level:2;
327
- const ulStyle = useMenuCssVar(rootMenu.props, subMenu.level + 1);
328
-
329
- /**
330
- * rootMenu.isMenuPopup 是否需要 tooltip 1.水平模式的菜单需要 2.竖直类型的菜单在收缩时需要
331
- * 如果需要 tooltip 用 h 函数渲染时,则采用 ElTooltip 组件
332
- * @type {VNode}
333
- */
334
- const child = rootMenu.isMenuPopup
335
- ? h(
336
- Tooltip,
337
- {
338
- ref: vPopper,
339
- visible: opened.value,
340
- effect: 'light',
341
- pure: true,
342
- offset: popperOffset,
343
- showArrow: false,
344
- persistent: true,
345
- popperClass,
346
- placement: currentPlacement.value,
347
- teleported: appendToBody.value,
348
- fallbackPlacements: fallbackPlacements.value,
349
- transition: menuTransitionName.value,
350
- gpuAcceleration: false,
351
- ...toolTipCfg
352
- },
353
- {
354
- content: () =>
355
- h(
356
- 'div',
357
- {
358
- class: [nsMenu.m(mode.value), nsMenu.m('popup-container'), popperClass],
359
- onMouseenter: (evt: MouseEvent) => handleMouseenter(evt, 100),
360
- onMouseleave: () => handleMouseleave(true),
361
- onFocus: (evt: FocusEvent) => handleMouseenter(evt, 100)
362
- },
363
- [
364
- h(
365
- 'ul',
366
- {
367
- class: [nsMenu.b(), nsMenu.m('popup'), nsMenu.m(
368
- `popup-${currentPlacement.value}`)],
369
- style: ulStyle.value
370
- },
371
- [slots.default?.()]
372
- )
373
- ]
374
- ),
375
- default: () =>
376
- h(
377
- 'div',
378
- {
379
- class: nsSubMenu.e('title'),
380
- style: [titleStyle.value, { backgroundColor: backgroundColor.value }],
381
- onClick: handleClick
382
- },
383
- titleTag
384
- )
385
- }
386
- )
387
- :
388
- /**
389
- * Fragment 碎片化节点,可以让 dom 没有根节点
390
- *
391
- * 以下是无需 tooltip 渲染的组件,通常是侧边栏没有折叠的时候
392
- */
393
- h(Fragment, {}, [
394
- titleCon.value ? h(
395
- 'div',
396
- {
397
- class: nsSubMenu.e('title'),
398
- style: [titleStyle.value, { backgroundColor: backgroundColor.value }],
399
- ref: verticalTitleRef,
400
- onClick: handleClick
401
- },
402
- titleTag
403
- ) : null,
404
- h(
405
- CollapseTransition,
406
- {},
407
- {
408
- default: () =>
409
- withDirectives(
410
- h(
411
- 'ul',
412
- {
413
- role: 'menu',
414
- class: [nsMenu.b(), nsMenu.m('inline')],
415
- style: ulStyle.value
416
- },
417
- [slots.default?.()]
418
- ),
419
- [[vShow, opened.value]]
420
- )
421
- }
422
- )
423
- ]);
424
-
425
- return h(
426
- 'li',
427
- {
428
- class: [nsSubMenu.b(), nsSubMenu.is('active', active.value),
429
- nsSubMenu.is('opened', opened.value), nsSubMenu.is('disabled', disabled)],
430
- role: 'menuitem',
431
- ariaHaspopup: true,
432
- ariaExpanded: opened.value,
433
- onMouseenter: handleMouseenter,
434
- onMouseleave: () => handleMouseleave(true),
435
- onFocus: handleMouseenter
436
- },
437
- [child]
438
- );
439
- });
440
- </script>
@@ -1,66 +0,0 @@
1
- import type { Ref } from 'vue';
2
- import type { RouteLocationRaw } from 'vue-router';
3
-
4
- export interface MenuItemRegistered {
5
- index: string;
6
- indexPath: string[];
7
- active: boolean;
8
- }
9
- export interface MenuItemClicked {
10
- index: string;
11
- indexPath: string[];
12
- route?: RouteLocationRaw;
13
- }
14
-
15
- export interface MenuProps {
16
- /** 菜单展示模式 */
17
- mode?: 'horizontal' | 'vertical';
18
- /** 页面加载时默认激活菜单的 index(menu-item 的index) */
19
- defaultActive?: string;
20
- /** 默认打开的 sub-menu 的 index 的数组 */
21
- defaultOpeneds?: string[];
22
- /** 是否只保持一个子菜单的展开 */
23
- uniqueOpened?: boolean;
24
- /** 是否启用 vue-router 模式。 启用该模式会在激活导航时以 index 作为 path 进行路由跳转 使用 default-active 来设置加载时的激活项 */
25
- router?: boolean;
26
- /** 子菜单打开的触发方式,只在 mode 为 horizontal 时有效 */
27
- menuTrigger?: 'hover' | 'click';
28
- collapse?: boolean;
29
- /** 是否水平折叠收起菜单(仅在 mode 为 vertical 时可用) */
30
- backgroundColor?: string;
31
- textColor?: string;
32
- activeTextColor?: string;
33
- /** 是否开启折叠动画 */
34
- collapseTransition?: boolean;
35
- /** 是否省略多余的子项(仅在横向模式生效) */
36
- ellipsis?: boolean;
37
- }
38
-
39
- export interface MenuProvider {
40
- openedMenus: string[];
41
- items: Record<string, MenuItemRegistered>;
42
- subMenus: Record<string, MenuItemRegistered>;
43
- activeIndex?: string;
44
- /** 是否需要 tooltip 1.水平模式的菜单需要 2.竖直类型的菜单在收缩时需要 */
45
- isMenuPopup: boolean;
46
- props: MenuProps;
47
-
48
- addMenuItem: (item: MenuItemRegistered) => void;
49
- removeMenuItem: (item: MenuItemRegistered) => void;
50
- addSubMenu: (item: MenuItemRegistered) => void;
51
- removeSubMenu: (item: MenuItemRegistered) => void;
52
-
53
- openMenu: (index: string, indexPath: string[]) => void;
54
- closeMenu: (index: string, indexPath: string[]) => void;
55
-
56
- handleMenuItemClick: (item: MenuItemClicked) => void;
57
- handleSubMenuClick: (subMenu: MenuItemRegistered) => void;
58
- }
59
-
60
- export interface SubMenuProvider {
61
- addSubMenu: (item: MenuItemRegistered) => void;
62
- removeSubMenu: (item: MenuItemRegistered) => void;
63
- handleMouseleave?: (deepDispatch: boolean) => void;
64
- mouseInChild: Ref<boolean>;
65
- level: number;
66
- }
@@ -1,11 +0,0 @@
1
- import { computed } from 'vue';
2
- import { useNamespace } from '../../use';
3
-
4
- export const useMenuCssVar = (props: any, level: number) => {
5
- const ns = useNamespace('menu');
6
- return computed(() => {
7
- return ns.cssVarBlock({
8
- level: `${level}`
9
- });
10
- });
11
- };
@@ -1,60 +0,0 @@
1
- import { computed } from 'vue';
2
-
3
- import type { ComponentInternalInstance, Ref } from 'vue';
4
-
5
- /**
6
- * @description menu-item 与 sub-menu 都会调用此方法
7
- * @author wfd
8
- * @date 2022/11/8 14:02
9
- * @example
10
- * @param {ComponentInternalInstance} instance
11
- * @param {Ref<string>} currentIndex
12
- * @returns {{indexPath: ComputedRef<string[]>, parentMenu: ComputedRef<ComponentInternalInstance>}}
13
- */
14
- export default function useMenu(
15
- instance: ComponentInternalInstance,
16
- currentIndex: Ref<string>
17
- ) {
18
-
19
- /**
20
- * 这个 indexPath 是如何查找的,一般我们会给 vri-sub-menu 组件一个 index 属性,由于这个文件只有 menu-item 与 sub-menu 调用,
21
- * 由于 sub-menu 向上查询,不会有 index 属性了,主要是不断去找 menu-item 的父组件的 props 中的 index 属性
22
- *
23
- * 所以最终 indexPath 返回 menu-item:[自身的 index,sub-menu 的 index],sub-menu: [自身的index]
24
- *
25
- * sub-menu:['mio'] menu-item:['mio', '1-2']
26
- * @type {ComputedRef<string[]>}
27
- */
28
- const indexPath = computed(() => {
29
- let parent = instance.parent!;
30
-
31
- const path = [currentIndex.value];
32
- while (parent.type.name !== 'vri-menu') {
33
- if (parent.props.index) {
34
- path.unshift(parent.props.index as string);
35
- }
36
- parent = parent.parent!;
37
- }
38
- return path;
39
- });
40
-
41
- /**
42
- * @description 如果是 sub-menu 文件最终返回的 parent 是 vri-menu 组件,如果是 menu-item 最终返回的是 vri-sub-menu 组件
43
- * @author wfd
44
- * @date 2022/11/8 16:23
45
- * @example
46
- * @type {ComputedRef<ComponentInternalInstance>}
47
- */
48
- const parentMenu = computed(() => {
49
- let parent = instance.parent;
50
- while (parent && !['vri-menu', 'vri-sub-menu'].includes(parent.type.name!)) {
51
- parent = parent.parent;
52
- }
53
- return parent!;
54
- });
55
-
56
- return {
57
- parentMenu,
58
- indexPath
59
- };
60
- }
@@ -1,19 +0,0 @@
1
- import MenuItem from './menu-item';
2
-
3
- import type { RendererNode } from 'vue';
4
-
5
- class Menu {
6
- constructor(public domNode: RendererNode, namespace: string) {
7
- this.init(namespace);
8
- }
9
- init(namespace: string): void {
10
- const menuChildren = this.domNode.childNodes;
11
- Array.from<Node>(menuChildren).forEach((child) => {
12
- if (child.nodeType === 1) {
13
- new MenuItem(child as HTMLElement, namespace);
14
- }
15
- });
16
- }
17
- }
18
-
19
- export default Menu;
@@ -1,55 +0,0 @@
1
- import { triggerEvent } from '@vri/utils';
2
- import { EVENT_CODE } from '@vri/constants';
3
- import SubMenu from './submenu';
4
-
5
- class MenuItem {
6
- public submenu: SubMenu | null = null;
7
- constructor(public domNode: HTMLElement, namespace: string) {
8
- this.submenu = null;
9
- this.init(namespace);
10
- }
11
-
12
- init(namespace: string): void {
13
- this.domNode.setAttribute('tabindex', '0');
14
- const menuChild = this.domNode.querySelector(`.${namespace}-menu`);
15
- if (menuChild) {
16
- this.submenu = new SubMenu(this, menuChild);
17
- }
18
- this.addListeners();
19
- }
20
-
21
- addListeners(): void {
22
- this.domNode.addEventListener('keydown', (event: KeyboardEvent) => {
23
- let prevDef = false;
24
- switch (event.code) {
25
- case EVENT_CODE.down: {
26
- triggerEvent(event.currentTarget as HTMLElement, 'mouseenter');
27
- this.submenu && this.submenu.gotoSubIndex(0);
28
- prevDef = true;
29
- break;
30
- }
31
- case EVENT_CODE.up: {
32
- triggerEvent(event.currentTarget as HTMLElement, 'mouseenter');
33
- this.submenu && this.submenu.gotoSubIndex(this.submenu.subMenuItems.length - 1);
34
- prevDef = true;
35
- break;
36
- }
37
- case EVENT_CODE.tab: {
38
- triggerEvent(event.currentTarget as HTMLElement, 'mouseleave');
39
- break;
40
- }
41
- case EVENT_CODE.enter:
42
- case EVENT_CODE.space: {
43
- prevDef = true;
44
- (event.currentTarget as HTMLElement).click();
45
- break;
46
- }
47
- }
48
- if (prevDef) {
49
- event.preventDefault();
50
- }
51
- });
52
- }
53
- }
54
-
55
- export default MenuItem;