@transsionfe/semi-ui-vue 0.0.1 → 0.0.2

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 (405) hide show
  1. package/lib/es/components/_cssAnimation/index.vue2.js +5 -0
  2. package/lib/es/components/_cssAnimation/index.vue2.js.map +1 -0
  3. package/lib/es/components/_portal/Portal.vue2.js +5 -0
  4. package/lib/es/components/_portal/Portal.vue2.js.map +1 -0
  5. package/lib/es/components/_resizeObserver/index.vue2.js +5 -0
  6. package/lib/es/components/_resizeObserver/index.vue2.js.map +1 -0
  7. package/lib/es/components/_sortable/Sortable.vue2.js +118 -0
  8. package/lib/es/components/_sortable/Sortable.vue2.js.map +1 -0
  9. package/lib/es/components/anchor/Anchor.vue2.js +5 -0
  10. package/lib/es/components/anchor/Anchor.vue2.js.map +1 -0
  11. package/lib/es/components/anchor/Link.vue2.js +5 -0
  12. package/lib/es/components/anchor/Link.vue2.js.map +1 -0
  13. package/lib/es/components/autoComplete/AutoComplete.vue2.js +5 -0
  14. package/lib/es/components/autoComplete/AutoComplete.vue2.js.map +1 -0
  15. package/lib/es/components/autoComplete/Option.vue2.js +5 -0
  16. package/lib/es/components/autoComplete/Option.vue2.js.map +1 -0
  17. package/lib/es/components/avatar/Avatar.vue2.js +5 -0
  18. package/lib/es/components/avatar/Avatar.vue2.js.map +1 -0
  19. package/lib/es/components/avatar/AvatarGroup.vue2.js +5 -0
  20. package/lib/es/components/avatar/AvatarGroup.vue2.js.map +1 -0
  21. package/lib/es/components/avatar/TopSlotSvg.vue2.js +5 -0
  22. package/lib/es/components/avatar/TopSlotSvg.vue2.js.map +1 -0
  23. package/lib/es/components/backTop/BackTop.vue2.js +5 -0
  24. package/lib/es/components/backTop/BackTop.vue2.js.map +1 -0
  25. package/lib/es/components/badge/Badge.vue2.js +5 -0
  26. package/lib/es/components/badge/Badge.vue2.js.map +1 -0
  27. package/lib/es/components/banner/Banner.vue2.js +5 -0
  28. package/lib/es/components/banner/Banner.vue2.js.map +1 -0
  29. package/lib/es/components/breadcrumb/Breadcrumb.vue2.js +185 -0
  30. package/lib/es/components/breadcrumb/Breadcrumb.vue2.js.map +1 -0
  31. package/lib/es/components/breadcrumb/BreadcrumbItem.vue2.js +159 -0
  32. package/lib/es/components/breadcrumb/BreadcrumbItem.vue2.js.map +1 -0
  33. package/lib/es/components/button/Button.vue2.js +5 -0
  34. package/lib/es/components/button/Button.vue2.js.map +1 -0
  35. package/lib/es/components/button/ButtonGroup.vue2.js +5 -0
  36. package/lib/es/components/button/ButtonGroup.vue2.js.map +1 -0
  37. package/lib/es/components/button/SplitButtonGroup.vue2.js +5 -0
  38. package/lib/es/components/button/SplitButtonGroup.vue2.js.map +1 -0
  39. package/lib/es/components/calendar/Calendar.vue2.js +5 -0
  40. package/lib/es/components/calendar/Calendar.vue2.js.map +1 -0
  41. package/lib/es/components/calendar/DayCalendar.vue2.js +194 -0
  42. package/lib/es/components/calendar/DayCalendar.vue2.js.map +1 -0
  43. package/lib/es/components/calendar/DayCol.vue2.js +125 -0
  44. package/lib/es/components/calendar/DayCol.vue2.js.map +1 -0
  45. package/lib/es/components/calendar/MonthCalendar.vue2.js +228 -0
  46. package/lib/es/components/calendar/MonthCalendar.vue2.js.map +1 -0
  47. package/lib/es/components/calendar/MonthCalendarInner.vue2.js +5 -0
  48. package/lib/es/components/calendar/MonthCalendarInner.vue2.js.map +1 -0
  49. package/lib/es/components/calendar/RangeCalendar.vue2.js +178 -0
  50. package/lib/es/components/calendar/RangeCalendar.vue2.js.map +1 -0
  51. package/lib/es/components/calendar/RangeCalendarInner.vue2.js +5 -0
  52. package/lib/es/components/calendar/RangeCalendarInner.vue2.js.map +1 -0
  53. package/lib/es/components/calendar/TimeCol.vue2.js +54 -0
  54. package/lib/es/components/calendar/TimeCol.vue2.js.map +1 -0
  55. package/lib/es/components/calendar/WeekCalendar.vue2.js +178 -0
  56. package/lib/es/components/calendar/WeekCalendar.vue2.js.map +1 -0
  57. package/lib/es/components/calendar/WeekCalendarInner.vue2.js +5 -0
  58. package/lib/es/components/calendar/WeekCalendarInner.vue2.js.map +1 -0
  59. package/lib/es/components/card/Card.vue2.js +130 -0
  60. package/lib/es/components/card/Card.vue2.js.map +1 -0
  61. package/lib/es/components/card/CardGroup.vue2.js +5 -0
  62. package/lib/es/components/card/CardGroup.vue2.js.map +1 -0
  63. package/lib/es/components/carousel/Carousel.vue2.js +5 -0
  64. package/lib/es/components/carousel/Carousel.vue2.js.map +1 -0
  65. package/lib/es/components/carousel/CarouselArrow.vue2.js +5 -0
  66. package/lib/es/components/carousel/CarouselArrow.vue2.js.map +1 -0
  67. package/lib/es/components/carousel/CarouselIndicator.vue2.js +5 -0
  68. package/lib/es/components/carousel/CarouselIndicator.vue2.js.map +1 -0
  69. package/lib/es/components/cascader/Cascader.vue2.js +5 -0
  70. package/lib/es/components/cascader/Cascader.vue2.js.map +1 -0
  71. package/lib/es/components/cascader/CascaderPanel.vue2.js +5 -0
  72. package/lib/es/components/cascader/CascaderPanel.vue2.js.map +1 -0
  73. package/lib/es/components/cascader/Item.vue2.js +5 -0
  74. package/lib/es/components/cascader/Item.vue2.js.map +1 -0
  75. package/lib/es/components/checkbox/Checkbox.vue2.js +5 -0
  76. package/lib/es/components/checkbox/Checkbox.vue2.js.map +1 -0
  77. package/lib/es/components/checkbox/CheckboxGroup.vue2.js +5 -0
  78. package/lib/es/components/checkbox/CheckboxGroup.vue2.js.map +1 -0
  79. package/lib/es/components/checkbox/CheckboxInner.vue2.js +90 -0
  80. package/lib/es/components/checkbox/CheckboxInner.vue2.js.map +1 -0
  81. package/lib/es/components/collapse/Collapse.vue2.js +5 -0
  82. package/lib/es/components/collapse/Collapse.vue2.js.map +1 -0
  83. package/lib/es/components/collapse/CollapsePanel.vue2.js +5 -0
  84. package/lib/es/components/collapse/CollapsePanel.vue2.js.map +1 -0
  85. package/lib/es/components/collapsible/Collapsible.vue2.js +5 -0
  86. package/lib/es/components/collapsible/Collapsible.vue2.js.map +1 -0
  87. package/lib/es/components/colorPicker/AlphaSlider.vue2.js +5 -0
  88. package/lib/es/components/colorPicker/AlphaSlider.vue2.js.map +1 -0
  89. package/lib/es/components/colorPicker/ColorChooseArea.vue2.js +5 -0
  90. package/lib/es/components/colorPicker/ColorChooseArea.vue2.js.map +1 -0
  91. package/lib/es/components/colorPicker/ColorPicker.vue2.js +5 -0
  92. package/lib/es/components/colorPicker/ColorPicker.vue2.js.map +1 -0
  93. package/lib/es/components/colorPicker/ColorPickerInner.vue2.js +5 -0
  94. package/lib/es/components/colorPicker/ColorPickerInner.vue2.js.map +1 -0
  95. package/lib/es/components/colorPicker/ColorSlider.vue2.js +5 -0
  96. package/lib/es/components/colorPicker/ColorSlider.vue2.js.map +1 -0
  97. package/lib/es/components/colorPicker/DataPart.vue2.js +5 -0
  98. package/lib/es/components/colorPicker/DataPart.vue2.js.map +1 -0
  99. package/lib/es/components/datePicker/DatePicker.vue2.js +5 -0
  100. package/lib/es/components/datePicker/DatePicker.vue2.js.map +1 -0
  101. package/lib/es/components/datePicker/Footer.vue2.js +5 -0
  102. package/lib/es/components/datePicker/Footer.vue2.js.map +1 -0
  103. package/lib/es/components/datePicker/Month.vue2.js +5 -0
  104. package/lib/es/components/datePicker/Month.vue2.js.map +1 -0
  105. package/lib/es/components/datePicker/MonthsGrid.vue2.js +5 -0
  106. package/lib/es/components/datePicker/MonthsGrid.vue2.js.map +1 -0
  107. package/lib/es/components/datePicker/Navigation.vue2.js +5 -0
  108. package/lib/es/components/datePicker/Navigation.vue2.js.map +1 -0
  109. package/lib/es/components/datePicker/Panel.vue2.js +5 -0
  110. package/lib/es/components/datePicker/Panel.vue2.js.map +1 -0
  111. package/lib/es/components/datePicker/QuickControl.vue2.js +5 -0
  112. package/lib/es/components/datePicker/QuickControl.vue2.js.map +1 -0
  113. package/lib/es/components/datePicker/YearAndMonth.vue2.js +5 -0
  114. package/lib/es/components/datePicker/YearAndMonth.vue2.js.map +1 -0
  115. package/lib/es/components/descriptions/Descriptions.vue2.js +5 -0
  116. package/lib/es/components/descriptions/Descriptions.vue2.js.map +1 -0
  117. package/lib/es/components/descriptions/DescriptionsItem.vue2.js +5 -0
  118. package/lib/es/components/descriptions/DescriptionsItem.vue2.js.map +1 -0
  119. package/lib/es/components/divider/Divider.vue2.js +5 -0
  120. package/lib/es/components/divider/Divider.vue2.js.map +1 -0
  121. package/lib/es/components/dropdown/ContextProvider.vue2.js +5 -0
  122. package/lib/es/components/dropdown/ContextProvider.vue2.js.map +1 -0
  123. package/lib/es/components/dropdown/Dropdown.vue2.js +5 -0
  124. package/lib/es/components/dropdown/Dropdown.vue2.js.map +1 -0
  125. package/lib/es/components/dropdown/DropdownDivider.vue2.js +5 -0
  126. package/lib/es/components/dropdown/DropdownDivider.vue2.js.map +1 -0
  127. package/lib/es/components/dropdown/DropdownItem.vue2.js +5 -0
  128. package/lib/es/components/dropdown/DropdownItem.vue2.js.map +1 -0
  129. package/lib/es/components/dropdown/DropdownMenu.vue2.js +5 -0
  130. package/lib/es/components/dropdown/DropdownMenu.vue2.js.map +1 -0
  131. package/lib/es/components/dropdown/DropdownTitle.vue2.js +5 -0
  132. package/lib/es/components/dropdown/DropdownTitle.vue2.js.map +1 -0
  133. package/lib/es/components/empty/Empty.vue2.js +5 -0
  134. package/lib/es/components/empty/Empty.vue2.js.map +1 -0
  135. package/lib/es/components/form/ArrayField.vue2.js +5 -0
  136. package/lib/es/components/form/ArrayField.vue2.js.map +1 -0
  137. package/lib/es/components/form/ErrorMessage.vue2.js +5 -0
  138. package/lib/es/components/form/ErrorMessage.vue2.js.map +1 -0
  139. package/lib/es/components/form/FieldWrapper.vue2.js +5 -0
  140. package/lib/es/components/form/FieldWrapper.vue2.js.map +1 -0
  141. package/lib/es/components/form/Form.vue2.js +5 -0
  142. package/lib/es/components/form/Form.vue2.js.map +1 -0
  143. package/lib/es/components/form/Group.vue2.js +5 -0
  144. package/lib/es/components/form/Group.vue2.js.map +1 -0
  145. package/lib/es/components/form/Label.vue2.js +5 -0
  146. package/lib/es/components/form/Label.vue2.js.map +1 -0
  147. package/lib/es/components/form/Section.vue2.js +37 -0
  148. package/lib/es/components/form/Section.vue2.js.map +1 -0
  149. package/lib/es/components/form/Slot.vue2.js +5 -0
  150. package/lib/es/components/form/Slot.vue2.js.map +1 -0
  151. package/lib/es/components/grid/Col.vue2.js +5 -0
  152. package/lib/es/components/grid/Col.vue2.js.map +1 -0
  153. package/lib/es/components/grid/Row.vue2.js +5 -0
  154. package/lib/es/components/grid/Row.vue2.js.map +1 -0
  155. package/lib/es/components/highlight/Highlight.vue2.js +5 -0
  156. package/lib/es/components/highlight/Highlight.vue2.js.map +1 -0
  157. package/lib/es/components/iconButton/IconButton.vue2.js +5 -0
  158. package/lib/es/components/iconButton/IconButton.vue2.js.map +1 -0
  159. package/lib/es/components/image/Image.vue2.js +5 -0
  160. package/lib/es/components/image/Image.vue2.js.map +1 -0
  161. package/lib/es/components/image/Preview.vue2.js +5 -0
  162. package/lib/es/components/image/Preview.vue2.js.map +1 -0
  163. package/lib/es/components/image/PreviewFooter.vue2.js +5 -0
  164. package/lib/es/components/image/PreviewFooter.vue2.js.map +1 -0
  165. package/lib/es/components/image/PreviewHeader.vue2.js +5 -0
  166. package/lib/es/components/image/PreviewHeader.vue2.js.map +1 -0
  167. package/lib/es/components/image/PreviewImage.vue2.js +5 -0
  168. package/lib/es/components/image/PreviewImage.vue2.js.map +1 -0
  169. package/lib/es/components/image/PreviewInner.vue2.js +5 -0
  170. package/lib/es/components/image/PreviewInner.vue2.js.map +1 -0
  171. package/lib/es/components/input/Input.vue2.js +5 -0
  172. package/lib/es/components/input/Input.vue2.js.map +1 -0
  173. package/lib/es/components/input/InputGroup.vue2.js +5 -0
  174. package/lib/es/components/input/InputGroup.vue2.js.map +1 -0
  175. package/lib/es/components/input/TextArea.vue2.js +5 -0
  176. package/lib/es/components/input/TextArea.vue2.js.map +1 -0
  177. package/lib/es/components/inputNumber/InputNumber.vue2.js +5 -0
  178. package/lib/es/components/inputNumber/InputNumber.vue2.js.map +1 -0
  179. package/lib/es/components/layout/Content.vue2.js +5 -0
  180. package/lib/es/components/layout/Content.vue2.js.map +1 -0
  181. package/lib/es/components/layout/Footer.vue2.js +5 -0
  182. package/lib/es/components/layout/Footer.vue2.js.map +1 -0
  183. package/lib/es/components/layout/Header.vue2.js +5 -0
  184. package/lib/es/components/layout/Header.vue2.js.map +1 -0
  185. package/lib/es/components/layout/Layout.vue2.js +5 -0
  186. package/lib/es/components/layout/Layout.vue2.js.map +1 -0
  187. package/lib/es/components/layout/Sider.vue2.js +5 -0
  188. package/lib/es/components/layout/Sider.vue2.js.map +1 -0
  189. package/lib/es/components/list/List.vue2.js +5 -0
  190. package/lib/es/components/list/List.vue2.js.map +1 -0
  191. package/lib/es/components/list/ListItem.vue2.js +5 -0
  192. package/lib/es/components/list/ListItem.vue2.js.map +1 -0
  193. package/lib/es/components/locale/LocaleConsumer.vue2.js +5 -0
  194. package/lib/es/components/locale/LocaleConsumer.vue2.js.map +1 -0
  195. package/lib/es/components/locale/LocaleProvider.vue2.js +5 -0
  196. package/lib/es/components/locale/LocaleProvider.vue2.js.map +1 -0
  197. package/lib/es/components/modal/ConfirmModal.vue2.js +5 -0
  198. package/lib/es/components/modal/ConfirmModal.vue2.js.map +1 -0
  199. package/lib/es/components/modal/Modal.vue2.js +5 -0
  200. package/lib/es/components/modal/Modal.vue2.js.map +1 -0
  201. package/lib/es/components/modal/ModalContent.vue2.js +5 -0
  202. package/lib/es/components/modal/ModalContent.vue2.js.map +1 -0
  203. package/lib/es/components/navigation/CollapseButton.vue2.js +5 -0
  204. package/lib/es/components/navigation/CollapseButton.vue2.js.map +1 -0
  205. package/lib/es/components/navigation/Footer.vue2.js +5 -0
  206. package/lib/es/components/navigation/Footer.vue2.js.map +1 -0
  207. package/lib/es/components/navigation/Header.vue2.js +5 -0
  208. package/lib/es/components/navigation/Header.vue2.js.map +1 -0
  209. package/lib/es/components/navigation/Item.vue2.js +5 -0
  210. package/lib/es/components/navigation/Item.vue2.js.map +1 -0
  211. package/lib/es/components/navigation/Navigation.vue2.js +5 -0
  212. package/lib/es/components/navigation/Navigation.vue2.js.map +1 -0
  213. package/lib/es/components/navigation/SubNav.vue2.js +5 -0
  214. package/lib/es/components/navigation/SubNav.vue2.js.map +1 -0
  215. package/lib/es/components/notification/Notice.vue2.js +5 -0
  216. package/lib/es/components/notification/Notice.vue2.js.map +1 -0
  217. package/lib/es/components/notification/NotificationList.vue2.js +5 -0
  218. package/lib/es/components/notification/NotificationList.vue2.js.map +1 -0
  219. package/lib/es/components/overflowList/IntersectionObserver.vue2.js +5 -0
  220. package/lib/es/components/overflowList/IntersectionObserver.vue2.js.map +1 -0
  221. package/lib/es/components/overflowList/OverflowList.vue2.js +5 -0
  222. package/lib/es/components/overflowList/OverflowList.vue2.js.map +1 -0
  223. package/lib/es/components/pagination/Pagination.vue2.js +5 -0
  224. package/lib/es/components/pagination/Pagination.vue2.js.map +1 -0
  225. package/lib/es/components/pagination/RestPageList.vue2.js +5 -0
  226. package/lib/es/components/pagination/RestPageList.vue2.js.map +1 -0
  227. package/lib/es/components/pinCode/PinCode.vue2.js +5 -0
  228. package/lib/es/components/pinCode/PinCode.vue2.js.map +1 -0
  229. package/lib/es/components/popconfirm/Popconfirm.vue2.js +5 -0
  230. package/lib/es/components/popconfirm/Popconfirm.vue2.js.map +1 -0
  231. package/lib/es/components/popover/Arrow.vue2.js +59 -0
  232. package/lib/es/components/popover/Arrow.vue2.js.map +1 -0
  233. package/lib/es/components/popover/Popover.vue2.js +5 -0
  234. package/lib/es/components/popover/Popover.vue2.js.map +1 -0
  235. package/lib/es/components/progress/Progress.vue2.js +5 -0
  236. package/lib/es/components/progress/Progress.vue2.js.map +1 -0
  237. package/lib/es/components/radio/Radio.vue2.js +5 -0
  238. package/lib/es/components/radio/Radio.vue2.js.map +1 -0
  239. package/lib/es/components/radio/RadioGroup.vue2.js +5 -0
  240. package/lib/es/components/radio/RadioGroup.vue2.js.map +1 -0
  241. package/lib/es/components/rating/Rating.vue2.js +5 -0
  242. package/lib/es/components/rating/Rating.vue2.js.map +1 -0
  243. package/lib/es/components/rating/RatingItem.vue2.js +5 -0
  244. package/lib/es/components/rating/RatingItem.vue2.js.map +1 -0
  245. package/lib/es/components/resizable/Resizable.vue2.js +5 -0
  246. package/lib/es/components/resizable/Resizable.vue2.js.map +1 -0
  247. package/lib/es/components/resizable/ResizableHandler.vue2.js +5 -0
  248. package/lib/es/components/resizable/ResizableHandler.vue2.js.map +1 -0
  249. package/lib/es/components/resizable/group/ResizeGroup.vue2.js +5 -0
  250. package/lib/es/components/resizable/group/ResizeGroup.vue2.js.map +1 -0
  251. package/lib/es/components/resizable/group/ResizeHandler.vue2.js +5 -0
  252. package/lib/es/components/resizable/group/ResizeHandler.vue2.js.map +1 -0
  253. package/lib/es/components/resizable/group/ResizeItem.vue2.js +5 -0
  254. package/lib/es/components/resizable/group/ResizeItem.vue2.js.map +1 -0
  255. package/lib/es/components/resizeObserver/index.vue2.js +5 -0
  256. package/lib/es/components/resizeObserver/index.vue2.js.map +1 -0
  257. package/lib/es/components/scrollList/ScrollItem.vue2.js +5 -0
  258. package/lib/es/components/scrollList/ScrollItem.vue2.js.map +1 -0
  259. package/lib/es/components/scrollList/ScrollList.vue2.js +5 -0
  260. package/lib/es/components/scrollList/ScrollList.vue2.js.map +1 -0
  261. package/lib/es/components/select/Option.vue2.js +5 -0
  262. package/lib/es/components/select/Option.vue2.js.map +1 -0
  263. package/lib/es/components/select/OptionGroup.vue2.js +5 -0
  264. package/lib/es/components/select/OptionGroup.vue2.js.map +1 -0
  265. package/lib/es/components/select/Select.vue2.js +5 -0
  266. package/lib/es/components/select/Select.vue2.js.map +1 -0
  267. package/lib/es/components/sideSheet/SideSheet.vue2.js +5 -0
  268. package/lib/es/components/sideSheet/SideSheet.vue2.js.map +1 -0
  269. package/lib/es/components/sideSheet/SideSheetContent.vue2.js +5 -0
  270. package/lib/es/components/sideSheet/SideSheetContent.vue2.js.map +1 -0
  271. package/lib/es/components/skeleton/Skeleton.vue2.js +5 -0
  272. package/lib/es/components/skeleton/Skeleton.vue2.js.map +1 -0
  273. package/lib/es/components/skeleton/SkeletonAvatar.vue2.js +5 -0
  274. package/lib/es/components/skeleton/SkeletonAvatar.vue2.js.map +1 -0
  275. package/lib/es/components/skeleton/SkeletonButton.vue2.js +5 -0
  276. package/lib/es/components/skeleton/SkeletonButton.vue2.js.map +1 -0
  277. package/lib/es/components/skeleton/SkeletonImage.vue2.js +5 -0
  278. package/lib/es/components/skeleton/SkeletonImage.vue2.js.map +1 -0
  279. package/lib/es/components/skeleton/SkeletonParagraph.vue2.js +5 -0
  280. package/lib/es/components/skeleton/SkeletonParagraph.vue2.js.map +1 -0
  281. package/lib/es/components/skeleton/SkeletonTitle.vue2.js +5 -0
  282. package/lib/es/components/skeleton/SkeletonTitle.vue2.js.map +1 -0
  283. package/lib/es/components/slider/Slider.vue2.js +5 -0
  284. package/lib/es/components/slider/Slider.vue2.js.map +1 -0
  285. package/lib/es/components/space/Space.vue2.js +5 -0
  286. package/lib/es/components/space/Space.vue2.js.map +1 -0
  287. package/lib/es/components/spin/Spin.vue2.js +5 -0
  288. package/lib/es/components/spin/Spin.vue2.js.map +1 -0
  289. package/lib/es/components/steps/BasicStep.vue2.js +5 -0
  290. package/lib/es/components/steps/BasicStep.vue2.js.map +1 -0
  291. package/lib/es/components/steps/BasicSteps.vue2.js +5 -0
  292. package/lib/es/components/steps/BasicSteps.vue2.js.map +1 -0
  293. package/lib/es/components/steps/FillStep.vue2.js +5 -0
  294. package/lib/es/components/steps/FillStep.vue2.js.map +1 -0
  295. package/lib/es/components/steps/FillSteps.vue2.js +5 -0
  296. package/lib/es/components/steps/FillSteps.vue2.js.map +1 -0
  297. package/lib/es/components/steps/NavStep.vue2.js +5 -0
  298. package/lib/es/components/steps/NavStep.vue2.js.map +1 -0
  299. package/lib/es/components/steps/NavSteps.vue2.js +5 -0
  300. package/lib/es/components/steps/NavSteps.vue2.js.map +1 -0
  301. package/lib/es/components/steps/Step.vue2.js +5 -0
  302. package/lib/es/components/steps/Step.vue2.js.map +1 -0
  303. package/lib/es/components/steps/Steps.vue2.js +5 -0
  304. package/lib/es/components/steps/Steps.vue2.js.map +1 -0
  305. package/lib/es/components/switch/Switch.vue2.js +5 -0
  306. package/lib/es/components/switch/Switch.vue2.js.map +1 -0
  307. package/lib/es/components/table/Column.vue2.js +5 -0
  308. package/lib/es/components/table/Column.vue2.js.map +1 -0
  309. package/lib/es/components/table/ColumnFilter.vue2.js +133 -0
  310. package/lib/es/components/table/ColumnFilter.vue2.js.map +1 -0
  311. package/lib/es/components/table/ColumnSorter.vue2.js +73 -0
  312. package/lib/es/components/table/ColumnSorter.vue2.js.map +1 -0
  313. package/lib/es/components/table/CustomExpandIcon.vue2.js +63 -0
  314. package/lib/es/components/table/CustomExpandIcon.vue2.js.map +1 -0
  315. package/lib/es/components/table/ResizableHeaderCell.vue2.js +52 -0
  316. package/lib/es/components/table/ResizableHeaderCell.vue2.js.map +1 -0
  317. package/lib/es/components/table/Table.vue2.js +5 -0
  318. package/lib/es/components/table/Table.vue2.js.map +1 -0
  319. package/lib/es/components/table/TableCell.vue2.js +207 -0
  320. package/lib/es/components/table/TableCell.vue2.js.map +1 -0
  321. package/lib/es/components/table/TableHeader.vue2.js +93 -0
  322. package/lib/es/components/table/TableHeader.vue2.js.map +1 -0
  323. package/lib/es/components/table/TableHeaderRow.vue2.js +351 -0
  324. package/lib/es/components/table/TableHeaderRow.vue2.js.map +1 -0
  325. package/lib/es/components/table/TableSelectionCell.vue2.js +74 -0
  326. package/lib/es/components/table/TableSelectionCell.vue2.js.map +1 -0
  327. package/lib/es/components/table/VirtualizedBody.vue2.js +652 -0
  328. package/lib/es/components/table/VirtualizedBody.vue2.js.map +1 -0
  329. package/lib/es/components/tabs/TabBar.vue2.js +5 -0
  330. package/lib/es/components/tabs/TabBar.vue2.js.map +1 -0
  331. package/lib/es/components/tabs/TabItem.vue2.js +5 -0
  332. package/lib/es/components/tabs/TabItem.vue2.js.map +1 -0
  333. package/lib/es/components/tabs/TabPane.vue2.js +5 -0
  334. package/lib/es/components/tabs/TabPane.vue2.js.map +1 -0
  335. package/lib/es/components/tabs/Tabs.vue2.js +5 -0
  336. package/lib/es/components/tabs/Tabs.vue2.js.map +1 -0
  337. package/lib/es/components/tag/Tag.vue2.js +5 -0
  338. package/lib/es/components/tag/Tag.vue2.js.map +1 -0
  339. package/lib/es/components/tag/TagGroup.vue2.js +5 -0
  340. package/lib/es/components/tag/TagGroup.vue2.js.map +1 -0
  341. package/lib/es/components/tagInput/TagInput.vue2.js +412 -0
  342. package/lib/es/components/tagInput/TagInput.vue2.js.map +1 -0
  343. package/lib/es/components/tagInput/TagItem.vue2.js +5 -0
  344. package/lib/es/components/tagInput/TagItem.vue2.js.map +1 -0
  345. package/lib/es/components/timePicker/Combobox.vue2.js +5 -0
  346. package/lib/es/components/timePicker/Combobox.vue2.js.map +1 -0
  347. package/lib/es/components/timePicker/TimeInput.vue2.js +5 -0
  348. package/lib/es/components/timePicker/TimeInput.vue2.js.map +1 -0
  349. package/lib/es/components/timePicker/TimePicker.vue2.js +5 -0
  350. package/lib/es/components/timePicker/TimePicker.vue2.js.map +1 -0
  351. package/lib/es/components/timeline/Timeline.vue2.js +5 -0
  352. package/lib/es/components/timeline/Timeline.vue2.js.map +1 -0
  353. package/lib/es/components/timeline/TimelineItem.vue2.js +5 -0
  354. package/lib/es/components/timeline/TimelineItem.vue2.js.map +1 -0
  355. package/lib/es/components/toast/HookToast.vue2.js +5 -0
  356. package/lib/es/components/toast/HookToast.vue2.js.map +1 -0
  357. package/lib/es/components/toast/Toast.vue2.js +5 -0
  358. package/lib/es/components/toast/Toast.vue2.js.map +1 -0
  359. package/lib/es/components/toast/ToastList.vue2.js +5 -0
  360. package/lib/es/components/toast/ToastList.vue2.js.map +1 -0
  361. package/lib/es/components/tooltip/Tooltip.vue2.js +594 -0
  362. package/lib/es/components/tooltip/Tooltip.vue2.js.map +1 -0
  363. package/lib/es/components/tooltip/TriangleArrow.vue2.js +5 -0
  364. package/lib/es/components/tooltip/TriangleArrow.vue2.js.map +1 -0
  365. package/lib/es/components/tooltip/TriangleArrowVertical.vue2.js +5 -0
  366. package/lib/es/components/tooltip/TriangleArrowVertical.vue2.js.map +1 -0
  367. package/lib/es/components/transfer/Transfer.vue2.js +5 -0
  368. package/lib/es/components/transfer/Transfer.vue2.js.map +1 -0
  369. package/lib/es/components/transfer/TransferHeader.vue2.js +5 -0
  370. package/lib/es/components/transfer/TransferHeader.vue2.js.map +1 -0
  371. package/lib/es/components/transfer/TransferSelected.vue2.js +5 -0
  372. package/lib/es/components/transfer/TransferSelected.vue2.js.map +1 -0
  373. package/lib/es/components/transfer/TransferSource.vue2.js +5 -0
  374. package/lib/es/components/transfer/TransferSource.vue2.js.map +1 -0
  375. package/lib/es/components/tree/AutoSizer.vue2.js +5 -0
  376. package/lib/es/components/tree/AutoSizer.vue2.js.map +1 -0
  377. package/lib/es/components/tree/Indent.vue2.js +5 -0
  378. package/lib/es/components/tree/Indent.vue2.js.map +1 -0
  379. package/lib/es/components/tree/NodeCollapsible.vue2.js +5 -0
  380. package/lib/es/components/tree/NodeCollapsible.vue2.js.map +1 -0
  381. package/lib/es/components/tree/NodeList.vue2.js +5 -0
  382. package/lib/es/components/tree/NodeList.vue2.js.map +1 -0
  383. package/lib/es/components/tree/Tree.vue2.js +5 -0
  384. package/lib/es/components/tree/Tree.vue2.js.map +1 -0
  385. package/lib/es/components/tree/TreeNode.vue2.js +5 -0
  386. package/lib/es/components/tree/TreeNode.vue2.js.map +1 -0
  387. package/lib/es/components/treeSelect/TreeSelect.vue2.js +5 -0
  388. package/lib/es/components/treeSelect/TreeSelect.vue2.js.map +1 -0
  389. package/lib/es/components/trigger/Trigger.vue2.js +5 -0
  390. package/lib/es/components/trigger/Trigger.vue2.js.map +1 -0
  391. package/lib/es/components/typography/Base.vue2.js +5 -0
  392. package/lib/es/components/typography/Base.vue2.js.map +1 -0
  393. package/lib/es/components/typography/Copyable.vue2.js +5 -0
  394. package/lib/es/components/typography/Copyable.vue2.js.map +1 -0
  395. package/lib/es/components/typography/Paragraph.vue2.js +5 -0
  396. package/lib/es/components/typography/Paragraph.vue2.js.map +1 -0
  397. package/lib/es/components/typography/Text.vue2.js +5 -0
  398. package/lib/es/components/typography/Text.vue2.js.map +1 -0
  399. package/lib/es/components/typography/Title.vue2.js +5 -0
  400. package/lib/es/components/typography/Title.vue2.js.map +1 -0
  401. package/lib/es/components/typography/Typography.vue2.js +5 -0
  402. package/lib/es/components/typography/Typography.vue2.js.map +1 -0
  403. package/lib/es/components/upload/Upload.vue2.js +5 -0
  404. package/lib/es/components/upload/Upload.vue2.js.map +1 -0
  405. package/package.json +4 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableCell.vue2.js","sources":["../../../../src/components/table/TableCell.vue"],"sourcesContent":["<template>\n <component\n :is=\"CellComponent\"\n v-if=\"cellProps.rowspan !== 0 && cellProps.colspan !== 0\"\n :class=\"cellCls\"\n :style=\"cellStyle\"\n v-bind=\"cellProps\"\n @click=\"handleClick\"\n >\n <template v-if=\"useFullRender\">\n <RenderVNode\n v-if=\"cellContent && cellContent !== 'selection' && typeof cellContent === 'function'\"\n :render-fn=\"cellContent\"\n />\n <span\n v-else-if=\"cellContent && cellContent !== 'selection' && typeof cellContent !== 'function'\"\n :class=\"`${prefixCls}-cell-content`\"\n >\n {{ cellContent }}\n </span>\n </template>\n <template v-else>\n <span\n v-if=\"indent > 0\"\n :class=\"`${prefixCls}-row-indent indent-level-${indent}`\"\n :style=\"{ paddingLeft: `${indentSize * indent}px` }\"\n />\n <span v-if=\"shouldRenderExpandIcon && expandIconNode\" style=\"display: inline-flex; align-items: center\">\n <RenderVNode :render-fn=\"expandIconNode\" />\n <slot\n v-if=\"hasSlot && columnSlotName\"\n :name=\"columnSlotName\"\n :text=\"getColumnTextValue\"\n :record=\"record\"\n :index=\"index\"\n />\n <RenderVNode\n v-else-if=\"cellContent && cellContent !== 'selection' && typeof cellContent === 'function'\"\n :render-fn=\"cellContent\"\n />\n <span\n v-else-if=\"cellContent && cellContent !== 'selection' && typeof cellContent !== 'function'\"\n :class=\"`${prefixCls}-cell-content`\"\n >\n {{ cellContent }}\n </span>\n </span>\n <TableSelectionCell\n v-else-if=\"isSelectionColumn(column) && selectionCellProps\"\n v-bind=\"selectionCellProps\"\n />\n <slot\n v-else-if=\"hasSlot && columnSlotName\"\n :name=\"columnSlotName\"\n :text=\"getColumnTextValue\"\n :record=\"record\"\n :index=\"index\"\n />\n <RenderVNode\n v-else-if=\"cellContent && cellContent !== 'selection' && typeof cellContent === 'function'\"\n :render-fn=\"cellContent\"\n />\n <span\n v-else-if=\"cellContent && cellContent !== 'selection' && typeof cellContent !== 'function'\"\n :class=\"`${prefixCls}-cell-content`\"\n >\n {{ cellContent }}\n </span>\n </template>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineComponent, isVNode, h } from 'vue';\nimport { getRTLAlign, getRTLFlexAlign } from '@douyinfe/semi-foundation/table/utils';\nimport { get, isFunction } from 'lodash';\nimport classnames from 'classnames';\nimport { cssClasses, numbers } from '@douyinfe/semi-foundation/table/constants';\nimport { isSelectionColumn, isExpandedColumn } from '@douyinfe/semi-foundation/table/utils';\nimport { useTableContext } from './table-context';\nimport TableSelectionCell from './TableSelectionCell.vue';\nimport type { ColumnProps, ExpandIcon } from './interface';\nimport type { CSSProperties } from 'vue';\n\nconst RenderVNode = defineComponent({\n name: 'RenderVNode',\n props: {\n renderFn: {\n type: Function,\n required: true,\n },\n },\n setup(props) {\n return () => {\n if (!props.renderFn) {\n return null;\n }\n const result = props.renderFn();\n\n if (result === null || result === undefined) {\n return null;\n }\n\n // 处理字符串和数字\n if (typeof result === 'string' || typeof result === 'number') {\n return String(result);\n }\n\n // 使用 isVNode 检查,确保是有效的 VNode\n if (isVNode(result)) {\n return result;\n }\n\n // 处理数组(可能是 VNode 数组)\n if (Array.isArray(result)) {\n return result;\n }\n\n // 如果 result 是对象但不是 VNode,返回 null 避免显示 [object Object]\n return null;\n };\n },\n});\n\ndefineOptions({\n name: 'SemiTableCell',\n});\n\ninterface Props {\n record?: Record<string, any>;\n prefixCls?: string;\n index?: number;\n fixedLeft?: boolean | number;\n lastFixedLeft?: boolean;\n fixedRight?: boolean | number;\n firstFixedRight?: boolean;\n indent?: number;\n indentSize?: number;\n column?: ColumnProps;\n expandIcon?: ExpandIcon;\n renderExpandIcon?: (record: Record<string, any>) => any;\n hideExpandedColumn?: boolean;\n component?: any;\n onClick?: (record: Record<string, any>, e: MouseEvent) => void;\n isSection?: boolean;\n width?: string | number;\n height?: string | number;\n selected?: boolean;\n expanded?: boolean;\n disabled?: boolean;\n expandable?: boolean;\n colIndex?: number;\n firstDataColumnIndex?: number;\n selectionCellProps?: any;\n columnSlotName?: string | null;\n hasSlot?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n indent: 0,\n indentSize: numbers.DEFAULT_INDENT_WIDTH,\n prefixCls: cssClasses.PREFIX,\n component: 'td',\n column: () => ({}),\n firstDataColumnIndex: 0,\n});\n\nconst CellComponent = computed(() => props.component || 'td');\nconst tableContext = useTableContext();\n\nconst cellCls = computed(() => {\n const { column, fixedLeft, fixedRight, lastFixedLeft, firstFixedRight, isSection } = props;\n const { ellipsis } = column || {};\n const fixedLeftFlag = fixedLeft === true || typeof fixedLeft === 'number';\n const fixedRightFlag = fixedRight === true || typeof fixedRight === 'number';\n return classnames(`${props.prefixCls}-row-cell`, column.className, {\n // 兼容 offset=0 的场景(第一列固定最常见)\n [`${props.prefixCls}-cell-fixed-left`]: fixedLeftFlag,\n [`${props.prefixCls}-cell-fixed-right`]: fixedRightFlag,\n [`${props.prefixCls}-cell-fixed-left-last`]: lastFixedLeft,\n [`${props.prefixCls}-cell-fixed-right-first`]: firstFixedRight,\n [`${props.prefixCls}-cell-selection`]: isSelectionColumn(column),\n [`${props.prefixCls}-cell-expand`]: isExpandedColumn(column),\n [`${props.prefixCls}-cell-section`]: isSection,\n [`${props.prefixCls}-row-cell-ellipsis`]: ellipsis,\n });\n});\n\nconst cellStyle = computed<CSSProperties>(() => {\n const style: CSSProperties = {};\n const direction = tableContext.direction ?? null;\n let directionValue: any = direction;\n if (typeof direction === 'object' && direction && 'value' in direction) {\n directionValue = (direction as any).value;\n }\n const isRTL = directionValue === 'rtl';\n const fixedLeftFlag = props.fixedLeft === true || typeof props.fixedLeft === 'number';\n const fixedRightFlag = props.fixedRight === true || typeof props.fixedRight === 'number';\n\n if (fixedLeftFlag || fixedRightFlag) {\n style.position = 'sticky';\n if (props.lastFixedLeft || props.firstFixedRight) {\n style.zIndex = 102;\n } else {\n style.zIndex = 101;\n }\n\n if (fixedLeftFlag) {\n const xPositionKey = isRTL ? 'right' : 'left';\n const offset = typeof props.fixedLeft === 'number' ? props.fixedLeft : 0;\n style[xPositionKey] = `${offset}px`;\n } else if (fixedRightFlag) {\n const xPositionKey = isRTL ? 'left' : 'right';\n const offset = typeof props.fixedRight === 'number' ? props.fixedRight : 0;\n style[xPositionKey] = `${offset}px`;\n }\n }\n\n if (props.width) {\n const widthValue = typeof props.width === 'number' ? `${props.width}px` : props.width;\n style.width = widthValue;\n style.flexShrink = 0;\n style.flexGrow = 0;\n }\n if (props.height) {\n style.height = typeof props.height === 'number' ? `${props.height}px` : props.height;\n }\n\n if (props.column?.align) {\n const textAlign = getRTLAlign(props.column.align, directionValue);\n const justifyContent = getRTLFlexAlign(props.column.align, directionValue);\n style.textAlign = textAlign;\n style.justifyContent = justifyContent;\n }\n\n return style;\n});\n\n// 用于存储 render 返回的对象(如果有 props)\nconst renderResult = computed(() => {\n const { column, record, index } = props;\n if (!column || !record || !column.render) {\n return null;\n }\n\n const value = column.dataIndex ? get(record, column.dataIndex) : record;\n const result = column.render(value, record, index || 0);\n\n // 如果 render 返回的是对象且包含 props 属性(行列合并场景)\n if (result && typeof result === 'object' && !isVNode(result) && 'props' in result) {\n return result;\n }\n\n return null;\n});\n\nconst cellProps = computed(() => {\n const { column, record, index } = props;\n const customProps = isFunction(column.onCell) ? column.onCell(record, index) : {};\n const renderProps = renderResult.value?.props || {};\n const mergedProps = { ...customProps, ...renderProps };\n const normalizedProps: Record<string, any> = {};\n for (const key in mergedProps) {\n if (key === 'rowSpan') {\n normalizedProps.rowspan = mergedProps[key];\n } else if (key === 'colSpan') {\n normalizedProps.colspan = mergedProps[key];\n } else {\n normalizedProps[key] = mergedProps[key];\n }\n }\n return normalizedProps;\n});\n\nconst expandIconNode = computed(() => {\n if (props.renderExpandIcon && props.record) {\n const result = props.renderExpandIcon(props.record);\n if (typeof result === 'function') {\n return result;\n }\n return () => result;\n }\n return null;\n});\n\nconst useFullRender = computed(() => props.column?.useFullRender === true);\n\nconst shouldRenderExpandIcon = computed(() => {\n // 如果使用 useFullRender,不单独渲染 expandIcon(在 render 函数中处理)\n if (useFullRender.value) {\n return false;\n }\n // 如果明确标记为不可展开,不渲染\n // 如果 expandable 是 undefined,也视为不可展开(默认行为)\n if (props.expandable !== true) {\n return false;\n }\n // 没有展开能力时,不渲染\n if (!props.renderExpandIcon || !props.record) {\n return false;\n }\n // 如果存在单独的展开列,只在展开列渲染\n if (isExpandedColumn(props.column)) {\n return true;\n }\n // hideExpandedColumn=true 时,将展开箭头渲染到首列(与 Semi 表格交互习惯一致)\n return Boolean(props.hideExpandedColumn && props.colIndex === props.firstDataColumnIndex);\n});\n\nconst getColumnTextValue = computed(() => {\n const { column, record } = props;\n if (!column || !record) {\n return '';\n }\n if (column.dataIndex) {\n return get(record, column.dataIndex, '');\n }\n return record;\n});\n\nconst cellContent = computed(() => {\n const { column, record, index } = props;\n if (!column) {\n return null;\n }\n\n if (isSelectionColumn(column)) {\n return 'selection';\n }\n\n if (isExpandedColumn(column)) {\n return null;\n }\n\n if (props.hasSlot && props.columnSlotName) {\n return null;\n }\n\n // 如果有 render 函数,返回一个渲染函数\n if (column.render) {\n const value = column.dataIndex ? get(record, column.dataIndex) : record;\n const useFullRender = column.useFullRender === true;\n\n // 返回一个函数,RenderVNode 组件会调用它\n return () => {\n // 如果 useFullRender 为 true,传递 selection、expandIcon、indentText\n if (useFullRender) {\n const renderOptions: any = {\n expandIcon: expandIconNode.value ? expandIconNode.value() : null,\n };\n\n // 添加 selection(如果存在 rowSelection)\n if (tableContext.renderSelection && record) {\n renderOptions.selection = tableContext.renderSelection(record, false);\n }\n\n // 添加 indentText\n if (props.indent && props.indentSize) {\n renderOptions.indentText = h('span', {\n style: { paddingLeft: `${props.indentSize * props.indent}px` },\n class: `${props.prefixCls}-row-indent indent-level-${props.indent}`,\n });\n } else {\n renderOptions.indentText = null;\n }\n\n const result = column.render!(value, record, index || 0, renderOptions);\n // 如果返回的是 { children, props } 对象,提取 children\n if (result && typeof result === 'object' && !isVNode(result) && 'children' in result) {\n return result.children;\n }\n return result;\n } else {\n // 普通 render,不传递额外参数\n const result = column.render!(value, record, index || 0);\n // 如果返回的是 { children, props } 对象,提取 children\n if (result && typeof result === 'object' && !isVNode(result) && 'children' in result) {\n return result.children;\n }\n return result;\n }\n };\n }\n\n // 普通数据列,返回文本内容\n if (column.dataIndex) {\n const value = get(record, column.dataIndex, '');\n // 直接返回字符串,不使用函数\n return value;\n }\n\n return null;\n});\n\nconst handleClick = (e: MouseEvent) => {\n if (props.onClick && props.record) {\n props.onClick(props.record, e);\n }\n};\n</script>\n"],"names":["RenderVNode","defineComponent","props","result","isVNode","__props","CellComponent","computed","tableContext","useTableContext","cellCls","column","fixedLeft","fixedRight","lastFixedLeft","firstFixedRight","isSection","ellipsis","fixedLeftFlag","fixedRightFlag","classnames","isSelectionColumn","isExpandedColumn","cellStyle","style","direction","directionValue","isRTL","xPositionKey","offset","widthValue","_a","textAlign","getRTLAlign","justifyContent","getRTLFlexAlign","renderResult","record","index","value","get","cellProps","customProps","isFunction","renderProps","mergedProps","normalizedProps","key","expandIconNode","useFullRender","shouldRenderExpandIcon","getColumnTextValue","cellContent","renderOptions","h","handleClick","e","_createBlock","_resolveDynamicComponent","_mergeProps","_createElementBlock","_Fragment","_unref","_normalizeClass","_normalizeStyle","_openBlock","_hoisted_1","_createVNode","_renderSlot","_ctx","TableSelectionCell"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,UAAMA,IAAcC,EAAgB;AAAA,MAChC,MAAM;AAAA,MACN,OAAO;AAAA,QACH,UAAU;AAAA,UACN,MAAM;AAAA,UACN,UAAU;AAAA,QAAA;AAAA,MACd;AAAA,MAEJ,MAAMC,GAAO;AACT,eAAO,MAAM;AACT,cAAI,CAACA,EAAM;AACP,mBAAO;AAEX,gBAAMC,IAASD,EAAM,SAAA;AAErB,iBAAIC,KAAW,OACJ,OAIP,OAAOA,KAAW,YAAY,OAAOA,KAAW,WACzC,OAAOA,CAAM,IAIpBC,EAAQD,CAAM,KAKd,MAAM,QAAQA,CAAM,IACbA,IAIJ;AAAA,QACX;AAAA,MACJ;AAAA,IAAA,CACH,GAoCKD,IAAQG,GASRC,IAAgBC,EAAS,MAAML,EAAM,aAAa,IAAI,GACtDM,IAAeC,EAAA,GAEfC,IAAUH,EAAS,MAAM;AAC3B,YAAM,EAAE,QAAAI,GAAQ,WAAAC,GAAW,YAAAC,GAAY,eAAAC,GAAe,iBAAAC,GAAiB,WAAAC,MAAcd,GAC/E,EAAE,UAAAe,MAAaN,KAAU,CAAA,GACzBO,IAAgBN,MAAc,MAAQ,OAAOA,KAAc,UAC3DO,IAAiBN,MAAe,MAAQ,OAAOA,KAAe;AACpE,aAAOO,EAAW,GAAGlB,EAAM,SAAS,aAAaS,EAAO,WAAW;AAAA;AAAA,QAE/D,CAAC,GAAGT,EAAM,SAAS,kBAAkB,GAAGgB;AAAA,QACxC,CAAC,GAAGhB,EAAM,SAAS,mBAAmB,GAAGiB;AAAA,QACzC,CAAC,GAAGjB,EAAM,SAAS,uBAAuB,GAAGY;AAAA,QAC7C,CAAC,GAAGZ,EAAM,SAAS,yBAAyB,GAAGa;AAAA,QAC/C,CAAC,GAAGb,EAAM,SAAS,iBAAiB,GAAGmB,EAAkBV,CAAM;AAAA,QAC/D,CAAC,GAAGT,EAAM,SAAS,cAAc,GAAGoB,EAAiBX,CAAM;AAAA,QAC3D,CAAC,GAAGT,EAAM,SAAS,eAAe,GAAGc;AAAA,QACrC,CAAC,GAAGd,EAAM,SAAS,oBAAoB,GAAGe;AAAA,MAAA,CAC7C;AAAA,IACL,CAAC,GAEKM,IAAYhB,EAAwB,MAAM;;AAC5C,YAAMiB,IAAuB,CAAA,GACvBC,IAAYjB,EAAa,aAAa;AAC5C,UAAIkB,IAAsBD;AAC1B,MAAI,OAAOA,KAAc,YAAYA,KAAa,WAAWA,MACzDC,IAAkBD,EAAkB;AAExC,YAAME,IAAQD,MAAmB,OAC3BR,IAAgBhB,EAAM,cAAc,MAAQ,OAAOA,EAAM,aAAc,UACvEiB,IAAiBjB,EAAM,eAAe,MAAQ,OAAOA,EAAM,cAAe;AAEhF,UAAIgB,KAAiBC;AAQjB,YAPAK,EAAM,WAAW,UACbtB,EAAM,iBAAiBA,EAAM,kBAC7BsB,EAAM,SAAS,MAEfA,EAAM,SAAS,KAGfN,GAAe;AACf,gBAAMU,IAAeD,IAAQ,UAAU,QACjCE,IAAS,OAAO3B,EAAM,aAAc,WAAWA,EAAM,YAAY;AACvE,UAAAsB,EAAMI,CAAY,IAAI,GAAGC,CAAM;AAAA,QACnC,WAAWV,GAAgB;AACvB,gBAAMS,IAAeD,IAAQ,SAAS,SAChCE,IAAS,OAAO3B,EAAM,cAAe,WAAWA,EAAM,aAAa;AACzE,UAAAsB,EAAMI,CAAY,IAAI,GAAGC,CAAM;AAAA,QACnC;AAAA;AAGJ,UAAI3B,EAAM,OAAO;AACb,cAAM4B,IAAa,OAAO5B,EAAM,SAAU,WAAW,GAAGA,EAAM,KAAK,OAAOA,EAAM;AAChF,QAAAsB,EAAM,QAAQM,GACdN,EAAM,aAAa,GACnBA,EAAM,WAAW;AAAA,MACrB;AAKA,UAJItB,EAAM,WACNsB,EAAM,SAAS,OAAOtB,EAAM,UAAW,WAAW,GAAGA,EAAM,MAAM,OAAOA,EAAM,UAG9E6B,IAAA7B,EAAM,WAAN,QAAA6B,EAAc,OAAO;AACrB,cAAMC,IAAYC,EAAY/B,EAAM,OAAO,OAAOwB,CAAc,GAC1DQ,IAAiBC,EAAgBjC,EAAM,OAAO,OAAOwB,CAAc;AACzE,QAAAF,EAAM,YAAYQ,GAClBR,EAAM,iBAAiBU;AAAA,MAC3B;AAEA,aAAOV;AAAA,IACX,CAAC,GAGKY,IAAe7B,EAAS,MAAM;AAChC,YAAM,EAAE,QAAAI,GAAQ,QAAA0B,GAAQ,OAAAC,EAAA,IAAUpC;AAClC,UAAI,CAACS,KAAU,CAAC0B,KAAU,CAAC1B,EAAO;AAC9B,eAAO;AAGX,YAAM4B,IAAQ5B,EAAO,YAAY6B,EAAIH,GAAQ1B,EAAO,SAAS,IAAI0B,GAC3DlC,IAASQ,EAAO,OAAO4B,GAAOF,GAAQC,KAAS,CAAC;AAGtD,aAAInC,KAAU,OAAOA,KAAW,YAAY,CAACC,EAAQD,CAAM,KAAK,WAAWA,IAChEA,IAGJ;AAAA,IACX,CAAC,GAEKsC,IAAYlC,EAAS,MAAM;;AAC7B,YAAM,EAAE,QAAAI,GAAQ,QAAA0B,GAAQ,OAAAC,EAAA,IAAUpC,GAC5BwC,IAAcC,EAAWhC,EAAO,MAAM,IAAIA,EAAO,OAAO0B,GAAQC,CAAK,IAAI,CAAA,GACzEM,MAAcb,IAAAK,EAAa,UAAb,gBAAAL,EAAoB,UAAS,CAAA,GAC3Cc,IAAc,EAAE,GAAGH,GAAa,GAAGE,EAAA,GACnCE,IAAuC,CAAA;AAC7C,iBAAWC,KAAOF;AACd,QAAIE,MAAQ,YACRD,EAAgB,UAAUD,EAAYE,CAAG,IAClCA,MAAQ,YACfD,EAAgB,UAAUD,EAAYE,CAAG,IAEzCD,EAAgBC,CAAG,IAAIF,EAAYE,CAAG;AAG9C,aAAOD;AAAA,IACX,CAAC,GAEKE,IAAiBzC,EAAS,MAAM;AAClC,UAAIL,EAAM,oBAAoBA,EAAM,QAAQ;AACxC,cAAMC,IAASD,EAAM,iBAAiBA,EAAM,MAAM;AAClD,eAAI,OAAOC,KAAW,aACXA,IAEJ,MAAMA;AAAA,MACjB;AACA,aAAO;AAAA,IACX,CAAC,GAEK8C,IAAgB1C,EAAS,MAAA;;AAAM,eAAAwB,IAAA7B,EAAM,WAAN,gBAAA6B,EAAc,mBAAkB;AAAA,KAAI,GAEnEmB,IAAyB3C,EAAS,MAEhC0C,EAAc,SAKd/C,EAAM,eAAe,MAIrB,CAACA,EAAM,oBAAoB,CAACA,EAAM,SAC3B,KAGPoB,EAAiBpB,EAAM,MAAM,IACtB,KAGJ,GAAQA,EAAM,sBAAsBA,EAAM,aAAaA,EAAM,qBACvE,GAEKiD,IAAqB5C,EAAS,MAAM;AACtC,YAAM,EAAE,QAAAI,GAAQ,QAAA0B,EAAA,IAAWnC;AAC3B,aAAI,CAACS,KAAU,CAAC0B,IACL,KAEP1B,EAAO,YACA6B,EAAIH,GAAQ1B,EAAO,WAAW,EAAE,IAEpC0B;AAAA,IACX,CAAC,GAEKe,IAAc7C,EAAS,MAAM;AAC/B,YAAM,EAAE,QAAAI,GAAQ,QAAA0B,GAAQ,OAAAC,EAAA,IAAUpC;AAClC,UAAI,CAACS;AACD,eAAO;AAGX,UAAIU,EAAkBV,CAAM;AACxB,eAAO;AAOX,UAJIW,EAAiBX,CAAM,KAIvBT,EAAM,WAAWA,EAAM;AACvB,eAAO;AAIX,UAAIS,EAAO,QAAQ;AACf,cAAM4B,IAAQ5B,EAAO,YAAY6B,EAAIH,GAAQ1B,EAAO,SAAS,IAAI0B,GAC3DY,IAAgBtC,EAAO,kBAAkB;AAG/C,eAAO,MAAM;AAET,cAAIsC,GAAe;AACf,kBAAMI,IAAqB;AAAA,cACvB,YAAYL,EAAe,QAAQA,EAAe,UAAU;AAAA,YAAA;AAIhE,YAAIxC,EAAa,mBAAmB6B,MAChCgB,EAAc,YAAY7C,EAAa,gBAAgB6B,GAAQ,EAAK,IAIpEnC,EAAM,UAAUA,EAAM,aACtBmD,EAAc,aAAaC,EAAE,QAAQ;AAAA,cACjC,OAAO,EAAE,aAAa,GAAGpD,EAAM,aAAaA,EAAM,MAAM,KAAA;AAAA,cACxD,OAAO,GAAGA,EAAM,SAAS,4BAA4BA,EAAM,MAAM;AAAA,YAAA,CACpE,IAEDmD,EAAc,aAAa;AAG/B,kBAAMlD,IAASQ,EAAO,OAAQ4B,GAAOF,GAAQC,KAAS,GAAGe,CAAa;AAEtE,mBAAIlD,KAAU,OAAOA,KAAW,YAAY,CAACC,EAAQD,CAAM,KAAK,cAAcA,IACnEA,EAAO,WAEXA;AAAA,UACX,OAAO;AAEH,kBAAMA,IAASQ,EAAO,OAAQ4B,GAAOF,GAAQC,KAAS,CAAC;AAEvD,mBAAInC,KAAU,OAAOA,KAAW,YAAY,CAACC,EAAQD,CAAM,KAAK,cAAcA,IACnEA,EAAO,WAEXA;AAAA,UACX;AAAA,QACJ;AAAA,MACJ;AAGA,aAAIQ,EAAO,YACO6B,EAAIH,GAAQ1B,EAAO,WAAW,EAAE,IAK3C;AAAA,IACX,CAAC,GAEK4C,IAAc,CAACC,MAAkB;AACnC,MAAItD,EAAM,WAAWA,EAAM,UACvBA,EAAM,QAAQA,EAAM,QAAQsD,CAAC;AAAA,IAErC;qBA3Ycf,EAAA,MAAU,YAAO,KAAUA,EAAA,MAAU,YAAO,UAFtDgB,EAoEYC,EAnEHpD,EAAA,KAAa,GADtBqD,EAoEY;AAAA;MAjEP,OAAOjD,EAAA;AAAA,MACP,OAAOa,EAAA;AAAA,IAAA,GACAkB,EAAA,OAAS,EAChB,SAAOc,EAAA,CAAW,GAAA;AAAA,iBAEnB,MAWW;AAAA,QAXKN,EAAA,cAAhBW,EAWWC,GAAA,EAAA,KAAA,KAAA;AAAA,UATGT,EAAA,SAAeA,EAAA,UAAW,eAAA,OAA2BA,EAAA,SAAW,mBAD1EK,EAGEK,EAAA9D,CAAA,GAAA;AAAA;YADG,aAAWoD,EAAA;AAAA,UAAA,8BAGDA,EAAA,SAAeA,EAAA,UAAW,eAAA,OAA2BA,EAAA,SAAW,mBAD/EQ,EAKO,QAAA;AAAA;YAHF,YAAUvD,EAAA,SAAS,eAAA;AAAA,UAAA,KAEjB+C,EAAA,KAAW,GAAA,CAAA;wBAGtBQ,EA+CWC,GAAA,EAAA,KAAA,KAAA;AAAA,UA7CGxD,EAAA,SAAM,UADhBuD,EAIE,QAAA;AAAA;YAFG,OAAKG,EAAA,GAAK1D,EAAA,SAAS,4BAA4BA,EAAA,MAAM,EAAA;AAAA,YACrD,OAAK2D,EAAA,EAAA,aAAA,GAAoB3D,EAAA,aAAaA,EAAA,MAAM,KAAA,CAAA;AAAA,UAAA;UAErC6C,EAAA,SAA0BF,EAAA,SAAtCiB,KAAAL,EAmBO,QAnBPM,IAmBO;AAAA,YAlBHC,EAA2CL,EAAA9D,CAAA,GAAA,EAA7B,aAAWgD,EAAA,MAAA,GAAc,MAAA,GAAA,CAAA,WAAA,CAAA;AAAA,YAE7B3C,EAAA,WAAWA,EAAA,iBADrB+D,EAMEC,UAJShE,EAAA,gBAAc;AAAA;cACpB,MAAM8C,EAAA;AAAA,cACN,QAAQ9C,EAAA;AAAA,cACR,OAAOA,EAAA;AAAA,YAAA,KAGG+C,EAAA,SAAeA,EAAA,UAAW,eAAA,OAA2BA,EAAA,SAAW,mBAD/EK,EAGEK,EAAA9D,CAAA,GAAA;AAAA;cADG,aAAWoD,EAAA;AAAA,YAAA,8BAGDA,EAAA,SAAeA,EAAA,UAAW,eAAA,OAA2BA,EAAA,SAAW,mBAD/EQ,EAKO,QAAA;AAAA;cAHF,YAAUvD,EAAA,SAAS,eAAA;AAAA,YAAA,KAEjB+C,EAAA,KAAW,GAAA,CAAA;gBAIPU,EAAAzC,CAAA,EAAkBhB,EAAA,MAAM,KAAKA,EAAA,sBAD5C4D,EAAA,GAAAR,EAGEa,mBADUjE,EAAA,kBAAkB,CAAA,GAAA,MAAA,EAAA,KAGfA,EAAA,WAAWA,EAAA,iBAD1B+D,EAMEC,UAJShE,EAAA,gBAAc;AAAA;YACpB,MAAM8C,EAAA;AAAA,YACN,QAAQ9C,EAAA;AAAA,YACR,OAAOA,EAAA;AAAA,UAAA,KAGG+C,EAAA,SAAeA,EAAA,UAAW,eAAA,OAA2BA,EAAA,SAAW,mBAD/EK,EAGEK,EAAA9D,CAAA,GAAA;AAAA;YADG,aAAWoD,EAAA;AAAA,UAAA,8BAGDA,EAAA,SAAeA,EAAA,UAAW,eAAA,OAA2BA,EAAA,SAAW,mBAD/EQ,EAKO,QAAA;AAAA;YAHF,YAAUvD,EAAA,SAAS,eAAA;AAAA,UAAA,KAEjB+C,EAAA,KAAW,GAAA,CAAA;;;;;;;"}
@@ -0,0 +1,93 @@
1
+ import { defineComponent as T, computed as S, createBlock as k, openBlock as w, resolveDynamicComponent as v, normalizeClass as H, withCtx as z, createElementBlock as B, Fragment as D, renderList as P } from "vue";
2
+ import { get as _, isFunction as A } from "lodash";
3
+ import { cssClasses as K, strings as y } from "@douyinfe/semi-foundation/table/constants";
4
+ import { shouldShowEllipsisTitle as N } from "@douyinfe/semi-foundation/table/utils";
5
+ import O from "./TableHeaderRow.vue2.js";
6
+ const j = /* @__PURE__ */ T({
7
+ name: "SemiTableHeader",
8
+ __name: "TableHeader",
9
+ props: {
10
+ columns: { default: () => [] },
11
+ components: { default: () => ({
12
+ header: {
13
+ wrapper: "thead",
14
+ row: "tr",
15
+ cell: "th"
16
+ }
17
+ }) },
18
+ fixed: {},
19
+ onHeaderRow: {},
20
+ prefixCls: { default: K.PREFIX },
21
+ selectedRowKeysSet: {},
22
+ titleSelectionProps: {},
23
+ onSorterClick: {},
24
+ onFilterSelect: {},
25
+ onFilterDropdownVisibleChange: {},
26
+ onResize: {}
27
+ },
28
+ setup(s) {
29
+ const o = s;
30
+ function g(u) {
31
+ const r = [];
32
+ function c(l, n, C = [], p = 0, m = 0) {
33
+ r[p] = r[p] || [];
34
+ let d = n;
35
+ return l.map((e) => {
36
+ let f;
37
+ A(e.title) ? f = e.title() : f = e.title;
38
+ const t = {
39
+ key: e.key || e.dataIndex || n,
40
+ className: e.className || "",
41
+ children: f,
42
+ column: e,
43
+ colStart: d,
44
+ level: m,
45
+ parents: C
46
+ };
47
+ let i = 1;
48
+ const h = e.children;
49
+ h && h.length > 0 && (i = c(h, d, [...C, t], p + 1, m + 1).reduce(
50
+ (R, L) => R + L,
51
+ 0
52
+ ), t.hasSubColumns = !0), "colSpan" in e && (i = e.colSpan || 1), "rowSpan" in e && (t.rowSpan = e.rowSpan), e.key === y.DEFAULT_KEY_COLUMN_SCROLLBAR && (t["x-type"] = y.DEFAULT_KEY_COLUMN_SCROLLBAR), t.colSpan = i, t.colEnd = t.colStart + i - 1, r[p].push(t), d += i;
53
+ const F = e == null ? void 0 : e.ellipsis;
54
+ return N(F) && typeof t.children == "string" && (t.title = t.children), i;
55
+ });
56
+ }
57
+ c(u, 0);
58
+ const a = r.length;
59
+ for (let l = 0; l < a; l += 1)
60
+ r[l].forEach((n) => {
61
+ !("rowSpan" in n) && !n.hasSubColumns && (n.rowSpan = a - l);
62
+ });
63
+ return r;
64
+ }
65
+ const b = S(() => (o.titleSelectionProps && o.titleSelectionProps, g(o.columns || []))), x = S(() => _(o.components, "header.wrapper", "thead")), E = S(() => `${o.prefixCls}-thead`);
66
+ return (u, r) => (w(), k(v(x.value), {
67
+ class: H(E.value)
68
+ }, {
69
+ default: z(() => [
70
+ (w(!0), B(D, null, P(b.value, (c, a) => (w(), k(O, {
71
+ key: a,
72
+ row: c,
73
+ index: a,
74
+ columns: s.columns,
75
+ components: s.components,
76
+ "prefix-cls": s.prefixCls,
77
+ "on-header-row": s.onHeaderRow,
78
+ "selected-row-keys-set": s.selectedRowKeysSet,
79
+ "selection-cell-props": o.titleSelectionProps,
80
+ "on-sorter-click": o.onSorterClick,
81
+ "on-filter-select": o.onFilterSelect,
82
+ "on-filter-dropdown-visible-change": o.onFilterDropdownVisibleChange,
83
+ "on-resize": o.onResize
84
+ }, null, 8, ["row", "index", "columns", "components", "prefix-cls", "on-header-row", "selected-row-keys-set", "selection-cell-props", "on-sorter-click", "on-filter-select", "on-filter-dropdown-visible-change", "on-resize"]))), 128))
85
+ ]),
86
+ _: 1
87
+ }, 8, ["class"]));
88
+ }
89
+ });
90
+ export {
91
+ j as default
92
+ };
93
+ //# sourceMappingURL=TableHeader.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeader.vue2.js","sources":["../../../../src/components/table/TableHeader.vue"],"sourcesContent":["<template>\n <component :is=\"HeaderWrapper\" :class=\"headerCls\">\n <TableHeaderRow\n v-for=\"(row, index) in headerRows\"\n :key=\"index\"\n :row=\"row\"\n :index=\"index\"\n :columns=\"columns\"\n :components=\"components\"\n :prefix-cls=\"prefixCls\"\n :on-header-row=\"onHeaderRow\"\n :selected-row-keys-set=\"selectedRowKeysSet\"\n :selection-cell-props=\"props.titleSelectionProps\"\n :on-sorter-click=\"props.onSorterClick\"\n :on-filter-select=\"props.onFilterSelect\"\n :on-filter-dropdown-visible-change=\"props.onFilterDropdownVisibleChange\"\n :on-resize=\"props.onResize\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { get, isFunction } from 'lodash';\nimport { strings, cssClasses } from '@douyinfe/semi-foundation/table/constants';\nimport { shouldShowEllipsisTitle } from '@douyinfe/semi-foundation/table/utils';\nimport TableHeaderRow from './TableHeaderRow.vue';\nimport type { ColumnProps, TableComponents, OnHeaderRow, Fixed } from './interface';\n\ndefineOptions({\n name: 'SemiTableHeader',\n});\n\ninterface TableHeaderCell {\n key: string | number;\n className: string;\n children: any;\n column: ColumnProps;\n colStart: number;\n level: number;\n parents: TableHeaderCell[];\n colSpan?: number;\n rowSpan?: number;\n colEnd?: number;\n hasSubColumns?: boolean;\n title?: string;\n 'x-type'?: string;\n}\n\ninterface Props {\n columns?: ColumnProps[];\n components?: TableComponents;\n fixed?: Fixed;\n onHeaderRow?: OnHeaderRow<any>;\n prefixCls?: string;\n selectedRowKeysSet: Set<any>;\n titleSelectionProps?: any;\n onSorterClick?: (column: ColumnProps, e: MouseEvent) => void;\n onFilterSelect?: (column: ColumnProps, data: any) => void;\n onFilterDropdownVisibleChange?: (column: ColumnProps, visible: boolean) => void;\n onResize?: (column: ColumnProps, e: { width: number }) => void;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n columns: () => [],\n prefixCls: cssClasses.PREFIX,\n components: () => ({\n header: {\n wrapper: 'thead',\n row: 'tr',\n cell: 'th',\n },\n }),\n});\n\nfunction parseHeaderRows(columns: ColumnProps[]): TableHeaderCell[][] {\n const rows: TableHeaderCell[][] = [];\n\n function fillRowCells(\n columns: ColumnProps[],\n colIndex: number,\n parents: TableHeaderCell[] = [],\n rowIndex = 0,\n level = 0\n ): number[] {\n // Init rows\n rows[rowIndex] = rows[rowIndex] || [];\n\n let currentColIndex = colIndex;\n const colSpans = columns.map((column) => {\n // 处理 title:如果是函数,调用它(在 useFullRender 模式下,title 函数会接收 titleMap 参数)\n // 注意:在 useFullRender 模式下,title 已经被包装成一个函数,会在每次调用时创建最新的 titleMap\n let children: any;\n if (isFunction(column.title)) {\n // 调用 title 函数,如果它期望接收参数(useFullRender 模式),会返回一个函数\n // 否则直接返回结果\n const titleResult = column.title();\n children = titleResult;\n } else {\n children = column.title;\n }\n\n const cell: TableHeaderCell = {\n key: column.key || column.dataIndex || colIndex,\n className: column.className || '',\n children,\n column,\n colStart: currentColIndex,\n level,\n parents,\n };\n\n let colSpan = 1;\n\n /**\n * Calculate header column merge colSpan\n * - If the current cell has children, colSpan = the sum of children rowSpan\n * - If the current cell has no children, colSpan = 1\n */\n const subColumns = column.children;\n if (subColumns && subColumns.length > 0) {\n colSpan = fillRowCells(subColumns, currentColIndex, [...parents, cell], rowIndex + 1, level + 1).reduce(\n (total, count) => total + count,\n 0\n );\n cell.hasSubColumns = true;\n }\n\n if ('colSpan' in column) {\n colSpan = column.colSpan || 1;\n }\n\n if ('rowSpan' in column) {\n cell.rowSpan = column.rowSpan;\n }\n\n if (column.key === strings.DEFAULT_KEY_COLUMN_SCROLLBAR) {\n cell['x-type'] = strings.DEFAULT_KEY_COLUMN_SCROLLBAR;\n }\n\n cell.colSpan = colSpan;\n cell.colEnd = cell.colStart + colSpan - 1;\n rows[rowIndex].push(cell);\n\n currentColIndex += colSpan;\n\n const ellipsis = column?.ellipsis;\n const shouldShowTitle = shouldShowEllipsisTitle(ellipsis);\n if (shouldShowTitle && typeof cell.children === 'string') {\n cell.title = cell.children;\n }\n\n return colSpan;\n });\n\n return colSpans;\n }\n\n // Generate `rows` cell data\n fillRowCells(columns, 0);\n\n /**\n * Calculate header row merge rowSpan\n * - If the current cell has no children, you need to calculate rowSpan, rowSpan = the total number of rows in the header-which row currently belongs to\n * - If the current cell has children, there is no need to calculate rowSpan\n */\n const rowCount = rows.length;\n for (let rowIndex = 0; rowIndex < rowCount; rowIndex += 1) {\n rows[rowIndex].forEach((cell: TableHeaderCell) => {\n if (!('rowSpan' in cell) && !cell.hasSubColumns) {\n cell.rowSpan = rowCount - rowIndex;\n }\n });\n }\n\n return rows;\n}\n\nconst headerRows = computed(() => {\n // 访问 titleSelectionProps 以确保依赖追踪\n if (props.titleSelectionProps) {\n // 触发依赖追踪,但不使用值\n void props.titleSelectionProps;\n }\n return parseHeaderRows(props.columns || []);\n});\n\nconst HeaderWrapper = computed(() => get(props.components, 'header.wrapper', 'thead'));\n\nconst headerCls = computed(() => `${props.prefixCls}-thead`);\n</script>\n"],"names":["props","__props","parseHeaderRows","columns","rows","fillRowCells","colIndex","parents","rowIndex","level","currentColIndex","column","children","isFunction","cell","colSpan","subColumns","total","count","strings","ellipsis","shouldShowEllipsisTitle","rowCount","headerRows","computed","HeaderWrapper","get","headerCls","_openBlock","_createBlock","_resolveDynamicComponent","_createElementBlock","_Fragment","_renderList","row","index","TableHeaderRow"],"mappings":"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"}
@@ -0,0 +1,351 @@
1
+ import { defineComponent as ve, ref as X, computed as _, onMounted as Se, createBlock as d, openBlock as s, resolveDynamicComponent as S, mergeProps as V, withCtx as b, createElementBlock as u, Fragment as R, renderList as Fe, unref as H, createCommentVNode as N, isVNode as P, toDisplayString as D, normalizeClass as A, createElementVNode as Re, createTextVNode as G } from "vue";
2
+ import { get as k, isFunction as M } from "lodash";
3
+ import J from "classnames";
4
+ import { cssClasses as $e } from "@douyinfe/semi-foundation/table/constants";
5
+ import { isSelectionColumn as U, sliceColumnsByLevel as Y, isFixedRight as Q, isFixedLeft as B, isFirstFixedRight as Z, isLastLeftFixed as I, arrayAdd as ee } from "@douyinfe/semi-foundation/table/utils";
6
+ import te from "../tooltip/Tooltip.vue.js";
7
+ /* empty css */
8
+ import oe from "./TableSelectionCell.vue2.js";
9
+ import ne from "./ColumnSorter.vue2.js";
10
+ import _e from "./ColumnFilter.vue2.js";
11
+ import be from "./ResizableHeaderCell.vue2.js";
12
+ /* empty css */
13
+ import { useTableContext as Pe } from "./table-context.js";
14
+ const De = { key: 0 }, Ve = { key: 1 }, Te = { key: 1 }, He = { key: 2 }, Me = ["title"], Le = ["title"], Oe = { key: 0 }, ze = { key: 1 }, Ne = { key: 1 }, Ae = { key: 2 }, Ie = /* @__PURE__ */ ve({
15
+ name: "SemiTableHeaderRow",
16
+ __name: "TableHeaderRow",
17
+ props: {
18
+ components: { default: () => ({
19
+ header: {
20
+ wrapper: "thead",
21
+ row: "tr",
22
+ cell: "th"
23
+ }
24
+ }) },
25
+ row: { default: () => [] },
26
+ prefixCls: { default: $e.PREFIX },
27
+ onHeaderRow: {},
28
+ index: {},
29
+ style: {},
30
+ columns: { default: () => [] },
31
+ fixed: {},
32
+ selectedRowKeysSet: {},
33
+ selectionCellProps: {},
34
+ onSorterClick: {},
35
+ onFilterSelect: {},
36
+ onFilterDropdownVisibleChange: {},
37
+ onResize: {}
38
+ },
39
+ emits: ["update-widths"],
40
+ setup(c, { emit: ie }) {
41
+ const n = c, re = ie, f = X(), p = Pe(), se = _(() => k(n.components, "header.row", "tr")), le = _(() => k(n.components, "header.cell", "th")), L = _(() => M(n.onHeaderRow) ? n.onHeaderRow(n.columns || [], n.index || 0) || {} : {}), ae = _(() => {
42
+ const { className: t, style: i, ...e } = L.value || {};
43
+ return e;
44
+ }), ue = _(() => {
45
+ var t;
46
+ return J(`${n.prefixCls}-row`, (t = L.value) == null ? void 0 : t.className);
47
+ }), de = _(() => {
48
+ var e;
49
+ const t = n.style || {}, i = ((e = L.value) == null ? void 0 : e.style) || {};
50
+ return { ...t, ...i };
51
+ }), E = (t, i) => {
52
+ const { column: e } = t, r = M(e.onHeaderCell) ? e.onHeaderCell(e, i, n.index) : {}, o = Y(n.columns || [], n.index), l = p.direction;
53
+ let a = null;
54
+ if (l != null && l !== void 0) {
55
+ const x = l;
56
+ typeof x == "object" && x !== null && "value" in x ? a = x.value : typeof x == "string" && (a = x);
57
+ }
58
+ const C = a === "rtl";
59
+ let m, w, y, F;
60
+ return C ? (m = Q(e), w = B(e), y = Z(o, e), F = I(o, e)) : (m = B(e), w = Q(e), y = I(o, e), F = Z(o, e)), J(`${n.prefixCls}-row-head`, e.className, r.className, {
61
+ [`${n.prefixCls}-align-${e.align}`]: e.align,
62
+ [`${n.prefixCls}-cell-fixed-left`]: m,
63
+ [`${n.prefixCls}-cell-fixed-right`]: w,
64
+ [`${n.prefixCls}-cell-fixed-left-last`]: y,
65
+ [`${n.prefixCls}-cell-fixed-right-first`]: F,
66
+ [`${n.prefixCls}-row-head-clickSort`]: e.clickToSort,
67
+ [`${n.prefixCls}-row-head-ellipsis`]: e.ellipsis
68
+ });
69
+ }, K = (t, i) => {
70
+ var x;
71
+ const { column: e } = t, o = { ...(M(e.onHeaderCell) ? e.onHeaderCell(e, i, n.index) : {}).style };
72
+ e.align && (o.textAlign = e.align), e.width && (o.width = typeof e.width == "number" ? `${e.width}px` : e.width);
73
+ const l = Y(n.columns || [], n.index), a = p.direction;
74
+ let C = null;
75
+ if (a != null && a !== void 0) {
76
+ const v = a;
77
+ typeof v == "object" && v !== null && "value" in v ? C = v.value : typeof v == "string" && (C = v);
78
+ }
79
+ const m = C === "rtl", w = B(e), y = Q(e), F = p.getCellWidths;
80
+ if (w || y) {
81
+ o.position = "sticky";
82
+ const v = ((x = p.flattenedColumns) == null ? void 0 : x.value) || n.columns || [], O = (F == null ? void 0 : F(v)) || [];
83
+ if (O.length) {
84
+ const $ = t.colStart ?? i, ge = t.colEnd ?? $;
85
+ if (w) {
86
+ const z = m ? "right" : "left";
87
+ o[z] = `${Math.round(ee(O, 0, $))}px`;
88
+ }
89
+ if (y) {
90
+ const z = m ? "left" : "right";
91
+ o[z] = `${Math.round(ee(O, ge + 1))}px`;
92
+ }
93
+ } else {
94
+ if (w) {
95
+ const $ = m ? "right" : "left";
96
+ o[$] = `${Math.round(fe(e, l, i))}px`;
97
+ }
98
+ if (y) {
99
+ const $ = m ? "left" : "right";
100
+ o[$] = `${Math.round(ce(e, l, i))}px`;
101
+ }
102
+ }
103
+ }
104
+ return o;
105
+ }, fe = (t, i, e) => {
106
+ let r = 0;
107
+ for (let o = 0; o < e; o++) {
108
+ const l = i[o];
109
+ if (l && (l.fixed === !0 || l.fixed === "left")) {
110
+ const a = typeof l.width == "number" ? l.width : 0;
111
+ r += a;
112
+ }
113
+ }
114
+ return r;
115
+ }, ce = (t, i, e) => {
116
+ let r = 0;
117
+ for (let o = e + 1; o < i.length; o++) {
118
+ const l = i[o];
119
+ if (l && l.fixed === "right") {
120
+ const a = typeof l.width == "number" ? l.width : 0;
121
+ r += a;
122
+ }
123
+ }
124
+ return r;
125
+ }, T = (t, i) => {
126
+ const { column: e } = t, o = {
127
+ ...M(e.onHeaderCell) ? e.onHeaderCell(e, i, n.index) : {},
128
+ "x-type": t["x-type"]
129
+ };
130
+ if (typeof e.clickToSort == "function") {
131
+ const l = o.onClick;
132
+ o.onClick = (a) => {
133
+ l && l(a), e.clickToSort(a);
134
+ };
135
+ }
136
+ if (typeof e.mouseDown == "function") {
137
+ const l = o.onMouseDown;
138
+ o.onMouseDown = (a) => {
139
+ l && l(a), e.mouseDown(a);
140
+ };
141
+ }
142
+ return o;
143
+ }, W = () => {
144
+ var o, l, a;
145
+ if (h.value)
146
+ return;
147
+ if (h.value = !0, !f.value || !n.row || !n.row.length) {
148
+ h.value = !1;
149
+ return;
150
+ }
151
+ let t = null;
152
+ if (f.value instanceof HTMLElement ? t = f.value : (o = f.value) != null && o.$el ? t = f.value.$el : (l = f.value) != null && l.el && (t = f.value.el), !t) {
153
+ h.value = !1;
154
+ return;
155
+ }
156
+ const i = `.${n.prefixCls}-row-head`, e = (a = t.querySelectorAll) == null ? void 0 : a.call(t, i);
157
+ if (!e || e.length === 0) {
158
+ h.value = !1;
159
+ return;
160
+ }
161
+ const r = Array.from(e).map((C, m) => {
162
+ let w = k(n.row, [m, "column", "width"]), y = k(n.row, [m, "column", "key"]);
163
+ return y == null && (y = k(n.row, [m, "column", "dataIndex"])), typeof w != "number" && (w = (C == null ? void 0 : C.getBoundingClientRect().width) || 0), { width: w, key: y };
164
+ });
165
+ re("update-widths", r, n.index || 0), p.setHeadWidths && p.setHeadWidths(r, n.index);
166
+ }, pe = (t) => {
167
+ if (t) {
168
+ if (f.value === t && h.value)
169
+ return;
170
+ f.value !== t && (f.value = t), n.row && n.row.length && !h.value && (g && clearTimeout(g), g = setTimeout(() => {
171
+ g = null, f.value && !h.value && n.row && n.row.length && W();
172
+ }, 10));
173
+ } else t || (f.value = null, h.value = !1);
174
+ }, h = X(!1);
175
+ let g = null;
176
+ Se(() => {
177
+ f.value && n.row && n.row.length && !h.value && (g && clearTimeout(g), g = setTimeout(() => {
178
+ g = null, f.value && !h.value && n.row && n.row.length && W();
179
+ }, 0));
180
+ });
181
+ const j = (t, i) => {
182
+ n.onSorterClick && n.onSorterClick(t, i);
183
+ }, me = (t, i) => {
184
+ n.onFilterSelect && n.onFilterSelect(t, i);
185
+ }, he = (t, i) => {
186
+ n.onFilterDropdownVisibleChange && n.onFilterDropdownVisibleChange(t, i);
187
+ }, we = (t, i) => {
188
+ n.onResize && n.onResize(t, i);
189
+ }, ye = (t) => {
190
+ if (!t || !t.column)
191
+ return !1;
192
+ const { column: i } = t, e = i.filters && i.filters.length > 0, r = typeof i.renderFilterDropdown == "function";
193
+ return e || r;
194
+ }, Ce = (t) => {
195
+ const i = t.dataIndex || t.key;
196
+ if (!i || !p.getQuery)
197
+ return t.filteredValue || t.defaultFilteredValue || [];
198
+ const e = p.getQuery(i), r = k(e, "filteredValue"), o = k(e, "defaultFilteredValue", t.defaultFilteredValue || []);
199
+ return Array.isArray(r) ? r : o || [];
200
+ }, q = (t) => {
201
+ const i = t.dataIndex || t.key;
202
+ if (!i || !p.getQuery || !p.isSortOrderValid)
203
+ return t.sortOrder || !1;
204
+ const e = p.getQuery(i), r = k(e, "sortOrder"), o = k(e, "defaultSortOrder", !1);
205
+ return p.isSortOrderValid(r) ? r : o;
206
+ }, xe = (t, i, e) => {
207
+ const { column: r } = t, o = T(t, i);
208
+ o.onClick && o.onClick(e), typeof r.clickToSort == "function" && r.clickToSort(e);
209
+ }, ke = (t, i, e) => {
210
+ const { column: r } = t, o = T(t, i);
211
+ o.onMouseDown && o.onMouseDown(e), typeof r.mouseDown == "function" && r.mouseDown(e);
212
+ };
213
+ return (t, i) => (s(), d(S(se.value), V({
214
+ ref: pe,
215
+ class: ue.value,
216
+ style: de.value
217
+ }, ae.value), {
218
+ default: b(() => [
219
+ (s(!0), u(R, null, Fe(n.row, (e, r) => (s(), u(R, { key: r }, [
220
+ e && e.column && e.column.resizable === !0 && typeof e.column.width == "number" ? (s(), d(be, V({
221
+ key: `resizable-${r}`,
222
+ class: E(e, r),
223
+ style: K(e, r),
224
+ width: e.column.width,
225
+ resize: !0,
226
+ "prefix-cls": c.prefixCls,
227
+ colspan: e.colSpan,
228
+ rowspan: e.rowSpan
229
+ }, { ref_for: !0 }, T(e, r), {
230
+ onResize: (o) => we(e.column, o)
231
+ }), {
232
+ default: b(() => [
233
+ e && e.column && H(U)(e.column) && c.selectionCellProps ? (s(), d(oe, V({
234
+ key: 0,
235
+ ref_for: !0
236
+ }, c.selectionCellProps), null, 16)) : (s(), u(R, { key: 1 }, [
237
+ e && e.column && e.column.sorter ? (s(), d(ne, {
238
+ key: 0,
239
+ "prefix-cls": c.prefixCls,
240
+ "sort-order": q(e.column),
241
+ "sort-icon": e.column.sortIcon,
242
+ "show-tooltip": e.column.showSortTip,
243
+ title: e.children,
244
+ onClick: (o) => j(e.column, o)
245
+ }, null, 8, ["prefix-cls", "sort-order", "sort-icon", "show-tooltip", "title", "onClick"])) : (s(), u(R, { key: 1 }, [
246
+ e.title && e.title !== e.children ? (s(), d(H(te), {
247
+ key: 0,
248
+ content: e.title
249
+ }, {
250
+ default: b(() => [
251
+ P(e.children) ? (s(), u("span", De, [
252
+ (s(), d(S(e.children)))
253
+ ])) : (s(), u("span", Ve, D(e.children), 1))
254
+ ]),
255
+ _: 2
256
+ }, 1032, ["content"])) : N("", !0),
257
+ P(e.children) ? (s(), u("span", Te, [
258
+ (s(), d(S(e.children)))
259
+ ])) : (s(), u("span", He, D(e.children), 1))
260
+ ], 64))
261
+ ], 64))
262
+ ]),
263
+ _: 2
264
+ }, 1040, ["class", "style", "width", "prefix-cls", "colspan", "rowspan", "onResize"])) : (s(), d(S(le.value), V({
265
+ key: `header-${r}`,
266
+ class: E(e, r),
267
+ style: K(e, r),
268
+ colspan: e.colSpan,
269
+ rowspan: e.rowSpan
270
+ }, { ref_for: !0 }, T(e, r), {
271
+ onClick: (o) => xe(e, r, o),
272
+ onMousedown: (o) => ke(e, r, o)
273
+ }), {
274
+ default: b(() => [
275
+ e && e.column && H(U)(e.column) && c.selectionCellProps ? (s(), d(oe, V({
276
+ key: 0,
277
+ ref_for: !0
278
+ }, c.selectionCellProps), null, 16)) : e && e.column && (e.column.sorter || e.column.onFilter || e.column.filters) ? (s(), u("div", {
279
+ key: 1,
280
+ class: A(`${c.prefixCls}-operate-wrapper`)
281
+ }, [
282
+ e && e.column && e.column.sorter ? (s(), d(ne, {
283
+ key: 0,
284
+ "prefix-cls": c.prefixCls,
285
+ "sort-order": q(e.column),
286
+ "sort-icon": e.column.sortIcon,
287
+ "show-tooltip": e.column.showSortTip,
288
+ onClick: (o) => j(e.column, o)
289
+ }, {
290
+ title: b(() => [
291
+ Re("span", {
292
+ class: A(`${c.prefixCls}-row-head-title`),
293
+ title: e.title && e.title !== e.children ? e.title : void 0
294
+ }, [
295
+ P(e.children) ? (s(), d(S(e.children), { key: 0 })) : (s(), u(R, { key: 1 }, [
296
+ G(D(e.children), 1)
297
+ ], 64))
298
+ ], 10, Me)
299
+ ]),
300
+ _: 2
301
+ }, 1032, ["prefix-cls", "sort-order", "sort-icon", "show-tooltip", "onClick"])) : (s(), u("span", {
302
+ key: 1,
303
+ class: A(`${c.prefixCls}-row-head-title`),
304
+ title: e.title && e.title !== e.children ? e.title : void 0
305
+ }, [
306
+ P(e.children) ? (s(), d(S(e.children), { key: 0 })) : (s(), u(R, { key: 1 }, [
307
+ G(D(e.children), 1)
308
+ ], 64))
309
+ ], 10, Le)),
310
+ ye(e) ? (s(), d(_e, {
311
+ key: 2,
312
+ "prefix-cls": c.prefixCls,
313
+ "filtered-value": Ce(e.column),
314
+ "filter-icon": e.column.filterIcon,
315
+ "filter-dropdown-props": e.column.filterDropdownProps,
316
+ filters: e.column.filters,
317
+ "filter-multiple": e.column.filterMultiple,
318
+ "filter-dropdown-visible": e.column.filterDropdownVisible,
319
+ "render-filter-dropdown": e.column.renderFilterDropdown,
320
+ "on-filter-dropdown-visible-change": (o) => he(e.column, o),
321
+ onSelect: (o) => me(e.column, o)
322
+ }, null, 8, ["prefix-cls", "filtered-value", "filter-icon", "filter-dropdown-props", "filters", "filter-multiple", "filter-dropdown-visible", "render-filter-dropdown", "on-filter-dropdown-visible-change", "onSelect"])) : N("", !0)
323
+ ], 2)) : (s(), u(R, { key: 2 }, [
324
+ e.title && e.title !== e.children ? (s(), d(H(te), {
325
+ key: 0,
326
+ content: e.title
327
+ }, {
328
+ default: b(() => [
329
+ P(e.children) ? (s(), u("span", Oe, [
330
+ (s(), d(S(e.children)))
331
+ ])) : (s(), u("span", ze, D(e.children), 1))
332
+ ]),
333
+ _: 2
334
+ }, 1032, ["content"])) : N("", !0),
335
+ P(e.children) ? (s(), u("span", Ne, [
336
+ (s(), d(S(e.children)))
337
+ ])) : (s(), u("span", Ae, D(e.children), 1))
338
+ ], 64))
339
+ ]),
340
+ _: 2
341
+ }, 1040, ["class", "style", "colspan", "rowspan", "onClick", "onMousedown"]))
342
+ ], 64))), 128))
343
+ ]),
344
+ _: 1
345
+ }, 16, ["class", "style"]));
346
+ }
347
+ });
348
+ export {
349
+ Ie as default
350
+ };
351
+ //# sourceMappingURL=TableHeaderRow.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableHeaderRow.vue2.js","sources":["../../../../src/components/table/TableHeaderRow.vue"],"sourcesContent":["<template>\n <component :is=\"HeaderRow\" :ref=\"setHeaderRowRef\" :class=\"rowCls\" :style=\"rowStyle\" v-bind=\"headerRowProps\">\n <template v-for=\"(cell, cellIndex) in props.row\" :key=\"cellIndex\">\n <ResizableHeaderCell\n v-if=\"cell && cell.column && cell.column.resizable === true && typeof cell.column.width === 'number'\"\n :key=\"`resizable-${cellIndex}`\"\n :class=\"getCellClass(cell, cellIndex)\"\n :style=\"getCellStyle(cell, cellIndex)\"\n :width=\"cell.column.width\"\n :resize=\"true\"\n :prefix-cls=\"prefixCls\"\n :colspan=\"cell.colSpan\"\n :rowspan=\"cell.rowSpan\"\n v-bind=\"getCellProps(cell, cellIndex)\"\n @resize=\"(e) => handleResize(cell.column, e)\"\n >\n <TableSelectionCell\n v-if=\"cell && cell.column && isSelectionColumn(cell.column) && selectionCellProps\"\n v-bind=\"selectionCellProps\"\n />\n <template v-else>\n <ColumnSorter\n v-if=\"cell && cell.column && cell.column.sorter\"\n :prefix-cls=\"prefixCls\"\n :sort-order=\"getSortOrder(cell.column)\"\n :sort-icon=\"cell.column.sortIcon\"\n :show-tooltip=\"cell.column.showSortTip\"\n :title=\"cell.children\"\n @click=\"handleSorterClick(cell.column, $event)\"\n />\n <template v-else>\n <Tooltip v-if=\"cell.title && cell.title !== cell.children\" :content=\"cell.title\">\n <span v-if=\"isVNode(cell.children)\">\n <component :is=\"cell.children\" />\n </span>\n <span v-else>{{ cell.children }}</span>\n </Tooltip>\n <span v-if=\"isVNode(cell.children)\">\n <component :is=\"cell.children\" />\n </span>\n <span v-else>{{ cell.children }}</span>\n </template>\n </template>\n </ResizableHeaderCell>\n <component\n :is=\"HeaderCell\"\n v-else\n :key=\"`header-${cellIndex}`\"\n :class=\"getCellClass(cell, cellIndex)\"\n :style=\"getCellStyle(cell, cellIndex)\"\n :colspan=\"cell.colSpan\"\n :rowspan=\"cell.rowSpan\"\n v-bind=\"getCellProps(cell, cellIndex)\"\n @click=\"handleCellClick(cell, cellIndex, $event)\"\n @mousedown=\"handleCellMouseDown(cell, cellIndex, $event)\"\n >\n <TableSelectionCell\n v-if=\"cell && cell.column && isSelectionColumn(cell.column) && selectionCellProps\"\n v-bind=\"selectionCellProps\"\n />\n <template\n v-else-if=\"\n cell && cell.column && (cell.column.sorter || cell.column.onFilter || cell.column.filters)\n \"\n >\n <div :class=\"`${prefixCls}-operate-wrapper`\">\n <ColumnSorter\n v-if=\"cell && cell.column && cell.column.sorter\"\n :prefix-cls=\"prefixCls\"\n :sort-order=\"getSortOrder(cell.column)\"\n :sort-icon=\"cell.column.sortIcon\"\n :show-tooltip=\"cell.column.showSortTip\"\n @click=\"handleSorterClick(cell.column, $event)\"\n >\n <template #title>\n <span\n :class=\"`${prefixCls}-row-head-title`\"\n :title=\"cell.title && cell.title !== cell.children ? cell.title : undefined\"\n >\n <component :is=\"cell.children\" v-if=\"isVNode(cell.children)\" />\n <template v-else>{{ cell.children }}</template>\n </span>\n </template>\n </ColumnSorter>\n <template v-else>\n <span\n :class=\"`${prefixCls}-row-head-title`\"\n :title=\"cell.title && cell.title !== cell.children ? cell.title : undefined\"\n >\n <component :is=\"cell.children\" v-if=\"isVNode(cell.children)\" />\n <template v-else>{{ cell.children }}</template>\n </span>\n </template>\n <ColumnFilter\n v-if=\"shouldShowColumnFilter(cell)\"\n :prefix-cls=\"prefixCls\"\n :filtered-value=\"getFilteredValue(cell.column)\"\n :filter-icon=\"cell.column.filterIcon\"\n :filter-dropdown-props=\"cell.column.filterDropdownProps\"\n :filters=\"cell.column.filters\"\n :filter-multiple=\"cell.column.filterMultiple\"\n :filter-dropdown-visible=\"cell.column.filterDropdownVisible\"\n :render-filter-dropdown=\"cell.column.renderFilterDropdown\"\n :on-filter-dropdown-visible-change=\"\n (visible) => handleFilterDropdownVisibleChange(cell.column, visible)\n \"\n @select=\"(data) => handleFilterSelect(cell.column, data)\"\n />\n </div>\n </template>\n <template v-else>\n <Tooltip v-if=\"cell.title && cell.title !== cell.children\" :content=\"cell.title\">\n <span v-if=\"isVNode(cell.children)\">\n <component :is=\"cell.children\" />\n </span>\n <span v-else>{{ cell.children }}</span>\n </Tooltip>\n <span v-if=\"isVNode(cell.children)\">\n <component :is=\"cell.children\" />\n </span>\n <span v-else>{{ cell.children }}</span>\n </template>\n </component>\n </template>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, onMounted, isVNode } from 'vue';\nimport { get, isFunction } from 'lodash';\nimport classnames from 'classnames';\nimport { cssClasses } from '@douyinfe/semi-foundation/table/constants';\nimport {\n isFirstFixedRight,\n isLastLeftFixed,\n isFixedLeft,\n isFixedRight,\n sliceColumnsByLevel,\n isSelectionColumn,\n arrayAdd,\n} from '@douyinfe/semi-foundation/table/utils';\nimport Tooltip from '../tooltip';\nimport TableSelectionCell from './TableSelectionCell.vue';\nimport ColumnSorter from './ColumnSorter.vue';\nimport ColumnFilter from './ColumnFilter.vue';\nimport ResizableHeaderCell from './ResizableHeaderCell.vue';\nimport { useTableContext } from './table-context';\nimport type { ColumnProps, TableComponents, OnHeaderRow, Fixed, Direction } from './interface';\nimport type { CSSProperties } from 'vue';\n\ndefineOptions({\n name: 'SemiTableHeaderRow',\n});\n\ninterface TableHeaderCell {\n key: string | number;\n className: string;\n children: any;\n column: ColumnProps;\n colStart: number;\n level: number;\n parents: TableHeaderCell[];\n colSpan?: number;\n rowSpan?: number;\n colEnd?: number;\n hasSubColumns?: boolean;\n title?: string;\n 'x-type'?: string;\n}\n\ninterface Props {\n components?: TableComponents;\n row?: TableHeaderCell[];\n prefixCls?: string;\n onHeaderRow?: OnHeaderRow<any>;\n index?: number;\n style?: CSSProperties;\n columns?: ColumnProps[];\n fixed?: Fixed;\n selectedRowKeysSet: Set<any>;\n selectionCellProps?: any;\n onSorterClick?: (column: ColumnProps, e: MouseEvent) => void;\n onFilterSelect?: (column: ColumnProps, data: any) => void;\n onFilterDropdownVisibleChange?: (column: ColumnProps, visible: boolean) => void;\n onResize?: (column: ColumnProps, e: { width: number }) => void;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n row: () => [],\n prefixCls: cssClasses.PREFIX,\n columns: () => [],\n components: () => ({\n header: {\n wrapper: 'thead',\n row: 'tr',\n cell: 'th',\n },\n }),\n});\n\nconst emit = defineEmits<{\n (e: 'update-widths', widths: Array<{ width: number; key: any }>, index: number): void;\n}>();\n\nconst headerRowRef = ref<HTMLElement>();\nconst tableContext = useTableContext();\n\nconst HeaderRow = computed(() => get(props.components, 'header.row', 'tr'));\nconst HeaderCell = computed(() => get(props.components, 'header.cell', 'th'));\n\nconst headerRowCustomProps = computed(() => {\n if (isFunction(props.onHeaderRow)) {\n return props.onHeaderRow(props.columns || [], props.index || 0) || {};\n }\n return {};\n});\n\nconst headerRowProps = computed(() => {\n const { className: _className, style: _style, ...rest } = (headerRowCustomProps.value || {}) as any;\n // 这些变量仅用于从对象中排除,不需要使用\n void _className;\n void _style;\n return rest;\n});\n\nconst rowCls = computed(() => classnames(`${props.prefixCls}-row`, (headerRowCustomProps.value as any)?.className));\n\nconst rowStyle = computed(() => {\n const base = props.style || {};\n const extra = ((headerRowCustomProps.value as any)?.style || {}) as any;\n return { ...base, ...extra };\n});\n\nconst getCellClass = (cell: TableHeaderCell, cellIndex: number) => {\n const { column } = cell;\n const customProps = isFunction(column.onHeaderCell) ? column.onHeaderCell(column, cellIndex, props.index) : {};\n\n const slicedColumns = sliceColumnsByLevel(props.columns || [], props.index);\n const direction = tableContext.direction;\n let directionValue: string | null = null;\n if (direction != null && direction !== undefined) {\n const dir = direction as Direction | { value: string };\n if (typeof dir === 'object' && dir !== null && 'value' in dir) {\n directionValue = (dir as { value: string }).value;\n } else if (typeof dir === 'string') {\n directionValue = dir;\n }\n }\n const isRTL = directionValue === 'rtl';\n\n let fixedLeft, fixedRight, fixedLeftLast, fixedRightFirst;\n if (isRTL) {\n fixedLeft = isFixedRight(column);\n fixedRight = isFixedLeft(column);\n fixedLeftLast = isFirstFixedRight(slicedColumns, column);\n fixedRightFirst = isLastLeftFixed(slicedColumns, column);\n } else {\n fixedLeft = isFixedLeft(column);\n fixedRight = isFixedRight(column);\n fixedLeftLast = isLastLeftFixed(slicedColumns, column);\n fixedRightFirst = isFirstFixedRight(slicedColumns, column);\n }\n\n return classnames(`${props.prefixCls}-row-head`, column.className, customProps.className, {\n [`${props.prefixCls}-align-${column.align}`]: column.align,\n [`${props.prefixCls}-cell-fixed-left`]: fixedLeft,\n [`${props.prefixCls}-cell-fixed-right`]: fixedRight,\n [`${props.prefixCls}-cell-fixed-left-last`]: fixedLeftLast,\n [`${props.prefixCls}-cell-fixed-right-first`]: fixedRightFirst,\n [`${props.prefixCls}-row-head-clickSort`]: column.clickToSort,\n [`${props.prefixCls}-row-head-ellipsis`]: column.ellipsis,\n });\n};\n\nconst getCellStyle = (cell: TableHeaderCell, cellIndex: number): CSSProperties => {\n const { column } = cell;\n const customProps = isFunction(column.onHeaderCell) ? column.onHeaderCell(column, cellIndex, props.index) : {};\n const style: CSSProperties = { ...customProps.style };\n\n if (column.align) {\n style.textAlign = column.align;\n }\n\n if (column.width) {\n style.width = typeof column.width === 'number' ? `${column.width}px` : column.width;\n }\n\n /**\n * 固定列样式(根因修复):\n * 之前出现“首帧抖动”的一个核心原因,是表头 fixed 偏移在滚动开始时可能发生一次跳变(例如未命中索引/二次覆盖)。\n *\n * 这里改成更确定的算法:直接使用 TableHeaderCell 的 colStart/colEnd(全局列索引),\n * 基于 flattenedColumns 的宽度数组计算 left/right 偏移。\n * - 不依赖 key 查找\n * - 不依赖分层 sliceColumnsByLevel\n * - 对单层/多层表头都稳定\n */\n const slicedColumns = sliceColumnsByLevel(props.columns || [], props.index);\n const direction = tableContext.direction;\n let directionValue: string | null = null;\n if (direction != null && direction !== undefined) {\n const dir = direction as Direction | { value: string };\n if (typeof dir === 'object' && dir !== null && 'value' in dir) {\n directionValue = (dir as { value: string }).value;\n } else if (typeof dir === 'string') {\n directionValue = dir;\n }\n }\n const isRTL = directionValue === 'rtl';\n\n /**\n * 与 React 版本一致:\n * - RTL 下“左右交换”只用于 class(视觉左右)\n * - sticky 偏移计算始终基于 column.fixed 的逻辑左右(isFixedLeft/isFixedRight)\n * - 最终通过 direction 决定写入 left/right\n */\n const fixedLeftLogical = isFixedLeft(column);\n const fixedRightLogical = isFixedRight(column);\n\n const getCellWidths = tableContext.getCellWidths;\n\n if (fixedLeftLogical || fixedRightLogical) {\n style.position = 'sticky';\n\n const flattenedColumns = (tableContext.flattenedColumns as any)?.value || props.columns || [];\n const flattenedWidths = getCellWidths?.(flattenedColumns) || [];\n if (flattenedWidths.length) {\n const colStart = cell.colStart ?? cellIndex;\n const colEnd = cell.colEnd ?? colStart;\n if (fixedLeftLogical) {\n const xPositionKey = isRTL ? 'right' : 'left';\n style[xPositionKey] = `${Math.round(arrayAdd(flattenedWidths, 0, colStart))}px`;\n }\n if (fixedRightLogical) {\n const xPositionKey = isRTL ? 'left' : 'right';\n style[xPositionKey] = `${Math.round(arrayAdd(flattenedWidths, colEnd + 1))}px`;\n }\n } else {\n // 兜底方案:使用 calculateFixedLeftOffset/calculateFixedRightOffset\n if (fixedLeftLogical) {\n const xPositionKey = isRTL ? 'right' : 'left';\n style[xPositionKey] = `${Math.round(calculateFixedLeftOffset(column, slicedColumns, cellIndex))}px`;\n }\n if (fixedRightLogical) {\n const xPositionKey = isRTL ? 'left' : 'right';\n style[xPositionKey] = `${Math.round(calculateFixedRightOffset(column, slicedColumns, cellIndex))}px`;\n }\n }\n\n // z-index 交由 table.scss 的 .semi-table-cell-fixed-* 控制,避免内联样式覆盖 token\n }\n\n return style;\n};\n\nconst calculateFixedLeftOffset = (column: ColumnProps, columns: ColumnProps[], cellIndex: number): number => {\n let offset = 0;\n for (let i = 0; i < cellIndex; i++) {\n const col = columns[i];\n if (col && (col.fixed === true || col.fixed === 'left')) {\n const width = typeof col.width === 'number' ? col.width : 0;\n offset += width;\n }\n }\n return offset;\n};\n\nconst calculateFixedRightOffset = (column: ColumnProps, columns: ColumnProps[], cellIndex: number): number => {\n let offset = 0;\n for (let i = cellIndex + 1; i < columns.length; i++) {\n const col = columns[i];\n if (col && col.fixed === 'right') {\n const width = typeof col.width === 'number' ? col.width : 0;\n offset += width;\n }\n }\n return offset;\n};\n\nconst getCellProps = (cell: TableHeaderCell, cellIndex: number) => {\n const { column } = cell;\n const customProps = isFunction(column.onHeaderCell) ? column.onHeaderCell(column, cellIndex, props.index) : {};\n const cellProps: Record<string, any> = {\n ...customProps,\n 'x-type': cell['x-type'],\n };\n\n // 处理 clickToSort\n if (typeof column.clickToSort === 'function') {\n const existingOnClick = cellProps.onClick;\n cellProps.onClick = (e: MouseEvent) => {\n if (existingOnClick) {\n existingOnClick(e);\n }\n column.clickToSort(e);\n };\n }\n\n // 处理 mouseDown\n if (typeof column.mouseDown === 'function') {\n const existingOnMouseDown = cellProps.onMouseDown;\n cellProps.onMouseDown = (e: MouseEvent) => {\n if (existingOnMouseDown) {\n existingOnMouseDown(e);\n }\n column.mouseDown(e);\n };\n }\n\n return cellProps;\n};\n\nconst cacheRef = () => {\n if (hasMeasuredWidths.value) {\n return;\n }\n\n hasMeasuredWidths.value = true;\n\n if (!headerRowRef.value || !props.row || !props.row.length) {\n hasMeasuredWidths.value = false;\n return;\n }\n\n let domElement: HTMLElement | null = null;\n if (headerRowRef.value instanceof HTMLElement) {\n domElement = headerRowRef.value;\n } else if ((headerRowRef.value as any)?.$el) {\n domElement = (headerRowRef.value as any).$el;\n } else if ((headerRowRef.value as any)?.el) {\n domElement = (headerRowRef.value as any).el;\n }\n\n if (!domElement) {\n hasMeasuredWidths.value = false;\n return;\n }\n\n const cellSelector = `.${props.prefixCls}-row-head`;\n const heads = domElement.querySelectorAll?.(cellSelector);\n\n if (!heads || heads.length === 0) {\n hasMeasuredWidths.value = false;\n return;\n }\n\n const widths = Array.from(heads).map((head, headIndex) => {\n let configWidth = get(props.row, [headIndex, 'column', 'width']);\n let key = get(props.row, [headIndex, 'column', 'key']);\n if (key == null) {\n key = get(props.row, [headIndex, 'column', 'dataIndex']);\n }\n if (typeof configWidth !== 'number') {\n configWidth = (head as HTMLElement)?.getBoundingClientRect().width || 0;\n }\n return { width: configWidth, key };\n });\n\n emit('update-widths', widths, props.index || 0);\n\n if (tableContext.setHeadWidths) {\n tableContext.setHeadWidths(widths, props.index);\n }\n};\n\nconst setHeaderRowRef = (el: any) => {\n if (el) {\n // 如果 ref 已经设置且是同一个元素,且已经测量过,直接返回\n if (headerRowRef.value === el && hasMeasuredWidths.value) {\n return;\n }\n\n // 更新 ref(如果不同)\n if (headerRowRef.value !== el) {\n headerRowRef.value = el;\n }\n\n // 当 ref 设置后,立即尝试测量列宽(只测量一次,避免循环)\n if (props.row && props.row.length && !hasMeasuredWidths.value) {\n // 清除之前的定时器,避免多个 setTimeout 同时执行\n if (measureTimeoutId) {\n clearTimeout(measureTimeoutId);\n }\n // 使用 setTimeout 延迟,确保 DOM 完全渲染\n measureTimeoutId = setTimeout(() => {\n measureTimeoutId = null;\n // 再次检查,确保在延迟期间没有被其他调用测量\n if (headerRowRef.value && !hasMeasuredWidths.value && props.row && props.row.length) {\n cacheRef();\n }\n }, 10); // 增加延迟时间,确保 DOM 完全渲染\n }\n } else if (!el) {\n // el 为 null 时,清空 ref(组件卸载时)\n headerRowRef.value = null;\n // 重置测量标记,允许重新测量\n hasMeasuredWidths.value = false;\n }\n};\n\nconst hasMeasuredWidths = ref(false);\nlet measureTimeoutId: ReturnType<typeof setTimeout> | null = null;\n\nonMounted(() => {\n if (headerRowRef.value && props.row && props.row.length && !hasMeasuredWidths.value) {\n if (measureTimeoutId) {\n clearTimeout(measureTimeoutId);\n }\n measureTimeoutId = setTimeout(() => {\n measureTimeoutId = null;\n if (headerRowRef.value && !hasMeasuredWidths.value && props.row && props.row.length) {\n cacheRef();\n }\n }, 0);\n }\n});\n\nconst handleSorterClick = (column: ColumnProps, e: MouseEvent) => {\n if (props.onSorterClick) {\n props.onSorterClick(column, e);\n }\n};\n\nconst handleFilterSelect = (column: ColumnProps, data: any) => {\n if (props.onFilterSelect) {\n props.onFilterSelect(column, data);\n }\n};\n\nconst handleFilterDropdownVisibleChange = (column: ColumnProps, visible: boolean) => {\n if (props.onFilterDropdownVisibleChange) {\n props.onFilterDropdownVisibleChange(column, visible);\n }\n};\n\nconst handleResize = (column: ColumnProps, e: { width: number }) => {\n if (props.onResize) {\n props.onResize(column, e);\n }\n};\n\nconst shouldShowColumnFilter = (cell: TableHeaderCell): boolean => {\n if (!cell || !cell.column) {\n return false;\n }\n const { column } = cell;\n const hasFilters = column.filters && column.filters.length > 0;\n const hasRenderFilterDropdown = typeof column.renderFilterDropdown === 'function';\n return hasFilters || hasRenderFilterDropdown;\n};\n\nconst getFilteredValue = (column: ColumnProps) => {\n const dataIndex = column.dataIndex || column.key;\n if (!dataIndex || !tableContext.getQuery) {\n return column.filteredValue || column.defaultFilteredValue || [];\n }\n const curQuery = tableContext.getQuery(dataIndex);\n const stateFilteredValue = get(curQuery, 'filteredValue');\n const defaultFilteredValue = get(curQuery, 'defaultFilteredValue', column.defaultFilteredValue || []);\n return Array.isArray(stateFilteredValue) ? stateFilteredValue : defaultFilteredValue || [];\n};\n\nconst getSortOrder = (column: ColumnProps) => {\n const dataIndex = column.dataIndex || column.key;\n if (!dataIndex || !tableContext.getQuery || !tableContext.isSortOrderValid) {\n return column.sortOrder || false;\n }\n const curQuery = tableContext.getQuery(dataIndex);\n const stateSortOrder = get(curQuery, 'sortOrder');\n const defaultSortOrder = get(curQuery, 'defaultSortOrder', false);\n const sortOrder = tableContext.isSortOrderValid(stateSortOrder) ? stateSortOrder : defaultSortOrder;\n return sortOrder;\n};\n\nconst handleCellClick = (cell: TableHeaderCell, cellIndex: number, e: MouseEvent) => {\n const { column } = cell;\n const cellProps = getCellProps(cell, cellIndex);\n if (cellProps.onClick) {\n cellProps.onClick(e);\n }\n if (typeof column.clickToSort === 'function') {\n column.clickToSort(e);\n }\n};\n\nconst handleCellMouseDown = (cell: TableHeaderCell, cellIndex: number, e: MouseEvent) => {\n const { column } = cell;\n const cellProps = getCellProps(cell, cellIndex);\n if (cellProps.onMouseDown) {\n cellProps.onMouseDown(e);\n }\n if (typeof column.mouseDown === 'function') {\n column.mouseDown(e);\n }\n};\n</script>\n"],"names":["props","__props","emit","__emit","headerRowRef","ref","tableContext","useTableContext","HeaderRow","computed","get","HeaderCell","headerRowCustomProps","isFunction","headerRowProps","_className","_style","rest","rowCls","classnames","_a","rowStyle","base","extra","getCellClass","cell","cellIndex","column","customProps","slicedColumns","sliceColumnsByLevel","direction","directionValue","dir","isRTL","fixedLeft","fixedRight","fixedLeftLast","fixedRightFirst","isFixedRight","isFixedLeft","isFirstFixedRight","isLastLeftFixed","getCellStyle","style","fixedLeftLogical","fixedRightLogical","getCellWidths","flattenedColumns","flattenedWidths","colStart","colEnd","xPositionKey","arrayAdd","calculateFixedLeftOffset","calculateFixedRightOffset","columns","offset","i","col","width","getCellProps","cellProps","existingOnClick","e","existingOnMouseDown","cacheRef","hasMeasuredWidths","domElement","_b","cellSelector","heads","_c","widths","head","headIndex","configWidth","key","setHeaderRowRef","el","measureTimeoutId","onMounted","handleSorterClick","handleFilterSelect","data","handleFilterDropdownVisibleChange","visible","handleResize","shouldShowColumnFilter","hasFilters","hasRenderFilterDropdown","getFilteredValue","dataIndex","curQuery","stateFilteredValue","defaultFilteredValue","getSortOrder","stateSortOrder","defaultSortOrder","handleCellClick","handleCellMouseDown","_createBlock","_resolveDynamicComponent","_mergeProps","_openBlock","_createElementBlock","_Fragment","ResizableHeaderCell","_unref","isSelectionColumn","TableSelectionCell","ColumnSorter","$event","Tooltip","isVNode","_hoisted_1","_hoisted_2","_toDisplayString","_hoisted_3","_hoisted_4","_createElementVNode","_createTextVNode","ColumnFilter","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10"],"mappings":"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"}