@douyinfe/semi-ui 2.2.2 → 2.4.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/_base/_story/a11y.jsx +6 -6
  2. package/_base/_story/a11y.scss +0 -1
  3. package/_base/_story/index.scss +2 -5
  4. package/_utils/hooks/usePrevFocus.ts +16 -0
  5. package/_utils/index.ts +4 -0
  6. package/anchor/_story/anchor.stories.js +1 -1
  7. package/anchor/index.tsx +5 -2
  8. package/anchor/link.tsx +29 -4
  9. package/autoComplete/index.tsx +28 -1
  10. package/avatar/_story/avatar.stories.js +4 -4
  11. package/avatar/index.tsx +6 -4
  12. package/banner/index.tsx +2 -1
  13. package/breadcrumb/_story/breadcrumb.stories.js +22 -8
  14. package/breadcrumb/index.tsx +8 -1
  15. package/breadcrumb/item.tsx +1 -1
  16. package/button/Button.tsx +4 -0
  17. package/button/__test__/button.test.js +1 -1
  18. package/button/_story/button.stories.js +10 -10
  19. package/button/buttonGroup.tsx +4 -2
  20. package/button/splitButtonGroup.tsx +5 -2
  21. package/card/_story/card.stories.js +8 -1
  22. package/card/_story/card.stories.tsx +3 -0
  23. package/card/index.tsx +5 -2
  24. package/cascader/index.tsx +33 -5
  25. package/checkbox/_story/checkbox.stories.js +19 -12
  26. package/checkbox/checkbox.tsx +40 -5
  27. package/checkbox/checkboxGroup.tsx +30 -5
  28. package/checkbox/checkboxInner.tsx +25 -2
  29. package/collapse/index.tsx +1 -1
  30. package/collapse/item.tsx +12 -7
  31. package/collapsible/index.tsx +4 -2
  32. package/configProvider/_story/configProvider.stories.tsx +27 -0
  33. package/datePicker/datePicker.tsx +19 -0
  34. package/dist/css/semi.css +23 -12
  35. package/dist/css/semi.min.css +1 -1
  36. package/dist/umd/semi-ui.js +2502 -1249
  37. package/dist/umd/semi-ui.js.map +1 -1
  38. package/dist/umd/semi-ui.min.js +1 -1
  39. package/dist/umd/semi-ui.min.js.map +1 -1
  40. package/dropdown/dropdownItem.tsx +1 -1
  41. package/dropdown/dropdownMenu.tsx +1 -1
  42. package/dropdown/index.tsx +11 -3
  43. package/empty/index.tsx +4 -4
  44. package/form/_story/FormApi/formApiDemo.jsx +3 -2
  45. package/form/_story/Validate/validateDemo.jsx +1 -1
  46. package/form/_story/demo.jsx +12 -3
  47. package/form/_story/form.stories.js +0 -7
  48. package/form/baseForm.tsx +2 -0
  49. package/form/errorMessage.tsx +13 -2
  50. package/form/hoc/withField.tsx +37 -8
  51. package/form/index.tsx +0 -2
  52. package/form/interface.ts +2 -0
  53. package/form/label.tsx +4 -2
  54. package/input/index.tsx +49 -4
  55. package/input/inputGroup.tsx +9 -4
  56. package/input/textarea.tsx +30 -9
  57. package/inputNumber/__test__/inputNumber.test.js +36 -8
  58. package/inputNumber/index.tsx +30 -2
  59. package/layout/Sider.tsx +6 -2
  60. package/layout/index.tsx +4 -3
  61. package/lib/cjs/_utils/hooks/usePrevFocus.d.ts +2 -0
  62. package/lib/cjs/_utils/hooks/usePrevFocus.js +30 -0
  63. package/lib/cjs/_utils/index.d.ts +1 -0
  64. package/lib/cjs/_utils/index.js +6 -1
  65. package/lib/cjs/anchor/index.d.ts +2 -0
  66. package/lib/cjs/anchor/index.js +6 -1
  67. package/lib/cjs/anchor/link.d.ts +4 -1
  68. package/lib/cjs/anchor/link.js +39 -5
  69. package/lib/cjs/autoComplete/index.d.ts +17 -0
  70. package/lib/cjs/autoComplete/index.js +21 -2
  71. package/lib/cjs/avatar/index.d.ts +4 -3
  72. package/lib/cjs/avatar/index.js +15 -11
  73. package/lib/cjs/banner/index.js +4 -2
  74. package/lib/cjs/breadcrumb/index.d.ts +3 -0
  75. package/lib/cjs/breadcrumb/index.js +10 -4
  76. package/lib/cjs/breadcrumb/item.js +2 -2
  77. package/lib/cjs/button/Button.d.ts +2 -0
  78. package/lib/cjs/button/Button.js +4 -2
  79. package/lib/cjs/button/buttonGroup.d.ts +3 -0
  80. package/lib/cjs/button/buttonGroup.js +8 -4
  81. package/lib/cjs/button/index.d.ts +1 -0
  82. package/lib/cjs/button/splitButtonGroup.d.ts +3 -0
  83. package/lib/cjs/button/splitButtonGroup.js +5 -2
  84. package/lib/cjs/card/index.d.ts +3 -0
  85. package/lib/cjs/card/index.js +3 -1
  86. package/lib/cjs/cascader/index.d.ts +14 -0
  87. package/lib/cjs/cascader/index.js +35 -7
  88. package/lib/cjs/checkbox/checkbox.d.ts +21 -1
  89. package/lib/cjs/checkbox/checkbox.js +51 -17
  90. package/lib/cjs/checkbox/checkboxGroup.d.ts +13 -1
  91. package/lib/cjs/checkbox/checkboxGroup.js +16 -3
  92. package/lib/cjs/checkbox/checkboxInner.d.ts +15 -0
  93. package/lib/cjs/checkbox/checkboxInner.js +20 -3
  94. package/lib/cjs/collapse/item.d.ts +2 -1
  95. package/lib/cjs/collapse/item.js +12 -2
  96. package/lib/cjs/collapsible/index.d.ts +1 -0
  97. package/lib/cjs/collapsible/index.js +4 -2
  98. package/lib/cjs/datePicker/datePicker.d.ts +12 -0
  99. package/lib/cjs/datePicker/datePicker.js +14 -1
  100. package/lib/cjs/dropdown/dropdownItem.js +3 -1
  101. package/lib/cjs/dropdown/dropdownMenu.js +4 -1
  102. package/lib/cjs/dropdown/index.d.ts +10 -3
  103. package/lib/cjs/form/baseForm.d.ts +9 -0
  104. package/lib/cjs/form/baseForm.js +3 -1
  105. package/lib/cjs/form/errorMessage.d.ts +4 -0
  106. package/lib/cjs/form/errorMessage.js +21 -3
  107. package/lib/cjs/form/field.d.ts +7 -0
  108. package/lib/cjs/form/hoc/withField.js +49 -16
  109. package/lib/cjs/form/index.d.ts +0 -1
  110. package/lib/cjs/form/interface.d.ts +2 -0
  111. package/lib/cjs/form/label.d.ts +2 -0
  112. package/lib/cjs/form/label.js +5 -2
  113. package/lib/cjs/input/index.d.ts +16 -0
  114. package/lib/cjs/input/index.js +51 -15
  115. package/lib/cjs/input/inputGroup.d.ts +2 -1
  116. package/lib/cjs/input/inputGroup.js +11 -1
  117. package/lib/cjs/input/textarea.js +16 -3
  118. package/lib/cjs/inputNumber/index.d.ts +8 -0
  119. package/lib/cjs/inputNumber/index.js +35 -4
  120. package/lib/cjs/layout/Sider.d.ts +4 -0
  121. package/lib/cjs/layout/Sider.js +4 -1
  122. package/lib/cjs/layout/index.js +2 -0
  123. package/lib/cjs/list/index.d.ts +4 -4
  124. package/lib/cjs/list/item.js +0 -1
  125. package/lib/cjs/modal/Modal.js +2 -0
  126. package/lib/cjs/modal/ModalContent.d.ts +3 -1
  127. package/lib/cjs/modal/ModalContent.js +47 -5
  128. package/lib/cjs/navigation/Item.d.ts +4 -2
  129. package/lib/cjs/navigation/Item.js +25 -5
  130. package/lib/cjs/navigation/SubNav.d.ts +4 -2
  131. package/lib/cjs/navigation/SubNav.js +8 -1
  132. package/lib/cjs/navigation/index.js +2 -0
  133. package/lib/cjs/notification/notice.d.ts +1 -1
  134. package/lib/cjs/notification/notice.js +32 -22
  135. package/lib/cjs/pagination/index.js +16 -6
  136. package/lib/cjs/popover/index.js +7 -3
  137. package/lib/cjs/progress/index.d.ts +8 -0
  138. package/lib/cjs/progress/index.js +42 -9
  139. package/lib/cjs/radio/radio.d.ts +6 -1
  140. package/lib/cjs/radio/radio.js +17 -5
  141. package/lib/cjs/radio/radioGroup.d.ts +16 -1
  142. package/lib/cjs/radio/radioGroup.js +18 -3
  143. package/lib/cjs/radio/radioInner.d.ts +6 -1
  144. package/lib/cjs/radio/radioInner.js +11 -3
  145. package/lib/cjs/rating/index.d.ts +14 -0
  146. package/lib/cjs/rating/index.js +14 -3
  147. package/lib/cjs/rating/item.d.ts +2 -0
  148. package/lib/cjs/rating/item.js +6 -1
  149. package/lib/cjs/select/index.d.ts +16 -0
  150. package/lib/cjs/select/index.js +65 -19
  151. package/lib/cjs/select/option.js +28 -22
  152. package/lib/cjs/sideSheet/SideSheetContent.d.ts +1 -0
  153. package/lib/cjs/sideSheet/SideSheetContent.js +4 -1
  154. package/lib/cjs/sideSheet/index.d.ts +1 -0
  155. package/lib/cjs/sideSheet/index.js +2 -1
  156. package/lib/cjs/slider/index.d.ts +2 -1
  157. package/lib/cjs/slider/index.js +64 -17
  158. package/lib/cjs/spin/icon.js +3 -4
  159. package/lib/cjs/steps/basicStep.d.ts +3 -0
  160. package/lib/cjs/steps/basicStep.js +23 -25
  161. package/lib/cjs/steps/basicSteps.d.ts +1 -0
  162. package/lib/cjs/steps/basicSteps.js +2 -1
  163. package/lib/cjs/steps/fillStep.d.ts +3 -0
  164. package/lib/cjs/steps/fillStep.js +19 -4
  165. package/lib/cjs/steps/fillSteps.d.ts +1 -0
  166. package/lib/cjs/steps/fillSteps.js +2 -1
  167. package/lib/cjs/steps/navStep.d.ts +3 -0
  168. package/lib/cjs/steps/navStep.js +22 -25
  169. package/lib/cjs/steps/navSteps.d.ts +1 -0
  170. package/lib/cjs/steps/navSteps.js +2 -1
  171. package/lib/cjs/switch/index.d.ts +12 -0
  172. package/lib/cjs/switch/index.js +19 -4
  173. package/lib/cjs/table/Body/BaseRow.js +35 -3
  174. package/lib/cjs/table/Body/index.js +9 -1
  175. package/lib/cjs/table/ColumnFilter.js +4 -0
  176. package/lib/cjs/table/ColumnSelection.d.ts +3 -0
  177. package/lib/cjs/table/ColumnSelection.js +6 -2
  178. package/lib/cjs/table/ColumnSorter.js +19 -3
  179. package/lib/cjs/table/CustomExpandIcon.js +7 -1
  180. package/lib/cjs/table/Table.d.ts +2 -0
  181. package/lib/cjs/table/Table.js +35 -15
  182. package/lib/cjs/table/TableCell.d.ts +2 -0
  183. package/lib/cjs/table/TableCell.js +6 -2
  184. package/lib/cjs/table/TableHeaderRow.js +8 -2
  185. package/lib/cjs/tabs/TabBar.js +11 -3
  186. package/lib/cjs/tabs/TabPane.js +3 -1
  187. package/lib/cjs/tabs/index.js +0 -1
  188. package/lib/cjs/tagInput/index.d.ts +4 -1
  189. package/lib/cjs/tagInput/index.js +29 -3
  190. package/lib/cjs/timePicker/TimePicker.d.ts +14 -0
  191. package/lib/cjs/timePicker/TimePicker.js +11 -4
  192. package/lib/cjs/timePicker/index.d.ts +7 -0
  193. package/lib/cjs/timeline/index.d.ts +1 -1
  194. package/lib/cjs/timeline/index.js +1 -0
  195. package/lib/cjs/timeline/item.js +4 -2
  196. package/lib/cjs/toast/toast.js +2 -0
  197. package/lib/cjs/tooltip/TriangleArrow.js +1 -0
  198. package/lib/cjs/tooltip/TriangleArrowVertical.js +1 -0
  199. package/lib/cjs/tooltip/index.d.ts +16 -12
  200. package/lib/cjs/tooltip/index.js +55 -39
  201. package/lib/cjs/transfer/index.js +32 -14
  202. package/lib/cjs/tree/index.d.ts +1 -0
  203. package/lib/cjs/tree/index.js +15 -6
  204. package/lib/cjs/tree/treeNode.d.ts +12 -4
  205. package/lib/cjs/tree/treeNode.js +54 -5
  206. package/lib/cjs/treeSelect/index.d.ts +16 -0
  207. package/lib/cjs/treeSelect/index.js +60 -12
  208. package/lib/cjs/typography/base.js +18 -7
  209. package/lib/cjs/typography/copyable.js +6 -1
  210. package/lib/cjs/upload/fileCard.js +26 -7
  211. package/lib/cjs/upload/index.js +19 -4
  212. package/lib/es/_utils/hooks/usePrevFocus.d.ts +2 -0
  213. package/lib/es/_utils/hooks/usePrevFocus.js +15 -0
  214. package/lib/es/_utils/index.d.ts +1 -0
  215. package/lib/es/_utils/index.js +4 -1
  216. package/lib/es/anchor/index.d.ts +2 -0
  217. package/lib/es/anchor/index.js +6 -1
  218. package/lib/es/anchor/link.d.ts +4 -1
  219. package/lib/es/anchor/link.js +38 -5
  220. package/lib/es/autoComplete/index.d.ts +17 -0
  221. package/lib/es/autoComplete/index.js +21 -2
  222. package/lib/es/avatar/index.d.ts +4 -3
  223. package/lib/es/avatar/index.js +15 -11
  224. package/lib/es/banner/index.js +4 -2
  225. package/lib/es/breadcrumb/index.d.ts +3 -0
  226. package/lib/es/breadcrumb/index.js +10 -4
  227. package/lib/es/breadcrumb/item.js +2 -2
  228. package/lib/es/button/Button.d.ts +2 -0
  229. package/lib/es/button/Button.js +4 -2
  230. package/lib/es/button/buttonGroup.d.ts +3 -0
  231. package/lib/es/button/buttonGroup.js +8 -4
  232. package/lib/es/button/index.d.ts +1 -0
  233. package/lib/es/button/splitButtonGroup.d.ts +3 -0
  234. package/lib/es/button/splitButtonGroup.js +5 -2
  235. package/lib/es/card/index.d.ts +3 -0
  236. package/lib/es/card/index.js +3 -1
  237. package/lib/es/cascader/index.d.ts +14 -0
  238. package/lib/es/cascader/index.js +35 -7
  239. package/lib/es/checkbox/checkbox.d.ts +21 -1
  240. package/lib/es/checkbox/checkbox.js +50 -17
  241. package/lib/es/checkbox/checkboxGroup.d.ts +13 -1
  242. package/lib/es/checkbox/checkboxGroup.js +18 -5
  243. package/lib/es/checkbox/checkboxInner.d.ts +15 -0
  244. package/lib/es/checkbox/checkboxInner.js +20 -3
  245. package/lib/es/collapse/item.d.ts +2 -1
  246. package/lib/es/collapse/item.js +11 -2
  247. package/lib/es/collapsible/index.d.ts +1 -0
  248. package/lib/es/collapsible/index.js +4 -2
  249. package/lib/es/datePicker/datePicker.d.ts +12 -0
  250. package/lib/es/datePicker/datePicker.js +14 -1
  251. package/lib/es/dropdown/dropdownItem.js +3 -1
  252. package/lib/es/dropdown/dropdownMenu.js +4 -1
  253. package/lib/es/dropdown/index.d.ts +10 -3
  254. package/lib/es/form/baseForm.d.ts +9 -0
  255. package/lib/es/form/baseForm.js +3 -1
  256. package/lib/es/form/errorMessage.d.ts +4 -0
  257. package/lib/es/form/errorMessage.js +21 -3
  258. package/lib/es/form/field.d.ts +7 -0
  259. package/lib/es/form/hoc/withField.js +48 -15
  260. package/lib/es/form/index.d.ts +0 -1
  261. package/lib/es/form/index.js +0 -1
  262. package/lib/es/form/interface.d.ts +2 -0
  263. package/lib/es/form/label.d.ts +2 -0
  264. package/lib/es/form/label.js +5 -2
  265. package/lib/es/input/index.d.ts +16 -0
  266. package/lib/es/input/index.js +51 -15
  267. package/lib/es/input/inputGroup.d.ts +2 -1
  268. package/lib/es/input/inputGroup.js +11 -1
  269. package/lib/es/input/textarea.js +16 -3
  270. package/lib/es/inputNumber/index.d.ts +8 -0
  271. package/lib/es/inputNumber/index.js +36 -4
  272. package/lib/es/layout/Sider.d.ts +4 -0
  273. package/lib/es/layout/Sider.js +4 -1
  274. package/lib/es/layout/index.js +2 -0
  275. package/lib/es/list/index.d.ts +4 -4
  276. package/lib/es/list/item.js +0 -1
  277. package/lib/es/modal/Modal.js +2 -0
  278. package/lib/es/modal/ModalContent.d.ts +3 -1
  279. package/lib/es/modal/ModalContent.js +46 -5
  280. package/lib/es/navigation/Item.d.ts +4 -2
  281. package/lib/es/navigation/Item.js +25 -5
  282. package/lib/es/navigation/SubNav.d.ts +4 -2
  283. package/lib/es/navigation/SubNav.js +8 -1
  284. package/lib/es/navigation/index.js +2 -0
  285. package/lib/es/notification/notice.d.ts +1 -1
  286. package/lib/es/notification/notice.js +33 -24
  287. package/lib/es/pagination/index.js +16 -6
  288. package/lib/es/popover/index.js +7 -3
  289. package/lib/es/progress/index.d.ts +8 -0
  290. package/lib/es/progress/index.js +42 -9
  291. package/lib/es/radio/radio.d.ts +6 -1
  292. package/lib/es/radio/radio.js +16 -5
  293. package/lib/es/radio/radioGroup.d.ts +16 -1
  294. package/lib/es/radio/radioGroup.js +18 -3
  295. package/lib/es/radio/radioInner.d.ts +6 -1
  296. package/lib/es/radio/radioInner.js +11 -3
  297. package/lib/es/rating/index.d.ts +14 -0
  298. package/lib/es/rating/index.js +14 -3
  299. package/lib/es/rating/item.d.ts +2 -0
  300. package/lib/es/rating/item.js +6 -1
  301. package/lib/es/select/index.d.ts +16 -0
  302. package/lib/es/select/index.js +63 -17
  303. package/lib/es/select/option.js +28 -22
  304. package/lib/es/sideSheet/SideSheetContent.d.ts +1 -0
  305. package/lib/es/sideSheet/SideSheetContent.js +4 -1
  306. package/lib/es/sideSheet/index.d.ts +1 -0
  307. package/lib/es/sideSheet/index.js +2 -1
  308. package/lib/es/slider/index.d.ts +2 -1
  309. package/lib/es/slider/index.js +63 -16
  310. package/lib/es/spin/icon.js +3 -4
  311. package/lib/es/steps/basicStep.d.ts +3 -0
  312. package/lib/es/steps/basicStep.js +23 -23
  313. package/lib/es/steps/basicSteps.d.ts +1 -0
  314. package/lib/es/steps/basicSteps.js +2 -1
  315. package/lib/es/steps/fillStep.d.ts +3 -0
  316. package/lib/es/steps/fillStep.js +19 -4
  317. package/lib/es/steps/fillSteps.d.ts +1 -0
  318. package/lib/es/steps/fillSteps.js +2 -1
  319. package/lib/es/steps/navStep.d.ts +3 -0
  320. package/lib/es/steps/navStep.js +22 -23
  321. package/lib/es/steps/navSteps.d.ts +1 -0
  322. package/lib/es/steps/navSteps.js +2 -1
  323. package/lib/es/switch/index.d.ts +12 -0
  324. package/lib/es/switch/index.js +19 -4
  325. package/lib/es/table/Body/BaseRow.js +35 -3
  326. package/lib/es/table/Body/index.js +9 -2
  327. package/lib/es/table/ColumnFilter.js +4 -0
  328. package/lib/es/table/ColumnSelection.d.ts +3 -0
  329. package/lib/es/table/ColumnSelection.js +6 -2
  330. package/lib/es/table/ColumnSorter.js +17 -3
  331. package/lib/es/table/CustomExpandIcon.js +6 -1
  332. package/lib/es/table/Table.d.ts +2 -0
  333. package/lib/es/table/Table.js +35 -15
  334. package/lib/es/table/TableCell.d.ts +2 -0
  335. package/lib/es/table/TableCell.js +6 -2
  336. package/lib/es/table/TableHeaderRow.js +8 -2
  337. package/lib/es/tabs/TabBar.js +11 -3
  338. package/lib/es/tabs/TabPane.js +3 -1
  339. package/lib/es/tabs/index.js +0 -1
  340. package/lib/es/tagInput/index.d.ts +4 -1
  341. package/lib/es/tagInput/index.js +29 -3
  342. package/lib/es/timePicker/TimePicker.d.ts +14 -0
  343. package/lib/es/timePicker/TimePicker.js +11 -4
  344. package/lib/es/timePicker/index.d.ts +7 -0
  345. package/lib/es/timeline/index.d.ts +1 -1
  346. package/lib/es/timeline/index.js +1 -0
  347. package/lib/es/timeline/item.js +4 -2
  348. package/lib/es/toast/toast.js +2 -0
  349. package/lib/es/tooltip/TriangleArrow.js +1 -0
  350. package/lib/es/tooltip/TriangleArrowVertical.js +1 -0
  351. package/lib/es/tooltip/index.d.ts +16 -12
  352. package/lib/es/tooltip/index.js +53 -39
  353. package/lib/es/transfer/index.js +32 -14
  354. package/lib/es/tree/index.d.ts +1 -0
  355. package/lib/es/tree/index.js +15 -6
  356. package/lib/es/tree/treeNode.d.ts +12 -4
  357. package/lib/es/tree/treeNode.js +53 -5
  358. package/lib/es/treeSelect/index.d.ts +16 -0
  359. package/lib/es/treeSelect/index.js +57 -10
  360. package/lib/es/typography/base.js +17 -7
  361. package/lib/es/typography/copyable.js +5 -1
  362. package/lib/es/upload/fileCard.js +26 -7
  363. package/lib/es/upload/index.js +19 -4
  364. package/list/index.tsx +5 -5
  365. package/list/item.tsx +0 -1
  366. package/modal/Modal.tsx +2 -0
  367. package/modal/ModalContent.tsx +35 -5
  368. package/navigation/Item.tsx +15 -0
  369. package/navigation/SubNav.tsx +13 -1
  370. package/navigation/index.tsx +1 -1
  371. package/notification/notice.tsx +19 -14
  372. package/package.json +8 -8
  373. package/pagination/index.tsx +9 -5
  374. package/popover/index.tsx +5 -0
  375. package/progress/_story/progress.stories.js +18 -18
  376. package/progress/index.tsx +58 -20
  377. package/radio/radio.tsx +12 -2
  378. package/radio/radioGroup.tsx +29 -3
  379. package/radio/radioInner.tsx +10 -1
  380. package/rating/index.tsx +19 -2
  381. package/rating/item.tsx +6 -0
  382. package/select/__test__/select.test.js +45 -0
  383. package/select/_story/select.stories.js +29 -0
  384. package/select/index.tsx +57 -4
  385. package/select/option.tsx +3 -0
  386. package/sideSheet/SideSheetContent.tsx +6 -4
  387. package/sideSheet/index.tsx +3 -2
  388. package/slider/__test__/slider.test.js +9 -0
  389. package/slider/_story/slider.stories.js +1 -1
  390. package/slider/index.tsx +44 -7
  391. package/spin/icon.tsx +4 -3
  392. package/steps/basicStep.tsx +15 -4
  393. package/steps/basicSteps.tsx +3 -2
  394. package/steps/fillStep.tsx +27 -12
  395. package/steps/fillSteps.tsx +2 -0
  396. package/steps/navStep.tsx +15 -4
  397. package/steps/navSteps.tsx +3 -2
  398. package/switch/_story/switch.stories.js +20 -19
  399. package/switch/_story/switch.stories.tsx +13 -13
  400. package/switch/index.tsx +23 -5
  401. package/table/Body/BaseRow.tsx +25 -1
  402. package/table/Body/index.tsx +7 -2
  403. package/table/ColumnFilter.tsx +7 -1
  404. package/table/ColumnSelection.tsx +4 -1
  405. package/table/ColumnSorter.tsx +18 -1
  406. package/table/CustomExpandIcon.tsx +5 -0
  407. package/table/Table.tsx +30 -14
  408. package/table/TableCell.tsx +11 -1
  409. package/table/TableHeaderRow.tsx +16 -2
  410. package/table/__test__/table.test.js +46 -0
  411. package/table/_story/table.stories.js +2 -0
  412. package/table/_story/v2/FixedColumnsChange/index.jsx +104 -0
  413. package/table/_story/v2/FixedZIndex/index.jsx +87 -0
  414. package/tabs/TabBar.tsx +8 -5
  415. package/tabs/TabPane.tsx +3 -1
  416. package/tabs/index.tsx +0 -1
  417. package/tagInput/__test__/tagInput.test.js +46 -0
  418. package/tagInput/_story/tagInput.stories.js +2 -2
  419. package/tagInput/index.tsx +31 -8
  420. package/timePicker/TimePicker.tsx +17 -2
  421. package/timePicker/__test__/timePicker.test.js +34 -3
  422. package/timePicker/_story/timepicker.stories.js +18 -0
  423. package/timeline/_story/timeline.stories.js +1 -1
  424. package/timeline/index.tsx +2 -2
  425. package/timeline/item.tsx +2 -1
  426. package/toast/toast.tsx +2 -0
  427. package/tooltip/TriangleArrow.tsx +1 -1
  428. package/tooltip/TriangleArrowVertical.tsx +1 -1
  429. package/tooltip/_story/tooltip.stories.js +562 -514
  430. package/tooltip/index.tsx +51 -33
  431. package/transfer/index.tsx +29 -25
  432. package/tree/_story/tree.stories.js +3 -3
  433. package/tree/index.tsx +10 -2
  434. package/tree/treeNode.tsx +54 -11
  435. package/treeSelect/__test__/treeMultiple.test.js +5 -0
  436. package/treeSelect/_story/treeSelect.stories.js +12 -0
  437. package/treeSelect/index.tsx +58 -7
  438. package/typography/base.tsx +7 -1
  439. package/typography/copyable.tsx +10 -1
  440. package/upload/fileCard.tsx +14 -16
  441. package/upload/index.tsx +10 -6
@@ -19,7 +19,8 @@ const FillStep = props => {
19
19
  onClick,
20
20
  icon,
21
21
  onChange,
22
- stepNumber
22
+ stepNumber,
23
+ onKeyDown
23
24
  } = props;
24
25
 
25
26
  const renderIcon = () => {
@@ -81,17 +82,31 @@ const FillStep = props => {
81
82
  onChange();
82
83
  };
83
84
 
85
+ const handleKeyDown = e => {
86
+ if (e.key === 'Enter') {
87
+ if (_isFunction(onKeyDown)) {
88
+ onKeyDown(e);
89
+ }
90
+
91
+ onChange();
92
+ }
93
+ };
94
+
84
95
  return /*#__PURE__*/React.createElement("div", {
96
+ role: props["role"],
97
+ "aria-label": props["aria-label"],
98
+ "aria-current": "step",
99
+ tabIndex: 0,
85
100
  className: classnames({
86
- [className]: Boolean(className),
87
101
  [prefixCls]: true,
88
102
  [_concatInstanceProperty(_context = "".concat(prefixCls, "-")).call(_context, status)]: Boolean(status),
89
103
  ["".concat(prefixCls, "-clickable")]: onClick
90
- }),
104
+ }, className),
91
105
  style: style,
92
106
  onClick: e => {
93
107
  handleClick(e);
94
- }
108
+ },
109
+ onKeyDown: handleKeyDown
95
110
  }, renderIcon(), /*#__PURE__*/React.createElement("div", {
96
111
  className: "".concat(prefixCls, "-content")
97
112
  }, /*#__PURE__*/React.createElement("div", {
@@ -12,6 +12,7 @@ export interface FillStepsProps {
12
12
  style?: React.CSSProperties;
13
13
  children?: React.ReactNode;
14
14
  onChange?: (current: number) => void;
15
+ "aria-label"?: string;
15
16
  }
16
17
  declare const Steps: {
17
18
  (props: FillStepsProps): JSX.Element;
@@ -76,7 +76,8 @@ const Steps = props => {
76
76
  });
77
77
  return /*#__PURE__*/React.createElement("div", {
78
78
  className: wrapperCls,
79
- style: style
79
+ style: style,
80
+ "aria-label": props["aria-label"]
80
81
  }, /*#__PURE__*/React.createElement(Row, {
81
82
  type: "flex",
82
83
  justify: "start"
@@ -10,6 +10,9 @@ export interface NavStepProps {
10
10
  prefixCls?: string;
11
11
  onChange?: () => void;
12
12
  onClick?: React.MouseEventHandler<HTMLDivElement>;
13
+ onKeyDown?: React.KeyboardEventHandler<HTMLDivElement>;
14
+ "role"?: React.AriaRole;
15
+ "aria-label"?: React.AriaAttributes["aria-label"];
13
16
  }
14
17
  declare const NavStep: {
15
18
  (props: NavStepProps): JSX.Element;
@@ -1,19 +1,4 @@
1
1
  import _isFunction from "lodash/isFunction";
2
- import _indexOfInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/index-of";
3
- import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
4
- import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
5
-
6
- var __rest = this && this.__rest || function (s, e) {
7
- var t = {};
8
-
9
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && _indexOfInstanceProperty(e).call(e, p) < 0) t[p] = s[p];
10
-
11
- if (s != null && typeof _Object$getOwnPropertySymbols === "function") for (var i = 0, p = _Object$getOwnPropertySymbols(s); i < p.length; i++) {
12
- if (_indexOfInstanceProperty(e).call(e, p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
13
- }
14
- return t;
15
- };
16
-
17
2
  import React from 'react';
18
3
  import PropTypes from 'prop-types';
19
4
  import classnames from 'classnames';
@@ -30,13 +15,12 @@ const NavStep = props => {
30
15
  index,
31
16
  total,
32
17
  onClick,
18
+ onKeyDown,
33
19
  onChange
34
- } = props,
35
- restProps = __rest(props, ["prefixCls", "className", "title", "style", "active", "index", "total", "onClick", "onChange"]);
36
-
37
- const classString = classnames(prefixCls, className, {
20
+ } = props;
21
+ const classString = classnames(prefixCls, {
38
22
  ["".concat(prefixCls, "-active")]: active
39
- });
23
+ }, className);
40
24
 
41
25
  const handleClick = e => {
42
26
  if (_isFunction(onClick)) {
@@ -46,11 +30,26 @@ const NavStep = props => {
46
30
  onChange();
47
31
  };
48
32
 
49
- return /*#__PURE__*/React.createElement("div", _Object$assign({}, restProps, {
33
+ const handleKeyDown = e => {
34
+ if (e.key === 'Enter') {
35
+ if (_isFunction(onKeyDown)) {
36
+ onKeyDown(e);
37
+ }
38
+
39
+ onChange();
40
+ }
41
+ };
42
+
43
+ return /*#__PURE__*/React.createElement("div", {
44
+ role: props["role"],
45
+ "aria-label": props["aria-label"],
46
+ "aria-current": "step",
47
+ tabIndex: 0,
50
48
  className: classString,
51
49
  style: style,
52
- onClick: e => handleClick(e)
53
- }), /*#__PURE__*/React.createElement("div", {
50
+ onClick: e => handleClick(e),
51
+ onKeyDown: handleKeyDown
52
+ }, /*#__PURE__*/React.createElement("div", {
54
53
  className: "".concat(prefixCls, "-container")
55
54
  }, /*#__PURE__*/React.createElement("div", {
56
55
  className: "".concat(prefixCls, "-content")
@@ -10,6 +10,7 @@ export interface NavStepsProps {
10
10
  size?: Size;
11
11
  children?: React.ReactNode;
12
12
  onChange?: (current: number) => void;
13
+ "aria-label"?: string;
13
14
  }
14
15
  declare const Steps: {
15
16
  (props: NavStepsProps): JSX.Element;
@@ -49,12 +49,13 @@ const Steps = props => {
49
49
  });
50
50
 
51
51
  return content;
52
- }, [children, prefixCls, current, size]);
52
+ }, [children, prefixCls, current, size, initial, onChange]);
53
53
  const wrapperCls = cls(className, {
54
54
  ["".concat(prefixCls, "-nav")]: true,
55
55
  [_concatInstanceProperty(_context2 = "".concat(prefixCls, "-")).call(_context2, size)]: size !== 'default'
56
56
  });
57
57
  return /*#__PURE__*/React.createElement("div", {
58
+ "aria-label": props["aria-label"],
58
59
  className: wrapperCls,
59
60
  style: style
60
61
  }, inner);
@@ -4,6 +4,11 @@ import { SwitchAdapter } from '@douyinfe/semi-foundation/lib/es/switch/foundatio
4
4
  import BaseComponent from '../_base/baseComponent';
5
5
  import '@douyinfe/semi-foundation/lib/es/switch/switch.css';
6
6
  export interface SwitchProps {
7
+ 'aria-label'?: React.AriaAttributes['aria-label'];
8
+ 'aria-describedby'?: React.AriaAttributes['aria-describedby'];
9
+ 'aria-errormessage'?: React.AriaAttributes['aria-errormessage'];
10
+ 'aria-invalid'?: React.AriaAttributes['aria-invalid'];
11
+ 'aria-labelledby'?: React.AriaAttributes['aria-labelledby'];
7
12
  defaultChecked?: boolean;
8
13
  checked?: boolean;
9
14
  disabled?: boolean;
@@ -16,6 +21,7 @@ export interface SwitchProps {
16
21
  size?: 'large' | 'default' | 'small';
17
22
  checkedText?: React.ReactNode;
18
23
  uncheckedText?: React.ReactNode;
24
+ id?: string;
19
25
  }
20
26
  export interface SwitchState {
21
27
  nativeControlChecked: boolean;
@@ -23,6 +29,11 @@ export interface SwitchState {
23
29
  }
24
30
  declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
25
31
  static propTypes: {
32
+ 'aria-label': PropTypes.Requireable<string>;
33
+ 'aria-labelledby': PropTypes.Requireable<string>;
34
+ 'aria-invalid': PropTypes.Requireable<boolean>;
35
+ 'aria-errormessage': PropTypes.Requireable<string>;
36
+ 'aria-describedby': PropTypes.Requireable<string>;
26
37
  className: PropTypes.Requireable<string>;
27
38
  checked: PropTypes.Requireable<boolean>;
28
39
  checkedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
@@ -35,6 +46,7 @@ declare class Switch extends BaseComponent<SwitchProps, SwitchState> {
35
46
  style: PropTypes.Requireable<object>;
36
47
  size: PropTypes.Requireable<"default" | "small" | "large">;
37
48
  uncheckedText: PropTypes.Requireable<PropTypes.ReactNodeLike>;
49
+ id: PropTypes.Requireable<string>;
38
50
  };
39
51
  static defaultProps: Partial<SwitchProps>;
40
52
  private switchRef;
@@ -1,7 +1,7 @@
1
1
  import _noop from "lodash/noop";
2
2
  import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
3
3
 
4
- /* eslint-disable max-len */
4
+ /* eslint-disable max-len, jsx-a11y/role-supports-aria-props */
5
5
  import React from 'react';
6
6
  import cls from 'classnames';
7
7
  import PropTypes from 'prop-types';
@@ -71,7 +71,8 @@ class Switch extends BaseComponent {
71
71
  size,
72
72
  checkedText,
73
73
  uncheckedText,
74
- loading
74
+ loading,
75
+ id
75
76
  } = this.props;
76
77
  const wrapperCls = cls(className, {
77
78
  [cssClasses.PREFIX]: true,
@@ -99,13 +100,21 @@ class Switch extends BaseComponent {
99
100
  wrapperClassName: cssClasses.LOADING_SPIN,
100
101
  size: size === 'default' ? 'middle' : size
101
102
  }) : /*#__PURE__*/React.createElement("div", {
102
- className: cssClasses.KNOB
103
+ className: cssClasses.KNOB,
104
+ "aria-hidden": true
103
105
  }), showCheckedText ? /*#__PURE__*/React.createElement("div", {
104
106
  className: cssClasses.CHECKED_TEXT
105
107
  }, checkedText) : null, showUncheckedText ? /*#__PURE__*/React.createElement("div", {
106
108
  className: cssClasses.UNCHECKED_TEXT
107
109
  }, uncheckedText) : null, /*#__PURE__*/React.createElement("input", _Object$assign({}, switchProps, {
108
110
  ref: this.switchRef,
111
+ id: id,
112
+ "aria-checked": nativeControlChecked,
113
+ "aria-invalid": this.props['aria-invalid'],
114
+ "aria-errormessage": this.props['aria-errormessage'],
115
+ "aria-label": this.props['aria-label'],
116
+ "aria-labelledby": this.props['aria-labelledby'],
117
+ "aria-describedby": this.props["aria-describedby"],
109
118
  onChange: e => this.foundation.handleChange(e.target.checked, e)
110
119
  })));
111
120
  }
@@ -113,6 +122,11 @@ class Switch extends BaseComponent {
113
122
  }
114
123
 
115
124
  Switch.propTypes = {
125
+ 'aria-label': PropTypes.string,
126
+ 'aria-labelledby': PropTypes.string,
127
+ 'aria-invalid': PropTypes.bool,
128
+ 'aria-errormessage': PropTypes.string,
129
+ 'aria-describedby': PropTypes.string,
116
130
  className: PropTypes.string,
117
131
  checked: PropTypes.bool,
118
132
  checkedText: PropTypes.node,
@@ -124,7 +138,8 @@ Switch.propTypes = {
124
138
  onMouseLeave: PropTypes.func,
125
139
  style: PropTypes.object,
126
140
  size: PropTypes.oneOf(strings.SIZE_MAP),
127
- uncheckedText: PropTypes.node
141
+ uncheckedText: PropTypes.node,
142
+ id: PropTypes.string
128
143
  };
129
144
  Switch.defaultProps = {
130
145
  disabled: false,
@@ -182,6 +182,7 @@ export default class TableRow extends BaseComponent {
182
182
  if (isExpandedColumn(column) && !displayExpandedColumn) {
183
183
  cells.push( /*#__PURE__*/React.createElement(TableCell, {
184
184
  key: columnIndex,
185
+ colIndex: columnIndex,
185
186
  isSection: isSection
186
187
  }));
187
188
  } else if (!isScrollbarColumn(column)) {
@@ -191,7 +192,9 @@ export default class TableRow extends BaseComponent {
191
192
  diyProps.width = _get(cellWidths, columnIndex);
192
193
  }
193
194
 
194
- cells.push( /*#__PURE__*/React.createElement(TableCell, _Object$assign({}, expandableProps, diyProps, {
195
+ cells.push( /*#__PURE__*/React.createElement(TableCell, _Object$assign({
196
+ colIndex: columnIndex
197
+ }, expandableProps, diyProps, {
195
198
  hideExpandedColumn: hideExpandedColumn,
196
199
  indentSize: indentSize,
197
200
  isSection: isSection,
@@ -230,7 +233,11 @@ export default class TableRow extends BaseComponent {
230
233
  replaceClassName,
231
234
  record,
232
235
  hovered,
233
- expanded
236
+ expanded,
237
+ expandableRow,
238
+ level,
239
+ expandedRow,
240
+ isSection
234
241
  } = this.props;
235
242
  const BodyRow = components.body.row;
236
243
 
@@ -250,7 +257,32 @@ export default class TableRow extends BaseComponent {
250
257
  ["".concat(prefixCls, "-row-expanded")]: expanded,
251
258
  ["".concat(prefixCls, "-row-hovered")]: hovered
252
259
  }, customClassName);
253
- return /*#__PURE__*/React.createElement(BodyRow, _Object$assign({}, rowProps, {
260
+ const ariaProps = {};
261
+
262
+ if (typeof index === 'number') {
263
+ ariaProps['aria-rowindex'] = index + 1;
264
+ }
265
+
266
+ if (expandableRow) {
267
+ ariaProps['aria-expanded'] = expanded;
268
+ } // if row is expandedRow, set it's level to 2
269
+
270
+
271
+ if (expanded || expandedRow) {
272
+ ariaProps['aria-level'] = 2;
273
+ }
274
+
275
+ if (typeof level === 'number') {
276
+ ariaProps['aria-level'] = level + 1;
277
+ }
278
+
279
+ if (isSection) {
280
+ ariaProps['aria-level'] = 1;
281
+ }
282
+
283
+ return /*#__PURE__*/React.createElement(BodyRow, _Object$assign({
284
+ role: "row"
285
+ }, ariaProps, rowProps, {
254
286
  style: baseRowStyle,
255
287
  className: rowCls,
256
288
  ref: this._cacheNode,
@@ -1,3 +1,4 @@
1
+ import _isFunction from "lodash/isFunction";
1
2
  import _isNull from "lodash/isNull";
2
3
  import _pick from "lodash/pick";
3
4
  import _isEqual from "lodash/isEqual";
@@ -37,7 +38,7 @@ import React from 'react';
37
38
  import PropTypes from 'prop-types';
38
39
  import classnames from 'classnames';
39
40
  import { VariableSizeList as List } from 'react-window';
40
- import { arrayAdd, getRecordKey, isExpanded, isSelected, isDisabled, getRecord, genExpandedRowKey, getDefaultVirtualizedRowConfig } from '@douyinfe/semi-foundation/lib/es/table/utils';
41
+ import { arrayAdd, getRecordKey, isExpanded, isSelected, isDisabled, getRecord, genExpandedRowKey, getDefaultVirtualizedRowConfig, isTreeTable } from '@douyinfe/semi-foundation/lib/es/table/utils';
41
42
  import BodyFoundation from '@douyinfe/semi-foundation/lib/es/table/bodyFoundation';
42
43
  import { strings } from '@douyinfe/semi-foundation/lib/es/table/constants';
43
44
  import BaseComponent from '../../_base/baseComponent';
@@ -494,7 +495,8 @@ class Body extends BaseComponent {
494
495
  includeHeader,
495
496
  dataSource,
496
497
  onScroll,
497
- groups
498
+ groups,
499
+ expandedRowRender
498
500
  } = this.props;
499
501
 
500
502
  const x = _get(scroll, 'x');
@@ -538,6 +540,11 @@ class Body extends BaseComponent {
538
540
  onWheel: handleWheel,
539
541
  onScroll: handleBodyScroll
540
542
  }, /*#__PURE__*/React.createElement(Table, {
543
+ role: _isMap(groups) || _isFunction(expandedRowRender) || isTreeTable({
544
+ dataSource
545
+ }) ? 'treegrid' : 'grid',
546
+ "aria-rowcount": dataSource && dataSource.length,
547
+ "aria-colcount": columns && columns.length,
541
548
  style: tableStyle,
542
549
  className: classnames(prefixCls, {
543
550
  ["".concat(prefixCls, "-fixed")]: anyColumnFixed
@@ -154,6 +154,10 @@ export default function ColumnFilter() {
154
154
  iconElem = /*#__PURE__*/React.createElement("div", {
155
155
  className: finalCls
156
156
  }, /*#__PURE__*/React.createElement(IconFilter, {
157
+ role: "button",
158
+ "aria-label": "Filter data with this column",
159
+ "aria-haspopup": "listbox",
160
+ tabIndex: -1,
157
161
  size: "small"
158
162
  }));
159
163
  }
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import BaseComponent from '../_base/baseComponent';
2
3
  import PropTypes from 'prop-types';
3
4
  import { TableSelectionCellAdapter, TableSelectionCellEvent } from '@douyinfe/semi-foundation/lib/es/table/tableSelectionCellFoundation';
@@ -12,6 +13,7 @@ export interface TableSelectionCellProps {
12
13
  indeterminate?: boolean;
13
14
  prefixCls?: string;
14
15
  className?: string;
16
+ 'aria-label'?: React.AriaAttributes['aria-label'];
15
17
  }
16
18
  /**
17
19
  * render selection cell
@@ -27,6 +29,7 @@ export default class TableSelectionCell extends BaseComponent<TableSelectionCell
27
29
  indeterminate: PropTypes.Requireable<boolean>;
28
30
  prefixCls: PropTypes.Requireable<string>;
29
31
  className: PropTypes.Requireable<string>;
32
+ 'aria-label': PropTypes.Requireable<string>;
30
33
  };
31
34
  static defaultProps: {
32
35
  disabled: boolean;
@@ -41,6 +41,7 @@ export default class TableSelectionCell extends BaseComponent {
41
41
  prefixCls,
42
42
  className
43
43
  } = this.props;
44
+ const ariaLabel = this.props['aria-label'];
44
45
  let checkboxProps = {
45
46
  onChange: this.handleChange,
46
47
  disabled,
@@ -57,7 +58,9 @@ export default class TableSelectionCell extends BaseComponent {
57
58
  }, className);
58
59
  return /*#__PURE__*/React.createElement("span", {
59
60
  className: wrapCls
60
- }, /*#__PURE__*/React.createElement(Checkbox, _Object$assign({}, checkboxProps)));
61
+ }, /*#__PURE__*/React.createElement(Checkbox, _Object$assign({
62
+ "aria-label": ariaLabel
63
+ }, checkboxProps)));
61
64
  }
62
65
 
63
66
  }
@@ -70,7 +73,8 @@ TableSelectionCell.propTypes = {
70
73
  disabled: PropTypes.bool,
71
74
  indeterminate: PropTypes.bool,
72
75
  prefixCls: PropTypes.string,
73
- className: PropTypes.string
76
+ className: PropTypes.string,
77
+ 'aria-label': PropTypes.string
74
78
  };
75
79
  TableSelectionCell.defaultProps = {
76
80
  disabled: false,
@@ -1,9 +1,11 @@
1
1
  import _noop from "lodash/noop";
2
+ import _Object$assign from "@babel/runtime-corejs3/core-js-stable/object/assign";
2
3
  import React, { PureComponent } from 'react';
3
4
  import PropTypes from 'prop-types';
4
5
  import cls from 'classnames';
5
6
  import { IconCaretup, IconCaretdown } from '@douyinfe/semi-icons';
6
7
  import { cssClasses, strings } from '@douyinfe/semi-foundation/lib/es/table/constants';
8
+ import isEnterPress from '@douyinfe/semi-foundation/lib/es/utils/isEnterPress';
7
9
  export default class ColumnSorter extends PureComponent {
8
10
  render() {
9
11
  const {
@@ -19,11 +21,23 @@ export default class ColumnSorter extends PureComponent {
19
21
  const downCls = cls("".concat(prefixCls, "-column-sorter-down"), {
20
22
  on: sortOrder === strings.SORT_DIRECTIONS[1]
21
23
  });
22
- return /*#__PURE__*/React.createElement("div", {
24
+ const ariaProps = {
25
+ /**
26
+ * Set 'aria-sort' to aria-columnheader is difficult, so set 'aria-label' about sort info to sorter
27
+ * reference: https://developer.mozilla.org/en-US/docs/Web/API/Element/ariaSort
28
+ */
29
+ 'aria-label': "Current sort order is ".concat(sortOrder ? "".concat(sortOrder, "ing") : 'none'),
30
+ 'aria-roledescription': 'Sort data with this column'
31
+ };
32
+ return /*#__PURE__*/React.createElement("div", _Object$assign({
33
+ role: 'button'
34
+ }, ariaProps, {
35
+ tabIndex: -1,
23
36
  style: style,
24
37
  className: "".concat(prefixCls, "-column-sorter"),
25
- onClick: onClick
26
- }, /*#__PURE__*/React.createElement("span", {
38
+ onClick: onClick,
39
+ onKeyPress: e => isEnterPress(e) && onClick(e)
40
+ }), /*#__PURE__*/React.createElement("span", {
27
41
  className: "".concat(upCls)
28
42
  }, /*#__PURE__*/React.createElement(IconCaretup, {
29
43
  size: iconBtnSize
@@ -5,6 +5,7 @@ import React, { useCallback } from 'react';
5
5
  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
+ import isEnterPress from '@douyinfe/semi-foundation/lib/es/utils/isEnterPress';
8
9
  import Rotate from '../motions/Rotate';
9
10
  /**
10
11
  * render expand icon
@@ -51,10 +52,14 @@ export default function CustomExpandIcon(props) {
51
52
  }
52
53
 
53
54
  return /*#__PURE__*/React.createElement("span", {
55
+ role: "button",
56
+ "aria-label": "Expand this row",
57
+ tabIndex: -1,
54
58
  onClick: handleClick,
55
59
  onMouseEnter: onMouseEnter,
56
60
  onMouseLeave: onMouseLeave,
57
- className: "".concat(prefixCls, "-expand-icon")
61
+ className: "".concat(prefixCls, "-expand-icon"),
62
+ onKeyPress: e => isEnterPress(e) && handleClick(e)
58
63
  }, icon);
59
64
  }
60
65
  CustomExpandIcon.propTypes = {
@@ -31,6 +31,7 @@ export interface NormalTableState<RecordType extends Record<string, any> = Data>
31
31
  bodyHasScrollBar?: boolean;
32
32
  prePropRowSelection?: TableStateRowSelection<RecordType>;
33
33
  tableWidth?: number;
34
+ prePagination?: Pagination;
34
35
  }
35
36
  export declare type TableStateRowSelection<RecordType extends Record<string, any> = Data> = (RowSelectionProps<RecordType> & {
36
37
  selectedRowKeysSet?: Set<(string | number)>;
@@ -229,6 +230,7 @@ declare class Table<RecordType extends Record<string, any>> extends BaseComponen
229
230
  /**
230
231
  * render pagination
231
232
  * @param {object} pagination
233
+ * @param {object} propRenderPagination
232
234
  */
233
235
  renderPagination: (pagination: TablePaginationProps, propRenderPagination: RenderPagination) => JSX.Element;
234
236
  renderTitle: (props?: {
@@ -335,6 +335,7 @@ class Table extends BaseComponent {
335
335
  const hasRowSelected = _this.foundation.hasRowSelected(selectedRowKeys, allRowKeysSet);
336
336
 
337
337
  return /*#__PURE__*/React.createElement(ColumnSelection, {
338
+ "aria-label": "".concat(allIsSelected ? 'Deselect' : 'Select', " all rows"),
338
339
  disabled: disabled,
339
340
  key: columnKey,
340
341
  selected: allIsSelected,
@@ -351,6 +352,7 @@ class Table extends BaseComponent {
351
352
  const checkboxPropsFn = () => typeof getCheckboxProps === 'function' ? getCheckboxProps(record) : {};
352
353
 
353
354
  return /*#__PURE__*/React.createElement(ColumnSelection, {
355
+ "aria-label": "".concat(selected ? 'Deselect' : 'Select', " this row"),
354
356
  getCheckboxProps: checkboxPropsFn,
355
357
  selected: selected,
356
358
  onChange: (status, e) => _this.toggleSelectRow(status, key, e)
@@ -535,6 +537,7 @@ class Table extends BaseComponent {
535
537
  /**
536
538
  * render pagination
537
539
  * @param {object} pagination
540
+ * @param {object} propRenderPagination
538
541
  */
539
542
 
540
543
 
@@ -841,7 +844,8 @@ class Table extends BaseComponent {
841
844
  disabledRowKeysSet: new _Set(),
842
845
  headWidths: [],
843
846
  bodyHasScrollBar: false,
844
- prePropRowSelection: undefined
847
+ prePropRowSelection: undefined,
848
+ prePagination: undefined
845
849
  };
846
850
  this.rootWrapRef = /*#__PURE__*/createRef();
847
851
  this.wrapRef = /*#__PURE__*/createRef(); // table's outside wrap
@@ -1081,7 +1085,8 @@ class Table extends BaseComponent {
1081
1085
  rowSelection,
1082
1086
  dataSource,
1083
1087
  childrenRecordName,
1084
- rowKey
1088
+ rowKey,
1089
+ pagination
1085
1090
  } = props;
1086
1091
  props.columns && props.children && logger.warn('columns should not given by object and children at the same time');
1087
1092
 
@@ -1136,6 +1141,21 @@ class Table extends BaseComponent {
1136
1141
  willUpdateStates.prePropRowSelection = rowSelection;
1137
1142
  }
1138
1143
 
1144
+ if (pagination !== state.prePagination) {
1145
+ let newPagination = {};
1146
+
1147
+ if (_isObject(state.pagination)) {
1148
+ newPagination = _Object$assign(_Object$assign({}, newPagination), state.pagination);
1149
+ }
1150
+
1151
+ if (_isObject(pagination)) {
1152
+ newPagination = _Object$assign(_Object$assign({}, newPagination), pagination);
1153
+ }
1154
+
1155
+ willUpdateStates.pagination = newPagination;
1156
+ willUpdateStates.prePagination = pagination;
1157
+ }
1158
+
1139
1159
  return willUpdateStates;
1140
1160
  }
1141
1161
 
@@ -1151,15 +1171,16 @@ class Table extends BaseComponent {
1151
1171
 
1152
1172
  componentDidUpdate(prevProps, prevState) {
1153
1173
  const {
1154
- pagination,
1155
1174
  dataSource,
1156
1175
  expandedRowKeys,
1157
1176
  expandAllRows,
1158
1177
  expandAllGroupRows,
1159
1178
  virtualized,
1160
- components
1179
+ components,
1180
+ pagination: propsPagination
1161
1181
  } = this.props;
1162
1182
  const {
1183
+ pagination: statePagination,
1163
1184
  queries: stateQueries,
1164
1185
  cachedColumns: stateCachedColumns,
1165
1186
  cachedChildren: stateCachedChildren,
@@ -1203,11 +1224,6 @@ class Table extends BaseComponent {
1203
1224
  this.foundation.initExpandedRowKeys({
1204
1225
  groups: stateGroups
1205
1226
  });
1206
- } // Update pagination
1207
-
1208
-
1209
- if (pagination !== prevProps.pagination) {
1210
- states.pagination = _isObject(pagination) ? _Object$assign({}, pagination) : pagination;
1211
1227
  }
1212
1228
  /**
1213
1229
  * After dataSource is updated || (cachedColumns || cachedChildren updated)
@@ -1224,23 +1240,26 @@ class Table extends BaseComponent {
1224
1240
  this.foundation.setCachedFilteredSortedDataSource(filteredSortedDataSource);
1225
1241
  states.dataSource = filteredSortedDataSource;
1226
1242
 
1227
- if (pagination === prevProps.pagination) {
1228
- states.pagination = _isObject(pagination) ? _Object$assign({}, pagination) : pagination;
1229
- }
1230
-
1231
1243
  if (this.props.groupBy) {
1232
1244
  states.groups = null;
1233
1245
  }
1246
+ } // when dataSource has change, should reset currentPage
1247
+
1248
+
1249
+ if (dataSource !== prevProps.dataSource) {
1250
+ states.pagination = _isObject(statePagination) ? _Object$assign(_Object$assign({}, statePagination), {
1251
+ currentPage: _isObject(propsPagination) && propsPagination.currentPage ? propsPagination.currentPage : 1
1252
+ }) : statePagination;
1234
1253
  }
1235
1254
 
1236
1255
  if (_Object$keys(states).length) {
1237
1256
  const {
1238
1257
  // eslint-disable-next-line @typescript-eslint/no-shadow
1258
+ pagination: mergedStatePagination = null,
1239
1259
  queries: stateQueries = null,
1240
- pagination: statePagination = null,
1241
1260
  dataSource: stateDataSource = null
1242
1261
  } = states;
1243
- const handledProps = this.foundation.getCurrentPageData(stateDataSource, statePagination, stateQueries); // After the pager is updated, reset allRowKeys of the current page
1262
+ const handledProps = this.foundation.getCurrentPageData(stateDataSource, mergedStatePagination, stateQueries); // After the pager is updated, reset allRowKeys of the current page
1244
1263
 
1245
1264
  this.adapter.setAllRowKeys(handledProps.allRowKeys);
1246
1265
  this.adapter.setDisabledRowKeys(handledProps.disabledRowKeys);
@@ -1417,6 +1436,7 @@ class Table extends BaseComponent {
1417
1436
  return /*#__PURE__*/React.createElement("div", {
1418
1437
  ref: this.rootWrapRef,
1419
1438
  className: classnames(className, "".concat(prefixCls, "-wrapper")),
1439
+ "data-column-fixed": anyColumnFixed,
1420
1440
  style: wrapStyle,
1421
1441
  id: id
1422
1442
  }, /*#__PURE__*/React.createElement(TableContextProvider, _Object$assign({}, tableContextValue), /*#__PURE__*/React.createElement(Spin, {
@@ -31,6 +31,7 @@ export interface TableCellProps extends BaseProps {
31
31
  selected?: boolean;
32
32
  expanded?: boolean;
33
33
  disabled?: boolean;
34
+ colIndex?: number;
34
35
  }
35
36
  export default class TableCell extends BaseComponent<TableCellProps, Record<string, any>> {
36
37
  static contextType: React.Context<import("./table-context").TableContextProps>;
@@ -65,6 +66,7 @@ export default class TableCell extends BaseComponent<TableCellProps, Record<stri
65
66
  height: PropTypes.Requireable<string | number>;
66
67
  selected: PropTypes.Requireable<boolean>;
67
68
  expanded: PropTypes.Requireable<boolean>;
69
+ colIndex: PropTypes.Requireable<number>;
68
70
  };
69
71
  get adapter(): TableCellAdapter;
70
72
  ref: React.MutableRefObject<any>;