@douyinfe/semi-ui 2.0.8 → 2.1.0-next.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 (548) hide show
  1. package/dist/css/semi.css +195 -43
  2. package/dist/css/semi.min.css +1 -1
  3. package/dist/umd/semi-ui.js +632 -612
  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 +510 -0
  8. package/lib/cjs/_base/base.d.ts +32 -0
  9. package/lib/cjs/_base/base.js +7 -0
  10. package/lib/cjs/_base/base.scss +3 -0
  11. package/lib/cjs/_base/baseComponent.d.ts +25 -0
  12. package/lib/cjs/_base/baseComponent.js +84 -0
  13. package/lib/cjs/_base/reactUtils.d.ts +8 -0
  14. package/lib/cjs/_base/reactUtils.js +55 -0
  15. package/lib/cjs/_portal/index.d.ts +36 -0
  16. package/lib/cjs/_portal/index.js +151 -0
  17. package/lib/cjs/_utils/index.d.ts +68 -0
  18. package/lib/cjs/_utils/index.js +189 -0
  19. package/lib/cjs/anchor/anchor-context.d.ts +7 -0
  20. package/lib/cjs/anchor/anchor-context.js +18 -0
  21. package/lib/cjs/anchor/index.d.ts +93 -0
  22. package/lib/cjs/anchor/index.js +334 -0
  23. package/lib/cjs/anchor/link.d.ts +37 -0
  24. package/lib/cjs/anchor/link.js +174 -0
  25. package/lib/cjs/autoComplete/index.d.ts +142 -0
  26. package/lib/cjs/autoComplete/index.js +427 -0
  27. package/lib/cjs/avatar/avatarGroup.d.ts +22 -0
  28. package/lib/cjs/avatar/avatarGroup.js +167 -0
  29. package/lib/cjs/avatar/index.d.ts +48 -0
  30. package/lib/cjs/avatar/index.js +259 -0
  31. package/lib/cjs/avatar/interface.d.ts +31 -0
  32. package/lib/cjs/avatar/interface.js +7 -0
  33. package/lib/cjs/backtop/index.d.ts +38 -0
  34. package/lib/cjs/backtop/index.js +144 -0
  35. package/lib/cjs/badge/index.d.ts +38 -0
  36. package/lib/cjs/badge/index.js +107 -0
  37. package/lib/cjs/banner/index.d.ts +50 -0
  38. package/lib/cjs/banner/index.js +209 -0
  39. package/lib/cjs/breadcrumb/bread-context.d.ts +11 -0
  40. package/lib/cjs/breadcrumb/bread-context.js +18 -0
  41. package/lib/cjs/breadcrumb/index.d.ts +81 -0
  42. package/lib/cjs/breadcrumb/index.js +286 -0
  43. package/lib/cjs/breadcrumb/item.d.ts +53 -0
  44. package/lib/cjs/breadcrumb/item.js +246 -0
  45. package/lib/cjs/button/Button.d.ts +61 -0
  46. package/lib/cjs/button/Button.js +145 -0
  47. package/lib/cjs/button/buttonGroup.d.ts +26 -0
  48. package/lib/cjs/button/buttonGroup.js +91 -0
  49. package/lib/cjs/button/index.d.ts +38 -0
  50. package/lib/cjs/button/index.js +45 -0
  51. package/lib/cjs/button/splitButtonGroup.d.ts +12 -0
  52. package/lib/cjs/button/splitButtonGroup.js +47 -0
  53. package/lib/cjs/calendar/dayCalendar.d.ts +50 -0
  54. package/lib/cjs/calendar/dayCalendar.js +234 -0
  55. package/lib/cjs/calendar/dayCol.d.ts +41 -0
  56. package/lib/cjs/calendar/dayCol.js +211 -0
  57. package/lib/cjs/calendar/index.d.ts +42 -0
  58. package/lib/cjs/calendar/index.js +119 -0
  59. package/lib/cjs/calendar/interface.d.ts +37 -0
  60. package/lib/cjs/calendar/interface.js +7 -0
  61. package/lib/cjs/calendar/monthCalendar.d.ts +59 -0
  62. package/lib/cjs/calendar/monthCalendar.js +474 -0
  63. package/lib/cjs/calendar/rangeCalendar.d.ts +51 -0
  64. package/lib/cjs/calendar/rangeCalendar.js +329 -0
  65. package/lib/cjs/calendar/timeCol.d.ts +15 -0
  66. package/lib/cjs/calendar/timeCol.js +101 -0
  67. package/lib/cjs/calendar/weekCalendar.d.ts +52 -0
  68. package/lib/cjs/calendar/weekCalendar.js +331 -0
  69. package/lib/cjs/card/cardGroup.d.ts +27 -0
  70. package/lib/cjs/card/cardGroup.js +87 -0
  71. package/lib/cjs/card/index.d.ts +75 -0
  72. package/lib/cjs/card/index.js +222 -0
  73. package/lib/cjs/card/meta.d.ts +26 -0
  74. package/lib/cjs/card/meta.js +93 -0
  75. package/lib/cjs/cascader/index.d.ts +178 -0
  76. package/lib/cjs/cascader/index.js +972 -0
  77. package/lib/cjs/cascader/item.d.ts +72 -0
  78. package/lib/cjs/cascader/item.js +353 -0
  79. package/lib/cjs/checkbox/checkbox.d.ts +61 -0
  80. package/lib/cjs/checkbox/checkbox.js +205 -0
  81. package/lib/cjs/checkbox/checkboxGroup.d.ts +49 -0
  82. package/lib/cjs/checkbox/checkboxGroup.js +183 -0
  83. package/lib/cjs/checkbox/checkboxInner.d.ts +40 -0
  84. package/lib/cjs/checkbox/checkboxInner.js +97 -0
  85. package/lib/cjs/checkbox/context.d.ts +14 -0
  86. package/lib/cjs/checkbox/context.js +17 -0
  87. package/lib/cjs/checkbox/index.d.ts +8 -0
  88. package/lib/cjs/checkbox/index.js +29 -0
  89. package/lib/cjs/collapse/collapse-context.d.ts +13 -0
  90. package/lib/cjs/collapse/collapse-context.js +18 -0
  91. package/lib/cjs/collapse/index.d.ts +43 -0
  92. package/lib/cjs/collapse/index.js +169 -0
  93. package/lib/cjs/collapse/item.d.ts +23 -0
  94. package/lib/cjs/collapse/item.js +151 -0
  95. package/lib/cjs/collapsible/index.d.ts +36 -0
  96. package/lib/cjs/collapsible/index.js +177 -0
  97. package/lib/cjs/configProvider/context.d.ts +11 -0
  98. package/lib/cjs/configProvider/context.js +18 -0
  99. package/lib/cjs/configProvider/index.d.ts +19 -0
  100. package/lib/cjs/configProvider/index.js +83 -0
  101. package/lib/cjs/datePicker/dateInput.d.ts +81 -0
  102. package/lib/cjs/datePicker/dateInput.js +408 -0
  103. package/lib/cjs/datePicker/datePicker.d.ts +180 -0
  104. package/lib/cjs/datePicker/datePicker.js +723 -0
  105. package/lib/cjs/datePicker/footer.d.ts +11 -0
  106. package/lib/cjs/datePicker/footer.js +39 -0
  107. package/lib/cjs/datePicker/index.d.ts +11 -0
  108. package/lib/cjs/datePicker/index.js +67 -0
  109. package/lib/cjs/datePicker/month.d.ts +203 -0
  110. package/lib/cjs/datePicker/month.js +503 -0
  111. package/lib/cjs/datePicker/monthsGrid.d.ts +88 -0
  112. package/lib/cjs/datePicker/monthsGrid.js +700 -0
  113. package/lib/cjs/datePicker/navigation.d.ts +44 -0
  114. package/lib/cjs/datePicker/navigation.js +117 -0
  115. package/lib/cjs/datePicker/quickControl.d.ts +22 -0
  116. package/lib/cjs/datePicker/quickControl.js +86 -0
  117. package/lib/cjs/datePicker/yearAndMonth.d.ts +48 -0
  118. package/lib/cjs/datePicker/yearAndMonth.js +279 -0
  119. package/lib/cjs/descriptions/descriptions-context.d.ts +7 -0
  120. package/lib/cjs/descriptions/descriptions-context.js +18 -0
  121. package/lib/cjs/descriptions/index.d.ts +47 -0
  122. package/lib/cjs/descriptions/index.js +102 -0
  123. package/lib/cjs/descriptions/item.d.ts +19 -0
  124. package/lib/cjs/descriptions/item.js +89 -0
  125. package/lib/cjs/dropdown/context.d.ts +5 -0
  126. package/lib/cjs/dropdown/context.js +20 -0
  127. package/lib/cjs/dropdown/dropdownDivider.d.ts +5 -0
  128. package/lib/cjs/dropdown/dropdownDivider.js +40 -0
  129. package/lib/cjs/dropdown/dropdownItem.d.ts +47 -0
  130. package/lib/cjs/dropdown/dropdownItem.js +134 -0
  131. package/lib/cjs/dropdown/dropdownMenu.d.ts +12 -0
  132. package/lib/cjs/dropdown/dropdownMenu.js +66 -0
  133. package/lib/cjs/dropdown/dropdownTitle.d.ts +16 -0
  134. package/lib/cjs/dropdown/dropdownTitle.js +62 -0
  135. package/lib/cjs/dropdown/index.d.ts +103 -0
  136. package/lib/cjs/dropdown/index.js +284 -0
  137. package/lib/cjs/empty/index.d.ts +38 -0
  138. package/lib/cjs/empty/index.js +141 -0
  139. package/lib/cjs/form/arrayField.d.ts +33 -0
  140. package/lib/cjs/form/arrayField.js +265 -0
  141. package/lib/cjs/form/baseForm.d.ts +148 -0
  142. package/lib/cjs/form/baseForm.js +326 -0
  143. package/lib/cjs/form/context.d.ts +9 -0
  144. package/lib/cjs/form/context.js +35 -0
  145. package/lib/cjs/form/errorMessage.d.ts +25 -0
  146. package/lib/cjs/form/errorMessage.js +108 -0
  147. package/lib/cjs/form/field.d.ts +96 -0
  148. package/lib/cjs/form/field.js +132 -0
  149. package/lib/cjs/form/group.d.ts +14 -0
  150. package/lib/cjs/form/group.js +147 -0
  151. package/lib/cjs/form/hoc/withField.d.ts +12 -0
  152. package/lib/cjs/form/hoc/withField.js +557 -0
  153. package/lib/cjs/form/hoc/withFormApi.d.ts +3 -0
  154. package/lib/cjs/form/hoc/withFormApi.js +25 -0
  155. package/lib/cjs/form/hoc/withFormState.d.ts +3 -0
  156. package/lib/cjs/form/hoc/withFormState.js +25 -0
  157. package/lib/cjs/form/hooks/index.d.ts +8 -0
  158. package/lib/cjs/form/hooks/index.js +72 -0
  159. package/lib/cjs/form/hooks/useArrayFieldState.d.ts +4 -0
  160. package/lib/cjs/form/hooks/useArrayFieldState.js +21 -0
  161. package/lib/cjs/form/hooks/useFieldApi.d.ts +10 -0
  162. package/lib/cjs/form/hooks/useFieldApi.js +31 -0
  163. package/lib/cjs/form/hooks/useFieldState.d.ts +6 -0
  164. package/lib/cjs/form/hooks/useFieldState.js +40 -0
  165. package/lib/cjs/form/hooks/useFormApi.d.ts +1 -0
  166. package/lib/cjs/form/hooks/useFormApi.js +17 -0
  167. package/lib/cjs/form/hooks/useFormState.d.ts +2 -0
  168. package/lib/cjs/form/hooks/useFormState.js +21 -0
  169. package/lib/cjs/form/hooks/useFormUpdater.d.ts +1 -0
  170. package/lib/cjs/form/hooks/useFormUpdater.js +17 -0
  171. package/lib/cjs/form/hooks/useStateWithGetter.d.ts +1 -0
  172. package/lib/cjs/form/hooks/useStateWithGetter.js +27 -0
  173. package/lib/cjs/form/index.d.ts +22 -0
  174. package/lib/cjs/form/index.js +117 -0
  175. package/lib/cjs/form/interface.d.ts +111 -0
  176. package/lib/cjs/form/interface.js +36 -0
  177. package/lib/cjs/form/label.d.ts +39 -0
  178. package/lib/cjs/form/label.js +91 -0
  179. package/lib/cjs/form/section.d.ts +17 -0
  180. package/lib/cjs/form/section.js +60 -0
  181. package/lib/cjs/form/slot.d.ts +14 -0
  182. package/lib/cjs/form/slot.js +200 -0
  183. package/lib/cjs/grid/col.d.ts +55 -0
  184. package/lib/cjs/grid/col.js +146 -0
  185. package/lib/cjs/grid/index.d.ts +5 -0
  186. package/lib/cjs/grid/index.js +27 -0
  187. package/lib/cjs/grid/row.d.ts +58 -0
  188. package/lib/cjs/grid/row.js +207 -0
  189. package/lib/cjs/iconButton/index.d.ts +47 -0
  190. package/lib/cjs/iconButton/index.js +154 -0
  191. package/lib/cjs/icons/index.d.ts +3 -0
  192. package/lib/cjs/icons/index.js +16 -0
  193. package/lib/cjs/index.d.ts +79 -0
  194. package/lib/cjs/index.js +782 -0
  195. package/lib/cjs/input/index.d.ts +170 -0
  196. package/lib/cjs/input/index.js +499 -0
  197. package/lib/cjs/input/inputGroup.d.ts +38 -0
  198. package/lib/cjs/input/inputGroup.js +163 -0
  199. package/lib/cjs/input/textarea.d.ts +44 -0
  200. package/lib/cjs/input/textarea.js +337 -0
  201. package/lib/cjs/inputNumber/index.d.ts +109 -0
  202. package/lib/cjs/inputNumber/index.js +528 -0
  203. package/lib/cjs/layout/Sider.d.ts +38 -0
  204. package/lib/cjs/layout/Sider.js +160 -0
  205. package/lib/cjs/layout/index.d.ts +43 -0
  206. package/lib/cjs/layout/index.js +174 -0
  207. package/lib/cjs/layout/layout-context.d.ts +9 -0
  208. package/lib/cjs/layout/layout-context.js +25 -0
  209. package/lib/cjs/list/index.d.ts +59 -0
  210. package/lib/cjs/list/index.js +189 -0
  211. package/lib/cjs/list/item.d.ts +36 -0
  212. package/lib/cjs/list/item.js +151 -0
  213. package/lib/cjs/list/list-context.d.ts +12 -0
  214. package/lib/cjs/list/list-context.js +18 -0
  215. package/lib/cjs/locale/context.d.ts +4 -0
  216. package/lib/cjs/locale/context.js +18 -0
  217. package/lib/cjs/locale/interface.d.ts +151 -0
  218. package/lib/cjs/locale/interface.js +7 -0
  219. package/lib/cjs/locale/localeConsumer.d.ts +21 -0
  220. package/lib/cjs/locale/localeConsumer.js +80 -0
  221. package/lib/cjs/locale/localeProvider.d.ts +18 -0
  222. package/lib/cjs/locale/localeProvider.js +54 -0
  223. package/lib/cjs/locale/source/ar.d.ts +3 -0
  224. package/lib/cjs/locale/source/ar.js +165 -0
  225. package/lib/cjs/locale/source/en_GB.d.ts +3 -0
  226. package/lib/cjs/locale/source/en_GB.js +165 -0
  227. package/lib/cjs/locale/source/en_US.d.ts +3 -0
  228. package/lib/cjs/locale/source/en_US.js +165 -0
  229. package/lib/cjs/locale/source/id_ID.d.ts +3 -0
  230. package/lib/cjs/locale/source/id_ID.js +165 -0
  231. package/lib/cjs/locale/source/ja_JP.d.ts +3 -0
  232. package/lib/cjs/locale/source/ja_JP.js +166 -0
  233. package/lib/cjs/locale/source/ko_KR.d.ts +3 -0
  234. package/lib/cjs/locale/source/ko_KR.js +166 -0
  235. package/lib/cjs/locale/source/ms_MY.d.ts +3 -0
  236. package/lib/cjs/locale/source/ms_MY.js +165 -0
  237. package/lib/cjs/locale/source/pt_BR.d.ts +3 -0
  238. package/lib/cjs/locale/source/pt_BR.js +173 -0
  239. package/lib/cjs/locale/source/ru_RU.d.ts +3 -0
  240. package/lib/cjs/locale/source/ru_RU.js +168 -0
  241. package/lib/cjs/locale/source/th_TH.d.ts +3 -0
  242. package/lib/cjs/locale/source/th_TH.js +169 -0
  243. package/lib/cjs/locale/source/tr_TR.d.ts +3 -0
  244. package/lib/cjs/locale/source/tr_TR.js +168 -0
  245. package/lib/cjs/locale/source/vi_VN.d.ts +3 -0
  246. package/lib/cjs/locale/source/vi_VN.js +168 -0
  247. package/lib/cjs/locale/source/zh_CN.d.ts +3 -0
  248. package/lib/cjs/locale/source/zh_CN.js +166 -0
  249. package/lib/cjs/locale/source/zh_TW.d.ts +3 -0
  250. package/lib/cjs/locale/source/zh_TW.js +166 -0
  251. package/lib/cjs/modal/ConfirmModal.d.ts +4 -0
  252. package/lib/cjs/modal/ConfirmModal.js +137 -0
  253. package/lib/cjs/modal/Modal.d.ts +133 -0
  254. package/lib/cjs/modal/Modal.js +437 -0
  255. package/lib/cjs/modal/ModalContent.d.ts +38 -0
  256. package/lib/cjs/modal/ModalContent.js +337 -0
  257. package/lib/cjs/modal/confirm.d.ts +215 -0
  258. package/lib/cjs/modal/confirm.js +132 -0
  259. package/lib/cjs/modal/index.d.ts +8 -0
  260. package/lib/cjs/modal/index.js +18 -0
  261. package/lib/cjs/modal/useModal/HookModal.d.ts +13 -0
  262. package/lib/cjs/modal/useModal/HookModal.js +79 -0
  263. package/lib/cjs/modal/useModal/index.d.ts +24 -0
  264. package/lib/cjs/modal/useModal/index.js +80 -0
  265. package/lib/cjs/motions/Rotate.d.ts +23 -0
  266. package/lib/cjs/motions/Rotate.js +87 -0
  267. package/lib/cjs/navigation/CollapseButton.d.ts +10 -0
  268. package/lib/cjs/navigation/CollapseButton.js +58 -0
  269. package/lib/cjs/navigation/Footer.d.ts +27 -0
  270. package/lib/cjs/navigation/Footer.js +107 -0
  271. package/lib/cjs/navigation/Header.d.ts +34 -0
  272. package/lib/cjs/navigation/Header.js +99 -0
  273. package/lib/cjs/navigation/Item.d.ts +70 -0
  274. package/lib/cjs/navigation/Item.js +294 -0
  275. package/lib/cjs/navigation/OpenIconTransition.d.ts +14 -0
  276. package/lib/cjs/navigation/OpenIconTransition.js +90 -0
  277. package/lib/cjs/navigation/SubNav.d.ts +103 -0
  278. package/lib/cjs/navigation/SubNav.js +438 -0
  279. package/lib/cjs/navigation/SubNavTransition.d.ts +17 -0
  280. package/lib/cjs/navigation/SubNavTransition.js +90 -0
  281. package/lib/cjs/navigation/index.d.ts +145 -0
  282. package/lib/cjs/navigation/index.js +442 -0
  283. package/lib/cjs/navigation/nav-context.d.ts +7 -0
  284. package/lib/cjs/navigation/nav-context.js +22 -0
  285. package/lib/cjs/notification/NoticeTransition.d.ts +10 -0
  286. package/lib/cjs/notification/NoticeTransition.js +90 -0
  287. package/lib/cjs/notification/index.d.ts +52 -0
  288. package/lib/cjs/notification/index.js +316 -0
  289. package/lib/cjs/notification/notice.d.ts +51 -0
  290. package/lib/cjs/notification/notice.js +240 -0
  291. package/lib/cjs/notification/useNotification/HookNotice.d.ts +7 -0
  292. package/lib/cjs/notification/useNotification/HookNotice.js +72 -0
  293. package/lib/cjs/notification/useNotification/index.d.ts +10 -0
  294. package/lib/cjs/notification/useNotification/index.js +161 -0
  295. package/lib/cjs/overflowList/index.d.ts +87 -0
  296. package/lib/cjs/overflowList/index.js +290 -0
  297. package/lib/cjs/overflowList/intersectionObserver.d.ts +34 -0
  298. package/lib/cjs/overflowList/intersectionObserver.js +119 -0
  299. package/lib/cjs/pagination/index.d.ts +99 -0
  300. package/lib/cjs/pagination/index.js +481 -0
  301. package/lib/cjs/popconfirm/index.d.ts +86 -0
  302. package/lib/cjs/popconfirm/index.js +254 -0
  303. package/lib/cjs/popover/Arrow.d.ts +9 -0
  304. package/lib/cjs/popover/Arrow.js +86 -0
  305. package/lib/cjs/popover/index.d.ts +87 -0
  306. package/lib/cjs/popover/index.js +158 -0
  307. package/lib/cjs/progress/index.d.ts +68 -0
  308. package/lib/cjs/progress/index.js +303 -0
  309. package/lib/cjs/radio/context.d.ts +22 -0
  310. package/lib/cjs/radio/context.js +18 -0
  311. package/lib/cjs/radio/index.d.ts +10 -0
  312. package/lib/cjs/radio/index.js +29 -0
  313. package/lib/cjs/radio/radio.d.ts +79 -0
  314. package/lib/cjs/radio/radio.js +225 -0
  315. package/lib/cjs/radio/radioGroup.d.ts +64 -0
  316. package/lib/cjs/radio/radioGroup.js +189 -0
  317. package/lib/cjs/radio/radioInner.d.ts +45 -0
  318. package/lib/cjs/radio/radioInner.js +140 -0
  319. package/lib/cjs/rating/index.d.ts +91 -0
  320. package/lib/cjs/rating/index.js +312 -0
  321. package/lib/cjs/rating/item.d.ts +38 -0
  322. package/lib/cjs/rating/item.js +143 -0
  323. package/lib/cjs/resizeObserver/index.d.ts +35 -0
  324. package/lib/cjs/resizeObserver/index.js +117 -0
  325. package/lib/cjs/scrollList/index.d.ts +26 -0
  326. package/lib/cjs/scrollList/index.js +82 -0
  327. package/lib/cjs/scrollList/scrollItem.d.ts +104 -0
  328. package/lib/cjs/scrollList/scrollItem.js +551 -0
  329. package/lib/cjs/select/index.d.ts +234 -0
  330. package/lib/cjs/select/index.js +1102 -0
  331. package/lib/cjs/select/option.d.ts +50 -0
  332. package/lib/cjs/select/option.js +211 -0
  333. package/lib/cjs/select/optionGroup.d.ts +20 -0
  334. package/lib/cjs/select/optionGroup.js +56 -0
  335. package/lib/cjs/select/utils.d.ts +9 -0
  336. package/lib/cjs/select/utils.js +116 -0
  337. package/lib/cjs/select/virtualRow.d.ts +8 -0
  338. package/lib/cjs/select/virtualRow.js +25 -0
  339. package/lib/cjs/sideSheet/SideSheetContent.d.ts +35 -0
  340. package/lib/cjs/sideSheet/SideSheetContent.js +195 -0
  341. package/lib/cjs/sideSheet/SideSheetTransition.d.ts +12 -0
  342. package/lib/cjs/sideSheet/SideSheetTransition.js +120 -0
  343. package/lib/cjs/sideSheet/index.d.ts +59 -0
  344. package/lib/cjs/sideSheet/index.js +303 -0
  345. package/lib/cjs/skeleton/index.d.ts +33 -0
  346. package/lib/cjs/skeleton/index.js +101 -0
  347. package/lib/cjs/skeleton/item.d.ts +34 -0
  348. package/lib/cjs/skeleton/item.js +134 -0
  349. package/lib/cjs/slider/index.d.ts +30 -0
  350. package/lib/cjs/slider/index.js +647 -0
  351. package/lib/cjs/space/index.d.ts +33 -0
  352. package/lib/cjs/space/index.js +116 -0
  353. package/lib/cjs/space/utils.d.ts +5 -0
  354. package/lib/cjs/space/utils.js +54 -0
  355. package/lib/cjs/spin/icon.d.ts +10 -0
  356. package/lib/cjs/spin/icon.js +103 -0
  357. package/lib/cjs/spin/index.d.ts +63 -0
  358. package/lib/cjs/spin/index.js +145 -0
  359. package/lib/cjs/steps/basicStep.d.ts +46 -0
  360. package/lib/cjs/steps/basicStep.js +180 -0
  361. package/lib/cjs/steps/basicSteps.d.ts +41 -0
  362. package/lib/cjs/steps/basicSteps.js +127 -0
  363. package/lib/cjs/steps/context.d.ts +6 -0
  364. package/lib/cjs/steps/context.js +17 -0
  365. package/lib/cjs/steps/fillStep.d.ts +34 -0
  366. package/lib/cjs/steps/fillStep.js +142 -0
  367. package/lib/cjs/steps/fillSteps.d.ts +35 -0
  368. package/lib/cjs/steps/fillSteps.js +127 -0
  369. package/lib/cjs/steps/index.d.ts +39 -0
  370. package/lib/cjs/steps/index.js +104 -0
  371. package/lib/cjs/steps/navStep.d.ts +30 -0
  372. package/lib/cjs/steps/navStep.js +99 -0
  373. package/lib/cjs/steps/navSteps.d.ts +33 -0
  374. package/lib/cjs/steps/navSteps.js +103 -0
  375. package/lib/cjs/steps/step.d.ts +13 -0
  376. package/lib/cjs/steps/step.js +58 -0
  377. package/lib/cjs/switch/index.d.ts +48 -0
  378. package/lib/cjs/switch/index.js +159 -0
  379. package/lib/cjs/table/Body/BaseRow.d.ts +125 -0
  380. package/lib/cjs/table/Body/BaseRow.js +347 -0
  381. package/lib/cjs/table/Body/ExpandedRow.d.ts +63 -0
  382. package/lib/cjs/table/Body/ExpandedRow.js +176 -0
  383. package/lib/cjs/table/Body/SectionRow.d.ts +67 -0
  384. package/lib/cjs/table/Body/SectionRow.js +248 -0
  385. package/lib/cjs/table/Body/index.d.ts +70 -0
  386. package/lib/cjs/table/Body/index.js +861 -0
  387. package/lib/cjs/table/ColGroup.d.ts +24 -0
  388. package/lib/cjs/table/ColGroup.js +78 -0
  389. package/lib/cjs/table/Column.d.ts +36 -0
  390. package/lib/cjs/table/Column.js +32 -0
  391. package/lib/cjs/table/ColumnFilter.d.ts +34 -0
  392. package/lib/cjs/table/ColumnFilter.js +192 -0
  393. package/lib/cjs/table/ColumnSelection.d.ts +40 -0
  394. package/lib/cjs/table/ColumnSelection.js +101 -0
  395. package/lib/cjs/table/ColumnShape.d.ts +32 -0
  396. package/lib/cjs/table/ColumnShape.js +47 -0
  397. package/lib/cjs/table/ColumnSorter.d.ts +25 -0
  398. package/lib/cjs/table/ColumnSorter.js +77 -0
  399. package/lib/cjs/table/CustomExpandIcon.d.ts +36 -0
  400. package/lib/cjs/table/CustomExpandIcon.js +102 -0
  401. package/lib/cjs/table/HeadTable.d.ts +20 -0
  402. package/lib/cjs/table/HeadTable.js +127 -0
  403. package/lib/cjs/table/ResizableHeaderCell.d.ts +13 -0
  404. package/lib/cjs/table/ResizableHeaderCell.js +75 -0
  405. package/lib/cjs/table/ResizableTable.d.ts +5 -0
  406. package/lib/cjs/table/ResizableTable.js +213 -0
  407. package/lib/cjs/table/Table.d.ts +305 -0
  408. package/lib/cjs/table/Table.js +1558 -0
  409. package/lib/cjs/table/TableCell.d.ts +124 -0
  410. package/lib/cjs/table/TableCell.js +394 -0
  411. package/lib/cjs/table/TableContextProvider.d.ts +3 -0
  412. package/lib/cjs/table/TableContextProvider.js +61 -0
  413. package/lib/cjs/table/TableHeader.d.ts +28 -0
  414. package/lib/cjs/table/TableHeader.js +190 -0
  415. package/lib/cjs/table/TableHeaderRow.d.ts +59 -0
  416. package/lib/cjs/table/TableHeaderRow.js +212 -0
  417. package/lib/cjs/table/TablePagination.d.ts +23 -0
  418. package/lib/cjs/table/TablePagination.js +67 -0
  419. package/lib/cjs/table/getColumns.d.ts +8 -0
  420. package/lib/cjs/table/getColumns.js +52 -0
  421. package/lib/cjs/table/index.d.ts +100 -0
  422. package/lib/cjs/table/index.js +85 -0
  423. package/lib/cjs/table/interface.d.ts +290 -0
  424. package/lib/cjs/table/interface.js +7 -0
  425. package/lib/cjs/table/table-context.d.ts +19 -0
  426. package/lib/cjs/table/table-context.js +25 -0
  427. package/lib/cjs/table/utils.d.ts +42 -0
  428. package/lib/cjs/table/utils.js +144 -0
  429. package/lib/cjs/tabs/TabBar.d.ts +41 -0
  430. package/lib/cjs/tabs/TabBar.js +309 -0
  431. package/lib/cjs/tabs/TabPane.d.ts +27 -0
  432. package/lib/cjs/tabs/TabPane.js +164 -0
  433. package/lib/cjs/tabs/TabPaneTransition.d.ts +4 -0
  434. package/lib/cjs/tabs/TabPaneTransition.js +119 -0
  435. package/lib/cjs/tabs/index.d.ts +50 -0
  436. package/lib/cjs/tabs/index.js +365 -0
  437. package/lib/cjs/tabs/interface.d.ts +72 -0
  438. package/lib/cjs/tabs/interface.js +7 -0
  439. package/lib/cjs/tabs/tabs-context.d.ts +4 -0
  440. package/lib/cjs/tabs/tabs-context.js +18 -0
  441. package/lib/cjs/tag/group.d.ts +40 -0
  442. package/lib/cjs/tag/group.js +165 -0
  443. package/lib/cjs/tag/index.d.ts +33 -0
  444. package/lib/cjs/tag/index.js +219 -0
  445. package/lib/cjs/tag/interface.d.ts +30 -0
  446. package/lib/cjs/tag/interface.js +7 -0
  447. package/lib/cjs/tagInput/index.d.ts +130 -0
  448. package/lib/cjs/tagInput/index.js +414 -0
  449. package/lib/cjs/timePicker/Combobox.d.ts +73 -0
  450. package/lib/cjs/timePicker/Combobox.js +344 -0
  451. package/lib/cjs/timePicker/PanelShape.d.ts +6 -0
  452. package/lib/cjs/timePicker/PanelShape.js +21 -0
  453. package/lib/cjs/timePicker/TimeInput.d.ts +66 -0
  454. package/lib/cjs/timePicker/TimeInput.js +226 -0
  455. package/lib/cjs/timePicker/TimePicker.d.ts +197 -0
  456. package/lib/cjs/timePicker/TimePicker.js +501 -0
  457. package/lib/cjs/timePicker/TimeShape.d.ts +10 -0
  458. package/lib/cjs/timePicker/TimeShape.js +26 -0
  459. package/lib/cjs/timePicker/index.d.ts +95 -0
  460. package/lib/cjs/timePicker/index.js +51 -0
  461. package/lib/cjs/timeline/index.d.ts +31 -0
  462. package/lib/cjs/timeline/index.js +145 -0
  463. package/lib/cjs/timeline/item.d.ts +30 -0
  464. package/lib/cjs/timeline/item.js +94 -0
  465. package/lib/cjs/toast/ToastTransition.d.ts +7 -0
  466. package/lib/cjs/toast/ToastTransition.js +71 -0
  467. package/lib/cjs/toast/index.d.ts +200 -0
  468. package/lib/cjs/toast/index.js +281 -0
  469. package/lib/cjs/toast/toast.d.ts +45 -0
  470. package/lib/cjs/toast/toast.js +185 -0
  471. package/lib/cjs/toast/useToast/HookToast.d.ts +7 -0
  472. package/lib/cjs/toast/useToast/HookToast.js +72 -0
  473. package/lib/cjs/toast/useToast/index.d.ts +9 -0
  474. package/lib/cjs/toast/useToast/index.js +107 -0
  475. package/lib/cjs/tooltip/ArrowBoundingShape.d.ts +8 -0
  476. package/lib/cjs/tooltip/ArrowBoundingShape.js +22 -0
  477. package/lib/cjs/tooltip/TooltipStyledTransition.d.ts +9 -0
  478. package/lib/cjs/tooltip/TooltipStyledTransition.js +54 -0
  479. package/lib/cjs/tooltip/TriangleArrow.d.ts +5 -0
  480. package/lib/cjs/tooltip/TriangleArrow.js +54 -0
  481. package/lib/cjs/tooltip/TriangleArrowVertical.d.ts +5 -0
  482. package/lib/cjs/tooltip/TriangleArrowVertical.js +53 -0
  483. package/lib/cjs/tooltip/index.d.ts +147 -0
  484. package/lib/cjs/tooltip/index.js +698 -0
  485. package/lib/cjs/transfer/index.d.ts +164 -0
  486. package/lib/cjs/transfer/index.js +660 -0
  487. package/lib/cjs/tree/autoSizer.d.ts +28 -0
  488. package/lib/cjs/tree/autoSizer.js +115 -0
  489. package/lib/cjs/tree/collapse.d.ts +29 -0
  490. package/lib/cjs/tree/collapse.js +164 -0
  491. package/lib/cjs/tree/index.d.ts +135 -0
  492. package/lib/cjs/tree/index.js +793 -0
  493. package/lib/cjs/tree/interface.d.ts +119 -0
  494. package/lib/cjs/tree/interface.js +7 -0
  495. package/lib/cjs/tree/nodeList.d.ts +9 -0
  496. package/lib/cjs/tree/nodeList.js +141 -0
  497. package/lib/cjs/tree/treeContext.d.ts +40 -0
  498. package/lib/cjs/tree/treeContext.js +18 -0
  499. package/lib/cjs/tree/treeNode.d.ts +54 -0
  500. package/lib/cjs/tree/treeNode.js +527 -0
  501. package/lib/cjs/tree/treeUtil.d.ts +1 -0
  502. package/lib/cjs/tree/treeUtil.js +28 -0
  503. package/lib/cjs/treeSelect/index.d.ts +232 -0
  504. package/lib/cjs/treeSelect/index.js +1274 -0
  505. package/lib/cjs/trigger/index.d.ts +36 -0
  506. package/lib/cjs/trigger/index.js +71 -0
  507. package/lib/cjs/typography/base.d.ts +176 -0
  508. package/lib/cjs/typography/base.js +714 -0
  509. package/lib/cjs/typography/copyable.d.ts +43 -0
  510. package/lib/cjs/typography/copyable.js +151 -0
  511. package/lib/cjs/typography/index.d.ts +17 -0
  512. package/lib/cjs/typography/index.js +48 -0
  513. package/lib/cjs/typography/interface.d.ts +25 -0
  514. package/lib/cjs/typography/interface.js +7 -0
  515. package/lib/cjs/typography/paragraph.d.ts +56 -0
  516. package/lib/cjs/typography/paragraph.js +83 -0
  517. package/lib/cjs/typography/text.d.ts +59 -0
  518. package/lib/cjs/typography/text.js +73 -0
  519. package/lib/cjs/typography/title.d.ts +61 -0
  520. package/lib/cjs/typography/title.js +97 -0
  521. package/lib/cjs/typography/typography.d.ts +22 -0
  522. package/lib/cjs/typography/typography.js +82 -0
  523. package/lib/cjs/typography/util.d.ts +2 -0
  524. package/lib/cjs/typography/util.js +155 -0
  525. package/lib/cjs/upload/fileCard.d.ts +62 -0
  526. package/lib/cjs/upload/fileCard.js +388 -0
  527. package/lib/cjs/upload/index.d.ts +214 -0
  528. package/lib/cjs/upload/index.js +552 -0
  529. package/lib/es/autoComplete/index.d.ts +0 -1
  530. package/lib/es/autoComplete/index.js +0 -1
  531. package/lib/es/datePicker/index.d.ts +1 -1
  532. package/lib/es/form/baseForm.d.ts +1 -1
  533. package/lib/es/form/field.d.ts +1 -1
  534. package/lib/es/form/hoc/withField.d.ts +2 -2
  535. package/lib/es/form/interface.d.ts +2 -2
  536. package/lib/es/notification/index.d.ts +1 -1
  537. package/lib/es/select/index.d.ts +0 -1
  538. package/lib/es/select/index.js +0 -1
  539. package/lib/es/slider/index.js +3 -1
  540. package/lib/es/spin/index.d.ts +2 -2
  541. package/lib/es/spin/index.js +1 -1
  542. package/lib/es/table/Table.d.ts +1 -1
  543. package/lib/es/table/index.d.ts +1 -1
  544. package/lib/es/table/interface.d.ts +2 -1
  545. package/lib/es/toast/index.d.ts +1 -1
  546. package/lib/es/typography/title.d.ts +1 -1
  547. package/lib/es/upload/index.d.ts +1 -0
  548. package/package.json +10 -10
@@ -0,0 +1,1558 @@
1
+ "use strict";
2
+
3
+ var _someInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/some");
4
+
5
+ var _includesInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/includes");
6
+
7
+ var _findIndexInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/find-index");
8
+
9
+ var _findInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/find");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
13
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
14
+
15
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
16
+
17
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
18
+
19
+ _Object$defineProperty(exports, "__esModule", {
20
+ value: true
21
+ });
22
+
23
+ exports.default = void 0;
24
+
25
+ var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
26
+
27
+ var _getOwnPropertySymbols = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols"));
28
+
29
+ var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
30
+
31
+ var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/is-array"));
32
+
33
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
34
+
35
+ var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
36
+
37
+ var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
38
+
39
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
40
+
41
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
42
+
43
+ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
44
+
45
+ var _react = _interopRequireWildcard(require("react"));
46
+
47
+ var _propTypes = _interopRequireDefault(require("prop-types"));
48
+
49
+ var _classnames = _interopRequireDefault(require("classnames"));
50
+
51
+ var _lodashEs = require("lodash-es");
52
+
53
+ var _utils = require("@douyinfe/semi-foundation/lib/cjs/table/utils");
54
+
55
+ var _Store = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/utils/Store"));
56
+
57
+ var _foundation = _interopRequireDefault(require("@douyinfe/semi-foundation/lib/cjs/table/foundation"));
58
+
59
+ var _constants = require("@douyinfe/semi-foundation/lib/cjs/table/constants");
60
+
61
+ require("@douyinfe/semi-foundation/lib/cjs/table/table.css");
62
+
63
+ var _spin = _interopRequireDefault(require("../spin"));
64
+
65
+ var _baseComponent = _interopRequireDefault(require("../_base/baseComponent"));
66
+
67
+ var _localeConsumer = _interopRequireDefault(require("../locale/localeConsumer"));
68
+
69
+ var _ColumnShape = _interopRequireDefault(require("./ColumnShape"));
70
+
71
+ var _getColumns = _interopRequireDefault(require("./getColumns"));
72
+
73
+ var _tableContext = _interopRequireDefault(require("./table-context"));
74
+
75
+ var _TableContextProvider = _interopRequireDefault(require("./TableContextProvider"));
76
+
77
+ var _ColumnSelection = _interopRequireDefault(require("./ColumnSelection"));
78
+
79
+ var _TablePagination = _interopRequireDefault(require("./TablePagination"));
80
+
81
+ var _ColumnFilter = _interopRequireDefault(require("./ColumnFilter"));
82
+
83
+ var _ColumnSorter = _interopRequireDefault(require("./ColumnSorter"));
84
+
85
+ var _CustomExpandIcon = _interopRequireDefault(require("./CustomExpandIcon"));
86
+
87
+ var _HeadTable = _interopRequireDefault(require("./HeadTable"));
88
+
89
+ var _Body = _interopRequireDefault(require("./Body"));
90
+
91
+ var _utils2 = require("./utils");
92
+
93
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
94
+
95
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
96
+
97
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
98
+ var t = {};
99
+
100
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && (0, _indexOf.default)(e).call(e, p) < 0) t[p] = s[p];
101
+
102
+ if (s != null && typeof _getOwnPropertySymbols.default === "function") for (var i = 0, p = (0, _getOwnPropertySymbols.default)(s); i < p.length; i++) {
103
+ if ((0, _indexOf.default)(e).call(e, p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
104
+ }
105
+ return t;
106
+ };
107
+ /* eslint-disable no-nested-ternary */
108
+
109
+ /* eslint-disable prefer-const */
110
+
111
+ /* eslint-disable prefer-destructuring */
112
+
113
+ /* eslint-disable no-shadow */
114
+
115
+ /* eslint-disable no-param-reassign */
116
+
117
+ /* eslint-disable max-len */
118
+
119
+ /* eslint-disable react/no-did-update-set-state */
120
+
121
+ /* eslint-disable eqeqeq */
122
+
123
+ /* eslint-disable max-lines-per-function */
124
+
125
+
126
+ class Table extends _baseComponent.default {
127
+ constructor(props, context) {
128
+ var _this;
129
+
130
+ super(props);
131
+ _this = this;
132
+
133
+ // TODO: notify when data don't have key
134
+ this._warnIfNoKey = () => {
135
+ if ((this.props.rowSelection || this.props.expandedRowRender) && (0, _someInstanceProperty(_lodashEs))(this.props.dataSource, record => this.foundation.getRecordKey(record) == null)) {
136
+ _utils2.logger.error('You must specify a key for each element in the dataSource or use "rowKey" to specify an attribute name as the primary key!');
137
+ }
138
+ };
139
+
140
+ this._invokeRowSelection = function (funcName) {
141
+ const func = (0, _lodashEs.get)(_this.state, ['rowSelection', funcName]);
142
+
143
+ if (typeof func === 'function') {
144
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
145
+ args[_key - 1] = arguments[_key];
146
+ }
147
+
148
+ func(...args);
149
+ }
150
+ };
151
+
152
+ this._invokeColumnFn = function (key, funcName) {
153
+ if (key && funcName) {
154
+ const column = _this.foundation.getQuery(key);
155
+
156
+ const func = (0, _lodashEs.get)(column, funcName, null);
157
+
158
+ if (typeof func === 'function') {
159
+ for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
160
+ args[_key2 - 2] = arguments[_key2];
161
+ }
162
+
163
+ func(...args);
164
+ }
165
+ }
166
+ };
167
+
168
+ this._cacheHeaderRef = node => {
169
+ this.headerWrapRef.current = node;
170
+ };
171
+
172
+ this.getCurrentPageData = () => {
173
+ var _context;
174
+
175
+ const pageData = this.foundation.getCurrentPageData();
176
+ const retObj = (0, _reduce.default)(_context = ['dataSource', 'groups']).call(_context, (result, key) => {
177
+ if (pageData[key]) {
178
+ result[key] = pageData[key];
179
+ }
180
+
181
+ return result;
182
+ }, {});
183
+ return (0, _utils2.cloneDeep)(retObj);
184
+ };
185
+
186
+ this.getColumns = (columns, children) => !(0, _isArray.default)(columns) || !columns || !columns.length ? (0, _getColumns.default)(children) : columns; // @ts-ignore
187
+
188
+
189
+ this.getCellWidths = function () {
190
+ return _this.foundation.getCellWidths(...arguments);
191
+ }; // @ts-ignore
192
+
193
+
194
+ this.setHeadWidths = function () {
195
+ return _this.foundation.setHeadWidths(...arguments);
196
+ }; // @ts-ignore
197
+
198
+
199
+ this.getHeadWidths = function () {
200
+ return _this.foundation.getHeadWidths(...arguments);
201
+ }; // @ts-ignore
202
+
203
+
204
+ this.mergedRowExpandable = function () {
205
+ return _this.foundation.mergedRowExpandable(...arguments);
206
+ }; // @ts-ignore
207
+
208
+
209
+ this.setBodyHasScrollbar = function () {
210
+ return _this.foundation.setBodyHasScrollbar(...arguments);
211
+ };
212
+
213
+ this.handleWheel = event => {
214
+ const {
215
+ scroll = {}
216
+ } = this.props;
217
+
218
+ if (window.navigator.userAgent.match(/Trident\/7\./) && scroll.y) {
219
+ event.preventDefault();
220
+ const wd = event.deltaY;
221
+ const {
222
+ target
223
+ } = event; // const { bodyTable, fixedColumnsBodyLeft, fixedColumnsBodyRight } = this;
224
+
225
+ const bodyTable = this.bodyWrapRef.current;
226
+ let scrollTop = 0;
227
+
228
+ if (this.lastScrollTop) {
229
+ scrollTop = this.lastScrollTop + wd;
230
+ } else {
231
+ scrollTop = wd;
232
+ }
233
+
234
+ if (bodyTable && target !== bodyTable) {
235
+ bodyTable.scrollTop = scrollTop;
236
+ }
237
+ }
238
+ };
239
+
240
+ this.handleBodyScrollLeft = e => {
241
+ if (e.currentTarget !== e.target) {
242
+ return;
243
+ }
244
+
245
+ const {
246
+ target
247
+ } = e; // const { headTable, bodyTable } = this;
248
+
249
+ const headTable = this.headerWrapRef.current;
250
+ const bodyTable = this.bodyWrapRef.current;
251
+
252
+ if (target.scrollLeft !== this.lastScrollLeft) {
253
+ if (target === bodyTable && headTable) {
254
+ headTable.scrollLeft = target.scrollLeft;
255
+ } else if (target === headTable && bodyTable) {
256
+ bodyTable.scrollLeft = target.scrollLeft;
257
+ }
258
+
259
+ this.setScrollPositionClassName();
260
+ } // Remember last scrollLeft for scroll direction detecting.
261
+
262
+
263
+ this.lastScrollLeft = target.scrollLeft;
264
+ };
265
+
266
+ this.handleWindowResize = () => {
267
+ this.syncTableWidth();
268
+ this.setScrollPositionClassName();
269
+ };
270
+
271
+ this.handleBodyScrollTop = e => {
272
+ const {
273
+ target
274
+ } = e;
275
+
276
+ if (e.currentTarget !== target) {
277
+ return;
278
+ }
279
+
280
+ const {
281
+ scroll = {}
282
+ } = this.props; // const { headTable, bodyTable, fixedColumnsBodyLeft, fixedColumnsBodyRight } = this;
283
+
284
+ const headTable = this.headerWrapRef.current;
285
+ const bodyTable = this.bodyWrapRef.current;
286
+
287
+ if (target.scrollTop !== this.lastScrollTop && scroll.y && target !== headTable) {
288
+ const {
289
+ scrollTop
290
+ } = target;
291
+
292
+ if (bodyTable && target !== bodyTable) {
293
+ bodyTable.scrollTop = scrollTop;
294
+ }
295
+ } // Remember last scrollTop for scroll direction detecting.
296
+
297
+
298
+ this.lastScrollTop = target.scrollTop;
299
+ };
300
+
301
+ this.handleBodyScroll = e => {
302
+ this.handleBodyScrollLeft(e);
303
+ this.handleBodyScrollTop(e);
304
+ };
305
+
306
+ this.setScrollPosition = position => {
307
+ const {
308
+ prefixCls
309
+ } = this.props;
310
+ const positionAll = ["".concat(prefixCls, "-scroll-position-both"), "".concat(prefixCls, "-scroll-position-middle"), "".concat(prefixCls, "-scroll-position-left"), "".concat(prefixCls, "-scroll-position-right")];
311
+ this.scrollPosition = position;
312
+ const tableNode = this.wrapRef.current;
313
+
314
+ if (tableNode && tableNode.nodeType) {
315
+ if (position === 'both') {
316
+ const acceptPosition = ["".concat(prefixCls, "-scroll-position-left"), "".concat(prefixCls, "-scroll-position-right")];
317
+ tableNode.classList.remove(...(0, _lodashEs.difference)(positionAll, acceptPosition));
318
+ tableNode.classList.add(...acceptPosition);
319
+ } else {
320
+ var _context2;
321
+
322
+ const acceptPosition = [(0, _concat.default)(_context2 = "".concat(prefixCls, "-scroll-position-")).call(_context2, position)];
323
+ tableNode.classList.remove(...(0, _lodashEs.difference)(positionAll, acceptPosition));
324
+ tableNode.classList.add(...acceptPosition);
325
+ }
326
+ }
327
+ };
328
+
329
+ this.setScrollPositionClassName = () => {
330
+ const node = this.bodyWrapRef.current;
331
+
332
+ if (node && node.children && node.children.length) {
333
+ const scrollToLeft = node.scrollLeft === 0;
334
+ const scrollToRight = node.scrollLeft + 1 >= node.children[0].getBoundingClientRect().width - node.getBoundingClientRect().width;
335
+
336
+ if (scrollToLeft && scrollToRight) {
337
+ this.setScrollPosition('both');
338
+ } else if (scrollToLeft) {
339
+ this.setScrollPosition('left');
340
+ } else if (scrollToRight) {
341
+ this.setScrollPosition('right');
342
+ } else if (this.scrollPosition !== 'middle') {
343
+ this.setScrollPosition('middle');
344
+ }
345
+ }
346
+ };
347
+
348
+ this.syncTableWidth = () => {
349
+ if (this.rootWrapRef && this.rootWrapRef.current) {
350
+ this.setState({
351
+ tableWidth: this.rootWrapRef.current.getBoundingClientRect().width
352
+ });
353
+ }
354
+ };
355
+
356
+ this.renderSelection = function () {
357
+ let record = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
358
+ let inHeader = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
359
+ const {
360
+ rowSelection,
361
+ disabledRowKeysSet
362
+ } = _this.state;
363
+
364
+ if (rowSelection && typeof rowSelection === 'object') {
365
+ const {
366
+ selectedRowKeys = [],
367
+ selectedRowKeysSet = new _set.default(),
368
+ getCheckboxProps,
369
+ disabled
370
+ } = rowSelection;
371
+
372
+ if (inHeader) {
373
+ const columnKey = (0, _lodashEs.get)(rowSelection, 'key', _constants.strings.DEFAULT_KEY_COLUMN_SELECTION);
374
+ const allRowKeys = _this.cachedFilteredSortedRowKeys;
375
+ const allRowKeysSet = _this.cachedFilteredSortedRowKeysSet;
376
+
377
+ const allIsSelected = _this.foundation.allIsSelected(selectedRowKeysSet, disabledRowKeysSet, allRowKeys);
378
+
379
+ const hasRowSelected = _this.foundation.hasRowSelected(selectedRowKeys, allRowKeysSet);
380
+
381
+ return /*#__PURE__*/_react.default.createElement(_ColumnSelection.default, {
382
+ disabled: disabled,
383
+ key: columnKey,
384
+ selected: allIsSelected,
385
+ indeterminate: hasRowSelected && !allIsSelected,
386
+ onChange: (status, e) => {
387
+ _this.toggleSelectAllRow(status, e);
388
+ }
389
+ });
390
+ } else {
391
+ const key = _this.foundation.getRecordKey(record);
392
+
393
+ const selected = selectedRowKeysSet.has(key);
394
+
395
+ const checkboxPropsFn = () => typeof getCheckboxProps === 'function' ? getCheckboxProps(record) : {};
396
+
397
+ return /*#__PURE__*/_react.default.createElement(_ColumnSelection.default, {
398
+ getCheckboxProps: checkboxPropsFn,
399
+ selected: selected,
400
+ onChange: (status, e) => _this.toggleSelectRow(status, key, e)
401
+ });
402
+ }
403
+ }
404
+
405
+ return null;
406
+ };
407
+
408
+ this.renderRowSelectionCallback = function (text) {
409
+ let record = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
410
+ return _this.renderSelection(record);
411
+ };
412
+
413
+ this.renderTitleSelectionCallback = () => this.renderSelection(null, true);
414
+
415
+ this.normalizeSelectionColumn = function () {
416
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
417
+ const {
418
+ rowSelection,
419
+ prefixCls
420
+ } = props;
421
+ let column = {};
422
+
423
+ if (rowSelection) {
424
+ const needOmitSelectionKey = ['selectedRowKeys', 'selectedRowKeysSet'];
425
+ column = {
426
+ key: _constants.strings.DEFAULT_KEY_COLUMN_SELECTION
427
+ };
428
+
429
+ if ((0, _lodashEs.isObject)(rowSelection)) {
430
+ column = (0, _assign.default)((0, _assign.default)({}, column), (0, _lodashEs.omit)(rowSelection, needOmitSelectionKey));
431
+ }
432
+
433
+ column.className = (0, _classnames.default)(column.className, "".concat(prefixCls, "-column-selection"));
434
+ column.title = _this.renderTitleSelectionCallback;
435
+ column.render = _this.renderRowSelectionCallback;
436
+ }
437
+
438
+ return column;
439
+ }; // If there is a scroll bar, manually construct a column and insert it into the header
440
+
441
+
442
+ this.normalizeScrollbarColumn = function () {
443
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
444
+ const {
445
+ scrollbarWidth = 0
446
+ } = props;
447
+ return {
448
+ key: _constants.strings.DEFAULT_KEY_COLUMN_SCROLLBAR,
449
+ width: scrollbarWidth,
450
+ fixed: 'right'
451
+ };
452
+ };
453
+ /**
454
+ * render expand icon
455
+ * @param {Object} record
456
+ * @param {Boolean} isNested
457
+ * @param {String} groupKey
458
+ * @returns {ReactNode}
459
+ */
460
+
461
+
462
+ this.renderExpandIcon = function () {
463
+ let record = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
464
+ let isNested = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
465
+ let groupKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
466
+ const {
467
+ expandedRowKeys
468
+ } = _this.state;
469
+ const {
470
+ expandIcon
471
+ } = _this.props;
472
+ const key = typeof groupKey === 'string' || typeof groupKey === 'number' ? groupKey : _this.foundation.getRecordKey(record);
473
+ return /*#__PURE__*/_react.default.createElement(_CustomExpandIcon.default, {
474
+ key: key,
475
+ componentType: isNested ? 'tree' : 'expand',
476
+ expanded: (0, _includesInstanceProperty2(_lodashEs))(expandedRowKeys, key),
477
+ expandIcon: expandIcon,
478
+ onClick: (expanded, e) => _this.handleRowExpanded(expanded, key, e)
479
+ });
480
+ }; // @ts-ignore
481
+
482
+
483
+ this.handleRowExpanded = function () {
484
+ return _this.foundation.handleRowExpanded(...arguments);
485
+ };
486
+
487
+ this.normalizeExpandColumn = function () {
488
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
489
+ let column = null;
490
+ const {
491
+ prefixCls,
492
+ expandCellFixed,
493
+ expandIcon
494
+ } = props;
495
+ column = {
496
+ fixed: expandCellFixed,
497
+ key: _constants.strings.DEFAULT_KEY_COLUMN_EXPAND
498
+ };
499
+ column.className = (0, _classnames.default)(column.className, "".concat(prefixCls, "-column-expand"));
500
+ column.render = expandIcon !== false ? function () {
501
+ let text = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
502
+ let record = arguments.length > 1 ? arguments[1] : undefined;
503
+ let index = arguments.length > 2 ? arguments[2] : undefined;
504
+ return _this.adapter.mergedRowExpandable(record) ? _this.renderExpandIcon(record) : null;
505
+ } : () => null;
506
+ return column;
507
+ };
508
+ /**
509
+ * Add sorting, filtering, and rendering functions to columns, and add column event handling
510
+ * Title support function, passing parameters as {filter: node, sorter: node, selection: node}
511
+ * @param {*} column
512
+ */
513
+
514
+
515
+ this.addFnsInColumn = function () {
516
+ let column = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
517
+
518
+ if (column && (column.sorter || column.filters || column.useFullRender)) {
519
+ const {
520
+ dataIndex,
521
+ title: rawTitle,
522
+ useFullRender
523
+ } = column;
524
+
525
+ const curQuery = _this.foundation.getQuery(dataIndex);
526
+
527
+ const titleMap = {};
528
+ const titleArr = []; // useFullRender adds select buttons to each column
529
+
530
+ if (useFullRender) {
531
+ titleMap.selection = _this.renderSelection(null, true);
532
+ }
533
+
534
+ const stateSortOrder = (0, _lodashEs.get)(curQuery, 'sortOrder');
535
+ const defaultSortOrder = (0, _lodashEs.get)(curQuery, 'defaultSortOrder', false);
536
+ const sortOrder = _this.foundation.isSortOrderValid(stateSortOrder) ? stateSortOrder : defaultSortOrder;
537
+
538
+ if (typeof column.sorter === 'function' || column.sorter === true) {
539
+ const sorter = /*#__PURE__*/_react.default.createElement(_ColumnSorter.default, {
540
+ key: _constants.strings.DEFAULT_KEY_COLUMN_SORTER,
541
+ sortOrder: sortOrder,
542
+ onClick: e => _this.foundation.handleSort(column, e)
543
+ });
544
+
545
+ useFullRender && (titleMap.sorter = sorter);
546
+ titleArr.push(sorter);
547
+ }
548
+
549
+ if ((0, _isArray.default)(column.filters) && column.filters.length || /*#__PURE__*/(0, _react.isValidElement)(column.filterDropdown)) {
550
+ const filter = /*#__PURE__*/_react.default.createElement(_ColumnFilter.default, (0, _assign.default)({
551
+ key: _constants.strings.DEFAULT_KEY_COLUMN_FILTER
552
+ }, curQuery, {
553
+ onFilterDropdownVisibleChange: visible => _this.foundation.toggleShowFilter(dataIndex, visible),
554
+ onSelect: data => _this.foundation.handleFilterSelect(dataIndex, data)
555
+ }));
556
+
557
+ useFullRender && (titleMap.filter = filter);
558
+ titleArr.push(filter);
559
+ }
560
+
561
+ const newTitle = typeof rawTitle === 'function' ? () => rawTitle(titleMap) : titleArr.unshift( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
562
+ key: _constants.strings.DEFAULT_KEY_COLUMN_TITLE
563
+ }, rawTitle)) && titleArr;
564
+ column = (0, _assign.default)((0, _assign.default)({}, column), {
565
+ title: newTitle
566
+ });
567
+ }
568
+
569
+ return column;
570
+ };
571
+
572
+ this.toggleSelectRow = (selected, realKey, e) => {
573
+ this.foundation.handleSelectRow(realKey, selected, e);
574
+ };
575
+
576
+ this.toggleSelectAllRow = (status, e) => {
577
+ this.foundation.handleSelectAllRow(status, e);
578
+ };
579
+ /**
580
+ * render pagination
581
+ * @param {object} pagination
582
+ */
583
+
584
+
585
+ this.renderPagination = (pagination, propRenderPagination) => {
586
+ if (!pagination) {
587
+ return null;
588
+ } // use memoized pagination
589
+
590
+
591
+ const mergedPagination = this.foundation.memoizedPagination(pagination);
592
+ return /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
593
+ componentName: "Table"
594
+ }, locale => {
595
+ const info = this.foundation.formatPaginationInfo(mergedPagination, locale.pageText);
596
+ return /*#__PURE__*/_react.default.createElement(_TablePagination.default, {
597
+ info: info,
598
+ pagination: mergedPagination,
599
+ renderPagination: propRenderPagination
600
+ });
601
+ });
602
+ };
603
+
604
+ this.renderTitle = function () {
605
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
606
+ let {
607
+ title
608
+ } = props;
609
+ const {
610
+ prefixCls,
611
+ dataSource
612
+ } = props;
613
+
614
+ if (typeof title === 'function') {
615
+ title = title(dataSource);
616
+ }
617
+
618
+ return /*#__PURE__*/(0, _react.isValidElement)(title) || typeof title === 'string' ? /*#__PURE__*/_react.default.createElement("div", {
619
+ className: "".concat(prefixCls, "-title")
620
+ }, title) : null;
621
+ };
622
+
623
+ this.renderEmpty = function () {
624
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
625
+ const {
626
+ prefixCls,
627
+ empty,
628
+ dataSource
629
+ } = props;
630
+ const wrapCls = "".concat(prefixCls, "-placeholder");
631
+
632
+ const isEmpty = _this.foundation.isEmpty(dataSource);
633
+
634
+ if (!isEmpty) {
635
+ return null;
636
+ }
637
+
638
+ return /*#__PURE__*/_react.default.createElement(_localeConsumer.default, {
639
+ componentName: "Table",
640
+ key: 'emptyText'
641
+ }, (locale, localeCode) => /*#__PURE__*/_react.default.createElement("div", {
642
+ className: wrapCls
643
+ }, /*#__PURE__*/_react.default.createElement("div", {
644
+ className: "".concat(prefixCls, "-empty")
645
+ }, empty || locale.emptyText)));
646
+ };
647
+
648
+ this.renderFooter = function () {
649
+ let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
650
+ let {
651
+ footer
652
+ } = props;
653
+ const {
654
+ prefixCls,
655
+ dataSource
656
+ } = props;
657
+
658
+ if (typeof footer === 'function') {
659
+ footer = footer(dataSource);
660
+ }
661
+
662
+ return /*#__PURE__*/(0, _react.isValidElement)(footer) || typeof footer === 'string' ? /*#__PURE__*/_react.default.createElement("div", {
663
+ className: "".concat(prefixCls, "-footer"),
664
+ key: "footer"
665
+ }, footer) : null;
666
+ };
667
+
668
+ this.renderMainTable = props => {
669
+ const useFixedHeader = this.adapter.useFixedHeader();
670
+ const emptySlot = this.renderEmpty(props);
671
+ const table = [this.renderTable((0, _assign.default)((0, _assign.default)({}, props), {
672
+ fixed: false,
673
+ useFixedHeader,
674
+ headerRef: this._cacheHeaderRef,
675
+ bodyRef: this.bodyWrapRef,
676
+ includeHeader: !useFixedHeader
677
+ })), emptySlot, this.renderFooter(props)];
678
+ return table;
679
+ };
680
+
681
+ this.renderTable = props => {
682
+ const {
683
+ columns,
684
+ filteredColumns,
685
+ fixed,
686
+ useFixedHeader,
687
+ scroll,
688
+ prefixCls,
689
+ anyColumnFixed,
690
+ includeHeader,
691
+ showHeader,
692
+ components,
693
+ headerRef,
694
+ bodyRef,
695
+ rowSelection,
696
+ dataSource,
697
+ bodyHasScrollBar,
698
+ disabledRowKeysSet
699
+ } = props;
700
+ const selectedRowKeysSet = (0, _lodashEs.get)(rowSelection, 'selectedRowKeysSet', new _set.default());
701
+ const headTable = fixed || useFixedHeader ? /*#__PURE__*/_react.default.createElement(_HeadTable.default, {
702
+ key: "head",
703
+ anyColumnFixed: anyColumnFixed,
704
+ ref: headerRef,
705
+ columns: filteredColumns,
706
+ prefixCls: prefixCls,
707
+ fixed: fixed,
708
+ handleBodyScroll: this.handleBodyScrollLeft,
709
+ components: components,
710
+ scroll: scroll,
711
+ showHeader: showHeader,
712
+ selectedRowKeysSet: selectedRowKeysSet,
713
+ dataSource: dataSource,
714
+ bodyHasScrollBar: bodyHasScrollBar
715
+ }) : null;
716
+
717
+ const bodyTable = /*#__PURE__*/_react.default.createElement(_Body.default, (0, _assign.default)({}, (0, _lodashEs.omit)(props, ['rowSelection', 'headWidths']), {
718
+ key: "body",
719
+ ref: bodyRef,
720
+ columns: filteredColumns,
721
+ fixed: fixed,
722
+ prefixCls: prefixCls,
723
+ handleWheel: this.handleWheel,
724
+ handleBodyScroll: this.handleBodyScroll,
725
+ anyColumnFixed: anyColumnFixed,
726
+ includeHeader: includeHeader,
727
+ showHeader: showHeader,
728
+ scroll: scroll,
729
+ components: components,
730
+ store: this.store,
731
+ selectedRowKeysSet: selectedRowKeysSet,
732
+ disabledRowKeysSet: disabledRowKeysSet
733
+ }));
734
+
735
+ return [headTable, bodyTable];
736
+ };
737
+ /**
738
+ * When columns change, call this function to get the latest withFnsColumns
739
+ * In addition to changes in columns, these props changes must be recalculated
740
+ * - hideExpandedColumn
741
+ * -rowSelection changes from trusy to falsy or rowSelection.hidden changes
742
+ * -isAnyFixedRight(columns) || get(scroll,'y') changes
743
+ *
744
+ * columns变化时,调用此函数获取最新的withFnsColumns
745
+ * 除了 columns 变化,这些 props 变化也要重新计算
746
+ * - hideExpandedColumn
747
+ * - rowSelection 从 trusy 变为 falsy 或 rowSelection.hidden 发生变化
748
+ * - isAnyFixedRight(columns) || get(scroll, 'y') 发生变化
749
+ *
750
+ * @param {Array} queries
751
+ * @param {Array} cachedColumns
752
+ * @returns columns after adding extended functions
753
+ */
754
+
755
+
756
+ this.handleColumns = (queries, cachedColumns) => {
757
+ const {
758
+ hideExpandedColumn,
759
+ scroll,
760
+ prefixCls,
761
+ expandCellFixed,
762
+ expandIcon,
763
+ rowSelection
764
+ } = this.props;
765
+ const childrenColumnName = 'children';
766
+ let columns = (0, _utils2.cloneDeep)(cachedColumns); // eslint-disable-next-line @typescript-eslint/no-shadow
767
+
768
+ const addFns = function () {
769
+ let columns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
770
+
771
+ if ((0, _isArray.default)(columns) && columns.length) {
772
+ (0, _lodashEs.each)(columns, (column, index, originColumns) => {
773
+ const newColumn = _this.addFnsInColumn(column);
774
+
775
+ const children = column[childrenColumnName];
776
+
777
+ if ((0, _isArray.default)(children) && children.length) {
778
+ const newChildren = [...children];
779
+ addFns(newChildren);
780
+ newColumn[childrenColumnName] = newChildren;
781
+ }
782
+
783
+ originColumns[index] = newColumn;
784
+ });
785
+ }
786
+ };
787
+
788
+ addFns(columns); // hideExpandedColumn=false render expand column separately
789
+
790
+ if (!hideExpandedColumn) {
791
+ const column = this.normalizeExpandColumn({
792
+ prefixCls,
793
+ expandCellFixed,
794
+ expandIcon
795
+ });
796
+ const destIndex = (0, _findIndexInstanceProperty(_lodashEs))(columns, item => item.key === _constants.strings.DEFAULT_KEY_COLUMN_EXPAND);
797
+
798
+ if (column) {
799
+ if (destIndex > -1) {
800
+ columns[destIndex] = (0, _assign.default)((0, _assign.default)({}, column), columns[destIndex]);
801
+ } else if (column.fixed === 'right') {
802
+ columns = [...columns, column];
803
+ } else {
804
+ columns = [column, ...columns];
805
+ }
806
+ }
807
+ } // selection column
808
+
809
+
810
+ if (rowSelection && !(0, _lodashEs.get)(rowSelection, 'hidden')) {
811
+ const destIndex = (0, _findIndexInstanceProperty(_lodashEs))(columns, item => item.key === _constants.strings.DEFAULT_KEY_COLUMN_SELECTION);
812
+ const column = this.normalizeSelectionColumn({
813
+ rowSelection,
814
+ prefixCls
815
+ });
816
+
817
+ if (destIndex > -1) {
818
+ columns[destIndex] = (0, _assign.default)((0, _assign.default)({}, column), columns[destIndex]);
819
+ } else if (column.fixed === 'right') {
820
+ columns = [...columns, column];
821
+ } else {
822
+ columns = [column, ...columns];
823
+ }
824
+ }
825
+
826
+ (0, _utils.assignColumnKeys)(columns);
827
+ return columns;
828
+ };
829
+ /**
830
+ * Convert children to columns object
831
+ * @param {Array} columns
832
+ * @param {ReactNode} children
833
+ * @returns {Array}
834
+ */
835
+
836
+
837
+ this.normalizeColumns = (columns, children) => {
838
+ const normalColumns = (0, _utils2.cloneDeep)(this.getColumns(columns, children));
839
+ return normalColumns;
840
+ };
841
+ /**
842
+ * Combine pagination and table paging processing functions
843
+ */
844
+
845
+
846
+ this.mergePagination = pagination => {
847
+ const newPagination = (0, _assign.default)({
848
+ onChange: this.foundation.setPage
849
+ }, pagination);
850
+ return newPagination;
851
+ };
852
+
853
+ this.foundation = new _foundation.default(this.adapter); // columns cannot be deepClone, otherwise the comparison will be false
854
+
855
+ const columns = this.getColumns(props.columns, props.children);
856
+ const cachedflattenColumns = (0, _utils.flattenColumns)(columns);
857
+ this.state = {
858
+ /**
859
+ * Cached props
860
+ */
861
+ cachedColumns: columns,
862
+ cachedChildren: props.children,
863
+ flattenColumns: cachedflattenColumns,
864
+ components: (0, _utils2.mergeComponents)(props.components, props.virtualized),
865
+
866
+ /**
867
+ * State calculated based on prop
868
+ */
869
+ queries: (0, _utils2.cloneDeep)(cachedflattenColumns),
870
+ dataSource: [],
871
+ flattenData: [],
872
+ expandedRowKeys: [...(props.expandedRowKeys || []), ...(props.defaultExpandedRowKeys || [])],
873
+ rowSelection: props.rowSelection ? (0, _lodashEs.isObject)(props.rowSelection) ? (0, _assign.default)({}, props.rowSelection) : {} : null,
874
+ pagination: props.pagination && typeof props.pagination === 'object' ? (0, _assign.default)({}, props.pagination) : props.pagination || false,
875
+
876
+ /**
877
+ * Internal state
878
+ */
879
+ groups: null,
880
+ allRowKeys: [],
881
+ disabledRowKeys: [],
882
+ disabledRowKeysSet: new _set.default(),
883
+ headWidths: [],
884
+ bodyHasScrollBar: false,
885
+ prePropRowSelection: undefined
886
+ };
887
+ this.rootWrapRef = /*#__PURE__*/(0, _react.createRef)();
888
+ this.wrapRef = /*#__PURE__*/(0, _react.createRef)(); // table's outside wrap
889
+
890
+ this.bodyWrapRef = /*#__PURE__*/(0, _react.createRef)();
891
+ this.headerWrapRef = /*#__PURE__*/(0, _react.createRef)();
892
+ this.store = new _Store.default({
893
+ hoveredRowKey: null
894
+ });
895
+ this.setScrollPosition('left');
896
+ this.debouncedWindowResize = (0, _lodashEs.debounce)(this.handleWindowResize, 150);
897
+ this.cachedFilteredSortedDataSource = [];
898
+ this.cachedFilteredSortedRowKeys = [];
899
+ this.cachedFilteredSortedRowKeysSet = new _set.default();
900
+ }
901
+
902
+ get adapter() {
903
+ var _this2 = this;
904
+
905
+ return (0, _assign.default)((0, _assign.default)({}, super.adapter), {
906
+ resetScrollY: () => {
907
+ if (this.bodyWrapRef.current) {
908
+ this.bodyWrapRef.current.scrollTop = 0;
909
+ }
910
+ },
911
+ setSelectedRowKeys: selectedRowKeys => {
912
+ this.setState({
913
+ rowSelection: (0, _assign.default)((0, _assign.default)({}, this.state.rowSelection), {
914
+ selectedRowKeys: [...selectedRowKeys],
915
+ selectedRowKeysSet: new _set.default(selectedRowKeys)
916
+ })
917
+ });
918
+ },
919
+ setDisabledRowKeys: disabledRowKeys => {
920
+ this.setState({
921
+ disabledRowKeys,
922
+ disabledRowKeysSet: new _set.default(disabledRowKeys)
923
+ });
924
+ },
925
+ setCurrentPage: currentPage => {
926
+ const {
927
+ pagination
928
+ } = this.state;
929
+
930
+ if (typeof pagination === 'object') {
931
+ this.setState({
932
+ pagination: (0, _assign.default)((0, _assign.default)({}, pagination), {
933
+ currentPage
934
+ })
935
+ });
936
+ } else {
937
+ this.setState({
938
+ pagination: {
939
+ currentPage
940
+ }
941
+ });
942
+ }
943
+ },
944
+ setPagination: pagination => this.setState({
945
+ pagination
946
+ }),
947
+ setGroups: groups => this.setState({
948
+ groups
949
+ }),
950
+ setDataSource: dataSource => this.setState({
951
+ dataSource
952
+ }),
953
+ setExpandedRowKeys: expandedRowKeys => this.setState({
954
+ expandedRowKeys: [...expandedRowKeys]
955
+ }),
956
+ setQuery: function () {
957
+ let query = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
958
+ let queries = [..._this2.state.queries];
959
+ queries = (0, _utils.mergeQueries)(query, queries);
960
+
961
+ _this2.setState({
962
+ queries
963
+ });
964
+ },
965
+ // Update queries when filtering or sorting
966
+ setQueries: queries => this.setState({
967
+ queries
968
+ }),
969
+ setFlattenData: flattenData => this.setState({
970
+ flattenData
971
+ }),
972
+ setAllRowKeys: allRowKeys => this.setState({
973
+ allRowKeys
974
+ }),
975
+ setHoveredRowKey: hoveredRowKey => {
976
+ this.store.setState({
977
+ hoveredRowKey
978
+ });
979
+ },
980
+ setCachedFilteredSortedDataSource: filteredSortedDataSource => {
981
+ this.cachedFilteredSortedDataSource = filteredSortedDataSource;
982
+ },
983
+ setCachedFilteredSortedRowKeys: filteredSortedRowKeys => {
984
+ this.cachedFilteredSortedRowKeys = filteredSortedRowKeys;
985
+ this.cachedFilteredSortedRowKeysSet = new _set.default(filteredSortedRowKeys);
986
+ },
987
+ getCurrentPage: () => (0, _lodashEs.get)(this.state, 'pagination.currentPage', 1),
988
+ getCurrentPageSize: () => (0, _lodashEs.get)(this.state, 'pagination.pageSize', _constants.numbers.DEFAULT_PAGE_SIZE),
989
+ getCachedFilteredSortedDataSource: () => this.cachedFilteredSortedDataSource,
990
+ getCachedFilteredSortedRowKeys: () => this.cachedFilteredSortedRowKeys,
991
+ getCachedFilteredSortedRowKeysSet: () => this.cachedFilteredSortedRowKeysSet,
992
+ notifyFilterDropdownVisibleChange: (visible, dataIndex) => this._invokeColumnFn(dataIndex, 'onFilterDropdownVisibleChange', visible),
993
+ notifyChange: function () {
994
+ return _this2.props.onChange(...arguments);
995
+ },
996
+ notifyExpand: function () {
997
+ return _this2.props.onExpand(...arguments);
998
+ },
999
+ notifyExpandedRowsChange: function () {
1000
+ return _this2.props.onExpandedRowsChange(...arguments);
1001
+ },
1002
+ notifySelect: function () {
1003
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
1004
+ args[_key3] = arguments[_key3];
1005
+ }
1006
+
1007
+ return _this2._invokeRowSelection('onSelect', ...args);
1008
+ },
1009
+ notifySelectAll: function () {
1010
+ for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
1011
+ args[_key4] = arguments[_key4];
1012
+ }
1013
+
1014
+ return _this2._invokeRowSelection('onSelectAll', ...args);
1015
+ },
1016
+ notifySelectInvert: function () {
1017
+ for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
1018
+ args[_key5] = arguments[_key5];
1019
+ }
1020
+
1021
+ return _this2._invokeRowSelection('onSelectInvert', ...args);
1022
+ },
1023
+ notifySelectionChange: function () {
1024
+ for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
1025
+ args[_key6] = arguments[_key6];
1026
+ }
1027
+
1028
+ return _this2._invokeRowSelection('onChange', ...args);
1029
+ },
1030
+ isAnyColumnFixed: columns => (0, _someInstanceProperty(_lodashEs))(this.getColumns(columns || this.props.columns, this.props.children), column => Boolean(column.fixed)),
1031
+ useFixedHeader: () => {
1032
+ const {
1033
+ scroll
1034
+ } = this.props;
1035
+
1036
+ if ((0, _lodashEs.get)(scroll, 'y')) {
1037
+ return true;
1038
+ }
1039
+
1040
+ return false;
1041
+ },
1042
+ setHeadWidths: function (headWidths) {
1043
+ let index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
1044
+
1045
+ if (!(0, _utils.equalWith)(_this2.state.headWidths[index], headWidths)) {
1046
+ // The map call depends on the last state
1047
+ _this2.setState(state => {
1048
+ const newHeadWidths = [...state.headWidths];
1049
+ newHeadWidths[index] = [...headWidths];
1050
+ return {
1051
+ headWidths: newHeadWidths
1052
+ };
1053
+ });
1054
+ }
1055
+ },
1056
+ getHeadWidths: function () {
1057
+ let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
1058
+
1059
+ if (_this2.state.headWidths.length && typeof index === 'number') {
1060
+ const configs = _this2.state.headWidths[index] || [];
1061
+ return (0, _map.default)(configs).call(configs, item => item.width);
1062
+ }
1063
+
1064
+ return [];
1065
+ },
1066
+ // This method is called by row rendering function
1067
+ getCellWidths: function (flattenedColumns) {
1068
+ let flattenedWidths = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1069
+ let ignoreScrollBarKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1070
+
1071
+ if ((0, _isArray.default)(flattenedColumns) && flattenedColumns.length) {
1072
+ flattenedWidths = flattenedWidths == null && _this2.state.headWidths.length ? (0, _lodashEs.flattenDeep)(_this2.state.headWidths) : [];
1073
+
1074
+ if ((0, _isArray.default)(flattenedWidths) && flattenedWidths.length) {
1075
+ return (0, _reduce.default)(flattenedColumns).call(flattenedColumns, (result, column) => {
1076
+ const found = column.key === _constants.strings.DEFAULT_KEY_COLUMN_SCROLLBAR && ignoreScrollBarKey ? null : (0, _findInstanceProperty(_lodashEs))(flattenedWidths, item => item && item.key != null && item.key === column.key);
1077
+
1078
+ if (found) {
1079
+ result.push(found.width);
1080
+ }
1081
+
1082
+ return result;
1083
+ }, []);
1084
+ }
1085
+ }
1086
+
1087
+ return [];
1088
+ },
1089
+ mergedRowExpandable: record => {
1090
+ const {
1091
+ expandedRowRender,
1092
+ childrenRecordName,
1093
+ rowExpandable
1094
+ } = this.props;
1095
+ const children = (0, _lodashEs.get)(record, childrenRecordName);
1096
+ const hasExpandedRowRender = typeof expandedRowRender === 'function';
1097
+ const hasRowExpandable = typeof rowExpandable === 'function';
1098
+ const hasChildren = (0, _isArray.default)(children) && children.length;
1099
+ const strictExpandableResult = hasRowExpandable && rowExpandable(record);
1100
+ const looseExpandableResult = !hasRowExpandable || strictExpandableResult;
1101
+ return (hasExpandedRowRender || hasChildren) && looseExpandableResult || !(hasExpandedRowRender || hasChildren) && strictExpandableResult;
1102
+ },
1103
+ isAnyColumnUseFullRender: columns => (0, _someInstanceProperty(_lodashEs))(columns, column => Boolean(column.useFullRender)),
1104
+ getNormalizeColumns: () => this.normalizeColumns,
1105
+ getHandleColumns: () => this.handleColumns,
1106
+ getMergePagination: () => this.mergePagination,
1107
+ setBodyHasScrollbar: bodyHasScrollBar => {
1108
+ if (bodyHasScrollBar !== this.state.bodyHasScrollBar) {
1109
+ this.setState({
1110
+ bodyHasScrollBar
1111
+ });
1112
+ }
1113
+ }
1114
+ });
1115
+ }
1116
+
1117
+ static getDerivedStateFromProps(props, state) {
1118
+ const willUpdateStates = {};
1119
+ const {
1120
+ rowSelection,
1121
+ dataSource,
1122
+ childrenRecordName,
1123
+ rowKey
1124
+ } = props;
1125
+ props.columns && props.children && _utils2.logger.warn('columns should not given by object and children at the same time');
1126
+
1127
+ if (props.columns && props.columns !== state.cachedColumns) {
1128
+ const newFlattenColumns = (0, _utils.flattenColumns)(props.columns);
1129
+ willUpdateStates.flattenColumns = newFlattenColumns;
1130
+ willUpdateStates.queries = (0, _utils.mergeColumns)(state.queries, newFlattenColumns, null, false);
1131
+ willUpdateStates.cachedColumns = props.columns;
1132
+ willUpdateStates.cachedChildren = null;
1133
+ } else if (props.children && props.children !== state.cachedChildren) {
1134
+ const newFlattenColumns = (0, _utils.flattenColumns)((0, _getColumns.default)(props.children));
1135
+ const columns = (0, _utils.mergeColumns)(state.queries, newFlattenColumns, null, false);
1136
+ willUpdateStates.flattenColumns = newFlattenColumns;
1137
+ willUpdateStates.queries = [...columns];
1138
+ willUpdateStates.cachedColumns = [...columns];
1139
+ willUpdateStates.cachedChildren = props.children;
1140
+ } // Update controlled selection column
1141
+
1142
+
1143
+ if (rowSelection !== state.prePropRowSelection) {
1144
+ let newSelectionStates = {};
1145
+
1146
+ if ((0, _lodashEs.isObject)(state.rowSelection)) {
1147
+ newSelectionStates = (0, _assign.default)((0, _assign.default)({}, newSelectionStates), state.rowSelection);
1148
+ }
1149
+
1150
+ if ((0, _lodashEs.isObject)(rowSelection)) {
1151
+ newSelectionStates = (0, _assign.default)((0, _assign.default)({}, newSelectionStates), rowSelection);
1152
+ }
1153
+
1154
+ const selectedRowKeys = (0, _lodashEs.get)(rowSelection, 'selectedRowKeys');
1155
+ const getCheckboxProps = (0, _lodashEs.get)(rowSelection, 'getCheckboxProps');
1156
+
1157
+ if (selectedRowKeys && (0, _isArray.default)(selectedRowKeys)) {
1158
+ newSelectionStates.selectedRowKeysSet = new _set.default(selectedRowKeys);
1159
+ } // The return value of getCheckboxProps affects the disabled rows
1160
+
1161
+
1162
+ if ((0, _lodashEs.isFunction)(getCheckboxProps)) {
1163
+ const disabledRowKeys = (0, _utils.getAllDisabledRowKeys)({
1164
+ dataSource,
1165
+ getCheckboxProps,
1166
+ childrenRecordName,
1167
+ rowKey
1168
+ });
1169
+ willUpdateStates.disabledRowKeys = disabledRowKeys;
1170
+ willUpdateStates.disabledRowKeysSet = new _set.default(disabledRowKeys);
1171
+ }
1172
+
1173
+ willUpdateStates.rowSelection = newSelectionStates;
1174
+ willUpdateStates.prePropRowSelection = rowSelection;
1175
+ }
1176
+
1177
+ return willUpdateStates;
1178
+ }
1179
+
1180
+ componentDidMount() {
1181
+ super.componentDidMount();
1182
+
1183
+ if (this.adapter.isAnyColumnFixed() || this.props.showHeader && this.adapter.useFixedHeader()) {
1184
+ this.handleWindowResize();
1185
+ window.addEventListener('resize', this.debouncedWindowResize);
1186
+ }
1187
+ } // TODO: Extract the setState operation to the adapter or getDerivedStateFromProps function
1188
+
1189
+
1190
+ componentDidUpdate(prevProps, prevState) {
1191
+ const {
1192
+ pagination,
1193
+ dataSource,
1194
+ expandedRowKeys,
1195
+ expandAllRows,
1196
+ expandAllGroupRows,
1197
+ virtualized,
1198
+ components
1199
+ } = this.props;
1200
+ const {
1201
+ queries: stateQueries,
1202
+ cachedColumns: stateCachedColumns,
1203
+ cachedChildren: stateCachedChildren,
1204
+ groups: stateGroups
1205
+ } = this.state;
1206
+ /**
1207
+ * State related to paging
1208
+ *
1209
+ * @param dataSource
1210
+ * @param groups
1211
+ * @param pagination
1212
+ * @param disabledRowKeys
1213
+ * @param allRowKeys
1214
+ * @param queries
1215
+ */
1216
+
1217
+ const states = {};
1218
+
1219
+ this._warnIfNoKey();
1220
+ /**
1221
+ * The state that needs to be updated after props changes
1222
+ */
1223
+ // Update controlled expand column
1224
+
1225
+
1226
+ if ((0, _isArray.default)(expandedRowKeys) && expandedRowKeys !== prevProps.expandedRowKeys) {
1227
+ this.setState({
1228
+ expandedRowKeys
1229
+ });
1230
+ } // Update components
1231
+
1232
+
1233
+ if (components !== prevProps.components || virtualized !== prevProps.virtualized) {
1234
+ this.setState({
1235
+ components: (0, _utils2.mergeComponents)(components, virtualized)
1236
+ });
1237
+ } // Update the default expanded column
1238
+
1239
+
1240
+ if (expandAllRows !== prevProps.expandAllRows || expandAllGroupRows !== prevProps.expandAllGroupRows) {
1241
+ this.foundation.initExpandedRowKeys({
1242
+ groups: stateGroups
1243
+ });
1244
+ } // Update pagination
1245
+
1246
+
1247
+ if (pagination !== prevProps.pagination) {
1248
+ states.pagination = (0, _lodashEs.isObject)(pagination) ? (0, _assign.default)({}, pagination) : pagination;
1249
+ }
1250
+ /**
1251
+ * After dataSource is updated || (cachedColumns || cachedChildren updated)
1252
+ * 1. Cache filtered sorted data and a collection of data rows, stored in this
1253
+ * 2. Update pager and group, stored in state
1254
+ */
1255
+
1256
+
1257
+ if (dataSource !== prevProps.dataSource || stateCachedColumns !== prevState.cachedColumns || stateCachedChildren !== prevState.cachedChildren) {
1258
+ // TODO: foundation.getFilteredSortedDataSource has side effects and will be modified to the dataSource reference
1259
+ // Temporarily use _dataSource=[...dataSource] for processing
1260
+ const _dataSource = [...dataSource];
1261
+ const filteredSortedDataSource = this.foundation.getFilteredSortedDataSource(_dataSource, stateQueries);
1262
+ this.foundation.setCachedFilteredSortedDataSource(filteredSortedDataSource);
1263
+ states.dataSource = filteredSortedDataSource;
1264
+
1265
+ if (pagination === prevProps.pagination) {
1266
+ states.pagination = (0, _lodashEs.isObject)(pagination) ? (0, _assign.default)({}, pagination) : pagination;
1267
+ }
1268
+
1269
+ if (this.props.groupBy) {
1270
+ states.groups = null;
1271
+ }
1272
+ }
1273
+
1274
+ if ((0, _keys.default)(states).length) {
1275
+ const {
1276
+ // eslint-disable-next-line @typescript-eslint/no-shadow
1277
+ queries: stateQueries = null,
1278
+ pagination: statePagination = null,
1279
+ dataSource: stateDataSource = null
1280
+ } = states;
1281
+ const handledProps = this.foundation.getCurrentPageData(stateDataSource, statePagination, stateQueries); // After the pager is updated, reset allRowKeys of the current page
1282
+
1283
+ this.adapter.setAllRowKeys(handledProps.allRowKeys);
1284
+ this.adapter.setDisabledRowKeys(handledProps.disabledRowKeys);
1285
+
1286
+ if ('dataSource' in states) {
1287
+ if (this.props.defaultExpandAllRows && handledProps.groups && handledProps.groups.size || this.props.expandAllRows || this.props.expandAllGroupRows) {
1288
+ this.foundation.initExpandedRowKeys(handledProps);
1289
+ }
1290
+ } // Centrally update paging related state
1291
+
1292
+
1293
+ const statesKeys = (0, _keys.default)(states);
1294
+
1295
+ for (const k of statesKeys) {
1296
+ this.setState({
1297
+ [k]: handledProps[k]
1298
+ });
1299
+ }
1300
+ }
1301
+
1302
+ if (this.adapter.isAnyColumnFixed() || this.props.showHeader && this.adapter.useFixedHeader()) {
1303
+ if (!this.debouncedWindowResize) {
1304
+ window.addEventListener('resize', this.debouncedWindowResize);
1305
+ }
1306
+ }
1307
+ }
1308
+
1309
+ componentWillUnmount() {
1310
+ super.componentWillUnmount();
1311
+
1312
+ if (this.debouncedWindowResize) {
1313
+ window.removeEventListener('resize', this.debouncedWindowResize);
1314
+ this.debouncedWindowResize.cancel();
1315
+ this.debouncedWindowResize = null;
1316
+ }
1317
+ }
1318
+
1319
+ render() {
1320
+ var _context3, _context4, _context5, _context6, _context7, _context8;
1321
+
1322
+ let _a = this.props,
1323
+ {
1324
+ scroll,
1325
+ prefixCls,
1326
+ className,
1327
+ style: wrapStyle = {},
1328
+ bordered,
1329
+ id,
1330
+ pagination: propPagination,
1331
+ virtualized,
1332
+ size,
1333
+ renderPagination: propRenderPagination,
1334
+ getVirtualizedListRef,
1335
+ loading,
1336
+ hideExpandedColumn,
1337
+ rowSelection: propRowSelection
1338
+ } = _a,
1339
+ rest = __rest(_a, ["scroll", "prefixCls", "className", "style", "bordered", "id", "pagination", "virtualized", "size", "renderPagination", "getVirtualizedListRef", "loading", "hideExpandedColumn", "rowSelection"]);
1340
+
1341
+ let {
1342
+ rowSelection,
1343
+ expandedRowKeys,
1344
+ headWidths,
1345
+ tableWidth,
1346
+ pagination,
1347
+ dataSource,
1348
+ queries,
1349
+ cachedColumns,
1350
+ bodyHasScrollBar
1351
+ } = this.state;
1352
+ wrapStyle = (0, _assign.default)({}, wrapStyle);
1353
+ let columns;
1354
+ /**
1355
+ * As state.queries will change, the columns should be refreshed as a whole at this time
1356
+ * The scene of changes in queries
1357
+ * 1. Filter
1358
+ * 2. Pagination
1359
+ *
1360
+ * useFullRender needs to be passed to the user selection ReactNode, so columns need to be recalculated every time the selectedRowKeys changes
1361
+ * 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
1362
+ *
1363
+ * 由于state.queries会发生变化,此时columns应该整体刷新
1364
+ * queries变化的场景
1365
+ * 1. 筛选
1366
+ * 2. 分页
1367
+ * useFullRender需要传给用户selection ReactNode,因此需要每次selectedRowKeys变化时重新计算columns
1368
+ * TODO: 未来可以将传给用户的selection改为函数类型,让用户执行函数获取selection title的实时状态
1369
+ */
1370
+
1371
+ if (!this.adapter.isAnyColumnUseFullRender(queries)) {
1372
+ const rowSelectionUpdate = propRowSelection && !(0, _lodashEs.get)(propRowSelection, 'hidden');
1373
+ columns = this.foundation.memoizedWithFnsColumns(queries, cachedColumns, rowSelectionUpdate, hideExpandedColumn, // Update the columns after the body scrollbar changes to ensure that the head and body are aligned
1374
+ bodyHasScrollBar);
1375
+ } else {
1376
+ columns = this.handleColumns(queries, cachedColumns);
1377
+ }
1378
+
1379
+ const filteredColumns = this.foundation.memoizedFilterColumns(columns);
1380
+ const flattenFnsColumns = this.foundation.memoizedFlattenFnsColumns(columns);
1381
+ const anyColumnFixed = this.adapter.isAnyColumnFixed(columns);
1382
+ /**
1383
+ * - If it is the first page break, you need to calculate the current page
1384
+ * - If it is manual paging, call foundation to modify the state
1385
+ *
1386
+ * TODO: After merging issue 1007, you can place it in the constructor to complete
1387
+ * The reason is that #1007 exposes the parameters required by getCurrentPageData in the constructor
1388
+ */
1389
+
1390
+ if ((0, _lodashEs.isNull)(dataSource)) {
1391
+ const pageData = this.foundation.getCurrentPageData(this.props.dataSource);
1392
+ dataSource = pageData.dataSource;
1393
+ pagination = pageData.pagination;
1394
+ }
1395
+
1396
+ const props = (0, _assign.default)((0, _assign.default)((0, _assign.default)({}, rest), this.state), {
1397
+ // props not in rest
1398
+ virtualized,
1399
+ scroll,
1400
+ prefixCls,
1401
+ size,
1402
+ hideExpandedColumn,
1403
+ // renamed state
1404
+ columns,
1405
+ // calculated value
1406
+ anyColumnFixed,
1407
+ rowExpandable: this.mergedRowExpandable,
1408
+ pagination,
1409
+ dataSource,
1410
+ rowSelection,
1411
+ expandedRowKeys,
1412
+ renderExpandIcon: this.renderExpandIcon,
1413
+ filteredColumns
1414
+ });
1415
+ const x = (0, _lodashEs.get)(scroll, 'x');
1416
+ const y = (0, _lodashEs.get)(scroll, 'y');
1417
+
1418
+ if (virtualized) {
1419
+ if (typeof wrapStyle.width !== 'number') {
1420
+ wrapStyle.width = x;
1421
+ }
1422
+ }
1423
+
1424
+ const wrapCls = (0, _classnames.default)({
1425
+ [(0, _concat.default)(_context3 = "".concat(prefixCls, "-")).call(_context3, _constants.strings.SIZE_SMALL)]: size === _constants.strings.SIZE_SMALL,
1426
+ [(0, _concat.default)(_context4 = "".concat(prefixCls, "-")).call(_context4, _constants.strings.SIZE_MIDDLE)]: size === _constants.strings.SIZE_MIDDLE,
1427
+ ["".concat(prefixCls, "-virtualized")]: Boolean(virtualized),
1428
+ ["".concat(prefixCls, "-bordered")]: bordered,
1429
+ ["".concat(prefixCls, "-fixed-header")]: Boolean(y),
1430
+ ["".concat(prefixCls, "-scroll-position-left")]: (0, _includes.default)(_context5 = ['both', 'left']).call(_context5, this.position),
1431
+ ["".concat(prefixCls, "-scroll-position-right")]: (0, _includes.default)(_context6 = ['both', 'right']).call(_context6, this.position)
1432
+ }); // pagination
1433
+
1434
+ const tablePagination = pagination && propPagination ? this.renderPagination(pagination, propRenderPagination) : null;
1435
+ const paginationPosition = (0, _lodashEs.get)(propPagination, 'position', 'bottom');
1436
+ const tableContextValue = (0, _assign.default)((0, _assign.default)({}, this.context), {
1437
+ headWidths,
1438
+ tableWidth,
1439
+ anyColumnFixed,
1440
+ flattenedColumns: flattenFnsColumns,
1441
+ renderExpandIcon: this.renderExpandIcon,
1442
+ renderSelection: this.renderSelection,
1443
+ setHeadWidths: this.setHeadWidths,
1444
+ getHeadWidths: this.getHeadWidths,
1445
+ getCellWidths: this.getCellWidths,
1446
+ handleRowExpanded: this.handleRowExpanded,
1447
+ getVirtualizedListRef,
1448
+ setBodyHasScrollbar: this.setBodyHasScrollbar
1449
+ });
1450
+ return /*#__PURE__*/_react.default.createElement("div", {
1451
+ ref: this.rootWrapRef,
1452
+ className: (0, _classnames.default)(className, "".concat(prefixCls, "-wrapper")),
1453
+ style: wrapStyle,
1454
+ id: id
1455
+ }, /*#__PURE__*/_react.default.createElement(_TableContextProvider.default, (0, _assign.default)({}, tableContextValue), /*#__PURE__*/_react.default.createElement(_spin.default, {
1456
+ spinning: loading,
1457
+ size: "large"
1458
+ }, /*#__PURE__*/_react.default.createElement("div", {
1459
+ ref: this.wrapRef,
1460
+ className: wrapCls
1461
+ }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
1462
+ key: 'pagination-top'
1463
+ }, (0, _includes.default)(_context7 = ['top', 'both']).call(_context7, paginationPosition) ? tablePagination : null), this.renderTitle({
1464
+ title: props.title,
1465
+ dataSource: props.dataSource,
1466
+ prefixCls: props.prefixCls
1467
+ }), /*#__PURE__*/_react.default.createElement("div", {
1468
+ className: "".concat(prefixCls, "-container")
1469
+ }, this.renderMainTable((0, _assign.default)({}, props))), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
1470
+ key: 'pagination-bottom'
1471
+ }, (0, _includes.default)(_context8 = ['bottom', 'both']).call(_context8, paginationPosition) ? tablePagination : null)))));
1472
+ }
1473
+
1474
+ }
1475
+
1476
+ Table.contextType = _tableContext.default;
1477
+ Table.propTypes = {
1478
+ className: _propTypes.default.string,
1479
+ style: _propTypes.default.object,
1480
+ prefixCls: _propTypes.default.string,
1481
+ components: _propTypes.default.any,
1482
+ bordered: _propTypes.default.bool,
1483
+ loading: _propTypes.default.bool,
1484
+ size: _propTypes.default.oneOf(_constants.strings.SIZES),
1485
+ tableLayout: _propTypes.default.oneOf(_constants.strings.LAYOUTS),
1486
+ columns: _propTypes.default.arrayOf(_propTypes.default.shape(_ColumnShape.default)),
1487
+ hideExpandedColumn: _propTypes.default.bool,
1488
+ id: _propTypes.default.string,
1489
+ expandIcon: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.func, _propTypes.default.node]),
1490
+ expandCellFixed: _propTypes.default.oneOf(_constants.strings.FIXED_SET),
1491
+ title: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.node, _propTypes.default.func]),
1492
+ onHeaderRow: _propTypes.default.func,
1493
+ showHeader: _propTypes.default.bool,
1494
+ indentSize: _propTypes.default.number,
1495
+ rowKey: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string, _propTypes.default.number]),
1496
+ onRow: _propTypes.default.func,
1497
+ onExpandedRowsChange: _propTypes.default.func,
1498
+ onExpand: _propTypes.default.func,
1499
+ rowExpandable: _propTypes.default.func,
1500
+ expandedRowRender: _propTypes.default.func,
1501
+ expandedRowKeys: _propTypes.default.array,
1502
+ defaultExpandAllRows: _propTypes.default.bool,
1503
+ expandAllRows: _propTypes.default.bool,
1504
+ defaultExpandAllGroupRows: _propTypes.default.bool,
1505
+ expandAllGroupRows: _propTypes.default.bool,
1506
+ defaultExpandedRowKeys: _propTypes.default.array,
1507
+ pagination: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1508
+ renderPagination: _propTypes.default.func,
1509
+ footer: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string, _propTypes.default.node]),
1510
+ empty: _propTypes.default.node,
1511
+ dataSource: _propTypes.default.array,
1512
+ childrenRecordName: _propTypes.default.string,
1513
+ rowSelection: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1514
+ onChange: _propTypes.default.func,
1515
+ scroll: _propTypes.default.shape({
1516
+ x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string, _propTypes.default.bool]),
1517
+ y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
1518
+ }),
1519
+ groupBy: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.func]),
1520
+ renderGroupSection: _propTypes.default.oneOfType([_propTypes.default.func]),
1521
+ onGroupedRow: _propTypes.default.func,
1522
+ clickGroupedRowToExpand: _propTypes.default.bool,
1523
+ virtualized: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.bool]),
1524
+ dropdownPrefixCls: _propTypes.default.string,
1525
+ expandRowByClick: _propTypes.default.bool,
1526
+ getVirtualizedListRef: _propTypes.default.func // TODO: future api
1527
+
1528
+ };
1529
+ Table.defaultProps = {
1530
+ // rowExpandable: stubTrue,
1531
+ tableLayout: '',
1532
+ dataSource: [],
1533
+ prefixCls: _constants.cssClasses.PREFIX,
1534
+ rowSelection: null,
1535
+ className: '',
1536
+ childrenRecordName: 'children',
1537
+ size: 'default',
1538
+ loading: false,
1539
+ bordered: false,
1540
+ expandCellFixed: false,
1541
+ hideExpandedColumn: true,
1542
+ showHeader: true,
1543
+ indentSize: _constants.numbers.DEFAULT_INDENT_WIDTH,
1544
+ onChange: _lodashEs.noop,
1545
+ pagination: true,
1546
+ rowKey: 'key',
1547
+ defaultExpandedRowKeys: [],
1548
+ defaultExpandAllRows: false,
1549
+ defaultExpandAllGroupRows: false,
1550
+ expandAllRows: false,
1551
+ expandAllGroupRows: false,
1552
+ onFilterDropdownVisibleChange: _lodashEs.noop,
1553
+ onExpand: _lodashEs.noop,
1554
+ onExpandedRowsChange: _lodashEs.noop,
1555
+ expandRowByClick: false
1556
+ };
1557
+ var _default = Table;
1558
+ exports.default = _default;