@douyinfe/semi-ui 2.19.1-alpha.2 → 2.19.2-alpha.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 (866) hide show
  1. package/dist/css/semi.css +88 -148
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +3219 -177
  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/base.css +1 -0
  8. package/lib/cjs/anchor/index.d.ts +4 -0
  9. package/lib/cjs/anchor/index.js +36 -1
  10. package/lib/cjs/anchor/link.d.ts +2 -0
  11. package/lib/cjs/anchor/link.js +8 -2
  12. package/lib/cjs/avatar/index.d.ts +1 -0
  13. package/lib/cjs/avatar/index.js +2 -1
  14. package/lib/cjs/button/Button.d.ts +1 -1
  15. package/lib/cjs/button/buttonGroup.d.ts +1 -0
  16. package/lib/cjs/button/buttonGroup.js +42 -3
  17. package/lib/cjs/button/index.d.ts +2 -1
  18. package/lib/cjs/button/index.js +1 -0
  19. package/lib/cjs/carousel/CarouselIndicator.d.ts +1 -1
  20. package/lib/cjs/carousel/index.d.ts +1 -1
  21. package/lib/cjs/checkbox/checkbox.d.ts +1 -0
  22. package/lib/cjs/checkbox/checkbox.js +19 -10
  23. package/lib/cjs/checkbox/checkboxGroup.js +2 -1
  24. package/lib/cjs/datePicker/dateInput.d.ts +1 -1
  25. package/lib/cjs/datePicker/datePicker.d.ts +1 -1
  26. package/lib/cjs/datePicker/monthsGrid.d.ts +1 -1
  27. package/lib/cjs/dropdown/index.js +5 -1
  28. package/lib/cjs/form/baseForm.d.ts +1 -1
  29. package/lib/cjs/form/field.d.ts +1 -1
  30. package/lib/cjs/popconfirm/index.d.ts +4 -2
  31. package/lib/cjs/popconfirm/index.js +49 -31
  32. package/lib/cjs/radio/radio.d.ts +2 -1
  33. package/lib/cjs/radio/radio.js +22 -13
  34. package/lib/cjs/radio/radioGroup.d.ts +1 -1
  35. package/lib/cjs/radio/radioGroup.js +1 -1
  36. package/lib/cjs/tag/group.js +14 -12
  37. package/lib/cjs/tag/index.d.ts +1 -1
  38. package/lib/cjs/tag/index.js +1 -1
  39. package/lib/cjs/timePicker/TimePicker.d.ts +2 -2
  40. package/lib/cjs/timePicker/TimeShape.d.ts +1 -1
  41. package/lib/cjs/timePicker/index.d.ts +2 -2
  42. package/lib/cjs/tooltip/index.js +2 -2
  43. package/lib/cjs/typography/base.d.ts +1 -1
  44. package/lib/cjs/typography/paragraph.d.ts +1 -1
  45. package/lib/cjs/typography/text.d.ts +1 -1
  46. package/lib/cjs/typography/title.d.ts +2 -2
  47. package/lib/cjs/upload/index.d.ts +1 -1
  48. package/lib/es/_base/base.css +1 -0
  49. package/lib/es/anchor/index.d.ts +4 -0
  50. package/lib/es/anchor/index.js +35 -1
  51. package/lib/es/anchor/link.d.ts +2 -0
  52. package/lib/es/anchor/link.js +8 -2
  53. package/lib/es/avatar/index.d.ts +1 -0
  54. package/lib/es/avatar/index.js +2 -1
  55. package/lib/es/button/Button.d.ts +1 -1
  56. package/lib/es/button/buttonGroup.d.ts +1 -0
  57. package/lib/es/button/buttonGroup.js +41 -1
  58. package/lib/es/button/index.d.ts +2 -1
  59. package/lib/es/button/index.js +1 -0
  60. package/lib/es/carousel/CarouselIndicator.d.ts +1 -1
  61. package/lib/es/carousel/index.d.ts +1 -1
  62. package/lib/es/checkbox/checkbox.d.ts +1 -0
  63. package/lib/es/checkbox/checkbox.js +19 -10
  64. package/lib/es/checkbox/checkboxGroup.js +2 -1
  65. package/lib/es/datePicker/dateInput.d.ts +1 -1
  66. package/lib/es/datePicker/datePicker.d.ts +1 -1
  67. package/lib/es/datePicker/monthsGrid.d.ts +1 -1
  68. package/lib/es/dropdown/index.js +7 -1
  69. package/lib/es/form/baseForm.d.ts +1 -1
  70. package/lib/es/form/field.d.ts +1 -1
  71. package/lib/es/popconfirm/index.d.ts +4 -2
  72. package/lib/es/popconfirm/index.js +49 -31
  73. package/lib/es/radio/radio.d.ts +2 -1
  74. package/lib/es/radio/radio.js +22 -13
  75. package/lib/es/radio/radioGroup.d.ts +1 -1
  76. package/lib/es/radio/radioGroup.js +1 -1
  77. package/lib/es/tag/group.js +14 -12
  78. package/lib/es/tag/index.d.ts +1 -1
  79. package/lib/es/tag/index.js +1 -1
  80. package/lib/es/timePicker/TimePicker.d.ts +2 -2
  81. package/lib/es/timePicker/TimeShape.d.ts +1 -1
  82. package/lib/es/timePicker/index.d.ts +2 -2
  83. package/lib/es/tooltip/index.js +2 -2
  84. package/lib/es/typography/base.d.ts +1 -1
  85. package/lib/es/typography/paragraph.d.ts +1 -1
  86. package/lib/es/typography/text.d.ts +1 -1
  87. package/lib/es/typography/title.d.ts +2 -2
  88. package/lib/es/upload/index.d.ts +1 -1
  89. package/package.json +12 -8
  90. package/_base/_story/a11y.jsx +0 -1302
  91. package/_base/_story/a11y.scss +0 -48
  92. package/_base/_story/index.scss +0 -11
  93. package/_base/_story/index.stories.js +0 -116
  94. package/_base/_story/index.stories.tsx +0 -55
  95. package/_base/base.scss +0 -3
  96. package/_base/base.ts +0 -36
  97. package/_base/baseComponent.tsx +0 -79
  98. package/_base/reactUtils.ts +0 -43
  99. package/_portal/_story/portal.stories.js +0 -13
  100. package/_portal/index.tsx +0 -113
  101. package/_test_/utils/dom/index.js +0 -9
  102. package/_test_/utils/function/index.js +0 -1
  103. package/_test_/utils/function/sleep.js +0 -9
  104. package/_test_/utils/index.js +0 -4
  105. package/_test_/utils/table/index.js +0 -310
  106. package/_test_/utils/tooltip/index.js +0 -39
  107. package/_utils/hooks/usePrevFocus.ts +0 -17
  108. package/_utils/index.ts +0 -198
  109. package/anchor/__test__/anchor.test.js +0 -60
  110. package/anchor/_story/anchor.stories.js +0 -288
  111. package/anchor/_story/anchor.stories.tsx +0 -165
  112. package/anchor/anchor-context.ts +0 -13
  113. package/anchor/index.tsx +0 -300
  114. package/anchor/link.tsx +0 -161
  115. package/autoComplete/__test__/autoComplete.test.js +0 -456
  116. package/autoComplete/_story/CustomTrigger/index.jsx +0 -106
  117. package/autoComplete/_story/autoComplete.stories.js +0 -348
  118. package/autoComplete/_story/autoComplete.stories.tsx +0 -87
  119. package/autoComplete/index.tsx +0 -504
  120. package/autoComplete/option.tsx +0 -164
  121. package/avatar/__test__/avatar.test.js +0 -363
  122. package/avatar/__test__/avatarGroup.test.js +0 -193
  123. package/avatar/_story/Demo.tsx +0 -22
  124. package/avatar/_story/avatar.stories.js +0 -248
  125. package/avatar/_story/avatar.stories.tsx +0 -7
  126. package/avatar/avatarGroup.tsx +0 -93
  127. package/avatar/index.tsx +0 -236
  128. package/avatar/interface.ts +0 -51
  129. package/backtop/__test__/backtop.test.js +0 -49
  130. package/backtop/_story/backtop.stories.js +0 -37
  131. package/backtop/_story/backtop.stories.tsx +0 -30
  132. package/backtop/index.tsx +0 -117
  133. package/badge/__test__/badge.test.js +0 -123
  134. package/badge/_story/Demo.tsx +0 -16
  135. package/badge/_story/badge.stories.js +0 -123
  136. package/badge/_story/badge.stories.tsx +0 -8
  137. package/badge/index.tsx +0 -91
  138. package/banner/__test__/banner.test.js +0 -58
  139. package/banner/_story/Demo.tsx +0 -14
  140. package/banner/_story/banner.stories.js +0 -106
  141. package/banner/_story/banner.stories.tsx +0 -8
  142. package/banner/index.tsx +0 -174
  143. package/breadcrumb/__test__/breadcrumb.test.js +0 -219
  144. package/breadcrumb/_story/Demo.tsx +0 -24
  145. package/breadcrumb/_story/breadcrumb.stories.js +0 -331
  146. package/breadcrumb/_story/breadcrumb.stories.tsx +0 -45
  147. package/breadcrumb/bread-context.tsx +0 -13
  148. package/breadcrumb/index.tsx +0 -302
  149. package/breadcrumb/item.tsx +0 -215
  150. package/button/Button.tsx +0 -133
  151. package/button/__test__/button.test.js +0 -71
  152. package/button/_story/Demo.tsx +0 -51
  153. package/button/_story/button.stories.js +0 -293
  154. package/button/_story/button.stories.tsx +0 -10
  155. package/button/buttonGroup.tsx +0 -56
  156. package/button/index.tsx +0 -38
  157. package/button/splitButtonGroup.tsx +0 -30
  158. package/calendar/__test__/calendar.test.js +0 -182
  159. package/calendar/_story/Demo.tsx +0 -20
  160. package/calendar/_story/calendar.stories.js +0 -560
  161. package/calendar/_story/calendar.stories.tsx +0 -5
  162. package/calendar/dayCalendar.tsx +0 -191
  163. package/calendar/dayCol.tsx +0 -156
  164. package/calendar/index.tsx +0 -63
  165. package/calendar/interface.ts +0 -43
  166. package/calendar/monthCalendar.tsx +0 -400
  167. package/calendar/rangeCalendar.tsx +0 -270
  168. package/calendar/timeCol.tsx +0 -64
  169. package/calendar/weekCalendar.tsx +0 -271
  170. package/card/__test__/card.test.js +0 -202
  171. package/card/_story/card.stories.js +0 -562
  172. package/card/_story/card.stories.tsx +0 -103
  173. package/card/cardGroup.tsx +0 -64
  174. package/card/index.tsx +0 -249
  175. package/card/meta.tsx +0 -73
  176. package/carousel/CarouselArrow.tsx +0 -64
  177. package/carousel/CarouselIndicator.tsx +0 -83
  178. package/carousel/__test__/carousel.test.js +0 -159
  179. package/carousel/_story/carousel.stories.js +0 -486
  180. package/carousel/index.tsx +0 -293
  181. package/carousel/interface.ts +0 -63
  182. package/cascader/__test__/cascader.test.js +0 -1356
  183. package/cascader/_story/CustomTrigger/index.jsx +0 -63
  184. package/cascader/_story/Demo.tsx +0 -63
  185. package/cascader/_story/cascader.stories.js +0 -1585
  186. package/cascader/_story/cascader.stories.tsx +0 -6
  187. package/cascader/index.tsx +0 -999
  188. package/cascader/item.tsx +0 -328
  189. package/checkbox/__test__/checkbox.test.js +0 -85
  190. package/checkbox/__test__/checkboxGroup.test.js +0 -180
  191. package/checkbox/_story/Demo.tsx +0 -27
  192. package/checkbox/_story/checkbox.stories.js +0 -1022
  193. package/checkbox/_story/checkbox.stories.tsx +0 -8
  194. package/checkbox/checkbox.tsx +0 -290
  195. package/checkbox/checkboxGroup.tsx +0 -197
  196. package/checkbox/checkboxInner.tsx +0 -129
  197. package/checkbox/context.ts +0 -14
  198. package/checkbox/index.tsx +0 -19
  199. package/collapse/__test__/collapse.test.js +0 -168
  200. package/collapse/_story/Demo.tsx +0 -28
  201. package/collapse/_story/accordion.stories.js +0 -143
  202. package/collapse/_story/accordion.stories.tsx +0 -8
  203. package/collapse/collapse-context.tsx +0 -18
  204. package/collapse/index.tsx +0 -120
  205. package/collapse/item.tsx +0 -163
  206. package/collapsible/_story/Demo.tsx +0 -41
  207. package/collapsible/_story/Nested/index.js +0 -101
  208. package/collapsible/_story/collapsible.stories.js +0 -588
  209. package/collapsible/_story/collapsible.stories.tsx +0 -7
  210. package/collapsible/index.tsx +0 -165
  211. package/configProvider/_story/ChangeTimeZone/index.js +0 -183
  212. package/configProvider/_story/GetPopupContainer/index.js +0 -194
  213. package/configProvider/_story/RTLDirection/RTLForm.jsx +0 -313
  214. package/configProvider/_story/RTLDirection/RTLTable.jsx +0 -94
  215. package/configProvider/_story/RTLDirection/RTLWrapper.tsx +0 -27
  216. package/configProvider/_story/configProvider.stories.js +0 -30
  217. package/configProvider/_story/configProvider.stories.tsx +0 -27
  218. package/configProvider/context.tsx +0 -14
  219. package/configProvider/index.tsx +0 -48
  220. package/datePicker/__test__/datePicker.test.js +0 -1065
  221. package/datePicker/_story/AllTypes/index.js +0 -19
  222. package/datePicker/_story/AutoSwitchDate/index.jsx +0 -14
  223. package/datePicker/_story/Autofocus/index.js +0 -11
  224. package/datePicker/_story/BetterRangePicker/index.jsx +0 -172
  225. package/datePicker/_story/Callbacks/index.jsx +0 -24
  226. package/datePicker/_story/ControlledDemo/index.js +0 -149
  227. package/datePicker/_story/CustomTrigger/index.jsx +0 -36
  228. package/datePicker/_story/Cycled/index.jsx +0 -11
  229. package/datePicker/_story/DateOffset/index.js +0 -83
  230. package/datePicker/_story/DatePickerSlot/index.jsx +0 -83
  231. package/datePicker/_story/DatePickerSlot/index.scss +0 -7
  232. package/datePicker/_story/DatePickerTimeZone/index.jsx +0 -27
  233. package/datePicker/_story/Density/index.jsx +0 -69
  234. package/datePicker/_story/DisabledDate/index.js +0 -189
  235. package/datePicker/_story/ExceptionDemo/index.js +0 -20
  236. package/datePicker/_story/Multiple/index.jsx +0 -24
  237. package/datePicker/_story/NeedConfirm/index.jsx +0 -94
  238. package/datePicker/_story/OnChangeWithDateFirst/index.jsx +0 -37
  239. package/datePicker/_story/OverPopover/index.jsx +0 -22
  240. package/datePicker/_story/RenderDate/index.js +0 -31
  241. package/datePicker/_story/RenderFullDate/index.js +0 -78
  242. package/datePicker/_story/RenderFullDate/index.scss +0 -23
  243. package/datePicker/_story/SyncSwitchMonth/index.js +0 -45
  244. package/datePicker/_story/TimePickerOpts/index.jsx +0 -16
  245. package/datePicker/_story/datePicker.stories.js +0 -1016
  246. package/datePicker/_story/datePicker.stories.tsx +0 -230
  247. package/datePicker/_story/v2/AutoFillTime.jsx +0 -37
  248. package/datePicker/_story/v2/FixDefaultPickerValue.jsx +0 -31
  249. package/datePicker/_story/v2/FixInputRangeFocus.jsx +0 -25
  250. package/datePicker/_story/v2/FixTriggerRender.tsx +0 -36
  251. package/datePicker/_story/v2/InputFormat.jsx +0 -29
  252. package/datePicker/_story/v2/InputFormatConfirm.jsx +0 -44
  253. package/datePicker/_story/v2/InputFormatDisabled.jsx +0 -27
  254. package/datePicker/_story/v2/InsetInput.jsx +0 -104
  255. package/datePicker/_story/v2/InsetInputE2E.jsx +0 -69
  256. package/datePicker/_story/v2/PanelOpen.jsx +0 -39
  257. package/datePicker/_story/v2/YearButton.jsx +0 -17
  258. package/datePicker/_story/v2/index.js +0 -11
  259. package/datePicker/dateInput.tsx +0 -455
  260. package/datePicker/datePicker.tsx +0 -796
  261. package/datePicker/footer.tsx +0 -29
  262. package/datePicker/index.tsx +0 -86
  263. package/datePicker/insetInput.tsx +0 -76
  264. package/datePicker/month.tsx +0 -395
  265. package/datePicker/monthsGrid.tsx +0 -649
  266. package/datePicker/navigation.tsx +0 -150
  267. package/datePicker/quickControl.tsx +0 -101
  268. package/datePicker/yearAndMonth.tsx +0 -254
  269. package/descriptions/__test__/descriptions.test.js +0 -193
  270. package/descriptions/_story/Demo.tsx +0 -36
  271. package/descriptions/_story/descriptions.stories.js +0 -145
  272. package/descriptions/_story/descriptions.stories.tsx +0 -6
  273. package/descriptions/descriptions-context.ts +0 -11
  274. package/descriptions/index.tsx +0 -82
  275. package/descriptions/item.tsx +0 -66
  276. package/divider/__test__/divider.test.js +0 -72
  277. package/divider/_story/Demo.tsx +0 -16
  278. package/divider/_story/divider.stories.js +0 -41
  279. package/divider/_story/divider.stories.tsx +0 -8
  280. package/divider/index.tsx +0 -76
  281. package/dropdown/__test__/dropdown.test.js +0 -308
  282. package/dropdown/_story/AutoClose/index.js +0 -120
  283. package/dropdown/_story/DisabledItem/index.js +0 -31
  284. package/dropdown/_story/InHoverElements/index.js +0 -25
  285. package/dropdown/_story/InHoverElements/index.scss +0 -16
  286. package/dropdown/_story/MultiDropdown/index.js +0 -34
  287. package/dropdown/_story/WrapAvatar/index.jsx +0 -10
  288. package/dropdown/_story/dropdown.stories.js +0 -331
  289. package/dropdown/_story/dropdown.stories.tsx +0 -28
  290. package/dropdown/_story/inTable/index.js +0 -194
  291. package/dropdown/context.ts +0 -13
  292. package/dropdown/dropdownDivider.tsx +0 -23
  293. package/dropdown/dropdownItem.tsx +0 -106
  294. package/dropdown/dropdownMenu.tsx +0 -51
  295. package/dropdown/dropdownTitle.tsx +0 -37
  296. package/dropdown/index.tsx +0 -257
  297. package/empty/__test__/empty.test.js +0 -63
  298. package/empty/_story/Demo.tsx +0 -10
  299. package/empty/_story/empty.stories.js +0 -53
  300. package/empty/_story/empty.stories.tsx +0 -8
  301. package/empty/index.tsx +0 -135
  302. package/form/__test__/arrayField.test.js +0 -204
  303. package/form/__test__/baseForm/baseForm.test.js +0 -628
  304. package/form/__test__/baseForm/onChange.test.js +0 -144
  305. package/form/__test__/errorMessage.test.js +0 -59
  306. package/form/__test__/field.test.js +0 -426
  307. package/form/__test__/formApi.test.js +0 -604
  308. package/form/__test__/group.test.js +0 -108
  309. package/form/__test__/hoc.test.js +0 -24
  310. package/form/__test__/label.test.js +0 -69
  311. package/form/__test__/section.test.js +0 -49
  312. package/form/__test__/slot.test.js +0 -108
  313. package/form/_story/Debug/bugDemo.jsx +0 -219
  314. package/form/_story/Debug/childDidMount.jsx +0 -30
  315. package/form/_story/Debug/myRadio.jsx +0 -32
  316. package/form/_story/DynamicField/arrayFieldDemo.jsx +0 -320
  317. package/form/_story/DynamicField/nestArrayField.jsx +0 -159
  318. package/form/_story/FieldProps/bigNumberFieldPath.jsx +0 -73
  319. package/form/_story/FieldProps/convert.jsx +0 -100
  320. package/form/_story/FieldProps/fieldRef.jsx +0 -74
  321. package/form/_story/FieldProps/helpAndExtra.jsx +0 -136
  322. package/form/_story/FieldProps/labelOptional.jsx +0 -30
  323. package/form/_story/FieldProps/pureField.jsx +0 -0
  324. package/form/_story/FieldProps/rulesUpdateDemo.js +0 -116
  325. package/form/_story/FormApi/arrayDemo.jsx +0 -94
  326. package/form/_story/FormApi/formApiDemo.jsx +0 -83
  327. package/form/_story/FormApi/resetDemo.jsx +0 -41
  328. package/form/_story/FormApi/setValuesDemo.jsx +0 -133
  329. package/form/_story/FormSubmit/index.tsx +0 -45
  330. package/form/_story/HOC/displayName.jsx +0 -19
  331. package/form/_story/HOC/withFieldDemo.jsx +0 -216
  332. package/form/_story/Hook/hookDemo.jsx +0 -195
  333. package/form/_story/Layout/layoutDemo.jsx +0 -348
  334. package/form/_story/Layout/modalFormDemo.jsx +0 -94
  335. package/form/_story/Layout/slotDemo.jsx +0 -126
  336. package/form/_story/Performance/performanceDemo.jsx +0 -440
  337. package/form/_story/Performance/selectUseReactNode.jsx +0 -110
  338. package/form/_story/Reference/inform.test.js +0 -110
  339. package/form/_story/Validate/validateDemo.jsx +0 -421
  340. package/form/_story/demo.jsx +0 -433
  341. package/form/_story/form.stories.js +0 -440
  342. package/form/_story/form.stories.tsx +0 -191
  343. package/form/arrayField.tsx +0 -200
  344. package/form/baseForm.tsx +0 -300
  345. package/form/context.tsx +0 -18
  346. package/form/errorMessage.tsx +0 -91
  347. package/form/field.tsx +0 -79
  348. package/form/group.tsx +0 -93
  349. package/form/hoc/withField.tsx +0 -604
  350. package/form/hoc/withFormApi.tsx +0 -11
  351. package/form/hoc/withFormState.tsx +0 -11
  352. package/form/hooks/index.ts +0 -12
  353. package/form/hooks/useArrayFieldState.tsx +0 -9
  354. package/form/hooks/useFieldApi.tsx +0 -21
  355. package/form/hooks/useFieldState.tsx +0 -18
  356. package/form/hooks/useFormApi.tsx +0 -7
  357. package/form/hooks/useFormState.tsx +0 -9
  358. package/form/hooks/useFormUpdater.tsx +0 -6
  359. package/form/hooks/useStateWithGetter.ts +0 -13
  360. package/form/index.tsx +0 -40
  361. package/form/interface.ts +0 -134
  362. package/form/label.tsx +0 -96
  363. package/form/section.tsx +0 -38
  364. package/form/slot.tsx +0 -167
  365. package/getBabelConfig.js +0 -25
  366. package/grid/__test__/calculateGutter.test.js +0 -50
  367. package/grid/_story/demo.scss +0 -23
  368. package/grid/_story/grid.stories.js +0 -290
  369. package/grid/_story/grid.stories.tsx +0 -15
  370. package/grid/col.tsx +0 -135
  371. package/grid/index.tsx +0 -7
  372. package/grid/row.tsx +0 -178
  373. package/gulpfile.js +0 -119
  374. package/iconButton/_story/iconButton.stories.tsx +0 -16
  375. package/iconButton/index.tsx +0 -134
  376. package/icons/_story/Others/add-template-icon.jsx +0 -0
  377. package/icons/_story/Others/add-template-icon.svg +0 -10
  378. package/icons/_story/Others/hangup.svg +0 -3
  379. package/icons/_story/Others/index.js +0 -24
  380. package/icons/_story/Others/xianglin.svg +0 -3
  381. package/icons/_story/icon.stories.js +0 -63
  382. package/icons/_story/icon.stories.tsx +0 -46
  383. package/icons/index.tsx +0 -5
  384. package/index.ts +0 -97
  385. package/input/__test__/input.test.js +0 -285
  386. package/input/__test__/textArea.test.js +0 -172
  387. package/input/_story/Demo.tsx +0 -33
  388. package/input/_story/TextareaDemo.tsx +0 -27
  389. package/input/_story/input.scss +0 -0
  390. package/input/_story/input.stories.js +0 -961
  391. package/input/_story/input.stories.tsx +0 -11
  392. package/input/index.tsx +0 -515
  393. package/input/inputGroup.tsx +0 -127
  394. package/input/textarea.tsx +0 -339
  395. package/inputNumber/__test__/inputNumber.test.js +0 -434
  396. package/inputNumber/_story/input.stories.tsx +0 -17
  397. package/inputNumber/_story/inputNumber.scss +0 -10
  398. package/inputNumber/_story/inputNumber.stories.js +0 -767
  399. package/inputNumber/index.tsx +0 -518
  400. package/layout/Sider.tsx +0 -122
  401. package/layout/__test__/layout.test.js +0 -51
  402. package/layout/_story/layout.stories.js +0 -305
  403. package/layout/_story/layout.stories.tsx +0 -13
  404. package/layout/index.tsx +0 -129
  405. package/layout/layout-context.ts +0 -18
  406. package/list/__test__/list.test.js +0 -264
  407. package/list/_story/list.stories.js +0 -920
  408. package/list/_story/list.stories.tsx +0 -26
  409. package/list/index.tsx +0 -186
  410. package/list/item.tsx +0 -113
  411. package/list/list-context.ts +0 -15
  412. package/locale/README.md +0 -53
  413. package/locale/_story/locale.stories.js +0 -221
  414. package/locale/_story/locale.stories.tsx +0 -57
  415. package/locale/context.tsx +0 -5
  416. package/locale/interface.ts +0 -155
  417. package/locale/localeConsumer.tsx +0 -58
  418. package/locale/localeProvider.tsx +0 -35
  419. package/locale/source/ar.ts +0 -159
  420. package/locale/source/de.ts +0 -159
  421. package/locale/source/en_GB.ts +0 -159
  422. package/locale/source/en_US.ts +0 -159
  423. package/locale/source/es.ts +0 -163
  424. package/locale/source/fr.ts +0 -159
  425. package/locale/source/id_ID.ts +0 -160
  426. package/locale/source/it.ts +0 -159
  427. package/locale/source/ja_JP.ts +0 -160
  428. package/locale/source/ko_KR.ts +0 -160
  429. package/locale/source/ms_MY.ts +0 -159
  430. package/locale/source/pt_BR.ts +0 -167
  431. package/locale/source/ru_RU.ts +0 -162
  432. package/locale/source/th_TH.ts +0 -163
  433. package/locale/source/tr_TR.ts +0 -159
  434. package/locale/source/vi_VN.ts +0 -162
  435. package/locale/source/zh_CN.ts +0 -160
  436. package/locale/source/zh_TW.ts +0 -160
  437. package/modal/ConfirmModal.tsx +0 -89
  438. package/modal/Modal.tsx +0 -417
  439. package/modal/ModalContent.tsx +0 -337
  440. package/modal/__test__/confirm.test.js +0 -203
  441. package/modal/__test__/modal.test.js +0 -324
  442. package/modal/_story/CollapsibleInModal/index.jsx +0 -100
  443. package/modal/_story/DynamicContext/context.js +0 -8
  444. package/modal/_story/DynamicContext/index.jsx +0 -30
  445. package/modal/_story/__snapshots__/modal.stories.tsx.snap +0 -203
  446. package/modal/_story/modal.stories.js +0 -343
  447. package/modal/_story/modal.stories.tsx +0 -41
  448. package/modal/confirm.tsx +0 -120
  449. package/modal/index.tsx +0 -13
  450. package/modal/useModal/HookModal.tsx +0 -63
  451. package/modal/useModal/index.tsx +0 -80
  452. package/motions/Rotate.tsx +0 -64
  453. package/navigation/CollapseButton.tsx +0 -47
  454. package/navigation/Footer.tsx +0 -74
  455. package/navigation/Header.tsx +0 -82
  456. package/navigation/Item.tsx +0 -293
  457. package/navigation/OpenIconTransition.tsx +0 -58
  458. package/navigation/README.md +0 -10
  459. package/navigation/SubNav.tsx +0 -389
  460. package/navigation/SubNavTransition.tsx +0 -58
  461. package/navigation/__test__/navigation.test.js +0 -274
  462. package/navigation/_story/AutoOpen/index.js +0 -69
  463. package/navigation/_story/ControlledSelectedKeys/index.js +0 -78
  464. package/navigation/_story/DisabledNav/index.js +0 -46
  465. package/navigation/_story/ItemsChange/index.js +0 -41
  466. package/navigation/_story/LinkNav/index.jsx +0 -90
  467. package/navigation/_story/MountUnmount/index.js +0 -57
  468. package/navigation/_story/WithChildren/index.js +0 -119
  469. package/navigation/_story/WithRouter/index.js +0 -111
  470. package/navigation/_story/navigation.stories.js +0 -330
  471. package/navigation/_story/navigation.stories.tsx +0 -101
  472. package/navigation/index.tsx +0 -427
  473. package/navigation/nav-context.ts +0 -30
  474. package/notification/NoticeTransition.tsx +0 -68
  475. package/notification/__test__/notification.test.js +0 -325
  476. package/notification/_story/Demo.tsx +0 -29
  477. package/notification/_story/notification.stories.js +0 -225
  478. package/notification/_story/notification.stories.tsx +0 -6
  479. package/notification/_story/useNotification/context.js +0 -3
  480. package/notification/_story/useNotification/index.jsx +0 -43
  481. package/notification/index.tsx +0 -267
  482. package/notification/notice.tsx +0 -204
  483. package/notification/useNotification/HookNotice.tsx +0 -36
  484. package/notification/useNotification/index.tsx +0 -94
  485. package/overflowList/__test__/overflowList.test.js +0 -31
  486. package/overflowList/_story/Demo.tsx +0 -36
  487. package/overflowList/_story/overflowList.stories.js +0 -400
  488. package/overflowList/_story/overflowList.stories.tsx +0 -7
  489. package/overflowList/index.tsx +0 -279
  490. package/overflowList/intersectionObserver.tsx +0 -94
  491. package/pagination/__test__/pagination.test.js +0 -255
  492. package/pagination/_story/pagination.stories.js +0 -159
  493. package/pagination/_story/pagination.stories.tsx +0 -11
  494. package/pagination/index.tsx +0 -476
  495. package/popconfirm/__test__/popconfirm.test.js +0 -131
  496. package/popconfirm/_story/DynamicDisable/index.jsx +0 -25
  497. package/popconfirm/_story/InTable/index.js +0 -75
  498. package/popconfirm/_story/ShowArrow/index.jsx +0 -141
  499. package/popconfirm/_story/TitlePopconfirm/index.js +0 -130
  500. package/popconfirm/_story/TypesConfirm/index.jsx +0 -121
  501. package/popconfirm/_story/popconfirm.stories.js +0 -170
  502. package/popconfirm/_story/popconfirm.stories.tsx +0 -20
  503. package/popconfirm/index.tsx +0 -249
  504. package/popover/Arrow.tsx +0 -66
  505. package/popover/__test__/popover.test.js +0 -52
  506. package/popover/_story/ArrowPointAtCenter/index.jsx +0 -138
  507. package/popover/_story/BtnClose/index.jsx +0 -80
  508. package/popover/_story/NestedPopover/index.js +0 -41
  509. package/popover/_story/PopRight/index.js +0 -25
  510. package/popover/_story/PopRight/index.scss +0 -25
  511. package/popover/_story/SelectInPopover/index.jsx +0 -38
  512. package/popover/_story/popover.stories.js +0 -684
  513. package/popover/_story/popover.stories.tsx +0 -53
  514. package/popover/index.tsx +0 -182
  515. package/progress/__test__/progress.test.js +0 -127
  516. package/progress/_story/progress.stories.js +0 -71
  517. package/progress/_story/progress.stories.tsx +0 -11
  518. package/progress/index.tsx +0 -283
  519. package/radio/__test__/radio.test.jsx +0 -91
  520. package/radio/__test__/radioGroup.test.jsx +0 -207
  521. package/radio/_story/Demo.tsx +0 -34
  522. package/radio/_story/radio.scss +0 -4
  523. package/radio/_story/radio.stories.js +0 -892
  524. package/radio/_story/radio.stories.tsx +0 -7
  525. package/radio/context.ts +0 -25
  526. package/radio/index.tsx +0 -12
  527. package/radio/radio.tsx +0 -320
  528. package/radio/radioGroup.tsx +0 -240
  529. package/radio/radioInner.tsx +0 -151
  530. package/rating/__test__/rating.test.js +0 -247
  531. package/rating/_story/rating.stories.js +0 -108
  532. package/rating/_story/rating.stories.tsx +0 -11
  533. package/rating/index.tsx +0 -345
  534. package/rating/item.tsx +0 -233
  535. package/resizeObserver/index.tsx +0 -115
  536. package/scripts/compileDist.js +0 -52
  537. package/scripts/compileLib.js +0 -13
  538. package/scripts/compileScss.js +0 -25
  539. package/scrollList/__test__/scrollList.test.js +0 -226
  540. package/scrollList/_story/ScrollList/index.js +0 -69
  541. package/scrollList/_story/SingleWheelList/index.js +0 -72
  542. package/scrollList/_story/WheelList/index.js +0 -119
  543. package/scrollList/_story/scrolllist.stories.js +0 -33
  544. package/scrollList/_story/scrolllist.stories.tsx +0 -131
  545. package/scrollList/index.tsx +0 -81
  546. package/scrollList/scrollItem.tsx +0 -540
  547. package/select/__test__/select.test.js +0 -1323
  548. package/select/_story/CustomTrigger/index.jsx +0 -21
  549. package/select/_story/select.scss +0 -51
  550. package/select/_story/select.stories.js +0 -2988
  551. package/select/_story/select.stories.tsx +0 -195
  552. package/select/index.tsx +0 -1239
  553. package/select/option.tsx +0 -166
  554. package/select/optionGroup.tsx +0 -42
  555. package/select/utils.tsx +0 -76
  556. package/select/virtualRow.tsx +0 -13
  557. package/sideSheet/SideSheetContent.tsx +0 -177
  558. package/sideSheet/SideSheetTransition.tsx +0 -104
  559. package/sideSheet/__test__/sideSheet.test.js +0 -319
  560. package/sideSheet/_story/sideSheet.stories.js +0 -379
  561. package/sideSheet/_story/sideSheet.stories.tsx +0 -48
  562. package/sideSheet/index.tsx +0 -270
  563. package/skeleton/__test__/skeleton.test.js +0 -32
  564. package/skeleton/_story/skeleton.stories.js +0 -82
  565. package/skeleton/_story/skeleton.stories.tsx +0 -61
  566. package/skeleton/index.tsx +0 -62
  567. package/skeleton/item.tsx +0 -82
  568. package/slider/__test__/__snapshots__/slider.test.js.snap +0 -5
  569. package/slider/__test__/slider.test.js +0 -164
  570. package/slider/_story/Demo.scss +0 -3
  571. package/slider/_story/Demo.tsx +0 -28
  572. package/slider/_story/slider.stories.js +0 -428
  573. package/slider/_story/slider.stories.tsx +0 -7
  574. package/slider/index.tsx +0 -635
  575. package/space/__test__/space.test.js +0 -99
  576. package/space/_story/space.stories.js +0 -254
  577. package/space/_story/space.stories.tsx +0 -26
  578. package/space/index.tsx +0 -95
  579. package/space/utils.ts +0 -24
  580. package/spin/__test__/spin.test.js +0 -46
  581. package/spin/_story/Demo.tsx +0 -10
  582. package/spin/_story/spin.stories.js +0 -92
  583. package/spin/_story/spin.stories.tsx +0 -6
  584. package/spin/icon.tsx +0 -55
  585. package/spin/index.tsx +0 -137
  586. package/steps/__test__/steps.test.js +0 -372
  587. package/steps/_story/steps.stories.js +0 -306
  588. package/steps/_story/steps.stories.tsx +0 -17
  589. package/steps/basicStep.tsx +0 -141
  590. package/steps/basicSteps.tsx +0 -111
  591. package/steps/context.ts +0 -7
  592. package/steps/fillStep.tsx +0 -128
  593. package/steps/fillSteps.tsx +0 -98
  594. package/steps/index.tsx +0 -69
  595. package/steps/navStep.tsx +0 -74
  596. package/steps/navSteps.tsx +0 -74
  597. package/steps/step.tsx +0 -37
  598. package/switch/__test__/switch.test.js +0 -128
  599. package/switch/_story/switch.stories.js +0 -161
  600. package/switch/_story/switch.stories.tsx +0 -124
  601. package/switch/index.tsx +0 -185
  602. package/table/Body/BaseRow.tsx +0 -400
  603. package/table/Body/ExpandedRow.tsx +0 -157
  604. package/table/Body/SectionRow.tsx +0 -202
  605. package/table/Body/index.tsx +0 -859
  606. package/table/ColGroup.tsx +0 -66
  607. package/table/Column.tsx +0 -17
  608. package/table/ColumnFilter.tsx +0 -210
  609. package/table/ColumnSelection.tsx +0 -91
  610. package/table/ColumnShape.ts +0 -33
  611. package/table/ColumnSorter.tsx +0 -81
  612. package/table/CustomExpandIcon.tsx +0 -100
  613. package/table/HeadTable.tsx +0 -120
  614. package/table/ResizableHeaderCell.tsx +0 -44
  615. package/table/ResizableTable.tsx +0 -176
  616. package/table/Table.tsx +0 -1413
  617. package/table/TableCell.tsx +0 -367
  618. package/table/TableContextProvider.tsx +0 -53
  619. package/table/TableHeader.tsx +0 -183
  620. package/table/TableHeaderRow.tsx +0 -196
  621. package/table/TablePagination.tsx +0 -52
  622. package/table/__test__/table.test.js +0 -1952
  623. package/table/_story/BetterScrollbar.tsx +0 -115
  624. package/table/_story/ChildrenData/index.js +0 -251
  625. package/table/_story/ChildrenDataInnerSelected/index.js +0 -221
  626. package/table/_story/ChildrenDataSelected/index.js +0 -247
  627. package/table/_story/ControlledPagination/index.jsx +0 -232
  628. package/table/_story/ControlledSortOrder/index.jsx +0 -85
  629. package/table/_story/CustomComponents/index.js +0 -101
  630. package/table/_story/CustomExpandIcons/index.js +0 -97
  631. package/table/_story/CustomFilterDropdownItem/index.jsx +0 -98
  632. package/table/_story/DefaultSortOrder.tsx +0 -120
  633. package/table/_story/Demos/columnRender.jsx +0 -131
  634. package/table/_story/Demos/controlledPagination.jsx +0 -125
  635. package/table/_story/Demos/customFilter.jsx +0 -110
  636. package/table/_story/Demos/default.jsx +0 -82
  637. package/table/_story/Demos/dynamic.jsx +0 -594
  638. package/table/_story/Demos/expand.jsx +0 -114
  639. package/table/_story/Demos/filterAndSorter.jsx +0 -102
  640. package/table/_story/Demos/fixed.jsx +0 -117
  641. package/table/_story/Demos/fullRender.jsx +0 -131
  642. package/table/_story/Demos/group.jsx +0 -109
  643. package/table/_story/Demos/headerMerge.jsx +0 -121
  644. package/table/_story/Demos/headerMergeJSX.jsx +0 -83
  645. package/table/_story/Demos/infiniteScroll.jsx +0 -118
  646. package/table/_story/Demos/onRow.jsx +0 -114
  647. package/table/_story/Demos/pagination.jsx +0 -101
  648. package/table/_story/Demos/resizable copy.jsx +0 -102
  649. package/table/_story/Demos/resizable.jsx +0 -183
  650. package/table/_story/Demos/rowSelection.jsx +0 -130
  651. package/table/_story/Demos/sortTree.jsx +0 -218
  652. package/table/_story/Demos/sortable.jsx +0 -183
  653. package/table/_story/Demos/span.jsx +0 -155
  654. package/table/_story/Demos/tree.jsx +0 -109
  655. package/table/_story/Demos/treeSelect.jsx +0 -196
  656. package/table/_story/Demos/virtualized.jsx +0 -103
  657. package/table/_story/Demos/zebra.jsx +0 -124
  658. package/table/_story/DragableTable/index.jsx +0 -156
  659. package/table/_story/DragableTable/index.scss +0 -7
  660. package/table/_story/DynamicFilters/data.json +0 -105
  661. package/table/_story/DynamicFilters/index.js +0 -78
  662. package/table/_story/DynamicTable/index.jsx +0 -569
  663. package/table/_story/EventTable/index.jsx +0 -76
  664. package/table/_story/Expand/index.js +0 -85
  665. package/table/_story/ExpandAllGroupRows/index.jsx +0 -90
  666. package/table/_story/ExpandAllRows/index.jsx +0 -111
  667. package/table/_story/ExpandRowByClick.jsx +0 -77
  668. package/table/_story/FilterWithNewDataTable/index.jsx +0 -108
  669. package/table/_story/FixAllColumnsWithoutWidth.tsx +0 -52
  670. package/table/_story/FixRenderReturnProps.jsx +0 -105
  671. package/table/_story/FixedExpandedRows/index.js +0 -105
  672. package/table/_story/FixedGroups/index.js +0 -80
  673. package/table/_story/FixedTable/index.js +0 -92
  674. package/table/_story/FnTable/index.js +0 -103
  675. package/table/_story/FullRender/index.jsx +0 -135
  676. package/table/_story/GroupedCols/index.jsx +0 -83
  677. package/table/_story/GroupedColsFixed/index.jsx +0 -95
  678. package/table/_story/GroupedColsFixedJSX/index.jsx +0 -122
  679. package/table/_story/GroupedColsFixedVirtualized/index.jsx +0 -107
  680. package/table/_story/GroupedColsFixedVirtualizedGroups/index.jsx +0 -110
  681. package/table/_story/GroupedRows/index.js +0 -83
  682. package/table/_story/GroupedRowsFixed/index.js +0 -81
  683. package/table/_story/InSideSheet/index.jsx +0 -90
  684. package/table/_story/InfiniteScroll/index.js +0 -115
  685. package/table/_story/JSXAsyncData/index.jsx +0 -47
  686. package/table/_story/JSXColumnPropColumn.jsx +0 -57
  687. package/table/_story/JSXColumnsComplex.jsx +0 -174
  688. package/table/_story/JSXColumnsNest.tsx +0 -74
  689. package/table/_story/JSXColumnsSmiple.jsx +0 -53
  690. package/table/_story/JSXFixedTable/index.js +0 -224
  691. package/table/_story/JSXTitles/index.js +0 -55
  692. package/table/_story/LinkedScroll/index.jsx +0 -137
  693. package/table/_story/LinkedScroll/index.scss +0 -0
  694. package/table/_story/MassiveColumns/index.jsx +0 -109
  695. package/table/_story/MassiveColumns/index.scss +0 -9
  696. package/table/_story/ModalTable/index.jsx +0 -228
  697. package/table/_story/PagintaionTable/index.js +0 -123
  698. package/table/_story/Perf/Render/complex.jsx +0 -191
  699. package/table/_story/Perf/Render/context.jsx +0 -72
  700. package/table/_story/Perf/Render/controlledSelection.jsx +0 -103
  701. package/table/_story/Perf/Render/index.jsx +0 -95
  702. package/table/_story/Perf/Render/onRow.jsx +0 -112
  703. package/table/_story/Perf/Render/resizableSelection.jsx +0 -193
  704. package/table/_story/Perf/Virtualized/index.jsx +0 -71
  705. package/table/_story/Perf/index.js +0 -8
  706. package/table/_story/RTL/AlignScrollBar.jsx +0 -17
  707. package/table/_story/RTL/index.js +0 -2
  708. package/table/_story/RenderPagination/index.jsx +0 -161
  709. package/table/_story/ResizableColumns/index.jsx +0 -95
  710. package/table/_story/ResizableColumns/index.scss +0 -30
  711. package/table/_story/ResizableTable/index.jsx +0 -85
  712. package/table/_story/ScrollBar/index.jsx +0 -71
  713. package/table/_story/SelectedRows/index.js +0 -137
  714. package/table/_story/TableSpan/index.jsx +0 -117
  715. package/table/_story/TabsTable/index.jsx +0 -78
  716. package/table/_story/TestClone/index.js +0 -0
  717. package/table/_story/VirtualTableOnCell/index.jsx +0 -84
  718. package/table/_story/VirtualizedDynamicData/index.jsx +0 -111
  719. package/table/_story/VirtualizedGroupedRows/index.jsx +0 -135
  720. package/table/_story/VirtualizedNotFixed/index.js +0 -89
  721. package/table/_story/VritualizedDataSelected/index.js +0 -273
  722. package/table/_story/WarnColumnWithoutDataIndex.tsx +0 -71
  723. package/table/_story/WithSideSheet/index.js +0 -82
  724. package/table/_story/data/big.json +0 -8205
  725. package/table/_story/data/big2.json +0 -42271
  726. package/table/_story/table.stories.js +0 -596
  727. package/table/_story/table.stories.tsx +0 -382
  728. package/table/_story/v2/FixedColumnsChange/index.jsx +0 -104
  729. package/table/_story/v2/FixedExpandedRow/index.jsx +0 -95
  730. package/table/_story/v2/FixedFilter/index.tsx +0 -106
  731. package/table/_story/v2/FixedHeaderMerge/index.jsx +0 -98
  732. package/table/_story/v2/FixedMemoryLeak/index.jsx +0 -33
  733. package/table/_story/v2/FixedOnHeaderRow/index.jsx +0 -137
  734. package/table/_story/v2/FixedResizable/index.jsx +0 -114
  735. package/table/_story/v2/FixedSorter/index.tsx +0 -102
  736. package/table/_story/v2/FixedVirtualizedEmpty.tsx +0 -76
  737. package/table/_story/v2/FixedZIndex/index.jsx +0 -87
  738. package/table/_story/v2/defaultFilteredValue.tsx +0 -114
  739. package/table/_story/v2/index.js +0 -12
  740. package/table/_story/v2/radioRowSelection.tsx +0 -107
  741. package/table/_story/virtualized/index.js +0 -92
  742. package/table/_story/virtualizedFixed/index.js +0 -131
  743. package/table/getColumns.tsx +0 -34
  744. package/table/index.tsx +0 -44
  745. package/table/interface.ts +0 -321
  746. package/table/table-context.ts +0 -32
  747. package/table/utils.ts +0 -123
  748. package/tabs/TabBar.tsx +0 -264
  749. package/tabs/TabPane.tsx +0 -128
  750. package/tabs/TabPaneTransition.tsx +0 -67
  751. package/tabs/__test__/tabs.test.js +0 -208
  752. package/tabs/_story/Demo.tsx +0 -39
  753. package/tabs/_story/search.jsx +0 -37
  754. package/tabs/_story/tabs.stories.js +0 -905
  755. package/tabs/_story/tabs.stories.tsx +0 -6
  756. package/tabs/index.tsx +0 -302
  757. package/tabs/interface.ts +0 -87
  758. package/tabs/tabs-context.ts +0 -6
  759. package/tag/_story/Demo.tsx +0 -22
  760. package/tag/_story/tag.stories.js +0 -290
  761. package/tag/_story/tag.stories.tsx +0 -6
  762. package/tag/group.tsx +0 -136
  763. package/tag/index.tsx +0 -163
  764. package/tag/interface.ts +0 -56
  765. package/tagInput/__test__/tagInput.test.js +0 -398
  766. package/tagInput/_story/tagInput.stories.js +0 -445
  767. package/tagInput/_story/tagInput.stories.tsx +0 -24
  768. package/tagInput/index.tsx +0 -612
  769. package/timePicker/Combobox.tsx +0 -336
  770. package/timePicker/PanelShape.ts +0 -8
  771. package/timePicker/TimeInput.tsx +0 -207
  772. package/timePicker/TimePicker.tsx +0 -550
  773. package/timePicker/TimeShape.ts +0 -19
  774. package/timePicker/__test__/timePicker.test.js +0 -322
  775. package/timePicker/_story/Callbacks/index.jsx +0 -24
  776. package/timePicker/_story/CustomTrigger/index.jsx +0 -35
  777. package/timePicker/_story/DisabledTime/index.jsx +0 -17
  778. package/timePicker/_story/timepicker.stories.js +0 -301
  779. package/timePicker/_story/timepicker.stories.tsx +0 -18
  780. package/timePicker/index.tsx +0 -47
  781. package/timeline/__test__/timeline.test.js +0 -253
  782. package/timeline/_story/timeline.stories.js +0 -235
  783. package/timeline/_story/timeline.stories.tsx +0 -15
  784. package/timeline/index.tsx +0 -97
  785. package/timeline/item.tsx +0 -83
  786. package/toast/ToastTransition.tsx +0 -43
  787. package/toast/__test__/toast-command-call.test.js +0 -63
  788. package/toast/__test__/toast.test.js +0 -104
  789. package/toast/_story/Demo.tsx +0 -22
  790. package/toast/_story/toast.stories.js +0 -139
  791. package/toast/_story/toast.stories.tsx +0 -7
  792. package/toast/index.tsx +0 -234
  793. package/toast/toast.tsx +0 -152
  794. package/toast/useToast/HookToast.tsx +0 -35
  795. package/toast/useToast/index.tsx +0 -79
  796. package/tooltip/ArrowBoundingShape.ts +0 -8
  797. package/tooltip/TooltipStyledTransition.tsx +0 -31
  798. package/tooltip/TriangleArrow.tsx +0 -12
  799. package/tooltip/TriangleArrowVertical.tsx +0 -12
  800. package/tooltip/__test__/tooltip.test.js +0 -364
  801. package/tooltip/_story/ArrowPointAtCenter/index.jsx +0 -137
  802. package/tooltip/_story/ContainerPosition/index.jsx +0 -15
  803. package/tooltip/_story/ContainerPosition/index.scss +0 -10
  804. package/tooltip/_story/CustomContainer/index.jsx +0 -39
  805. package/tooltip/_story/DangerousHtml/index.js +0 -30
  806. package/tooltip/_story/Edge/index.js +0 -16
  807. package/tooltip/_story/InTable/index.jsx +0 -86
  808. package/tooltip/_story/Safari/autoAdjust.js +0 -23
  809. package/tooltip/_story/ScrollDemo/index.js +0 -65
  810. package/tooltip/_story/story.scss +0 -50
  811. package/tooltip/_story/tooltip.stories.js +0 -1099
  812. package/tooltip/_story/tooltip.stories.tsx +0 -54
  813. package/tooltip/index.tsx +0 -737
  814. package/transfer/__test__/transfer.test.js +0 -324
  815. package/transfer/_story/transfer.scss +0 -124
  816. package/transfer/_story/transfer.stories.js +0 -787
  817. package/transfer/_story/transfer.stories.tsx +0 -80
  818. package/transfer/index.tsx +0 -667
  819. package/tree/__test__/autosizer.test.js +0 -102
  820. package/tree/__test__/tree.test.js +0 -927
  821. package/tree/__test__/treeMultiple.test.js +0 -687
  822. package/tree/__test__/treeNodeProps.test.js +0 -192
  823. package/tree/_story/BigData.jsx +0 -58
  824. package/tree/_story/Demo.tsx +0 -72
  825. package/tree/_story/bigDataGen.jsx +0 -98
  826. package/tree/_story/data.js +0 -3
  827. package/tree/_story/tree.stories.js +0 -2550
  828. package/tree/_story/tree.stories.tsx +0 -7
  829. package/tree/autoSizer.tsx +0 -86
  830. package/tree/collapse.tsx +0 -144
  831. package/tree/index.tsx +0 -798
  832. package/tree/interface.ts +0 -148
  833. package/tree/nodeList.tsx +0 -88
  834. package/tree/treeContext.tsx +0 -49
  835. package/tree/treeNode.tsx +0 -443
  836. package/tree/treeUtil.tsx +0 -14
  837. package/treeSelect/__test__/treeMultiple.test.js +0 -775
  838. package/treeSelect/__test__/treeSelect.test.js +0 -968
  839. package/treeSelect/_story/CustomTrigger/index.jsx +0 -47
  840. package/treeSelect/_story/Demo.tsx +0 -83
  841. package/treeSelect/_story/treeSelect.stories.js +0 -1658
  842. package/treeSelect/_story/treeSelect.stories.tsx +0 -7
  843. package/treeSelect/index.tsx +0 -1417
  844. package/trigger/__test__/trigger.test.js +0 -17
  845. package/trigger/index.tsx +0 -45
  846. package/tsconfig.json +0 -33
  847. package/typography/__test__/typography.test.js +0 -75
  848. package/typography/_story/typography.stories.js +0 -637
  849. package/typography/_story/typography.stories.tsx +0 -175
  850. package/typography/base.tsx +0 -634
  851. package/typography/copyable.tsx +0 -144
  852. package/typography/index.tsx +0 -24
  853. package/typography/interface.ts +0 -27
  854. package/typography/paragraph.tsx +0 -77
  855. package/typography/text.tsx +0 -68
  856. package/typography/title.tsx +0 -74
  857. package/typography/typography.tsx +0 -41
  858. package/typography/util.tsx +0 -140
  859. package/upload/__test__/dragUpload.test.js +0 -122
  860. package/upload/__test__/upload.test.js +0 -947
  861. package/upload/_story/upload.stories.js +0 -1111
  862. package/upload/_story/upload.stories.tsx +0 -16
  863. package/upload/fileCard.tsx +0 -283
  864. package/upload/index.tsx +0 -721
  865. package/upload/interface.ts +0 -64
  866. package/webpack.config.js +0 -96
package/table/Table.tsx DELETED
@@ -1,1413 +0,0 @@
1
- /* eslint-disable no-nested-ternary */
2
- /* eslint-disable prefer-const */
3
- /* eslint-disable prefer-destructuring */
4
- /* eslint-disable no-shadow */
5
- /* eslint-disable no-param-reassign */
6
- /* eslint-disable max-len */
7
- /* eslint-disable react/no-did-update-set-state */
8
- /* eslint-disable eqeqeq */
9
- /* eslint-disable max-lines-per-function */
10
- import React, { ReactNode, createRef, isValidElement } from 'react';
11
- import PropTypes from 'prop-types';
12
- import classnames from 'classnames';
13
- import {
14
- get,
15
- noop,
16
- includes,
17
- find,
18
- findIndex,
19
- some,
20
- debounce,
21
- flattenDeep,
22
- each,
23
- omit,
24
- isNull,
25
- difference,
26
- isFunction,
27
- isObject
28
- } from 'lodash';
29
-
30
- import {
31
- mergeQueries,
32
- equalWith,
33
- mergeColumns,
34
- isAnyFixedRight,
35
- assignColumnKeys,
36
- flattenColumns,
37
- getAllDisabledRowKeys
38
- } from '@douyinfe/semi-foundation/table/utils';
39
- import Store from '@douyinfe/semi-foundation/utils/Store';
40
- import TableFoundation, { TableAdapter, BasePageData, BaseRowKeyType, BaseHeadWidth } from '@douyinfe/semi-foundation/table/foundation';
41
- import { TableSelectionCellEvent } from '@douyinfe/semi-foundation/table/tableSelectionCellFoundation';
42
- import { strings, cssClasses, numbers } from '@douyinfe/semi-foundation/table/constants';
43
- import '@douyinfe/semi-foundation/table/table.scss';
44
-
45
- import Spin from '../spin';
46
- import BaseComponent from '../_base/baseComponent';
47
- import LocaleConsumer from '../locale/localeConsumer';
48
- import ColumnShape from './ColumnShape';
49
- import getColumns from './getColumns';
50
- import TableContext, { TableContextProps } from './table-context';
51
- import TableContextProvider from './TableContextProvider';
52
- import ColumnSelection from './ColumnSelection';
53
- import TablePagination from './TablePagination';
54
- import ColumnFilter, { OnSelectData } from './ColumnFilter';
55
- import ColumnSorter from './ColumnSorter';
56
- import ExpandedIcon from './CustomExpandIcon';
57
- import HeadTable, { HeadTableProps } from './HeadTable';
58
- import BodyTable, { BodyProps } from './Body';
59
- import { measureScrollbar, logger, cloneDeep, mergeComponents } from './utils';
60
- import {
61
- ColumnProps,
62
- TablePaginationProps,
63
- BodyScrollEvent,
64
- BodyScrollPosition,
65
- ExpandIcon,
66
- ColumnTitleProps,
67
- Pagination,
68
- RenderPagination,
69
- TableLocale,
70
- TableProps,
71
- TableComponents,
72
- RowSelectionProps,
73
- Data
74
- } from './interface';
75
- import { ArrayElement } from '../_base/base';
76
-
77
- export type NormalTableProps<RecordType extends Record<string, any> = Data> = Omit<TableProps<RecordType>, 'resizable'>;
78
-
79
- export interface NormalTableState<RecordType extends Record<string, any> = Data> {
80
- cachedColumns?: ColumnProps<RecordType>[];
81
- cachedChildren?: React.ReactNode;
82
- flattenColumns?: ColumnProps<RecordType>[];
83
- components?: TableComponents;
84
- queries?: ColumnProps<RecordType>[];
85
- dataSource?: RecordType[];
86
- flattenData?: RecordType[];
87
- expandedRowKeys?: (string | number)[];
88
- rowSelection?: TableStateRowSelection<RecordType>;
89
- pagination?: Pagination;
90
- groups?: Map<string, RecordType[]>;
91
- allRowKeys?: (string | number)[];
92
- disabledRowKeys?: (string | number)[];
93
- disabledRowKeysSet?: Set<string | number>;
94
- headWidths?: Array<Array<BaseHeadWidth>>;
95
- bodyHasScrollBar?: boolean;
96
- prePropRowSelection?: TableStateRowSelection<RecordType>;
97
- tableWidth?: number;
98
- prePagination?: Pagination;
99
- }
100
-
101
- export type TableStateRowSelection<RecordType extends Record<string, any> = Data> = (RowSelectionProps<RecordType> & { selectedRowKeysSet?: Set<(string | number)> }) | boolean;
102
-
103
- export interface RenderTableProps<RecordType> extends HeadTableProps, BodyProps {
104
- filteredColumns: ColumnProps<RecordType>[];
105
- useFixedHeader: boolean;
106
- bodyRef: React.MutableRefObject<HTMLDivElement> | ((instance: any) => void);
107
- rowSelection: TableStateRowSelection<RecordType>;
108
- bodyHasScrollBar: boolean;
109
- }
110
-
111
- class Table<RecordType extends Record<string, any>> extends BaseComponent<NormalTableProps<RecordType>, NormalTableState<RecordType>> {
112
- static contextType = TableContext;
113
-
114
- static propTypes = {
115
- className: PropTypes.string,
116
- style: PropTypes.object,
117
- prefixCls: PropTypes.string,
118
- components: PropTypes.any,
119
- bordered: PropTypes.bool,
120
- loading: PropTypes.bool,
121
- size: PropTypes.oneOf(strings.SIZES),
122
- tableLayout: PropTypes.oneOf(strings.LAYOUTS),
123
- columns: PropTypes.arrayOf(PropTypes.shape(ColumnShape)),
124
- hideExpandedColumn: PropTypes.bool,
125
- id: PropTypes.string,
126
- expandIcon: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.node]),
127
- expandCellFixed: PropTypes.oneOf(strings.FIXED_SET),
128
- title: PropTypes.oneOfType([PropTypes.string, PropTypes.node, PropTypes.func]),
129
- onHeaderRow: PropTypes.func,
130
- showHeader: PropTypes.bool,
131
- indentSize: PropTypes.number,
132
- rowKey: PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.number]),
133
- onRow: PropTypes.func,
134
- onExpandedRowsChange: PropTypes.func,
135
- onExpand: PropTypes.func,
136
- rowExpandable: PropTypes.func,
137
- expandedRowRender: PropTypes.func,
138
- expandedRowKeys: PropTypes.array,
139
- defaultExpandAllRows: PropTypes.bool,
140
- expandAllRows: PropTypes.bool,
141
- defaultExpandAllGroupRows: PropTypes.bool,
142
- expandAllGroupRows: PropTypes.bool,
143
- defaultExpandedRowKeys: PropTypes.array,
144
- pagination: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
145
- renderPagination: PropTypes.func,
146
- footer: PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.node]),
147
- empty: PropTypes.node,
148
- dataSource: PropTypes.array,
149
- childrenRecordName: PropTypes.string, // children data property name
150
- rowSelection: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
151
- onChange: PropTypes.func,
152
- scroll: PropTypes.shape({
153
- x: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.bool]),
154
- y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
155
- }),
156
- groupBy: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),
157
- renderGroupSection: PropTypes.oneOfType([PropTypes.func]),
158
- onGroupedRow: PropTypes.func,
159
- clickGroupedRowToExpand: PropTypes.bool,
160
- virtualized: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
161
- dropdownPrefixCls: PropTypes.string, // TODO: future api
162
- expandRowByClick: PropTypes.bool, // TODO: future api
163
- getVirtualizedListRef: PropTypes.func, // TODO: future api
164
- };
165
-
166
- static defaultProps = {
167
- // rowExpandable: stubTrue,
168
- tableLayout: '',
169
- dataSource: [] as [],
170
- prefixCls: cssClasses.PREFIX,
171
- rowSelection: null as null,
172
- className: '',
173
- childrenRecordName: 'children',
174
- size: 'default',
175
- loading: false,
176
- bordered: false,
177
- expandCellFixed: false,
178
- hideExpandedColumn: true,
179
- showHeader: true,
180
- indentSize: numbers.DEFAULT_INDENT_WIDTH,
181
- onChange: noop,
182
- pagination: true,
183
- rowKey: 'key',
184
- defaultExpandedRowKeys: [] as [],
185
- defaultExpandAllRows: false,
186
- defaultExpandAllGroupRows: false,
187
- expandAllRows: false,
188
- expandAllGroupRows: false,
189
- onFilterDropdownVisibleChange: noop,
190
- onExpand: noop,
191
- onExpandedRowsChange: noop,
192
- expandRowByClick: false,
193
- };
194
-
195
- get adapter(): TableAdapter<RecordType> {
196
- return {
197
- ...super.adapter,
198
- resetScrollY: () => {
199
- if (this.bodyWrapRef.current) {
200
- this.bodyWrapRef.current.scrollTop = 0;
201
- }
202
- },
203
- setSelectedRowKeys: selectedRowKeys => {
204
- this.setState({ rowSelection: {
205
- ...this.state.rowSelection as Record<string, any>,
206
- selectedRowKeys: [...selectedRowKeys],
207
- selectedRowKeysSet: new Set(selectedRowKeys),
208
- } });
209
- },
210
- setDisabledRowKeys: disabledRowKeys => {
211
- this.setState({ disabledRowKeys, disabledRowKeysSet: new Set(disabledRowKeys) });
212
- },
213
- setCurrentPage: currentPage => {
214
- const { pagination } = this.state;
215
- if (typeof pagination === 'object') {
216
- this.setState({ pagination: { ...pagination, currentPage } });
217
- } else {
218
- this.setState({ pagination: { currentPage } });
219
- }
220
- },
221
- setPagination: pagination => this.setState({ pagination }),
222
- setGroups: groups => this.setState({ groups }),
223
- setDataSource: dataSource => this.setState({ dataSource }),
224
- setExpandedRowKeys: expandedRowKeys => this.setState({ expandedRowKeys: [...expandedRowKeys] }),
225
- setQuery: (query = {}) => {
226
- let queries = [...this.state.queries];
227
- queries = mergeQueries(query, queries);
228
- this.setState({ queries });
229
- },
230
- // Update queries when filtering or sorting
231
- setQueries: (queries: ColumnProps<RecordType>[]) => this.setState({ queries }),
232
- setFlattenData: flattenData => this.setState({ flattenData }),
233
- setAllRowKeys: allRowKeys => this.setState({ allRowKeys }),
234
- setHoveredRowKey: hoveredRowKey => {
235
- this.store.setState({ hoveredRowKey });
236
- },
237
- setCachedFilteredSortedDataSource: filteredSortedDataSource => {
238
- this.cachedFilteredSortedDataSource = filteredSortedDataSource;
239
- },
240
- setCachedFilteredSortedRowKeys: filteredSortedRowKeys => {
241
- this.cachedFilteredSortedRowKeys = filteredSortedRowKeys;
242
- this.cachedFilteredSortedRowKeysSet = new Set(filteredSortedRowKeys);
243
- },
244
- getCurrentPage: () => get(this.state, 'pagination.currentPage', 1),
245
- getCurrentPageSize: () => get(this.state, 'pagination.pageSize', numbers.DEFAULT_PAGE_SIZE),
246
- getCachedFilteredSortedDataSource: () => this.cachedFilteredSortedDataSource,
247
- getCachedFilteredSortedRowKeys: () => this.cachedFilteredSortedRowKeys,
248
- getCachedFilteredSortedRowKeysSet: () => this.cachedFilteredSortedRowKeysSet,
249
- notifyFilterDropdownVisibleChange: (visible, dataIndex) =>
250
- this._invokeColumnFn(dataIndex, 'onFilterDropdownVisibleChange', visible),
251
- notifyChange: (...args) => this.props.onChange(...args),
252
- notifyExpand: (...args) => this.props.onExpand(...args),
253
- notifyExpandedRowsChange: (...args) => this.props.onExpandedRowsChange(...args),
254
- notifySelect: (...args) => this._invokeRowSelection('onSelect', ...args),
255
- notifySelectAll: (...args) => this._invokeRowSelection('onSelectAll', ...args),
256
- notifySelectInvert: (...args) => this._invokeRowSelection('onSelectInvert', ...args),
257
- notifySelectionChange: (...args) => this._invokeRowSelection('onChange', ...args),
258
- isAnyColumnFixed: (columns: ColumnProps<RecordType>[]) =>
259
- some(this.getColumns(columns || this.props.columns, this.props.children), column => Boolean(column.fixed)),
260
- useFixedHeader: () => {
261
- const { scroll } = this.props;
262
-
263
- if (get(scroll, 'y')) {
264
- return true;
265
- }
266
-
267
- return false;
268
- },
269
- setHeadWidths: (headWidths: Array<BaseHeadWidth>, index = 0) => {
270
- if (!equalWith(this.state.headWidths[index], headWidths)) {
271
- // The map call depends on the last state
272
- this.setState(state => {
273
- const newHeadWidths: Array<Array<BaseHeadWidth>> = [...state.headWidths];
274
- newHeadWidths[index] = [...headWidths];
275
- return { headWidths: newHeadWidths };
276
- });
277
- }
278
- },
279
- getHeadWidths: (index = 0) => {
280
- if (this.state.headWidths.length && typeof index === 'number') {
281
- const configs = this.state.headWidths[index] || [];
282
- return configs.map(item => item.width);
283
- }
284
- return [];
285
- },
286
- // This method is called by row rendering function
287
- getCellWidths: (flattenedColumns: ColumnProps<RecordType>[], flattenedWidths: BaseHeadWidth[] = null, ignoreScrollBarKey = false): number[] => {
288
- if (Array.isArray(flattenedColumns) && flattenedColumns.length) {
289
- flattenedWidths =
290
- flattenedWidths == null && this.state.headWidths.length ?
291
- flattenDeep(this.state.headWidths) :
292
- [];
293
- if (
294
- Array.isArray(flattenedWidths) &&
295
- flattenedWidths.length
296
- ) {
297
- return flattenedColumns.reduce((result, column) => {
298
- const found =
299
- column.key === strings.DEFAULT_KEY_COLUMN_SCROLLBAR && ignoreScrollBarKey ?
300
- null :
301
- find(
302
- flattenedWidths,
303
- item => item && item.key != null && item.key === column.key
304
- );
305
- if (found) {
306
- result.push(found.width);
307
- }
308
-
309
- return result;
310
- }, [] as number[]);
311
- }
312
- }
313
- return [];
314
- },
315
- mergedRowExpandable: record => {
316
- const { expandedRowRender, childrenRecordName, rowExpandable } = this.props;
317
- const children = get(record, childrenRecordName);
318
- const hasExpandedRowRender = typeof expandedRowRender === 'function';
319
- const hasRowExpandable = typeof rowExpandable === 'function';
320
- const hasChildren = Array.isArray(children) && children.length;
321
- const strictExpandableResult = hasRowExpandable && rowExpandable(record);
322
- const looseExpandableResult = !hasRowExpandable || strictExpandableResult;
323
-
324
- return (
325
- ((hasExpandedRowRender || hasChildren) && looseExpandableResult) ||
326
- (!(hasExpandedRowRender || hasChildren) && strictExpandableResult)
327
- );
328
- },
329
- isAnyColumnUseFullRender: (columns: ColumnProps<RecordType>[]) =>
330
- some(columns, column => Boolean(column.useFullRender)),
331
- getNormalizeColumns: () => this.normalizeColumns,
332
- getHandleColumns: () => this.handleColumns,
333
- getMergePagination: () => this.mergePagination,
334
- setBodyHasScrollbar: bodyHasScrollBar => {
335
- if (bodyHasScrollBar !== this.state.bodyHasScrollBar) {
336
- this.setState({ bodyHasScrollBar });
337
- }
338
- }
339
- };
340
- }
341
-
342
- bodyWrapRef: React.MutableRefObject<HTMLDivElement>;
343
- rootWrapRef: React.MutableRefObject<HTMLDivElement>;
344
- wrapRef: React.MutableRefObject<HTMLDivElement>;
345
- headerWrapRef: React.MutableRefObject<HTMLDivElement>;
346
- debouncedWindowResize: () => void;
347
- cachedFilteredSortedDataSource: RecordType[];
348
- cachedFilteredSortedRowKeys: BaseRowKeyType[];
349
- cachedFilteredSortedRowKeysSet: Set<string | number>;
350
- store: Store;
351
- lastScrollTop!: number;
352
- lastScrollLeft!: number;
353
- scrollPosition!: BodyScrollPosition;
354
- position!: BodyScrollPosition;
355
- foundation: TableFoundation<RecordType>;
356
- context: TableContextProps;
357
- constructor(props: NormalTableProps<RecordType>, context: TableContextProps) {
358
- super(props);
359
- this.foundation = new TableFoundation<RecordType>(this.adapter);
360
- // columns cannot be deepClone, otherwise the comparison will be false
361
- const columns = this.getColumns(props.columns, props.children);
362
- const cachedflattenColumns = flattenColumns(columns);
363
- this.state = {
364
- /**
365
- * Cached props
366
- */
367
- cachedColumns: columns, // update cachedColumns after columns or children change
368
- cachedChildren: props.children,
369
- flattenColumns: cachedflattenColumns,
370
- components: mergeComponents(props.components, props.virtualized), // cached components
371
-
372
- /**
373
- * State calculated based on prop
374
- */
375
- queries: cloneDeep(cachedflattenColumns), // flatten columns, update when sorting or filtering
376
- dataSource: [], // data after paging
377
- flattenData: [],
378
- expandedRowKeys: [...(props.expandedRowKeys || []), ...(props.defaultExpandedRowKeys || [])], // cached expandedRowKeys
379
- rowSelection: props.rowSelection ? isObject(props.rowSelection) ? { ...props.rowSelection } : {} : null,
380
- pagination:
381
- props.pagination && typeof props.pagination === 'object' ?
382
- { ...props.pagination } :
383
- props.pagination || false,
384
-
385
- /**
386
- * Internal state
387
- */
388
- groups: null,
389
- allRowKeys: [], // row keys after paging
390
- disabledRowKeys: [], // disabled row keys after paging
391
- disabledRowKeysSet: new Set(),
392
- headWidths: [], // header cell width
393
- bodyHasScrollBar: false,
394
- prePropRowSelection: undefined,
395
- prePagination: undefined
396
- };
397
-
398
- this.rootWrapRef = createRef();
399
- this.wrapRef = createRef(); // table's outside wrap
400
-
401
- this.bodyWrapRef = createRef();
402
- this.headerWrapRef = createRef();
403
-
404
- this.store = new Store({
405
- hoveredRowKey: null,
406
- });
407
-
408
- this.setScrollPosition('left');
409
- this.debouncedWindowResize = debounce(this.handleWindowResize, 150);
410
-
411
- this.cachedFilteredSortedDataSource = [];
412
- this.cachedFilteredSortedRowKeys = [];
413
- this.cachedFilteredSortedRowKeysSet = new Set();
414
- }
415
-
416
- static getDerivedStateFromProps(props: NormalTableProps, state: NormalTableState) {
417
- const willUpdateStates: Partial<NormalTableState> = {};
418
- const { rowSelection, dataSource, childrenRecordName, rowKey, pagination } = props;
419
- props.columns && props.children && logger.warn('columns should not given by object and children at the same time');
420
-
421
- if (props.columns && props.columns !== state.cachedColumns) {
422
- const newFlattenColumns = flattenColumns(props.columns);
423
- willUpdateStates.flattenColumns = newFlattenColumns;
424
- willUpdateStates.queries = mergeColumns(state.queries, newFlattenColumns, null, false);
425
- willUpdateStates.cachedColumns = props.columns;
426
- willUpdateStates.cachedChildren = null;
427
- } else if (props.children && props.children !== state.cachedChildren) {
428
- const newNestedColumns = getColumns(props.children);
429
- const newFlattenColumns = flattenColumns(newNestedColumns);
430
- const columns = mergeColumns(state.queries, newFlattenColumns, null, false);
431
- willUpdateStates.flattenColumns = newFlattenColumns;
432
- willUpdateStates.queries = [...columns];
433
- willUpdateStates.cachedColumns = [...newNestedColumns];
434
- willUpdateStates.cachedChildren = props.children;
435
- }
436
-
437
- // Update controlled selection column
438
- if (rowSelection !== state.prePropRowSelection) {
439
- let newSelectionStates: TableStateRowSelection = {};
440
- if (isObject(state.rowSelection)) {
441
- newSelectionStates = { ...newSelectionStates, ...state.rowSelection };
442
- }
443
- if (isObject(rowSelection)) {
444
- newSelectionStates = { ...newSelectionStates, ...rowSelection };
445
- }
446
- const selectedRowKeys = get(rowSelection, 'selectedRowKeys');
447
- const getCheckboxProps = get(rowSelection, 'getCheckboxProps');
448
- if (selectedRowKeys && Array.isArray(selectedRowKeys)) {
449
- newSelectionStates.selectedRowKeysSet = new Set(selectedRowKeys);
450
- }
451
- // The return value of getCheckboxProps affects the disabled rows
452
- if (isFunction(getCheckboxProps)) {
453
- const disabledRowKeys = getAllDisabledRowKeys({ dataSource, getCheckboxProps, childrenRecordName, rowKey });
454
- willUpdateStates.disabledRowKeys = disabledRowKeys;
455
- willUpdateStates.disabledRowKeysSet = new Set(disabledRowKeys);
456
- }
457
- willUpdateStates.rowSelection = newSelectionStates;
458
- willUpdateStates.prePropRowSelection = rowSelection;
459
- }
460
- if (pagination !== state.prePagination) {
461
- let newPagination: Pagination = {};
462
- if (isObject(state.pagination)) {
463
- newPagination = { ...newPagination, ...state.pagination };
464
- }
465
- if (isObject(pagination)) {
466
- newPagination = { ...newPagination, ...pagination };
467
- }
468
- willUpdateStates.pagination = newPagination;
469
- willUpdateStates.prePagination = pagination;
470
- }
471
- return willUpdateStates;
472
- }
473
-
474
- componentDidMount() {
475
- super.componentDidMount();
476
-
477
- if (this.adapter.isAnyColumnFixed() || (this.props.showHeader && this.adapter.useFixedHeader())) {
478
- this.handleWindowResize();
479
- window.addEventListener('resize', this.debouncedWindowResize);
480
- }
481
- }
482
-
483
- // TODO: Extract the setState operation to the adapter or getDerivedStateFromProps function
484
- componentDidUpdate(prevProps: NormalTableProps<RecordType>, prevState: NormalTableState<RecordType>) {
485
- const {
486
- dataSource,
487
- expandedRowKeys,
488
- expandAllRows,
489
- expandAllGroupRows,
490
- virtualized,
491
- components,
492
- pagination: propsPagination
493
- } = this.props;
494
-
495
- const {
496
- pagination: statePagination,
497
- queries: stateQueries,
498
- cachedColumns: stateCachedColumns,
499
- cachedChildren: stateCachedChildren,
500
- groups: stateGroups,
501
- } = this.state;
502
-
503
- /**
504
- * State related to paging
505
- *
506
- * @param dataSource
507
- * @param groups
508
- * @param pagination
509
- * @param disabledRowKeys
510
- * @param allRowKeys
511
- * @param queries
512
- */
513
- const states: Partial<NormalTableState<RecordType>> = {};
514
-
515
- this._warnIfNoKey();
516
-
517
- /**
518
- * The state that needs to be updated after props changes
519
- */
520
-
521
- // Update controlled expand column
522
- if (Array.isArray(expandedRowKeys) && expandedRowKeys !== prevProps.expandedRowKeys) {
523
- this.setState({ expandedRowKeys });
524
- }
525
-
526
- // Update components
527
- if (components !== prevProps.components || virtualized !== prevProps.virtualized) {
528
- this.setState({ components: mergeComponents(components, virtualized) });
529
- }
530
-
531
- // Update the default expanded column
532
- if (
533
- expandAllRows !== prevProps.expandAllRows ||
534
- expandAllGroupRows !== prevProps.expandAllGroupRows
535
- ) {
536
- this.foundation.initExpandedRowKeys({ groups: stateGroups });
537
- }
538
-
539
- /**
540
- * After dataSource is updated || (cachedColumns || cachedChildren updated)
541
- * 1. Cache filtered sorted data and a collection of data rows, stored in this
542
- * 2. Update pager and group, stored in state
543
- */
544
- if (dataSource !== prevProps.dataSource || stateCachedColumns !== prevState.cachedColumns || stateCachedChildren !== prevState.cachedChildren) {
545
- // TODO: foundation.getFilteredSortedDataSource has side effects and will be modified to the dataSource reference
546
- // Temporarily use _dataSource=[...dataSource] for processing
547
- const _dataSource = [...dataSource];
548
- const filteredSortedDataSource = this.foundation.getFilteredSortedDataSource(_dataSource, stateQueries);
549
- this.foundation.setCachedFilteredSortedDataSource(filteredSortedDataSource);
550
- states.dataSource = filteredSortedDataSource;
551
-
552
- if (this.props.groupBy) {
553
- states.groups = null;
554
- }
555
- }
556
-
557
- // when dataSource has change, should reset currentPage
558
- if (dataSource !== prevProps.dataSource) {
559
- states.pagination = isObject(statePagination) ? {
560
- ...statePagination,
561
- currentPage: isObject(propsPagination) && propsPagination.currentPage ? propsPagination.currentPage : 1,
562
- } : statePagination;
563
- }
564
-
565
- if (Object.keys(states).length) {
566
- const {
567
- // eslint-disable-next-line @typescript-eslint/no-shadow
568
- pagination: mergedStatePagination = null,
569
- queries: stateQueries = null,
570
- dataSource: stateDataSource = null,
571
- } = states;
572
- const handledProps: Partial<NormalTableState<RecordType>> = this.foundation.getCurrentPageData(stateDataSource, mergedStatePagination as TablePaginationProps, stateQueries);
573
-
574
- // After the pager is updated, reset allRowKeys of the current page
575
- this.adapter.setAllRowKeys(handledProps.allRowKeys);
576
- this.adapter.setDisabledRowKeys(handledProps.disabledRowKeys);
577
-
578
- if ('dataSource' in states) {
579
- if (this.props.defaultExpandAllRows && handledProps.groups && handledProps.groups.size ||
580
- this.props.expandAllRows ||
581
- this.props.expandAllGroupRows
582
- ) {
583
- this.foundation.initExpandedRowKeys(handledProps);
584
- }
585
- }
586
-
587
- // Centrally update paging related state
588
- const statesKeys: any[] = Object.keys(states);
589
- for (const k of statesKeys) {
590
- this.setState({ [k]: handledProps[k] });
591
- }
592
- }
593
-
594
- if (this.adapter.isAnyColumnFixed() || (this.props.showHeader && this.adapter.useFixedHeader())) {
595
- if (!this.debouncedWindowResize) {
596
- window.addEventListener('resize', this.debouncedWindowResize);
597
- }
598
- }
599
- }
600
-
601
- componentWillUnmount() {
602
- super.componentWillUnmount();
603
-
604
- if (this.debouncedWindowResize) {
605
- window.removeEventListener('resize', this.debouncedWindowResize);
606
- (this.debouncedWindowResize as any).cancel();
607
- this.debouncedWindowResize = null;
608
- }
609
- }
610
-
611
- // TODO: notify when data don't have key
612
- _warnIfNoKey = () => {
613
- if (
614
- (this.props.rowSelection || this.props.expandedRowRender) &&
615
- some(this.props.dataSource, record => this.foundation.getRecordKey(record) == null)
616
- ) {
617
- logger.error(
618
- 'You must specify a key for each element in the dataSource or use "rowKey" to specify an attribute name as the primary key!'
619
- );
620
- }
621
- };
622
-
623
- _invokeRowSelection = (funcName: string, ...args: any[]) => {
624
- const func = get(this.state, ['rowSelection', funcName]);
625
-
626
- if (typeof func === 'function') {
627
- func(...args);
628
- }
629
- };
630
-
631
- _invokeColumnFn = (key: string, funcName: string, ...args: any[]) => {
632
- if (key && funcName) {
633
- const column = this.foundation.getQuery(key);
634
- const func = get(column, funcName, null);
635
-
636
- if (typeof func === 'function') {
637
- func(...args);
638
- }
639
- }
640
- };
641
-
642
- _cacheHeaderRef = (node: HTMLDivElement) => {
643
- this.headerWrapRef.current = node;
644
- };
645
-
646
- getCurrentPageData = () => {
647
- const pageData = this.foundation.getCurrentPageData();
648
- const retObj = ['dataSource', 'groups'].reduce((result, key) => {
649
- if (pageData[key]) {
650
- result[key] = pageData[key];
651
- }
652
- return result;
653
- }, {});
654
-
655
- return cloneDeep(retObj);
656
- };
657
-
658
- getColumns = (columns: ColumnProps<RecordType>[], children: ReactNode) => (!Array.isArray(columns) || !columns || !columns.length ? getColumns(children) : columns);
659
-
660
- // @ts-ignore
661
- getCellWidths = (...args: any[]) => this.foundation.getCellWidths(...args);
662
- // @ts-ignore
663
- setHeadWidths = (...args: any[]) => this.foundation.setHeadWidths(...args);
664
- // @ts-ignore
665
- getHeadWidths = (...args: any[]) => this.foundation.getHeadWidths(...args);
666
- // @ts-ignore
667
- mergedRowExpandable = (...args: any[]) => this.foundation.mergedRowExpandable(...args);
668
- // @ts-ignore
669
- setBodyHasScrollbar = (...args: any[]) => this.foundation.setBodyHasScrollbar(...args);
670
-
671
- handleWheel = (event: React.WheelEvent<HTMLDivElement>) => {
672
- const { scroll = {} } = this.props;
673
- if (window.navigator.userAgent.match(/Trident\/7\./) && scroll.y) {
674
- event.preventDefault();
675
- const wd = event.deltaY;
676
- const { target } = event;
677
- // const { bodyTable, fixedColumnsBodyLeft, fixedColumnsBodyRight } = this;
678
- const bodyTable = this.bodyWrapRef.current;
679
-
680
- let scrollTop = 0;
681
-
682
- if (this.lastScrollTop) {
683
- scrollTop = this.lastScrollTop + wd;
684
- } else {
685
- scrollTop = wd;
686
- }
687
-
688
- if (bodyTable && target !== bodyTable) {
689
- bodyTable.scrollTop = scrollTop;
690
- }
691
- }
692
- };
693
-
694
- handleBodyScrollLeft = (e: BodyScrollEvent) => {
695
- if (e.currentTarget !== e.target) {
696
- return;
697
- }
698
- const { target } = e;
699
- // const { headTable, bodyTable } = this;
700
- const headTable = this.headerWrapRef.current;
701
- const bodyTable = this.bodyWrapRef.current;
702
- if (target.scrollLeft !== this.lastScrollLeft) {
703
- if (target === bodyTable && headTable) {
704
- headTable.scrollLeft = target.scrollLeft;
705
- } else if (target === headTable && bodyTable) {
706
- bodyTable.scrollLeft = target.scrollLeft;
707
- }
708
- this.setScrollPositionClassName();
709
- }
710
- // Remember last scrollLeft for scroll direction detecting.
711
- this.lastScrollLeft = target.scrollLeft;
712
- };
713
-
714
- handleWindowResize = () => {
715
- this.syncTableWidth();
716
- this.setScrollPositionClassName();
717
- };
718
-
719
- handleBodyScrollTop = (e: BodyScrollEvent) => {
720
- const { target } = e;
721
- if (e.currentTarget !== target) {
722
- return;
723
- }
724
- const { scroll = {} } = this.props;
725
- // const { headTable, bodyTable, fixedColumnsBodyLeft, fixedColumnsBodyRight } = this;
726
- const headTable = this.headerWrapRef.current;
727
- const bodyTable = this.bodyWrapRef.current;
728
-
729
- if (target.scrollTop !== this.lastScrollTop && scroll.y && target !== headTable) {
730
- const { scrollTop } = target;
731
-
732
- if (bodyTable && target !== bodyTable) {
733
- bodyTable.scrollTop = scrollTop;
734
- }
735
- }
736
- // Remember last scrollTop for scroll direction detecting.
737
- this.lastScrollTop = target.scrollTop;
738
- };
739
-
740
- handleBodyScroll = (e: BodyScrollEvent) => {
741
- this.handleBodyScrollLeft(e);
742
- this.handleBodyScrollTop(e);
743
- };
744
-
745
- setScrollPosition = (position: BodyScrollPosition) => {
746
- const { prefixCls } = this.props;
747
- const positionAll = [
748
- `${prefixCls}-scroll-position-both`,
749
- `${prefixCls}-scroll-position-middle`,
750
- `${prefixCls}-scroll-position-left`,
751
- `${prefixCls}-scroll-position-right`,
752
- ];
753
- this.scrollPosition = position;
754
- const tableNode = this.wrapRef.current;
755
- if (tableNode && tableNode.nodeType) {
756
- if (position === 'both') {
757
- const acceptPosition = [`${prefixCls}-scroll-position-left`, `${prefixCls}-scroll-position-right`];
758
- tableNode.classList.remove(...difference(positionAll, acceptPosition));
759
- tableNode.classList.add(...acceptPosition);
760
- } else {
761
- const acceptPosition = [`${prefixCls}-scroll-position-${position}`];
762
- tableNode.classList.remove(...difference(positionAll, acceptPosition));
763
- tableNode.classList.add(...acceptPosition);
764
- }
765
- }
766
- };
767
-
768
- setScrollPositionClassName = () => {
769
- const node = this.bodyWrapRef.current;
770
- if (node && node.children && node.children.length) {
771
- const scrollToLeft = node.scrollLeft === 0;
772
- const scrollToRight =
773
- node.scrollLeft + 1 >=
774
- node.children[0].getBoundingClientRect().width - node.getBoundingClientRect().width;
775
- if (scrollToLeft && scrollToRight) {
776
- this.setScrollPosition('both');
777
- } else if (scrollToLeft) {
778
- this.setScrollPosition('left');
779
- } else if (scrollToRight) {
780
- this.setScrollPosition('right');
781
- } else if (this.scrollPosition !== 'middle') {
782
- this.setScrollPosition('middle');
783
- }
784
- }
785
- };
786
-
787
- syncTableWidth = () => {
788
- if (this.rootWrapRef && this.rootWrapRef.current) {
789
- this.setState({ tableWidth: this.rootWrapRef.current.getBoundingClientRect().width });
790
- }
791
- };
792
-
793
- renderSelection = (record = {} as any, inHeader = false): React.ReactNode => {
794
- const { rowSelection, disabledRowKeysSet } = this.state;
795
-
796
- if (rowSelection && typeof rowSelection === 'object') {
797
- const { selectedRowKeys = [], selectedRowKeysSet = new Set(), getCheckboxProps, disabled } = rowSelection;
798
-
799
- if (inHeader) {
800
- const columnKey = get(rowSelection, 'key', strings.DEFAULT_KEY_COLUMN_SELECTION);
801
- const allRowKeys = this.cachedFilteredSortedRowKeys;
802
- const allRowKeysSet = this.cachedFilteredSortedRowKeysSet;
803
- const allIsSelected = this.foundation.allIsSelected(selectedRowKeysSet, disabledRowKeysSet, allRowKeys);
804
- const hasRowSelected = this.foundation.hasRowSelected(selectedRowKeys, allRowKeysSet);
805
- return (
806
- <ColumnSelection
807
- aria-label={`${allIsSelected ? 'Deselect' : 'Select'} all rows`}
808
- disabled={disabled}
809
- key={columnKey}
810
- selected={allIsSelected}
811
- indeterminate={hasRowSelected && !allIsSelected}
812
- onChange={(status, e) => {
813
- this.toggleSelectAllRow(status, e);
814
- }}
815
- />
816
- );
817
- } else {
818
- const key = this.foundation.getRecordKey(record);
819
- const selected = selectedRowKeysSet.has(key);
820
- const checkboxPropsFn = () => (typeof getCheckboxProps === 'function' ? getCheckboxProps(record) : {});
821
-
822
- return (
823
- <ColumnSelection
824
- aria-label={`${selected ? 'Deselect' : 'Select'} this row`}
825
- getCheckboxProps={checkboxPropsFn}
826
- selected={selected}
827
- onChange={(status, e) => this.toggleSelectRow(status, key, e)}
828
- />
829
- );
830
- }
831
- }
832
- return null;
833
- };
834
-
835
- renderRowSelectionCallback = (text: string, record: RecordType = {} as RecordType) => this.renderSelection(record);
836
- renderTitleSelectionCallback = () => this.renderSelection(null, true);
837
-
838
- normalizeSelectionColumn = (props: { rowSelection?: TableStateRowSelection<RecordType>; prefixCls?: string } = {}) => {
839
- const { rowSelection, prefixCls } = props;
840
- let column: ColumnProps = {};
841
- if (rowSelection) {
842
- const needOmitSelectionKey = ['selectedRowKeys', 'selectedRowKeysSet'];
843
- column = { key: strings.DEFAULT_KEY_COLUMN_SELECTION };
844
-
845
- if (isObject(rowSelection)) {
846
- column = { ...column, ...omit(rowSelection, needOmitSelectionKey) };
847
- }
848
-
849
- column.className = classnames(column.className, `${prefixCls}-column-selection`);
850
-
851
- column.title = this.renderTitleSelectionCallback;
852
-
853
- column.render = this.renderRowSelectionCallback;
854
- }
855
- return column;
856
- };
857
-
858
- // If there is a scroll bar, manually construct a column and insert it into the header
859
- normalizeScrollbarColumn = (props: { scrollbarWidth?: number } = {}): { key: 'column-scrollbar'; width: number; fixed: 'right' } => {
860
- const { scrollbarWidth = 0 } = props;
861
-
862
- return {
863
- key: strings.DEFAULT_KEY_COLUMN_SCROLLBAR as 'column-scrollbar',
864
- width: scrollbarWidth,
865
- fixed: 'right',
866
- };
867
- };
868
-
869
- /**
870
- * render expand icon
871
- * @param {Object} record
872
- * @param {Boolean} isNested
873
- * @param {String} groupKey
874
- * @returns {ReactNode}
875
- */
876
- renderExpandIcon = (record = {}, isNested = false, groupKey: string | number = null) => {
877
- const { expandedRowKeys } = this.state;
878
- const { expandIcon } = this.props;
879
- const key =
880
- typeof groupKey === 'string' || typeof groupKey === 'number' ?
881
- groupKey :
882
- this.foundation.getRecordKey(record as RecordType);
883
-
884
- return (
885
- <ExpandedIcon
886
- key={key}
887
- componentType={isNested ? 'tree' : 'expand'}
888
- expanded={includes(expandedRowKeys, key)}
889
- expandIcon={expandIcon}
890
- onClick={(expanded, e) => this.handleRowExpanded(expanded, key, e)}
891
- />
892
- );
893
- };
894
-
895
- // @ts-ignore
896
- handleRowExpanded = (...args: any[]) => this.foundation.handleRowExpanded(...args);
897
-
898
- normalizeExpandColumn = (props: { prefixCls?: string; expandCellFixed?: ArrayElement<typeof strings.FIXED_SET>; expandIcon?: ExpandIcon } = {}) => {
899
- let column: ColumnProps = null;
900
-
901
- const { prefixCls, expandCellFixed, expandIcon } = props;
902
-
903
- column = { fixed: expandCellFixed, key: strings.DEFAULT_KEY_COLUMN_EXPAND };
904
-
905
- column.className = classnames(column.className, `${prefixCls}-column-expand`);
906
-
907
- column.render =
908
- expandIcon !== false ?
909
- (text = '', record, index) =>
910
- (this.adapter.mergedRowExpandable(record) ? this.renderExpandIcon(record) : null) :
911
- () => null;
912
-
913
- return column;
914
- };
915
-
916
- /**
917
- * Add sorting, filtering, and rendering functions to columns, and add column event handling
918
- * Title support function, passing parameters as {filter: node, sorter: node, selection: node}
919
- * @param {*} column
920
- */
921
- addFnsInColumn = (column: ColumnProps = {}) => {
922
- if (column && (column.sorter || column.filters || column.useFullRender)) {
923
- const { dataIndex, title: rawTitle, useFullRender } = column;
924
- const curQuery = this.foundation.getQuery(dataIndex);
925
- const titleMap: ColumnTitleProps = {};
926
- const titleArr = [];
927
-
928
- // useFullRender adds select buttons to each column
929
- if (useFullRender) {
930
- titleMap.selection = this.renderSelection(null, true);
931
- }
932
-
933
- const stateSortOrder = get(curQuery, 'sortOrder');
934
- const defaultSortOrder = get(curQuery, 'defaultSortOrder', false);
935
- const sortOrder = this.foundation.isSortOrderValid(stateSortOrder) ? stateSortOrder : defaultSortOrder;
936
- const TitleNode = typeof rawTitle !== 'function' && <React.Fragment key={strings.DEFAULT_KEY_COLUMN_TITLE}>{rawTitle as React.ReactNode}</React.Fragment>;
937
- if (typeof column.sorter === 'function' || column.sorter === true) {
938
- // In order to increase the click hot area of ​​sorting, when sorting is required & useFullRender is false,
939
- // both the title and sorting areas are used as the click hot area for sorting。
940
- const sorter = (
941
- <ColumnSorter
942
- key={strings.DEFAULT_KEY_COLUMN_SORTER}
943
- sortOrder={sortOrder}
944
- onClick={e => this.foundation.handleSort(column, e)}
945
- title={TitleNode}
946
- />
947
- );
948
- useFullRender && (titleMap.sorter = sorter);
949
- titleArr.push(sorter);
950
- } else {
951
- titleArr.push(TitleNode);
952
- }
953
-
954
- const stateFilteredValue = get(curQuery, 'filteredValue');
955
- const defaultFilteredValue = get(curQuery, 'defaultFilteredValue');
956
- const filteredValue = stateFilteredValue ? stateFilteredValue : defaultFilteredValue;
957
- if ((Array.isArray(column.filters) && column.filters.length) || isValidElement(column.filterDropdown)) {
958
- const filter = (
959
- <ColumnFilter
960
- key={strings.DEFAULT_KEY_COLUMN_FILTER}
961
- {...curQuery}
962
- filteredValue={filteredValue}
963
- onFilterDropdownVisibleChange={(visible: boolean) => this.foundation.toggleShowFilter(dataIndex, visible)}
964
- onSelect={(data: OnSelectData) => this.foundation.handleFilterSelect(dataIndex, data)}
965
- />
966
- );
967
- useFullRender && (titleMap.filter = filter);
968
- titleArr.push(filter);
969
- }
970
-
971
- const newTitle =
972
- typeof rawTitle === 'function' ?
973
- () => rawTitle(titleMap) : titleArr;
974
-
975
- column = { ...column, title: newTitle };
976
- }
977
-
978
- return column;
979
- };
980
-
981
- toggleSelectRow = (selected: boolean, realKey: string | number, e: TableSelectionCellEvent) => {
982
- this.foundation.handleSelectRow(realKey, selected, e);
983
- };
984
-
985
- toggleSelectAllRow = (status: boolean, e: TableSelectionCellEvent) => {
986
- this.foundation.handleSelectAllRow(status, e);
987
- };
988
-
989
- /**
990
- * render pagination
991
- * @param {object} pagination
992
- * @param {object} propRenderPagination
993
- */
994
- renderPagination = (pagination: TablePaginationProps, propRenderPagination: RenderPagination) => {
995
- if (!pagination) {
996
- return null;
997
- }
998
-
999
- // use memoized pagination
1000
- const mergedPagination = this.foundation.memoizedPagination(pagination);
1001
-
1002
- return (
1003
- <LocaleConsumer componentName="Table">
1004
- {(locale: TableLocale) => {
1005
- const info = this.foundation.formatPaginationInfo(mergedPagination, locale.pageText);
1006
- return <TablePagination info={info} pagination={mergedPagination} renderPagination={propRenderPagination} />;
1007
- }}
1008
- </LocaleConsumer>
1009
- );
1010
- };
1011
-
1012
- renderTitle = (props: { title?: ReactNode | ((dataSource?: RecordType[]) => ReactNode); prefixCls?: string; dataSource?: any[] } = {}) => {
1013
- let { title } = props;
1014
- const { prefixCls, dataSource } = props;
1015
-
1016
- if (typeof title === 'function') {
1017
- title = title(dataSource);
1018
- }
1019
-
1020
- return isValidElement(title) || typeof title === 'string' ? (
1021
- <div className={`${prefixCls}-title`} x-semi-prop="title">{title}</div>
1022
- ) : null;
1023
- };
1024
-
1025
- renderEmpty = (props: { prefixCls?: string; empty?: ReactNode; dataSource?: RecordType[] } = {}) => {
1026
- const { prefixCls, empty, dataSource } = props;
1027
- const wrapCls = `${prefixCls}-placeholder`;
1028
- const isEmpty = this.foundation.isEmpty(dataSource);
1029
-
1030
- if (!isEmpty) {
1031
- return null;
1032
- }
1033
-
1034
- return (
1035
- <LocaleConsumer componentName="Table" key={'emptyText'}>
1036
- {(locale: TableLocale, localeCode: string) => (
1037
- <div className={wrapCls}>
1038
- <div className={`${prefixCls}-empty`} x-semi-prop="empty">
1039
- {empty || locale.emptyText}
1040
- </div>
1041
- </div>
1042
- )}
1043
- </LocaleConsumer>
1044
- );
1045
- };
1046
-
1047
- renderFooter = (props: { footer?: ReactNode | ((dataSource?: RecordType[]) => ReactNode); prefixCls?: string; dataSource?: RecordType[] } = {}) => {
1048
- let { footer } = props;
1049
- const { prefixCls, dataSource } = props;
1050
-
1051
- if (typeof footer === 'function') {
1052
- footer = footer(dataSource);
1053
- }
1054
-
1055
- return isValidElement(footer) || typeof footer === 'string' ? (
1056
- <div className={`${prefixCls}-footer`} key="footer" x-semi-prop="footer">
1057
- {footer}
1058
- </div>
1059
- ) : null;
1060
- };
1061
-
1062
- renderMainTable = (props: any) => {
1063
- const useFixedHeader = this.adapter.useFixedHeader();
1064
- const emptySlot = this.renderEmpty(props);
1065
-
1066
- const table = [
1067
- this.renderTable({
1068
- ...props,
1069
- fixed: false,
1070
- useFixedHeader,
1071
- headerRef: this._cacheHeaderRef,
1072
- bodyRef: this.bodyWrapRef,
1073
- includeHeader: !useFixedHeader,
1074
- }),
1075
- emptySlot,
1076
- this.renderFooter(props),
1077
- ];
1078
-
1079
- return table;
1080
- };
1081
-
1082
-
1083
- renderTable = (props: RenderTableProps<RecordType>) => {
1084
- const {
1085
- columns,
1086
- filteredColumns,
1087
- fixed,
1088
- useFixedHeader,
1089
- scroll,
1090
- prefixCls,
1091
- anyColumnFixed,
1092
- includeHeader,
1093
- showHeader,
1094
- components,
1095
- headerRef,
1096
- bodyRef,
1097
- onHeaderRow,
1098
- rowSelection,
1099
- dataSource,
1100
- bodyHasScrollBar,
1101
- disabledRowKeysSet,
1102
- } = props;
1103
- const selectedRowKeysSet = get(rowSelection, 'selectedRowKeysSet', new Set());
1104
-
1105
- const headTable =
1106
- fixed || useFixedHeader ? (
1107
- <HeadTable
1108
- key="head"
1109
- anyColumnFixed={anyColumnFixed}
1110
- ref={headerRef}
1111
- columns={filteredColumns}
1112
- prefixCls={prefixCls}
1113
- fixed={fixed}
1114
- handleBodyScroll={this.handleBodyScrollLeft}
1115
- components={components}
1116
- scroll={scroll}
1117
- showHeader={showHeader}
1118
- selectedRowKeysSet={selectedRowKeysSet}
1119
- onHeaderRow={onHeaderRow}
1120
- dataSource={dataSource}
1121
- bodyHasScrollBar={bodyHasScrollBar}
1122
- />
1123
- ) : null;
1124
-
1125
- const bodyTable = (
1126
- <BodyTable
1127
- {...omit(props, ['rowSelection', 'headWidths']) as any}
1128
- key="body"
1129
- ref={bodyRef}
1130
- columns={filteredColumns}
1131
- fixed={fixed}
1132
- prefixCls={prefixCls}
1133
- handleWheel={this.handleWheel}
1134
- handleBodyScroll={this.handleBodyScroll}
1135
- anyColumnFixed={anyColumnFixed}
1136
- includeHeader={includeHeader}
1137
- showHeader={showHeader}
1138
- scroll={scroll}
1139
- components={components}
1140
- store={this.store}
1141
- selectedRowKeysSet={selectedRowKeysSet}
1142
- disabledRowKeysSet={disabledRowKeysSet}
1143
- />
1144
- );
1145
-
1146
- return [headTable, bodyTable];
1147
- };
1148
-
1149
- /**
1150
- * When columns change, call this function to get the latest withFnsColumns
1151
- * In addition to changes in columns, these props changes must be recalculated
1152
- * - hideExpandedColumn
1153
- * -rowSelection changes from trusy to falsy or rowSelection.hidden changes
1154
- * -isAnyFixedRight(columns) || get(scroll,'y') changes
1155
- *
1156
- * columns变化时,调用此函数获取最新的withFnsColumns
1157
- * 除了 columns 变化,这些 props 变化也要重新计算
1158
- * - hideExpandedColumn
1159
- * - rowSelection 从 trusy 变为 falsy 或 rowSelection.hidden 发生变化
1160
- * - isAnyFixedRight(columns) || get(scroll, 'y') 发生变化
1161
- *
1162
- * @param {Array} queries
1163
- * @param {Array} cachedColumns
1164
- * @returns columns after adding extended functions
1165
- */
1166
- handleColumns = (queries: ColumnProps<RecordType>[], cachedColumns: ColumnProps<RecordType>[]) => {
1167
- const { hideExpandedColumn, scroll, prefixCls, expandCellFixed, expandIcon, rowSelection } = this.props;
1168
- const childrenColumnName = 'children';
1169
- let columns: ColumnProps<RecordType>[] = cloneDeep(cachedColumns);
1170
-
1171
- // eslint-disable-next-line @typescript-eslint/no-shadow
1172
- const addFns = (columns: ColumnProps<RecordType>[] = []) => {
1173
- if (Array.isArray(columns) && columns.length) {
1174
- each(columns, (column, index, originColumns) => {
1175
- const newColumn = this.addFnsInColumn(column);
1176
- const children = column[childrenColumnName];
1177
- if (Array.isArray(children) && children.length) {
1178
- const newChildren = [...children];
1179
- addFns(newChildren);
1180
- newColumn[childrenColumnName] = newChildren;
1181
- }
1182
- originColumns[index] = newColumn;
1183
- });
1184
- }
1185
- };
1186
-
1187
- addFns(columns);
1188
-
1189
- // hideExpandedColumn=false render expand column separately
1190
- if (!hideExpandedColumn) {
1191
- const column = this.normalizeExpandColumn({ prefixCls, expandCellFixed, expandIcon });
1192
-
1193
- const destIndex = findIndex(columns, item => item.key === strings.DEFAULT_KEY_COLUMN_EXPAND);
1194
- if (column) {
1195
- if (destIndex > -1) {
1196
- columns[destIndex] = { ...column, ...columns[destIndex] };
1197
- } else if (column.fixed === 'right') {
1198
- columns = [...columns, column];
1199
- } else {
1200
- columns = [column, ...columns];
1201
- }
1202
- }
1203
- }
1204
-
1205
- // selection column
1206
- if (rowSelection && !get(rowSelection, 'hidden')) {
1207
- const destIndex = findIndex(columns, item => item.key === strings.DEFAULT_KEY_COLUMN_SELECTION);
1208
- const column = this.normalizeSelectionColumn({ rowSelection, prefixCls });
1209
-
1210
- if (destIndex > -1) {
1211
- columns[destIndex] = { ...column, ...columns[destIndex] };
1212
- } else if (column.fixed === 'right') {
1213
- columns = [...columns, column];
1214
- } else {
1215
- columns = [column, ...columns];
1216
- }
1217
- }
1218
-
1219
- assignColumnKeys(columns);
1220
-
1221
- return columns;
1222
- };
1223
-
1224
- /**
1225
- * Convert children to columns object
1226
- * @param {Array} columns
1227
- * @param {ReactNode} children
1228
- * @returns {Array}
1229
- */
1230
- normalizeColumns = (columns: ColumnProps<RecordType>[], children: ReactNode) => {
1231
- const normalColumns = cloneDeep(this.getColumns(columns, children));
1232
- return normalColumns;
1233
- };
1234
-
1235
- /**
1236
- * Combine pagination and table paging processing functions
1237
- */
1238
- mergePagination = (pagination: TablePaginationProps) => {
1239
- const newPagination = { onChange: this.foundation.setPage, ...pagination };
1240
- return newPagination;
1241
- };
1242
-
1243
- render() {
1244
- let {
1245
- scroll,
1246
- prefixCls,
1247
- className,
1248
- style: wrapStyle = {},
1249
- bordered,
1250
- id,
1251
- pagination: propPagination,
1252
- virtualized,
1253
- size,
1254
- renderPagination: propRenderPagination,
1255
- getVirtualizedListRef,
1256
- loading,
1257
- hideExpandedColumn,
1258
- rowSelection: propRowSelection,
1259
- ...rest
1260
- } = this.props;
1261
-
1262
- let {
1263
- rowSelection,
1264
- expandedRowKeys,
1265
- headWidths,
1266
- tableWidth,
1267
- pagination,
1268
- dataSource,
1269
- queries,
1270
- cachedColumns,
1271
- bodyHasScrollBar,
1272
- } = this.state;
1273
-
1274
- wrapStyle = { ...wrapStyle };
1275
-
1276
- let columns: ColumnProps<RecordType>[];
1277
- /**
1278
- * As state.queries will change, the columns should be refreshed as a whole at this time
1279
- * The scene of changes in queries
1280
- * 1. Filter
1281
- * 2. Pagination
1282
- *
1283
- * useFullRender needs to be passed to the user selection ReactNode, so columns need to be recalculated every time the selectedRowKeys changes
1284
- * TODO: In the future, the selection passed to the user can be changed to the function type, allowing the user to execute the function to obtain the real-time status of the selection title
1285
- *
1286
- * 由于state.queries会发生变化,此时columns应该整体刷新
1287
- * queries变化的场景
1288
- * 1. 筛选
1289
- * 2. 分页
1290
- * useFullRender需要传给用户selection ReactNode,因此需要每次selectedRowKeys变化时重新计算columns
1291
- * TODO: 未来可以将传给用户的selection改为函数类型,让用户执行函数获取selection title的实时状态
1292
- */
1293
- if (!this.adapter.isAnyColumnUseFullRender(queries)) {
1294
- const rowSelectionUpdate: boolean = propRowSelection && !get(propRowSelection, 'hidden');
1295
- columns = this.foundation.memoizedWithFnsColumns(
1296
- queries,
1297
- cachedColumns,
1298
- rowSelectionUpdate,
1299
- hideExpandedColumn,
1300
- // Update the columns after the body scrollbar changes to ensure that the head and body are aligned
1301
- bodyHasScrollBar
1302
- );
1303
- } else {
1304
- columns = this.handleColumns(queries, cachedColumns);
1305
- }
1306
- const filteredColumns: ColumnProps<RecordType>[] = this.foundation.memoizedFilterColumns(columns);
1307
- const flattenFnsColumns: ColumnProps<RecordType>[] = this.foundation.memoizedFlattenFnsColumns(columns);
1308
-
1309
- const anyColumnFixed = this.adapter.isAnyColumnFixed(columns);
1310
-
1311
-
1312
- /**
1313
- * - If it is the first page break, you need to calculate the current page
1314
- * - If it is manual paging, call foundation to modify the state
1315
- *
1316
- * TODO: After merging issue 1007, you can place it in the constructor to complete
1317
- * The reason is that #1007 exposes the parameters required by getCurrentPageData in the constructor
1318
- */
1319
- if (isNull(dataSource)) {
1320
- const pageData: BasePageData<RecordType> = this.foundation.getCurrentPageData(this.props.dataSource);
1321
- dataSource = pageData.dataSource;
1322
- pagination = pageData.pagination;
1323
- }
1324
-
1325
- const props = {
1326
- ...rest,
1327
- ...this.state,
1328
- // props not in rest
1329
- virtualized,
1330
- scroll,
1331
- prefixCls,
1332
- size,
1333
- hideExpandedColumn,
1334
- // renamed state
1335
- columns,
1336
- // calculated value
1337
- anyColumnFixed,
1338
- rowExpandable: this.mergedRowExpandable,
1339
- pagination,
1340
- dataSource,
1341
- rowSelection,
1342
- expandedRowKeys,
1343
- renderExpandIcon: this.renderExpandIcon,
1344
- filteredColumns,
1345
- };
1346
-
1347
- const x = get(scroll, 'x');
1348
- const y = get(scroll, 'y');
1349
-
1350
- if (virtualized) {
1351
- if (typeof wrapStyle.width !== 'number') {
1352
- wrapStyle.width = x;
1353
- }
1354
- }
1355
-
1356
- const wrapCls = classnames({
1357
- [`${prefixCls}-${strings.SIZE_SMALL}`]: size === strings.SIZE_SMALL,
1358
- [`${prefixCls}-${strings.SIZE_MIDDLE}`]: size === strings.SIZE_MIDDLE,
1359
- [`${prefixCls}-virtualized`]: Boolean(virtualized),
1360
- [`${prefixCls}-bordered`]: bordered,
1361
- [`${prefixCls}-fixed-header`]: Boolean(y),
1362
- [`${prefixCls}-scroll-position-left`]: ['both', 'left'].includes(this.position),
1363
- [`${prefixCls}-scroll-position-right`]: ['both', 'right'].includes(this.position),
1364
- });
1365
-
1366
- // pagination
1367
- const tablePagination = pagination && propPagination ? this.renderPagination(pagination as TablePaginationProps, propRenderPagination) : null;
1368
- const paginationPosition = get(propPagination, 'position', 'bottom');
1369
-
1370
- const tableContextValue: TableContextProps = {
1371
- ...this.context,
1372
- headWidths,
1373
- tableWidth,
1374
- anyColumnFixed,
1375
- flattenedColumns: flattenFnsColumns,
1376
- renderExpandIcon: this.renderExpandIcon,
1377
- renderSelection: this.renderSelection,
1378
- setHeadWidths: this.setHeadWidths,
1379
- getHeadWidths: this.getHeadWidths,
1380
- getCellWidths: this.getCellWidths,
1381
- handleRowExpanded: this.handleRowExpanded,
1382
- getVirtualizedListRef,
1383
- setBodyHasScrollbar: this.setBodyHasScrollbar,
1384
- };
1385
-
1386
- return (
1387
- <div
1388
- ref={this.rootWrapRef}
1389
- className={classnames(className, `${prefixCls}-wrapper`)}
1390
- data-column-fixed={anyColumnFixed}
1391
- style={wrapStyle}
1392
- id={id}
1393
- >
1394
- <TableContextProvider {...tableContextValue}>
1395
- <Spin spinning={loading} size="large">
1396
- <div ref={this.wrapRef} className={wrapCls}>
1397
- <React.Fragment key={'pagination-top'}>
1398
- {['top', 'both'].includes(paginationPosition) ? tablePagination : null}
1399
- </React.Fragment>
1400
- {this.renderTitle({ title: (props as any).title, dataSource: props.dataSource, prefixCls: props.prefixCls })}
1401
- <div className={`${prefixCls}-container`}>{this.renderMainTable({ ...props })}</div>
1402
- <React.Fragment key={'pagination-bottom'}>
1403
- {['bottom', 'both'].includes(paginationPosition) ? tablePagination : null}
1404
- </React.Fragment>
1405
- </div>
1406
- </Spin>
1407
- </TableContextProvider>
1408
- </div>
1409
- );
1410
- }
1411
- }
1412
-
1413
- export default Table;