@douyinfe/semi-ui 2.22.0-alpha.0 → 2.22.0-beta.1

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 (363) hide show
  1. package/dist/css/semi.css +450 -38
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +5068 -6354
  4. package/dist/umd/semi-ui.js.map +1 -1
  5. package/dist/umd/semi-ui.min.js +1 -1
  6. package/dist/umd/semi-ui.min.js.map +1 -1
  7. package/lib/cjs/_base/baseComponent.js +3 -0
  8. package/lib/cjs/_cssAnimation/index.d.ts +39 -0
  9. package/lib/cjs/_cssAnimation/index.js +133 -0
  10. package/lib/cjs/anchor/index.d.ts +2 -2
  11. package/lib/cjs/anchor/link.d.ts +1 -1
  12. package/lib/cjs/autoComplete/index.d.ts +6 -7
  13. package/lib/cjs/autoComplete/option.d.ts +1 -1
  14. package/lib/cjs/banner/index.d.ts +2 -2
  15. package/lib/cjs/breadcrumb/index.d.ts +3 -3
  16. package/lib/cjs/breadcrumb/item.d.ts +3 -3
  17. package/lib/cjs/button/index.d.ts +2 -2
  18. package/lib/cjs/calendar/dayCalendar.d.ts +2 -2
  19. package/lib/cjs/calendar/index.d.ts +2 -2
  20. package/lib/cjs/calendar/monthCalendar.d.ts +2 -2
  21. package/lib/cjs/calendar/rangeCalendar.d.ts +2 -2
  22. package/lib/cjs/calendar/weekCalendar.d.ts +2 -2
  23. package/lib/cjs/card/cardGroup.d.ts +1 -1
  24. package/lib/cjs/carousel/index.d.ts +1 -1
  25. package/lib/cjs/cascader/index.d.ts +7 -8
  26. package/lib/cjs/cascader/index.js +8 -6
  27. package/lib/cjs/checkbox/checkbox.d.ts +5 -1
  28. package/lib/cjs/checkbox/checkbox.js +24 -0
  29. package/lib/cjs/checkbox/checkboxGroup.js +2 -2
  30. package/lib/cjs/checkbox/context.d.ts +1 -2
  31. package/lib/cjs/collapse/collapse-context.d.ts +1 -2
  32. package/lib/cjs/collapse/index.d.ts +3 -3
  33. package/lib/cjs/collapse/item.d.ts +2 -2
  34. package/lib/cjs/collapsible/index.d.ts +32 -19
  35. package/lib/cjs/collapsible/index.js +157 -121
  36. package/lib/cjs/configProvider/index.d.ts +1 -1
  37. package/lib/cjs/datePicker/dateInput.d.ts +3 -3
  38. package/lib/cjs/datePicker/datePicker.d.ts +10 -7
  39. package/lib/cjs/datePicker/datePicker.js +11 -13
  40. package/lib/cjs/datePicker/month.d.ts +1 -1
  41. package/lib/cjs/datePicker/month.js +5 -1
  42. package/lib/cjs/datePicker/monthsGrid.d.ts +6 -5
  43. package/lib/cjs/datePicker/monthsGrid.js +9 -26
  44. package/lib/cjs/datePicker/yearAndMonth.js +13 -8
  45. package/lib/cjs/descriptions/index.d.ts +1 -1
  46. package/lib/cjs/dropdown/dropdownItem.d.ts +2 -1
  47. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  48. package/lib/cjs/dropdown/dropdownMenu.d.ts +1 -0
  49. package/lib/cjs/dropdown/index.d.ts +5 -5
  50. package/lib/cjs/form/baseForm.d.ts +6 -4
  51. package/lib/cjs/form/errorMessage.d.ts +1 -1
  52. package/lib/cjs/form/field.d.ts +3 -1
  53. package/lib/cjs/form/label.d.ts +1 -1
  54. package/lib/cjs/grid/col.d.ts +6 -6
  55. package/lib/cjs/grid/row.d.ts +1 -1
  56. package/lib/cjs/iconButton/index.d.ts +2 -2
  57. package/lib/cjs/image/image.d.ts +4 -4
  58. package/lib/cjs/image/preview.d.ts +2 -1
  59. package/lib/cjs/image/previewImage.d.ts +1 -1
  60. package/lib/cjs/image/previewImage.js +8 -5
  61. package/lib/cjs/image/previewInner.d.ts +1 -1
  62. package/lib/cjs/image/previewInner.js +3 -3
  63. package/lib/cjs/index.d.ts +1 -0
  64. package/lib/cjs/index.js +8 -0
  65. package/lib/cjs/input/index.d.ts +1 -0
  66. package/lib/cjs/input/textarea.js +1 -1
  67. package/lib/cjs/inputNumber/index.d.ts +2 -2
  68. package/lib/cjs/locale/source/ro.d.ts +3 -3
  69. package/lib/cjs/modal/Modal.d.ts +6 -6
  70. package/lib/cjs/modal/Modal.js +80 -56
  71. package/lib/cjs/modal/ModalContent.js +6 -5
  72. package/lib/cjs/modal/confirm.d.ts +10 -10
  73. package/lib/cjs/modal/confirm.js +1 -15
  74. package/lib/cjs/modal/useModal/HookModal.d.ts +0 -2
  75. package/lib/cjs/modal/useModal/HookModal.js +6 -18
  76. package/lib/cjs/navigation/Footer.d.ts +1 -1
  77. package/lib/cjs/navigation/Header.d.ts +3 -3
  78. package/lib/cjs/navigation/Item.d.ts +4 -4
  79. package/lib/cjs/navigation/Item.js +11 -5
  80. package/lib/cjs/navigation/OpenIconTransition.d.ts +1 -15
  81. package/lib/cjs/navigation/OpenIconTransition.js +1 -82
  82. package/lib/cjs/navigation/SubNav.d.ts +4 -4
  83. package/lib/cjs/navigation/SubNav.js +43 -27
  84. package/lib/cjs/navigation/index.d.ts +8 -11
  85. package/lib/cjs/notification/index.d.ts +0 -1
  86. package/lib/cjs/notification/index.js +25 -15
  87. package/lib/cjs/notification/notice.d.ts +3 -1
  88. package/lib/cjs/notification/notice.js +3 -1
  89. package/lib/cjs/popconfirm/index.d.ts +4 -5
  90. package/lib/cjs/popover/index.d.ts +7 -7
  91. package/lib/cjs/popover/index.js +1 -1
  92. package/lib/cjs/progress/index.d.ts +4 -4
  93. package/lib/cjs/rating/index.d.ts +1 -1
  94. package/lib/cjs/rating/item.d.ts +1 -1
  95. package/lib/cjs/scrollList/index.d.ts +1 -1
  96. package/lib/cjs/scrollList/scrollItem.d.ts +3 -3
  97. package/lib/cjs/scrollList/scrollItem.js +2 -2
  98. package/lib/cjs/select/index.d.ts +10 -5
  99. package/lib/cjs/select/index.js +108 -60
  100. package/lib/cjs/select/option.d.ts +1 -1
  101. package/lib/cjs/select/optionGroup.d.ts +1 -1
  102. package/lib/cjs/sideSheet/SideSheetContent.d.ts +8 -0
  103. package/lib/cjs/sideSheet/SideSheetContent.js +10 -6
  104. package/lib/cjs/sideSheet/index.d.ts +4 -4
  105. package/lib/cjs/sideSheet/index.js +69 -39
  106. package/lib/cjs/slider/index.js +2 -2
  107. package/lib/cjs/space/index.d.ts +1 -1
  108. package/lib/cjs/spin/index.d.ts +1 -0
  109. package/lib/cjs/spin/index.js +1 -4
  110. package/lib/cjs/table/Body/BaseRow.d.ts +5 -5
  111. package/lib/cjs/table/Body/ExpandedRow.d.ts +3 -3
  112. package/lib/cjs/table/Body/SectionRow.d.ts +3 -3
  113. package/lib/cjs/table/Column.d.ts +4 -4
  114. package/lib/cjs/table/ColumnShape.d.ts +4 -4
  115. package/lib/cjs/table/ColumnSorter.d.ts +1 -1
  116. package/lib/cjs/table/CustomExpandIcon.d.ts +1 -1
  117. package/lib/cjs/table/CustomExpandIcon.js +13 -5
  118. package/lib/cjs/table/Table.d.ts +15 -15
  119. package/lib/cjs/table/Table.js +20 -1
  120. package/lib/cjs/table/TableCell.d.ts +4 -4
  121. package/lib/cjs/table/TableHeaderRow.d.ts +3 -2
  122. package/lib/cjs/table/TablePagination.d.ts +1 -1
  123. package/lib/cjs/table/index.d.ts +15 -15
  124. package/lib/cjs/table/interface.d.ts +2 -0
  125. package/lib/cjs/tabs/TabPane.d.ts +2 -8
  126. package/lib/cjs/tabs/TabPane.js +40 -38
  127. package/lib/cjs/tabs/index.d.ts +5 -3
  128. package/lib/cjs/tabs/index.js +26 -4
  129. package/lib/cjs/tabs/interface.d.ts +2 -0
  130. package/lib/cjs/tag/group.d.ts +1 -0
  131. package/lib/cjs/tag/group.js +6 -3
  132. package/lib/cjs/tag/index.d.ts +1 -1
  133. package/lib/cjs/tag/index.js +1 -0
  134. package/lib/cjs/tag/interface.d.ts +3 -1
  135. package/lib/cjs/tagInput/index.d.ts +3 -3
  136. package/lib/cjs/timePicker/Combobox.js +4 -8
  137. package/lib/cjs/timePicker/PanelShape.d.ts +2 -2
  138. package/lib/cjs/timePicker/TimePicker.d.ts +11 -11
  139. package/lib/cjs/timePicker/TimePicker.js +3 -1
  140. package/lib/cjs/timePicker/TimeShape.d.ts +1 -1
  141. package/lib/cjs/timePicker/index.d.ts +10 -9
  142. package/lib/cjs/timeline/index.d.ts +1 -1
  143. package/lib/cjs/toast/index.d.ts +2 -4
  144. package/lib/cjs/toast/index.js +29 -14
  145. package/lib/cjs/toast/toast.d.ts +4 -2
  146. package/lib/cjs/toast/toast.js +3 -1
  147. package/lib/cjs/tooltip/index.d.ts +7 -11
  148. package/lib/cjs/tooltip/index.js +30 -39
  149. package/lib/cjs/transfer/index.d.ts +1 -1
  150. package/lib/cjs/tree/autoSizer.d.ts +2 -2
  151. package/lib/cjs/tree/index.d.ts +5 -5
  152. package/lib/cjs/tree/nodeCollapsible.d.ts +11 -0
  153. package/lib/cjs/tree/nodeCollapsible.js +50 -0
  154. package/lib/cjs/tree/nodeList.js +6 -5
  155. package/lib/cjs/tree/treeNode.d.ts +1 -1
  156. package/lib/cjs/treeSelect/index.d.ts +12 -9
  157. package/lib/cjs/treeSelect/index.js +23 -9
  158. package/lib/cjs/trigger/index.d.ts +1 -1
  159. package/lib/cjs/typography/base.d.ts +8 -8
  160. package/lib/cjs/typography/index.d.ts +2 -0
  161. package/lib/cjs/typography/index.js +3 -0
  162. package/lib/cjs/typography/interface.d.ts +2 -0
  163. package/lib/cjs/typography/numeral.d.ts +68 -0
  164. package/lib/cjs/typography/numeral.js +106 -0
  165. package/lib/cjs/typography/paragraph.d.ts +3 -3
  166. package/lib/cjs/typography/text.d.ts +4 -4
  167. package/lib/cjs/typography/title.d.ts +3 -3
  168. package/lib/cjs/upload/fileCard.d.ts +1 -1
  169. package/lib/es/_base/baseComponent.js +3 -0
  170. package/lib/es/_cssAnimation/index.d.ts +39 -0
  171. package/lib/es/_cssAnimation/index.js +122 -0
  172. package/lib/es/anchor/index.d.ts +2 -2
  173. package/lib/es/anchor/link.d.ts +1 -1
  174. package/lib/es/autoComplete/index.d.ts +6 -7
  175. package/lib/es/autoComplete/option.d.ts +1 -1
  176. package/lib/es/banner/index.d.ts +2 -2
  177. package/lib/es/breadcrumb/index.d.ts +3 -3
  178. package/lib/es/breadcrumb/item.d.ts +3 -3
  179. package/lib/es/button/index.d.ts +2 -2
  180. package/lib/es/calendar/dayCalendar.d.ts +2 -2
  181. package/lib/es/calendar/index.d.ts +2 -2
  182. package/lib/es/calendar/monthCalendar.d.ts +2 -2
  183. package/lib/es/calendar/rangeCalendar.d.ts +2 -2
  184. package/lib/es/calendar/weekCalendar.d.ts +2 -2
  185. package/lib/es/card/cardGroup.d.ts +1 -1
  186. package/lib/es/carousel/index.d.ts +1 -1
  187. package/lib/es/cascader/index.d.ts +7 -8
  188. package/lib/es/cascader/index.js +8 -6
  189. package/lib/es/checkbox/checkbox.d.ts +5 -1
  190. package/lib/es/checkbox/checkbox.js +24 -0
  191. package/lib/es/checkbox/checkboxGroup.js +2 -2
  192. package/lib/es/checkbox/context.d.ts +1 -2
  193. package/lib/es/collapse/collapse-context.d.ts +1 -2
  194. package/lib/es/collapse/index.d.ts +3 -3
  195. package/lib/es/collapse/item.d.ts +2 -2
  196. package/lib/es/collapsible/index.d.ts +32 -19
  197. package/lib/es/collapsible/index.js +158 -119
  198. package/lib/es/configProvider/index.d.ts +1 -1
  199. package/lib/es/datePicker/dateInput.d.ts +3 -3
  200. package/lib/es/datePicker/datePicker.d.ts +10 -7
  201. package/lib/es/datePicker/datePicker.js +11 -13
  202. package/lib/es/datePicker/month.d.ts +1 -1
  203. package/lib/es/datePicker/month.js +5 -1
  204. package/lib/es/datePicker/monthsGrid.d.ts +6 -5
  205. package/lib/es/datePicker/monthsGrid.js +9 -26
  206. package/lib/es/datePicker/yearAndMonth.js +13 -8
  207. package/lib/es/descriptions/index.d.ts +1 -1
  208. package/lib/es/dropdown/dropdownItem.d.ts +2 -1
  209. package/lib/es/dropdown/dropdownItem.js +3 -1
  210. package/lib/es/dropdown/dropdownMenu.d.ts +1 -0
  211. package/lib/es/dropdown/index.d.ts +5 -5
  212. package/lib/es/form/baseForm.d.ts +6 -4
  213. package/lib/es/form/errorMessage.d.ts +1 -1
  214. package/lib/es/form/field.d.ts +3 -1
  215. package/lib/es/form/label.d.ts +1 -1
  216. package/lib/es/grid/col.d.ts +6 -6
  217. package/lib/es/grid/row.d.ts +1 -1
  218. package/lib/es/iconButton/index.d.ts +2 -2
  219. package/lib/es/image/image.d.ts +4 -4
  220. package/lib/es/image/preview.d.ts +2 -1
  221. package/lib/es/image/previewImage.d.ts +1 -1
  222. package/lib/es/image/previewImage.js +8 -5
  223. package/lib/es/image/previewInner.d.ts +1 -1
  224. package/lib/es/image/previewInner.js +3 -3
  225. package/lib/es/index.d.ts +1 -0
  226. package/lib/es/index.js +1 -0
  227. package/lib/es/input/index.d.ts +1 -0
  228. package/lib/es/input/textarea.js +1 -1
  229. package/lib/es/inputNumber/index.d.ts +2 -2
  230. package/lib/es/locale/source/ro.d.ts +3 -3
  231. package/lib/es/modal/Modal.d.ts +6 -6
  232. package/lib/es/modal/Modal.js +79 -56
  233. package/lib/es/modal/ModalContent.js +6 -5
  234. package/lib/es/modal/confirm.d.ts +10 -10
  235. package/lib/es/modal/confirm.js +1 -14
  236. package/lib/es/modal/useModal/HookModal.d.ts +0 -2
  237. package/lib/es/modal/useModal/HookModal.js +7 -19
  238. package/lib/es/navigation/Footer.d.ts +1 -1
  239. package/lib/es/navigation/Header.d.ts +3 -3
  240. package/lib/es/navigation/Item.d.ts +4 -4
  241. package/lib/es/navigation/Item.js +11 -5
  242. package/lib/es/navigation/OpenIconTransition.d.ts +1 -15
  243. package/lib/es/navigation/OpenIconTransition.js +1 -66
  244. package/lib/es/navigation/SubNav.d.ts +4 -4
  245. package/lib/es/navigation/SubNav.js +43 -28
  246. package/lib/es/navigation/index.d.ts +8 -11
  247. package/lib/es/notification/index.d.ts +0 -1
  248. package/lib/es/notification/index.js +24 -14
  249. package/lib/es/notification/notice.d.ts +3 -1
  250. package/lib/es/notification/notice.js +3 -1
  251. package/lib/es/popconfirm/index.d.ts +4 -5
  252. package/lib/es/popover/index.d.ts +7 -7
  253. package/lib/es/popover/index.js +1 -1
  254. package/lib/es/progress/index.d.ts +4 -4
  255. package/lib/es/rating/index.d.ts +1 -1
  256. package/lib/es/rating/item.d.ts +1 -1
  257. package/lib/es/scrollList/index.d.ts +1 -1
  258. package/lib/es/scrollList/scrollItem.d.ts +3 -3
  259. package/lib/es/scrollList/scrollItem.js +3 -3
  260. package/lib/es/select/index.d.ts +10 -5
  261. package/lib/es/select/index.js +108 -60
  262. package/lib/es/select/option.d.ts +1 -1
  263. package/lib/es/select/optionGroup.d.ts +1 -1
  264. package/lib/es/sideSheet/SideSheetContent.d.ts +8 -0
  265. package/lib/es/sideSheet/SideSheetContent.js +10 -6
  266. package/lib/es/sideSheet/index.d.ts +4 -4
  267. package/lib/es/sideSheet/index.js +67 -37
  268. package/lib/es/slider/index.js +2 -2
  269. package/lib/es/space/index.d.ts +1 -1
  270. package/lib/es/spin/index.d.ts +1 -0
  271. package/lib/es/spin/index.js +1 -4
  272. package/lib/es/table/Body/BaseRow.d.ts +5 -5
  273. package/lib/es/table/Body/ExpandedRow.d.ts +3 -3
  274. package/lib/es/table/Body/SectionRow.d.ts +3 -3
  275. package/lib/es/table/Column.d.ts +4 -4
  276. package/lib/es/table/ColumnShape.d.ts +4 -4
  277. package/lib/es/table/ColumnSorter.d.ts +1 -1
  278. package/lib/es/table/CustomExpandIcon.d.ts +1 -1
  279. package/lib/es/table/CustomExpandIcon.js +13 -5
  280. package/lib/es/table/Table.d.ts +15 -15
  281. package/lib/es/table/Table.js +18 -1
  282. package/lib/es/table/TableCell.d.ts +4 -4
  283. package/lib/es/table/TableHeaderRow.d.ts +3 -2
  284. package/lib/es/table/TablePagination.d.ts +1 -1
  285. package/lib/es/table/index.d.ts +15 -15
  286. package/lib/es/table/interface.d.ts +2 -0
  287. package/lib/es/tabs/TabPane.d.ts +2 -8
  288. package/lib/es/tabs/TabPane.js +40 -38
  289. package/lib/es/tabs/index.d.ts +5 -3
  290. package/lib/es/tabs/index.js +26 -4
  291. package/lib/es/tabs/interface.d.ts +2 -0
  292. package/lib/es/tag/group.d.ts +1 -0
  293. package/lib/es/tag/group.js +6 -3
  294. package/lib/es/tag/index.d.ts +1 -1
  295. package/lib/es/tag/index.js +1 -0
  296. package/lib/es/tag/interface.d.ts +3 -1
  297. package/lib/es/tagInput/index.d.ts +3 -3
  298. package/lib/es/timePicker/Combobox.js +4 -8
  299. package/lib/es/timePicker/PanelShape.d.ts +2 -2
  300. package/lib/es/timePicker/TimePicker.d.ts +11 -11
  301. package/lib/es/timePicker/TimePicker.js +3 -1
  302. package/lib/es/timePicker/TimeShape.d.ts +1 -1
  303. package/lib/es/timePicker/index.d.ts +10 -9
  304. package/lib/es/timeline/index.d.ts +1 -1
  305. package/lib/es/toast/index.d.ts +2 -4
  306. package/lib/es/toast/index.js +27 -13
  307. package/lib/es/toast/toast.d.ts +4 -2
  308. package/lib/es/toast/toast.js +3 -1
  309. package/lib/es/tooltip/index.d.ts +7 -11
  310. package/lib/es/tooltip/index.js +27 -38
  311. package/lib/es/transfer/index.d.ts +1 -1
  312. package/lib/es/tree/autoSizer.d.ts +2 -2
  313. package/lib/es/tree/index.d.ts +5 -5
  314. package/lib/es/tree/nodeCollapsible.d.ts +11 -0
  315. package/lib/es/tree/nodeCollapsible.js +35 -0
  316. package/lib/es/tree/nodeList.js +6 -5
  317. package/lib/es/tree/treeNode.d.ts +1 -1
  318. package/lib/es/treeSelect/index.d.ts +12 -9
  319. package/lib/es/treeSelect/index.js +22 -8
  320. package/lib/es/trigger/index.d.ts +1 -1
  321. package/lib/es/typography/base.d.ts +8 -8
  322. package/lib/es/typography/index.d.ts +2 -0
  323. package/lib/es/typography/index.js +2 -0
  324. package/lib/es/typography/interface.d.ts +2 -0
  325. package/lib/es/typography/numeral.d.ts +68 -0
  326. package/lib/es/typography/numeral.js +86 -0
  327. package/lib/es/typography/paragraph.d.ts +3 -3
  328. package/lib/es/typography/text.d.ts +4 -4
  329. package/lib/es/typography/title.d.ts +3 -3
  330. package/lib/es/upload/fileCard.d.ts +1 -1
  331. package/package.json +7 -8
  332. package/lib/cjs/motions/Rotate.d.ts +0 -23
  333. package/lib/cjs/motions/Rotate.js +0 -76
  334. package/lib/cjs/navigation/SubNavTransition.d.ts +0 -17
  335. package/lib/cjs/navigation/SubNavTransition.js +0 -83
  336. package/lib/cjs/notification/NoticeTransition.d.ts +0 -10
  337. package/lib/cjs/notification/NoticeTransition.js +0 -85
  338. package/lib/cjs/sideSheet/SideSheetTransition.d.ts +0 -12
  339. package/lib/cjs/sideSheet/SideSheetTransition.js +0 -115
  340. package/lib/cjs/tabs/TabPaneTransition.d.ts +0 -4
  341. package/lib/cjs/tabs/TabPaneTransition.js +0 -114
  342. package/lib/cjs/toast/ToastTransition.d.ts +0 -7
  343. package/lib/cjs/toast/ToastTransition.js +0 -66
  344. package/lib/cjs/tooltip/TooltipStyledTransition.d.ts +0 -9
  345. package/lib/cjs/tooltip/TooltipStyledTransition.js +0 -52
  346. package/lib/cjs/tree/collapse.d.ts +0 -29
  347. package/lib/cjs/tree/collapse.js +0 -155
  348. package/lib/es/motions/Rotate.d.ts +0 -23
  349. package/lib/es/motions/Rotate.js +0 -60
  350. package/lib/es/navigation/SubNavTransition.d.ts +0 -17
  351. package/lib/es/navigation/SubNavTransition.js +0 -66
  352. package/lib/es/notification/NoticeTransition.d.ts +0 -10
  353. package/lib/es/notification/NoticeTransition.js +0 -74
  354. package/lib/es/sideSheet/SideSheetTransition.d.ts +0 -12
  355. package/lib/es/sideSheet/SideSheetTransition.js +0 -102
  356. package/lib/es/tabs/TabPaneTransition.d.ts +0 -4
  357. package/lib/es/tabs/TabPaneTransition.js +0 -103
  358. package/lib/es/toast/ToastTransition.d.ts +0 -7
  359. package/lib/es/toast/ToastTransition.js +0 -55
  360. package/lib/es/tooltip/TooltipStyledTransition.d.ts +0 -9
  361. package/lib/es/tooltip/TooltipStyledTransition.js +0 -38
  362. package/lib/es/tree/collapse.d.ts +0 -29
  363. package/lib/es/tree/collapse.js +0 -136
@@ -25,11 +25,11 @@ export default class Column extends React.PureComponent<ColumnProps> {
25
25
  renderFilterDropdownItem: import("prop-types").Requireable<(...args: any[]) => any>;
26
26
  sortChildrenRecord: import("prop-types").Requireable<boolean>;
27
27
  sortDirections: import("prop-types").Requireable<string[]>;
28
- sortOrder: import("prop-types").Requireable<string | boolean>;
29
- sorter: import("prop-types").Requireable<boolean | ((...args: any[]) => any)>;
30
- title: import("prop-types").Requireable<import("prop-types").ReactNodeLike | ((...args: any[]) => any)>;
28
+ sortOrder: import("prop-types").Requireable<NonNullable<string | boolean>>;
29
+ sorter: import("prop-types").Requireable<NonNullable<boolean | ((...args: any[]) => any)>>;
30
+ title: import("prop-types").Requireable<NonNullable<import("prop-types").ReactNodeLike | ((...args: any[]) => any)>>;
31
31
  useFullRender: import("prop-types").Requireable<boolean>;
32
- width: import("prop-types").Requireable<string | number>;
32
+ width: import("prop-types").Requireable<NonNullable<string | number>>;
33
33
  };
34
34
  constructor(props?: ColumnProps);
35
35
  render(): null;
@@ -23,10 +23,10 @@ declare const _default: {
23
23
  renderFilterDropdownItem: PropTypes.Requireable<(...args: any[]) => any>;
24
24
  sortChildrenRecord: PropTypes.Requireable<boolean>;
25
25
  sortDirections: PropTypes.Requireable<string[]>;
26
- sortOrder: PropTypes.Requireable<string | boolean>;
27
- sorter: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
28
- title: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
26
+ sortOrder: PropTypes.Requireable<NonNullable<string | boolean>>;
27
+ sorter: PropTypes.Requireable<NonNullable<boolean | ((...args: any[]) => any)>>;
28
+ title: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
29
29
  useFullRender: PropTypes.Requireable<boolean>;
30
- width: PropTypes.Requireable<string | number>;
30
+ width: PropTypes.Requireable<NonNullable<string | number>>;
31
31
  };
32
32
  export default _default;
@@ -15,7 +15,7 @@ export default class ColumnSorter extends PureComponent<ColumnSorterProps> {
15
15
  style: PropTypes.Requireable<object>;
16
16
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
17
17
  prefixCls: PropTypes.Requireable<string>;
18
- sortOrder: PropTypes.Requireable<string | boolean>;
18
+ sortOrder: PropTypes.Requireable<NonNullable<string | boolean>>;
19
19
  };
20
20
  static defaultProps: {
21
21
  prefixCls: "semi-table";
@@ -21,7 +21,7 @@ declare namespace CustomExpandIcon {
21
21
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
22
22
  onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
23
23
  onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
24
- expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
24
+ expandIcon: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
25
25
  prefixCls: PropTypes.Requireable<string>;
26
26
  motion: PropTypes.Requireable<boolean>;
27
27
  };
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import { IconChevronRight, IconChevronDown, IconTreeTriangleDown, IconTreeTriangleRight } from '@douyinfe/semi-icons';
7
7
  import { cssClasses } from '@douyinfe/semi-foundation/lib/es/table/constants';
8
8
  import isEnterPress from '@douyinfe/semi-foundation/lib/es/utils/isEnterPress';
9
- import Rotate from '../motions/Rotate';
9
+ import CSSAnimation from "../_cssAnimation";
10
10
  /**
11
11
  * render expand icon
12
12
  */
@@ -45,10 +45,18 @@ export default function CustomExpandIcon(props) {
45
45
  }, [expanded]);
46
46
 
47
47
  if (motion) {
48
- icon = /*#__PURE__*/React.createElement(Rotate, {
49
- isOpen: expanded,
50
- enterDeg: 90
51
- }, icon);
48
+ const originIcon = icon;
49
+ icon = /*#__PURE__*/React.createElement(CSSAnimation, {
50
+ animationState: expanded ? "enter" : "leave",
51
+ startClassName: "".concat(cssClasses.PREFIX, "-expandedIcon-").concat(expanded ? 'show' : "hide")
52
+ }, _ref => {
53
+ let {
54
+ animationClassName
55
+ } = _ref;
56
+ return /*#__PURE__*/React.cloneElement(originIcon, {
57
+ className: (originIcon.props.className || "") + " " + animationClassName
58
+ });
59
+ });
52
60
  }
53
61
 
54
62
  return /*#__PURE__*/React.createElement("span", {
@@ -78,21 +78,21 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
78
78
  renderFilterDropdownItem: PropTypes.Requireable<(...args: any[]) => any>;
79
79
  sortChildrenRecord: PropTypes.Requireable<boolean>;
80
80
  sortDirections: PropTypes.Requireable<string[]>;
81
- sortOrder: PropTypes.Requireable<string | boolean>;
82
- sorter: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
83
- title: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
81
+ sortOrder: PropTypes.Requireable<NonNullable<string | boolean>>;
82
+ sorter: PropTypes.Requireable<NonNullable<boolean | ((...args: any[]) => any)>>;
83
+ title: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
84
84
  useFullRender: PropTypes.Requireable<boolean>;
85
- width: PropTypes.Requireable<string | number>;
85
+ width: PropTypes.Requireable<NonNullable<string | number>>;
86
86
  }>[]>;
87
87
  hideExpandedColumn: PropTypes.Requireable<boolean>;
88
88
  id: PropTypes.Requireable<string>;
89
- expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
89
+ expandIcon: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
90
90
  expandCellFixed: PropTypes.Requireable<boolean | "left" | "right">;
91
- title: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
91
+ title: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
92
92
  onHeaderRow: PropTypes.Requireable<(...args: any[]) => any>;
93
93
  showHeader: PropTypes.Requireable<boolean>;
94
94
  indentSize: PropTypes.Requireable<number>;
95
- rowKey: PropTypes.Requireable<string | number | ((...args: any[]) => any)>;
95
+ rowKey: PropTypes.Requireable<NonNullable<string | number | ((...args: any[]) => any)>>;
96
96
  onRow: PropTypes.Requireable<(...args: any[]) => any>;
97
97
  onExpandedRowsChange: PropTypes.Requireable<(...args: any[]) => any>;
98
98
  onExpand: PropTypes.Requireable<(...args: any[]) => any>;
@@ -104,23 +104,23 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
104
104
  defaultExpandAllGroupRows: PropTypes.Requireable<boolean>;
105
105
  expandAllGroupRows: PropTypes.Requireable<boolean>;
106
106
  defaultExpandedRowKeys: PropTypes.Requireable<any[]>;
107
- pagination: PropTypes.Requireable<boolean | object>;
107
+ pagination: PropTypes.Requireable<NonNullable<boolean | object>>;
108
108
  renderPagination: PropTypes.Requireable<(...args: any[]) => any>;
109
- footer: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
109
+ footer: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
110
110
  empty: PropTypes.Requireable<PropTypes.ReactNodeLike>;
111
111
  dataSource: PropTypes.Requireable<any[]>;
112
112
  childrenRecordName: PropTypes.Requireable<string>;
113
- rowSelection: PropTypes.Requireable<boolean | object>;
113
+ rowSelection: PropTypes.Requireable<NonNullable<boolean | object>>;
114
114
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
115
115
  scroll: PropTypes.Requireable<PropTypes.InferProps<{
116
- x: PropTypes.Requireable<string | number | boolean>;
117
- y: PropTypes.Requireable<string | number>;
116
+ x: PropTypes.Requireable<NonNullable<string | number | boolean>>;
117
+ y: PropTypes.Requireable<NonNullable<string | number>>;
118
118
  }>>;
119
- groupBy: PropTypes.Requireable<string | number | ((...args: any[]) => any)>;
119
+ groupBy: PropTypes.Requireable<NonNullable<string | number | ((...args: any[]) => any)>>;
120
120
  renderGroupSection: PropTypes.Requireable<(...args: any[]) => any>;
121
121
  onGroupedRow: PropTypes.Requireable<(...args: any[]) => any>;
122
122
  clickGroupedRowToExpand: PropTypes.Requireable<boolean>;
123
- virtualized: PropTypes.Requireable<boolean | object>;
123
+ virtualized: PropTypes.Requireable<NonNullable<boolean | object>>;
124
124
  dropdownPrefixCls: PropTypes.Requireable<string>;
125
125
  expandRowByClick: PropTypes.Requireable<boolean>;
126
126
  getVirtualizedListRef: PropTypes.Requireable<(...args: any[]) => any>;
@@ -294,7 +294,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
294
294
  defaultCurrentPage?: number;
295
295
  onPageChange?: (currentPage: number) => void;
296
296
  onPageSizeChange?: (newPageSize: number) => void;
297
- onChange: ((currentPage: number, pageSize: number) => void) | ((currentPage: number, currentPageSize: number) => void);
297
+ onChange: (currentPage: number, pageSize: number) => void;
298
298
  prevText?: React.ReactNode;
299
299
  nextText?: React.ReactNode;
300
300
  showSizeChanger?: boolean;
@@ -819,6 +819,7 @@ class Table extends BaseComponent {
819
819
 
820
820
  const columns = this.getColumns(props.columns, props.children);
821
821
  const cachedflattenColumns = flattenColumns(columns);
822
+ const queries = TableFoundation.initColumnsFilteredValueAndSorterOrder(cloneDeep(cachedflattenColumns));
822
823
  this.state = {
823
824
  /**
824
825
  * Cached props
@@ -831,7 +832,7 @@ class Table extends BaseComponent {
831
832
  /**
832
833
  * State calculated based on prop
833
834
  */
834
- queries: cloneDeep(cachedflattenColumns),
835
+ queries,
835
836
  dataSource: [],
836
837
  flattenData: [],
837
838
  expandedRowKeys: [...(props.expandedRowKeys || []), ...(props.defaultExpandedRowKeys || [])],
@@ -1082,7 +1083,23 @@ class Table extends BaseComponent {
1082
1083
  bodyHasScrollBar
1083
1084
  });
1084
1085
  }
1086
+ },
1087
+
1088
+ stopPropagation(e) {
1089
+ // The event definition here is not very accurate for now, it belongs to a broad structure definition
1090
+ if (e && typeof e === 'object') {
1091
+ if (typeof e.stopPropagation === 'function') {
1092
+ e.stopPropagation();
1093
+ }
1094
+
1095
+ if (e.nativeEvent && typeof e.nativeEvent.stopPropagation === 'function') {
1096
+ e.nativeEvent.stopPropagation();
1097
+ } else if (typeof e.stopImmediatePropagation === 'function') {
1098
+ e.stopImmediatePropagation();
1099
+ }
1100
+ }
1085
1101
  }
1102
+
1086
1103
  });
1087
1104
  }
1088
1105
 
@@ -49,9 +49,9 @@ export default class TableCell extends BaseComponent<TableCellProps, Record<stri
49
49
  record: PropTypes.Requireable<object>;
50
50
  prefixCls: PropTypes.Requireable<string>;
51
51
  index: PropTypes.Requireable<number>;
52
- fixedLeft: PropTypes.Requireable<number | boolean>;
52
+ fixedLeft: PropTypes.Requireable<NonNullable<number | boolean>>;
53
53
  lastFixedLeft: PropTypes.Requireable<boolean>;
54
- fixedRight: PropTypes.Requireable<number | boolean>;
54
+ fixedRight: PropTypes.Requireable<NonNullable<number | boolean>>;
55
55
  firstFixedRight: PropTypes.Requireable<boolean>;
56
56
  indent: PropTypes.Requireable<number>;
57
57
  indentSize: PropTypes.Requireable<number>;
@@ -63,8 +63,8 @@ export default class TableCell extends BaseComponent<TableCellProps, Record<stri
63
63
  onClick: PropTypes.Requireable<(...args: any[]) => any>;
64
64
  onDidUpdate: PropTypes.Requireable<(...args: any[]) => any>;
65
65
  isSection: PropTypes.Requireable<boolean>;
66
- width: PropTypes.Requireable<string | number>;
67
- height: PropTypes.Requireable<string | number>;
66
+ width: PropTypes.Requireable<NonNullable<string | number>>;
67
+ height: PropTypes.Requireable<NonNullable<string | number>>;
68
68
  selected: PropTypes.Requireable<boolean>;
69
69
  expanded: PropTypes.Requireable<boolean>;
70
70
  colIndex: PropTypes.Requireable<number>;
@@ -21,10 +21,10 @@ export default class TableHeaderRow extends BaseComponent<TableHeaderRowProps, R
21
21
  row: PropTypes.Requireable<any[]>;
22
22
  prefixCls: PropTypes.Requireable<string>;
23
23
  onHeaderRow: PropTypes.Requireable<(...args: any[]) => any>;
24
- index: PropTypes.Requireable<string | number>;
24
+ index: PropTypes.Requireable<NonNullable<string | number>>;
25
25
  style: PropTypes.Requireable<object>;
26
26
  columns: PropTypes.Requireable<any[]>;
27
- fixed: PropTypes.Requireable<string | boolean>;
27
+ fixed: PropTypes.Requireable<NonNullable<string | boolean>>;
28
28
  selectedRowKeysSet: PropTypes.Validator<Set<unknown>>;
29
29
  };
30
30
  static defaultProps: {
@@ -51,6 +51,7 @@ export default class TableHeaderRow extends BaseComponent<TableHeaderRowProps, R
51
51
  getCaches(): any;
52
52
  setCache(key: any, value: any): void;
53
53
  stopPropagation(e: any): void;
54
+ persistEvent: (event: any) => void;
54
55
  };
55
56
  headerNode: HTMLElement;
56
57
  context: TableContextProps;
@@ -13,7 +13,7 @@ export default class TablePagination extends PureComponent<TablePaginationProps>
13
13
  style: PropTypes.Requireable<object>;
14
14
  prefixCls: PropTypes.Requireable<string>;
15
15
  pagination: PropTypes.Requireable<object>;
16
- info: PropTypes.Requireable<PropTypes.ReactNodeLike>;
16
+ info: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
17
17
  renderPagination: PropTypes.Requireable<(...args: any[]) => any>;
18
18
  };
19
19
  static defaultProps: {
@@ -8,7 +8,7 @@ declare class Table<RecordType extends Record<string, any> = Data> extends React
8
8
  static DEFAULT_KEY_COLUMN_SELECTION: "column-selection";
9
9
  static DEFAULT_KEY_COLUMN_EXPAND: "column-expand";
10
10
  static propTypes: {
11
- resizable: PropTypes.Requireable<boolean | object>;
11
+ resizable: PropTypes.Requireable<NonNullable<boolean | object>>;
12
12
  className: PropTypes.Requireable<string>;
13
13
  style: PropTypes.Requireable<object>;
14
14
  prefixCls: PropTypes.Requireable<string>;
@@ -41,21 +41,21 @@ declare class Table<RecordType extends Record<string, any> = Data> extends React
41
41
  renderFilterDropdownItem: PropTypes.Requireable<(...args: any[]) => any>;
42
42
  sortChildrenRecord: PropTypes.Requireable<boolean>;
43
43
  sortDirections: PropTypes.Requireable<string[]>;
44
- sortOrder: PropTypes.Requireable<string | boolean>;
45
- sorter: PropTypes.Requireable<boolean | ((...args: any[]) => any)>;
46
- title: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
44
+ sortOrder: PropTypes.Requireable<NonNullable<string | boolean>>;
45
+ sorter: PropTypes.Requireable<NonNullable<boolean | ((...args: any[]) => any)>>;
46
+ title: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
47
47
  useFullRender: PropTypes.Requireable<boolean>;
48
- width: PropTypes.Requireable<string | number>;
48
+ width: PropTypes.Requireable<NonNullable<string | number>>;
49
49
  }>[]>;
50
50
  hideExpandedColumn: PropTypes.Requireable<boolean>;
51
51
  id: PropTypes.Requireable<string>;
52
- expandIcon: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
52
+ expandIcon: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
53
53
  expandCellFixed: PropTypes.Requireable<boolean | "left" | "right">;
54
- title: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
54
+ title: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
55
55
  onHeaderRow: PropTypes.Requireable<(...args: any[]) => any>;
56
56
  showHeader: PropTypes.Requireable<boolean>;
57
57
  indentSize: PropTypes.Requireable<number>;
58
- rowKey: PropTypes.Requireable<string | number | ((...args: any[]) => any)>;
58
+ rowKey: PropTypes.Requireable<NonNullable<string | number | ((...args: any[]) => any)>>;
59
59
  onRow: PropTypes.Requireable<(...args: any[]) => any>;
60
60
  onExpandedRowsChange: PropTypes.Requireable<(...args: any[]) => any>;
61
61
  onExpand: PropTypes.Requireable<(...args: any[]) => any>;
@@ -67,23 +67,23 @@ declare class Table<RecordType extends Record<string, any> = Data> extends React
67
67
  defaultExpandAllGroupRows: PropTypes.Requireable<boolean>;
68
68
  expandAllGroupRows: PropTypes.Requireable<boolean>;
69
69
  defaultExpandedRowKeys: PropTypes.Requireable<any[]>;
70
- pagination: PropTypes.Requireable<boolean | object>;
70
+ pagination: PropTypes.Requireable<NonNullable<boolean | object>>;
71
71
  renderPagination: PropTypes.Requireable<(...args: any[]) => any>;
72
- footer: PropTypes.Requireable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>;
72
+ footer: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
73
73
  empty: PropTypes.Requireable<PropTypes.ReactNodeLike>;
74
74
  dataSource: PropTypes.Requireable<any[]>;
75
75
  childrenRecordName: PropTypes.Requireable<string>;
76
- rowSelection: PropTypes.Requireable<boolean | object>;
76
+ rowSelection: PropTypes.Requireable<NonNullable<boolean | object>>;
77
77
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
78
78
  scroll: PropTypes.Requireable<PropTypes.InferProps<{
79
- x: PropTypes.Requireable<string | number | boolean>;
80
- y: PropTypes.Requireable<string | number>;
79
+ x: PropTypes.Requireable<NonNullable<string | number | boolean>>;
80
+ y: PropTypes.Requireable<NonNullable<string | number>>;
81
81
  }>>;
82
- groupBy: PropTypes.Requireable<string | number | ((...args: any[]) => any)>;
82
+ groupBy: PropTypes.Requireable<NonNullable<string | number | ((...args: any[]) => any)>>;
83
83
  renderGroupSection: PropTypes.Requireable<(...args: any[]) => any>;
84
84
  onGroupedRow: PropTypes.Requireable<(...args: any[]) => any>;
85
85
  clickGroupedRowToExpand: PropTypes.Requireable<boolean>;
86
- virtualized: PropTypes.Requireable<boolean | object>;
86
+ virtualized: PropTypes.Requireable<NonNullable<boolean | object>>;
87
87
  dropdownPrefixCls: PropTypes.Requireable<string>;
88
88
  expandRowByClick: PropTypes.Requireable<boolean>;
89
89
  getVirtualizedListRef: PropTypes.Requireable<(...args: any[]) => any>;
@@ -133,6 +133,8 @@ export interface FilterDropdownItem {
133
133
  }
134
134
  export interface RenderOptions {
135
135
  expandIcon?: React.ReactNode;
136
+ selection?: React.ReactNode;
137
+ indentText?: React.ReactNode;
136
138
  }
137
139
  export interface OnCellReturnObject extends React.TdHTMLAttributes<HTMLElement> {
138
140
  [x: string]: any;
@@ -1,7 +1,6 @@
1
1
  import React, { PureComponent, ReactNode } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { TabContextValue } from './interface';
4
- import { PlainTab, TabPaneProps } from './interface';
3
+ import { PlainTab, TabContextValue, TabPaneProps } from './interface';
5
4
  declare class TabPane extends PureComponent<TabPaneProps> {
6
5
  static isTabPane: boolean;
7
6
  static contextType: React.Context<TabContextValue>;
@@ -15,15 +14,10 @@ declare class TabPane extends PureComponent<TabPaneProps> {
15
14
  icon: PropTypes.Requireable<PropTypes.ReactNodeLike>;
16
15
  closable: PropTypes.Requireable<boolean>;
17
16
  };
18
- lastActiveKey: string;
19
17
  ref: React.RefObject<HTMLDivElement>;
20
- isAnimating: boolean;
21
18
  _active: boolean;
22
19
  context: TabContextValue;
23
- componentDidMount(): void;
24
- getDirection: (activeKey: string, itemKey: string, panes: Array<PlainTab>) => boolean;
25
- hideScroll: () => void;
26
- autoScroll: () => void;
20
+ getDirection: (activeKey: string, itemKey: string, panes: Array<PlainTab>, lastActiveKey: string) => boolean;
27
21
  shouldRender: () => boolean;
28
22
  render(): ReactNode;
29
23
  }
@@ -15,20 +15,18 @@ import cls from 'classnames';
15
15
  import { cssClasses } from '@douyinfe/semi-foundation/lib/es/tabs/constants';
16
16
  import getDataAttr from '@douyinfe/semi-foundation/lib/es/utils/getDataAttr';
17
17
  import TabsContext from './tabs-context';
18
- import TabPaneTransition from './TabPaneTransition';
18
+ import CSSAnimation from "../_cssAnimation";
19
19
 
20
20
  class TabPane extends PureComponent {
21
21
  constructor() {
22
22
  super(...arguments);
23
- this.lastActiveKey = null;
24
23
  this.ref = /*#__PURE__*/createRef(); // get direction from current item key to activeKey
25
24
 
26
- this.getDirection = (activeKey, itemKey, panes) => {
25
+ this.getDirection = (activeKey, itemKey, panes, lastActiveKey) => {
27
26
  if (itemKey !== null && activeKey !== null && Array.isArray(panes) && panes.length) {
28
27
  const activeIndex = panes.findIndex(pane => pane.itemKey === activeKey);
29
28
  const itemIndex = panes.findIndex(pane => pane.itemKey === itemKey);
30
- const lastActiveIndex = panes.findIndex(pane => pane.itemKey === this.lastActiveKey);
31
- this.lastActiveKey = activeKey;
29
+ const lastActiveIndex = panes.findIndex(pane => pane.itemKey === lastActiveKey);
32
30
 
33
31
  if (activeIndex === itemIndex) {
34
32
  return lastActiveIndex > activeIndex;
@@ -39,24 +37,6 @@ class TabPane extends PureComponent {
39
37
 
40
38
  return false;
41
39
  };
42
- /* istanbul ignore next */
43
-
44
-
45
- this.hideScroll = () => {
46
- if (this.ref && this.ref.current) {
47
- this.ref.current.style.overflow = 'hidden';
48
- this.isAnimating = true;
49
- }
50
- };
51
- /* istanbul ignore next */
52
-
53
-
54
- this.autoScroll = () => {
55
- if (this.ref && this.ref.current) {
56
- this.ref.current.style.overflow = '';
57
- this.isAnimating = false;
58
- }
59
- };
60
40
 
61
41
  this.shouldRender = () => {
62
42
  const {
@@ -72,14 +52,11 @@ class TabPane extends PureComponent {
72
52
  };
73
53
  }
74
54
 
75
- componentDidMount() {
76
- this.lastActiveKey = this.context.activeKey;
77
- }
78
-
79
55
  render() {
80
56
  const {
81
57
  tabPaneMotion: motion,
82
- tabPosition
58
+ tabPosition,
59
+ prevActiveKey
83
60
  } = this.context;
84
61
 
85
62
  const _a = this.props,
@@ -98,6 +75,27 @@ class TabPane extends PureComponent {
98
75
  [cssClasses.TABS_PANE]: true
99
76
  });
100
77
  const shouldRender = this.shouldRender();
78
+
79
+ const startClassName = (() => {
80
+ const direction = this.getDirection(this.context.activeKey, itemKey, this.context.panes, prevActiveKey);
81
+
82
+ if (tabPosition === 'top') {
83
+ if (direction) {
84
+ return cssClasses.TABS_PANE_ANIMATE_RIGHT_SHOW;
85
+ } else {
86
+ return cssClasses.TABS_PANE_ANIMATE_LEFT_SHOW;
87
+ }
88
+ } else {
89
+ if (direction) {
90
+ return cssClasses.TABS_PANE_ANIMATE_BOTTOM_SHOW;
91
+ } else {
92
+ return cssClasses.TABS_PANE_ANIMATE_TOP_SHOW;
93
+ }
94
+ }
95
+ })();
96
+
97
+ const isActivatedBecauseOtherTabPaneRemoved = !this.context.panes.find(tabPane => tabPane.itemKey === prevActiveKey);
98
+ const hasMotion = motion && active && !isActivatedBecauseOtherTabPaneRemoved && !this.context.forceDisableMotion;
101
99
  return /*#__PURE__*/React.createElement("div", Object.assign({
102
100
  ref: this.ref,
103
101
  role: "tabpanel",
@@ -109,16 +107,20 @@ class TabPane extends PureComponent {
109
107
  tabIndex: 0
110
108
  }, getDataAttr(restProps), {
111
109
  "x-semi-prop": "children"
112
- }), motion ? /*#__PURE__*/React.createElement(TabPaneTransition, {
113
- direction: this.getDirection(this.context.activeKey, itemKey, this.context.panes),
114
- motion: motion,
115
- mode: tabPosition === 'top' ? 'horizontal' : 'vertical',
116
- state: active ? 'enter' : 'leave'
117
- }, transitionStyle => /*#__PURE__*/React.createElement("div", {
118
- className: "".concat(cssClasses.TABS_PANE_MOTION_OVERLAY),
119
- style: Object.assign({}, transitionStyle),
120
- "x-semi-prop": "children"
121
- }, shouldRender ? children : null)) : shouldRender ? children : null);
110
+ }), /*#__PURE__*/React.createElement(CSSAnimation, {
111
+ motion: hasMotion,
112
+ animationState: active ? "enter" : "leave",
113
+ startClassName: startClassName
114
+ }, _ref => {
115
+ let {
116
+ animationClassName,
117
+ animationEventsNeedBind
118
+ } = _ref;
119
+ return /*#__PURE__*/React.createElement("div", Object.assign({
120
+ className: "".concat(cssClasses.TABS_PANE_MOTION_OVERLAY, " ").concat(animationClassName),
121
+ "x-semi-prop": "children"
122
+ }, animationEventsNeedBind), shouldRender ? children : null);
123
+ }));
122
124
  }
123
125
 
124
126
  }
@@ -4,11 +4,13 @@ import TabsFoundation, { TabsAdapter } from '@douyinfe/semi-foundation/lib/es/ta
4
4
  import BaseComponent from '../_base/baseComponent';
5
5
  import '@douyinfe/semi-foundation/lib/es/tabs/tabs.css';
6
6
  import TabPane from './TabPane';
7
- import { TabsProps, PlainTab } from './interface';
7
+ import { PlainTab, TabsProps } from './interface';
8
8
  export * from './interface';
9
9
  export interface TabsState {
10
10
  activeKey: string;
11
11
  panes: Array<PlainTab>;
12
+ prevActiveKey: string | null;
13
+ forceDisableMotion: boolean;
12
14
  }
13
15
  declare class Tabs extends BaseComponent<TabsProps, TabsState> {
14
16
  static TabPane: typeof TabPane;
@@ -29,7 +31,7 @@ declare class Tabs extends BaseComponent<TabsProps, TabsState> {
29
31
  tabBarExtraContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
30
32
  tabBarStyle: PropTypes.Requireable<object>;
31
33
  tabList: PropTypes.Requireable<any[]>;
32
- tabPaneMotion: PropTypes.Requireable<boolean | object>;
34
+ tabPaneMotion: PropTypes.Requireable<boolean>;
33
35
  tabPosition: PropTypes.Requireable<string>;
34
36
  type: PropTypes.Requireable<string>;
35
37
  onTabClose: PropTypes.Requireable<(...args: any[]) => any>;
@@ -42,7 +44,7 @@ declare class Tabs extends BaseComponent<TabsProps, TabsState> {
42
44
  constructor(props: TabsProps);
43
45
  get adapter(): TabsAdapter<TabsProps, TabsState>;
44
46
  static getDerivedStateFromProps(props: TabsProps, state: TabsState): Partial<TabsState>;
45
- componentDidUpdate(prevProps: TabsProps): void;
47
+ componentDidUpdate(prevProps: TabsProps, prevState: TabsState): void;
46
48
  setContentRef: RefCallback<HTMLDivElement>;
47
49
  onTabClick: (activeKey: string, event: MouseEvent<HTMLDivElement>) => void;
48
50
  rePosChildren: (children: ReactElement[], activeKey: string) => ReactElement[];
@@ -85,7 +85,9 @@ class Tabs extends BaseComponent {
85
85
  this.foundation = new TabsFoundation(this.adapter);
86
86
  this.state = {
87
87
  activeKey: this.foundation.getDefaultActiveKey(),
88
- panes: []
88
+ panes: [],
89
+ prevActiveKey: null,
90
+ forceDisableMotion: false
89
91
  };
90
92
  this.contentRef = /*#__PURE__*/createRef();
91
93
  this.contentHeight = 'auto';
@@ -218,13 +220,14 @@ class Tabs extends BaseComponent {
218
220
  const states = {};
219
221
 
220
222
  if (!isNullOrUndefined(props.activeKey) && props.activeKey !== state.activeKey) {
223
+ state.prevActiveKey = state.activeKey;
221
224
  states.activeKey = props.activeKey;
222
225
  }
223
226
 
224
227
  return states;
225
228
  }
226
229
 
227
- componentDidUpdate(prevProps) {
230
+ componentDidUpdate(prevProps, prevState) {
228
231
  // Panes state acts on tab bar, no need to compare TabPane children
229
232
  const prevChildrenProps = React.Children.toArray(prevProps.children).map(child => _pick( /*#__PURE__*/isValidElement(child) ? child.props : null, panePickKeys));
230
233
  const nowChildrenProps = React.Children.toArray(this.props.children).map(child => _pick( /*#__PURE__*/isValidElement(child) ? child.props : null, panePickKeys));
@@ -232,6 +235,23 @@ class Tabs extends BaseComponent {
232
235
 
233
236
  if (!_isEqual(this.props.tabList, prevProps.tabList)) {
234
237
  this.foundation.handleTabListChange();
238
+ }
239
+
240
+ if (prevState.activeKey !== this.state.activeKey && prevState.activeKey !== this.state.prevActiveKey) {
241
+ this.setState({
242
+ prevActiveKey: prevState.activeKey
243
+ });
244
+ }
245
+
246
+ if (prevProps.activeKey !== this.props.activeKey) {
247
+ const newAddedPanelItemKey = (() => {
248
+ const prevItemKeys = new Set(prevChildrenProps.map(p => p.itemKey));
249
+ return nowChildrenProps.map(p => p.itemKey).filter(itemKey => !prevItemKeys.has(itemKey));
250
+ })();
251
+
252
+ this.setState({
253
+ forceDisableMotion: newAddedPanelItemKey.includes(this.props.activeKey)
254
+ });
235
255
  } // children变化,tabList方式使用时,啥也不用做
236
256
  // children变化,非tabList方式使用,需要重新取activeKey。TabPane可能是异步更新的,若不重新取,未设activeKey时,第一个不会自动激活
237
257
  // children changed: do nothing in tabList case
@@ -301,7 +321,9 @@ class Tabs extends BaseComponent {
301
321
  lazyRender,
302
322
  panes,
303
323
  tabPaneMotion,
304
- tabPosition
324
+ tabPosition,
325
+ prevActiveKey: this.state.prevActiveKey,
326
+ forceDisableMotion: this.state.forceDisableMotion
305
327
  }
306
328
  }, /*#__PURE__*/React.createElement("div", {
307
329
  ref: this.setContentRef,
@@ -330,7 +352,7 @@ Tabs.propTypes = {
330
352
  tabBarExtraContent: PropTypes.node,
331
353
  tabBarStyle: PropTypes.object,
332
354
  tabList: PropTypes.array,
333
- tabPaneMotion: PropTypes.oneOfType([PropTypes.bool, PropTypes.object, PropTypes.func]),
355
+ tabPaneMotion: PropTypes.bool,
334
356
  tabPosition: PropTypes.oneOf(strings.POSITION_MAP),
335
357
  type: PropTypes.oneOf(strings.TYPE_MAP),
336
358
  onTabClose: PropTypes.func,
@@ -78,4 +78,6 @@ export interface TabContextValue {
78
78
  panes?: Array<PlainTab>;
79
79
  tabPaneMotion?: boolean;
80
80
  tabPosition?: TabPosition;
81
+ prevActiveKey?: string | null;
82
+ forceDisableMotion?: boolean;
81
83
  }
@@ -9,6 +9,7 @@ export default class TagGroup<T> extends PureComponent<TagGroupProps<T>> {
9
9
  size: string;
10
10
  avatarShape: string;
11
11
  onTagClose: () => any;
12
+ onPlusNMouseEnter: () => any;
12
13
  };
13
14
  static propTypes: {
14
15
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -12,7 +12,8 @@ export default class TagGroup extends PureComponent {
12
12
  const {
13
13
  size,
14
14
  showPopover,
15
- popoverProps
15
+ popoverProps,
16
+ onPlusNMouseEnter
16
17
  } = this.props;
17
18
  let nTag = /*#__PURE__*/React.createElement(Tag, {
18
19
  closable: false,
@@ -21,7 +22,8 @@ export default class TagGroup extends PureComponent {
21
22
  style: {
22
23
  backgroundColor: 'transparent'
23
24
  },
24
- key: "_+n"
25
+ key: "_+n",
26
+ onMouseEnter: onPlusNMouseEnter
25
27
  }, "+", n);
26
28
 
27
29
  if (showPopover) {
@@ -133,7 +135,8 @@ TagGroup.defaultProps = {
133
135
  className: '',
134
136
  size: tagSize[0],
135
137
  avatarShape: 'square',
136
- onTagClose: () => undefined
138
+ onTagClose: () => undefined,
139
+ onPlusNMouseEnter: () => undefined
137
140
  };
138
141
  TagGroup.propTypes = {
139
142
  children: PropTypes.node,
@@ -10,7 +10,7 @@ export default class Tag extends Component<TagProps, TagState> {
10
10
  static defaultProps: TagProps;
11
11
  static propTypes: {
12
12
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
13
- tagKey: PropTypes.Requireable<string | number>;
13
+ tagKey: PropTypes.Requireable<NonNullable<string | number>>;
14
14
  size: PropTypes.Requireable<string>;
15
15
  color: PropTypes.Requireable<string>;
16
16
  type: PropTypes.Requireable<string>;