@yh-ui/components 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1354) hide show
  1. package/LICENSE +21 -0
  2. package/dist/__tests__/resolver.test.cjs +56 -0
  3. package/dist/__tests__/resolver.test.d.ts +1 -0
  4. package/dist/__tests__/resolver.test.mjs +52 -0
  5. package/dist/__tests__/utils/ssr.cjs +114 -0
  6. package/dist/__tests__/utils/ssr.d.ts +29 -0
  7. package/dist/__tests__/utils/ssr.mjs +119 -0
  8. package/dist/affix/__tests__/affix.bottom.test.cjs +101 -0
  9. package/dist/affix/__tests__/affix.bottom.test.d.ts +1 -0
  10. package/dist/affix/__tests__/affix.bottom.test.mjs +88 -0
  11. package/dist/affix/__tests__/affix.ssr.test.cjs +38 -0
  12. package/dist/affix/__tests__/affix.ssr.test.d.ts +1 -0
  13. package/dist/affix/__tests__/affix.ssr.test.mjs +51 -0
  14. package/dist/affix/__tests__/affix.test.cjs +185 -0
  15. package/dist/affix/__tests__/affix.test.d.ts +1 -0
  16. package/dist/affix/__tests__/affix.test.mjs +180 -0
  17. package/dist/affix/index.cjs +26 -0
  18. package/dist/affix/index.d.ts +5 -0
  19. package/dist/affix/index.mjs +5 -0
  20. package/dist/affix/src/affix.cjs +59 -0
  21. package/dist/affix/src/affix.css +471 -0
  22. package/dist/affix/src/affix.d.ts +60 -0
  23. package/dist/affix/src/affix.d.vue.ts +66 -0
  24. package/dist/affix/src/affix.mjs +53 -0
  25. package/dist/affix/src/affix.vue +634 -0
  26. package/dist/affix/src/affix.vue.d.ts +66 -0
  27. package/dist/alert/__tests__/alert.ssr.test.cjs +28 -0
  28. package/dist/alert/__tests__/alert.ssr.test.d.ts +1 -0
  29. package/dist/alert/__tests__/alert.ssr.test.mjs +29 -0
  30. package/dist/alert/__tests__/alert.test.cjs +123 -0
  31. package/dist/alert/__tests__/alert.test.d.ts +1 -0
  32. package/dist/alert/__tests__/alert.test.mjs +110 -0
  33. package/dist/alert/index.cjs +26 -0
  34. package/dist/alert/index.d.ts +5 -0
  35. package/dist/alert/index.mjs +5 -0
  36. package/dist/alert/src/alert.cjs +95 -0
  37. package/dist/alert/src/alert.css +785 -0
  38. package/dist/alert/src/alert.d.ts +94 -0
  39. package/dist/alert/src/alert.d.vue.ts +106 -0
  40. package/dist/alert/src/alert.mjs +89 -0
  41. package/dist/alert/src/alert.vue +975 -0
  42. package/dist/alert/src/alert.vue.d.ts +106 -0
  43. package/dist/autocomplete/__tests__/autocomplete.ssr.test.cjs +54 -0
  44. package/dist/autocomplete/__tests__/autocomplete.ssr.test.d.ts +1 -0
  45. package/dist/autocomplete/__tests__/autocomplete.ssr.test.mjs +47 -0
  46. package/dist/autocomplete/__tests__/autocomplete.test.cjs +299 -0
  47. package/dist/autocomplete/__tests__/autocomplete.test.d.ts +1 -0
  48. package/dist/autocomplete/__tests__/autocomplete.test.mjs +263 -0
  49. package/dist/autocomplete/index.cjs +26 -0
  50. package/dist/autocomplete/index.d.ts +9 -0
  51. package/dist/autocomplete/index.mjs +5 -0
  52. package/dist/autocomplete/src/autocomplete.cjs +1 -0
  53. package/dist/autocomplete/src/autocomplete.css +708 -0
  54. package/dist/autocomplete/src/autocomplete.d.ts +94 -0
  55. package/dist/autocomplete/src/autocomplete.d.vue.ts +63 -0
  56. package/dist/autocomplete/src/autocomplete.mjs +0 -0
  57. package/dist/autocomplete/src/autocomplete.vue +1177 -0
  58. package/dist/autocomplete/src/autocomplete.vue.d.ts +63 -0
  59. package/dist/avatar/__tests__/avatar.ssr.test.cjs +103 -0
  60. package/dist/avatar/__tests__/avatar.ssr.test.d.ts +1 -0
  61. package/dist/avatar/__tests__/avatar.ssr.test.mjs +108 -0
  62. package/dist/avatar/__tests__/avatar.test.cjs +146 -0
  63. package/dist/avatar/__tests__/avatar.test.d.ts +1 -0
  64. package/dist/avatar/__tests__/avatar.test.mjs +125 -0
  65. package/dist/avatar/index.cjs +11 -0
  66. package/dist/avatar/index.d.ts +3 -0
  67. package/dist/avatar/index.mjs +4 -0
  68. package/dist/avatar/src/avatar.cjs +1 -0
  69. package/dist/avatar/src/avatar.css +509 -0
  70. package/dist/avatar/src/avatar.d.ts +61 -0
  71. package/dist/avatar/src/avatar.d.vue.ts +21 -0
  72. package/dist/avatar/src/avatar.mjs +0 -0
  73. package/dist/avatar/src/avatar.vue +592 -0
  74. package/dist/avatar/src/avatar.vue.d.ts +21 -0
  75. package/dist/back-top/__tests__/back-top.ssr.test.cjs +13 -0
  76. package/dist/back-top/__tests__/back-top.ssr.test.d.ts +1 -0
  77. package/dist/back-top/__tests__/back-top.ssr.test.mjs +10 -0
  78. package/dist/back-top/__tests__/back-top.test.cjs +88 -0
  79. package/dist/back-top/__tests__/back-top.test.d.ts +1 -0
  80. package/dist/back-top/__tests__/back-top.test.mjs +76 -0
  81. package/dist/back-top/index.cjs +26 -0
  82. package/dist/back-top/index.d.ts +5 -0
  83. package/dist/back-top/index.mjs +5 -0
  84. package/dist/back-top/src/back-top.cjs +51 -0
  85. package/dist/back-top/src/back-top.css +515 -0
  86. package/dist/back-top/src/back-top.d.ts +48 -0
  87. package/dist/back-top/src/back-top.d.vue.ts +54 -0
  88. package/dist/back-top/src/back-top.mjs +45 -0
  89. package/dist/back-top/src/back-top.vue +641 -0
  90. package/dist/back-top/src/back-top.vue.d.ts +54 -0
  91. package/dist/badge/__tests__/badge.ssr.test.cjs +36 -0
  92. package/dist/badge/__tests__/badge.ssr.test.d.ts +1 -0
  93. package/dist/badge/__tests__/badge.ssr.test.mjs +33 -0
  94. package/dist/badge/__tests__/badge.test.cjs +115 -0
  95. package/dist/badge/__tests__/badge.test.d.ts +1 -0
  96. package/dist/badge/__tests__/badge.test.mjs +112 -0
  97. package/dist/badge/index.cjs +26 -0
  98. package/dist/badge/index.d.ts +5 -0
  99. package/dist/badge/index.mjs +5 -0
  100. package/dist/badge/src/badge.cjs +7 -0
  101. package/dist/badge/src/badge.css +531 -0
  102. package/dist/badge/src/badge.d.ts +73 -0
  103. package/dist/badge/src/badge.d.vue.ts +22 -0
  104. package/dist/badge/src/badge.mjs +1 -0
  105. package/dist/badge/src/badge.vue +621 -0
  106. package/dist/badge/src/badge.vue.d.ts +22 -0
  107. package/dist/breadcrumb/__tests__/breadcrumb.ssr.test.cjs +22 -0
  108. package/dist/breadcrumb/__tests__/breadcrumb.ssr.test.d.ts +1 -0
  109. package/dist/breadcrumb/__tests__/breadcrumb.ssr.test.mjs +20 -0
  110. package/dist/breadcrumb/__tests__/breadcrumb.test.cjs +64 -0
  111. package/dist/breadcrumb/__tests__/breadcrumb.test.d.ts +1 -0
  112. package/dist/breadcrumb/__tests__/breadcrumb.test.mjs +51 -0
  113. package/dist/breadcrumb/index.cjs +31 -0
  114. package/dist/breadcrumb/index.d.ts +8 -0
  115. package/dist/breadcrumb/index.mjs +9 -0
  116. package/dist/breadcrumb/src/breadcrumb-item.d.vue.ts +42 -0
  117. package/dist/breadcrumb/src/breadcrumb-item.vue +567 -0
  118. package/dist/breadcrumb/src/breadcrumb-item.vue.d.ts +42 -0
  119. package/dist/breadcrumb/src/breadcrumb.cjs +45 -0
  120. package/dist/breadcrumb/src/breadcrumb.css +514 -0
  121. package/dist/breadcrumb/src/breadcrumb.d.ts +42 -0
  122. package/dist/breadcrumb/src/breadcrumb.d.vue.ts +41 -0
  123. package/dist/breadcrumb/src/breadcrumb.mjs +39 -0
  124. package/dist/breadcrumb/src/breadcrumb.vue +555 -0
  125. package/dist/breadcrumb/src/breadcrumb.vue.d.ts +41 -0
  126. package/dist/button/__tests__/button.ssr.test.cjs +52 -0
  127. package/dist/button/__tests__/button.ssr.test.d.ts +1 -0
  128. package/dist/button/__tests__/button.ssr.test.mjs +55 -0
  129. package/dist/button/__tests__/button.test.cjs +207 -0
  130. package/dist/button/__tests__/button.test.d.ts +1 -0
  131. package/dist/button/__tests__/button.test.mjs +141 -0
  132. package/dist/button/index.cjs +26 -0
  133. package/dist/button/index.d.ts +100 -0
  134. package/dist/button/index.mjs +5 -0
  135. package/dist/button/src/button.cjs +10 -0
  136. package/dist/button/src/button.css +785 -0
  137. package/dist/button/src/button.d.ts +164 -0
  138. package/dist/button/src/button.d.vue.ts +44 -0
  139. package/dist/button/src/button.mjs +4 -0
  140. package/dist/button/src/button.vue +932 -0
  141. package/dist/button/src/button.vue.d.ts +44 -0
  142. package/dist/calendar/__tests__/calendar.ssr.test.cjs +65 -0
  143. package/dist/calendar/__tests__/calendar.ssr.test.d.ts +1 -0
  144. package/dist/calendar/__tests__/calendar.ssr.test.mjs +63 -0
  145. package/dist/calendar/__tests__/calendar.test.cjs +263 -0
  146. package/dist/calendar/__tests__/calendar.test.d.ts +1 -0
  147. package/dist/calendar/__tests__/calendar.test.mjs +255 -0
  148. package/dist/calendar/index.cjs +26 -0
  149. package/dist/calendar/index.d.ts +5 -0
  150. package/dist/calendar/index.mjs +5 -0
  151. package/dist/calendar/src/calendar.cjs +283 -0
  152. package/dist/calendar/src/calendar.css +819 -0
  153. package/dist/calendar/src/calendar.d.ts +178 -0
  154. package/dist/calendar/src/calendar.d.vue.ts +551 -0
  155. package/dist/calendar/src/calendar.mjs +172 -0
  156. package/dist/calendar/src/calendar.vue +1211 -0
  157. package/dist/calendar/src/calendar.vue.d.ts +551 -0
  158. package/dist/card/__tests__/card.ssr.test.cjs +37 -0
  159. package/dist/card/__tests__/card.ssr.test.d.ts +1 -0
  160. package/dist/card/__tests__/card.ssr.test.mjs +40 -0
  161. package/dist/card/__tests__/card.test.cjs +131 -0
  162. package/dist/card/__tests__/card.test.d.ts +1 -0
  163. package/dist/card/__tests__/card.test.mjs +124 -0
  164. package/dist/card/index.cjs +26 -0
  165. package/dist/card/index.d.ts +5 -0
  166. package/dist/card/index.mjs +5 -0
  167. package/dist/card/src/card.cjs +7 -0
  168. package/dist/card/src/card.css +606 -0
  169. package/dist/card/src/card.d.ts +81 -0
  170. package/dist/card/src/card.d.vue.ts +26 -0
  171. package/dist/card/src/card.mjs +1 -0
  172. package/dist/card/src/card.vue +695 -0
  173. package/dist/card/src/card.vue.d.ts +26 -0
  174. package/dist/cascader/__tests__/cascader-panel.test.cjs +162 -0
  175. package/dist/cascader/__tests__/cascader-panel.test.d.ts +1 -0
  176. package/dist/cascader/__tests__/cascader-panel.test.mjs +151 -0
  177. package/dist/cascader/__tests__/cascader.ssr.test.cjs +61 -0
  178. package/dist/cascader/__tests__/cascader.ssr.test.d.ts +1 -0
  179. package/dist/cascader/__tests__/cascader.ssr.test.mjs +55 -0
  180. package/dist/cascader/__tests__/cascader.test.cjs +342 -0
  181. package/dist/cascader/__tests__/cascader.test.d.ts +1 -0
  182. package/dist/cascader/__tests__/cascader.test.mjs +316 -0
  183. package/dist/cascader/index.cjs +29 -0
  184. package/dist/cascader/index.d.ts +12 -0
  185. package/dist/cascader/index.mjs +7 -0
  186. package/dist/cascader/src/cascader-panel.d.vue.ts +39 -0
  187. package/dist/cascader/src/cascader-panel.vue +1017 -0
  188. package/dist/cascader/src/cascader-panel.vue.d.ts +39 -0
  189. package/dist/cascader/src/cascader.cjs +20 -0
  190. package/dist/cascader/src/cascader.css +808 -0
  191. package/dist/cascader/src/cascader.d.ts +130 -0
  192. package/dist/cascader/src/cascader.d.vue.ts +63 -0
  193. package/dist/cascader/src/cascader.mjs +14 -0
  194. package/dist/cascader/src/cascader.vue +1321 -0
  195. package/dist/cascader/src/cascader.vue.d.ts +63 -0
  196. package/dist/checkbox/__tests__/checkbox.ssr.test.cjs +52 -0
  197. package/dist/checkbox/__tests__/checkbox.ssr.test.d.ts +1 -0
  198. package/dist/checkbox/__tests__/checkbox.ssr.test.mjs +57 -0
  199. package/dist/checkbox/__tests__/checkbox.test.cjs +173 -0
  200. package/dist/checkbox/__tests__/checkbox.test.d.ts +1 -0
  201. package/dist/checkbox/__tests__/checkbox.test.mjs +133 -0
  202. package/dist/checkbox/index.cjs +29 -0
  203. package/dist/checkbox/index.d.ts +128 -0
  204. package/dist/checkbox/index.mjs +7 -0
  205. package/dist/checkbox/src/checkbox-group.css +458 -0
  206. package/dist/checkbox/src/checkbox-group.d.vue.ts +24 -0
  207. package/dist/checkbox/src/checkbox-group.vue +537 -0
  208. package/dist/checkbox/src/checkbox-group.vue.d.ts +24 -0
  209. package/dist/checkbox/src/checkbox.cjs +8 -0
  210. package/dist/checkbox/src/checkbox.css +638 -0
  211. package/dist/checkbox/src/checkbox.d.ts +195 -0
  212. package/dist/checkbox/src/checkbox.d.vue.ts +32 -0
  213. package/dist/checkbox/src/checkbox.mjs +2 -0
  214. package/dist/checkbox/src/checkbox.vue +792 -0
  215. package/dist/checkbox/src/checkbox.vue.d.ts +32 -0
  216. package/dist/col/__tests__/col.ssr.test.cjs +44 -0
  217. package/dist/col/__tests__/col.ssr.test.d.ts +1 -0
  218. package/dist/col/__tests__/col.ssr.test.mjs +42 -0
  219. package/dist/col/__tests__/col.test.cjs +128 -0
  220. package/dist/col/__tests__/col.test.d.ts +1 -0
  221. package/dist/col/__tests__/col.test.mjs +116 -0
  222. package/dist/col/index.cjs +26 -0
  223. package/dist/col/index.d.ts +5 -0
  224. package/dist/col/index.mjs +5 -0
  225. package/dist/col/src/col.cjs +53 -0
  226. package/dist/col/src/col.css +1833 -0
  227. package/dist/col/src/col.d.ts +74 -0
  228. package/dist/col/src/col.d.vue.ts +189 -0
  229. package/dist/col/src/col.mjs +47 -0
  230. package/dist/col/src/col.vue +1897 -0
  231. package/dist/col/src/col.vue.d.ts +189 -0
  232. package/dist/color-picker/__tests__/color-picker.ssr.test.cjs +34 -0
  233. package/dist/color-picker/__tests__/color-picker.ssr.test.d.ts +1 -0
  234. package/dist/color-picker/__tests__/color-picker.ssr.test.mjs +39 -0
  235. package/dist/color-picker/__tests__/color-picker.test.cjs +227 -0
  236. package/dist/color-picker/__tests__/color-picker.test.d.ts +1 -0
  237. package/dist/color-picker/__tests__/color-picker.test.mjs +176 -0
  238. package/dist/color-picker/index.cjs +26 -0
  239. package/dist/color-picker/index.d.ts +5 -0
  240. package/dist/color-picker/index.mjs +5 -0
  241. package/dist/color-picker/src/alpha-slider.d.vue.ts +10 -0
  242. package/dist/color-picker/src/alpha-slider.vue +78 -0
  243. package/dist/color-picker/src/alpha-slider.vue.d.ts +10 -0
  244. package/dist/color-picker/src/color-picker.cjs +52 -0
  245. package/dist/color-picker/src/color-picker.css +681 -0
  246. package/dist/color-picker/src/color-picker.d.ts +49 -0
  247. package/dist/color-picker/src/color-picker.d.vue.ts +55 -0
  248. package/dist/color-picker/src/color-picker.mjs +46 -0
  249. package/dist/color-picker/src/color-picker.vue +939 -0
  250. package/dist/color-picker/src/color-picker.vue.d.ts +55 -0
  251. package/dist/color-picker/src/hue-slider.d.vue.ts +9 -0
  252. package/dist/color-picker/src/hue-slider.vue +57 -0
  253. package/dist/color-picker/src/hue-slider.vue.d.ts +9 -0
  254. package/dist/color-picker/src/sv-panel.d.vue.ts +11 -0
  255. package/dist/color-picker/src/sv-panel.vue +84 -0
  256. package/dist/color-picker/src/sv-panel.vue.d.ts +11 -0
  257. package/dist/color-picker/src/utils.cjs +167 -0
  258. package/dist/color-picker/src/utils.d.ts +34 -0
  259. package/dist/color-picker/src/utils.mjs +126 -0
  260. package/dist/component.d.ts +166 -0
  261. package/dist/config-provider/__tests__/config-provider.ssr.test.cjs +43 -0
  262. package/dist/config-provider/__tests__/config-provider.ssr.test.d.ts +1 -0
  263. package/dist/config-provider/__tests__/config-provider.ssr.test.mjs +42 -0
  264. package/dist/config-provider/__tests__/config-provider.test.cjs +75 -0
  265. package/dist/config-provider/__tests__/config-provider.test.d.ts +1 -0
  266. package/dist/config-provider/__tests__/config-provider.test.mjs +64 -0
  267. package/dist/config-provider/index.cjs +47 -0
  268. package/dist/config-provider/index.d.ts +71 -0
  269. package/dist/config-provider/index.mjs +7 -0
  270. package/dist/config-provider/src/config-provider.cjs +119 -0
  271. package/dist/config-provider/src/config-provider.d.ts +96 -0
  272. package/dist/config-provider/src/config-provider.mjs +114 -0
  273. package/dist/config-provider/src/locale.cjs +104 -0
  274. package/dist/config-provider/src/locale.d.ts +51 -0
  275. package/dist/config-provider/src/locale.mjs +92 -0
  276. package/dist/container/__tests__/container.ssr.test.cjs +71 -0
  277. package/dist/container/__tests__/container.ssr.test.d.ts +1 -0
  278. package/dist/container/__tests__/container.ssr.test.mjs +50 -0
  279. package/dist/container/__tests__/container.test.cjs +111 -0
  280. package/dist/container/__tests__/container.test.d.ts +1 -0
  281. package/dist/container/__tests__/container.test.mjs +84 -0
  282. package/dist/container/index.cjs +38 -0
  283. package/dist/container/index.d.ts +17 -0
  284. package/dist/container/index.mjs +13 -0
  285. package/dist/container/src/aside.d.vue.ts +15 -0
  286. package/dist/container/src/aside.vue +526 -0
  287. package/dist/container/src/aside.vue.d.ts +15 -0
  288. package/dist/container/src/container.cjs +1 -0
  289. package/dist/container/src/container.css +501 -0
  290. package/dist/container/src/container.d.ts +63 -0
  291. package/dist/container/src/container.d.vue.ts +13 -0
  292. package/dist/container/src/container.mjs +0 -0
  293. package/dist/container/src/container.vue +532 -0
  294. package/dist/container/src/container.vue.d.ts +13 -0
  295. package/dist/container/src/footer.d.vue.ts +15 -0
  296. package/dist/container/src/footer.vue +526 -0
  297. package/dist/container/src/footer.vue.d.ts +15 -0
  298. package/dist/container/src/header.d.vue.ts +15 -0
  299. package/dist/container/src/header.vue +526 -0
  300. package/dist/container/src/header.vue.d.ts +15 -0
  301. package/dist/container/src/main.d.vue.ts +13 -0
  302. package/dist/container/src/main.vue +521 -0
  303. package/dist/container/src/main.vue.d.ts +13 -0
  304. package/dist/countdown/__tests__/countdown.ssr.test.cjs +86 -0
  305. package/dist/countdown/__tests__/countdown.ssr.test.d.ts +1 -0
  306. package/dist/countdown/__tests__/countdown.ssr.test.mjs +78 -0
  307. package/dist/countdown/__tests__/countdown.test.cjs +767 -0
  308. package/dist/countdown/__tests__/countdown.test.d.ts +1 -0
  309. package/dist/countdown/__tests__/countdown.test.mjs +722 -0
  310. package/dist/countdown/index.cjs +26 -0
  311. package/dist/countdown/index.d.ts +5 -0
  312. package/dist/countdown/index.mjs +5 -0
  313. package/dist/countdown/src/countdown.cjs +265 -0
  314. package/dist/countdown/src/countdown.css +635 -0
  315. package/dist/countdown/src/countdown.d.ts +293 -0
  316. package/dist/countdown/src/countdown.d.vue.ts +146 -0
  317. package/dist/countdown/src/countdown.mjs +246 -0
  318. package/dist/countdown/src/countdown.vue +912 -0
  319. package/dist/countdown/src/countdown.vue.d.ts +146 -0
  320. package/dist/date-picker/__tests__/date-picker-extended.test.cjs +581 -0
  321. package/dist/date-picker/__tests__/date-picker-extended.test.d.ts +1 -0
  322. package/dist/date-picker/__tests__/date-picker-extended.test.mjs +455 -0
  323. package/dist/date-picker/__tests__/date-picker.ssr.test.cjs +26 -0
  324. package/dist/date-picker/__tests__/date-picker.ssr.test.d.ts +1 -0
  325. package/dist/date-picker/__tests__/date-picker.ssr.test.mjs +23 -0
  326. package/dist/date-picker/__tests__/date-picker.test.cjs +170 -0
  327. package/dist/date-picker/__tests__/date-picker.test.d.ts +1 -0
  328. package/dist/date-picker/__tests__/date-picker.test.mjs +136 -0
  329. package/dist/date-picker/index.cjs +26 -0
  330. package/dist/date-picker/index.d.ts +5 -0
  331. package/dist/date-picker/index.mjs +5 -0
  332. package/dist/date-picker/src/date-picker.cjs +179 -0
  333. package/dist/date-picker/src/date-picker.css +975 -0
  334. package/dist/date-picker/src/date-picker.d.ts +211 -0
  335. package/dist/date-picker/src/date-picker.d.vue.ts +372 -0
  336. package/dist/date-picker/src/date-picker.mjs +173 -0
  337. package/dist/date-picker/src/date-picker.vue +1467 -0
  338. package/dist/date-picker/src/date-picker.vue.d.ts +372 -0
  339. package/dist/date-picker/src/date-table.d.vue.ts +37 -0
  340. package/dist/date-picker/src/date-table.vue +160 -0
  341. package/dist/date-picker/src/date-table.vue.d.ts +37 -0
  342. package/dist/date-picker/src/month-table.d.vue.ts +19 -0
  343. package/dist/date-picker/src/month-table.vue +88 -0
  344. package/dist/date-picker/src/month-table.vue.d.ts +19 -0
  345. package/dist/date-picker/src/panel-utils.cjs +77 -0
  346. package/dist/date-picker/src/panel-utils.d.ts +39 -0
  347. package/dist/date-picker/src/panel-utils.mjs +67 -0
  348. package/dist/date-picker/src/quarter-table.d.vue.ts +19 -0
  349. package/dist/date-picker/src/quarter-table.vue +87 -0
  350. package/dist/date-picker/src/quarter-table.vue.d.ts +19 -0
  351. package/dist/date-picker/src/year-table.d.vue.ts +19 -0
  352. package/dist/date-picker/src/year-table.vue +85 -0
  353. package/dist/date-picker/src/year-table.vue.d.ts +19 -0
  354. package/dist/descriptions/__tests__/descriptions.ssr.test.cjs +67 -0
  355. package/dist/descriptions/__tests__/descriptions.ssr.test.d.ts +1 -0
  356. package/dist/descriptions/__tests__/descriptions.ssr.test.mjs +72 -0
  357. package/dist/descriptions/__tests__/descriptions.test.cjs +150 -0
  358. package/dist/descriptions/__tests__/descriptions.test.d.ts +1 -0
  359. package/dist/descriptions/__tests__/descriptions.test.mjs +130 -0
  360. package/dist/descriptions/index.cjs +31 -0
  361. package/dist/descriptions/index.d.ts +12 -0
  362. package/dist/descriptions/index.mjs +9 -0
  363. package/dist/descriptions/src/description-item.d.vue.ts +99 -0
  364. package/dist/descriptions/src/description-item.vue +563 -0
  365. package/dist/descriptions/src/description-item.vue.d.ts +99 -0
  366. package/dist/descriptions/src/descriptions.cjs +90 -0
  367. package/dist/descriptions/src/descriptions.css +549 -0
  368. package/dist/descriptions/src/descriptions.d.ts +94 -0
  369. package/dist/descriptions/src/descriptions.d.vue.ts +106 -0
  370. package/dist/descriptions/src/descriptions.mjs +84 -0
  371. package/dist/descriptions/src/descriptions.vue +700 -0
  372. package/dist/descriptions/src/descriptions.vue.d.ts +106 -0
  373. package/dist/dialog/__tests__/dialog.functional.test.cjs +49 -0
  374. package/dist/dialog/__tests__/dialog.functional.test.d.ts +1 -0
  375. package/dist/dialog/__tests__/dialog.functional.test.mjs +49 -0
  376. package/dist/dialog/__tests__/dialog.ssr.test.cjs +31 -0
  377. package/dist/dialog/__tests__/dialog.ssr.test.d.ts +1 -0
  378. package/dist/dialog/__tests__/dialog.ssr.test.mjs +29 -0
  379. package/dist/dialog/__tests__/dialog.test.cjs +561 -0
  380. package/dist/dialog/__tests__/dialog.test.d.ts +1 -0
  381. package/dist/dialog/__tests__/dialog.test.mjs +388 -0
  382. package/dist/dialog/index.cjs +41 -0
  383. package/dist/dialog/index.d.ts +8 -0
  384. package/dist/dialog/index.mjs +8 -0
  385. package/dist/dialog/src/dialog.cjs +219 -0
  386. package/dist/dialog/src/dialog.css +665 -0
  387. package/dist/dialog/src/dialog.d.ts +217 -0
  388. package/dist/dialog/src/dialog.d.vue.ts +217 -0
  389. package/dist/dialog/src/dialog.mjs +213 -0
  390. package/dist/dialog/src/dialog.vue +1028 -0
  391. package/dist/dialog/src/dialog.vue.d.ts +217 -0
  392. package/dist/dialog/src/method.cjs +97 -0
  393. package/dist/dialog/src/method.d.ts +34 -0
  394. package/dist/dialog/src/method.mjs +77 -0
  395. package/dist/dialog/src/use-dialog.cjs +75 -0
  396. package/dist/dialog/src/use-dialog.d.ts +53 -0
  397. package/dist/dialog/src/use-dialog.mjs +66 -0
  398. package/dist/divider/__tests__/divider.ssr.test.cjs +41 -0
  399. package/dist/divider/__tests__/divider.ssr.test.d.ts +1 -0
  400. package/dist/divider/__tests__/divider.ssr.test.mjs +44 -0
  401. package/dist/divider/__tests__/divider.test.cjs +71 -0
  402. package/dist/divider/__tests__/divider.test.d.ts +1 -0
  403. package/dist/divider/__tests__/divider.test.mjs +68 -0
  404. package/dist/divider/index.cjs +26 -0
  405. package/dist/divider/index.d.ts +5 -0
  406. package/dist/divider/index.mjs +5 -0
  407. package/dist/divider/src/divider.cjs +38 -0
  408. package/dist/divider/src/divider.css +498 -0
  409. package/dist/divider/src/divider.d.ts +34 -0
  410. package/dist/divider/src/divider.d.vue.ts +69 -0
  411. package/dist/divider/src/divider.mjs +32 -0
  412. package/dist/divider/src/divider.vue +538 -0
  413. package/dist/divider/src/divider.vue.d.ts +69 -0
  414. package/dist/drawer/__tests__/drawer.ssr.test.cjs +25 -0
  415. package/dist/drawer/__tests__/drawer.ssr.test.d.ts +1 -0
  416. package/dist/drawer/__tests__/drawer.ssr.test.mjs +23 -0
  417. package/dist/drawer/__tests__/drawer.test.cjs +145 -0
  418. package/dist/drawer/__tests__/drawer.test.d.ts +1 -0
  419. package/dist/drawer/__tests__/drawer.test.mjs +122 -0
  420. package/dist/drawer/index.cjs +26 -0
  421. package/dist/drawer/index.d.ts +5 -0
  422. package/dist/drawer/index.mjs +5 -0
  423. package/dist/drawer/src/drawer.cjs +140 -0
  424. package/dist/drawer/src/drawer.css +647 -0
  425. package/dist/drawer/src/drawer.d.ts +139 -0
  426. package/dist/drawer/src/drawer.d.vue.ts +141 -0
  427. package/dist/drawer/src/drawer.mjs +134 -0
  428. package/dist/drawer/src/drawer.vue +849 -0
  429. package/dist/drawer/src/drawer.vue.d.ts +141 -0
  430. package/dist/dropdown/__tests__/dropdown.ssr.test.cjs +49 -0
  431. package/dist/dropdown/__tests__/dropdown.ssr.test.d.ts +1 -0
  432. package/dist/dropdown/__tests__/dropdown.ssr.test.mjs +64 -0
  433. package/dist/dropdown/__tests__/dropdown.test.cjs +310 -0
  434. package/dist/dropdown/__tests__/dropdown.test.d.ts +1 -0
  435. package/dist/dropdown/__tests__/dropdown.test.mjs +269 -0
  436. package/dist/dropdown/index.cjs +32 -0
  437. package/dist/dropdown/index.d.ts +11 -0
  438. package/dist/dropdown/index.mjs +9 -0
  439. package/dist/dropdown/src/dropdown-item.d.vue.ts +78 -0
  440. package/dist/dropdown/src/dropdown-item.vue +729 -0
  441. package/dist/dropdown/src/dropdown-item.vue.d.ts +78 -0
  442. package/dist/dropdown/src/dropdown-menu.d.vue.ts +24 -0
  443. package/dist/dropdown/src/dropdown-menu.vue +711 -0
  444. package/dist/dropdown/src/dropdown-menu.vue.d.ts +24 -0
  445. package/dist/dropdown/src/dropdown.cjs +194 -0
  446. package/dist/dropdown/src/dropdown.css +690 -0
  447. package/dist/dropdown/src/dropdown.d.ts +219 -0
  448. package/dist/dropdown/src/dropdown.d.vue.ts +158 -0
  449. package/dist/dropdown/src/dropdown.mjs +188 -0
  450. package/dist/dropdown/src/dropdown.vue +876 -0
  451. package/dist/dropdown/src/dropdown.vue.d.ts +158 -0
  452. package/dist/empty/__tests__/empty.ssr.test.cjs +96 -0
  453. package/dist/empty/__tests__/empty.ssr.test.d.ts +1 -0
  454. package/dist/empty/__tests__/empty.ssr.test.mjs +99 -0
  455. package/dist/empty/__tests__/empty.test.cjs +110 -0
  456. package/dist/empty/__tests__/empty.test.d.ts +1 -0
  457. package/dist/empty/__tests__/empty.test.mjs +101 -0
  458. package/dist/empty/index.cjs +11 -0
  459. package/dist/empty/index.d.ts +3 -0
  460. package/dist/empty/index.mjs +4 -0
  461. package/dist/empty/src/empty.cjs +1 -0
  462. package/dist/empty/src/empty.css +491 -0
  463. package/dist/empty/src/empty.d.ts +37 -0
  464. package/dist/empty/src/empty.d.vue.ts +19 -0
  465. package/dist/empty/src/empty.mjs +0 -0
  466. package/dist/empty/src/empty.vue +568 -0
  467. package/dist/empty/src/empty.vue.d.ts +19 -0
  468. package/dist/env.d.ts +5 -0
  469. package/dist/form/__tests__/form-schema.test.cjs +183 -0
  470. package/dist/form/__tests__/form-schema.test.d.ts +1 -0
  471. package/dist/form/__tests__/form-schema.test.mjs +146 -0
  472. package/dist/form/__tests__/form.ssr.test.cjs +74 -0
  473. package/dist/form/__tests__/form.ssr.test.d.ts +1 -0
  474. package/dist/form/__tests__/form.ssr.test.mjs +73 -0
  475. package/dist/form/__tests__/form.test.cjs +208 -0
  476. package/dist/form/__tests__/form.test.d.ts +1 -0
  477. package/dist/form/__tests__/form.test.mjs +128 -0
  478. package/dist/form/index.cjs +45 -0
  479. package/dist/form/index.d.ts +13 -0
  480. package/dist/form/index.mjs +11 -0
  481. package/dist/form/src/form-item.cjs +104 -0
  482. package/dist/form/src/form-item.d.ts +104 -0
  483. package/dist/form/src/form-item.d.vue.ts +143 -0
  484. package/dist/form/src/form-item.mjs +93 -0
  485. package/dist/form/src/form-item.vue +969 -0
  486. package/dist/form/src/form-item.vue.d.ts +143 -0
  487. package/dist/form/src/form-schema.cjs +37 -0
  488. package/dist/form/src/form-schema.d.ts +83 -0
  489. package/dist/form/src/form-schema.d.vue.ts +66 -0
  490. package/dist/form/src/form-schema.mjs +31 -0
  491. package/dist/form/src/form-schema.vue +320 -0
  492. package/dist/form/src/form-schema.vue.d.ts +66 -0
  493. package/dist/form/src/form.cjs +111 -0
  494. package/dist/form/src/form.css +757 -0
  495. package/dist/form/src/form.d.ts +137 -0
  496. package/dist/form/src/form.d.vue.ts +149 -0
  497. package/dist/form/src/form.mjs +100 -0
  498. package/dist/form/src/form.vue +869 -0
  499. package/dist/form/src/form.vue.d.ts +149 -0
  500. package/dist/grid/__tests__/grid.ssr.test.cjs +81 -0
  501. package/dist/grid/__tests__/grid.ssr.test.d.ts +1 -0
  502. package/dist/grid/__tests__/grid.ssr.test.mjs +63 -0
  503. package/dist/grid/__tests__/grid.test.cjs +142 -0
  504. package/dist/grid/__tests__/grid.test.d.ts +1 -0
  505. package/dist/grid/__tests__/grid.test.mjs +89 -0
  506. package/dist/grid/index.cjs +29 -0
  507. package/dist/grid/index.d.ts +8 -0
  508. package/dist/grid/index.mjs +7 -0
  509. package/dist/grid/src/grid-item.d.vue.ts +17 -0
  510. package/dist/grid/src/grid-item.vue +47 -0
  511. package/dist/grid/src/grid-item.vue.d.ts +17 -0
  512. package/dist/grid/src/grid.cjs +1 -0
  513. package/dist/grid/src/grid.css +468 -0
  514. package/dist/grid/src/grid.d.ts +76 -0
  515. package/dist/grid/src/grid.d.vue.ts +20 -0
  516. package/dist/grid/src/grid.mjs +0 -0
  517. package/dist/grid/src/grid.vue +529 -0
  518. package/dist/grid/src/grid.vue.d.ts +20 -0
  519. package/dist/icon/__tests__/icon.ssr.test.cjs +35 -0
  520. package/dist/icon/__tests__/icon.ssr.test.d.ts +1 -0
  521. package/dist/icon/__tests__/icon.ssr.test.mjs +26 -0
  522. package/dist/icon/__tests__/icon.test.cjs +144 -0
  523. package/dist/icon/__tests__/icon.test.d.ts +1 -0
  524. package/dist/icon/__tests__/icon.test.mjs +123 -0
  525. package/dist/icon/index.cjs +39 -0
  526. package/dist/icon/index.d.ts +149 -0
  527. package/dist/icon/index.mjs +7 -0
  528. package/dist/icon/src/icon.cjs +95 -0
  529. package/dist/icon/src/icon.css +495 -0
  530. package/dist/icon/src/icon.d.ts +134 -0
  531. package/dist/icon/src/icon.d.vue.ts +87 -0
  532. package/dist/icon/src/icon.mjs +84 -0
  533. package/dist/icon/src/icon.vue +594 -0
  534. package/dist/icon/src/icon.vue.d.ts +87 -0
  535. package/dist/icon/src/icons/index.cjs +210 -0
  536. package/dist/icon/src/icons/index.d.ts +47 -0
  537. package/dist/icon/src/icons/index.mjs +245 -0
  538. package/dist/image/__tests__/image-viewer.test.cjs +101 -0
  539. package/dist/image/__tests__/image-viewer.test.d.ts +1 -0
  540. package/dist/image/__tests__/image-viewer.test.mjs +94 -0
  541. package/dist/image/__tests__/image.ssr.test.cjs +73 -0
  542. package/dist/image/__tests__/image.ssr.test.d.ts +1 -0
  543. package/dist/image/__tests__/image.ssr.test.mjs +72 -0
  544. package/dist/image/__tests__/image.test.cjs +171 -0
  545. package/dist/image/__tests__/image.test.d.ts +1 -0
  546. package/dist/image/__tests__/image.test.mjs +159 -0
  547. package/dist/image/index.cjs +41 -0
  548. package/dist/image/index.d.ts +13 -0
  549. package/dist/image/index.mjs +8 -0
  550. package/dist/image/src/image-viewer.cjs +89 -0
  551. package/dist/image/src/image-viewer.d.ts +90 -0
  552. package/dist/image/src/image-viewer.d.vue.ts +60 -0
  553. package/dist/image/src/image-viewer.mjs +83 -0
  554. package/dist/image/src/image-viewer.vue +805 -0
  555. package/dist/image/src/image-viewer.vue.d.ts +60 -0
  556. package/dist/image/src/image.cjs +131 -0
  557. package/dist/image/src/image.css +611 -0
  558. package/dist/image/src/image.d.ts +139 -0
  559. package/dist/image/src/image.d.vue.ts +178 -0
  560. package/dist/image/src/image.mjs +125 -0
  561. package/dist/image/src/image.vue +830 -0
  562. package/dist/image/src/image.vue.d.ts +178 -0
  563. package/dist/index.cjs +834 -0
  564. package/dist/index.d.ts +86 -0
  565. package/dist/index.mjs +255 -0
  566. package/dist/infinite-scroll/__tests__/infinite-scroll.ssr.test.cjs +59 -0
  567. package/dist/infinite-scroll/__tests__/infinite-scroll.ssr.test.d.ts +1 -0
  568. package/dist/infinite-scroll/__tests__/infinite-scroll.ssr.test.mjs +84 -0
  569. package/dist/infinite-scroll/__tests__/infinite-scroll.test.cjs +255 -0
  570. package/dist/infinite-scroll/__tests__/infinite-scroll.test.d.ts +1 -0
  571. package/dist/infinite-scroll/__tests__/infinite-scroll.test.mjs +187 -0
  572. package/dist/infinite-scroll/index.cjs +42 -0
  573. package/dist/infinite-scroll/index.d.ts +7 -0
  574. package/dist/infinite-scroll/index.mjs +10 -0
  575. package/dist/infinite-scroll/src/directive.cjs +85 -0
  576. package/dist/infinite-scroll/src/directive.d.ts +2 -0
  577. package/dist/infinite-scroll/src/directive.mjs +84 -0
  578. package/dist/infinite-scroll/src/infinite-scroll.cjs +86 -0
  579. package/dist/infinite-scroll/src/infinite-scroll.css +524 -0
  580. package/dist/infinite-scroll/src/infinite-scroll.d.ts +84 -0
  581. package/dist/infinite-scroll/src/infinite-scroll.d.vue.ts +95 -0
  582. package/dist/infinite-scroll/src/infinite-scroll.mjs +80 -0
  583. package/dist/infinite-scroll/src/infinite-scroll.vue +717 -0
  584. package/dist/infinite-scroll/src/infinite-scroll.vue.d.ts +95 -0
  585. package/dist/input/__tests__/input-utils.test.cjs +77 -0
  586. package/dist/input/__tests__/input-utils.test.d.ts +1 -0
  587. package/dist/input/__tests__/input-utils.test.mjs +75 -0
  588. package/dist/input/__tests__/input.ssr.test.cjs +100 -0
  589. package/dist/input/__tests__/input.ssr.test.d.ts +1 -0
  590. package/dist/input/__tests__/input.ssr.test.mjs +85 -0
  591. package/dist/input/__tests__/input.test.cjs +127 -0
  592. package/dist/input/__tests__/input.test.d.ts +1 -0
  593. package/dist/input/__tests__/input.test.mjs +112 -0
  594. package/dist/input/index.cjs +26 -0
  595. package/dist/input/index.d.ts +182 -0
  596. package/dist/input/index.mjs +5 -0
  597. package/dist/input/src/input.cjs +10 -0
  598. package/dist/input/src/input.css +805 -0
  599. package/dist/input/src/input.d.ts +280 -0
  600. package/dist/input/src/input.d.vue.ts +76 -0
  601. package/dist/input/src/input.mjs +13 -0
  602. package/dist/input/src/input.vue +1312 -0
  603. package/dist/input/src/input.vue.d.ts +76 -0
  604. package/dist/input/src/utils.cjs +75 -0
  605. package/dist/input/src/utils.d.ts +4 -0
  606. package/dist/input/src/utils.mjs +74 -0
  607. package/dist/input-number/__tests__/input-number.hydration.test.cjs +24 -0
  608. package/dist/input-number/__tests__/input-number.hydration.test.d.ts +1 -0
  609. package/dist/input-number/__tests__/input-number.hydration.test.mjs +21 -0
  610. package/dist/input-number/__tests__/input-number.ssr.test.cjs +95 -0
  611. package/dist/input-number/__tests__/input-number.ssr.test.d.ts +1 -0
  612. package/dist/input-number/__tests__/input-number.ssr.test.mjs +92 -0
  613. package/dist/input-number/__tests__/input-number.test.cjs +199 -0
  614. package/dist/input-number/__tests__/input-number.test.d.ts +1 -0
  615. package/dist/input-number/__tests__/input-number.test.mjs +173 -0
  616. package/dist/input-number/index.cjs +26 -0
  617. package/dist/input-number/index.d.ts +117 -0
  618. package/dist/input-number/index.mjs +5 -0
  619. package/dist/input-number/src/input-number.cjs +8 -0
  620. package/dist/input-number/src/input-number.css +790 -0
  621. package/dist/input-number/src/input-number.d.ts +175 -0
  622. package/dist/input-number/src/input-number.d.vue.ts +50 -0
  623. package/dist/input-number/src/input-number.mjs +2 -0
  624. package/dist/input-number/src/input-number.vue +1089 -0
  625. package/dist/input-number/src/input-number.vue.d.ts +50 -0
  626. package/dist/input-tag/__tests__/input-tag.ssr.test.cjs +47 -0
  627. package/dist/input-tag/__tests__/input-tag.ssr.test.d.ts +1 -0
  628. package/dist/input-tag/__tests__/input-tag.ssr.test.mjs +41 -0
  629. package/dist/input-tag/__tests__/input-tag.test.cjs +268 -0
  630. package/dist/input-tag/__tests__/input-tag.test.d.ts +1 -0
  631. package/dist/input-tag/__tests__/input-tag.test.mjs +201 -0
  632. package/dist/input-tag/index.cjs +26 -0
  633. package/dist/input-tag/index.d.ts +9 -0
  634. package/dist/input-tag/index.mjs +5 -0
  635. package/dist/input-tag/src/input-tag.cjs +8 -0
  636. package/dist/input-tag/src/input-tag.css +830 -0
  637. package/dist/input-tag/src/input-tag.d.ts +199 -0
  638. package/dist/input-tag/src/input-tag.d.vue.ts +71 -0
  639. package/dist/input-tag/src/input-tag.mjs +2 -0
  640. package/dist/input-tag/src/input-tag.vue +1213 -0
  641. package/dist/input-tag/src/input-tag.vue.d.ts +71 -0
  642. package/dist/loading/__tests__/loading.ssr.test.cjs +37 -0
  643. package/dist/loading/__tests__/loading.ssr.test.d.ts +1 -0
  644. package/dist/loading/__tests__/loading.ssr.test.mjs +27 -0
  645. package/dist/loading/__tests__/loading.test.cjs +91 -0
  646. package/dist/loading/__tests__/loading.test.d.ts +1 -0
  647. package/dist/loading/__tests__/loading.test.mjs +75 -0
  648. package/dist/loading/index.cjs +45 -0
  649. package/dist/loading/index.d.ts +11 -0
  650. package/dist/loading/index.mjs +15 -0
  651. package/dist/loading/src/directive.cjs +54 -0
  652. package/dist/loading/src/directive.d.ts +6 -0
  653. package/dist/loading/src/directive.mjs +48 -0
  654. package/dist/loading/src/loading.css +520 -0
  655. package/dist/loading/src/service.cjs +99 -0
  656. package/dist/loading/src/service.d.ts +25 -0
  657. package/dist/loading/src/service.mjs +109 -0
  658. package/dist/marquee/__tests__/marquee.ssr.test.cjs +59 -0
  659. package/dist/marquee/__tests__/marquee.ssr.test.d.ts +1 -0
  660. package/dist/marquee/__tests__/marquee.ssr.test.mjs +60 -0
  661. package/dist/marquee/__tests__/marquee.test.cjs +94 -0
  662. package/dist/marquee/__tests__/marquee.test.d.ts +1 -0
  663. package/dist/marquee/__tests__/marquee.test.mjs +92 -0
  664. package/dist/marquee/index.cjs +26 -0
  665. package/dist/marquee/index.d.ts +5 -0
  666. package/dist/marquee/index.mjs +5 -0
  667. package/dist/marquee/src/marquee.cjs +99 -0
  668. package/dist/marquee/src/marquee.css +551 -0
  669. package/dist/marquee/src/marquee.d.ts +97 -0
  670. package/dist/marquee/src/marquee.d.vue.ts +109 -0
  671. package/dist/marquee/src/marquee.mjs +93 -0
  672. package/dist/marquee/src/marquee.vue +666 -0
  673. package/dist/marquee/src/marquee.vue.d.ts +109 -0
  674. package/dist/mention/__tests__/mention.ssr.test.cjs +92 -0
  675. package/dist/mention/__tests__/mention.ssr.test.d.ts +1 -0
  676. package/dist/mention/__tests__/mention.ssr.test.mjs +70 -0
  677. package/dist/mention/__tests__/mention.test.cjs +650 -0
  678. package/dist/mention/__tests__/mention.test.d.ts +1 -0
  679. package/dist/mention/__tests__/mention.test.mjs +523 -0
  680. package/dist/mention/index.cjs +26 -0
  681. package/dist/mention/index.d.ts +9 -0
  682. package/dist/mention/index.mjs +5 -0
  683. package/dist/mention/src/mention.cjs +9 -0
  684. package/dist/mention/src/mention.css +713 -0
  685. package/dist/mention/src/mention.d.ts +248 -0
  686. package/dist/mention/src/mention.d.vue.ts +84 -0
  687. package/dist/mention/src/mention.mjs +3 -0
  688. package/dist/mention/src/mention.vue +1197 -0
  689. package/dist/mention/src/mention.vue.d.ts +84 -0
  690. package/dist/menu/__tests__/menu.ssr.test.cjs +92 -0
  691. package/dist/menu/__tests__/menu.ssr.test.d.ts +1 -0
  692. package/dist/menu/__tests__/menu.ssr.test.mjs +124 -0
  693. package/dist/menu/__tests__/menu.test.cjs +209 -0
  694. package/dist/menu/__tests__/menu.test.d.ts +1 -0
  695. package/dist/menu/__tests__/menu.test.mjs +182 -0
  696. package/dist/menu/index.cjs +35 -0
  697. package/dist/menu/index.d.ts +14 -0
  698. package/dist/menu/index.mjs +11 -0
  699. package/dist/menu/src/menu-item-group.d.vue.ts +26 -0
  700. package/dist/menu/src/menu-item-group.vue +877 -0
  701. package/dist/menu/src/menu-item-group.vue.d.ts +26 -0
  702. package/dist/menu/src/menu-item.d.vue.ts +52 -0
  703. package/dist/menu/src/menu-item.vue +964 -0
  704. package/dist/menu/src/menu-item.vue.d.ts +52 -0
  705. package/dist/menu/src/menu-recursive-item.d.vue.ts +6 -0
  706. package/dist/menu/src/menu-recursive-item.vue +901 -0
  707. package/dist/menu/src/menu-recursive-item.vue.d.ts +6 -0
  708. package/dist/menu/src/menu.cjs +276 -0
  709. package/dist/menu/src/menu.css +854 -0
  710. package/dist/menu/src/menu.d.ts +339 -0
  711. package/dist/menu/src/menu.d.vue.ts +209 -0
  712. package/dist/menu/src/menu.mjs +270 -0
  713. package/dist/menu/src/menu.vue +998 -0
  714. package/dist/menu/src/menu.vue.d.ts +209 -0
  715. package/dist/menu/src/sub-menu.d.vue.ts +87 -0
  716. package/dist/menu/src/sub-menu.vue +1163 -0
  717. package/dist/menu/src/sub-menu.vue.d.ts +87 -0
  718. package/dist/message/__tests__/message.ssr.test.cjs +29 -0
  719. package/dist/message/__tests__/message.ssr.test.d.ts +1 -0
  720. package/dist/message/__tests__/message.ssr.test.mjs +23 -0
  721. package/dist/message/__tests__/message.test.cjs +170 -0
  722. package/dist/message/__tests__/message.test.d.ts +1 -0
  723. package/dist/message/__tests__/message.test.mjs +154 -0
  724. package/dist/message/index.cjs +25 -0
  725. package/dist/message/index.d.ts +3 -0
  726. package/dist/message/index.mjs +4 -0
  727. package/dist/message/src/message.cjs +8 -0
  728. package/dist/message/src/message.css +628 -0
  729. package/dist/message/src/message.d.ts +146 -0
  730. package/dist/message/src/message.d.vue.ts +32 -0
  731. package/dist/message/src/message.mjs +9 -0
  732. package/dist/message/src/message.vue +824 -0
  733. package/dist/message/src/message.vue.d.ts +32 -0
  734. package/dist/message/src/method.cjs +158 -0
  735. package/dist/message/src/method.d.ts +9 -0
  736. package/dist/message/src/method.mjs +129 -0
  737. package/dist/message-box/__tests__/message-box.ssr.test.cjs +33 -0
  738. package/dist/message-box/__tests__/message-box.ssr.test.d.ts +1 -0
  739. package/dist/message-box/__tests__/message-box.ssr.test.mjs +30 -0
  740. package/dist/message-box/__tests__/message-box.test.cjs +100 -0
  741. package/dist/message-box/__tests__/message-box.test.d.ts +1 -0
  742. package/dist/message-box/__tests__/message-box.test.mjs +95 -0
  743. package/dist/message-box/index.cjs +36 -0
  744. package/dist/message-box/index.d.ts +4 -0
  745. package/dist/message-box/index.mjs +15 -0
  746. package/dist/message-box/src/message-box.cjs +1 -0
  747. package/dist/message-box/src/message-box.css +745 -0
  748. package/dist/message-box/src/message-box.d.ts +100 -0
  749. package/dist/message-box/src/message-box.d.vue.ts +17 -0
  750. package/dist/message-box/src/message-box.mjs +0 -0
  751. package/dist/message-box/src/message-box.vue +1148 -0
  752. package/dist/message-box/src/message-box.vue.d.ts +17 -0
  753. package/dist/message-box/src/method.cjs +122 -0
  754. package/dist/message-box/src/method.d.ts +3 -0
  755. package/dist/message-box/src/method.mjs +95 -0
  756. package/dist/notification/__tests__/notification.ssr.test.cjs +31 -0
  757. package/dist/notification/__tests__/notification.ssr.test.d.ts +1 -0
  758. package/dist/notification/__tests__/notification.ssr.test.mjs +25 -0
  759. package/dist/notification/__tests__/notification.test.cjs +248 -0
  760. package/dist/notification/__tests__/notification.test.d.ts +1 -0
  761. package/dist/notification/__tests__/notification.test.mjs +206 -0
  762. package/dist/notification/index.cjs +25 -0
  763. package/dist/notification/index.d.ts +3 -0
  764. package/dist/notification/index.mjs +4 -0
  765. package/dist/notification/src/method.cjs +181 -0
  766. package/dist/notification/src/method.d.ts +8 -0
  767. package/dist/notification/src/method.mjs +136 -0
  768. package/dist/notification/src/notification.cjs +8 -0
  769. package/dist/notification/src/notification.css +640 -0
  770. package/dist/notification/src/notification.d.ts +147 -0
  771. package/dist/notification/src/notification.d.vue.ts +30 -0
  772. package/dist/notification/src/notification.mjs +9 -0
  773. package/dist/notification/src/notification.vue +871 -0
  774. package/dist/notification/src/notification.vue.d.ts +30 -0
  775. package/dist/pagination/__tests__/pagination.ssr.test.cjs +61 -0
  776. package/dist/pagination/__tests__/pagination.ssr.test.d.ts +1 -0
  777. package/dist/pagination/__tests__/pagination.ssr.test.mjs +59 -0
  778. package/dist/pagination/__tests__/pagination.test.cjs +135 -0
  779. package/dist/pagination/__tests__/pagination.test.d.ts +1 -0
  780. package/dist/pagination/__tests__/pagination.test.mjs +131 -0
  781. package/dist/pagination/index.cjs +26 -0
  782. package/dist/pagination/index.d.ts +268 -0
  783. package/dist/pagination/index.mjs +5 -0
  784. package/dist/pagination/src/pagination.cjs +110 -0
  785. package/dist/pagination/src/pagination.css +696 -0
  786. package/dist/pagination/src/pagination.d.ts +133 -0
  787. package/dist/pagination/src/pagination.d.vue.ts +149 -0
  788. package/dist/pagination/src/pagination.mjs +112 -0
  789. package/dist/pagination/src/pagination.vue +885 -0
  790. package/dist/pagination/src/pagination.vue.d.ts +149 -0
  791. package/dist/popconfirm/__tests__/popconfirm.ssr.test.cjs +48 -0
  792. package/dist/popconfirm/__tests__/popconfirm.ssr.test.d.ts +1 -0
  793. package/dist/popconfirm/__tests__/popconfirm.ssr.test.mjs +63 -0
  794. package/dist/popconfirm/__tests__/popconfirm.test.cjs +62 -0
  795. package/dist/popconfirm/__tests__/popconfirm.test.d.ts +1 -0
  796. package/dist/popconfirm/__tests__/popconfirm.test.mjs +56 -0
  797. package/dist/popconfirm/index.cjs +26 -0
  798. package/dist/popconfirm/index.d.ts +4 -0
  799. package/dist/popconfirm/index.mjs +5 -0
  800. package/dist/popconfirm/src/instance.cjs +1 -0
  801. package/dist/popconfirm/src/instance.d.ts +2 -0
  802. package/dist/popconfirm/src/instance.mjs +0 -0
  803. package/dist/popconfirm/src/popconfirm.cjs +135 -0
  804. package/dist/popconfirm/src/popconfirm.css +508 -0
  805. package/dist/popconfirm/src/popconfirm.d.ts +133 -0
  806. package/dist/popconfirm/src/popconfirm.d.vue.ts +148 -0
  807. package/dist/popconfirm/src/popconfirm.mjs +129 -0
  808. package/dist/popconfirm/src/popconfirm.vue +671 -0
  809. package/dist/popconfirm/src/popconfirm.vue.d.ts +148 -0
  810. package/dist/popover/__tests__/popover.ssr.test.cjs +48 -0
  811. package/dist/popover/__tests__/popover.ssr.test.d.ts +1 -0
  812. package/dist/popover/__tests__/popover.ssr.test.mjs +63 -0
  813. package/dist/popover/__tests__/popover.test.cjs +107 -0
  814. package/dist/popover/__tests__/popover.test.d.ts +1 -0
  815. package/dist/popover/__tests__/popover.test.mjs +93 -0
  816. package/dist/popover/index.cjs +26 -0
  817. package/dist/popover/index.d.ts +5 -0
  818. package/dist/popover/index.mjs +5 -0
  819. package/dist/popover/src/popover.cjs +129 -0
  820. package/dist/popover/src/popover.css +532 -0
  821. package/dist/popover/src/popover.d.ts +128 -0
  822. package/dist/popover/src/popover.d.vue.ts +140 -0
  823. package/dist/popover/src/popover.mjs +123 -0
  824. package/dist/popover/src/popover.vue +673 -0
  825. package/dist/popover/src/popover.vue.d.ts +140 -0
  826. package/dist/progress/__tests__/progress.ssr.test.cjs +31 -0
  827. package/dist/progress/__tests__/progress.ssr.test.d.ts +1 -0
  828. package/dist/progress/__tests__/progress.ssr.test.mjs +29 -0
  829. package/dist/progress/__tests__/progress.test.cjs +119 -0
  830. package/dist/progress/__tests__/progress.test.d.ts +1 -0
  831. package/dist/progress/__tests__/progress.test.mjs +77 -0
  832. package/dist/progress/index.cjs +26 -0
  833. package/dist/progress/index.d.ts +5 -0
  834. package/dist/progress/index.mjs +5 -0
  835. package/dist/progress/src/progress.cjs +108 -0
  836. package/dist/progress/src/progress.css +721 -0
  837. package/dist/progress/src/progress.d.ts +106 -0
  838. package/dist/progress/src/progress.d.vue.ts +199 -0
  839. package/dist/progress/src/progress.mjs +102 -0
  840. package/dist/progress/src/progress.vue +1007 -0
  841. package/dist/progress/src/progress.vue.d.ts +199 -0
  842. package/dist/radio/__tests__/radio-button.test.cjs +99 -0
  843. package/dist/radio/__tests__/radio-button.test.d.ts +1 -0
  844. package/dist/radio/__tests__/radio-button.test.mjs +83 -0
  845. package/dist/radio/__tests__/radio.ssr.test.cjs +132 -0
  846. package/dist/radio/__tests__/radio.ssr.test.d.ts +1 -0
  847. package/dist/radio/__tests__/radio.ssr.test.mjs +165 -0
  848. package/dist/radio/__tests__/radio.test.cjs +170 -0
  849. package/dist/radio/__tests__/radio.test.d.ts +1 -0
  850. package/dist/radio/__tests__/radio.test.mjs +143 -0
  851. package/dist/radio/index.cjs +32 -0
  852. package/dist/radio/index.d.ts +15 -0
  853. package/dist/radio/index.mjs +9 -0
  854. package/dist/radio/src/radio-button.css +577 -0
  855. package/dist/radio/src/radio-button.d.vue.ts +25 -0
  856. package/dist/radio/src/radio-button.vue +680 -0
  857. package/dist/radio/src/radio-button.vue.d.ts +25 -0
  858. package/dist/radio/src/radio-group.css +458 -0
  859. package/dist/radio/src/radio-group.d.vue.ts +23 -0
  860. package/dist/radio/src/radio-group.vue +534 -0
  861. package/dist/radio/src/radio-group.vue.d.ts +23 -0
  862. package/dist/radio/src/radio.cjs +8 -0
  863. package/dist/radio/src/radio.css +548 -0
  864. package/dist/radio/src/radio.d.ts +230 -0
  865. package/dist/radio/src/radio.d.vue.ts +26 -0
  866. package/dist/radio/src/radio.mjs +2 -0
  867. package/dist/radio/src/radio.vue +653 -0
  868. package/dist/radio/src/radio.vue.d.ts +26 -0
  869. package/dist/rate/__tests__/rate.ssr.test.cjs +106 -0
  870. package/dist/rate/__tests__/rate.ssr.test.d.ts +1 -0
  871. package/dist/rate/__tests__/rate.ssr.test.mjs +103 -0
  872. package/dist/rate/__tests__/rate.test.cjs +88 -0
  873. package/dist/rate/__tests__/rate.test.d.ts +1 -0
  874. package/dist/rate/__tests__/rate.test.mjs +85 -0
  875. package/dist/rate/index.cjs +26 -0
  876. package/dist/rate/index.d.ts +5 -0
  877. package/dist/rate/index.mjs +5 -0
  878. package/dist/rate/src/rate.cjs +92 -0
  879. package/dist/rate/src/rate.css +519 -0
  880. package/dist/rate/src/rate.d.ts +82 -0
  881. package/dist/rate/src/rate.d.vue.ts +109 -0
  882. package/dist/rate/src/rate.mjs +86 -0
  883. package/dist/rate/src/rate.vue +670 -0
  884. package/dist/rate/src/rate.vue.d.ts +109 -0
  885. package/dist/resolver.cjs +25 -0
  886. package/dist/resolver.d.ts +35 -0
  887. package/dist/resolver.mjs +16 -0
  888. package/dist/result/__tests__/result.ssr.test.cjs +62 -0
  889. package/dist/result/__tests__/result.ssr.test.d.ts +1 -0
  890. package/dist/result/__tests__/result.ssr.test.mjs +51 -0
  891. package/dist/result/__tests__/result.test.cjs +135 -0
  892. package/dist/result/__tests__/result.test.d.ts +1 -0
  893. package/dist/result/__tests__/result.test.mjs +92 -0
  894. package/dist/result/index.cjs +26 -0
  895. package/dist/result/index.d.ts +5 -0
  896. package/dist/result/index.mjs +5 -0
  897. package/dist/result/src/result.cjs +1 -0
  898. package/dist/result/src/result.css +511 -0
  899. package/dist/result/src/result.d.ts +37 -0
  900. package/dist/result/src/result.d.vue.ts +23 -0
  901. package/dist/result/src/result.mjs +0 -0
  902. package/dist/result/src/result.vue +576 -0
  903. package/dist/result/src/result.vue.d.ts +23 -0
  904. package/dist/row/__tests__/row.ssr.test.cjs +29 -0
  905. package/dist/row/__tests__/row.ssr.test.d.ts +1 -0
  906. package/dist/row/__tests__/row.ssr.test.mjs +30 -0
  907. package/dist/row/__tests__/row.test.cjs +89 -0
  908. package/dist/row/__tests__/row.test.d.ts +1 -0
  909. package/dist/row/__tests__/row.test.mjs +86 -0
  910. package/dist/row/__tests__/row_ts.test.cjs +31 -0
  911. package/dist/row/__tests__/row_ts.test.d.ts +1 -0
  912. package/dist/row/__tests__/row_ts.test.mjs +28 -0
  913. package/dist/row/index.cjs +26 -0
  914. package/dist/row/index.d.ts +5 -0
  915. package/dist/row/index.mjs +5 -0
  916. package/dist/row/src/row.cjs +64 -0
  917. package/dist/row/src/row.css +484 -0
  918. package/dist/row/src/row.d.ts +83 -0
  919. package/dist/row/src/row.d.vue.ts +60 -0
  920. package/dist/row/src/row.mjs +65 -0
  921. package/dist/row/src/row.vue +528 -0
  922. package/dist/row/src/row.vue.d.ts +60 -0
  923. package/dist/select/__tests__/select.perf.test.cjs +191 -0
  924. package/dist/select/__tests__/select.perf.test.d.ts +1 -0
  925. package/dist/select/__tests__/select.perf.test.mjs +185 -0
  926. package/dist/select/__tests__/select.ssr.test.cjs +58 -0
  927. package/dist/select/__tests__/select.ssr.test.d.ts +1 -0
  928. package/dist/select/__tests__/select.ssr.test.mjs +52 -0
  929. package/dist/select/__tests__/select.test.cjs +414 -0
  930. package/dist/select/__tests__/select.test.d.ts +1 -0
  931. package/dist/select/__tests__/select.test.mjs +345 -0
  932. package/dist/select/index.cjs +29 -0
  933. package/dist/select/index.d.ts +12 -0
  934. package/dist/select/index.mjs +7 -0
  935. package/dist/select/src/option.d.vue.ts +15 -0
  936. package/dist/select/src/option.vue +783 -0
  937. package/dist/select/src/option.vue.d.ts +15 -0
  938. package/dist/select/src/select.cjs +7 -0
  939. package/dist/select/src/select.css +743 -0
  940. package/dist/select/src/select.d.ts +125 -0
  941. package/dist/select/src/select.d.vue.ts +68 -0
  942. package/dist/select/src/select.mjs +1 -0
  943. package/dist/select/src/select.vue +1344 -0
  944. package/dist/select/src/select.vue.d.ts +68 -0
  945. package/dist/skeleton/__tests__/skeleton.ssr.test.cjs +81 -0
  946. package/dist/skeleton/__tests__/skeleton.ssr.test.d.ts +1 -0
  947. package/dist/skeleton/__tests__/skeleton.ssr.test.mjs +83 -0
  948. package/dist/skeleton/__tests__/skeleton.test.cjs +72 -0
  949. package/dist/skeleton/__tests__/skeleton.test.d.ts +1 -0
  950. package/dist/skeleton/__tests__/skeleton.test.mjs +65 -0
  951. package/dist/skeleton/index.cjs +29 -0
  952. package/dist/skeleton/index.d.ts +8 -0
  953. package/dist/skeleton/index.mjs +7 -0
  954. package/dist/skeleton/src/skeleton-item.d.vue.ts +83 -0
  955. package/dist/skeleton/src/skeleton-item.vue +612 -0
  956. package/dist/skeleton/src/skeleton-item.vue.d.ts +83 -0
  957. package/dist/skeleton/src/skeleton.cjs +89 -0
  958. package/dist/skeleton/src/skeleton.css +550 -0
  959. package/dist/skeleton/src/skeleton.d.ts +87 -0
  960. package/dist/skeleton/src/skeleton.d.vue.ts +89 -0
  961. package/dist/skeleton/src/skeleton.mjs +92 -0
  962. package/dist/skeleton/src/skeleton.vue +640 -0
  963. package/dist/skeleton/src/skeleton.vue.d.ts +89 -0
  964. package/dist/slider/__tests__/repro.test.cjs +25 -0
  965. package/dist/slider/__tests__/repro.test.d.ts +1 -0
  966. package/dist/slider/__tests__/repro.test.mjs +22 -0
  967. package/dist/slider/__tests__/slider.ssr.test.cjs +118 -0
  968. package/dist/slider/__tests__/slider.ssr.test.d.ts +1 -0
  969. package/dist/slider/__tests__/slider.ssr.test.mjs +115 -0
  970. package/dist/slider/__tests__/slider.test.cjs +155 -0
  971. package/dist/slider/__tests__/slider.test.d.ts +1 -0
  972. package/dist/slider/__tests__/slider.test.mjs +120 -0
  973. package/dist/slider/index.cjs +26 -0
  974. package/dist/slider/index.d.ts +5 -0
  975. package/dist/slider/index.mjs +5 -0
  976. package/dist/slider/src/slider-button.d.vue.ts +43 -0
  977. package/dist/slider/src/slider-button.vue +858 -0
  978. package/dist/slider/src/slider-button.vue.d.ts +43 -0
  979. package/dist/slider/src/slider.cjs +143 -0
  980. package/dist/slider/src/slider.css +692 -0
  981. package/dist/slider/src/slider.d.ts +146 -0
  982. package/dist/slider/src/slider.d.vue.ts +160 -0
  983. package/dist/slider/src/slider.mjs +137 -0
  984. package/dist/slider/src/slider.vue +992 -0
  985. package/dist/slider/src/slider.vue.d.ts +160 -0
  986. package/dist/space/__tests__/space.ssr.test.cjs +115 -0
  987. package/dist/space/__tests__/space.ssr.test.d.ts +1 -0
  988. package/dist/space/__tests__/space.ssr.test.mjs +150 -0
  989. package/dist/space/__tests__/space.test.cjs +227 -0
  990. package/dist/space/__tests__/space.test.d.ts +1 -0
  991. package/dist/space/__tests__/space.test.mjs +187 -0
  992. package/dist/space/index.cjs +11 -0
  993. package/dist/space/index.d.ts +3 -0
  994. package/dist/space/index.mjs +4 -0
  995. package/dist/space/src/space.cjs +1 -0
  996. package/dist/space/src/space.css +483 -0
  997. package/dist/space/src/space.d.ts +57 -0
  998. package/dist/space/src/space.d.vue.ts +22 -0
  999. package/dist/space/src/space.mjs +0 -0
  1000. package/dist/space/src/space.vue +574 -0
  1001. package/dist/space/src/space.vue.d.ts +22 -0
  1002. package/dist/spin/__tests__/spin.ssr.test.cjs +46 -0
  1003. package/dist/spin/__tests__/spin.ssr.test.d.ts +1 -0
  1004. package/dist/spin/__tests__/spin.ssr.test.mjs +43 -0
  1005. package/dist/spin/__tests__/spin.test.cjs +65 -0
  1006. package/dist/spin/__tests__/spin.test.d.ts +1 -0
  1007. package/dist/spin/__tests__/spin.test.mjs +63 -0
  1008. package/dist/spin/index.cjs +26 -0
  1009. package/dist/spin/index.d.ts +31 -0
  1010. package/dist/spin/index.mjs +5 -0
  1011. package/dist/spin/src/spin.cjs +61 -0
  1012. package/dist/spin/src/spin.css +920 -0
  1013. package/dist/spin/src/spin.d.ts +58 -0
  1014. package/dist/spin/src/spin.d.vue.ts +67 -0
  1015. package/dist/spin/src/spin.mjs +55 -0
  1016. package/dist/spin/src/spin.vue +1235 -0
  1017. package/dist/spin/src/spin.vue.d.ts +67 -0
  1018. package/dist/steps/__tests__/steps.ssr.test.cjs +73 -0
  1019. package/dist/steps/__tests__/steps.ssr.test.d.ts +1 -0
  1020. package/dist/steps/__tests__/steps.ssr.test.mjs +55 -0
  1021. package/dist/steps/__tests__/steps.test.cjs +152 -0
  1022. package/dist/steps/__tests__/steps.test.d.ts +1 -0
  1023. package/dist/steps/__tests__/steps.test.mjs +123 -0
  1024. package/dist/steps/index.cjs +43 -0
  1025. package/dist/steps/index.d.ts +13 -0
  1026. package/dist/steps/index.mjs +8 -0
  1027. package/dist/steps/src/step.cjs +54 -0
  1028. package/dist/steps/src/step.d.ts +50 -0
  1029. package/dist/steps/src/step.d.vue.ts +105 -0
  1030. package/dist/steps/src/step.mjs +48 -0
  1031. package/dist/steps/src/step.vue +1042 -0
  1032. package/dist/steps/src/step.vue.d.ts +105 -0
  1033. package/dist/steps/src/steps.cjs +98 -0
  1034. package/dist/steps/src/steps.css +858 -0
  1035. package/dist/steps/src/steps.d.ts +117 -0
  1036. package/dist/steps/src/steps.d.vue.ts +94 -0
  1037. package/dist/steps/src/steps.mjs +92 -0
  1038. package/dist/steps/src/steps.vue +945 -0
  1039. package/dist/steps/src/steps.vue.d.ts +94 -0
  1040. package/dist/switch/__tests__/switch.ssr.test.cjs +105 -0
  1041. package/dist/switch/__tests__/switch.ssr.test.d.ts +1 -0
  1042. package/dist/switch/__tests__/switch.ssr.test.mjs +102 -0
  1043. package/dist/switch/__tests__/switch.test.cjs +251 -0
  1044. package/dist/switch/__tests__/switch.test.d.ts +1 -0
  1045. package/dist/switch/__tests__/switch.test.mjs +193 -0
  1046. package/dist/switch/index.cjs +26 -0
  1047. package/dist/switch/index.d.ts +5 -0
  1048. package/dist/switch/index.mjs +5 -0
  1049. package/dist/switch/src/switch.cjs +117 -0
  1050. package/dist/switch/src/switch.css +587 -0
  1051. package/dist/switch/src/switch.d.ts +115 -0
  1052. package/dist/switch/src/switch.d.vue.ts +133 -0
  1053. package/dist/switch/src/switch.mjs +111 -0
  1054. package/dist/switch/src/switch.vue +773 -0
  1055. package/dist/switch/src/switch.vue.d.ts +133 -0
  1056. package/dist/table/__tests__/table-advance.test.cjs +180 -0
  1057. package/dist/table/__tests__/table-advance.test.d.ts +1 -0
  1058. package/dist/table/__tests__/table-advance.test.mjs +118 -0
  1059. package/dist/table/__tests__/table-interaction.test.cjs +236 -0
  1060. package/dist/table/__tests__/table-interaction.test.d.ts +1 -0
  1061. package/dist/table/__tests__/table-interaction.test.mjs +162 -0
  1062. package/dist/table/__tests__/table-utils.test.cjs +690 -0
  1063. package/dist/table/__tests__/table-utils.test.d.ts +1 -0
  1064. package/dist/table/__tests__/table-utils.test.mjs +485 -0
  1065. package/dist/table/__tests__/table.perf.test.cjs +231 -0
  1066. package/dist/table/__tests__/table.perf.test.d.ts +1 -0
  1067. package/dist/table/__tests__/table.perf.test.mjs +225 -0
  1068. package/dist/table/__tests__/table.ssr.test.cjs +296 -0
  1069. package/dist/table/__tests__/table.ssr.test.d.ts +5 -0
  1070. package/dist/table/__tests__/table.ssr.test.mjs +265 -0
  1071. package/dist/table/__tests__/table.test.cjs +664 -0
  1072. package/dist/table/__tests__/table.test.d.ts +1 -0
  1073. package/dist/table/__tests__/table.test.mjs +599 -0
  1074. package/dist/table/__tests__/use-column-drag.test.cjs +238 -0
  1075. package/dist/table/__tests__/use-column-drag.test.d.ts +1 -0
  1076. package/dist/table/__tests__/use-column-drag.test.mjs +150 -0
  1077. package/dist/table/__tests__/use-table-export.test.cjs +179 -0
  1078. package/dist/table/__tests__/use-table-export.test.d.ts +1 -0
  1079. package/dist/table/__tests__/use-table-export.test.mjs +105 -0
  1080. package/dist/table/__tests__/use-table-import.test.cjs +200 -0
  1081. package/dist/table/__tests__/use-table-import.test.d.ts +1 -0
  1082. package/dist/table/__tests__/use-table-import.test.mjs +137 -0
  1083. package/dist/table/__tests__/use-table-print.test.cjs +190 -0
  1084. package/dist/table/__tests__/use-table-print.test.d.ts +1 -0
  1085. package/dist/table/__tests__/use-table-print.test.mjs +134 -0
  1086. package/dist/table/__tests__/use-virtual-scroll.test.cjs +286 -0
  1087. package/dist/table/__tests__/use-virtual-scroll.test.d.ts +1 -0
  1088. package/dist/table/__tests__/use-virtual-scroll.test.mjs +196 -0
  1089. package/dist/table/index.cjs +31 -0
  1090. package/dist/table/index.d.ts +12 -0
  1091. package/dist/table/index.mjs +9 -0
  1092. package/dist/table/src/table-column.d.vue.ts +81 -0
  1093. package/dist/table/src/table-column.vue +1142 -0
  1094. package/dist/table/src/table-column.vue.d.ts +81 -0
  1095. package/dist/table/src/table.cjs +275 -0
  1096. package/dist/table/src/table.css +1073 -0
  1097. package/dist/table/src/table.d.ts +818 -0
  1098. package/dist/table/src/table.d.vue.ts +493 -0
  1099. package/dist/table/src/table.mjs +269 -0
  1100. package/dist/table/src/table.vue +2493 -0
  1101. package/dist/table/src/table.vue.d.ts +493 -0
  1102. package/dist/table/src/use-column-drag.cjs +168 -0
  1103. package/dist/table/src/use-column-drag.d.ts +35 -0
  1104. package/dist/table/src/use-column-drag.mjs +156 -0
  1105. package/dist/table/src/use-column-resize.cjs +90 -0
  1106. package/dist/table/src/use-column-resize.d.ts +33 -0
  1107. package/dist/table/src/use-column-resize.mjs +79 -0
  1108. package/dist/table/src/use-row-drag.cjs +232 -0
  1109. package/dist/table/src/use-row-drag.d.ts +36 -0
  1110. package/dist/table/src/use-row-drag.mjs +216 -0
  1111. package/dist/table/src/use-table-export.cjs +291 -0
  1112. package/dist/table/src/use-table-export.d.ts +55 -0
  1113. package/dist/table/src/use-table-export.mjs +283 -0
  1114. package/dist/table/src/use-table-import.cjs +343 -0
  1115. package/dist/table/src/use-table-import.d.ts +49 -0
  1116. package/dist/table/src/use-table-import.mjs +324 -0
  1117. package/dist/table/src/use-table-print.cjs +213 -0
  1118. package/dist/table/src/use-table-print.d.ts +62 -0
  1119. package/dist/table/src/use-table-print.mjs +241 -0
  1120. package/dist/table/src/use-table-selection.cjs +143 -0
  1121. package/dist/table/src/use-table-selection.d.ts +41 -0
  1122. package/dist/table/src/use-table-selection.mjs +139 -0
  1123. package/dist/table/src/use-virtual-scroll.cjs +250 -0
  1124. package/dist/table/src/use-virtual-scroll.d.ts +42 -0
  1125. package/dist/table/src/use-virtual-scroll.mjs +224 -0
  1126. package/dist/table/src/utils.cjs +365 -0
  1127. package/dist/table/src/utils.d.ts +125 -0
  1128. package/dist/table/src/utils.mjs +315 -0
  1129. package/dist/tabs/__tests__/tabs.ssr.test.cjs +57 -0
  1130. package/dist/tabs/__tests__/tabs.ssr.test.d.ts +1 -0
  1131. package/dist/tabs/__tests__/tabs.ssr.test.mjs +41 -0
  1132. package/dist/tabs/__tests__/tabs.test.cjs +171 -0
  1133. package/dist/tabs/__tests__/tabs.test.d.ts +1 -0
  1134. package/dist/tabs/__tests__/tabs.test.mjs +134 -0
  1135. package/dist/tabs/index.cjs +43 -0
  1136. package/dist/tabs/index.d.ts +13 -0
  1137. package/dist/tabs/index.mjs +8 -0
  1138. package/dist/tabs/src/tab-pane.cjs +43 -0
  1139. package/dist/tabs/src/tab-pane.d.ts +39 -0
  1140. package/dist/tabs/src/tab-pane.d.vue.ts +77 -0
  1141. package/dist/tabs/src/tab-pane.mjs +37 -0
  1142. package/dist/tabs/src/tab-pane.vue +524 -0
  1143. package/dist/tabs/src/tab-pane.vue.d.ts +77 -0
  1144. package/dist/tabs/src/tabs.cjs +103 -0
  1145. package/dist/tabs/src/tabs.css +711 -0
  1146. package/dist/tabs/src/tabs.d.ts +116 -0
  1147. package/dist/tabs/src/tabs.d.vue.ts +110 -0
  1148. package/dist/tabs/src/tabs.mjs +97 -0
  1149. package/dist/tabs/src/tabs.vue +949 -0
  1150. package/dist/tabs/src/tabs.vue.d.ts +110 -0
  1151. package/dist/tag/__tests__/tag.ssr.test.cjs +45 -0
  1152. package/dist/tag/__tests__/tag.ssr.test.d.ts +1 -0
  1153. package/dist/tag/__tests__/tag.ssr.test.mjs +48 -0
  1154. package/dist/tag/__tests__/tag.test.cjs +194 -0
  1155. package/dist/tag/__tests__/tag.test.d.ts +1 -0
  1156. package/dist/tag/__tests__/tag.test.mjs +167 -0
  1157. package/dist/tag/index.cjs +26 -0
  1158. package/dist/tag/index.d.ts +9 -0
  1159. package/dist/tag/index.mjs +5 -0
  1160. package/dist/tag/src/tag.cjs +9 -0
  1161. package/dist/tag/src/tag.css +598 -0
  1162. package/dist/tag/src/tag.d.ts +122 -0
  1163. package/dist/tag/src/tag.d.vue.ts +42 -0
  1164. package/dist/tag/src/tag.mjs +3 -0
  1165. package/dist/tag/src/tag.vue +757 -0
  1166. package/dist/tag/src/tag.vue.d.ts +42 -0
  1167. package/dist/time-picker/__tests__/time-picker.ssr.test.cjs +46 -0
  1168. package/dist/time-picker/__tests__/time-picker.ssr.test.d.ts +1 -0
  1169. package/dist/time-picker/__tests__/time-picker.ssr.test.mjs +43 -0
  1170. package/dist/time-picker/__tests__/time-picker.test.cjs +228 -0
  1171. package/dist/time-picker/__tests__/time-picker.test.d.ts +1 -0
  1172. package/dist/time-picker/__tests__/time-picker.test.mjs +218 -0
  1173. package/dist/time-picker/__tests__/time-spinner.test.cjs +196 -0
  1174. package/dist/time-picker/__tests__/time-spinner.test.d.ts +1 -0
  1175. package/dist/time-picker/__tests__/time-spinner.test.mjs +162 -0
  1176. package/dist/time-picker/index.cjs +26 -0
  1177. package/dist/time-picker/index.d.ts +5 -0
  1178. package/dist/time-picker/index.mjs +5 -0
  1179. package/dist/time-picker/src/time-picker.cjs +110 -0
  1180. package/dist/time-picker/src/time-picker.css +728 -0
  1181. package/dist/time-picker/src/time-picker.d.ts +187 -0
  1182. package/dist/time-picker/src/time-picker.d.vue.ts +67 -0
  1183. package/dist/time-picker/src/time-picker.mjs +90 -0
  1184. package/dist/time-picker/src/time-picker.vue +1293 -0
  1185. package/dist/time-picker/src/time-picker.vue.d.ts +67 -0
  1186. package/dist/time-picker/src/time-spinner.d.vue.ts +46 -0
  1187. package/dist/time-picker/src/time-spinner.vue +442 -0
  1188. package/dist/time-picker/src/time-spinner.vue.d.ts +46 -0
  1189. package/dist/time-select/__tests__/time-select.ssr.test.cjs +42 -0
  1190. package/dist/time-select/__tests__/time-select.ssr.test.d.ts +1 -0
  1191. package/dist/time-select/__tests__/time-select.ssr.test.mjs +37 -0
  1192. package/dist/time-select/__tests__/time-select.test.cjs +390 -0
  1193. package/dist/time-select/__tests__/time-select.test.d.ts +5 -0
  1194. package/dist/time-select/__tests__/time-select.test.mjs +374 -0
  1195. package/dist/time-select/index.cjs +26 -0
  1196. package/dist/time-select/index.d.ts +9 -0
  1197. package/dist/time-select/index.mjs +5 -0
  1198. package/dist/time-select/src/time-select.cjs +55 -0
  1199. package/dist/time-select/src/time-select.css +663 -0
  1200. package/dist/time-select/src/time-select.d.ts +145 -0
  1201. package/dist/time-select/src/time-select.d.vue.ts +51 -0
  1202. package/dist/time-select/src/time-select.mjs +41 -0
  1203. package/dist/time-select/src/time-select.vue +1049 -0
  1204. package/dist/time-select/src/time-select.vue.d.ts +51 -0
  1205. package/dist/tooltip/__tests__/tooltip.ssr.test.cjs +55 -0
  1206. package/dist/tooltip/__tests__/tooltip.ssr.test.d.ts +1 -0
  1207. package/dist/tooltip/__tests__/tooltip.ssr.test.mjs +76 -0
  1208. package/dist/tooltip/__tests__/tooltip.test.cjs +132 -0
  1209. package/dist/tooltip/__tests__/tooltip.test.d.ts +1 -0
  1210. package/dist/tooltip/__tests__/tooltip.test.mjs +121 -0
  1211. package/dist/tooltip/index.cjs +26 -0
  1212. package/dist/tooltip/index.d.ts +51 -0
  1213. package/dist/tooltip/index.mjs +5 -0
  1214. package/dist/tooltip/src/tooltip.cjs +160 -0
  1215. package/dist/tooltip/src/tooltip.css +563 -0
  1216. package/dist/tooltip/src/tooltip.d.ts +159 -0
  1217. package/dist/tooltip/src/tooltip.d.vue.ts +167 -0
  1218. package/dist/tooltip/src/tooltip.mjs +167 -0
  1219. package/dist/tooltip/src/tooltip.vue +868 -0
  1220. package/dist/tooltip/src/tooltip.vue.d.ts +167 -0
  1221. package/dist/transfer/__tests__/transfer.ssr.test.cjs +47 -0
  1222. package/dist/transfer/__tests__/transfer.ssr.test.d.ts +1 -0
  1223. package/dist/transfer/__tests__/transfer.ssr.test.mjs +44 -0
  1224. package/dist/transfer/__tests__/transfer.test.cjs +422 -0
  1225. package/dist/transfer/__tests__/transfer.test.d.ts +5 -0
  1226. package/dist/transfer/__tests__/transfer.test.mjs +405 -0
  1227. package/dist/transfer/index.cjs +35 -0
  1228. package/dist/transfer/index.d.ts +13 -0
  1229. package/dist/transfer/index.mjs +13 -0
  1230. package/dist/transfer/src/transfer-panel.d.vue.ts +45 -0
  1231. package/dist/transfer/src/transfer-panel.vue +971 -0
  1232. package/dist/transfer/src/transfer-panel.vue.d.ts +45 -0
  1233. package/dist/transfer/src/transfer.cjs +8 -0
  1234. package/dist/transfer/src/transfer.css +687 -0
  1235. package/dist/transfer/src/transfer.d.ts +160 -0
  1236. package/dist/transfer/src/transfer.d.vue.ts +68 -0
  1237. package/dist/transfer/src/transfer.mjs +2 -0
  1238. package/dist/transfer/src/transfer.vue +888 -0
  1239. package/dist/transfer/src/transfer.vue.d.ts +68 -0
  1240. package/dist/tree/__tests__/tree.perf.test.cjs +182 -0
  1241. package/dist/tree/__tests__/tree.perf.test.d.ts +1 -0
  1242. package/dist/tree/__tests__/tree.perf.test.mjs +198 -0
  1243. package/dist/tree/__tests__/tree.ssr.test.cjs +56 -0
  1244. package/dist/tree/__tests__/tree.ssr.test.d.ts +1 -0
  1245. package/dist/tree/__tests__/tree.ssr.test.mjs +45 -0
  1246. package/dist/tree/__tests__/tree.test.cjs +488 -0
  1247. package/dist/tree/__tests__/tree.test.d.ts +1 -0
  1248. package/dist/tree/__tests__/tree.test.mjs +333 -0
  1249. package/dist/tree/index.cjs +29 -0
  1250. package/dist/tree/index.d.ts +8 -0
  1251. package/dist/tree/index.mjs +7 -0
  1252. package/dist/tree/src/tree-node.d.vue.ts +18 -0
  1253. package/dist/tree/src/tree-node.vue +795 -0
  1254. package/dist/tree/src/tree-node.vue.d.ts +18 -0
  1255. package/dist/tree/src/tree.cjs +150 -0
  1256. package/dist/tree/src/tree.css +614 -0
  1257. package/dist/tree/src/tree.d.ts +215 -0
  1258. package/dist/tree/src/tree.d.vue.ts +228 -0
  1259. package/dist/tree/src/tree.mjs +144 -0
  1260. package/dist/tree/src/tree.vue +1081 -0
  1261. package/dist/tree/src/tree.vue.d.ts +228 -0
  1262. package/dist/tree-select/__tests__/tree-select.ssr.test.cjs +52 -0
  1263. package/dist/tree-select/__tests__/tree-select.ssr.test.d.ts +1 -0
  1264. package/dist/tree-select/__tests__/tree-select.ssr.test.mjs +55 -0
  1265. package/dist/tree-select/__tests__/tree-select.test.cjs +231 -0
  1266. package/dist/tree-select/__tests__/tree-select.test.d.ts +1 -0
  1267. package/dist/tree-select/__tests__/tree-select.test.mjs +189 -0
  1268. package/dist/tree-select/index.cjs +26 -0
  1269. package/dist/tree-select/index.d.ts +5 -0
  1270. package/dist/tree-select/index.mjs +5 -0
  1271. package/dist/tree-select/src/tree-select.cjs +115 -0
  1272. package/dist/tree-select/src/tree-select.css +775 -0
  1273. package/dist/tree-select/src/tree-select.d.ts +163 -0
  1274. package/dist/tree-select/src/tree-select.d.vue.ts +141 -0
  1275. package/dist/tree-select/src/tree-select.mjs +109 -0
  1276. package/dist/tree-select/src/tree-select.vue +1164 -0
  1277. package/dist/tree-select/src/tree-select.vue.d.ts +141 -0
  1278. package/dist/tree-select/src/use-tree.cjs +253 -0
  1279. package/dist/tree-select/src/use-tree.d.ts +122 -0
  1280. package/dist/tree-select/src/use-tree.mjs +249 -0
  1281. package/dist/typography/__tests__/typography.ssr.test.cjs +85 -0
  1282. package/dist/typography/__tests__/typography.ssr.test.d.ts +1 -0
  1283. package/dist/typography/__tests__/typography.ssr.test.mjs +63 -0
  1284. package/dist/typography/__tests__/typography.test.cjs +362 -0
  1285. package/dist/typography/__tests__/typography.test.d.ts +1 -0
  1286. package/dist/typography/__tests__/typography.test.mjs +161 -0
  1287. package/dist/typography/index.cjs +35 -0
  1288. package/dist/typography/index.d.ts +14 -0
  1289. package/dist/typography/index.mjs +11 -0
  1290. package/dist/typography/src/link.d.vue.ts +21 -0
  1291. package/dist/typography/src/link.vue +734 -0
  1292. package/dist/typography/src/link.vue.d.ts +21 -0
  1293. package/dist/typography/src/paragraph.d.vue.ts +22 -0
  1294. package/dist/typography/src/paragraph.vue +746 -0
  1295. package/dist/typography/src/paragraph.vue.d.ts +22 -0
  1296. package/dist/typography/src/text.d.vue.ts +29 -0
  1297. package/dist/typography/src/text.vue +744 -0
  1298. package/dist/typography/src/text.vue.d.ts +29 -0
  1299. package/dist/typography/src/title.d.vue.ts +26 -0
  1300. package/dist/typography/src/title.vue +741 -0
  1301. package/dist/typography/src/title.vue.d.ts +26 -0
  1302. package/dist/typography/src/typography.cjs +1 -0
  1303. package/dist/typography/src/typography.css +694 -0
  1304. package/dist/typography/src/typography.d.ts +201 -0
  1305. package/dist/typography/src/typography.mjs +0 -0
  1306. package/dist/upload/__tests__/upload.ssr.test.cjs +28 -0
  1307. package/dist/upload/__tests__/upload.ssr.test.d.ts +1 -0
  1308. package/dist/upload/__tests__/upload.ssr.test.mjs +26 -0
  1309. package/dist/upload/__tests__/upload.test.cjs +467 -0
  1310. package/dist/upload/__tests__/upload.test.d.ts +1 -0
  1311. package/dist/upload/__tests__/upload.test.mjs +336 -0
  1312. package/dist/upload/index.cjs +26 -0
  1313. package/dist/upload/index.d.ts +5 -0
  1314. package/dist/upload/index.mjs +5 -0
  1315. package/dist/upload/src/upload.cjs +120 -0
  1316. package/dist/upload/src/upload.css +1287 -0
  1317. package/dist/upload/src/upload.d.ts +148 -0
  1318. package/dist/upload/src/upload.d.vue.ts +133 -0
  1319. package/dist/upload/src/upload.mjs +114 -0
  1320. package/dist/upload/src/upload.vue +1857 -0
  1321. package/dist/upload/src/upload.vue.d.ts +133 -0
  1322. package/dist/waterfall/__tests__/waterfall.ssr.test.cjs +38 -0
  1323. package/dist/waterfall/__tests__/waterfall.ssr.test.d.ts +1 -0
  1324. package/dist/waterfall/__tests__/waterfall.ssr.test.mjs +39 -0
  1325. package/dist/waterfall/__tests__/waterfall.test.cjs +122 -0
  1326. package/dist/waterfall/__tests__/waterfall.test.d.ts +1 -0
  1327. package/dist/waterfall/__tests__/waterfall.test.mjs +85 -0
  1328. package/dist/waterfall/index.cjs +26 -0
  1329. package/dist/waterfall/index.d.ts +8 -0
  1330. package/dist/waterfall/index.mjs +5 -0
  1331. package/dist/waterfall/src/waterfall.cjs +63 -0
  1332. package/dist/waterfall/src/waterfall.css +565 -0
  1333. package/dist/waterfall/src/waterfall.d.ts +65 -0
  1334. package/dist/waterfall/src/waterfall.d.vue.ts +56 -0
  1335. package/dist/waterfall/src/waterfall.mjs +57 -0
  1336. package/dist/waterfall/src/waterfall.vue +764 -0
  1337. package/dist/waterfall/src/waterfall.vue.d.ts +56 -0
  1338. package/dist/watermark/__tests__/watermark.ssr.test.cjs +32 -0
  1339. package/dist/watermark/__tests__/watermark.ssr.test.d.ts +1 -0
  1340. package/dist/watermark/__tests__/watermark.ssr.test.mjs +30 -0
  1341. package/dist/watermark/__tests__/watermark.test.cjs +127 -0
  1342. package/dist/watermark/__tests__/watermark.test.d.ts +1 -0
  1343. package/dist/watermark/__tests__/watermark.test.mjs +124 -0
  1344. package/dist/watermark/index.cjs +26 -0
  1345. package/dist/watermark/index.d.ts +5 -0
  1346. package/dist/watermark/index.mjs +5 -0
  1347. package/dist/watermark/src/watermark.cjs +78 -0
  1348. package/dist/watermark/src/watermark.css +462 -0
  1349. package/dist/watermark/src/watermark.d.ts +82 -0
  1350. package/dist/watermark/src/watermark.d.vue.ts +167 -0
  1351. package/dist/watermark/src/watermark.mjs +72 -0
  1352. package/dist/watermark/src/watermark.vue +618 -0
  1353. package/dist/watermark/src/watermark.vue.d.ts +167 -0
  1354. package/package.json +79 -0
@@ -0,0 +1,2493 @@
1
+ <script setup>
2
+ import {
3
+ computed,
4
+ ref,
5
+ provide,
6
+ watch,
7
+ onMounted,
8
+ nextTick,
9
+ useSlots
10
+ } from "vue";
11
+ import { useNamespace, useLocale } from "@yh-ui/hooks";
12
+ import { useComponentTheme } from "@yh-ui/theme";
13
+ import {
14
+ tableProps,
15
+ tableEmits,
16
+ tableContextKey
17
+ } from "./table";
18
+ import {
19
+ getRowKey,
20
+ flattenColumns,
21
+ getColumnDepth,
22
+ buildHeaderRows,
23
+ formatSize,
24
+ defaultSortMethod,
25
+ multiValueFilter,
26
+ flattenTreeData,
27
+ calculateSpan,
28
+ throttle
29
+ } from "./utils";
30
+ import { useVirtualScroll } from "./use-virtual-scroll";
31
+ import { useTableSelection } from "./use-table-selection";
32
+ import { useRowDrag } from "./use-row-drag";
33
+ import { useColumnResize } from "./use-column-resize";
34
+ import { useColumnDrag } from "./use-column-drag";
35
+ import { useTableExport } from "./use-table-export";
36
+ import { useTableImport } from "./use-table-import";
37
+ import { useTablePrint } from "./use-table-print";
38
+ import { YhTooltip } from "../../tooltip";
39
+ import { YhPagination } from "../../pagination";
40
+ defineOptions({
41
+ name: "YhTable"
42
+ });
43
+ const props = defineProps(tableProps);
44
+ const emit = defineEmits(tableEmits);
45
+ const slots = useSlots();
46
+ const ns = useNamespace("table");
47
+ const { t } = useLocale();
48
+ const { themeStyle } = useComponentTheme(
49
+ "table",
50
+ computed(() => props.themeOverrides)
51
+ );
52
+ const tableRef = ref(null);
53
+ const headerRef = ref(null);
54
+ const bodyRef = ref(null);
55
+ const footerRef = ref(null);
56
+ const currentRowKey = ref(props.currentRowKey);
57
+ const sortStates = ref([]);
58
+ const filterStates = ref({});
59
+ const expandedRowKeys = ref(/* @__PURE__ */ new Set());
60
+ const treeExpandedKeys = ref(/* @__PURE__ */ new Set());
61
+ const isFullscreen = ref(false);
62
+ const _resizingColumn = ref(null);
63
+ const scrollState = ref("left");
64
+ const collectedColumns = ref([]);
65
+ const getRowKeyFn = (row) => {
66
+ if (!row) return Math.random().toString(36).slice(2);
67
+ return getRowKey(row, props.rowKey);
68
+ };
69
+ const allColumns = computed(() => {
70
+ if (props.columns && props.columns.length > 0) {
71
+ return props.columns;
72
+ }
73
+ return collectedColumns.value;
74
+ });
75
+ const flatColumns = computed(() => flattenColumns(allColumns.value));
76
+ const headerRows = computed(() => buildHeaderRows(allColumns.value));
77
+ const columnDepth = computed(() => getColumnDepth(allColumns.value));
78
+ const visibleColumns = computed(() => {
79
+ return flatColumns.value.filter((col) => col.visible !== false);
80
+ });
81
+ const fixedLeftColumns = computed(() => {
82
+ return visibleColumns.value.filter((col) => col.fixed === "left" || col.fixed === true);
83
+ });
84
+ const fixedRightColumns = computed(() => {
85
+ return visibleColumns.value.filter((col) => col.fixed === "right");
86
+ });
87
+ const treeProcessedData = computed(() => {
88
+ if (!props.treeConfig) return props.data;
89
+ const childrenKey = props.treeConfig.childrenKey || "children";
90
+ return flattenTreeData(props.data, childrenKey, treeExpandedKeys.value, props.rowKey);
91
+ });
92
+ watch(
93
+ () => props.data,
94
+ (newData) => {
95
+ if (props.treeConfig?.expandAll && treeExpandedKeys.value.size === 0) {
96
+ const childrenKey = props.treeConfig.childrenKey || "children";
97
+ const allKeys = /* @__PURE__ */ new Set();
98
+ const collectKeys = (items) => {
99
+ items.forEach((item) => {
100
+ const children = item[childrenKey];
101
+ if (children?.length) {
102
+ allKeys.add(getRowKeyFn(item));
103
+ collectKeys(children);
104
+ }
105
+ });
106
+ };
107
+ collectKeys(newData);
108
+ treeExpandedKeys.value = allKeys;
109
+ }
110
+ },
111
+ { immediate: true }
112
+ );
113
+ const sortedData = computed(() => {
114
+ const data = treeProcessedData.value;
115
+ if (!sortStates.value.length) return data;
116
+ const activeSortStates = sortStates.value.filter((s) => s.order);
117
+ if (!activeSortStates.length) return data;
118
+ return [...data].sort((a, b) => {
119
+ for (const state of activeSortStates) {
120
+ const column = flatColumns.value.find((col) => col.prop === state.prop);
121
+ let result;
122
+ if (column?.sortMethod) {
123
+ result = column.sortMethod(a, b, state.order);
124
+ } else {
125
+ result = defaultSortMethod(a, b, state.prop, state.order);
126
+ }
127
+ if (result !== 0) return result;
128
+ }
129
+ return 0;
130
+ });
131
+ });
132
+ const filteredData = computed(() => {
133
+ return multiValueFilter(sortedData.value, filterStates.value, flatColumns.value);
134
+ });
135
+ const selectionWidth = computed(
136
+ () => props.selectionConfig ? parseInt(String(props.selectionConfig.columnWidth || 50)) : 0
137
+ );
138
+ const expandWidth = computed(
139
+ () => props.expandConfig ? parseInt(String(props.expandConfig.columnWidth || 50)) : 0
140
+ );
141
+ const indexWidth = computed(
142
+ () => props.showIndex ? parseInt(String(props.indexConfig?.width || 50)) : 0
143
+ );
144
+ const isAnyColumnFixedLeft = computed(
145
+ () => visibleColumns.value.some((col) => col.fixed === "left" || col.fixed === true)
146
+ );
147
+ const tableData = computed(() => {
148
+ const data = filteredData.value;
149
+ if (!props.pagination || typeof props.pagination === "object" && props.pagination.remote) {
150
+ return data;
151
+ }
152
+ const currentPage = typeof props.pagination === "object" ? props.pagination.currentPage || 1 : 1;
153
+ const pageSize = typeof props.pagination === "object" ? props.pagination.pageSize || 10 : 10;
154
+ const start = (currentPage - 1) * pageSize;
155
+ const end = start + pageSize;
156
+ return data.slice(start, end);
157
+ });
158
+ const virtualConfig = computed(() => props.virtualConfig);
159
+ const {
160
+ visibleData,
161
+ offsetTop,
162
+ totalHeight,
163
+ handleScroll: handleVirtualScroll,
164
+ scrollToIndex,
165
+ scrollToRow,
166
+ refresh: refreshVirtual,
167
+ isVirtual
168
+ } = useVirtualScroll({
169
+ data: tableData,
170
+ containerRef: bodyRef,
171
+ config: virtualConfig,
172
+ rowKey: getRowKeyFn
173
+ });
174
+ const renderData = computed(() => {
175
+ return isVirtual.value ? visibleData.value : tableData.value;
176
+ });
177
+ const selectionConfig = computed(() => props.selectionConfig);
178
+ const {
179
+ selectedRowKeys,
180
+ selectedRows,
181
+ isAllSelected,
182
+ isIndeterminate,
183
+ selectionType,
184
+ toggleRowSelection,
185
+ toggleAllSelection,
186
+ clearSelection,
187
+ // setSelection,
188
+ // setSelectionByKeys,
189
+ isRowSelected,
190
+ isRowSelectable
191
+ } = useTableSelection({
192
+ data: tableData,
193
+ rowKey: props.rowKey,
194
+ config: selectionConfig
195
+ });
196
+ const dragConfigRef = computed(() => props.dragConfig);
197
+ const {
198
+ isRowDragEnabled,
199
+ // isDraggingRow,
200
+ getRowDragAttrs,
201
+ getRowDragClass
202
+ } = useRowDrag({
203
+ data: tableData,
204
+ rawData: computed(() => props.data),
205
+ dragConfig: dragConfigRef,
206
+ treeConfig: computed(() => props.treeConfig),
207
+ rowKey: getRowKeyFn,
208
+ emit
209
+ });
210
+ const resizableRef = computed(() => props.resizable);
211
+ const {
212
+ // isResizing,
213
+ // resizingColumn: activeResizingColumn,
214
+ resizeLineLeft,
215
+ resizeLineVisible,
216
+ isColumnResizable,
217
+ handleResizeStart
218
+ } = useColumnResize({
219
+ resizable: resizableRef,
220
+ columns: visibleColumns,
221
+ tableRef,
222
+ emit
223
+ });
224
+ const {
225
+ isColumnDragEnabled,
226
+ // isDraggingColumn,
227
+ isColumnDraggable,
228
+ getHeaderDragAttrs,
229
+ getHeaderDragClass
230
+ } = useColumnDrag({
231
+ columns: allColumns,
232
+ dragConfig: dragConfigRef,
233
+ flatColumns: visibleColumns,
234
+ emit
235
+ });
236
+ const {
237
+ exportData: doExportData
238
+ // toCSV,
239
+ // toJSON: toJSONExport,
240
+ // toTXT,
241
+ // toXML,
242
+ // toHTML: toHTMLExport,
243
+ // getExportColumns
244
+ } = useTableExport(tableData, visibleColumns);
245
+ const {
246
+ importFile,
247
+ importData: doImportData,
248
+ openImport
249
+ // parseCSV,
250
+ // parseTXT: parseTXTImport,
251
+ // parseJSON: parseJSONImport,
252
+ // parseXML: parseXMLImport,
253
+ // parseHTML: parseHTMLImport,
254
+ // parseContent,
255
+ // applyImport
256
+ } = useTableImport(
257
+ computed({
258
+ get: () => props.data,
259
+ set: (val) => emit("update:data", val)
260
+ }),
261
+ visibleColumns
262
+ );
263
+ const {
264
+ print: doPrint,
265
+ printMultiple,
266
+ printTemplate
267
+ // getPrintColumns
268
+ } = useTablePrint(tableData, visibleColumns);
269
+ const toolbarSlotNames = [
270
+ "toolbar",
271
+ "toolbar-left",
272
+ "toolbar-left-prefix",
273
+ "toolbar-left-suffix",
274
+ "toolbar-right",
275
+ "toolbar-right-prefix",
276
+ "toolbar-right-suffix"
277
+ ];
278
+ const showToolbar = computed(() => {
279
+ if (props.toolbarConfig?.visible) return true;
280
+ return toolbarSlotNames.some((name) => !!slots[name]);
281
+ });
282
+ const tableClasses = computed(() => [
283
+ ns.b(),
284
+ ns.m(props.size),
285
+ ns.is("border", !!props.border),
286
+ ns.is("stripe", props.stripe),
287
+ ns.is("highlight-current-row", props.highlightCurrentRow),
288
+ ns.is("fullscreen", isFullscreen.value),
289
+ ns.is("fixed-header", !!(props.height || props.maxHeight)),
290
+ ns.is("fixed-column", fixedLeftColumns.value.length > 0 || fixedRightColumns.value.length > 0),
291
+ ns.is(`scrolling-${scrollState.value}`, true)
292
+ ]);
293
+ const innerWrapperClasses = computed(() => [ns.e("inner-wrapper"), ns.is("border", !!props.border)]);
294
+ const tableStyle = computed(() => {
295
+ const style = {
296
+ ...themeStyle.value
297
+ };
298
+ if (props.width) {
299
+ style.width = formatSize(props.width);
300
+ }
301
+ if (props.height) {
302
+ style.height = formatSize(props.height);
303
+ }
304
+ if (props.maxHeight) {
305
+ style.maxHeight = formatSize(props.maxHeight);
306
+ }
307
+ return style;
308
+ });
309
+ const bodyStyle = computed(() => {
310
+ const style = {};
311
+ if (props.height || props.maxHeight) {
312
+ style.overflow = "auto";
313
+ style.flex = "1";
314
+ style.minHeight = "0";
315
+ }
316
+ return style;
317
+ });
318
+ const summaryValues = computed(() => {
319
+ if (!props.summaryConfig?.method) return [];
320
+ return props.summaryConfig.method({
321
+ columns: visibleColumns.value,
322
+ data: tableData.value
323
+ });
324
+ });
325
+ const isSpanVisible = (row, column, rowIndex, columnIndex) => {
326
+ if (!props.spanMethod) return true;
327
+ const result = calculateSpan(row, column, rowIndex, columnIndex, props.spanMethod);
328
+ return result.rowspan !== 0 && result.colspan !== 0;
329
+ };
330
+ const handleScroll = throttle((event) => {
331
+ const target = event.target;
332
+ const { scrollLeft, scrollWidth, clientWidth } = target;
333
+ if (scrollWidth <= clientWidth) {
334
+ scrollState.value = "none";
335
+ } else if (scrollLeft <= 0) {
336
+ scrollState.value = "left";
337
+ } else if (scrollLeft + clientWidth >= scrollWidth - 1) {
338
+ scrollState.value = "right";
339
+ } else {
340
+ scrollState.value = "middle";
341
+ }
342
+ if (headerRef.value && props.syncScroll) {
343
+ headerRef.value.scrollLeft = scrollLeft;
344
+ }
345
+ if (footerRef.value && props.syncScroll) {
346
+ footerRef.value.scrollLeft = scrollLeft;
347
+ }
348
+ if (isVirtual.value) {
349
+ handleVirtualScroll(event);
350
+ }
351
+ emit("scroll", {
352
+ scrollTop: target.scrollTop,
353
+ scrollLeft,
354
+ isEnd: target.scrollHeight - target.scrollTop <= target.clientHeight + 1
355
+ });
356
+ }, 10);
357
+ const handleRowClick = (row, column, event) => {
358
+ emit("row-click", row, column, event);
359
+ if (props.highlightCurrentRow) {
360
+ const key = getRowKeyFn(row);
361
+ currentRowKey.value = key;
362
+ emit("current-change", row, null);
363
+ emit("update:currentRowKey", key);
364
+ }
365
+ };
366
+ const handleRowDblclick = (row, column, event) => {
367
+ emit("row-dblclick", row, column, event);
368
+ };
369
+ const handleCellClick = (row, column, cell, event) => {
370
+ emit("cell-click", row, column, cell, event);
371
+ };
372
+ const handleCellDblclick = (row, column, cell, event) => {
373
+ emit("cell-dblclick", row, column, cell, event);
374
+ };
375
+ const handleHeaderClick = (column, event) => {
376
+ emit("header-click", column, event);
377
+ if (column.sortable) {
378
+ handleSort(column);
379
+ }
380
+ };
381
+ const handleSort = (column) => {
382
+ const prop = column.prop;
383
+ if (!prop) return;
384
+ const currentSort = sortStates.value.find((s) => s.prop === prop);
385
+ let newOrder = "asc";
386
+ if (currentSort) {
387
+ if (currentSort.order === "asc") {
388
+ newOrder = "desc";
389
+ } else if (currentSort.order === "desc") {
390
+ newOrder = null;
391
+ }
392
+ }
393
+ if (props.sortConfig?.multiple) {
394
+ const index = sortStates.value.findIndex((s) => s.prop === prop);
395
+ if (index > -1) {
396
+ if (newOrder) {
397
+ sortStates.value[index].order = newOrder;
398
+ } else {
399
+ sortStates.value.splice(index, 1);
400
+ }
401
+ } else if (newOrder) {
402
+ sortStates.value.push({ prop, order: newOrder });
403
+ }
404
+ } else {
405
+ if (newOrder) {
406
+ sortStates.value = [{ prop, order: newOrder }];
407
+ } else {
408
+ sortStates.value = [];
409
+ }
410
+ }
411
+ emit("sort-change", { column, prop, order: newOrder });
412
+ };
413
+ const handleToggleExpand = (row) => {
414
+ const key = getRowKeyFn(row);
415
+ if (expandedRowKeys.value.has(key)) {
416
+ expandedRowKeys.value.delete(key);
417
+ } else {
418
+ if (props.expandConfig?.accordion) {
419
+ expandedRowKeys.value.clear();
420
+ }
421
+ expandedRowKeys.value.add(key);
422
+ }
423
+ emit(
424
+ "expand-change",
425
+ row,
426
+ Array.from(expandedRowKeys.value).map((k) => {
427
+ return tableData.value.find((r) => getRowKeyFn(r) === k);
428
+ }).filter(Boolean)
429
+ );
430
+ };
431
+ const handleToggleTreeExpand = (row) => {
432
+ const key = getRowKeyFn(row);
433
+ if (treeExpandedKeys.value.has(key)) {
434
+ treeExpandedKeys.value.delete(key);
435
+ } else {
436
+ if (props.treeConfig?.accordion) {
437
+ treeExpandedKeys.value.clear();
438
+ }
439
+ treeExpandedKeys.value.add(key);
440
+ }
441
+ };
442
+ const getRowClass = (row, rowIndex) => {
443
+ const classes = [ns.e("row")];
444
+ if (props.highlightCurrentRow && currentRowKey.value === getRowKeyFn(row)) {
445
+ classes.push("is-current");
446
+ }
447
+ if (isRowSelected(row)) {
448
+ classes.push("is-selected");
449
+ }
450
+ if (props.stripe && rowIndex % 2 === 1) {
451
+ classes.push("is-striped");
452
+ }
453
+ if (isRowDragEnabled.value) {
454
+ classes.push("is-row-draggable");
455
+ const dragClass = getRowDragClass(rowIndex);
456
+ if (dragClass) classes.push(dragClass);
457
+ }
458
+ if (props.rowClassName) {
459
+ if (typeof props.rowClassName === "function") {
460
+ classes.push(props.rowClassName({ row, rowIndex }));
461
+ } else {
462
+ classes.push(props.rowClassName);
463
+ }
464
+ }
465
+ return classes.join(" ");
466
+ };
467
+ const getRowStyle = (row, rowIndex) => {
468
+ if (!props.rowStyle) return {};
469
+ if (typeof props.rowStyle === "function") {
470
+ return props.rowStyle({ row, rowIndex });
471
+ }
472
+ return props.rowStyle;
473
+ };
474
+ const getCellClass = (row, column, rowIndex, columnIndex) => {
475
+ const classes = [ns.e("cell")];
476
+ if (column.className) {
477
+ classes.push(column.className);
478
+ }
479
+ if (column.align) {
480
+ classes.push(`is-${column.align}`);
481
+ }
482
+ if (column.fixed) {
483
+ const fixedPosition = column.fixed === true ? "left" : column.fixed;
484
+ classes.push(`is-fixed-${fixedPosition}`);
485
+ if (fixedPosition === "left") {
486
+ const fixedLeftIndices = visibleColumns.value.map((col, idx) => col.fixed === "left" || col.fixed === true ? idx : -1).filter((idx) => idx !== -1);
487
+ if (columnIndex === Math.max(...fixedLeftIndices)) {
488
+ classes.push("is-last-fixed-left");
489
+ }
490
+ }
491
+ if (fixedPosition === "right") {
492
+ const fixedRightIndices = visibleColumns.value.map((col, idx) => col.fixed === "right" ? idx : -1).filter((idx) => idx !== -1);
493
+ if (columnIndex === Math.min(...fixedRightIndices)) {
494
+ classes.push("is-first-fixed-right");
495
+ }
496
+ }
497
+ classes.push("is-fixed");
498
+ }
499
+ if (props.cellClassName) {
500
+ if (typeof props.cellClassName === "function") {
501
+ classes.push(props.cellClassName({ row, column, rowIndex, columnIndex }));
502
+ } else {
503
+ classes.push(props.cellClassName);
504
+ }
505
+ }
506
+ return classes.join(" ");
507
+ };
508
+ const getFixedStyle = (column, columnIndex) => {
509
+ if (!column.fixed) return {};
510
+ const style = {};
511
+ let offset = 0;
512
+ if (column.fixed === "left" || column.fixed === true) {
513
+ offset = selectionWidth.value + expandWidth.value + indexWidth.value;
514
+ const prevColumns = visibleColumns.value.slice(0, columnIndex);
515
+ offset += prevColumns.reduce((acc, col) => acc + (parseInt(String(col.width)) || 0), 0);
516
+ style.left = `${offset}px`;
517
+ } else if (column.fixed === "right") {
518
+ const nextColumns = visibleColumns.value.slice(columnIndex + 1);
519
+ offset = nextColumns.reduce((acc, col) => acc + (parseInt(String(col.width)) || 0), 0);
520
+ style.right = `${offset}px`;
521
+ }
522
+ return style;
523
+ };
524
+ const getSpecialFixedStyle = (type) => {
525
+ if (!isAnyColumnFixedLeft.value) return {};
526
+ const style = { position: "sticky" };
527
+ if (type === "selection") style.left = "0px";
528
+ if (type === "expand") style.left = `${selectionWidth.value}px`;
529
+ if (type === "index") style.left = `${selectionWidth.value + expandWidth.value}px`;
530
+ return style;
531
+ };
532
+ const getCellStyle = (row, column, rowIndex, columnIndex) => {
533
+ const style = {
534
+ ...column.style,
535
+ ...getFixedStyle(column, columnIndex),
536
+ textAlign: column.align || "left"
537
+ };
538
+ if (column.width) {
539
+ style.width = formatSize(column.width);
540
+ }
541
+ if (column.minWidth) {
542
+ style.minWidth = formatSize(column.minWidth);
543
+ }
544
+ if (props.cellStyle) {
545
+ if (typeof props.cellStyle === "function") {
546
+ Object.assign(style, props.cellStyle({ row, column, rowIndex, columnIndex }));
547
+ } else {
548
+ Object.assign(style, props.cellStyle);
549
+ }
550
+ }
551
+ return style;
552
+ };
553
+ const getCellContent = (row, column, rowIndex) => {
554
+ if (!row) return "";
555
+ const prop = column.prop;
556
+ if (!prop) return "";
557
+ const cellValue = row[prop];
558
+ if (column.formatter) {
559
+ return column.formatter(row, column, cellValue, rowIndex);
560
+ }
561
+ if (column.displayMap && cellValue !== void 0 && cellValue !== null) {
562
+ const mappedValue = column.displayMap[String(cellValue)];
563
+ if (mappedValue !== void 0) return mappedValue;
564
+ }
565
+ if (typeof cellValue === "boolean") {
566
+ return cellValue ? t("table.yes") : t("table.no");
567
+ }
568
+ return cellValue !== void 0 && cellValue !== null ? String(cellValue) : "";
569
+ };
570
+ const getSortOrder = (column) => {
571
+ const prop = column.prop;
572
+ if (!prop) return null;
573
+ const sort2 = sortStates.value.find((s) => s.prop === prop);
574
+ return sort2?.order || null;
575
+ };
576
+ const doLayout = () => {
577
+ nextTick(() => {
578
+ refreshVirtual();
579
+ });
580
+ };
581
+ const refresh = () => {
582
+ refreshVirtual();
583
+ };
584
+ const scrollTo = (options) => {
585
+ const container = bodyRef.value;
586
+ if (!container) return;
587
+ if (options.row) {
588
+ scrollToRow(options.row);
589
+ return;
590
+ }
591
+ if (options.rowIndex !== void 0) {
592
+ scrollToIndex(options.rowIndex);
593
+ return;
594
+ }
595
+ container.scrollTo({
596
+ left: options.left,
597
+ top: options.top
598
+ });
599
+ };
600
+ const sort = (prop, order) => {
601
+ sortStates.value = order ? [{ prop, order }] : [];
602
+ };
603
+ const clearSort = () => {
604
+ sortStates.value = [];
605
+ };
606
+ const filter = (prop, values) => {
607
+ filterStates.value[prop] = values;
608
+ emit("filter-change", filterStates.value);
609
+ };
610
+ const clearFilter = (propOrProps) => {
611
+ if (!propOrProps) {
612
+ filterStates.value = {};
613
+ } else if (typeof propOrProps === "string") {
614
+ delete filterStates.value[propOrProps];
615
+ } else {
616
+ propOrProps.forEach((p) => delete filterStates.value[p]);
617
+ }
618
+ emit("filter-change", filterStates.value);
619
+ };
620
+ const setCurrentRow = (row) => {
621
+ const oldKey = currentRowKey.value;
622
+ const oldRow = oldKey ? tableData.value.find((r) => getRowKeyFn(r) === oldKey) : null;
623
+ currentRowKey.value = row ? getRowKeyFn(row) : void 0;
624
+ emit("current-change", row, oldRow || null);
625
+ emit("update:currentRowKey", currentRowKey.value);
626
+ };
627
+ const toggleRowExpansion = (row, expanded) => {
628
+ const key = getRowKeyFn(row);
629
+ const isExpanded = expandedRowKeys.value.has(key);
630
+ const shouldExpand = expanded ?? !isExpanded;
631
+ if (shouldExpand && !isExpanded) {
632
+ expandedRowKeys.value.add(key);
633
+ } else if (!shouldExpand && isExpanded) {
634
+ expandedRowKeys.value.delete(key);
635
+ }
636
+ };
637
+ const setExpandedRowKeys = (keys) => {
638
+ expandedRowKeys.value = new Set(keys);
639
+ };
640
+ const getExpandedRowKeys = () => {
641
+ return Array.from(expandedRowKeys.value);
642
+ };
643
+ const getTableData = () => ({
644
+ fullData: props.data,
645
+ tableData: tableData.value
646
+ });
647
+ const exportData = async (config) => {
648
+ return doExportData(config);
649
+ };
650
+ const print = (config) => {
651
+ return doPrint(config);
652
+ };
653
+ const toggleFullscreen = () => {
654
+ isFullscreen.value = !isFullscreen.value;
655
+ };
656
+ const getColumns = () => visibleColumns.value;
657
+ const setColumnVisible = (prop, visible) => {
658
+ const column = flatColumns.value.find((col) => col.prop === prop);
659
+ if (column) {
660
+ column.visible = visible;
661
+ emit("column-visible-change", visibleColumns.value);
662
+ }
663
+ };
664
+ const resetColumns = () => {
665
+ flatColumns.value.forEach((col) => {
666
+ col.visible = true;
667
+ });
668
+ emit("column-visible-change", visibleColumns.value);
669
+ };
670
+ const insertRow = (row, index) => {
671
+ const newData = [...props.data];
672
+ if (index !== void 0) {
673
+ newData.splice(index, 0, row);
674
+ } else {
675
+ newData.push(row);
676
+ }
677
+ emit("update:data", newData);
678
+ };
679
+ const removeRow = (row) => {
680
+ const rows = Array.isArray(row) ? row : [row];
681
+ const keysToRemove = new Set(rows.map((r) => getRowKeyFn(r)));
682
+ const newData = props.data.filter((r) => !keysToRemove.has(getRowKeyFn(r)));
683
+ emit("update:data", newData);
684
+ };
685
+ const updateRow = (row, newRow) => {
686
+ const key = getRowKeyFn(row);
687
+ const newData = props.data.map((r) => {
688
+ if (getRowKeyFn(r) === key) {
689
+ return { ...r, ...newRow };
690
+ }
691
+ return r;
692
+ });
693
+ emit("update:data", newData);
694
+ };
695
+ const expose = {
696
+ getSelectionRows: () => selectedRows.value,
697
+ getSelectionRowKeys: () => selectedRowKeys.value,
698
+ toggleRowSelection,
699
+ toggleAllSelection,
700
+ clearSelection,
701
+ setCurrentRow,
702
+ toggleRowExpansion,
703
+ setExpandedRowKeys,
704
+ getExpandedRowKeys,
705
+ sort,
706
+ clearSort,
707
+ filter,
708
+ clearFilter,
709
+ doLayout,
710
+ refresh,
711
+ scrollTo,
712
+ getTableData,
713
+ exportData,
714
+ print,
715
+ openImport,
716
+ importFile,
717
+ importData: doImportData,
718
+ printMultiple,
719
+ printTemplate,
720
+ toggleFullscreen,
721
+ getColumns,
722
+ setColumnVisible,
723
+ resetColumns,
724
+ insertRow,
725
+ removeRow,
726
+ updateRow
727
+ };
728
+ defineExpose(expose);
729
+ provide(tableContextKey, {
730
+ props,
731
+ slots,
732
+ registerColumn: (column) => {
733
+ if (!collectedColumns.value.includes(column)) {
734
+ collectedColumns.value.push(column);
735
+ }
736
+ },
737
+ unregisterColumn: (column) => {
738
+ const index = collectedColumns.value.indexOf(column);
739
+ if (index > -1) {
740
+ collectedColumns.value.splice(index, 1);
741
+ }
742
+ }
743
+ });
744
+ onMounted(() => {
745
+ doLayout();
746
+ });
747
+ watch(
748
+ () => props.data,
749
+ () => {
750
+ nextTick(() => {
751
+ doLayout();
752
+ });
753
+ }
754
+ );
755
+ watch(
756
+ () => props.currentRowKey,
757
+ (val) => {
758
+ currentRowKey.value = val;
759
+ }
760
+ );
761
+ watch(selectedRowKeys, () => {
762
+ emit("selection-change", selectedRows.value, selectedRowKeys.value);
763
+ });
764
+ </script>
765
+
766
+ <template>
767
+ <div ref="tableRef" :class="tableClasses" :style="tableStyle">
768
+ <div :class="innerWrapperClasses">
769
+ <!-- 工具栏 -->
770
+ <div v-if="showToolbar" :class="ns.e('toolbar')">
771
+ <slot name="toolbar">
772
+ <div :class="ns.e('toolbar-left')">
773
+ <slot name="toolbar-left-prefix" />
774
+ <slot name="toolbar-left" />
775
+ <slot name="toolbar-left-suffix" />
776
+ </div>
777
+ <div :class="ns.e('toolbar-right')">
778
+ <slot name="toolbar-right-prefix" />
779
+ <slot name="toolbar-right" />
780
+ <slot name="toolbar-right-suffix" />
781
+ </div>
782
+ </slot>
783
+ </div>
784
+
785
+ <!-- 表头 -->
786
+ <div v-if="showHeader" ref="headerRef" :class="ns.e('header-wrapper')">
787
+ <table :class="ns.e('header')" :style="{
788
+ tableLayout
789
+ }">
790
+ <colgroup>
791
+ <col
792
+ v-if="selectionConfig"
793
+ :style="{
794
+ width: formatSize(selectionConfig.columnWidth || 50)
795
+ }"
796
+ />
797
+ <col
798
+ v-if="expandConfig"
799
+ :style="{
800
+ width: formatSize(expandConfig.columnWidth || 50)
801
+ }"
802
+ />
803
+ <col v-if="showIndex" :style="{
804
+ width: formatSize(indexConfig?.width || 50)
805
+ }" />
806
+ <col
807
+ v-for="column in visibleColumns"
808
+ :key="column.prop || column.key"
809
+ :style="{
810
+ width: formatSize(column.width)
811
+ }"
812
+ />
813
+ </colgroup>
814
+ <thead>
815
+ <!-- 多级表头 -->
816
+ <template v-if="headerRows.length > 0">
817
+ <tr v-for="(hRow, rowIdx) in headerRows" :key="rowIdx" :class="ns.e('header-row')">
818
+ <!-- 选择列(仅第一行,跨所有行) -->
819
+ <th
820
+ v-if="selectionConfig && rowIdx === 0"
821
+ :rowspan="columnDepth"
822
+ :class="[ns.e('header-cell'), isAnyColumnFixedLeft ? 'is-fixed-left' : '']"
823
+ :style="{
824
+ width: formatSize(selectionConfig.columnWidth || 50),
825
+ ...getSpecialFixedStyle('selection')
826
+ }"
827
+ >
828
+ <div :class="ns.e('selection-cell')">
829
+ <template
830
+ v-if="selectionType === 'checkbox' && selectionConfig.showSelectAll !== false"
831
+ >
832
+ <input
833
+ type="checkbox"
834
+ :checked="isAllSelected"
835
+ :indeterminate="isIndeterminate"
836
+ @change="toggleAllSelection"
837
+ />
838
+ </template>
839
+ </div>
840
+ </th>
841
+
842
+ <!-- 展开列(仅第一行,跨所有行) -->
843
+ <th
844
+ v-if="expandConfig && rowIdx === 0"
845
+ :rowspan="columnDepth"
846
+ :class="[ns.e('header-cell'), isAnyColumnFixedLeft ? 'is-fixed-left' : '']"
847
+ :style="{
848
+ width: formatSize(expandConfig.columnWidth || 50),
849
+ ...getSpecialFixedStyle('expand')
850
+ }"
851
+ >
852
+ <div :class="ns.e('expand-cell')" />
853
+ </th>
854
+
855
+ <!-- 序号列(仅第一行,跨所有行) -->
856
+ <th
857
+ v-if="showIndex && rowIdx === 0"
858
+ :rowspan="columnDepth"
859
+ :class="[ns.e('header-cell'), isAnyColumnFixedLeft ? 'is-fixed-left' : '']"
860
+ :style="{
861
+ width: formatSize(indexConfig?.width || 50),
862
+ ...getSpecialFixedStyle('index')
863
+ }"
864
+ >
865
+ <div :class="ns.e('index-cell')">
866
+ {{ indexConfig?.label || t("table.index") }}
867
+ </div>
868
+ </th>
869
+
870
+ <!-- 数据列 -->
871
+ <th
872
+ v-for="(cell, cellIdx) in hRow"
873
+ :key="cell.column.prop || cell.column.key || cellIdx"
874
+ :colspan="cell.colspan > 1 ? cell.colspan : void 0"
875
+ :rowspan="cell.rowspan > 1 ? cell.rowspan : void 0"
876
+ :class="[ns.e('header-cell'), cell.column.headerClassName, cell.column.headerAlign ? `is-${cell.column.headerAlign}` : '', cell.column.sortable ? 'is-sortable' : '', cell.column.fixed ? `is-fixed-${cell.column.fixed === true ? 'left' : cell.column.fixed}` : '', cell.column.children?.length ? 'is-group' : '', isColumnDraggable(cell.column) ? 'is-column-draggable' : '']"
877
+ :style="{
878
+ ...cell.column.headerStyle,
879
+ textAlign: cell.column.headerAlign || cell.column.align || (cell.column.children?.length ? 'center' : 'left')
880
+ }"
881
+ @click="handleHeaderClick(cell.column, $event)"
882
+ >
883
+ <div :class="ns.e('cell-content')">
884
+ <!-- 表头前缀图标 -->
885
+ <component
886
+ v-if="cell.column.headerPrefixIcon && typeof cell.column.headerPrefixIcon !== 'string'"
887
+ :is="cell.column.headerPrefixIcon"
888
+ :class="ns.e('header-icon-prefix')"
889
+ />
890
+ <span
891
+ v-else-if="cell.column.headerPrefixIcon"
892
+ :class="ns.e('header-icon-prefix')"
893
+ >{{ cell.column.headerPrefixIcon }}</span
894
+ >
895
+
896
+ <slot
897
+ v-if="$slots[`header-${cell.column.prop}`]"
898
+ :name="`header-${cell.column.prop}`"
899
+ :column="cell.column"
900
+ :column-index="cellIdx"
901
+ />
902
+ <template v-else>
903
+ {{ cell.column.label }}
904
+ </template>
905
+
906
+ <!-- 表头后缀图标 -->
907
+ <component
908
+ v-if="cell.column.headerSuffixIcon && typeof cell.column.headerSuffixIcon !== 'string'"
909
+ :is="cell.column.headerSuffixIcon"
910
+ :class="ns.e('header-icon-suffix')"
911
+ />
912
+ <span
913
+ v-else-if="cell.column.headerSuffixIcon"
914
+ :class="ns.e('header-icon-suffix')"
915
+ >{{ cell.column.headerSuffixIcon }}</span
916
+ >
917
+
918
+ <span v-if="cell.column.sortable" :class="ns.e('sort-icon')">
919
+ <span
920
+ :class="['sort-caret', 'ascending', getSortOrder(cell.column) === 'asc' ? 'is-active' : '']"
921
+ />
922
+ <span
923
+ :class="['sort-caret', 'descending', getSortOrder(cell.column) === 'desc' ? 'is-active' : '']"
924
+ />
925
+ </span>
926
+ </div>
927
+
928
+ <!-- 列宽调整手柄(仅叶子列) -->
929
+ <span
930
+ v-if="!cell.column.children?.length && isColumnResizable(cell.column)"
931
+ :class="ns.e('resize-handle')"
932
+ @pointerdown.stop="handleResizeStart($event, cell.column, $event.currentTarget.parentElement)"
933
+ />
934
+ </th>
935
+ </tr>
936
+ </template>
937
+
938
+ <!-- 单层表头(原有逻辑) -->
939
+ <tr v-else :class="ns.e('header-row')">
940
+ <!-- 选择列 -->
941
+ <th
942
+ v-if="selectionConfig"
943
+ :class="[ns.e('header-cell'), isAnyColumnFixedLeft ? 'is-fixed-left' : '']"
944
+ :style="{
945
+ width: formatSize(selectionConfig.columnWidth || 50),
946
+ ...getSpecialFixedStyle('selection')
947
+ }"
948
+ >
949
+ <div :class="ns.e('selection-cell')">
950
+ <template
951
+ v-if="selectionType === 'checkbox' && selectionConfig.showSelectAll !== false"
952
+ >
953
+ <input
954
+ type="checkbox"
955
+ :checked="isAllSelected"
956
+ :indeterminate="isIndeterminate"
957
+ @change="toggleAllSelection"
958
+ />
959
+ </template>
960
+ </div>
961
+ </th>
962
+
963
+ <!-- 展开列 -->
964
+ <th
965
+ v-if="expandConfig"
966
+ :class="[ns.e('header-cell'), isAnyColumnFixedLeft ? 'is-fixed-left' : '']"
967
+ :style="{
968
+ width: formatSize(expandConfig.columnWidth || 50),
969
+ ...getSpecialFixedStyle('expand')
970
+ }"
971
+ >
972
+ <div :class="ns.e('expand-cell')" />
973
+ </th>
974
+
975
+ <!-- 序号列 -->
976
+ <th
977
+ v-if="showIndex"
978
+ :class="[ns.e('header-cell'), isAnyColumnFixedLeft ? 'is-fixed-left' : '']"
979
+ :style="{
980
+ width: formatSize(indexConfig?.width || 50),
981
+ ...getSpecialFixedStyle('index')
982
+ }"
983
+ >
984
+ <div :class="ns.e('index-cell')">
985
+ {{ indexConfig?.label || t("table.index") }}
986
+ </div>
987
+ </th>
988
+
989
+ <!-- 数据列 -->
990
+ <th
991
+ v-for="(column, columnIndex) in visibleColumns"
992
+ :key="column.prop || column.key || columnIndex"
993
+ :class="[ns.e('header-cell'), column.headerClassName, column.headerAlign ? `is-${column.headerAlign}` : '', column.sortable ? 'is-sortable' : '', column.fixed ? `is-fixed-${column.fixed === true ? 'left' : column.fixed}` : '', isColumnDragEnabled ? getHeaderDragClass(columnIndex) : '', isColumnDraggable(column) ? 'is-column-draggable' : '']"
994
+ :style="{
995
+ ...column.headerStyle,
996
+ ...getFixedStyle(column, columnIndex),
997
+ width: formatSize(column.width),
998
+ textAlign: column.headerAlign || column.align || 'left'
999
+ }"
1000
+ v-bind="getHeaderDragAttrs(column, columnIndex)"
1001
+ @click="handleHeaderClick(column, $event)"
1002
+ >
1003
+ <div :class="ns.e('cell-content')">
1004
+ <!-- 表头前缀图标 -->
1005
+ <component
1006
+ v-if="column.headerPrefixIcon && typeof column.headerPrefixIcon !== 'string'"
1007
+ :is="column.headerPrefixIcon"
1008
+ :class="ns.e('header-icon-prefix')"
1009
+ />
1010
+ <span v-else-if="column.headerPrefixIcon" :class="ns.e('header-icon-prefix')">{{
1011
+ column.headerPrefixIcon
1012
+ }}</span>
1013
+
1014
+ <!-- 自定义表头 -->
1015
+ <slot
1016
+ v-if="$slots[`header-${column.prop}`]"
1017
+ :name="`header-${column.prop}`"
1018
+ :column="column"
1019
+ :column-index="columnIndex"
1020
+ />
1021
+ <template v-else>
1022
+ {{ column.label }}
1023
+ </template>
1024
+
1025
+ <!-- 表头后缀图标 -->
1026
+ <component
1027
+ v-if="column.headerSuffixIcon && typeof column.headerSuffixIcon !== 'string'"
1028
+ :is="column.headerSuffixIcon"
1029
+ :class="ns.e('header-icon-suffix')"
1030
+ />
1031
+ <span v-else-if="column.headerSuffixIcon" :class="ns.e('header-icon-suffix')">{{
1032
+ column.headerSuffixIcon
1033
+ }}</span>
1034
+
1035
+ <!-- 排序图标 -->
1036
+ <span v-if="column.sortable" :class="ns.e('sort-icon')">
1037
+ <span
1038
+ :class="['sort-caret', 'ascending', getSortOrder(column) === 'asc' ? 'is-active' : '']"
1039
+ />
1040
+ <span
1041
+ :class="['sort-caret', 'descending', getSortOrder(column) === 'desc' ? 'is-active' : '']"
1042
+ />
1043
+ </span>
1044
+ </div>
1045
+
1046
+ <!-- 列宽调整手柄 -->
1047
+ <span
1048
+ v-if="isColumnResizable(column)"
1049
+ :class="ns.e('resize-handle')"
1050
+ @pointerdown.stop="handleResizeStart($event, column, $event.currentTarget.parentElement)"
1051
+ />
1052
+ </th>
1053
+ </tr>
1054
+ </thead>
1055
+ </table>
1056
+ </div>
1057
+
1058
+ <!-- 表体 -->
1059
+ <div
1060
+ ref="bodyRef"
1061
+ :class="[ns.e('body-wrapper'), isVirtual ? ns.em('body-wrapper', 'virtual') : '']"
1062
+ :style="bodyStyle"
1063
+ @scroll="handleScroll"
1064
+ >
1065
+ <!-- 虚拟滚动:单一 phantom div 撑起滚动条高度 -->
1066
+ <div
1067
+ v-if="isVirtual"
1068
+ :class="ns.e('virtual-phantom')"
1069
+ :style="{
1070
+ height: `${totalHeight}px`
1071
+ }"
1072
+ />
1073
+
1074
+ <!-- 空数据 -->
1075
+ <div v-if="tableData.length === 0" :class="ns.e('empty')">
1076
+ <slot name="empty">
1077
+ <div :class="ns.e('empty-content')">
1078
+ <template v-if="emptyConfig?.render">
1079
+ <component :is="emptyConfig.render()" />
1080
+ </template>
1081
+ <template v-else>
1082
+ <div v-if="emptyConfig?.image" :class="ns.e('empty-image')">
1083
+ <img :src="emptyConfig.image" :alt="t('yh.common.noData')" />
1084
+ </div>
1085
+ <div :class="ns.e('empty-text')">
1086
+ {{ emptyConfig?.description || emptyText || t("table.emptyText") }}
1087
+ </div>
1088
+ </template>
1089
+ </div>
1090
+ </slot>
1091
+ </div>
1092
+
1093
+ <!-- 数据表格(虚拟模式下通过 transform 定位,GPU 加速无重排) -->
1094
+ <table
1095
+ v-else
1096
+ :class="[ns.e('body'), isVirtual ? ns.em('body', 'virtual') : '']"
1097
+ :style="{
1098
+ tableLayout,
1099
+ ...(isVirtual ? {
1100
+ transform: `translate3d(0, ${offsetTop}px, 0)`
1101
+ } : {})
1102
+ }"
1103
+ >
1104
+ <colgroup>
1105
+ <col
1106
+ v-if="selectionConfig"
1107
+ :style="{
1108
+ width: formatSize(selectionConfig.columnWidth || 50)
1109
+ }"
1110
+ />
1111
+ <col
1112
+ v-if="expandConfig"
1113
+ :style="{
1114
+ width: formatSize(expandConfig.columnWidth || 50)
1115
+ }"
1116
+ />
1117
+ <col v-if="showIndex" :style="{
1118
+ width: formatSize(indexConfig?.width || 50)
1119
+ }" />
1120
+ <col
1121
+ v-for="column in visibleColumns"
1122
+ :key="column.prop || column.key"
1123
+ :style="{
1124
+ width: formatSize(column.width)
1125
+ }"
1126
+ />
1127
+ </colgroup>
1128
+ <tbody>
1129
+ <template v-for="(row, rowIndex) in renderData" :key="getRowKeyFn(row)">
1130
+ <tr
1131
+ :class="getRowClass(row, rowIndex)"
1132
+ :style="getRowStyle(row, rowIndex)"
1133
+ v-bind="getRowDragAttrs(rowIndex)"
1134
+ @click="handleRowClick(row, visibleColumns[0], $event)"
1135
+ @dblclick="handleRowDblclick(row, visibleColumns[0], $event)"
1136
+ >
1137
+ <!-- 选择列 -->
1138
+ <td
1139
+ v-if="selectionConfig"
1140
+ :class="[ns.e('cell'), ns.e('selection-cell'), isAnyColumnFixedLeft ? 'is-fixed-left' : '']"
1141
+ :style="getSpecialFixedStyle('selection')"
1142
+ @click.stop
1143
+ >
1144
+ <input
1145
+ :type="selectionType === 'radio' ? 'radio' : 'checkbox'"
1146
+ :checked="isRowSelected(row)"
1147
+ :disabled="!isRowSelectable(row, rowIndex)"
1148
+ @change="toggleRowSelection(row)"
1149
+ />
1150
+ </td>
1151
+
1152
+ <!-- 展开列 -->
1153
+ <td
1154
+ v-if="expandConfig"
1155
+ :class="[ns.e('cell'), ns.e('expand-cell'), isAnyColumnFixedLeft ? 'is-fixed-left' : '']"
1156
+ :style="getSpecialFixedStyle('expand')"
1157
+ @click.stop="handleToggleExpand(row)"
1158
+ >
1159
+ <span
1160
+ :class="[ns.e('expand-icon'), expandedRowKeys.has(getRowKeyFn(row)) ? 'is-expanded' : '']"
1161
+ >
1162
+ <svg viewBox="0 0 24 24" width="16" height="16">
1163
+ <path
1164
+ fill="currentColor"
1165
+ d="M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"
1166
+ />
1167
+ </svg>
1168
+ </span>
1169
+ </td>
1170
+
1171
+ <!-- 序号列 -->
1172
+ <td
1173
+ v-if="showIndex"
1174
+ :class="[ns.e('cell'), ns.e('index-cell'), isAnyColumnFixedLeft ? 'is-fixed-left' : '']"
1175
+ :style="getSpecialFixedStyle('index')"
1176
+ >
1177
+ {{ indexConfig?.method ? indexConfig.method(rowIndex) : rowIndex + 1 }}
1178
+ </td>
1179
+
1180
+ <!-- 数据列 (合并单元格时跳过 span=0 的单元格) -->
1181
+ <template
1182
+ v-for="(column, columnIndex) in visibleColumns"
1183
+ :key="column.prop || column.key || columnIndex"
1184
+ >
1185
+ <td
1186
+ v-if="isSpanVisible(row, column, rowIndex, columnIndex)"
1187
+ :class="[getCellClass(row, column, rowIndex, columnIndex)]"
1188
+ :style="getCellStyle(row, column, rowIndex, columnIndex)"
1189
+ :colspan="calculateSpan(row, column, rowIndex, columnIndex, spanMethod).colspan || void 0"
1190
+ :rowspan="calculateSpan(row, column, rowIndex, columnIndex, spanMethod).rowspan || void 0"
1191
+ :data-row-key="getRowKeyFn(row)"
1192
+ :data-prop="column.prop"
1193
+ @click="handleCellClick(row, column, $event.currentTarget, $event)"
1194
+ @dblclick="handleCellDblclick(row, column, $event.currentTarget, $event)"
1195
+ >
1196
+ <div :class="ns.e('cell-content')">
1197
+ <!-- 树形缩进 -->
1198
+ <span
1199
+ v-if="treeConfig && column.treeNode"
1200
+ :class="[ns.e('tree-indent')]"
1201
+ :style="{
1202
+ paddingLeft: `${(row._level || 0) * (treeConfig.indent || 16)}px`
1203
+ }"
1204
+ >
1205
+ <span
1206
+ v-if="row._hasChildren"
1207
+ :class="[ns.e('tree-icon'), row._isExpanded ? 'is-expanded' : '']"
1208
+ @click.stop="handleToggleTreeExpand(row)"
1209
+ >
1210
+ <svg viewBox="0 0 24 24" width="16" height="16">
1211
+ <path
1212
+ fill="currentColor"
1213
+ d="M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"
1214
+ />
1215
+ </svg>
1216
+ </span>
1217
+ <span v-else :class="ns.e('tree-leaf-spacer')" />
1218
+ </span>
1219
+
1220
+ <!-- 内容展示 -->
1221
+ <slot
1222
+ v-if="row && column.prop && $slots[column.prop]"
1223
+ :name="column.prop"
1224
+ :row="row"
1225
+ :column="column"
1226
+ :row-index="rowIndex"
1227
+ :cell-value="column.prop ? row[column.prop] : void 0"
1228
+ />
1229
+ <component
1230
+ v-else-if="row && column.render"
1231
+ :is="column.render({
1232
+ row,
1233
+ column,
1234
+ rowIndex,
1235
+ cellValue: column.prop ? row[column.prop] : void 0
1236
+ })"
1237
+ />
1238
+ <template v-else>
1239
+ <yh-tooltip
1240
+ v-if="column.showOverflowTooltip"
1241
+ :content="String(getCellContent(row, column, rowIndex))"
1242
+ :effect="typeof column.showOverflowTooltip === 'object' ? column.showOverflowTooltip.effect || tooltipEffect : tooltipEffect"
1243
+ :placement="typeof column.showOverflowTooltip === 'object' ? column.showOverflowTooltip.placement || 'top' : 'top'"
1244
+ >
1245
+ <div :class="[ns.e('cell-text'), ns.is('ellipsis', true)]">
1246
+ {{ getCellContent(row, column, rowIndex) }}
1247
+ </div>
1248
+ </yh-tooltip>
1249
+ <template v-else>
1250
+ {{ getCellContent(row, column, rowIndex) }}
1251
+ </template>
1252
+ </template>
1253
+ </div>
1254
+ </td>
1255
+ </template>
1256
+ </tr>
1257
+
1258
+ <!-- 展开行内容 -->
1259
+ <tr
1260
+ v-if="expandConfig && expandedRowKeys.has(getRowKeyFn(row))"
1261
+ :class="ns.e('expanded-row')"
1262
+ >
1263
+ <td
1264
+ :colspan="visibleColumns.length + (selectionConfig ? 1 : 0) + (showIndex ? 1 : 0) + 1"
1265
+ >
1266
+ <slot name="expand" :row="row" :row-index="rowIndex">
1267
+ <component
1268
+ v-if="expandConfig.render"
1269
+ :is="expandConfig.render({
1270
+ row,
1271
+ rowIndex
1272
+ })"
1273
+ />
1274
+ </slot>
1275
+ </td>
1276
+ </tr>
1277
+ </template>
1278
+ </tbody>
1279
+ </table>
1280
+ </div>
1281
+
1282
+ <!-- 汇总行 -->
1283
+ <div v-if="summaryConfig" ref="footerRef" :class="ns.e('footer-wrapper')">
1284
+ <slot name="summary">
1285
+ <table :class="ns.e('footer')" :style="{
1286
+ tableLayout
1287
+ }">
1288
+ <colgroup>
1289
+ <col
1290
+ v-if="selectionConfig"
1291
+ :style="{
1292
+ width: formatSize(selectionConfig.columnWidth || 50)
1293
+ }"
1294
+ />
1295
+ <col
1296
+ v-if="expandConfig"
1297
+ :style="{
1298
+ width: formatSize(expandConfig.columnWidth || 50)
1299
+ }"
1300
+ />
1301
+ <col v-if="showIndex" :style="{
1302
+ width: formatSize(indexConfig?.width || 50)
1303
+ }" />
1304
+ <col
1305
+ v-for="column in visibleColumns"
1306
+ :key="column.prop || column.key"
1307
+ :style="{
1308
+ width: formatSize(column.width)
1309
+ }"
1310
+ />
1311
+ </colgroup>
1312
+ <tbody>
1313
+ <tr :class="[ns.e('row'), ns.e('summary-row'), summaryConfig.className]">
1314
+ <!-- 选择列占位 -->
1315
+ <td
1316
+ v-if="selectionConfig"
1317
+ :class="[ns.e('cell'), ns.e('selection-cell')]"
1318
+ :style="getSpecialFixedStyle('selection')"
1319
+ />
1320
+ <!-- 展开列占位 -->
1321
+ <td
1322
+ v-if="expandConfig"
1323
+ :class="[ns.e('cell'), ns.e('expand-cell')]"
1324
+ :style="getSpecialFixedStyle('expand')"
1325
+ />
1326
+ <!-- 序号列占位 -->
1327
+ <td
1328
+ v-if="showIndex"
1329
+ :class="[ns.e('cell'), ns.e('index-cell')]"
1330
+ :style="getSpecialFixedStyle('index')"
1331
+ />
1332
+ <!-- 数据列 -->
1333
+ <td
1334
+ v-for="(column, columnIndex) in visibleColumns"
1335
+ :key="column.prop || column.key || columnIndex"
1336
+ :class="getCellClass({}, column, 0, columnIndex)"
1337
+ :style="getCellStyle({}, column, 0, columnIndex)"
1338
+ >
1339
+ <div :class="ns.e('cell-content')">
1340
+ <slot
1341
+ :name="`summary-${column.prop}`"
1342
+ :column="column"
1343
+ :column-index="columnIndex"
1344
+ :data="tableData"
1345
+ >
1346
+ {{
1347
+ summaryValues.length > 0 ? summaryValues[columnIndex] : columnIndex === 0 ? summaryConfig.text || t("table.sumText") : ""
1348
+ }}
1349
+ </slot>
1350
+ </div>
1351
+ </td>
1352
+ </tr>
1353
+ </tbody>
1354
+ </table>
1355
+ </slot>
1356
+ </div>
1357
+
1358
+ <!-- 列宽调整指示线 -->
1359
+ <div
1360
+ v-if="resizeLineVisible"
1361
+ :class="ns.e('resize-line')"
1362
+ :style="{
1363
+ left: `${resizeLineLeft}px`
1364
+ }"
1365
+ />
1366
+
1367
+ <!-- 加载状态 -->
1368
+ <div
1369
+ v-if="typeof loading === 'object' ? loading.visible !== false : !!loading"
1370
+ :class="ns.e('loading')"
1371
+ :style="typeof loading === 'object' && loading.background ? {
1372
+ backgroundColor: loading.background
1373
+ } : {}"
1374
+ >
1375
+ <slot name="loading">
1376
+ <div :class="ns.e('loading-content')">
1377
+ <span :class="ns.e('loading-spinner')" />
1378
+ <span v-if="typeof loading === 'object' && loading.text" :class="ns.e('loading-text')">
1379
+ {{ loading.text }}
1380
+ </span>
1381
+ <span v-else-if="typeof loading === 'boolean'" :class="ns.e('loading-text')">
1382
+ {{ t("table.loading") }}
1383
+ </span>
1384
+ </div>
1385
+ </slot>
1386
+ </div>
1387
+ </div>
1388
+
1389
+ <!-- 分页 -->
1390
+ <div
1391
+ v-if="pagination"
1392
+ :class="[ns.e('pagination-wrapper'), typeof pagination === 'object' && pagination.align ? ns.is('align-' + pagination.align) : '']"
1393
+ >
1394
+ <YhPagination
1395
+ v-bind="typeof pagination === 'object' ? pagination : {}"
1396
+ :class="ns.e('pagination')"
1397
+ @update:current-page="val => emit('page-change', {
1398
+ currentPage: val,
1399
+ pageSize: (typeof pagination === 'object' ? pagination.pageSize : 10) || 10
1400
+ })"
1401
+ @update:page-size="val => emit('page-change', {
1402
+ currentPage: (typeof pagination === 'object' ? pagination.currentPage : 1) || 1,
1403
+ pageSize: val
1404
+ })"
1405
+ />
1406
+ </div>
1407
+
1408
+ <!-- 渲染隐藏的默认插槽,用于收集列配置(仅渲染 YhTableColumn 子组件) -->
1409
+ <div
1410
+ v-if="$slots.default && (!columns || columns.length === 0)"
1411
+ style="display: none"
1412
+ aria-hidden="true"
1413
+ >
1414
+ <slot />
1415
+ </div>
1416
+ </div>
1417
+ </template>
1418
+
1419
+ <style>
1420
+ @charset "UTF-8";
1421
+ /**
1422
+ * Table 表格组件样式
1423
+ * 极致网格修复方案 (Pseudo-Frame Strategy)
1424
+ * 所有视觉属性均通过主题变量驱动,支持主题定制与暗黑模式
1425
+ */
1426
+ /**
1427
+ * YH-UI CSS Variables
1428
+ * 全局 CSS 变量定义 - 业内最佳主题系统
1429
+ */
1430
+ :root {
1431
+ /* ==================== 密度/紧凑度系统 ==================== */
1432
+ --yh-density-factor: 1;
1433
+ --yh-component-size-default: 32px;
1434
+ --yh-component-size-small: 24px;
1435
+ --yh-component-size-large: 40px;
1436
+ --yh-padding-default: 12px 16px;
1437
+ --yh-padding-small: 8px 12px;
1438
+ --yh-padding-large: 16px 20px;
1439
+ --yh-spacing-unit: 8px;
1440
+ /* ==================== 基础颜色 ==================== */
1441
+ --yh-color-white: #ffffff;
1442
+ --yh-color-black: #000000;
1443
+ /* ==================== 颜色系统 ==================== */
1444
+ /* 主色 */
1445
+ --yh-color-primary: #409eff;
1446
+ --yh-color-primary-light-1: #53a8ff;
1447
+ --yh-color-primary-light-2: #66b1ff;
1448
+ --yh-color-primary-light-3: #79bbff;
1449
+ --yh-color-primary-light-4: #8cc5ff;
1450
+ --yh-color-primary-light-5: #a0cfff;
1451
+ --yh-color-primary-light-6: #b3d8ff;
1452
+ --yh-color-primary-light-7: #c6e2ff;
1453
+ --yh-color-primary-light-8: #d9ecff;
1454
+ --yh-color-primary-light-9: #ecf5ff;
1455
+ --yh-color-primary-dark-2: #337ecc;
1456
+ /* 成功色 */
1457
+ --yh-color-success: #67c23a;
1458
+ --yh-color-success-light-3: #95d475;
1459
+ --yh-color-success-light-5: #b3e19d;
1460
+ --yh-color-success-light-7: #d1edc4;
1461
+ --yh-color-success-light-9: #f0f9eb;
1462
+ --yh-color-success-dark-2: #529b2e;
1463
+ /* 警告色 */
1464
+ --yh-color-warning: #e6a23c;
1465
+ --yh-color-warning-light-3: #eebe77;
1466
+ --yh-color-warning-light-5: #f3d19e;
1467
+ --yh-color-warning-light-7: #f8e3c5;
1468
+ --yh-color-warning-light-9: #fdf6ec;
1469
+ --yh-color-warning-dark-2: #b88230;
1470
+ /* 危险色 */
1471
+ --yh-color-danger: #f56c6c;
1472
+ --yh-color-danger-light-3: #f89898;
1473
+ --yh-color-danger-light-5: #fab6b6;
1474
+ --yh-color-danger-light-7: #fcd3d3;
1475
+ --yh-color-danger-light-9: #fef0f0;
1476
+ --yh-color-danger-dark-2: #c45656;
1477
+ /* 信息色 */
1478
+ --yh-color-info: #909399;
1479
+ --yh-color-info-light-3: #b1b3b8;
1480
+ --yh-color-info-light-5: #c8c9cc;
1481
+ --yh-color-info-light-7: #dedfe0;
1482
+ --yh-color-info-light-9: #f4f4f5;
1483
+ --yh-color-info-dark-2: #73767a;
1484
+ /* 文字颜色 */
1485
+ --yh-text-color-primary: #303133;
1486
+ --yh-text-color-regular: #606266;
1487
+ --yh-text-color-secondary: #909399;
1488
+ --yh-text-color-placeholder: #a8abb2;
1489
+ --yh-text-color-disabled: #c0c4cc;
1490
+ /* 边框颜色 */
1491
+ --yh-border-color: #dcdfe6;
1492
+ --yh-border-color-hover: var(--yh-color-primary);
1493
+ --yh-border-color-light: #e4e7ed;
1494
+ --yh-border-color-lighter: #ebeef5;
1495
+ --yh-border-color-extra-light: #f2f6fc;
1496
+ --yh-border-color-dark: #d4d7de;
1497
+ --yh-border-color-darker: #cdd0d6;
1498
+ /* 填充颜色 */
1499
+ --yh-fill-color: #f0f2f5;
1500
+ --yh-fill-color-light: #f5f7fa;
1501
+ --yh-fill-color-lighter: #fafafa;
1502
+ --yh-fill-color-extra-light: #fafcff;
1503
+ --yh-fill-color-dark: #ebedf0;
1504
+ --yh-fill-color-darker: #e6e8eb;
1505
+ --yh-fill-color-blank: #ffffff;
1506
+ /* 背景颜色 */
1507
+ --yh-bg-color: #ffffff;
1508
+ --yh-bg-color-page: #f2f3f5;
1509
+ --yh-bg-color-overlay: #ffffff;
1510
+ /* ==================== 间距系统 ==================== */
1511
+ --yh-spacing-none: 0;
1512
+ --yh-spacing-xs: 4px;
1513
+ --yh-spacing-sm: 8px;
1514
+ --yh-spacing-md: 16px;
1515
+ --yh-spacing-lg: 24px;
1516
+ --yh-spacing-xl: 32px;
1517
+ --yh-spacing-xxl: 48px;
1518
+ /* ==================== 圆角系统 ==================== */
1519
+ --yh-radius-none: 0;
1520
+ --yh-radius-sm: 2px;
1521
+ --yh-radius-base: 4px;
1522
+ --yh-radius-md: 8px;
1523
+ --yh-radius-lg: 12px;
1524
+ --yh-radius-xl: 16px;
1525
+ --yh-radius-round: 20px;
1526
+ --yh-radius-circle: 50%;
1527
+ /* ==================== 字体系统 ==================== */
1528
+ --yh-font-family:
1529
+ -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans',
1530
+ sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
1531
+ /* 字号 */
1532
+ --yh-font-size-xs: 12px;
1533
+ --yh-font-size-sm: 13px;
1534
+ --yh-font-size-base: 14px;
1535
+ --yh-font-size-md: 16px;
1536
+ --yh-font-size-lg: 18px;
1537
+ --yh-font-size-xl: 20px;
1538
+ --yh-font-size-xxl: 24px;
1539
+ /* 行高 */
1540
+ --yh-line-height-none: 1;
1541
+ --yh-line-height-tight: 1.25;
1542
+ --yh-line-height-snug: 1.375;
1543
+ --yh-line-height-normal: 1.5;
1544
+ --yh-line-height-relaxed: 1.625;
1545
+ --yh-line-height-loose: 2;
1546
+ /* 字重 */
1547
+ --yh-font-weight-light: 300;
1548
+ --yh-font-weight-normal: 400;
1549
+ --yh-font-weight-medium: 500;
1550
+ --yh-font-weight-semibold: 600;
1551
+ --yh-font-weight-bold: 700;
1552
+ /* ==================== 阴影系统 ==================== */
1553
+ --yh-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
1554
+ --yh-shadow-base: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);
1555
+ --yh-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
1556
+ --yh-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
1557
+ --yh-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
1558
+ /* ==================== 过渡动效 ==================== */
1559
+ --yh-duration-fast: 150ms;
1560
+ --yh-duration-base: 200ms;
1561
+ --yh-duration-slow: 300ms;
1562
+ --yh-timing-ease: ease;
1563
+ --yh-timing-ease-in: cubic-bezier(0.4, 0, 1, 1);
1564
+ --yh-timing-ease-out: cubic-bezier(0, 0, 0.2, 1);
1565
+ --yh-timing-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
1566
+ --yh-timing-linear: linear;
1567
+ --yh-transition-base: all var(--yh-duration-base) var(--yh-timing-ease-in-out);
1568
+ --yh-transition-fast: all var(--yh-duration-fast) var(--yh-timing-ease-in-out);
1569
+ --yh-transition-slow: all var(--yh-duration-slow) var(--yh-timing-ease-in-out);
1570
+ /* ==================== 层级系统 ==================== */
1571
+ --yh-z-index-normal: 1;
1572
+ --yh-z-index-top: 1000;
1573
+ --yh-z-index-popper: 2000;
1574
+ --yh-z-index-overlay: 2001;
1575
+ --yh-z-index-modal: 2002;
1576
+ --yh-z-index-popover: 2003;
1577
+ --yh-z-index-tooltip: 2004;
1578
+ --yh-z-index-loading: 2005;
1579
+ /* ==================== 组件尺寸 ==================== */
1580
+ /* Large */
1581
+ --yh-component-size-large: 40px;
1582
+ --yh-component-size-large-font: 14px;
1583
+ --yh-component-size-large-padding: 20px;
1584
+ /* Default */
1585
+ --yh-component-size-default: 32px;
1586
+ --yh-component-size-default-font: 14px;
1587
+ --yh-component-size-default-padding: 16px;
1588
+ /* Small */
1589
+ --yh-component-size-small: 24px;
1590
+ --yh-component-size-small-font: 12px;
1591
+ --yh-component-size-small-padding: 12px;
1592
+ /* ==================== 组件语义化变量 ==================== */
1593
+ --yh-border-radius-base: var(--yh-radius-base);
1594
+ --yh-border-radius-small: var(--yh-radius-sm);
1595
+ --yh-border-radius-round: var(--yh-radius-round);
1596
+ /* Message 消息提示 */
1597
+ --yh-message-bg-color: var(--yh-bg-color-overlay);
1598
+ --yh-message-border-color: var(--yh-border-color-lighter);
1599
+ --yh-message-shadow: var(--yh-shadow-lg);
1600
+ --yh-message-text-color: var(--yh-text-color-primary);
1601
+ --yh-message-close-color: var(--yh-text-color-secondary);
1602
+ --yh-message-close-hover-color: var(--yh-text-color-primary);
1603
+ /* Notification 通知 */
1604
+ --yh-notification-bg-color: var(--yh-bg-color-overlay);
1605
+ --yh-notification-border-color: var(--yh-border-color-lighter);
1606
+ --yh-notification-shadow: var(--yh-shadow-lg);
1607
+ --yh-notification-title-color: var(--yh-text-color-primary);
1608
+ --yh-notification-content-color: var(--yh-text-color-regular);
1609
+ /* Badge 徽标 */
1610
+ --yh-badge-bg-color: var(--yh-color-danger);
1611
+ --yh-badge-text-color: #ffffff;
1612
+ --yh-badge-border-color: var(--yh-bg-color);
1613
+ /* Card 卡片 */
1614
+ --yh-card-bg-color: var(--yh-bg-color-overlay);
1615
+ --yh-card-border-color: var(--yh-border-color-lighter);
1616
+ --yh-card-shadow: var(--yh-shadow-base);
1617
+ --yh-card-header-padding: 18px 20px;
1618
+ --yh-card-body-padding: 20px;
1619
+ /* Input 输入框 */
1620
+ --yh-input-bg-color: var(--yh-fill-color-blank);
1621
+ --yh-input-text-color: var(--yh-text-color-regular);
1622
+ --yh-input-border-color: var(--yh-border-color);
1623
+ --yh-input-hover-border-color: var(--yh-color-primary);
1624
+ --yh-input-focus-border-color: var(--yh-color-primary);
1625
+ --yh-input-placeholder-color: var(--yh-text-color-placeholder);
1626
+ --yh-input-icon-color: var(--yh-text-color-placeholder);
1627
+ --yh-input-disabled-bg-color: var(--yh-fill-color-light);
1628
+ --yh-input-disabled-text-color: var(--yh-text-color-disabled);
1629
+ --yh-input-disabled-border-color: var(--yh-border-color-light);
1630
+ /* Image 图片 */
1631
+ --yh-image-placeholder-bg-color: var(--yh-fill-color-light);
1632
+ --yh-image-placeholder-text-color: var(--yh-text-color-placeholder);
1633
+ --yh-image-error-bg-color: var(--yh-fill-color-extra-light);
1634
+ --yh-image-error-text-color: var(--yh-text-color-placeholder);
1635
+ /* Image Viewer 预览器 */
1636
+ --yh-image-viewer-mask-bg-color: rgba(0, 0, 0, 0.5);
1637
+ --yh-image-viewer-btn-bg-color: var(--yh-text-color-regular);
1638
+ --yh-image-viewer-btn-color: #ffffff;
1639
+ --yh-image-viewer-btn-hover-bg-color: var(--yh-color-primary);
1640
+ /* Calendar 日历 */
1641
+ --yh-calendar-bg: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
1642
+ --yh-calendar-border-color: rgba(0, 0, 0, 0.06);
1643
+ --yh-calendar-border-radius: var(--yh-radius-xl);
1644
+ --yh-calendar-header-bg: rgba(255, 255, 255, 0.95);
1645
+ --yh-calendar-header-border: rgba(0, 0, 0, 0.04);
1646
+ --yh-calendar-header-padding: 18px 22px;
1647
+ --yh-calendar-body-padding: 14px 18px 18px;
1648
+ /* Calendar 尺寸 */
1649
+ --yh-calendar-cell-height: 85px;
1650
+ --yh-calendar-cell-height-small: 52px;
1651
+ --yh-calendar-cell-height-large: 110px;
1652
+ --yh-calendar-cell-radius: 10px;
1653
+ --yh-calendar-cell-radius-small: 6px;
1654
+ --yh-calendar-cell-radius-large: 12px;
1655
+ /* Calendar 颜色 */
1656
+ --yh-calendar-primary: var(--yh-color-primary);
1657
+ --yh-calendar-primary-light: rgba(59, 130, 246, 0.1);
1658
+ --yh-calendar-selected-bg: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
1659
+ --yh-calendar-selected-border: rgba(59, 130, 246, 0.4);
1660
+ --yh-calendar-today-dot: var(--yh-color-primary);
1661
+ --yh-calendar-weekend-color: #f97316;
1662
+ --yh-calendar-disabled-color: var(--yh-text-color-disabled);
1663
+ --yh-calendar-other-month-opacity: 0.35;
1664
+ /* Calendar 假日 */
1665
+ --yh-calendar-holiday-color: var(--yh-color-success);
1666
+ --yh-calendar-holiday-bg: rgba(16, 185, 129, 0.12);
1667
+ --yh-calendar-holiday-border: rgba(16, 185, 129, 0.25);
1668
+ --yh-calendar-workday-color: var(--yh-color-warning);
1669
+ --yh-calendar-workday-bg: rgba(245, 158, 11, 0.12);
1670
+ --yh-calendar-workday-border: rgba(245, 158, 11, 0.25);
1671
+ /* Calendar 范围选择 */
1672
+ --yh-calendar-range-bg: rgba(59, 130, 246, 0.08);
1673
+ --yh-calendar-range-border: rgba(59, 130, 246, 0.2);
1674
+ /* Calendar 字体 */
1675
+ --yh-calendar-weekday-font-size: var(--yh-font-size-sm);
1676
+ --yh-calendar-weekday-color: var(--yh-text-color-secondary);
1677
+ --yh-calendar-day-font-size: 15px;
1678
+ --yh-calendar-day-color: var(--yh-text-color-primary);
1679
+ --yh-calendar-badge-font-size: 9px;
1680
+ /* Table 表格 */
1681
+ --yh-table-border-color: var(--yh-border-color-lighter);
1682
+ --yh-table-header-bg: var(--yh-fill-color-light);
1683
+ --yh-table-header-text-color: var(--yh-text-color-primary);
1684
+ --yh-table-header-font-weight: var(--yh-font-weight-semibold);
1685
+ --yh-table-row-bg: var(--yh-bg-color);
1686
+ --yh-table-row-hover-bg: var(--yh-fill-color-light);
1687
+ --yh-table-row-stripe-bg: var(--yh-fill-color-lighter);
1688
+ --yh-table-row-current-bg: var(--yh-color-primary-light-9);
1689
+ --yh-table-row-selected-bg: var(--yh-color-primary-light-8);
1690
+ --yh-table-row-success-bg: var(--yh-color-success-light-9);
1691
+ --yh-table-row-warning-bg: var(--yh-color-warning-light-9);
1692
+ --yh-table-text-color: var(--yh-text-color-regular);
1693
+ --yh-table-empty-text-color: var(--yh-text-color-secondary);
1694
+ --yh-table-font-size: var(--yh-font-size-base);
1695
+ --yh-table-cell-padding: 12px 0;
1696
+ --yh-table-cell-spacing: 12px;
1697
+ --yh-table-fixed-left-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.15);
1698
+ --yh-table-fixed-right-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.15);
1699
+ /* ==================== 边框基础 ==================== */
1700
+ --yh-border-width: 1px;
1701
+ --yh-border-style: solid;
1702
+ --yh-border: var(--yh-border-width) var(--yh-border-style) var(--yh-border-color);
1703
+ /* ==================== 断点系统 ==================== */
1704
+ --yh-breakpoint-xs: 0;
1705
+ --yh-breakpoint-sm: 576px;
1706
+ --yh-breakpoint-md: 768px;
1707
+ --yh-breakpoint-lg: 992px;
1708
+ --yh-breakpoint-xl: 1200px;
1709
+ --yh-breakpoint-xxl: 1400px;
1710
+ /* ==================== 字体系统扩展 ==================== */
1711
+ --yh-font-family-monospace:
1712
+ 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
1713
+ --yh-font-family-serif: Georgia, Cambria, 'Times New Roman', Times, serif;
1714
+ /* ==================== 无障碍/聚焦系统 ==================== */
1715
+ --yh-focus-ring-color: var(--yh-color-primary);
1716
+ --yh-focus-ring-width: 2px;
1717
+ --yh-focus-ring-offset: 2px;
1718
+ --yh-focus-ring-opacity: 0.2;
1719
+ --yh-focus-ring:
1720
+ 0 0 0 var(--yh-focus-ring-offset) var(--yh-bg-color),
1721
+ 0 0 0 calc(var(--yh-focus-ring-offset) + var(--yh-focus-ring-width)) var(--yh-focus-ring-color);
1722
+ /* 高对比度模式支持 */
1723
+ --yh-high-contrast-outline: 2px solid transparent;
1724
+ --yh-high-contrast-outline-offset: 2px;
1725
+ /* ==================== 滚动条样式 ==================== */
1726
+ --yh-scrollbar-width: 6px;
1727
+ --yh-scrollbar-thumb-color: var(--yh-text-color-disabled);
1728
+ --yh-scrollbar-thumb-hover-color: var(--yh-text-color-secondary);
1729
+ --yh-scrollbar-track-color: transparent;
1730
+ --yh-scrollbar-thumb-radius: 3px;
1731
+ /* ==================== 遮罩层 ==================== */
1732
+ --yh-mask-color: rgba(0, 0, 0, 0.5);
1733
+ --yh-mask-color-light: rgba(0, 0, 0, 0.3);
1734
+ --yh-mask-color-extra-light: rgba(0, 0, 0, 0.1);
1735
+ }
1736
+
1737
+ /* ==================== 暗黑模式 ==================== */
1738
+ html.dark {
1739
+ --yh-color-primary: #409eff;
1740
+ --yh-color-primary-light-3: #3375b9;
1741
+ --yh-color-primary-light-5: #2a598a;
1742
+ --yh-color-primary-light-7: #213d5b;
1743
+ --yh-color-primary-light-9: #18222c;
1744
+ --yh-color-primary-dark-2: #66b1ff;
1745
+ --yh-color-success: #67c23a;
1746
+ --yh-color-success-light-3: #4e8e2f;
1747
+ --yh-color-success-light-5: #3e6b27;
1748
+ --yh-color-success-light-7: #2d481f;
1749
+ --yh-color-success-light-9: #1d2518;
1750
+ --yh-color-warning: #e6a23c;
1751
+ --yh-color-warning-light-3: #a77730;
1752
+ --yh-color-warning-light-5: #7d5b28;
1753
+ --yh-color-warning-light-7: #533f20;
1754
+ --yh-color-warning-light-9: #292218;
1755
+ --yh-color-danger: #f56c6c;
1756
+ --yh-color-danger-light-3: #b25252;
1757
+ --yh-color-danger-light-5: #854040;
1758
+ --yh-color-danger-light-7: #582e2e;
1759
+ --yh-color-danger-light-9: #2b1d1d;
1760
+ --yh-color-info: #909399;
1761
+ --yh-color-info-light-3: #6b6d71;
1762
+ --yh-color-info-light-5: #525457;
1763
+ --yh-color-info-light-7: #393b3e;
1764
+ --yh-color-info-light-9: #202124;
1765
+ --yh-text-color-primary: #e5eaf3;
1766
+ --yh-text-color-regular: #cfd3dc;
1767
+ --yh-text-color-secondary: #a3a6ad;
1768
+ --yh-text-color-placeholder: #8d9095;
1769
+ --yh-text-color-disabled: #6c6e72;
1770
+ --yh-border-color: #4c4d4f;
1771
+ --yh-border-color-light: #414243;
1772
+ --yh-border-color-lighter: #363637;
1773
+ --yh-border-color-extra-light: #2b2b2c;
1774
+ --yh-border-color-dark: #58585b;
1775
+ --yh-border-color-darker: #636466;
1776
+ --yh-fill-color: #303030;
1777
+ --yh-fill-color-light: #262727;
1778
+ --yh-fill-color-lighter: #1d1d1d;
1779
+ --yh-fill-color-extra-light: #191919;
1780
+ --yh-fill-color-dark: #39393a;
1781
+ --yh-fill-color-darker: #424243;
1782
+ --yh-fill-color-blank: transparent;
1783
+ --yh-bg-color: #141414;
1784
+ --yh-bg-color-page: #0a0a0a;
1785
+ --yh-bg-color-overlay: #1d1e1f;
1786
+ /* 组件暗色模式覆盖 */
1787
+ --yh-message-bg-color: var(--yh-bg-color-overlay);
1788
+ --yh-message-border-color: var(--yh-border-color-lighter);
1789
+ --yh-notification-bg-color: var(--yh-bg-color-overlay);
1790
+ --yh-notification-border-color: var(--yh-border-color-lighter);
1791
+ --yh-badge-border-color: var(--yh-bg-color);
1792
+ --yh-card-bg-color: var(--yh-bg-color-overlay);
1793
+ --yh-card-border-color: var(--yh-border-color-lighter);
1794
+ /* Calendar 暗黑模式 */
1795
+ --yh-calendar-bg: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
1796
+ --yh-calendar-border-color: rgba(255, 255, 255, 0.08);
1797
+ --yh-calendar-header-bg: rgba(30, 30, 30, 0.95);
1798
+ --yh-calendar-header-border: rgba(255, 255, 255, 0.06);
1799
+ --yh-calendar-day-color: var(--yh-text-color-primary);
1800
+ --yh-calendar-weekday-color: var(--yh-text-color-secondary);
1801
+ --yh-calendar-selected-bg: linear-gradient(
1802
+ 135deg,
1803
+ rgba(59, 130, 246, 0.2) 0%,
1804
+ rgba(59, 130, 246, 0.1) 100%
1805
+ );
1806
+ /* Table 暗黑模式 */
1807
+ --yh-table-border-color: var(--yh-border-color-lighter);
1808
+ --yh-table-header-bg: var(--yh-fill-color-dark);
1809
+ --yh-table-header-text-color: var(--yh-text-color-primary);
1810
+ --yh-table-row-bg: var(--yh-bg-color);
1811
+ --yh-table-row-hover-bg: var(--yh-fill-color);
1812
+ --yh-table-row-stripe-bg: var(--yh-fill-color-light);
1813
+ --yh-table-row-current-bg: var(--yh-color-primary-light-9);
1814
+ --yh-table-row-selected-bg: var(--yh-color-primary-light-9);
1815
+ --yh-table-row-success-bg: var(--yh-color-success-light-9);
1816
+ --yh-table-row-warning-bg: var(--yh-color-warning-light-9);
1817
+ --yh-table-fixed-left-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, 0.3);
1818
+ --yh-table-fixed-right-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, 0.3);
1819
+ /* 遮罩层暗黑模式 */
1820
+ --yh-mask-color: rgba(0, 0, 0, 0.7);
1821
+ --yh-mask-color-light: rgba(0, 0, 0, 0.5);
1822
+ --yh-mask-color-extra-light: rgba(0, 0, 0, 0.3);
1823
+ /* 滚动条暗黑模式 */
1824
+ --yh-scrollbar-thumb-color: var(--yh-fill-color-darker);
1825
+ --yh-scrollbar-thumb-hover-color: var(--yh-text-color-placeholder);
1826
+ }
1827
+
1828
+ /* ==================== 减少动画偏好支持 ==================== */
1829
+ @media (prefers-reduced-motion: reduce) {
1830
+ :root,
1831
+ html.dark {
1832
+ --yh-duration-fast: 0ms;
1833
+ --yh-duration-base: 0ms;
1834
+ --yh-duration-slow: 0ms;
1835
+ --yh-transition-base: none;
1836
+ --yh-transition-fast: none;
1837
+ --yh-transition-slow: none;
1838
+ }
1839
+ *,
1840
+ *::before,
1841
+ *::after {
1842
+ animation-duration: 0.01ms !important;
1843
+ animation-iteration-count: 1 !important;
1844
+ transition-duration: 0.01ms !important;
1845
+ scroll-behavior: auto !important;
1846
+ }
1847
+ }
1848
+ /* ==================== 高对比度模式支持 ==================== */
1849
+ @media (prefers-contrast: high) {
1850
+ :root {
1851
+ --yh-border-color: #000000;
1852
+ --yh-border-color-light: #333333;
1853
+ --yh-text-color-primary: #000000;
1854
+ --yh-text-color-regular: #1a1a1a;
1855
+ --yh-focus-ring-width: 3px;
1856
+ --yh-focus-ring-color: #000000;
1857
+ }
1858
+ html.dark {
1859
+ --yh-border-color: #ffffff;
1860
+ --yh-border-color-light: #cccccc;
1861
+ --yh-text-color-primary: #ffffff;
1862
+ --yh-text-color-regular: #e5e5e5;
1863
+ --yh-focus-ring-color: #ffffff;
1864
+ }
1865
+ }
1866
+ /* ==================== 强制颜色模式支持 (Windows 高对比度) ==================== */
1867
+ @media (forced-colors: active) {
1868
+ :root {
1869
+ --yh-color-primary: LinkText;
1870
+ --yh-border-color: ButtonBorder;
1871
+ --yh-bg-color: Canvas;
1872
+ --yh-text-color-primary: CanvasText;
1873
+ --yh-focus-ring-color: Highlight;
1874
+ }
1875
+ }
1876
+ .yh-table {
1877
+ position: relative;
1878
+ box-sizing: border-box;
1879
+ width: 100%;
1880
+ display: flex;
1881
+ flex-direction: column;
1882
+ background-color: var(--yh-table-row-bg);
1883
+ font-size: var(--yh-table-font-size);
1884
+ color: var(--yh-table-text-color);
1885
+ }
1886
+ .yh-table__inner-wrapper {
1887
+ position: relative;
1888
+ overflow: hidden;
1889
+ width: 100%;
1890
+ display: flex;
1891
+ flex-direction: column;
1892
+ box-sizing: border-box;
1893
+ }
1894
+
1895
+ .yh-table table {
1896
+ width: 100%;
1897
+ margin: 0;
1898
+ padding: 0;
1899
+ border-collapse: separate;
1900
+ border-spacing: 0;
1901
+ table-layout: fixed;
1902
+ }
1903
+ .yh-table__toolbar {
1904
+ display: flex;
1905
+ align-items: center;
1906
+ justify-content: space-between;
1907
+ padding: 10px 12px;
1908
+ margin-bottom: 8px;
1909
+ min-height: 40px;
1910
+ box-sizing: border-box;
1911
+ }
1912
+
1913
+ .yh-table__toolbar-left {
1914
+ display: flex;
1915
+ align-items: center;
1916
+ flex-wrap: wrap;
1917
+ gap: 8px;
1918
+ }
1919
+
1920
+ .yh-table__toolbar-right {
1921
+ display: flex;
1922
+ align-items: center;
1923
+ flex-wrap: wrap;
1924
+ gap: 8px;
1925
+ margin-left: 16px;
1926
+ }
1927
+
1928
+ .yh-table__header-wrapper {
1929
+ overflow: hidden;
1930
+ background-color: var(--yh-table-header-bg);
1931
+ }
1932
+
1933
+ .yh-table__body-wrapper {
1934
+ flex: 1;
1935
+ overflow: auto;
1936
+ position: relative;
1937
+ }
1938
+ .yh-table__body-wrapper--virtual {
1939
+ position: relative;
1940
+ }
1941
+
1942
+ .yh-table__virtual-phantom {
1943
+ width: 100%;
1944
+ pointer-events: none;
1945
+ }
1946
+
1947
+ .yh-table__body--virtual {
1948
+ position: absolute;
1949
+ top: 0;
1950
+ left: 0;
1951
+ right: 0;
1952
+ will-change: transform;
1953
+ contain: layout style;
1954
+ }
1955
+
1956
+ .yh-table__header-cell {
1957
+ box-sizing: border-box;
1958
+ padding: var(--yh-table-cell-padding);
1959
+ background-color: var(--yh-table-header-bg);
1960
+ color: var(--yh-table-header-text-color);
1961
+ font-weight: var(--yh-table-header-font-weight);
1962
+ text-align: left;
1963
+ vertical-align: middle;
1964
+ border-bottom: var(--yh-border-width) var(--yh-border-style) var(--yh-table-border-color);
1965
+ background-clip: padding-box;
1966
+ }
1967
+ .yh-table__header-cell.is-group {
1968
+ text-align: center;
1969
+ }
1970
+ .yh-table__header-cell.is-fixed-left {
1971
+ position: sticky;
1972
+ z-index: 10;
1973
+ background-color: var(--yh-table-header-bg);
1974
+ }
1975
+ .yh-table__header-cell.is-fixed-right {
1976
+ position: sticky;
1977
+ z-index: 10;
1978
+ background-color: var(--yh-table-header-bg);
1979
+ }
1980
+
1981
+ .yh-table__cell {
1982
+ box-sizing: border-box;
1983
+ padding: var(--yh-table-cell-padding);
1984
+ background-color: var(--yh-table-row-bg);
1985
+ vertical-align: middle;
1986
+ border-bottom: var(--yh-border-width) var(--yh-border-style) var(--yh-table-border-color);
1987
+ transition: background-color var(--yh-duration-base) var(--yh-timing-ease);
1988
+ background-clip: padding-box;
1989
+ }
1990
+ .yh-table__cell.is-fixed-left {
1991
+ position: sticky;
1992
+ z-index: 2;
1993
+ background-color: var(--yh-table-row-bg);
1994
+ }
1995
+ .yh-table__cell.is-fixed-right {
1996
+ position: sticky;
1997
+ z-index: 2;
1998
+ background-color: var(--yh-table-row-bg);
1999
+ }
2000
+
2001
+ .yh-table__cell-content {
2002
+ padding: 0 var(--yh-table-cell-spacing);
2003
+ display: flex;
2004
+ align-items: center;
2005
+ box-sizing: border-box;
2006
+ word-break: break-all;
2007
+ line-height: var(--yh-line-height-normal);
2008
+ }
2009
+ .yh-table__cell-content.is-ellipsis {
2010
+ overflow: hidden;
2011
+ text-overflow: ellipsis;
2012
+ white-space: nowrap;
2013
+ }
2014
+
2015
+ .yh-table__selection-cell {
2016
+ text-align: center;
2017
+ padding-left: 0;
2018
+ padding-right: 0;
2019
+ }
2020
+ .yh-table__selection-cell input[type=checkbox],
2021
+ .yh-table__selection-cell input[type=radio] {
2022
+ margin: 0;
2023
+ cursor: pointer;
2024
+ vertical-align: middle;
2025
+ }
2026
+
2027
+ .yh-table__expand-cell {
2028
+ text-align: center;
2029
+ padding-left: 0;
2030
+ padding-right: 0;
2031
+ }
2032
+
2033
+ .yh-table__index-cell {
2034
+ text-align: center;
2035
+ padding-left: 0;
2036
+ padding-right: 0;
2037
+ }
2038
+
2039
+ .yh-table.is-border .yh-table__header-cell,
2040
+ .yh-table.is-border .yh-table__cell {
2041
+ border-right: var(--yh-border-width) var(--yh-border-style) var(--yh-table-border-color);
2042
+ }
2043
+ .yh-table.is-border .yh-table__inner-wrapper::after {
2044
+ content: "";
2045
+ position: absolute;
2046
+ left: 0;
2047
+ top: 0;
2048
+ right: 0;
2049
+ bottom: 0;
2050
+ border: var(--yh-border-width) var(--yh-border-style) var(--yh-table-border-color);
2051
+ pointer-events: none;
2052
+ z-index: 20;
2053
+ }
2054
+ .yh-table.is-border .yh-table__header-wrapper {
2055
+ border-bottom: var(--yh-border-width) var(--yh-border-style) var(--yh-table-border-color);
2056
+ }
2057
+ .yh-table.is-stripe .yh-table__row:nth-child(even) {
2058
+ background-color: var(--yh-table-row-stripe-bg);
2059
+ }
2060
+ .yh-table.is-stripe .yh-table__row:nth-child(even) .yh-table__cell {
2061
+ background-color: var(--yh-table-row-stripe-bg);
2062
+ }
2063
+ .yh-table__row:hover {
2064
+ background-color: var(--yh-table-row-hover-bg);
2065
+ }
2066
+ .yh-table__row:hover .yh-table__cell {
2067
+ background-color: var(--yh-table-row-hover-bg);
2068
+ }
2069
+ .yh-table__row.is-current {
2070
+ background-color: var(--yh-table-row-current-bg) !important;
2071
+ }
2072
+ .yh-table__row.is-current .yh-table__cell {
2073
+ background-color: var(--yh-table-row-current-bg) !important;
2074
+ }
2075
+
2076
+ .yh-table--large {
2077
+ --yh-table-cell-padding: 14px 0;
2078
+ --yh-table-cell-spacing: 14px;
2079
+ --yh-table-font-size: var(--yh-font-size-md);
2080
+ }
2081
+
2082
+ .yh-table--small {
2083
+ --yh-table-cell-padding: 8px 0;
2084
+ --yh-table-cell-spacing: 8px;
2085
+ --yh-table-font-size: var(--yh-font-size-sm);
2086
+ }
2087
+
2088
+ .yh-table__sort-icon {
2089
+ display: inline-flex;
2090
+ flex-direction: column;
2091
+ align-items: center;
2092
+ height: 14px;
2093
+ width: 24px;
2094
+ vertical-align: middle;
2095
+ cursor: pointer;
2096
+ margin-left: 4px;
2097
+ flex-shrink: 0;
2098
+ position: relative;
2099
+ overflow: initial;
2100
+ }
2101
+ .yh-table__sort-icon .sort-caret {
2102
+ width: 0;
2103
+ height: 0;
2104
+ border: solid 5px transparent;
2105
+ position: absolute;
2106
+ left: 7px;
2107
+ }
2108
+ .yh-table__sort-icon .sort-caret.ascending {
2109
+ border-bottom-color: var(--yh-text-color-placeholder, #c0c4cc);
2110
+ top: -5px;
2111
+ }
2112
+ .yh-table__sort-icon .sort-caret.ascending.is-active {
2113
+ border-bottom-color: var(--yh-color-primary, #409eff);
2114
+ }
2115
+ .yh-table__sort-icon .sort-caret.descending {
2116
+ border-top-color: var(--yh-text-color-placeholder, #c0c4cc);
2117
+ bottom: -3px;
2118
+ }
2119
+ .yh-table__sort-icon .sort-caret.descending.is-active {
2120
+ border-top-color: var(--yh-color-primary, #409eff);
2121
+ }
2122
+
2123
+ .yh-table__header-cell.is-sortable {
2124
+ cursor: pointer;
2125
+ user-select: none;
2126
+ }
2127
+ .yh-table__header-cell.is-sortable:hover {
2128
+ background-color: var(--yh-table-row-hover-bg, rgba(0, 0, 0, 0.02));
2129
+ }
2130
+
2131
+ .yh-table__tree-indent {
2132
+ display: inline-flex;
2133
+ align-items: center;
2134
+ vertical-align: middle;
2135
+ flex-shrink: 0;
2136
+ }
2137
+
2138
+ .yh-table__tree-icon {
2139
+ display: inline-flex;
2140
+ align-items: center;
2141
+ justify-content: center;
2142
+ width: 16px;
2143
+ height: 16px;
2144
+ cursor: pointer;
2145
+ transition: transform 0.2s ease;
2146
+ transform: rotate(0deg);
2147
+ color: var(--yh-text-color-secondary, #909399);
2148
+ margin-right: 4px;
2149
+ flex-shrink: 0;
2150
+ }
2151
+ .yh-table__tree-icon.is-expanded {
2152
+ transform: rotate(90deg);
2153
+ }
2154
+ .yh-table__tree-icon svg {
2155
+ width: 16px;
2156
+ height: 16px;
2157
+ }
2158
+
2159
+ .yh-table__tree-leaf-spacer {
2160
+ display: inline-block;
2161
+ width: 16px;
2162
+ height: 16px;
2163
+ margin-right: 4px;
2164
+ flex-shrink: 0;
2165
+ }
2166
+
2167
+ .yh-table__expand-icon {
2168
+ display: inline-flex;
2169
+ align-items: center;
2170
+ justify-content: center;
2171
+ width: 16px;
2172
+ height: 16px;
2173
+ cursor: pointer;
2174
+ transition: transform 0.2s ease;
2175
+ transform: rotate(0deg);
2176
+ color: var(--yh-text-color-secondary, #909399);
2177
+ }
2178
+ .yh-table__expand-icon.is-expanded {
2179
+ transform: rotate(90deg);
2180
+ }
2181
+ .yh-table__expand-icon svg {
2182
+ width: 16px;
2183
+ height: 16px;
2184
+ }
2185
+
2186
+ .yh-table__expanded-row td {
2187
+ padding: 0;
2188
+ border-bottom: var(--yh-border-width) var(--yh-border-style) var(--yh-table-border-color);
2189
+ background-color: var(--yh-table-row-bg);
2190
+ }
2191
+
2192
+ .yh-table__footer-wrapper {
2193
+ overflow: hidden;
2194
+ border-top: var(--yh-border-width) var(--yh-border-style) var(--yh-table-border-color);
2195
+ flex-shrink: 0;
2196
+ }
2197
+
2198
+ .yh-table__summary-row .yh-table__cell {
2199
+ font-weight: 600;
2200
+ background-color: var(--yh-table-header-bg, #fafafa);
2201
+ }
2202
+
2203
+ .yh-table__resize-handle {
2204
+ position: absolute;
2205
+ right: -3px;
2206
+ top: 0;
2207
+ bottom: 0;
2208
+ width: 7px;
2209
+ cursor: col-resize;
2210
+ z-index: 11;
2211
+ }
2212
+ .yh-table__resize-handle::after {
2213
+ content: "";
2214
+ position: absolute;
2215
+ top: 25%;
2216
+ right: 3px;
2217
+ bottom: 25%;
2218
+ width: 1px;
2219
+ background-color: transparent;
2220
+ transition: background-color 0.15s ease;
2221
+ }
2222
+ .yh-table__resize-handle:hover::after {
2223
+ background-color: var(--yh-color-primary, #409eff);
2224
+ }
2225
+
2226
+ .yh-table__header-cell {
2227
+ position: relative;
2228
+ }
2229
+
2230
+ .yh-table__resize-line {
2231
+ position: absolute;
2232
+ top: 0;
2233
+ bottom: 0;
2234
+ width: 1px;
2235
+ background-color: var(--yh-color-primary, #409eff);
2236
+ z-index: 30;
2237
+ pointer-events: none;
2238
+ }
2239
+
2240
+ .yh-table.is-resizing {
2241
+ cursor: col-resize !important;
2242
+ user-select: none;
2243
+ }
2244
+ .yh-table__row.is-row-draggable {
2245
+ cursor: grab;
2246
+ }
2247
+ .yh-table__row.is-row-draggable:active {
2248
+ cursor: grabbing;
2249
+ }
2250
+ .yh-table__row.is-dragging {
2251
+ opacity: 0.4;
2252
+ background-color: var(--yh-color-primary-light-9, #ecf5ff) !important;
2253
+ }
2254
+ .yh-table__row.is-dragging .yh-table__cell {
2255
+ background-color: var(--yh-color-primary-light-9, #ecf5ff) !important;
2256
+ }
2257
+ .yh-table__row.is-drop-target-above {
2258
+ box-shadow: inset 0 2px 0 0 var(--yh-color-primary, #409eff);
2259
+ }
2260
+ .yh-table__row.is-drop-target-above .yh-table__cell {
2261
+ box-shadow: inset 0 2px 0 0 var(--yh-color-primary, #409eff);
2262
+ }
2263
+ .yh-table__row.is-drop-target-below {
2264
+ box-shadow: inset 0 -2px 0 0 var(--yh-color-primary, #409eff);
2265
+ }
2266
+ .yh-table__row.is-drop-target-below .yh-table__cell {
2267
+ box-shadow: inset 0 -2px 0 0 var(--yh-color-primary, #409eff);
2268
+ }
2269
+
2270
+ .yh-table__drag-handle {
2271
+ display: inline-flex;
2272
+ align-items: center;
2273
+ justify-content: center;
2274
+ cursor: grab;
2275
+ color: var(--yh-text-color-placeholder, #c0c4cc);
2276
+ margin-right: 8px;
2277
+ flex-shrink: 0;
2278
+ }
2279
+ .yh-table__drag-handle:hover {
2280
+ color: var(--yh-color-primary, #409eff);
2281
+ }
2282
+ .yh-table__drag-handle:active {
2283
+ cursor: grabbing;
2284
+ }
2285
+ .yh-table__drag-handle svg {
2286
+ width: 14px;
2287
+ height: 14px;
2288
+ }
2289
+
2290
+ .yh-table__header-cell.is-column-draggable {
2291
+ cursor: grab;
2292
+ }
2293
+ .yh-table__header-cell.is-column-draggable:active {
2294
+ cursor: grabbing;
2295
+ }
2296
+ .yh-table__header-cell.is-column-dragging {
2297
+ opacity: 0.4;
2298
+ background-color: var(--yh-color-primary-light-9, #ecf5ff) !important;
2299
+ }
2300
+ .yh-table__header-cell.is-column-drop-left {
2301
+ position: relative;
2302
+ }
2303
+ .yh-table__header-cell.is-column-drop-left::before {
2304
+ content: "";
2305
+ position: absolute;
2306
+ left: -1px;
2307
+ top: 0;
2308
+ bottom: 0;
2309
+ width: 2px;
2310
+ background-color: var(--yh-color-primary, #409eff);
2311
+ z-index: 10;
2312
+ }
2313
+ .yh-table__header-cell.is-column-drop-right {
2314
+ position: relative;
2315
+ }
2316
+ .yh-table__header-cell.is-column-drop-right::after {
2317
+ content: "";
2318
+ position: absolute;
2319
+ right: -1px;
2320
+ top: 0;
2321
+ bottom: 0;
2322
+ width: 2px;
2323
+ background-color: var(--yh-color-primary, #409eff);
2324
+ z-index: 10;
2325
+ }
2326
+
2327
+ .yh-table__empty {
2328
+ display: flex;
2329
+ align-items: center;
2330
+ justify-content: center;
2331
+ min-height: 120px;
2332
+ padding: 24px 0;
2333
+ }
2334
+
2335
+ .yh-table__empty-content {
2336
+ display: flex;
2337
+ flex-direction: column;
2338
+ align-items: center;
2339
+ gap: 12px;
2340
+ }
2341
+
2342
+ .yh-table__empty-image img {
2343
+ max-width: 160px;
2344
+ max-height: 100px;
2345
+ object-fit: contain;
2346
+ }
2347
+
2348
+ .yh-table__empty-text {
2349
+ font-size: 14px;
2350
+ color: var(--yh-text-color-secondary, #909399);
2351
+ }
2352
+
2353
+ .yh-table__header-icon-prefix {
2354
+ display: inline-flex;
2355
+ align-items: center;
2356
+ margin-right: 4px;
2357
+ flex-shrink: 0;
2358
+ font-size: inherit;
2359
+ line-height: 1;
2360
+ }
2361
+ .yh-table__header-icon-prefix svg {
2362
+ width: 1em;
2363
+ height: 1em;
2364
+ }
2365
+
2366
+ .yh-table__header-icon-suffix {
2367
+ display: inline-flex;
2368
+ align-items: center;
2369
+ margin-left: 4px;
2370
+ flex-shrink: 0;
2371
+ font-size: inherit;
2372
+ line-height: 1;
2373
+ }
2374
+ .yh-table__header-icon-suffix svg {
2375
+ width: 1em;
2376
+ height: 1em;
2377
+ }
2378
+
2379
+ .yh-table .is-center {
2380
+ text-align: center;
2381
+ }
2382
+ .yh-table .is-center .yh-table__cell-content {
2383
+ justify-content: center;
2384
+ }
2385
+ .yh-table .is-right {
2386
+ text-align: right;
2387
+ }
2388
+ .yh-table .is-right .yh-table__cell-content {
2389
+ justify-content: flex-end;
2390
+ }
2391
+ .yh-table__cell-text.is-ellipsis {
2392
+ overflow: hidden;
2393
+ text-overflow: ellipsis;
2394
+ white-space: nowrap;
2395
+ max-width: 100%;
2396
+ display: block;
2397
+ }
2398
+
2399
+ .yh-table.is-auto-wrap .yh-table__cell-content {
2400
+ white-space: normal;
2401
+ word-break: break-all;
2402
+ line-height: 1.5;
2403
+ }
2404
+ .yh-table.is-overflow-hidden .yh-table__cell-content {
2405
+ overflow: hidden;
2406
+ text-overflow: ellipsis;
2407
+ white-space: nowrap;
2408
+ }
2409
+ .yh-table .is-column-highlight {
2410
+ background-color: var(--yh-color-primary-light-9, #ecf5ff) !important;
2411
+ }
2412
+ .yh-table__loading {
2413
+ position: absolute;
2414
+ top: 0;
2415
+ left: 0;
2416
+ right: 0;
2417
+ bottom: 0;
2418
+ display: flex;
2419
+ align-items: center;
2420
+ justify-content: center;
2421
+ background-color: var(--yh-mask-color-light, rgba(255, 255, 255, 0.8));
2422
+ z-index: 20;
2423
+ transition: opacity 0.3s ease;
2424
+ }
2425
+
2426
+ .yh-table__loading-content {
2427
+ display: flex;
2428
+ flex-direction: column;
2429
+ align-items: center;
2430
+ gap: 8px;
2431
+ }
2432
+
2433
+ .yh-table__loading-spinner {
2434
+ display: inline-block;
2435
+ width: 28px;
2436
+ height: 28px;
2437
+ border: 3px solid var(--yh-color-primary-light-5, #a0cfff);
2438
+ border-top-color: var(--yh-color-primary, #409eff);
2439
+ border-radius: 50%;
2440
+ animation: yh-table-spin 0.8s linear infinite;
2441
+ }
2442
+
2443
+ .yh-table__loading-text {
2444
+ font-size: 14px;
2445
+ color: var(--yh-color-primary, #409eff);
2446
+ }
2447
+
2448
+ @keyframes yh-table-spin {
2449
+ to {
2450
+ transform: rotate(360deg);
2451
+ }
2452
+ }
2453
+ .yh-table.is-scrolling-middle .is-last-fixed-left::after {
2454
+ box-shadow: var(--yh-table-fixed-left-shadow);
2455
+ content: "";
2456
+ position: absolute;
2457
+ right: 0;
2458
+ top: 0;
2459
+ bottom: 0;
2460
+ width: 10px;
2461
+ transform: translateX(100%);
2462
+ pointer-events: none;
2463
+ z-index: 1;
2464
+ }
2465
+ .yh-table.is-scrolling-middle .is-first-fixed-right::before {
2466
+ box-shadow: var(--yh-table-fixed-right-shadow);
2467
+ content: "";
2468
+ position: absolute;
2469
+ left: 0;
2470
+ top: 0;
2471
+ bottom: 0;
2472
+ width: 10px;
2473
+ transform: translateX(-100%);
2474
+ pointer-events: none;
2475
+ z-index: 1;
2476
+ }
2477
+ .yh-table__pagination-wrapper {
2478
+ padding: 16px 0;
2479
+ margin-top: 8px;
2480
+ display: flex;
2481
+ align-items: center;
2482
+ background-color: transparent;
2483
+ }
2484
+ .yh-table__pagination-wrapper.is-align-left {
2485
+ justify-content: flex-start;
2486
+ }
2487
+ .yh-table__pagination-wrapper.is-align-center {
2488
+ justify-content: center;
2489
+ }
2490
+ .yh-table__pagination-wrapper.is-align-right {
2491
+ justify-content: flex-end;
2492
+ }
2493
+ </style>