@xihan-ui/vue 1.0.0-alpha.3 → 1.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 (496) hide show
  1. package/CHANGELOG.md +2316 -0
  2. package/README.md +1 -1
  3. package/dist/backgrounds.d.ts.map +1 -1
  4. package/dist/backgrounds.js +1 -5
  5. package/dist/backgrounds.js.map +1 -1
  6. package/dist/behavior.d.ts +38 -0
  7. package/dist/behavior.d.ts.map +1 -0
  8. package/dist/behavior.js +74 -0
  9. package/dist/behavior.js.map +1 -0
  10. package/dist/components/accordion/accordion.d.ts +1 -1
  11. package/dist/components/accordion/context.js +2 -2
  12. package/dist/components/accordion/context.js.map +1 -1
  13. package/dist/components/affix/context.js +1 -1
  14. package/dist/components/affix/context.js.map +1 -1
  15. package/dist/components/alert/context.js +1 -1
  16. package/dist/components/alert/context.js.map +1 -1
  17. package/dist/components/anchor/anchor.d.ts +1 -1
  18. package/dist/components/anchor/context.js +1 -1
  19. package/dist/components/anchor/context.js.map +1 -1
  20. package/dist/components/avatar/context.js +1 -1
  21. package/dist/components/avatar/context.js.map +1 -1
  22. package/dist/components/avatar-group/context.js +1 -1
  23. package/dist/components/avatar-group/context.js.map +1 -1
  24. package/dist/components/back-top/back-top.d.ts +2 -2
  25. package/dist/components/back-top/context.js +1 -1
  26. package/dist/components/back-top/context.js.map +1 -1
  27. package/dist/components/badge/badge.d.ts +142 -50
  28. package/dist/components/badge/badge.d.ts.map +1 -1
  29. package/dist/components/badge/badge.js +67 -37
  30. package/dist/components/badge/badge.js.map +1 -1
  31. package/dist/components/badge/context.js +15 -0
  32. package/dist/components/badge/context.js.map +1 -0
  33. package/dist/components/breadcrumb/breadcrumb.d.ts +1 -1
  34. package/dist/components/breadcrumb/context.js +1 -1
  35. package/dist/components/breadcrumb/context.js.map +1 -1
  36. package/dist/components/button-group/button-group.d.ts +1 -1
  37. package/dist/components/calendar/calendar.d.ts +1 -1
  38. package/dist/components/calendar/context.js +2 -2
  39. package/dist/components/calendar/context.js.map +1 -1
  40. package/dist/components/card/card.d.ts +1 -1
  41. package/dist/components/card/context.js +1 -1
  42. package/dist/components/card/context.js.map +1 -1
  43. package/dist/components/carousel/carousel.d.ts +1 -1
  44. package/dist/components/carousel/context.js +1 -1
  45. package/dist/components/carousel/context.js.map +1 -1
  46. package/dist/components/cascader/cascader.d.ts +5 -5
  47. package/dist/components/cascader/cascader.d.ts.map +1 -1
  48. package/dist/components/cascader/cascader.js +14 -4
  49. package/dist/components/cascader/cascader.js.map +1 -1
  50. package/dist/components/cascader/context.js +2 -2
  51. package/dist/components/cascader/context.js.map +1 -1
  52. package/dist/components/cascader/use-cascader.js +1 -1
  53. package/dist/components/cascader/use-cascader.js.map +1 -1
  54. package/dist/components/checkbox-group/context.js +2 -2
  55. package/dist/components/checkbox-group/context.js.map +1 -1
  56. package/dist/components/clipboard/context.js +1 -1
  57. package/dist/components/clipboard/context.js.map +1 -1
  58. package/dist/components/collapsible/context.js +1 -1
  59. package/dist/components/collapsible/context.js.map +1 -1
  60. package/dist/components/color-picker/color-picker.d.ts +10 -1
  61. package/dist/components/color-picker/color-picker.d.ts.map +1 -1
  62. package/dist/components/color-picker/color-picker.js +7 -1
  63. package/dist/components/color-picker/color-picker.js.map +1 -1
  64. package/dist/components/color-picker/context.js +2 -2
  65. package/dist/components/color-picker/context.js.map +1 -1
  66. package/dist/components/color-picker/use-color-picker.js +1 -1
  67. package/dist/components/color-picker/use-color-picker.js.map +1 -1
  68. package/dist/components/combobox/combobox.d.ts +4 -4
  69. package/dist/components/combobox/combobox.d.ts.map +1 -1
  70. package/dist/components/combobox/combobox.js +12 -5
  71. package/dist/components/combobox/combobox.js.map +1 -1
  72. package/dist/components/combobox/context.js +3 -3
  73. package/dist/components/combobox/context.js.map +1 -1
  74. package/dist/components/combobox/use-combobox.js +1 -1
  75. package/dist/components/combobox/use-combobox.js.map +1 -1
  76. package/dist/components/composer/context.js +1 -1
  77. package/dist/components/composer/context.js.map +1 -1
  78. package/dist/components/context-menu/context-menu.d.ts +2 -2
  79. package/dist/components/context-menu/context-menu.d.ts.map +1 -1
  80. package/dist/components/context-menu/context-menu.js +3 -1
  81. package/dist/components/context-menu/context-menu.js.map +1 -1
  82. package/dist/components/context-menu/context.js +5 -5
  83. package/dist/components/context-menu/context.js.map +1 -1
  84. package/dist/components/context-menu/use-context-menu.js +1 -1
  85. package/dist/components/context-menu/use-context-menu.js.map +1 -1
  86. package/dist/components/date-field/context.js +1 -1
  87. package/dist/components/date-field/context.js.map +1 -1
  88. package/dist/components/date-field/date-field.d.ts +4 -4
  89. package/dist/components/date-picker/context.js +13 -4
  90. package/dist/components/date-picker/context.js.map +1 -1
  91. package/dist/components/date-picker/date-picker.d.ts +79 -43
  92. package/dist/components/date-picker/date-picker.d.ts.map +1 -1
  93. package/dist/components/date-picker/date-picker.js +68 -26
  94. package/dist/components/date-picker/date-picker.js.map +1 -1
  95. package/dist/components/date-picker/use-date-picker.js +1 -1
  96. package/dist/components/date-picker/use-date-picker.js.map +1 -1
  97. package/dist/components/descriptions/context.js +1 -1
  98. package/dist/components/descriptions/context.js.map +1 -1
  99. package/dist/components/descriptions/descriptions.d.ts +1 -1
  100. package/dist/components/dialog/context.js +1 -1
  101. package/dist/components/dialog/context.js.map +1 -1
  102. package/dist/components/drawer/context.js +1 -1
  103. package/dist/components/drawer/context.js.map +1 -1
  104. package/dist/components/dynamic-input/context.js +2 -2
  105. package/dist/components/dynamic-input/context.js.map +1 -1
  106. package/dist/components/editable/context.js +1 -1
  107. package/dist/components/editable/context.js.map +1 -1
  108. package/dist/components/empty-state/context.js +1 -1
  109. package/dist/components/empty-state/context.js.map +1 -1
  110. package/dist/components/field/context.d.ts +9 -0
  111. package/dist/components/field/context.d.ts.map +1 -0
  112. package/dist/components/field/context.js +6 -2
  113. package/dist/components/field/context.js.map +1 -1
  114. package/dist/components/field/field.d.ts +26 -2
  115. package/dist/components/field/field.d.ts.map +1 -1
  116. package/dist/components/field/field.js +15 -4
  117. package/dist/components/field/field.js.map +1 -1
  118. package/dist/components/field/use-field-control.d.ts +41 -0
  119. package/dist/components/field/use-field-control.d.ts.map +1 -0
  120. package/dist/components/field/use-field-control.js +77 -0
  121. package/dist/components/field/use-field-control.js.map +1 -0
  122. package/dist/components/fieldset/context.js +1 -1
  123. package/dist/components/fieldset/context.js.map +1 -1
  124. package/dist/components/file-upload/context.js +2 -2
  125. package/dist/components/file-upload/context.js.map +1 -1
  126. package/dist/components/flex/flex.d.ts +9 -0
  127. package/dist/components/flex/flex.d.ts.map +1 -1
  128. package/dist/components/flex/flex.js +4 -0
  129. package/dist/components/flex/flex.js.map +1 -1
  130. package/dist/components/float-button/context.js +1 -1
  131. package/dist/components/float-button/context.js.map +1 -1
  132. package/dist/components/float-button/float-button.d.ts +1 -1
  133. package/dist/components/floating-panel/context.js +1 -1
  134. package/dist/components/floating-panel/context.js.map +1 -1
  135. package/dist/components/floating-panel/floating-panel.d.ts +1 -1
  136. package/dist/components/form/context.js +2 -2
  137. package/dist/components/form/context.js.map +1 -1
  138. package/dist/components/form/form.d.ts +1 -1
  139. package/dist/components/grid/context.js +1 -1
  140. package/dist/components/grid/context.js.map +1 -1
  141. package/dist/components/heatmap/context.js +3 -3
  142. package/dist/components/heatmap/context.js.map +1 -1
  143. package/dist/components/heatmap/heatmap.d.ts +1 -1
  144. package/dist/components/hotkeys/hotkeys.d.ts +3 -1
  145. package/dist/components/hotkeys/hotkeys.d.ts.map +1 -1
  146. package/dist/components/hotkeys/hotkeys.js +7 -25
  147. package/dist/components/hotkeys/hotkeys.js.map +1 -1
  148. package/dist/components/hotkeys/use-hotkeys.d.ts +31 -0
  149. package/dist/components/hotkeys/use-hotkeys.d.ts.map +1 -0
  150. package/dist/components/hotkeys/use-hotkeys.js +60 -0
  151. package/dist/components/hotkeys/use-hotkeys.js.map +1 -0
  152. package/dist/components/hover-card/context.js +1 -1
  153. package/dist/components/hover-card/context.js.map +1 -1
  154. package/dist/components/hover-card/hover-card.d.ts +1 -1
  155. package/dist/components/hover-card/hover-card.d.ts.map +1 -1
  156. package/dist/components/hover-card/hover-card.js +3 -1
  157. package/dist/components/hover-card/hover-card.js.map +1 -1
  158. package/dist/components/hover-card/use-hover-card.js +1 -1
  159. package/dist/components/hover-card/use-hover-card.js.map +1 -1
  160. package/dist/components/icon/icon.d.ts +1 -1
  161. package/dist/components/icon-wrapper/icon-wrapper.d.ts +1 -1
  162. package/dist/components/image/context.js +1 -1
  163. package/dist/components/image/context.js.map +1 -1
  164. package/dist/components/image-cropper/context.js +1 -1
  165. package/dist/components/image-cropper/context.js.map +1 -1
  166. package/dist/components/image-cropper/image-cropper.d.ts +1 -1
  167. package/dist/components/image-viewer/context.js +1 -1
  168. package/dist/components/image-viewer/context.js.map +1 -1
  169. package/dist/components/image-viewer/image-viewer.d.ts +1 -1
  170. package/dist/components/infinite-scroll/context.js +1 -1
  171. package/dist/components/infinite-scroll/context.js.map +1 -1
  172. package/dist/components/infinite-scroll/infinite-scroll.d.ts +1 -1
  173. package/dist/components/json-viewer/json-viewer.d.ts +12 -3
  174. package/dist/components/json-viewer/json-viewer.d.ts.map +1 -1
  175. package/dist/components/json-viewer/json-viewer.js +23 -2
  176. package/dist/components/json-viewer/json-viewer.js.map +1 -1
  177. package/dist/components/layout/context.js +1 -1
  178. package/dist/components/layout/context.js.map +1 -1
  179. package/dist/components/list/context.js +1 -1
  180. package/dist/components/list/context.js.map +1 -1
  181. package/dist/components/list/list.d.ts +1 -1
  182. package/dist/components/listbox/context.js +3 -3
  183. package/dist/components/listbox/context.js.map +1 -1
  184. package/dist/components/listbox/listbox.d.ts +1 -1
  185. package/dist/components/loading-bar/context.js +1 -1
  186. package/dist/components/loading-bar/context.js.map +1 -1
  187. package/dist/components/log/context.js +1 -1
  188. package/dist/components/log/context.js.map +1 -1
  189. package/dist/components/marquee/context.js +1 -1
  190. package/dist/components/marquee/context.js.map +1 -1
  191. package/dist/components/mention/context.js +2 -2
  192. package/dist/components/mention/context.js.map +1 -1
  193. package/dist/components/mention/mention.d.ts +4 -4
  194. package/dist/components/mention/mention.d.ts.map +1 -1
  195. package/dist/components/mention/mention.js +10 -4
  196. package/dist/components/mention/mention.js.map +1 -1
  197. package/dist/components/mention/use-mention.js +1 -1
  198. package/dist/components/mention/use-mention.js.map +1 -1
  199. package/dist/components/menu/context.js +4 -4
  200. package/dist/components/menu/context.js.map +1 -1
  201. package/dist/components/menu/menu.d.ts +3 -3
  202. package/dist/components/menu/menu.d.ts.map +1 -1
  203. package/dist/components/menu/menu.js +3 -1
  204. package/dist/components/menu/menu.js.map +1 -1
  205. package/dist/components/menu/use-menu.js +1 -1
  206. package/dist/components/menu/use-menu.js.map +1 -1
  207. package/dist/components/menubar/context.js +6 -6
  208. package/dist/components/menubar/context.js.map +1 -1
  209. package/dist/components/menubar/menubar.d.ts +2 -2
  210. package/dist/components/menubar/menubar.js.map +1 -1
  211. package/dist/components/navigation-menu/context.js +1 -1
  212. package/dist/components/navigation-menu/context.js.map +1 -1
  213. package/dist/components/navigation-menu/navigation-menu.d.ts +1 -1
  214. package/dist/components/notification/context.d.ts +23 -0
  215. package/dist/components/notification/context.d.ts.map +1 -0
  216. package/dist/components/notification/context.js +28 -0
  217. package/dist/components/notification/context.js.map +1 -0
  218. package/dist/components/notification/notification.d.ts +249 -0
  219. package/dist/components/notification/notification.d.ts.map +1 -0
  220. package/dist/components/notification/notification.js +179 -0
  221. package/dist/components/notification/notification.js.map +1 -0
  222. package/dist/components/notification/use-notification.d.ts +14 -0
  223. package/dist/components/notification/use-notification.d.ts.map +1 -0
  224. package/dist/components/notification/use-notification.js +42 -0
  225. package/dist/components/notification/use-notification.js.map +1 -0
  226. package/dist/components/number-animation/number-animation.d.ts +2 -2
  227. package/dist/components/number-field/context.js +1 -1
  228. package/dist/components/number-field/context.js.map +1 -1
  229. package/dist/components/number-field/number-field.d.ts +3 -3
  230. package/dist/components/number-field/number-field.d.ts.map +1 -1
  231. package/dist/components/number-field/number-field.js +7 -1
  232. package/dist/components/number-field/number-field.js.map +1 -1
  233. package/dist/components/page-header/context.js +1 -1
  234. package/dist/components/page-header/context.js.map +1 -1
  235. package/dist/components/pagination/context.js +1 -1
  236. package/dist/components/pagination/context.js.map +1 -1
  237. package/dist/components/pagination/pagination.d.ts +59 -5
  238. package/dist/components/pagination/pagination.d.ts.map +1 -1
  239. package/dist/components/pagination/pagination.js +85 -5
  240. package/dist/components/pagination/pagination.js.map +1 -1
  241. package/dist/components/pagination/use-pagination.d.ts +12 -2
  242. package/dist/components/pagination/use-pagination.d.ts.map +1 -1
  243. package/dist/components/pagination/use-pagination.js +50 -5
  244. package/dist/components/pagination/use-pagination.js.map +1 -1
  245. package/dist/components/password-input/context.js +1 -1
  246. package/dist/components/password-input/context.js.map +1 -1
  247. package/dist/components/password-input/password-input.d.ts +3 -3
  248. package/dist/components/password-input/password-input.d.ts.map +1 -1
  249. package/dist/components/password-input/password-input.js +7 -1
  250. package/dist/components/password-input/password-input.js.map +1 -1
  251. package/dist/components/pin-input/context.js +1 -1
  252. package/dist/components/pin-input/context.js.map +1 -1
  253. package/dist/components/pin-input/pin-input.d.ts +2 -2
  254. package/dist/components/popconfirm/context.js +1 -1
  255. package/dist/components/popconfirm/context.js.map +1 -1
  256. package/dist/components/popover/context.js +1 -1
  257. package/dist/components/popover/context.js.map +1 -1
  258. package/dist/components/popover/popover.d.ts.map +1 -1
  259. package/dist/components/popover/popover.js +3 -1
  260. package/dist/components/popover/popover.js.map +1 -1
  261. package/dist/components/popover/use-popover.js +1 -1
  262. package/dist/components/popover/use-popover.js.map +1 -1
  263. package/dist/components/popselect/context.js +2 -2
  264. package/dist/components/popselect/context.js.map +1 -1
  265. package/dist/components/popselect/popselect.d.ts +2 -2
  266. package/dist/components/popselect/popselect.d.ts.map +1 -1
  267. package/dist/components/popselect/popselect.js +5 -2
  268. package/dist/components/popselect/popselect.js.map +1 -1
  269. package/dist/components/popselect/use-popselect.js +1 -1
  270. package/dist/components/popselect/use-popselect.js.map +1 -1
  271. package/dist/components/progress/progress.d.ts +1 -1
  272. package/dist/components/qr-code/context.js +1 -1
  273. package/dist/components/qr-code/context.js.map +1 -1
  274. package/dist/components/radio-group/context.js +2 -2
  275. package/dist/components/radio-group/context.js.map +1 -1
  276. package/dist/components/radio-group/radio-group.d.ts +1 -1
  277. package/dist/components/rating/context.js +1 -1
  278. package/dist/components/rating/context.js.map +1 -1
  279. package/dist/components/rating/rating.d.ts +2 -2
  280. package/dist/components/resizable/context.d.ts +7 -0
  281. package/dist/components/resizable/context.d.ts.map +1 -0
  282. package/dist/components/resizable/context.js +15 -0
  283. package/dist/components/resizable/context.js.map +1 -0
  284. package/dist/components/resizable/resizable.d.ts +174 -0
  285. package/dist/components/resizable/resizable.d.ts.map +1 -0
  286. package/dist/components/resizable/resizable.js +108 -0
  287. package/dist/components/resizable/resizable.js.map +1 -0
  288. package/dist/components/resizable/use-resizable.d.ts +14 -0
  289. package/dist/components/resizable/use-resizable.d.ts.map +1 -0
  290. package/dist/components/resizable/use-resizable.js +25 -0
  291. package/dist/components/resizable/use-resizable.js.map +1 -0
  292. package/dist/components/result/context.js +1 -1
  293. package/dist/components/result/context.js.map +1 -1
  294. package/dist/components/scroll-area/context.js +2 -2
  295. package/dist/components/scroll-area/context.js.map +1 -1
  296. package/dist/components/scroll-area/scroll-area.d.ts +1 -1
  297. package/dist/components/scrollbar/context.js +1 -1
  298. package/dist/components/scrollbar/context.js.map +1 -1
  299. package/dist/components/scrollbar/scrollbar.d.ts +1 -1
  300. package/dist/components/segmented/context.js +2 -2
  301. package/dist/components/segmented/context.js.map +1 -1
  302. package/dist/components/segmented/segmented.d.ts +1 -1
  303. package/dist/components/select/context.js +3 -3
  304. package/dist/components/select/context.js.map +1 -1
  305. package/dist/components/select/select.d.ts +3 -3
  306. package/dist/components/select/select.d.ts.map +1 -1
  307. package/dist/components/select/select.js +7 -3
  308. package/dist/components/select/select.js.map +1 -1
  309. package/dist/components/side-nav/context.js +2 -2
  310. package/dist/components/side-nav/context.js.map +1 -1
  311. package/dist/components/side-nav/side-nav.d.ts +1 -1
  312. package/dist/components/signature-pad/context.js +1 -1
  313. package/dist/components/signature-pad/context.js.map +1 -1
  314. package/dist/components/skeleton/context.js +1 -1
  315. package/dist/components/skeleton/context.js.map +1 -1
  316. package/dist/components/slider/context.js +2 -2
  317. package/dist/components/slider/context.js.map +1 -1
  318. package/dist/components/slider/slider.d.ts +2 -2
  319. package/dist/components/sortable/context.d.ts +7 -0
  320. package/dist/components/sortable/context.d.ts.map +1 -0
  321. package/dist/components/sortable/context.js +15 -0
  322. package/dist/components/sortable/context.js.map +1 -0
  323. package/dist/components/sortable/sortable.d.ts +166 -0
  324. package/dist/components/sortable/sortable.d.ts.map +1 -0
  325. package/dist/components/sortable/sortable.js +128 -0
  326. package/dist/components/sortable/sortable.js.map +1 -0
  327. package/dist/components/sortable/use-sortable.d.ts +14 -0
  328. package/dist/components/sortable/use-sortable.d.ts.map +1 -0
  329. package/dist/components/sortable/use-sortable.js +26 -0
  330. package/dist/components/sortable/use-sortable.js.map +1 -0
  331. package/dist/components/space/context.js +1 -1
  332. package/dist/components/space/context.js.map +1 -1
  333. package/dist/components/space/space.d.ts +9 -0
  334. package/dist/components/space/space.d.ts.map +1 -1
  335. package/dist/components/space/space.js +4 -0
  336. package/dist/components/space/space.js.map +1 -1
  337. package/dist/components/spinner/context.js +1 -1
  338. package/dist/components/spinner/context.js.map +1 -1
  339. package/dist/components/spinner/spinner.d.ts +1 -1
  340. package/dist/components/splitter/context.js +1 -1
  341. package/dist/components/splitter/context.js.map +1 -1
  342. package/dist/components/statistic/context.js +1 -1
  343. package/dist/components/statistic/context.js.map +1 -1
  344. package/dist/components/statistic/statistic.d.ts +1 -1
  345. package/dist/components/steps/context.js +2 -2
  346. package/dist/components/steps/context.js.map +1 -1
  347. package/dist/components/steps/steps.d.ts +1 -1
  348. package/dist/components/switch/switch.d.ts +1 -1
  349. package/dist/components/table/context.js +4 -4
  350. package/dist/components/table/context.js.map +1 -1
  351. package/dist/components/table/table.d.ts +108 -5
  352. package/dist/components/table/table.d.ts.map +1 -1
  353. package/dist/components/table/table.js +94 -8
  354. package/dist/components/table/table.js.map +1 -1
  355. package/dist/components/table/use-table.d.ts +1 -1
  356. package/dist/components/table/use-table.d.ts.map +1 -1
  357. package/dist/components/table/use-table.js +4 -2
  358. package/dist/components/table/use-table.js.map +1 -1
  359. package/dist/components/tabs/context.js +1 -1
  360. package/dist/components/tabs/context.js.map +1 -1
  361. package/dist/components/tabs/tabs.d.ts +48 -3
  362. package/dist/components/tabs/tabs.d.ts.map +1 -1
  363. package/dist/components/tabs/tabs.js +45 -3
  364. package/dist/components/tabs/tabs.js.map +1 -1
  365. package/dist/components/tabs/use-tabs.d.ts +1 -1
  366. package/dist/components/tabs/use-tabs.d.ts.map +1 -1
  367. package/dist/components/tabs/use-tabs.js +3 -2
  368. package/dist/components/tabs/use-tabs.js.map +1 -1
  369. package/dist/components/tag/context.js +1 -1
  370. package/dist/components/tag/context.js.map +1 -1
  371. package/dist/components/tag/use-tag.js +14 -2
  372. package/dist/components/tag/use-tag.js.map +1 -1
  373. package/dist/components/tags-input/context.js +2 -2
  374. package/dist/components/tags-input/context.js.map +1 -1
  375. package/dist/components/tags-input/tags-input.d.ts +4 -4
  376. package/dist/components/tags-input/tags-input.d.ts.map +1 -1
  377. package/dist/components/tags-input/tags-input.js +7 -1
  378. package/dist/components/tags-input/tags-input.js.map +1 -1
  379. package/dist/components/text-field/context.js +1 -1
  380. package/dist/components/text-field/context.js.map +1 -1
  381. package/dist/components/text-field/text-field.d.ts +2 -2
  382. package/dist/components/text-field/text-field.d.ts.map +1 -1
  383. package/dist/components/text-field/text-field.js +9 -4
  384. package/dist/components/text-field/text-field.js.map +1 -1
  385. package/dist/components/thread/context.d.ts +7 -0
  386. package/dist/components/thread/context.d.ts.map +1 -0
  387. package/dist/components/thread/context.js +1 -1
  388. package/dist/components/thread/context.js.map +1 -1
  389. package/dist/components/time-field/context.js +1 -1
  390. package/dist/components/time-field/context.js.map +1 -1
  391. package/dist/components/time-field/time-field.d.ts +4 -4
  392. package/dist/components/time-picker/context.js +2 -2
  393. package/dist/components/time-picker/context.js.map +1 -1
  394. package/dist/components/time-picker/time-picker.d.ts +4 -4
  395. package/dist/components/time-picker/time-picker.d.ts.map +1 -1
  396. package/dist/components/time-picker/time-picker.js +10 -1
  397. package/dist/components/time-picker/time-picker.js.map +1 -1
  398. package/dist/components/time-picker/use-time-picker.d.ts +1 -0
  399. package/dist/components/time-picker/use-time-picker.d.ts.map +1 -1
  400. package/dist/components/time-picker/use-time-picker.js +3 -0
  401. package/dist/components/time-picker/use-time-picker.js.map +1 -1
  402. package/dist/components/timeline/context.js +2 -2
  403. package/dist/components/timeline/context.js.map +1 -1
  404. package/dist/components/timeline/timeline.d.ts +1 -1
  405. package/dist/components/timer/context.js +1 -1
  406. package/dist/components/timer/context.js.map +1 -1
  407. package/dist/components/toast/context.js +1 -1
  408. package/dist/components/toast/context.js.map +1 -1
  409. package/dist/components/toast/toast.d.ts +2 -14
  410. package/dist/components/toast/toast.d.ts.map +1 -1
  411. package/dist/components/toast/toast.js +1 -12
  412. package/dist/components/toast/toast.js.map +1 -1
  413. package/dist/components/toast/use-toast.d.ts.map +1 -1
  414. package/dist/components/toast/use-toast.js +1 -7
  415. package/dist/components/toast/use-toast.js.map +1 -1
  416. package/dist/components/toggle-group/context.js +1 -1
  417. package/dist/components/toggle-group/context.js.map +1 -1
  418. package/dist/components/toggle-group/toggle-group.d.ts +10 -1
  419. package/dist/components/toggle-group/toggle-group.d.ts.map +1 -1
  420. package/dist/components/toggle-group/toggle-group.js +4 -0
  421. package/dist/components/toggle-group/toggle-group.js.map +1 -1
  422. package/dist/components/toolbar/context.js +1 -1
  423. package/dist/components/toolbar/context.js.map +1 -1
  424. package/dist/components/toolbar/toolbar.d.ts +1 -1
  425. package/dist/components/tooltip/context.js +1 -1
  426. package/dist/components/tooltip/context.js.map +1 -1
  427. package/dist/components/tooltip/tooltip.d.ts +1 -1
  428. package/dist/components/tour/context.js +1 -1
  429. package/dist/components/tour/context.js.map +1 -1
  430. package/dist/components/tour/tour.d.ts +2 -2
  431. package/dist/components/transfer/context.js +3 -3
  432. package/dist/components/transfer/context.js.map +1 -1
  433. package/dist/components/tree/context.js +2 -2
  434. package/dist/components/tree/context.js.map +1 -1
  435. package/dist/components/tree/tree.d.ts +66 -2
  436. package/dist/components/tree/tree.d.ts.map +1 -1
  437. package/dist/components/tree/tree.js +54 -3
  438. package/dist/components/tree/tree.js.map +1 -1
  439. package/dist/components/tree/use-tree.d.ts +1 -1
  440. package/dist/components/tree/use-tree.d.ts.map +1 -1
  441. package/dist/components/tree/use-tree.js +3 -2
  442. package/dist/components/tree/use-tree.js.map +1 -1
  443. package/dist/components/tree-select/context.js +2 -2
  444. package/dist/components/tree-select/context.js.map +1 -1
  445. package/dist/components/tree-select/tree-select.d.ts +4 -4
  446. package/dist/components/tree-select/tree-select.d.ts.map +1 -1
  447. package/dist/components/tree-select/tree-select.js +14 -4
  448. package/dist/components/tree-select/tree-select.js.map +1 -1
  449. package/dist/components/tree-select/use-tree-select.js +1 -1
  450. package/dist/components/tree-select/use-tree-select.js.map +1 -1
  451. package/dist/components/typography/context.js +1 -1
  452. package/dist/components/typography/context.js.map +1 -1
  453. package/dist/components/virtualizer/context.js +1 -1
  454. package/dist/components/virtualizer/context.js.map +1 -1
  455. package/dist/components/watermark/context.js +1 -1
  456. package/dist/components/watermark/context.js.map +1 -1
  457. package/dist/config/config.js +1 -1
  458. package/dist/config/config.js.map +1 -1
  459. package/dist/index.d.ts +25 -12
  460. package/dist/index.js +24 -11
  461. package/dist/package.js +1 -1
  462. package/dist/runtime/use-scrollbars.js +66 -0
  463. package/dist/runtime/use-scrollbars.js.map +1 -0
  464. package/dist/services/dialog-service.d.ts +33 -8
  465. package/dist/services/dialog-service.d.ts.map +1 -1
  466. package/dist/services/dialog-service.js +44 -20
  467. package/dist/services/dialog-service.js.map +1 -1
  468. package/dist/services/glyph.js +41 -1
  469. package/dist/services/glyph.js.map +1 -1
  470. package/dist/services/loading-bar-service.d.ts +46 -0
  471. package/dist/services/loading-bar-service.d.ts.map +1 -0
  472. package/dist/services/loading-bar-service.js +70 -0
  473. package/dist/services/loading-bar-service.js.map +1 -0
  474. package/dist/services/mount-host.js +35 -0
  475. package/dist/services/mount-host.js.map +1 -0
  476. package/dist/services/notification-service.d.ts +46 -0
  477. package/dist/services/notification-service.d.ts.map +1 -0
  478. package/dist/services/notification-service.js +91 -0
  479. package/dist/services/notification-service.js.map +1 -0
  480. package/dist/services/service-config.js +16 -0
  481. package/dist/services/service-config.js.map +1 -0
  482. package/dist/services/toast-service.d.ts +20 -12
  483. package/dist/services/toast-service.d.ts.map +1 -1
  484. package/dist/services/toast-service.js +103 -50
  485. package/dist/services/toast-service.js.map +1 -1
  486. package/package.json +19 -14
  487. package/dist/components/toaster/context.js +0 -19
  488. package/dist/components/toaster/context.js.map +0 -1
  489. package/dist/components/toaster/toaster.d.ts +0 -135
  490. package/dist/components/toaster/toaster.d.ts.map +0 -1
  491. package/dist/components/toaster/toaster.js +0 -91
  492. package/dist/components/toaster/toaster.js.map +0 -1
  493. package/dist/components/toaster/use-toaster.d.ts +0 -15
  494. package/dist/components/toaster/use-toaster.d.ts.map +0 -1
  495. package/dist/components/toaster/use-toaster.js +0 -23
  496. package/dist/components/toaster/use-toaster.js.map +0 -1
@@ -1,11 +1,11 @@
1
1
  import { PayloadOf } from "../../runtime/payload.js";
2
2
  import { PropType, SlotsType, VNode } from "vue";
3
- import { TableApi, TableColumnDef, TableRowDef, TableSchema, TableSelection, TableSelectionMode, TableSortDescriptor } from "@xihan-ui/headless";
3
+ import { TableApi, TableColumnDef, TableColumnKind, TableColumnPreference, TableRowDef, TableSchema, TableSelection, TableSelectionMode, TableSortDescriptor } from "@xihan-ui/headless";
4
4
  import { Direction, Size } from "@xihan-ui/kernel";
5
5
  //#region src/components/table/table.d.ts
6
6
  type TableProps = TableSchema['props'];
7
7
  /** 默认插槽的载荷:可见行与排序、选中、展开三态,以及逐行查询与改写它们的句柄。 */
8
- type TableRootSlotProps = Pick<TableApi, 'visibleRows' | 'sort' | 'selection' | 'selectionState' | 'expandedValue' | 'focusedRow' | 'empty' | 'loading' | 'isSelected' | 'isExpanded' | 'sortDirection' | 'sortPriority' | 'toggleSort' | 'selectRow' | 'toggleSelectAll' | 'toggleExpandRow'>;
8
+ type TableRootSlotProps = Pick<TableApi, 'columns' | 'columnPreference' | 'setColumnHidden' | 'moveColumn' | 'setColumnWidth' | 'setColumnPreference' | 'rowNumber' | 'visibleRows' | 'sort' | 'selection' | 'selectionState' | 'expandedValue' | 'focusedRow' | 'empty' | 'loading' | 'isSelected' | 'isExpanded' | 'sortDirection' | 'sortPriority' | 'toggleSort' | 'selectRow' | 'toggleSelectAll' | 'toggleExpandRow' | 'rowReorderDisabledReason'>;
9
9
  declare const XhTableRoot: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
10
10
  columns: {
11
11
  type: PropType<TableColumnDef[]>;
@@ -35,6 +35,29 @@ declare const XhTableRoot: import("vue").DefineComponent<import("vue").ExtractPr
35
35
  type: PropType<TableSelectionMode>;
36
36
  default: undefined;
37
37
  };
38
+ /** 要哪几列前缀列(序号 / 多选 / 展开),按给定顺序插在最前面并占住列号。 */
39
+ prefixColumns: {
40
+ type: PropType<TableColumnKind[]>;
41
+ default: undefined;
42
+ };
43
+ /** 当前页码与每页条数:只用来算序号,不参与切片。 */
44
+ /** 列偏好:给定即受控。持久化归使用者,库只负责把它算进生效列。 */
45
+ columnPreference: {
46
+ type: PropType<TableColumnPreference>;
47
+ default: undefined;
48
+ };
49
+ defaultColumnPreference: {
50
+ type: PropType<TableColumnPreference>;
51
+ default: undefined;
52
+ };
53
+ page: {
54
+ type: NumberConstructor;
55
+ default: undefined;
56
+ };
57
+ pageSize: {
58
+ type: NumberConstructor;
59
+ default: undefined;
60
+ };
38
61
  expanded: {
39
62
  type: PropType<string[]>;
40
63
  default: undefined;
@@ -53,6 +76,13 @@ declare const XhTableRoot: import("vue").DefineComponent<import("vue").ExtractPr
53
76
  borderless: BooleanConstructor;
54
77
  ruled: BooleanConstructor;
55
78
  footer: BooleanConstructor;
79
+ /** 行可以拖着换位。整行都是拖动源,不另出把手。 */
80
+ rowReorderable: BooleanConstructor;
81
+ /** 这一次搬家许不许。收到的是折算好的落点(搬到哪个父下面的第几位)。不给即都许。 */
82
+ allowRowDrop: {
83
+ type: PropType<TableProps["allowRowDrop"]>;
84
+ default: undefined;
85
+ };
56
86
  loop: {
57
87
  type: BooleanConstructor;
58
88
  default: undefined;
@@ -65,15 +95,24 @@ declare const XhTableRoot: import("vue").DefineComponent<import("vue").ExtractPr
65
95
  type: PropType<Size>;
66
96
  default: undefined;
67
97
  };
98
+ translations: {
99
+ type: PropType<TableProps["translations"]>;
100
+ default: undefined;
101
+ };
68
102
  }>, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
69
103
  [key: string]: any;
70
104
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
105
+ 'column-preference-change': (_details: {
106
+ value: TableColumnPreference;
107
+ }) => true;
108
+ 'update:columnPreference': (_value: TableColumnPreference) => true;
71
109
  'sort-change': (_details: PayloadOf<TableProps, "onSortChange">) => true;
72
110
  'update:sort': (_sort: PayloadOf<TableProps, "onSortChange">["value"]) => true;
73
111
  'selection-change': (_details: PayloadOf<TableProps, "onSelectionChange">) => true;
74
112
  'update:selection': (_selection: PayloadOf<TableProps, "onSelectionChange">["value"]) => true;
75
113
  'expanded-change': (_details: PayloadOf<TableProps, "onExpandedChange">) => true;
76
114
  'update:expanded': (_expanded: PayloadOf<TableProps, "onExpandedChange">["value"]) => true;
115
+ 'row-move': (_details: PayloadOf<TableProps, "onRowMove">) => true;
77
116
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
78
117
  columns: {
79
118
  type: PropType<TableColumnDef[]>;
@@ -103,6 +142,29 @@ declare const XhTableRoot: import("vue").DefineComponent<import("vue").ExtractPr
103
142
  type: PropType<TableSelectionMode>;
104
143
  default: undefined;
105
144
  };
145
+ /** 要哪几列前缀列(序号 / 多选 / 展开),按给定顺序插在最前面并占住列号。 */
146
+ prefixColumns: {
147
+ type: PropType<TableColumnKind[]>;
148
+ default: undefined;
149
+ };
150
+ /** 当前页码与每页条数:只用来算序号,不参与切片。 */
151
+ /** 列偏好:给定即受控。持久化归使用者,库只负责把它算进生效列。 */
152
+ columnPreference: {
153
+ type: PropType<TableColumnPreference>;
154
+ default: undefined;
155
+ };
156
+ defaultColumnPreference: {
157
+ type: PropType<TableColumnPreference>;
158
+ default: undefined;
159
+ };
160
+ page: {
161
+ type: NumberConstructor;
162
+ default: undefined;
163
+ };
164
+ pageSize: {
165
+ type: NumberConstructor;
166
+ default: undefined;
167
+ };
106
168
  expanded: {
107
169
  type: PropType<string[]>;
108
170
  default: undefined;
@@ -121,6 +183,13 @@ declare const XhTableRoot: import("vue").DefineComponent<import("vue").ExtractPr
121
183
  borderless: BooleanConstructor;
122
184
  ruled: BooleanConstructor;
123
185
  footer: BooleanConstructor;
186
+ /** 行可以拖着换位。整行都是拖动源,不另出把手。 */
187
+ rowReorderable: BooleanConstructor;
188
+ /** 这一次搬家许不许。收到的是折算好的落点(搬到哪个父下面的第几位)。不给即都许。 */
189
+ allowRowDrop: {
190
+ type: PropType<TableProps["allowRowDrop"]>;
191
+ default: undefined;
192
+ };
124
193
  loop: {
125
194
  type: BooleanConstructor;
126
195
  default: undefined;
@@ -133,33 +202,50 @@ declare const XhTableRoot: import("vue").DefineComponent<import("vue").ExtractPr
133
202
  type: PropType<Size>;
134
203
  default: undefined;
135
204
  };
205
+ translations: {
206
+ type: PropType<TableProps["translations"]>;
207
+ default: undefined;
208
+ };
136
209
  }>> & Readonly<{
137
210
  "onExpanded-change"?: ((_details: import("@xihan-ui/headless").TableExpandedChangeDetails) => any) | undefined;
138
211
  "onUpdate:expanded"?: ((_expanded: string[]) => any) | undefined;
212
+ "onColumn-preference-change"?: ((_details: {
213
+ value: TableColumnPreference;
214
+ }) => any) | undefined;
215
+ "onUpdate:columnPreference"?: ((_value: TableColumnPreference) => any) | undefined;
139
216
  "onSort-change"?: ((_details: import("@xihan-ui/headless").TableSortChangeDetails) => any) | undefined;
140
217
  "onUpdate:sort"?: ((_sort: TableSortDescriptor[]) => any) | undefined;
141
218
  "onSelection-change"?: ((_details: import("@xihan-ui/headless").TableSelectionChangeDetails) => any) | undefined;
142
219
  "onUpdate:selection"?: ((_selection: TableSelection) => any) | undefined;
220
+ "onRow-move"?: ((_details: import("@xihan-ui/headless").TableRowMoveDetails) => any) | undefined;
143
221
  }>, {
144
222
  sort: TableSortDescriptor[];
145
223
  footer: boolean;
146
- size: Size;
147
224
  dir: Direction;
225
+ size: Size;
226
+ translations: Partial<import("@xihan-ui/headless").TableTranslations> | undefined;
227
+ loop: boolean;
148
228
  loading: boolean;
149
229
  selectionMode: TableSelectionMode;
150
- loop: boolean;
230
+ page: number;
151
231
  empty: boolean;
152
232
  columns: TableColumnDef[];
153
233
  expanded: string[];
154
234
  defaultExpanded: string[];
155
235
  rows: TableRowDef[];
236
+ pageSize: number;
237
+ allowRowDrop: ((move: import("@xihan-ui/headless").TableRowMoveDetails) => boolean) | undefined;
238
+ columnPreference: TableColumnPreference;
156
239
  selection: TableSelection;
157
240
  stickyHeader: boolean;
158
241
  striped: boolean;
159
242
  borderless: boolean;
160
243
  ruled: boolean;
244
+ rowReorderable: boolean;
161
245
  defaultSort: TableSortDescriptor[];
162
246
  defaultSelection: TableSelection;
247
+ prefixColumns: TableColumnKind[];
248
+ defaultColumnPreference: TableColumnPreference;
163
249
  }, SlotsType<{
164
250
  default?: (props: TableRootSlotProps) => VNode[];
165
251
  }>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -241,6 +327,23 @@ declare const XhTableRowSelectTrigger: import("vue").DefineComponent<{}, () => V
241
327
  declare const XhTableSortTrigger: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
242
328
  [key: string]: any;
243
329
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
330
+ /** 列宽把手。放在表头格里,只有 resizable 的列渲它。 */
331
+ declare const XhTableColumnResizeTrigger: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
332
+ [key: string]: any;
333
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
334
+ /** 列拖拽把手。放在表头格里,只有可拖的列渲它。 */
335
+ declare const XhTableColumnDragTrigger: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
336
+ [key: string]: any;
337
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
338
+ /**
339
+ * 行拖拽把手。放在数据行里,自带 touch-action: none,按下即拖,不等激活距离。
340
+ * 对读屏隐藏、也不占 Tab 位;键盘换位由表体上的 Alt + 上下键承担,
341
+ * 树形表下另有 Alt + 左右键改缩进层级。
342
+ * 整行起手那一路照旧可用,把手是叠加的第二个入口。
343
+ */
344
+ declare const XhTableRowDragTrigger: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
345
+ [key: string]: any;
346
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
244
347
  declare const XhTableExpandTrigger: import("vue").DefineComponent<{}, () => VNode<import("vue").RendererNode, import("vue").RendererElement, {
245
348
  [key: string]: any;
246
349
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -266,5 +369,5 @@ declare const XhTableLoadingState: import("vue").DefineComponent<{}, () => VNode
266
369
  [key: string]: any;
267
370
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
268
371
  //#endregion
269
- export { TableRootSlotProps, XhTableBody, XhTableCaption, XhTableCell, XhTableColumnHeader, XhTableEmpty, XhTableExpandTrigger, XhTableExpandedRow, XhTableFooter, XhTableHeader, XhTableLoadingState, XhTableRoot, XhTableRow, XhTableRowSelectTrigger, XhTableSelectAllTrigger, XhTableSortTrigger };
372
+ export { TableRootSlotProps, XhTableBody, XhTableCaption, XhTableCell, XhTableColumnDragTrigger, XhTableColumnHeader, XhTableColumnResizeTrigger, XhTableEmpty, XhTableExpandTrigger, XhTableExpandedRow, XhTableFooter, XhTableHeader, XhTableLoadingState, XhTableRoot, XhTableRow, XhTableRowDragTrigger, XhTableRowSelectTrigger, XhTableSelectAllTrigger, XhTableSortTrigger };
270
373
  //# sourceMappingURL=table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","names":[],"sources":["../../../src/components/table/table.ts"],"mappings":";;;;;KA6BK,aAAa;;KAyBN,qBAAqB,KAC/B;cAmBW,2BAAW,8BAAA;;IAIM,MAAA,SAAS;;;;IACZ,MAAA,SAAS;;;;IACT,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;IACD,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;IACrB,MAAA,SAAS;;;;IACf,MAAA;;;;IACO,MAAA;;;;;;;;;;;;;;;;;;IASX,MAAA,SAAS;;;;IACR,MAAA,SAAS;;;;;;EAIP,gBAAA,UAAA,UAAU;EACb,gBAAA,OAAA,UAAU;EACF,qBAAA,UAAA,UAAU;EACR,qBAAA,YAAA,UAAU;EACb,oBAAA,UAAA,UAAU;EACT,oBAAA,WAAA,UAAU;;;IA3Bf,MAAA,SAAS;;;;IACZ,MAAA,SAAS;;;;IACT,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;IACD,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;IACrB,MAAA,SAAS;;;;IACf,MAAA;;;;IACO,MAAA;;;;;;;;;;;;;;;;;;IASX,MAAA,SAAS;;;;IACR,MAAA,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYvB,WAAC,OAAO,uBAAuB;kCAoC3C;cAEW,8BAAc,0BAAA,oBAAA,4BAAA;;8BAMzB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,6BAAa,0BAAA,oBAAA,4BAAA;;8BAOxB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,2BAAW,0BAAA,oBAAA,4BAAA;;8BAQtB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,6BAAa,0BAAA,oBAAA,4BAAA;;8BAOxB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,0BAAU,8BAAA;;;;;;;;;;;;;;;;qCA6BrB;cAEW,mCAAmB,8BAAA;;;;;;;;;;;;MAe9B,oDAAA;cAEW,2BAAW,8BAAA;;;;;;;;IAMiB,MAAA;;;;;;;;;;;;;IAAA,MAAA;;;;;qCAgBvC;cAEW,uCAAuB,0BAAA,oBAAA,4BAAA;;8BAUlC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,uCAAuB,0BAAA,oBAAA,4BAAA;;8BAWlC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,kCAAkB,0BAAA,oBAAA,4BAAA;;8BAW7B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,oCAAoB,0BAAA,oBAAA,4BAAA;;8BAW/B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,kCAAkB,8BAAA;;;;;;;;;;;;;;MAgB7B,oDAAA;cAEW,4BAAY,0BAAA,oBAAA,4BAAA;;8BAMvB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,mCAAmB,0BAAA,oBAAA,4BAAA;;8BAM9B,qCAAA,iDAAA,aAAA,eAAA,oDAAA"}
1
+ {"version":3,"file":"table.d.ts","names":[],"sources":["../../../src/components/table/table.ts"],"mappings":";;;;;KAgCK,aAAa;;KAyBN,qBAAqB,KAC/B;cA2BW,2BAAW,8BAAA;;IAIM,MAAA,SAAS;;;;IACZ,MAAA,SAAS;;;;IACT,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;IACD,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;IACrB,MAAA,SAAS;;;;;IAEV,MAAA,SAAS;;;;;;IAGL,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;;;;;;;;;IAGzB,MAAA;;;;IACO,MAAA;;;;;;;;;;;;;;;;;IAWA,MAAA,SAAS;;;;;;;;IAEpB,MAAA,SAAS;;;;IACR,MAAA,SAAS;;;;IACD,MAAA,SAAS;;;;;;EAIF,6BAAA;IAAE,OAAO;;EACZ,4BAAA,QAAA;EACV,gBAAA,UAAA,UAAU;EACb,gBAAA,OAAA,UAAU;EACF,qBAAA,UAAA,UAAU;EACR,qBAAA,YAAA,UAAU;EACb,oBAAA,UAAA,UAAU;EACT,oBAAA,WAAA,UAAU;EAElB,aAAA,UAAA,UAAU;;;IA5CP,MAAA,SAAS;;;;IACZ,MAAA,SAAS;;;;IACT,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;IACD,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;IACrB,MAAA,SAAS;;;;;IAEV,MAAA,SAAS;;;;;;IAGL,MAAA,SAAS;;;;IACF,MAAA,SAAS;;;;;;;;;;;;IAGzB,MAAA;;;;IACO,MAAA;;;;;;;;;;;;;;;;;IAWA,MAAA,SAAS;;;;;;;;IAEpB,MAAA,SAAS;;;;IACR,MAAA,SAAS;;;;IACD,MAAA,SAAS;;;;;;;IAIO,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYtC,WAAC,OAAO,uBAAuB;kCA+D3C;cAEW,8BAAc,0BAAA,oBAAA,4BAAA;;8BAMzB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,6BAAa,0BAAA,oBAAA,4BAAA;;8BAOxB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,2BAAW,0BAAA,oBAAA,4BAAA;;8BAQtB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,6BAAa,0BAAA,oBAAA,4BAAA;;8BAOxB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,0BAAU,8BAAA;;;;;;;;;;;;;;;;qCA6BrB;cAEW,mCAAmB,8BAAA;;;;;;;;;;;;MAe9B,oDAAA;cAEW,2BAAW,8BAAA;;;;;;;;IAMiB,MAAA;;;;;;;;;;;;;IAAA,MAAA;;;;;qCAgBvC;cAEW,uCAAuB,0BAAA,oBAAA,4BAAA;;8BAUlC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,uCAAuB,0BAAA,oBAAA,4BAAA;;8BAWlC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,kCAAkB,0BAAA,oBAAA,4BAAA;;8BAW7B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;;cAGW,0CAA0B,0BAAA,oBAAA,4BAAA;;8BAWrC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;;cAGW,wCAAwB,0BAAA,oBAAA,4BAAA;;8BAWnC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;;;;;;;cAQW,qCAAqB,0BAAA,oBAAA,4BAAA;;8BAWhC,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,oCAAoB,0BAAA,oBAAA,4BAAA;;8BAW/B,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,kCAAkB,8BAAA;;;;;;;;;;;;;;MAgB7B,oDAAA;cAEW,4BAAY,0BAAA,oBAAA,4BAAA;;8BAMvB,qCAAA,iDAAA,aAAA,eAAA,oDAAA;cAEW,mCAAmB,0BAAA,oBAAA,4BAAA;;8BAM9B,qCAAA,iDAAA,aAAA,eAAA,oDAAA"}
@@ -1,6 +1,7 @@
1
+ import { withXhConfig } from "../../config/config.js";
1
2
  import { provideTable, provideTableColumn, provideTableRow, provideTableSection, useOptionalTableRowContext, useTableColumnContext, useTableContext, useTableRowContext, useTableSection } from "./context.js";
2
3
  import { useTable } from "./use-table.js";
3
- import { computed, defineComponent, h, onBeforeUnmount, ref, watch } from "vue";
4
+ import { Fragment, computed, defineComponent, h, mergeProps, onBeforeUnmount, ref, watch } from "vue";
4
5
  //#region src/components/table/table.ts
5
6
  /** 本行持有焦点时,value 变更重报焦点行,卸载时上报表体失焦 */
6
7
  function reportRowFocus(ctx, el, value) {
@@ -50,6 +51,29 @@ const XhTableRoot = defineComponent({
50
51
  type: String,
51
52
  default: void 0
52
53
  },
54
+ /** 要哪几列前缀列(序号 / 多选 / 展开),按给定顺序插在最前面并占住列号。 */
55
+ prefixColumns: {
56
+ type: Array,
57
+ default: void 0
58
+ },
59
+ /** 当前页码与每页条数:只用来算序号,不参与切片。 */
60
+ /** 列偏好:给定即受控。持久化归使用者,库只负责把它算进生效列。 */
61
+ columnPreference: {
62
+ type: Object,
63
+ default: void 0
64
+ },
65
+ defaultColumnPreference: {
66
+ type: Object,
67
+ default: void 0
68
+ },
69
+ page: {
70
+ type: Number,
71
+ default: void 0
72
+ },
73
+ pageSize: {
74
+ type: Number,
75
+ default: void 0
76
+ },
53
77
  expanded: {
54
78
  type: Array,
55
79
  default: void 0
@@ -68,6 +92,13 @@ const XhTableRoot = defineComponent({
68
92
  borderless: Boolean,
69
93
  ruled: Boolean,
70
94
  footer: Boolean,
95
+ /** 行可以拖着换位。整行都是拖动源,不另出把手。 */
96
+ rowReorderable: Boolean,
97
+ /** 这一次搬家许不许。收到的是折算好的落点(搬到哪个父下面的第几位)。不给即都许。 */
98
+ allowRowDrop: {
99
+ type: Function,
100
+ default: void 0
101
+ },
71
102
  loop: {
72
103
  type: Boolean,
73
104
  default: void 0
@@ -79,18 +110,30 @@ const XhTableRoot = defineComponent({
79
110
  size: {
80
111
  type: String,
81
112
  default: void 0
113
+ },
114
+ translations: {
115
+ type: Object,
116
+ default: void 0
82
117
  }
83
118
  },
84
119
  emits: {
120
+ "column-preference-change": (_details) => true,
121
+ "update:columnPreference": (_value) => true,
85
122
  "sort-change": (_details) => true,
86
123
  "update:sort": (_sort) => true,
87
124
  "selection-change": (_details) => true,
88
125
  "update:selection": (_selection) => true,
89
126
  "expanded-change": (_details) => true,
90
- "update:expanded": (_expanded) => true
127
+ "update:expanded": (_expanded) => true,
128
+ "row-move": (_details) => true
91
129
  },
92
130
  slots: Object,
93
- setup(props, { slots, emit }) {
131
+ inheritAttrs: false,
132
+ setup(props, { slots, emit, attrs }) {
133
+ const onColumnPreferenceChange = (details) => {
134
+ emit("column-preference-change", details);
135
+ emit("update:columnPreference", details.value);
136
+ };
94
137
  const onSortChange = (details) => {
95
138
  emit("sort-change", details);
96
139
  emit("update:sort", details.value);
@@ -103,9 +146,19 @@ const XhTableRoot = defineComponent({
103
146
  emit("expanded-change", details);
104
147
  emit("update:expanded", details.value);
105
148
  };
106
- const ctx = useTable(props, onSortChange, onSelectionChange, onExpandedChange);
149
+ const onRowMove = (details) => {
150
+ emit("row-move", details);
151
+ };
152
+ const ctx = useTable(withXhConfig("table", props), onSortChange, onSelectionChange, onExpandedChange, onColumnPreferenceChange, onRowMove);
107
153
  provideTable(ctx);
108
- return () => h("div", ctx.api.value.getRootProps(), slots.default?.({
154
+ return () => h(Fragment, [h("div", mergeProps(ctx.api.value.getRootProps(), attrs), slots.default?.({
155
+ columns: ctx.api.value.columns,
156
+ columnPreference: ctx.api.value.columnPreference,
157
+ setColumnHidden: ctx.api.value.setColumnHidden,
158
+ moveColumn: ctx.api.value.moveColumn,
159
+ setColumnWidth: ctx.api.value.setColumnWidth,
160
+ setColumnPreference: ctx.api.value.setColumnPreference,
161
+ rowNumber: ctx.api.value.rowNumber,
109
162
  visibleRows: ctx.api.value.visibleRows,
110
163
  sort: ctx.api.value.sort,
111
164
  selection: ctx.api.value.selection,
@@ -121,8 +174,9 @@ const XhTableRoot = defineComponent({
121
174
  toggleSort: ctx.api.value.toggleSort,
122
175
  selectRow: ctx.api.value.selectRow,
123
176
  toggleSelectAll: ctx.api.value.toggleSelectAll,
124
- toggleExpandRow: ctx.api.value.toggleExpandRow
125
- }));
177
+ toggleExpandRow: ctx.api.value.toggleExpandRow,
178
+ rowReorderDisabledReason: ctx.api.value.rowReorderDisabledReason
179
+ })), h("div", ctx.api.value.getLiveRegionProps(), ctx.service.context.get("announcement"))]);
126
180
  }
127
181
  });
128
182
  const XhTableCaption = defineComponent({
@@ -238,6 +292,38 @@ const XhTableSortTrigger = defineComponent({
238
292
  return () => h("span", ctx.api.value.getSortTriggerProps(column.value), slots.default?.());
239
293
  }
240
294
  });
295
+ /** 列宽把手。放在表头格里,只有 resizable 的列渲它。 */
296
+ const XhTableColumnResizeTrigger = defineComponent({
297
+ name: "XhTableColumnResizeTrigger",
298
+ setup(_, { slots }) {
299
+ const ctx = useTableContext();
300
+ const { column } = useTableColumnContext();
301
+ return () => h("span", ctx.api.value.getColumnResizeTriggerProps(column.value), slots.default?.());
302
+ }
303
+ });
304
+ /** 列拖拽把手。放在表头格里,只有可拖的列渲它。 */
305
+ const XhTableColumnDragTrigger = defineComponent({
306
+ name: "XhTableColumnDragTrigger",
307
+ setup(_, { slots }) {
308
+ const ctx = useTableContext();
309
+ const { column } = useTableColumnContext();
310
+ return () => h("span", ctx.api.value.getColumnDragTriggerProps(column.value), slots.default?.());
311
+ }
312
+ });
313
+ /**
314
+ * 行拖拽把手。放在数据行里,自带 touch-action: none,按下即拖,不等激活距离。
315
+ * 对读屏隐藏、也不占 Tab 位;键盘换位由表体上的 Alt + 上下键承担,
316
+ * 树形表下另有 Alt + 左右键改缩进层级。
317
+ * 整行起手那一路照旧可用,把手是叠加的第二个入口。
318
+ */
319
+ const XhTableRowDragTrigger = defineComponent({
320
+ name: "XhTableRowDragTrigger",
321
+ setup(_, { slots }) {
322
+ const ctx = useTableContext();
323
+ const { row } = useTableRowContext();
324
+ return () => h("span", ctx.api.value.getRowDragTriggerProps(row.value), slots.default?.());
325
+ }
326
+ });
241
327
  const XhTableExpandTrigger = defineComponent({
242
328
  name: "XhTableExpandTrigger",
243
329
  setup(_, { slots }) {
@@ -275,6 +361,6 @@ const XhTableLoadingState = defineComponent({
275
361
  }
276
362
  });
277
363
  //#endregion
278
- export { XhTableBody, XhTableCaption, XhTableCell, XhTableColumnHeader, XhTableEmpty, XhTableExpandTrigger, XhTableExpandedRow, XhTableFooter, XhTableHeader, XhTableLoadingState, XhTableRoot, XhTableRow, XhTableRowSelectTrigger, XhTableSelectAllTrigger, XhTableSortTrigger };
364
+ export { XhTableBody, XhTableCaption, XhTableCell, XhTableColumnDragTrigger, XhTableColumnHeader, XhTableColumnResizeTrigger, XhTableEmpty, XhTableExpandTrigger, XhTableExpandedRow, XhTableFooter, XhTableHeader, XhTableLoadingState, XhTableRoot, XhTableRow, XhTableRowDragTrigger, XhTableRowSelectTrigger, XhTableSelectAllTrigger, XhTableSortTrigger };
279
365
 
280
366
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","names":[],"sources":["../../../src/components/table/table.ts"],"sourcesContent":["import type {\n TableApi,\n TableColumnDef,\n TableColumnProps,\n TableRowDef,\n TableRowProps,\n TableSchema,\n TableSelection,\n TableSelectionMode,\n TableSortDescriptor,\n} from '@xihan-ui/headless'\nimport type { Direction, Size } from '@xihan-ui/kernel'\nimport type { PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { PayloadOf } from '../../runtime/payload'\nimport type { TableContext } from './use-table'\nimport { computed, defineComponent, h, onBeforeUnmount, ref, watch } from 'vue'\nimport {\n provideTable,\n provideTableColumn,\n provideTableRow,\n provideTableSection,\n useOptionalTableRowContext,\n useTableColumnContext,\n useTableContext,\n useTableRowContext,\n useTableSection,\n} from './context'\nimport { useTable } from './use-table'\n\ntype TableProps = TableSchema['props']\n\n/** 本行持有焦点时,value 变更重报焦点行,卸载时上报表体失焦 */\nfunction reportRowFocus(ctx: TableContext, el: Ref<HTMLElement | null>, value: () => string): void {\n watch(value, (next, prev) => {\n if (next === prev)\n return\n const { service } = ctx\n if (service.getStatus() !== 'Started')\n return\n if (el.value && service.scope.getActiveElement() === el.value)\n service.send({ type: 'ROW.FOCUS', value: next })\n })\n onBeforeUnmount(() => {\n const { service } = ctx\n // 整张表一起卸载时根部件先停机,此刻送事件会在 dev 下抛\n if (service.getStatus() !== 'Started')\n return\n // 按「本行当下正持有焦点」判定,不按 value 比对\n if (el.value && service.scope.getActiveElement() === el.value)\n service.send({ type: 'TABLE.BLUR' })\n })\n}\n\n/** 默认插槽的载荷:可见行与排序、选中、展开三态,以及逐行查询与改写它们的句柄。 */\nexport type TableRootSlotProps = Pick<\n TableApi,\n | 'visibleRows'\n | 'sort'\n | 'selection'\n | 'selectionState'\n | 'expandedValue'\n | 'focusedRow'\n | 'empty'\n | 'loading'\n | 'isSelected'\n | 'isExpanded'\n | 'sortDirection'\n | 'sortPriority'\n | 'toggleSort'\n | 'selectRow'\n | 'toggleSelectAll'\n | 'toggleExpandRow'\n>\n\nexport const XhTableRoot = defineComponent({\n name: 'XhTableRoot',\n // 有机器侧兜底的 prop 一律 default: undefined,缺省值由 connect 与机器决定\n props: {\n columns: { type: Array as PropType<TableColumnDef[]>, default: undefined },\n rows: { type: Array as PropType<TableRowDef[]>, default: undefined },\n sort: { type: Array as PropType<TableSortDescriptor[]>, default: undefined },\n defaultSort: { type: Array as PropType<TableSortDescriptor[]>, default: undefined },\n selection: { type: [Array, String] as PropType<TableSelection>, default: undefined },\n defaultSelection: { type: [Array, String] as PropType<TableSelection>, default: undefined },\n selectionMode: { type: String as PropType<TableSelectionMode>, default: undefined },\n expanded: { type: Array as PropType<string[]>, default: undefined },\n defaultExpanded: { type: Array as PropType<string[]>, default: undefined },\n loading: Boolean,\n empty: { type: Boolean, default: undefined },\n stickyHeader: Boolean,\n striped: Boolean,\n borderless: Boolean,\n ruled: Boolean,\n footer: Boolean,\n loop: { type: Boolean, default: undefined },\n dir: { type: String as PropType<Direction>, default: undefined },\n size: { type: String as PropType<Size>, default: undefined },\n },\n // *-change 携带 { value },update:* 携带裸值以支持 v-model\n emits: {\n 'sort-change': (_details: PayloadOf<TableProps, 'onSortChange'>) => true,\n 'update:sort': (_sort: PayloadOf<TableProps, 'onSortChange'>['value']) => true,\n 'selection-change': (_details: PayloadOf<TableProps, 'onSelectionChange'>) => true,\n 'update:selection': (_selection: PayloadOf<TableProps, 'onSelectionChange'>['value']) => true,\n 'expanded-change': (_details: PayloadOf<TableProps, 'onExpandedChange'>) => true,\n 'update:expanded': (_expanded: PayloadOf<TableProps, 'onExpandedChange'>['value']) => true,\n },\n slots: Object as SlotsType<{\n default?: (props: TableRootSlotProps) => VNode[]\n }>,\n setup(props, { slots, emit }) {\n const onSortChange: TableProps['onSortChange'] = (details) => {\n emit('sort-change', details)\n emit('update:sort', details.value)\n }\n const onSelectionChange: TableProps['onSelectionChange'] = (details) => {\n emit('selection-change', details)\n emit('update:selection', details.value)\n }\n const onExpandedChange: TableProps['onExpandedChange'] = (details) => {\n emit('expanded-change', details)\n emit('update:expanded', details.value)\n }\n const ctx = useTable(props as TableProps, onSortChange, onSelectionChange, onExpandedChange)\n provideTable(ctx)\n return () => h('div', ctx.api.value.getRootProps() as Record<string, unknown>, slots.default?.({\n visibleRows: ctx.api.value.visibleRows,\n sort: ctx.api.value.sort,\n selection: ctx.api.value.selection,\n selectionState: ctx.api.value.selectionState,\n expandedValue: ctx.api.value.expandedValue,\n focusedRow: ctx.api.value.focusedRow,\n empty: ctx.api.value.empty,\n loading: ctx.api.value.loading,\n isSelected: ctx.api.value.isSelected,\n isExpanded: ctx.api.value.isExpanded,\n sortDirection: ctx.api.value.sortDirection,\n sortPriority: ctx.api.value.sortPriority,\n toggleSort: ctx.api.value.toggleSort,\n selectRow: ctx.api.value.selectRow,\n toggleSelectAll: ctx.api.value.toggleSelectAll,\n toggleExpandRow: ctx.api.value.toggleExpandRow,\n }))\n },\n})\n\nexport const XhTableCaption = defineComponent({\n name: 'XhTableCaption',\n setup(_, { slots }) {\n const ctx = useTableContext()\n return () => h('div', ctx.api.value.getCaptionProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTableHeader = defineComponent({\n name: 'XhTableHeader',\n setup(_, { slots }) {\n const ctx = useTableContext()\n provideTableSection('header')\n return () => h('div', ctx.api.value.getHeaderProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTableBody = defineComponent({\n name: 'XhTableBody',\n setup(_, { slots }) {\n const ctx = useTableContext()\n provideTableSection('body')\n // 键盘与 roving 的兜底 Tab 位落在表体上,不在 root 上\n return () => h('div', ctx.api.value.getBodyProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTableFooter = defineComponent({\n name: 'XhTableFooter',\n setup(_, { slots }) {\n const ctx = useTableContext()\n provideTableSection('footer')\n return () => h('div', ctx.api.value.getFooterProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTableRow = defineComponent({\n name: 'XhTableRow',\n props: {\n /** 行 id:数据行必给,表头行与脚注行省略。 */\n value: { type: String, default: undefined },\n },\n setup(props, { slots }) {\n const ctx = useTableContext()\n const section = useTableSection()\n if (section !== 'body') {\n return () => h(\n 'div',\n (section === 'header'\n ? ctx.api.value.getHeaderRowProps()\n : ctx.api.value.getFooterRowProps()) as Record<string, unknown>,\n slots.default?.(),\n )\n }\n const row = computed<TableRowProps>(() => ({ value: props.value ?? '' }))\n // 供行内的把手与单元格读取行 id\n provideTableRow({ row })\n const el = ref<HTMLElement | null>(null)\n reportRowFocus(ctx, el, () => row.value.value)\n return () => h(\n 'div',\n { ...ctx.api.value.getRowProps(row.value) as Record<string, unknown>, ref: el },\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableColumnHeader = defineComponent({\n name: 'XhTableColumnHeader',\n props: {\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTableContext()\n const column = computed<TableColumnProps>(() => ({ value: props.value }))\n provideTableColumn({ column })\n return () => h(\n 'div',\n ctx.api.value.getColumnHeaderProps(column.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableCell = defineComponent({\n name: 'XhTableCell',\n props: {\n /** 列 id。 */\n value: { type: String, required: true },\n /** 跨列数,从 value 那一列往后算。 */\n colspan: { type: [String, Number] as PropType<string | number>, default: undefined },\n },\n setup(props, { slots }) {\n const ctx = useTableContext()\n // 行上下文可选:脚注单元格不属于任何数据行\n const rowCtx = useOptionalTableRowContext()\n return () => h(\n 'div',\n ctx.api.value.getCellProps({\n value: props.value,\n row: rowCtx?.row.value.value,\n colSpan: props.colspan == null ? undefined : Number(props.colspan),\n }) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableSelectAllTrigger = defineComponent({\n name: 'XhTableSelectAllTrigger',\n setup(_, { slots }) {\n const ctx = useTableContext()\n return () => h(\n 'span',\n ctx.api.value.getSelectAllTriggerProps() as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableRowSelectTrigger = defineComponent({\n name: 'XhTableRowSelectTrigger',\n setup(_, { slots }) {\n const ctx = useTableContext()\n const { row } = useTableRowContext()\n return () => h(\n 'span',\n ctx.api.value.getRowSelectTriggerProps(row.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableSortTrigger = defineComponent({\n name: 'XhTableSortTrigger',\n setup(_, { slots }) {\n const ctx = useTableContext()\n const { column } = useTableColumnContext()\n return () => h(\n 'span',\n ctx.api.value.getSortTriggerProps(column.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableExpandTrigger = defineComponent({\n name: 'XhTableExpandTrigger',\n setup(_, { slots }) {\n const ctx = useTableContext()\n const { row } = useTableRowContext()\n return () => h(\n 'span',\n ctx.api.value.getExpandTriggerProps(row.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableExpandedRow = defineComponent({\n name: 'XhTableExpandedRow',\n props: {\n /** 所属数据行的 id。 */\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTableContext()\n const row = computed<TableRowProps>(() => ({ value: props.value }))\n // 不 provide 行上下文;收起只加 hidden,不卸载内部节点\n return () => h(\n 'div',\n ctx.api.value.getExpandedRowProps(row.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableEmpty = defineComponent({\n name: 'XhTableEmpty',\n setup(_, { slots }) {\n const ctx = useTableContext()\n return () => h('div', ctx.api.value.getEmptyProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTableLoadingState = defineComponent({\n name: 'XhTableLoadingState',\n setup(_, { slots }) {\n const ctx = useTableContext()\n return () => h('div', ctx.api.value.getLoadingStateProps() as Record<string, unknown>, slots.default?.())\n },\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","names":[],"sources":["../../../src/components/table/table.ts"],"sourcesContent":["import type {\n TableApi,\n TableColumnDef,\n TableColumnKind,\n TableColumnPreference,\n TableColumnProps,\n TableRowDef,\n TableRowProps,\n TableSchema,\n TableSelection,\n TableSelectionMode,\n TableSortDescriptor,\n} from '@xihan-ui/headless'\nimport type { Direction, Size } from '@xihan-ui/kernel'\nimport type { PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { PayloadOf } from '../../runtime/payload'\nimport type { TableContext } from './use-table'\nimport { computed, defineComponent, Fragment, h, mergeProps, onBeforeUnmount, ref, watch } from 'vue'\nimport { withXhConfig } from '../../config/config'\nimport {\n provideTable,\n provideTableColumn,\n provideTableRow,\n provideTableSection,\n useOptionalTableRowContext,\n useTableColumnContext,\n useTableContext,\n useTableRowContext,\n useTableSection,\n} from './context'\nimport { useTable } from './use-table'\n\ntype TableProps = TableSchema['props']\n\n/** 本行持有焦点时,value 变更重报焦点行,卸载时上报表体失焦 */\nfunction reportRowFocus(ctx: TableContext, el: Ref<HTMLElement | null>, value: () => string): void {\n watch(value, (next, prev) => {\n if (next === prev)\n return\n const { service } = ctx\n if (service.getStatus() !== 'Started')\n return\n if (el.value && service.scope.getActiveElement() === el.value)\n service.send({ type: 'ROW.FOCUS', value: next })\n })\n onBeforeUnmount(() => {\n const { service } = ctx\n // 整张表一起卸载时根部件先停机,此刻送事件会在 dev 下抛\n if (service.getStatus() !== 'Started')\n return\n // 按「本行当下正持有焦点」判定,不按 value 比对\n if (el.value && service.scope.getActiveElement() === el.value)\n service.send({ type: 'TABLE.BLUR' })\n })\n}\n\n/** 默认插槽的载荷:可见行与排序、选中、展开三态,以及逐行查询与改写它们的句柄。 */\nexport type TableRootSlotProps = Pick<\n TableApi,\n | 'columns'\n | 'columnPreference'\n | 'setColumnHidden'\n | 'moveColumn'\n | 'setColumnWidth'\n | 'setColumnPreference'\n | 'rowNumber'\n | 'visibleRows'\n | 'sort'\n | 'selection'\n | 'selectionState'\n | 'expandedValue'\n | 'focusedRow'\n | 'empty'\n | 'loading'\n | 'isSelected'\n | 'isExpanded'\n | 'sortDirection'\n | 'sortPriority'\n | 'toggleSort'\n | 'selectRow'\n | 'toggleSelectAll'\n | 'toggleExpandRow'\n | 'rowReorderDisabledReason'\n>\n\nexport const XhTableRoot = defineComponent({\n name: 'XhTableRoot',\n // 有机器侧兜底的 prop 一律 default: undefined,缺省值由 connect 与机器决定\n props: {\n columns: { type: Array as PropType<TableColumnDef[]>, default: undefined },\n rows: { type: Array as PropType<TableRowDef[]>, default: undefined },\n sort: { type: Array as PropType<TableSortDescriptor[]>, default: undefined },\n defaultSort: { type: Array as PropType<TableSortDescriptor[]>, default: undefined },\n selection: { type: [Array, String] as PropType<TableSelection>, default: undefined },\n defaultSelection: { type: [Array, String] as PropType<TableSelection>, default: undefined },\n selectionMode: { type: String as PropType<TableSelectionMode>, default: undefined },\n /** 要哪几列前缀列(序号 / 多选 / 展开),按给定顺序插在最前面并占住列号。 */\n prefixColumns: { type: Array as PropType<TableColumnKind[]>, default: undefined },\n /** 当前页码与每页条数:只用来算序号,不参与切片。 */\n /** 列偏好:给定即受控。持久化归使用者,库只负责把它算进生效列。 */\n columnPreference: { type: Object as PropType<TableColumnPreference>, default: undefined },\n defaultColumnPreference: { type: Object as PropType<TableColumnPreference>, default: undefined },\n page: { type: Number, default: undefined },\n pageSize: { type: Number, default: undefined },\n expanded: { type: Array as PropType<string[]>, default: undefined },\n defaultExpanded: { type: Array as PropType<string[]>, default: undefined },\n loading: Boolean,\n empty: { type: Boolean, default: undefined },\n stickyHeader: Boolean,\n striped: Boolean,\n borderless: Boolean,\n ruled: Boolean,\n footer: Boolean,\n /** 行可以拖着换位。整行都是拖动源,不另出把手。 */\n rowReorderable: Boolean,\n /** 这一次搬家许不许。收到的是折算好的落点(搬到哪个父下面的第几位)。不给即都许。 */\n allowRowDrop: { type: Function as PropType<TableProps['allowRowDrop']>, default: undefined },\n loop: { type: Boolean, default: undefined },\n dir: { type: String as PropType<Direction>, default: undefined },\n size: { type: String as PropType<Size>, default: undefined },\n translations: { type: Object as PropType<TableProps['translations']>, default: undefined },\n },\n // *-change 携带 { value },update:* 携带裸值以支持 v-model\n emits: {\n 'column-preference-change': (_details: { value: TableColumnPreference }) => true,\n 'update:columnPreference': (_value: TableColumnPreference) => true,\n 'sort-change': (_details: PayloadOf<TableProps, 'onSortChange'>) => true,\n 'update:sort': (_sort: PayloadOf<TableProps, 'onSortChange'>['value']) => true,\n 'selection-change': (_details: PayloadOf<TableProps, 'onSelectionChange'>) => true,\n 'update:selection': (_selection: PayloadOf<TableProps, 'onSelectionChange'>['value']) => true,\n 'expanded-change': (_details: PayloadOf<TableProps, 'onExpandedChange'>) => true,\n 'update:expanded': (_expanded: PayloadOf<TableProps, 'onExpandedChange'>['value']) => true,\n // 行换位是通知,行序与父子归属的真源在使用者的数据里,故没有配对的 update:*\n 'row-move': (_details: PayloadOf<TableProps, 'onRowMove'>) => true,\n },\n slots: Object as SlotsType<{\n default?: (props: TableRootSlotProps) => VNode[]\n }>,\n // Fragment 根接不住自动透传:Vue 只在单个元素根上做这件事。\n // 作者写在 XhTableRoot 上的 class / aria-* / 监听器都要自己合到 root 那个 div 上\n inheritAttrs: false,\n setup(props, { slots, emit, attrs }) {\n const onColumnPreferenceChange: TableProps['onColumnPreferenceChange'] = (details) => {\n emit('column-preference-change', details)\n emit('update:columnPreference', details.value)\n }\n const onSortChange: TableProps['onSortChange'] = (details) => {\n emit('sort-change', details)\n emit('update:sort', details.value)\n }\n const onSelectionChange: TableProps['onSelectionChange'] = (details) => {\n emit('selection-change', details)\n emit('update:selection', details.value)\n }\n const onExpandedChange: TableProps['onExpandedChange'] = (details) => {\n emit('expanded-change', details)\n emit('update:expanded', details.value)\n }\n const onRowMove: TableProps['onRowMove'] = (details) => {\n emit('row-move', details)\n }\n const ctx = useTable(withXhConfig('table', props) as TableProps, onSortChange, onSelectionChange, onExpandedChange, onColumnPreferenceChange, onRowMove)\n provideTable(ctx)\n // 播报区由根组件自己渲,作者插不进 root 的兄弟位。它不能进 root:\n // root 是 role=grid,塞活动区域进去是 aria-required-children(critical)\n return () => h(Fragment, [\n h('div', mergeProps(ctx.api.value.getRootProps() as Record<string, unknown>, attrs), slots.default?.({\n columns: ctx.api.value.columns,\n columnPreference: ctx.api.value.columnPreference,\n setColumnHidden: ctx.api.value.setColumnHidden,\n moveColumn: ctx.api.value.moveColumn,\n setColumnWidth: ctx.api.value.setColumnWidth,\n setColumnPreference: ctx.api.value.setColumnPreference,\n rowNumber: ctx.api.value.rowNumber,\n visibleRows: ctx.api.value.visibleRows,\n sort: ctx.api.value.sort,\n selection: ctx.api.value.selection,\n selectionState: ctx.api.value.selectionState,\n expandedValue: ctx.api.value.expandedValue,\n focusedRow: ctx.api.value.focusedRow,\n empty: ctx.api.value.empty,\n loading: ctx.api.value.loading,\n isSelected: ctx.api.value.isSelected,\n isExpanded: ctx.api.value.isExpanded,\n sortDirection: ctx.api.value.sortDirection,\n sortPriority: ctx.api.value.sortPriority,\n toggleSort: ctx.api.value.toggleSort,\n selectRow: ctx.api.value.selectRow,\n toggleSelectAll: ctx.api.value.toggleSelectAll,\n toggleExpandRow: ctx.api.value.toggleExpandRow,\n rowReorderDisabledReason: ctx.api.value.rowReorderDisabledReason,\n })),\n h(\n 'div',\n ctx.api.value.getLiveRegionProps() as Record<string, unknown>,\n ctx.service.context.get('announcement'),\n ),\n ])\n },\n})\n\nexport const XhTableCaption = defineComponent({\n name: 'XhTableCaption',\n setup(_, { slots }) {\n const ctx = useTableContext()\n return () => h('div', ctx.api.value.getCaptionProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTableHeader = defineComponent({\n name: 'XhTableHeader',\n setup(_, { slots }) {\n const ctx = useTableContext()\n provideTableSection('header')\n return () => h('div', ctx.api.value.getHeaderProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTableBody = defineComponent({\n name: 'XhTableBody',\n setup(_, { slots }) {\n const ctx = useTableContext()\n provideTableSection('body')\n // 键盘与 roving 的兜底 Tab 位落在表体上,不在 root 上\n return () => h('div', ctx.api.value.getBodyProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTableFooter = defineComponent({\n name: 'XhTableFooter',\n setup(_, { slots }) {\n const ctx = useTableContext()\n provideTableSection('footer')\n return () => h('div', ctx.api.value.getFooterProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTableRow = defineComponent({\n name: 'XhTableRow',\n props: {\n /** 行 id:数据行必给,表头行与脚注行省略。 */\n value: { type: String, default: undefined },\n },\n setup(props, { slots }) {\n const ctx = useTableContext()\n const section = useTableSection()\n if (section !== 'body') {\n return () => h(\n 'div',\n (section === 'header'\n ? ctx.api.value.getHeaderRowProps()\n : ctx.api.value.getFooterRowProps()) as Record<string, unknown>,\n slots.default?.(),\n )\n }\n const row = computed<TableRowProps>(() => ({ value: props.value ?? '' }))\n // 供行内的把手与单元格读取行 id\n provideTableRow({ row })\n const el = ref<HTMLElement | null>(null)\n reportRowFocus(ctx, el, () => row.value.value)\n return () => h(\n 'div',\n { ...ctx.api.value.getRowProps(row.value) as Record<string, unknown>, ref: el },\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableColumnHeader = defineComponent({\n name: 'XhTableColumnHeader',\n props: {\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTableContext()\n const column = computed<TableColumnProps>(() => ({ value: props.value }))\n provideTableColumn({ column })\n return () => h(\n 'div',\n ctx.api.value.getColumnHeaderProps(column.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableCell = defineComponent({\n name: 'XhTableCell',\n props: {\n /** 列 id。 */\n value: { type: String, required: true },\n /** 跨列数,从 value 那一列往后算。 */\n colspan: { type: [String, Number] as PropType<string | number>, default: undefined },\n },\n setup(props, { slots }) {\n const ctx = useTableContext()\n // 行上下文可选:脚注单元格不属于任何数据行\n const rowCtx = useOptionalTableRowContext()\n return () => h(\n 'div',\n ctx.api.value.getCellProps({\n value: props.value,\n row: rowCtx?.row.value.value,\n colSpan: props.colspan == null ? undefined : Number(props.colspan),\n }) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableSelectAllTrigger = defineComponent({\n name: 'XhTableSelectAllTrigger',\n setup(_, { slots }) {\n const ctx = useTableContext()\n return () => h(\n 'span',\n ctx.api.value.getSelectAllTriggerProps() as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableRowSelectTrigger = defineComponent({\n name: 'XhTableRowSelectTrigger',\n setup(_, { slots }) {\n const ctx = useTableContext()\n const { row } = useTableRowContext()\n return () => h(\n 'span',\n ctx.api.value.getRowSelectTriggerProps(row.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableSortTrigger = defineComponent({\n name: 'XhTableSortTrigger',\n setup(_, { slots }) {\n const ctx = useTableContext()\n const { column } = useTableColumnContext()\n return () => h(\n 'span',\n ctx.api.value.getSortTriggerProps(column.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\n/** 列宽把手。放在表头格里,只有 resizable 的列渲它。 */\nexport const XhTableColumnResizeTrigger = defineComponent({\n name: 'XhTableColumnResizeTrigger',\n setup(_, { slots }) {\n const ctx = useTableContext()\n const { column } = useTableColumnContext()\n return () => h(\n 'span',\n ctx.api.value.getColumnResizeTriggerProps(column.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\n/** 列拖拽把手。放在表头格里,只有可拖的列渲它。 */\nexport const XhTableColumnDragTrigger = defineComponent({\n name: 'XhTableColumnDragTrigger',\n setup(_, { slots }) {\n const ctx = useTableContext()\n const { column } = useTableColumnContext()\n return () => h(\n 'span',\n ctx.api.value.getColumnDragTriggerProps(column.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\n/**\n * 行拖拽把手。放在数据行里,自带 touch-action: none,按下即拖,不等激活距离。\n * 对读屏隐藏、也不占 Tab 位;键盘换位由表体上的 Alt + 上下键承担,\n * 树形表下另有 Alt + 左右键改缩进层级。\n * 整行起手那一路照旧可用,把手是叠加的第二个入口。\n */\nexport const XhTableRowDragTrigger = defineComponent({\n name: 'XhTableRowDragTrigger',\n setup(_, { slots }) {\n const ctx = useTableContext()\n const { row } = useTableRowContext()\n return () => h(\n 'span',\n ctx.api.value.getRowDragTriggerProps(row.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableExpandTrigger = defineComponent({\n name: 'XhTableExpandTrigger',\n setup(_, { slots }) {\n const ctx = useTableContext()\n const { row } = useTableRowContext()\n return () => h(\n 'span',\n ctx.api.value.getExpandTriggerProps(row.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableExpandedRow = defineComponent({\n name: 'XhTableExpandedRow',\n props: {\n /** 所属数据行的 id。 */\n value: { type: String, required: true },\n },\n setup(props, { slots }) {\n const ctx = useTableContext()\n const row = computed<TableRowProps>(() => ({ value: props.value }))\n // 不 provide 行上下文;收起只加 hidden,不卸载内部节点\n return () => h(\n 'div',\n ctx.api.value.getExpandedRowProps(row.value) as Record<string, unknown>,\n slots.default?.(),\n )\n },\n})\n\nexport const XhTableEmpty = defineComponent({\n name: 'XhTableEmpty',\n setup(_, { slots }) {\n const ctx = useTableContext()\n return () => h('div', ctx.api.value.getEmptyProps() as Record<string, unknown>, slots.default?.())\n },\n})\n\nexport const XhTableLoadingState = defineComponent({\n name: 'XhTableLoadingState',\n setup(_, { slots }) {\n const ctx = useTableContext()\n return () => h('div', ctx.api.value.getLoadingStateProps() as Record<string, unknown>, slots.default?.())\n },\n})\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ interface TableContext {
7
7
  /** 机器实例,供部件上报 DOM 侧的事实(如行卸载带走了焦点)。 */
8
8
  service: Service<TableSchema>;
9
9
  }
10
- declare function useTable(props: TableSchema['props'], onSortChange?: TableSchema['props']['onSortChange'], onSelectionChange?: TableSchema['props']['onSelectionChange'], onExpandedChange?: TableSchema['props']['onExpandedChange']): TableContext;
10
+ declare function useTable(props: TableSchema['props'], onSortChange?: TableSchema['props']['onSortChange'], onSelectionChange?: TableSchema['props']['onSelectionChange'], onExpandedChange?: TableSchema['props']['onExpandedChange'], onColumnPreferenceChange?: TableSchema['props']['onColumnPreferenceChange'], onRowMove?: TableSchema['props']['onRowMove']): TableContext;
11
11
  //#endregion
12
12
  export { TableContext, useTable };
13
13
  //# sourceMappingURL=use-table.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-table.d.ts","names":[],"sources":["../../../src/components/table/use-table.ts"],"mappings":";;;;UAUiB;EACf,KAAK,YAAY;;EAEjB,SAAS,QAAQ;;iBAGH,SACd,OAAO,sBACP,eAAe,sCACf,oBAAoB,2CACpB,mBAAmB,2CAClB"}
1
+ {"version":3,"file":"use-table.d.ts","names":[],"sources":["../../../src/components/table/use-table.ts"],"mappings":";;;;UAUiB;EACf,KAAK,YAAY;;EAEjB,SAAS,QAAQ;;iBAGH,SACd,OAAO,sBACP,eAAe,sCACf,oBAAoB,2CACpB,mBAAmB,0CACnB,2BAA2B,kDAC3B,YAAY,oCACX"}
@@ -5,12 +5,14 @@ import { computed } from "vue";
5
5
  import { connectTable, tableMachine } from "@xihan-ui/headless";
6
6
  import { createScope } from "@xihan-ui/kernel";
7
7
  //#region src/components/table/use-table.ts
8
- function useTable(props, onSortChange, onSelectionChange, onExpandedChange) {
8
+ function useTable(props, onSortChange, onSelectionChange, onExpandedChange, onColumnPreferenceChange, onRowMove) {
9
9
  const service = useMachine(tableMachine, () => ({
10
10
  ...props,
11
11
  onSortChange,
12
12
  onSelectionChange,
13
- onExpandedChange
13
+ onExpandedChange,
14
+ onColumnPreferenceChange,
15
+ onRowMove
14
16
  }), createScope(null, createVueIdGenerator()));
15
17
  return {
16
18
  api: computed(() => connectTable(service, vueNormalize)),
@@ -1 +1 @@
1
- {"version":3,"file":"use-table.js","names":[],"sources":["../../../src/components/table/use-table.ts"],"sourcesContent":["import type { TableApi, TableSchema } from '@xihan-ui/headless'\nimport type { Service } from '@xihan-ui/machine'\nimport type { ComputedRef } from 'vue'\nimport { connectTable, tableMachine } from '@xihan-ui/headless'\nimport { createScope } from '@xihan-ui/kernel'\nimport { computed } from 'vue'\nimport { vueNormalize } from '../../runtime/normalize-props'\nimport { useMachine } from '../../runtime/use-machine'\nimport { createVueIdGenerator } from '../../runtime/vue-id'\n\nexport interface TableContext {\n api: ComputedRef<TableApi>\n /** 机器实例,供部件上报 DOM 侧的事实(如行卸载带走了焦点)。 */\n service: Service<TableSchema>\n}\n\nexport function useTable(\n props: TableSchema['props'],\n onSortChange?: TableSchema['props']['onSortChange'],\n onSelectionChange?: TableSchema['props']['onSelectionChange'],\n onExpandedChange?: TableSchema['props']['onExpandedChange'],\n): TableContext {\n const idGen = createVueIdGenerator()\n const scope = createScope(null, idGen)\n const service = useMachine(\n tableMachine,\n () => ({ ...props, onSortChange, onSelectionChange, onExpandedChange }),\n scope,\n )\n const api = computed(() => connectTable(service, vueNormalize))\n return { api, service }\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,SACd,OACA,cACA,mBACA,kBACc;CAGd,MAAM,UAAU,WACd,qBACO;EAAE,GAAG;EAAO;EAAc;EAAmB;CAAiB,IAHzD,YAAY,MADZ,qBACsB,CAI9B,CACN;CAEA,OAAO;EAAE,KADG,eAAe,aAAa,SAAS,YAAY,CAClD;EAAG;CAAQ;AACxB"}
1
+ {"version":3,"file":"use-table.js","names":[],"sources":["../../../src/components/table/use-table.ts"],"sourcesContent":["import type { TableApi, TableSchema } from '@xihan-ui/headless'\nimport type { Service } from '@xihan-ui/machine'\nimport type { ComputedRef } from 'vue'\nimport { connectTable, tableMachine } from '@xihan-ui/headless'\nimport { createScope } from '@xihan-ui/kernel'\nimport { computed } from 'vue'\nimport { vueNormalize } from '../../runtime/normalize-props'\nimport { useMachine } from '../../runtime/use-machine'\nimport { createVueIdGenerator } from '../../runtime/vue-id'\n\nexport interface TableContext {\n api: ComputedRef<TableApi>\n /** 机器实例,供部件上报 DOM 侧的事实(如行卸载带走了焦点)。 */\n service: Service<TableSchema>\n}\n\nexport function useTable(\n props: TableSchema['props'],\n onSortChange?: TableSchema['props']['onSortChange'],\n onSelectionChange?: TableSchema['props']['onSelectionChange'],\n onExpandedChange?: TableSchema['props']['onExpandedChange'],\n onColumnPreferenceChange?: TableSchema['props']['onColumnPreferenceChange'],\n onRowMove?: TableSchema['props']['onRowMove'],\n): TableContext {\n const idGen = createVueIdGenerator()\n const scope = createScope(null, idGen)\n const service = useMachine(\n tableMachine,\n () => ({ ...props, onSortChange, onSelectionChange, onExpandedChange, onColumnPreferenceChange, onRowMove }),\n scope,\n )\n const api = computed(() => connectTable(service, vueNormalize))\n return { api, service }\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,SACd,OACA,cACA,mBACA,kBACA,0BACA,WACc;CAGd,MAAM,UAAU,WACd,qBACO;EAAE,GAAG;EAAO;EAAc;EAAmB;EAAkB;EAA0B;CAAU,IAH9F,YAAY,MADZ,qBACsB,CAI9B,CACN;CAEA,OAAO;EAAE,KADG,eAAe,aAAa,SAAS,YAAY,CAClD;EAAG;CAAQ;AACxB"}
@@ -1,6 +1,6 @@
1
1
  import { inject, provide } from "vue";
2
2
  //#region src/components/tabs/context.ts
3
- const KEY = Symbol("xh-tabs");
3
+ const KEY = Symbol.for("xh-tabs");
4
4
  function provideTabs(ctx) {
5
5
  provide(KEY, ctx);
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../src/components/tabs/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { TabsContext } from './use-tabs'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<TabsContext> = Symbol('xh-tabs')\n\nexport function provideTabs(ctx: TabsContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTabsContext(): TabsContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Tabs 部件必须用在 XhTabsRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAiC,OAAO,SAAS;AAEvD,SAAgB,YAAY,KAAwB;CAClD,QAAQ,KAAK,GAAG;AAClB;AAEA,SAAgB,iBAA8B;CAC5C,MAAM,MAAM,OAAO,KAAK,IAAI;CAC5B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,+BAA+B;CACjD,OAAO;AACT"}
1
+ {"version":3,"file":"context.js","names":[],"sources":["../../../src/components/tabs/context.ts"],"sourcesContent":["import type { InjectionKey } from 'vue'\nimport type { TabsContext } from './use-tabs'\nimport { inject, provide } from 'vue'\n\nconst KEY: InjectionKey<TabsContext> = Symbol.for('xh-tabs')\n\nexport function provideTabs(ctx: TabsContext): void {\n provide(KEY, ctx)\n}\n\nexport function useTabsContext(): TabsContext {\n const ctx = inject(KEY, null)\n if (!ctx)\n throw new Error('[xh] Tabs 部件必须用在 XhTabsRoot 内')\n return ctx\n}\n"],"mappings":";;AAIA,MAAM,MAAiC,OAAO,IAAI,SAAS;AAE3D,SAAgB,YAAY,KAAwB;CAClD,QAAQ,KAAK,GAAG;AAClB;AAEA,SAAgB,iBAA8B;CAC5C,MAAM,MAAM,OAAO,KAAK,IAAI;CAC5B,IAAI,CAAC,KACH,MAAM,IAAI,MAAM,+BAA+B;CACjD,OAAO;AACT"}