@qsxy/element-plus-react 1.0.2 → 2.0.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 (636) hide show
  1. package/dist/Affix/Affix.d.ts +4 -0
  2. package/dist/Affix/Affix.js +301 -0
  3. package/dist/Affix/index.d.ts +2 -0
  4. package/dist/Affix/index.js +1 -0
  5. package/dist/Affix/typings.d.ts +50 -0
  6. package/dist/Affix/typings.js +1 -0
  7. package/dist/Alert/Alert.d.ts +7 -0
  8. package/dist/Alert/Alert.js +98 -0
  9. package/dist/Alert/index.d.ts +2 -0
  10. package/dist/Alert/index.js +1 -0
  11. package/dist/Alert/typings.d.ts +45 -0
  12. package/dist/Alert/typings.js +1 -0
  13. package/dist/Anchor/Anchor.d.ts +6 -0
  14. package/dist/Anchor/Anchor.js +258 -0
  15. package/dist/Anchor/AnchorLink.d.ts +4 -0
  16. package/dist/Anchor/AnchorLink.js +77 -0
  17. package/dist/Anchor/element.d.ts +4 -0
  18. package/dist/Anchor/element.js +17 -0
  19. package/dist/Anchor/index.d.ts +3 -0
  20. package/dist/Anchor/index.js +2 -0
  21. package/dist/Anchor/typings.d.ts +101 -0
  22. package/dist/Anchor/typings.js +1 -0
  23. package/dist/Backtop/Backtop.d.ts +7 -0
  24. package/dist/Backtop/Backtop.js +153 -0
  25. package/dist/Backtop/index.d.ts +2 -0
  26. package/dist/Backtop/index.js +1 -0
  27. package/dist/Backtop/typings.d.ts +31 -0
  28. package/dist/Backtop/typings.js +1 -0
  29. package/dist/Button/Button.d.ts +2 -11
  30. package/dist/Button/Button.js +2 -6
  31. package/dist/Button/index.d.ts +1 -1
  32. package/dist/Calendar/Calendar.js +12 -8
  33. package/dist/Calendar/YearRangePanel.js +1 -1
  34. package/dist/Card/Card.js +5 -3
  35. package/dist/Carousel/typings.d.ts +1 -1
  36. package/dist/Cascader/Cascader.d.ts +3 -3
  37. package/dist/Cascader/Cascader.js +238 -166
  38. package/dist/Cascader/CascaderContext.d.ts +9 -3
  39. package/dist/Cascader/CascaderContext.js +3 -1
  40. package/dist/Cascader/CascaderDropdown.d.ts +4 -3
  41. package/dist/Cascader/CascaderDropdown.js +21 -10
  42. package/dist/Cascader/CascaderMenu.d.ts +2 -2
  43. package/dist/Cascader/CascaderMenu.js +56 -14
  44. package/dist/Cascader/CascaderPanel.d.ts +4 -0
  45. package/dist/Cascader/CascaderPanel.js +11 -0
  46. package/dist/Cascader/index.d.ts +4 -1
  47. package/dist/Cascader/index.js +2 -1
  48. package/dist/Cascader/typings.d.ts +45 -31
  49. package/dist/Cascader/useCascader.d.ts +14 -27
  50. package/dist/Cascader/useCascader.js +153 -59
  51. package/dist/Checkbox/Checkbox.js +3 -2
  52. package/dist/CheckboxGroup/CheckboxGroup.d.ts +11 -1
  53. package/dist/CheckboxGroup/CheckboxGroup.js +78 -19
  54. package/dist/Collapse/Collapse.d.ts +3 -3
  55. package/dist/Collapse/Collapse.js +71 -16
  56. package/dist/Collapse/CollapseContext.d.ts +3 -6
  57. package/dist/Collapse/CollapseContext.js +2 -4
  58. package/dist/Collapse/CollapseItem.d.ts +3 -3
  59. package/dist/Collapse/CollapseItem.js +93 -51
  60. package/dist/Collapse/CollapseTransition.js +11 -7
  61. package/dist/Collapse/index.d.ts +1 -1
  62. package/dist/Collapse/typings.d.ts +20 -5
  63. package/dist/ColorPicker/typings.d.ts +1 -1
  64. package/dist/ConfigProvider/ConfigProvider.js +2 -24
  65. package/dist/ConfigProvider/ConfigProviderContext.js +1 -1
  66. package/dist/ConfigProvider/typings.d.ts +1 -1
  67. package/dist/Container/Main.d.ts +1 -1
  68. package/dist/Container/typings.d.ts +1 -1
  69. package/dist/Countdown/Countdown.d.ts +4 -0
  70. package/dist/Countdown/Countdown.js +121 -0
  71. package/dist/Countdown/index.d.ts +2 -0
  72. package/dist/Countdown/index.js +1 -0
  73. package/dist/Countdown/typings.d.ts +52 -0
  74. package/dist/Countdown/typings.js +1 -0
  75. package/dist/Countdown/util.d.ts +14 -0
  76. package/dist/Countdown/util.js +58 -0
  77. package/dist/DatePicker/DatePicker.js +9 -6
  78. package/dist/DatePicker/DateRangePicker.js +7 -6
  79. package/dist/DatePicker/typings.d.ts +0 -13
  80. package/dist/DateTimePicker/DateTimePicker.js +29 -19
  81. package/dist/Dialog/Dialog.d.ts +2 -13
  82. package/dist/Dialog/Dialog.js +143 -160
  83. package/dist/Dialog/DialogBody.js +3 -38
  84. package/dist/Dialog/DialogContext.d.ts +0 -7
  85. package/dist/Dialog/DialogContext.js +1 -5
  86. package/dist/Dialog/DialogHeader.js +2 -2
  87. package/dist/Dialog/typings.d.ts +43 -28
  88. package/dist/Dialog/useDraggable.d.ts +2 -1
  89. package/dist/Dialog/useDraggable.js +34 -9
  90. package/dist/Drawer/Drawer.d.ts +2 -13
  91. package/dist/Drawer/Drawer.js +115 -137
  92. package/dist/Drawer/DrawerBody.js +7 -8
  93. package/dist/Drawer/DrawerFooter.js +7 -7
  94. package/dist/Drawer/DrawerHeader.js +11 -8
  95. package/dist/Drawer/typings.d.ts +22 -6
  96. package/dist/Dropdown/Dropdown.js +5 -3
  97. package/dist/Dropdown/typings.d.ts +2 -1
  98. package/dist/Empty/Empty.js +16 -4
  99. package/dist/Form/Form.d.ts +4 -21
  100. package/dist/Form/Form.js +53 -25
  101. package/dist/Form/FormItem.d.ts +4 -52
  102. package/dist/Form/FormItem.js +633 -650
  103. package/dist/Form/FormItemContext.d.ts +10 -1
  104. package/dist/Form/FormItemContext.js +9 -1
  105. package/dist/Form/FormLabelWrap.d.ts +8 -0
  106. package/dist/Form/FormLabelWrap.js +103 -0
  107. package/dist/Form/{FieldContext.d.ts → InternalFormContext.d.ts} +2 -2
  108. package/dist/Form/{FieldContext.js → InternalFormContext.js} +5 -2
  109. package/dist/Form/List.d.ts +3 -3
  110. package/dist/Form/List.js +4 -4
  111. package/dist/Form/index.d.ts +4 -2
  112. package/dist/Form/index.js +4 -1
  113. package/dist/Form/typings.d.ts +61 -9
  114. package/dist/Form/typings.js +15 -1
  115. package/dist/Form/useForm.js +3 -3
  116. package/dist/Form/useWatch.js +1 -1
  117. package/dist/Input/Input.d.ts +2 -14
  118. package/dist/Input/Input.js +187 -140
  119. package/dist/Input/InputGroup.js +1 -1
  120. package/dist/Input/InputRange.js +7 -11
  121. package/dist/Input/TextArea.d.ts +1 -1
  122. package/dist/Input/TextArea.js +85 -30
  123. package/dist/Input/index.d.ts +1 -0
  124. package/dist/Input/index.js +2 -1
  125. package/dist/Input/typings.d.ts +38 -19
  126. package/dist/Input/utils.d.ts +1 -0
  127. package/dist/Input/utils.js +5 -1
  128. package/dist/InputNumber/InputNumber.js +408 -147
  129. package/dist/InputNumber/typings.d.ts +15 -5
  130. package/dist/Loading/Loading.js +5 -2
  131. package/dist/Menu/Menu.js +26 -2
  132. package/dist/Menu/MenuItem.js +4 -2
  133. package/dist/Menu/SubMenu.js +2 -2
  134. package/dist/Menu/SubMenuCollapseTransition.js +14 -9
  135. package/dist/Menu/typings.d.ts +5 -14
  136. package/dist/Message/Message.js +51 -23
  137. package/dist/Message/index.js +13 -13
  138. package/dist/Message/typings.d.ts +8 -5
  139. package/dist/MessageBox/MessageBox.js +75 -57
  140. package/dist/MessageBox/index.d.ts +2 -1
  141. package/dist/MessageBox/index.js +4 -2
  142. package/dist/MessageBox/typings.d.ts +3 -1
  143. package/dist/Notification/Notification.js +26 -19
  144. package/dist/Notification/typings.d.ts +1 -1
  145. package/dist/PageHeader/PageHeader.d.ts +8 -0
  146. package/dist/PageHeader/PageHeader.js +91 -0
  147. package/dist/PageHeader/index.d.ts +2 -0
  148. package/dist/PageHeader/index.js +1 -0
  149. package/dist/PageHeader/typings.d.ts +34 -0
  150. package/dist/PageHeader/typings.js +1 -0
  151. package/dist/Pagination/typings.d.ts +1 -1
  152. package/dist/Popover/Popover.js +7 -7
  153. package/dist/Popover/typings.d.ts +3 -3
  154. package/dist/Popper/Popper.js +49 -28
  155. package/dist/Popper/popperOptions.js +1 -0
  156. package/dist/Popper/typings.d.ts +2 -0
  157. package/dist/Radio/Radio.d.ts +2 -12
  158. package/dist/Radio/Radio.js +2 -6
  159. package/dist/Radio/RadioButton.d.ts +1 -1
  160. package/dist/Radio/RadioButton.js +4 -4
  161. package/dist/Radio/index.d.ts +1 -0
  162. package/dist/Radio/index.js +2 -1
  163. package/dist/Radio/typings.d.ts +1 -1
  164. package/dist/RadioGroup/RadioGroup.js +44 -16
  165. package/dist/RadioGroup/typings.d.ts +10 -0
  166. package/dist/Segmented/Segmented.d.ts +4 -0
  167. package/dist/Segmented/Segmented.js +208 -0
  168. package/dist/Segmented/index.d.ts +2 -0
  169. package/dist/Segmented/index.js +1 -0
  170. package/dist/Segmented/typings.d.ts +20 -0
  171. package/dist/Segmented/typings.js +5 -0
  172. package/dist/Select/SelectContext.d.ts +2 -1
  173. package/dist/Select/SelectContext.js +2 -1
  174. package/dist/Select/SelectCore.js +64 -15
  175. package/dist/Select/SelectDropdown.js +23 -15
  176. package/dist/Select/index.d.ts +1 -1
  177. package/dist/Select/typings.d.ts +26 -17
  178. package/dist/Select/useSelect.d.ts +35 -18
  179. package/dist/Select/useSelect.js +88 -33
  180. package/dist/Skeleton/typings.d.ts +1 -1
  181. package/dist/Slider/Button.d.ts +4 -0
  182. package/dist/Slider/Button.js +96 -0
  183. package/dist/Slider/Marker.d.ts +4 -0
  184. package/dist/Slider/Marker.js +31 -0
  185. package/dist/Slider/Slider.d.ts +4 -0
  186. package/dist/Slider/Slider.js +263 -0
  187. package/dist/Slider/SliderContext.d.ts +3 -0
  188. package/dist/Slider/SliderContext.js +2 -0
  189. package/dist/Slider/hooks/index.d.ts +5 -0
  190. package/dist/Slider/hooks/index.js +5 -0
  191. package/dist/Slider/hooks/useLifecycle.d.ts +5 -0
  192. package/dist/Slider/hooks/useLifecycle.js +50 -0
  193. package/dist/Slider/hooks/useMarks.d.ts +2 -0
  194. package/dist/Slider/hooks/useMarks.js +49 -0
  195. package/dist/Slider/hooks/useSlider.d.ts +38 -0
  196. package/dist/Slider/hooks/useSlider.js +227 -0
  197. package/dist/Slider/hooks/useSliderButton.d.ts +28 -0
  198. package/dist/Slider/hooks/useSliderButton.js +454 -0
  199. package/dist/Slider/hooks/useStops.d.ts +6 -0
  200. package/dist/Slider/hooks/useStops.js +47 -0
  201. package/dist/Slider/hooks/useWatch.d.ts +3 -0
  202. package/dist/Slider/hooks/useWatch.js +119 -0
  203. package/dist/Slider/index.d.ts +2 -0
  204. package/dist/Slider/index.js +1 -0
  205. package/dist/Slider/style/css.d.ts +1 -0
  206. package/dist/Slider/style/css.js +1 -0
  207. package/dist/Slider/style/index.d.ts +1 -0
  208. package/dist/Slider/style/index.js +1 -0
  209. package/dist/Slider/typings.d.ts +122 -0
  210. package/dist/Slider/typings.js +1 -0
  211. package/dist/Space/Space.d.ts +4 -0
  212. package/dist/Space/Space.js +125 -0
  213. package/dist/Space/SpaceItem.d.ts +7 -0
  214. package/dist/Space/SpaceItem.js +14 -0
  215. package/dist/Space/index.d.ts +3 -0
  216. package/dist/Space/index.js +2 -0
  217. package/dist/Space/typings.d.ts +26 -0
  218. package/dist/Space/typings.js +1 -0
  219. package/dist/Space/useSpace.d.ts +7 -0
  220. package/dist/Space/useSpace.js +105 -0
  221. package/dist/Statistic/Statistic.d.ts +4 -0
  222. package/dist/Statistic/Statistic.js +91 -0
  223. package/dist/Statistic/index.d.ts +2 -0
  224. package/dist/Statistic/index.js +1 -0
  225. package/dist/Statistic/typings.d.ts +28 -0
  226. package/dist/Statistic/typings.js +1 -0
  227. package/dist/Steps/Step.d.ts +4 -0
  228. package/dist/Steps/Step.js +247 -0
  229. package/dist/Steps/Steps.d.ts +5 -0
  230. package/dist/Steps/Steps.js +116 -0
  231. package/dist/Steps/index.d.ts +3 -0
  232. package/dist/Steps/index.js +2 -0
  233. package/dist/Steps/typings.d.ts +119 -0
  234. package/dist/Steps/typings.js +1 -0
  235. package/dist/Switch/Switch.js +2 -2
  236. package/dist/Switch/typings.d.ts +0 -1
  237. package/dist/Table/Table.js +17 -14
  238. package/dist/Table/TableBody.js +4 -4
  239. package/dist/Table/TableCell.js +53 -28
  240. package/dist/Table/TableColumn.d.ts +2 -2
  241. package/dist/Table/TableHeader.js +2 -2
  242. package/dist/Table/TableHeaderCell.js +2 -2
  243. package/dist/Table/hooks/useResize.js +0 -2
  244. package/dist/Table/hooks/useTable.d.ts +1 -1
  245. package/dist/Table/hooks/useTable.js +15 -10
  246. package/dist/Table/typings.d.ts +28 -12
  247. package/dist/Table/util.d.ts +1 -1
  248. package/dist/Table/util.js +8 -65
  249. package/dist/TableV2/index.d.ts +10 -0
  250. package/dist/TableV2/index.js +7 -0
  251. package/dist/TableV2/src/auto-resizer.d.ts +14 -0
  252. package/dist/TableV2/src/auto-resizer.js +1 -0
  253. package/dist/TableV2/src/cell.d.ts +21 -0
  254. package/dist/TableV2/src/cell.js +1 -0
  255. package/dist/TableV2/src/components/auto-resizer.d.ts +4 -0
  256. package/dist/TableV2/src/components/auto-resizer.js +32 -0
  257. package/dist/TableV2/src/components/cell.d.ts +4 -0
  258. package/dist/TableV2/src/components/cell.js +22 -0
  259. package/dist/TableV2/src/components/expand-icon.d.ts +12 -0
  260. package/dist/TableV2/src/components/expand-icon.js +29 -0
  261. package/dist/TableV2/src/components/header-cell.d.ts +4 -0
  262. package/dist/TableV2/src/components/header-cell.js +23 -0
  263. package/dist/TableV2/src/components/header-row.d.ts +17 -0
  264. package/dist/TableV2/src/components/header-row.js +41 -0
  265. package/dist/TableV2/src/components/header.d.ts +20 -0
  266. package/dist/TableV2/src/components/header.js +103 -0
  267. package/dist/TableV2/src/components/index.d.ts +10 -0
  268. package/dist/TableV2/src/components/index.js +7 -0
  269. package/dist/TableV2/src/components/row.d.ts +19 -0
  270. package/dist/TableV2/src/components/row.js +206 -0
  271. package/dist/TableV2/src/components/sort-icon.d.ts +9 -0
  272. package/dist/TableV2/src/components/sort-icon.js +14 -0
  273. package/dist/TableV2/src/composables/index.d.ts +6 -0
  274. package/dist/TableV2/src/composables/index.js +6 -0
  275. package/dist/TableV2/src/composables/use-auto-resize.d.ts +7 -0
  276. package/dist/TableV2/src/composables/use-auto-resize.js +55 -0
  277. package/dist/TableV2/src/composables/use-columns.d.ts +21 -0
  278. package/dist/TableV2/src/composables/use-columns.js +119 -0
  279. package/dist/TableV2/src/composables/use-data.d.ts +15 -0
  280. package/dist/TableV2/src/composables/use-data.js +62 -0
  281. package/dist/TableV2/src/composables/use-row.d.ts +34 -0
  282. package/dist/TableV2/src/composables/use-row.js +191 -0
  283. package/dist/TableV2/src/composables/use-scrollbar.d.ts +25 -0
  284. package/dist/TableV2/src/composables/use-scrollbar.js +117 -0
  285. package/dist/TableV2/src/composables/use-styles.d.ts +23 -0
  286. package/dist/TableV2/src/composables/use-styles.js +90 -0
  287. package/dist/TableV2/src/composables/utils.d.ts +3 -0
  288. package/dist/TableV2/src/composables/utils.js +29 -0
  289. package/dist/TableV2/src/constants.d.ts +18 -0
  290. package/dist/{Tree/Indent.js → TableV2/src/constants.js} +18 -21
  291. package/dist/TableV2/src/grid.d.ts +52 -0
  292. package/dist/TableV2/src/grid.js +1 -0
  293. package/dist/TableV2/src/header-cell.d.ts +13 -0
  294. package/dist/TableV2/src/header-cell.js +1 -0
  295. package/dist/TableV2/src/header-row.d.ts +10 -0
  296. package/dist/TableV2/src/header-row.js +1 -0
  297. package/dist/TableV2/src/header.d.ts +15 -0
  298. package/dist/TableV2/src/header.js +1 -0
  299. package/dist/TableV2/src/private.d.ts +1 -0
  300. package/dist/TableV2/src/private.js +1 -0
  301. package/dist/TableV2/src/renderers/cell.d.ts +14 -0
  302. package/dist/TableV2/src/renderers/cell.js +120 -0
  303. package/dist/TableV2/src/renderers/empty.d.ts +7 -0
  304. package/dist/TableV2/src/renderers/empty.js +11 -0
  305. package/dist/TableV2/src/renderers/footer.d.ts +7 -0
  306. package/dist/TableV2/src/renderers/footer.js +9 -0
  307. package/dist/TableV2/src/renderers/header-cell.d.ts +13 -0
  308. package/dist/TableV2/src/renderers/header-cell.js +92 -0
  309. package/dist/TableV2/src/renderers/header.d.ts +9 -0
  310. package/dist/TableV2/src/renderers/header.js +39 -0
  311. package/dist/TableV2/src/renderers/left-table.d.ts +32 -0
  312. package/dist/TableV2/src/renderers/left-table.js +15 -0
  313. package/dist/TableV2/src/renderers/main-table.d.ts +31 -0
  314. package/dist/TableV2/src/renderers/main-table.js +12 -0
  315. package/dist/TableV2/src/renderers/overlay.d.ts +3 -0
  316. package/dist/TableV2/src/renderers/overlay.js +9 -0
  317. package/dist/TableV2/src/renderers/right-table.d.ts +31 -0
  318. package/dist/TableV2/src/renderers/right-table.js +15 -0
  319. package/dist/TableV2/src/renderers/row.d.ts +11 -0
  320. package/dist/TableV2/src/renderers/row.js +96 -0
  321. package/dist/TableV2/src/row.d.ts +51 -0
  322. package/dist/TableV2/src/row.js +1 -0
  323. package/dist/TableV2/src/table-grid.d.ts +43 -0
  324. package/dist/TableV2/src/table-grid.js +283 -0
  325. package/dist/TableV2/src/table-v2.d.ts +31 -0
  326. package/dist/TableV2/src/table-v2.js +311 -0
  327. package/dist/TableV2/src/table.d.ts +196 -0
  328. package/dist/TableV2/src/table.js +1 -0
  329. package/dist/TableV2/src/tokens.d.ts +11 -0
  330. package/dist/TableV2/src/tokens.js +6 -0
  331. package/dist/TableV2/src/types.d.ts +94 -0
  332. package/dist/TableV2/src/types.js +1 -0
  333. package/dist/TableV2/src/use-table.d.ts +48 -0
  334. package/dist/TableV2/src/use-table.js +197 -0
  335. package/dist/TableV2/src/utils.d.ts +5 -0
  336. package/dist/TableV2/src/utils.js +47 -0
  337. package/dist/Tabs/Tabs.js +1 -1
  338. package/dist/Tabs/typings.d.ts +1 -3
  339. package/dist/Tag/Tag.js +1 -1
  340. package/dist/Tag/typings.d.ts +1 -1
  341. package/dist/Text/Text.d.ts +4 -0
  342. package/dist/Text/Text.js +84 -0
  343. package/dist/Text/index.d.ts +2 -0
  344. package/dist/Text/index.js +1 -0
  345. package/dist/Text/typings.d.ts +15 -0
  346. package/dist/Text/typings.js +1 -0
  347. package/dist/TimePicker/TimePicker.js +6 -7
  348. package/dist/TimePicker/TimePickerPanel.js +12 -2
  349. package/dist/TimePicker/TimePickerRange.js +19 -8
  350. package/dist/Tooltip/Tooltip.js +31 -8
  351. package/dist/Tooltip/typings.d.ts +4 -0
  352. package/dist/Tour/Content.d.ts +9 -0
  353. package/dist/Tour/Content.js +81 -0
  354. package/dist/Tour/Mask.d.ts +12 -0
  355. package/dist/Tour/Mask.js +100 -0
  356. package/dist/Tour/Step.d.ts +7 -0
  357. package/dist/Tour/Step.js +119 -0
  358. package/dist/Tour/Tour.d.ts +6 -0
  359. package/dist/Tour/Tour.js +237 -0
  360. package/dist/Tour/context.d.ts +4 -0
  361. package/dist/Tour/context.js +9 -0
  362. package/dist/Tour/helper.d.ts +39 -0
  363. package/dist/Tour/helper.js +286 -0
  364. package/dist/Tour/index.d.ts +3 -0
  365. package/dist/Tour/index.js +2 -0
  366. package/dist/Tour/typings.d.ts +318 -0
  367. package/dist/Tour/typings.js +38 -0
  368. package/dist/Transfer/List.js +58 -59
  369. package/dist/Transfer/ListItem.d.ts +2 -2
  370. package/dist/Transfer/Transfer.d.ts +2 -2
  371. package/dist/Transfer/Transfer.js +84 -70
  372. package/dist/Transfer/index.d.ts +1 -1
  373. package/dist/Transfer/operation.js +8 -10
  374. package/dist/Transfer/typings/index.d.ts +49 -38
  375. package/dist/Transfer/typings/list.d.ts +11 -11
  376. package/dist/Transfer/typings/listBody.d.ts +2 -2
  377. package/dist/Transition/Transition.d.ts +1 -0
  378. package/dist/Transition/Transition.js +8 -7
  379. package/dist/Tree/CollapseTransition.d.ts +7 -0
  380. package/dist/Tree/CollapseTransition.js +60 -0
  381. package/dist/Tree/Tree.d.ts +3 -140
  382. package/dist/Tree/Tree.js +351 -77
  383. package/dist/Tree/TreeContext.d.ts +9 -0
  384. package/dist/Tree/TreeContext.js +14 -0
  385. package/dist/Tree/TreeNode.d.ts +5 -3
  386. package/dist/Tree/TreeNode.js +321 -331
  387. package/dist/Tree/TreeNodeContent.d.ts +9 -0
  388. package/dist/Tree/TreeNodeContent.js +22 -0
  389. package/dist/Tree/index.d.ts +3 -8
  390. package/dist/Tree/index.js +1 -4
  391. package/dist/Tree/model/node.d.ts +62 -0
  392. package/dist/Tree/model/node.js +601 -0
  393. package/dist/Tree/model/tree-store.d.ts +52 -0
  394. package/dist/Tree/model/tree-store.js +510 -0
  395. package/dist/Tree/model/useDragNode.d.ts +30 -0
  396. package/dist/Tree/model/useDragNode.js +293 -0
  397. package/dist/Tree/model/useKeydown.d.ts +0 -0
  398. package/dist/Tree/model/useKeydown.js +104 -0
  399. package/dist/Tree/model/useNodeExpandEventBroadcast.d.ts +15 -0
  400. package/dist/Tree/model/useNodeExpandEventBroadcast.js +54 -0
  401. package/dist/Tree/model/util.d.ts +7 -0
  402. package/dist/Tree/model/util.js +24 -0
  403. package/dist/Tree/typings.d.ts +227 -114
  404. package/dist/TreeSelect/TreeSelect.d.ts +2 -10
  405. package/dist/TreeSelect/TreeSelect.js +90 -566
  406. package/dist/TreeSelect/TreeSelectOption.d.ts +6 -0
  407. package/dist/TreeSelect/TreeSelectOption.js +62 -0
  408. package/dist/TreeSelect/Utils.d.ts +10 -3
  409. package/dist/TreeSelect/Utils.js +37 -19
  410. package/dist/TreeSelect/cacheOptions.d.ts +9 -0
  411. package/dist/TreeSelect/cacheOptions.js +22 -0
  412. package/dist/TreeSelect/index.d.ts +0 -1
  413. package/dist/TreeSelect/typings.d.ts +11 -63
  414. package/dist/TreeSelect/useSelect.d.ts +78 -0
  415. package/dist/TreeSelect/useSelect.js +104 -0
  416. package/dist/TreeSelect/useTree.d.ts +125 -0
  417. package/dist/TreeSelect/useTree.js +285 -0
  418. package/dist/Upload/UploadContent.js +3 -1
  419. package/dist/Upload/ajax.js +3 -0
  420. package/dist/Upload/typings.d.ts +5 -1
  421. package/dist/Util/PopupManager.js +1 -1
  422. package/dist/Util/aria.d.ts +1 -1
  423. package/dist/Util/aria.js +12 -12
  424. package/dist/Util/base.d.ts +36 -6
  425. package/dist/Util/base.js +180 -13
  426. package/dist/Util/easings.d.ts +1 -0
  427. package/dist/Util/easings.js +8 -0
  428. package/dist/Util/error.d.ts +3 -0
  429. package/dist/Util/error.js +39 -0
  430. package/dist/Util/icons.d.ts +2 -0
  431. package/dist/Util/icons.js +15 -0
  432. package/dist/Util/index.d.ts +6 -2
  433. package/dist/Util/index.js +6 -2
  434. package/dist/Util/position.d.ts +9 -0
  435. package/dist/Util/position.js +53 -0
  436. package/dist/Util/raf.d.ts +4 -0
  437. package/dist/Util/raf.js +10 -0
  438. package/dist/Util/scroll.d.ts +9 -0
  439. package/dist/Util/scroll.js +72 -0
  440. package/dist/Util/throttleByRaf.d.ts +4 -0
  441. package/dist/Util/throttleByRaf.js +21 -0
  442. package/dist/VirtualList/builders/build-grid.d.ts +5 -0
  443. package/dist/VirtualList/builders/build-grid.js +561 -0
  444. package/dist/VirtualList/builders/build-list.d.ts +7 -0
  445. package/dist/VirtualList/builders/build-list.js +408 -0
  446. package/dist/VirtualList/components/dynamic-size-grid.d.ts +15 -0
  447. package/dist/VirtualList/components/dynamic-size-grid.js +242 -0
  448. package/dist/VirtualList/components/dynamic-size-list.d.ts +7 -0
  449. package/dist/VirtualList/components/dynamic-size-list.js +186 -0
  450. package/dist/VirtualList/components/fixed-size-grid.d.ts +4 -0
  451. package/dist/VirtualList/components/fixed-size-grid.js +161 -0
  452. package/dist/VirtualList/components/fixed-size-list.d.ts +7 -0
  453. package/dist/VirtualList/components/fixed-size-list.js +103 -0
  454. package/dist/VirtualList/components/scrollbar.d.ts +5 -0
  455. package/dist/VirtualList/components/scrollbar.js +272 -0
  456. package/dist/VirtualList/defaults.d.ts +26 -0
  457. package/dist/VirtualList/defaults.js +24 -0
  458. package/dist/VirtualList/hooks/use-cache.d.ts +1 -0
  459. package/dist/VirtualList/hooks/use-cache.js +16 -0
  460. package/dist/VirtualList/hooks/use-grid-touch.d.ts +8 -0
  461. package/dist/VirtualList/hooks/use-grid-touch.js +58 -0
  462. package/dist/VirtualList/hooks/use-grid-wheel.d.ts +12 -0
  463. package/dist/VirtualList/hooks/use-grid-wheel.js +48 -0
  464. package/dist/VirtualList/hooks/use-wheel.d.ts +12 -0
  465. package/dist/VirtualList/hooks/use-wheel.js +41 -0
  466. package/dist/VirtualList/index.d.ts +9 -0
  467. package/dist/VirtualList/index.js +6 -0
  468. package/dist/VirtualList/props.d.ts +95 -0
  469. package/dist/VirtualList/props.js +42 -0
  470. package/dist/VirtualList/types.d.ts +151 -0
  471. package/dist/VirtualList/types.js +1 -0
  472. package/dist/VirtualList/utils.d.ts +11 -0
  473. package/dist/VirtualList/utils.js +56 -0
  474. package/dist/Watermark/Watermark.d.ts +4 -0
  475. package/dist/Watermark/Watermark.js +257 -0
  476. package/dist/Watermark/helper.d.ts +50 -0
  477. package/dist/Watermark/helper.js +253 -0
  478. package/dist/Watermark/index.d.ts +2 -0
  479. package/dist/Watermark/index.js +1 -0
  480. package/dist/Watermark/typings.d.ts +93 -0
  481. package/dist/Watermark/typings.js +1 -0
  482. package/dist/config/Constants.d.ts +3 -0
  483. package/dist/config/Constants.js +8 -0
  484. package/dist/hooks/index.d.ts +2 -0
  485. package/dist/hooks/index.js +1 -0
  486. package/dist/hooks/popperPropsUtils.js +1 -1
  487. package/dist/hooks/treePropsUtils.d.ts +3 -3
  488. package/dist/hooks/treePropsUtils.js +2 -2
  489. package/dist/hooks/useClassNames.d.ts +1 -0
  490. package/dist/hooks/useClickOutside.js +25 -9
  491. package/dist/hooks/useCommonProps.d.ts +4 -0
  492. package/dist/hooks/useCommonProps.js +12 -3
  493. package/dist/hooks/useConfigProvider.d.ts +27 -0
  494. package/dist/hooks/useConfigProvider.js +78 -0
  495. package/dist/hooks/useLockscreen.d.ts +6 -0
  496. package/dist/hooks/useLockscreen.js +45 -0
  497. package/dist/hooks/useResizeObserver.d.ts +1 -1
  498. package/dist/hooks/useResizeObserver.js +7 -7
  499. package/dist/index.css +1 -1
  500. package/dist/index.d.ts +50 -22
  501. package/dist/index.js +27 -10
  502. package/dist/locale/en.d.ts +4 -1
  503. package/dist/locale/en.js +4 -1
  504. package/dist/locale/zhCn.d.ts +4 -1
  505. package/dist/locale/zhCn.js +4 -1
  506. package/package.json +5 -3
  507. package/theme-chalk/affix.scss +7 -0
  508. package/theme-chalk/alert.scss +115 -0
  509. package/theme-chalk/anchor-link.scss +45 -0
  510. package/theme-chalk/anchor.scss +93 -0
  511. package/theme-chalk/aside.scss +8 -8
  512. package/theme-chalk/backtop.scss +29 -0
  513. package/theme-chalk/breadcrumb-item.scss +58 -0
  514. package/theme-chalk/breadcrumb.scss +5 -61
  515. package/theme-chalk/button-group.scss +80 -80
  516. package/theme-chalk/button.scss +304 -304
  517. package/theme-chalk/calendar/date-table.scss +164 -164
  518. package/theme-chalk/cascader-panel.scss +57 -82
  519. package/theme-chalk/cascader.scss +206 -160
  520. package/theme-chalk/checkbox.scss +38 -0
  521. package/theme-chalk/collapse-item.scss +72 -0
  522. package/theme-chalk/collapse.scss +21 -76
  523. package/theme-chalk/color/index.scss +20 -20
  524. package/theme-chalk/common/popup.scss +47 -0
  525. package/theme-chalk/common/transition.scss +142 -142
  526. package/theme-chalk/common/var.scss +62 -6
  527. package/theme-chalk/container.scss +14 -14
  528. package/theme-chalk/dark/css-vars.scss +39 -39
  529. package/theme-chalk/dark/var.scss +225 -225
  530. package/theme-chalk/date-picker.scss +12 -12
  531. package/theme-chalk/dialog.scss +145 -137
  532. package/theme-chalk/drawer.scss +252 -246
  533. package/theme-chalk/footer.scss +12 -12
  534. package/theme-chalk/form-item.scss +437 -0
  535. package/theme-chalk/form.scss +23 -361
  536. package/theme-chalk/header.scss +12 -12
  537. package/theme-chalk/index.scss +21 -1
  538. package/theme-chalk/input/input-range.scss +2 -1
  539. package/theme-chalk/input/input.scss +458 -424
  540. package/theme-chalk/input-number.scss +82 -75
  541. package/theme-chalk/link.scss +87 -87
  542. package/theme-chalk/main.scss +14 -14
  543. package/theme-chalk/menu.scss +353 -353
  544. package/theme-chalk/message-box.scss +160 -133
  545. package/theme-chalk/message.scss +54 -128
  546. package/theme-chalk/mixins/_button.scss +224 -224
  547. package/theme-chalk/mixins/_col.scss +33 -33
  548. package/theme-chalk/mixins/_var.scss +67 -67
  549. package/theme-chalk/mixins/config.scss +5 -5
  550. package/theme-chalk/mixins/function.scss +99 -99
  551. package/theme-chalk/mixins/mixins.scss +237 -240
  552. package/theme-chalk/mixins/utils.scss +39 -39
  553. package/theme-chalk/notification.scss +96 -143
  554. package/theme-chalk/overlay.scss +17 -0
  555. package/theme-chalk/page-header.scss +60 -0
  556. package/theme-chalk/popper.scss +104 -104
  557. package/theme-chalk/radio-button.scss +169 -169
  558. package/theme-chalk/radio.scss +3 -3
  559. package/theme-chalk/segmented.scss +186 -0
  560. package/theme-chalk/select/index.scss +278 -272
  561. package/theme-chalk/slider.scss +212 -0
  562. package/theme-chalk/space.scss +20 -0
  563. package/theme-chalk/statistic.scss +35 -0
  564. package/theme-chalk/step.scss +320 -0
  565. package/theme-chalk/steps.scss +22 -0
  566. package/theme-chalk/switch.scss +300 -300
  567. package/theme-chalk/table-v2.scss +237 -0
  568. package/theme-chalk/table.scss +461 -482
  569. package/theme-chalk/tag.scss +181 -181
  570. package/theme-chalk/text.scss +48 -0
  571. package/theme-chalk/time-range-picker.scss +1 -1
  572. package/theme-chalk/tooltip.scss +2 -2
  573. package/theme-chalk/tour.scss +170 -0
  574. package/theme-chalk/transfer.scss +38 -12
  575. package/theme-chalk/transition.scss +34 -4
  576. package/theme-chalk/tree-select.scss +35 -19
  577. package/theme-chalk/tree.scss +136 -0
  578. package/theme-chalk/var.scss +83 -83
  579. package/theme-chalk/virtual-list.scss +40 -0
  580. package/dist/Input/Input.1.d.ts +0 -16
  581. package/dist/Input/Input.1.js +0 -376
  582. package/dist/Tree/DirectoryTree.d.ts +0 -15
  583. package/dist/Tree/DirectoryTree.js +0 -183
  584. package/dist/Tree/DropIndicator.d.ts +0 -8
  585. package/dist/Tree/DropIndicator.js +0 -34
  586. package/dist/Tree/Indent.d.ts +0 -9
  587. package/dist/Tree/MotionTreeNode.d.ts +0 -14
  588. package/dist/Tree/MotionTreeNode.js +0 -125
  589. package/dist/Tree/NodeList.d.ts +0 -50
  590. package/dist/Tree/NodeList.js +0 -301
  591. package/dist/Tree/RCTree.d.ts +0 -248
  592. package/dist/Tree/RCTree.js +0 -1216
  593. package/dist/Tree/contextTypes.d.ts +0 -69
  594. package/dist/Tree/contextTypes.js +0 -9
  595. package/dist/Tree/typings.tsx--bak +0 -245
  596. package/dist/Tree/useUnmount.d.ts +0 -5
  597. package/dist/Tree/useUnmount.js +0 -34
  598. package/dist/Tree/util.d.ts +0 -51
  599. package/dist/Tree/util.js +0 -303
  600. package/dist/Tree/utils/conductUtil.d.ts +0 -17
  601. package/dist/Tree/utils/conductUtil.js +0 -209
  602. package/dist/Tree/utils/dictUtil.d.ts +0 -13
  603. package/dist/Tree/utils/dictUtil.js +0 -75
  604. package/dist/Tree/utils/diffUtil.d.ts +0 -7
  605. package/dist/Tree/utils/diffUtil.js +0 -48
  606. package/dist/Tree/utils/dropIndicator.d.ts +0 -11
  607. package/dist/Tree/utils/dropIndicator.js +0 -36
  608. package/dist/Tree/utils/iconUtil.d.ts +0 -5
  609. package/dist/Tree/utils/iconUtil.js +0 -62
  610. package/dist/Tree/utils/keyUtil.d.ts +0 -2
  611. package/dist/Tree/utils/keyUtil.js +0 -3
  612. package/dist/Tree/utils/motion.d.ts +0 -10
  613. package/dist/Tree/utils/motion.js +0 -54
  614. package/dist/Tree/utils/pickAttrs.d.ts +0 -11
  615. package/dist/Tree/utils/pickAttrs.js +0 -51
  616. package/dist/Tree/utils/treeUtil.d.ts +0 -86
  617. package/dist/Tree/utils/treeUtil.js +0 -364
  618. package/theme-chalk/button/_mixins.scss +0 -317
  619. package/theme-chalk/button/button-group.scss +0 -83
  620. package/theme-chalk/button/button.scss +0 -382
  621. package/theme-chalk/button/index.scss +0 -2
  622. package/theme-chalk/button--bak/_mixins.scss +0 -317
  623. package/theme-chalk/button--bak/button-group.scss +0 -83
  624. package/theme-chalk/button--bak/button.scss +0 -382
  625. package/theme-chalk/button--bak/index.scss +0 -2
  626. package/theme-chalk/calendar/date-table.scss--bak +0 -156
  627. package/theme-chalk/input/input.scss--bak +0 -578
  628. package/theme-chalk/link.scss--bak +0 -99
  629. package/theme-chalk/popper.scss--bak +0 -86
  630. package/theme-chalk/radio-button.scss--bak +0 -128
  631. package/theme-chalk/select/index.scss--bak +0 -247
  632. package/theme-chalk/switch.scss--bak +0 -273
  633. package/theme-chalk/tag.scss--bak +0 -203
  634. package/theme-chalk/tree/_directory.scss +0 -73
  635. package/theme-chalk/tree/_tree.scss +0 -401
  636. package/theme-chalk/tree/index.scss +0 -2
@@ -0,0 +1,55 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { useCallback, useEffect, useRef, useState } from 'react';
8
+ import { useResizeObserver } from "../../../hooks/useResizeObserver";
9
+ export var useAutoResize = function useAutoResize(props) {
10
+ var sizerRef = useRef(null);
11
+ var _useState = useState(0),
12
+ _useState2 = _slicedToArray(_useState, 2),
13
+ width = _useState2[0],
14
+ setWidth = _useState2[1];
15
+ var _useState3 = useState(0),
16
+ _useState4 = _slicedToArray(_useState3, 2),
17
+ height = _useState4[0],
18
+ setHeight = _useState4[1];
19
+ var handleResize = useCallback(function (_ref) {
20
+ var _ref2 = _slicedToArray(_ref, 1),
21
+ entry = _ref2[0];
22
+ var _entry$contentRect = entry.contentRect,
23
+ width$ = _entry$contentRect.width,
24
+ height$ = _entry$contentRect.height;
25
+ var style = window.getComputedStyle(entry.target);
26
+ var paddingLeft = Number.parseInt(style.paddingLeft) || 0;
27
+ var paddingRight = Number.parseInt(style.paddingRight) || 0;
28
+ var paddingTop = Number.parseInt(style.paddingTop) || 0;
29
+ var paddingBottom = Number.parseInt(style.paddingBottom) || 0;
30
+ var calculatedWidth = width$ - paddingLeft - paddingRight;
31
+ var calculatedHeight = height$ - paddingTop - paddingBottom;
32
+ setWidth(calculatedWidth);
33
+ setHeight(calculatedHeight);
34
+ }, []);
35
+ var resizerStopper = useResizeObserver(sizerRef, handleResize);
36
+ useEffect(function () {
37
+ return function () {
38
+ return resizerStopper.stop();
39
+ };
40
+ }, []);
41
+
42
+ // Call onResize when dimensions change
43
+ useEffect(function () {
44
+ var _props$onResize;
45
+ (_props$onResize = props.onResize) === null || _props$onResize === void 0 || _props$onResize.call(props, {
46
+ width: width,
47
+ height: height
48
+ });
49
+ }, [width, height]);
50
+ return {
51
+ sizer: sizerRef,
52
+ width: props.disableWidth ? undefined : width,
53
+ height: props.disableHeight ? undefined : height
54
+ };
55
+ };
@@ -0,0 +1,21 @@
1
+ import { CSSProperties } from 'react';
2
+ import { TableV2Props } from '../table';
3
+ import { AnyColumns, Column, KeyType } from '../types';
4
+ interface UseColumnsReturn {
5
+ columns: AnyColumns;
6
+ columnsStyles: Record<KeyType, CSSProperties>;
7
+ columnsTotalWidth: number;
8
+ fixedColumnsOnLeft: AnyColumns;
9
+ fixedColumnsOnRight: AnyColumns;
10
+ hasFixedColumns: number;
11
+ mainColumns: AnyColumns;
12
+ normalColumns: AnyColumns;
13
+ visibleColumns: AnyColumns;
14
+ getColumn: (key: KeyType) => Column<any> | undefined;
15
+ getColumnStyle: (key: KeyType) => CSSProperties | undefined;
16
+ updateColumnWidth: (column: Column<any>, width: number) => void;
17
+ onColumnSorted: (e: MouseEvent) => void;
18
+ }
19
+ declare function useColumns(props: TableV2Props, columns: AnyColumns, fixed: boolean): UseColumnsReturn;
20
+ export { useColumns };
21
+ export type { UseColumnsReturn };
@@ -0,0 +1,119 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import { useMemo } from 'react';
8
+ import { SortOrder, oppositeOrderMap } from "../constants";
9
+ import { placeholderSign } from "../private";
10
+ import { calcColumnStyle } from "./utils";
11
+ import { isObject } from "../../../Util";
12
+ function useColumns(props, columns, fixed) {
13
+ var _columns = useMemo(function () {
14
+ return columns.map(function (column, index) {
15
+ var _ref, _column$key;
16
+ return _objectSpread(_objectSpread({}, column), {}, {
17
+ key: (_ref = (_column$key = column.key) !== null && _column$key !== void 0 ? _column$key : column.dataKey) !== null && _ref !== void 0 ? _ref : index
18
+ });
19
+ });
20
+ }, [columns]);
21
+ var visibleColumns = useMemo(function () {
22
+ return _columns.filter(function (column) {
23
+ return !column.hidden;
24
+ });
25
+ }, [_columns]);
26
+ var fixedColumnsOnLeft = useMemo(function () {
27
+ return visibleColumns.filter(function (column) {
28
+ return column.fixed === 'left' || column.fixed === true;
29
+ });
30
+ }, [visibleColumns]);
31
+ var fixedColumnsOnRight = useMemo(function () {
32
+ return visibleColumns.filter(function (column) {
33
+ return column.fixed === 'right';
34
+ });
35
+ }, [visibleColumns]);
36
+ var normalColumns = useMemo(function () {
37
+ return visibleColumns.filter(function (column) {
38
+ return !column.fixed;
39
+ });
40
+ }, [visibleColumns]);
41
+ var mainColumns = useMemo(function () {
42
+ var ret = [];
43
+ fixedColumnsOnLeft.forEach(function (column) {
44
+ ret.push(_objectSpread(_objectSpread({}, column), {}, {
45
+ placeholderSign: placeholderSign
46
+ }));
47
+ });
48
+ normalColumns.forEach(function (column) {
49
+ ret.push(column);
50
+ });
51
+ fixedColumnsOnRight.forEach(function (column) {
52
+ ret.push(_objectSpread(_objectSpread({}, column), {}, {
53
+ placeholderSign: placeholderSign
54
+ }));
55
+ });
56
+ return ret;
57
+ }, [fixedColumnsOnLeft, normalColumns, fixedColumnsOnRight]);
58
+ var hasFixedColumns = useMemo(function () {
59
+ return fixedColumnsOnLeft.length || fixedColumnsOnRight.length;
60
+ }, [fixedColumnsOnLeft, fixedColumnsOnRight]);
61
+ var columnsStyles = useMemo(function () {
62
+ return _columns.reduce(function (style, column) {
63
+ style[column.key] = calcColumnStyle(column, fixed, props.fixed);
64
+ return style;
65
+ }, {});
66
+ }, [_columns, fixed, props.fixed]);
67
+ var columnsTotalWidth = useMemo(function () {
68
+ return visibleColumns.reduce(function (width, column) {
69
+ return width + column.width;
70
+ }, 0);
71
+ }, [visibleColumns]);
72
+ var getColumn = function getColumn(key) {
73
+ return _columns.find(function (column) {
74
+ return column.key === key;
75
+ });
76
+ };
77
+ var getColumnStyle = function getColumnStyle(key) {
78
+ return columnsStyles[key];
79
+ };
80
+ var updateColumnWidth = function updateColumnWidth(column, width) {
81
+ column.width = width;
82
+ };
83
+ function onColumnSorted(e) {
84
+ var _props$onColumnSort;
85
+ var key = e.currentTarget.dataset.key;
86
+ if (!key) {
87
+ return;
88
+ }
89
+ var sortState = props.sortState,
90
+ sortBy = props.sortBy;
91
+ var order = SortOrder.ASC;
92
+ if (isObject(sortState)) {
93
+ order = oppositeOrderMap[sortState[key]];
94
+ } else if (sortBy && _typeof(sortBy) === 'object' && 'order' in sortBy) {
95
+ order = oppositeOrderMap[sortBy.order];
96
+ }
97
+ (_props$onColumnSort = props.onColumnSort) === null || _props$onColumnSort === void 0 || _props$onColumnSort.call(props, {
98
+ column: getColumn(key),
99
+ key: key,
100
+ order: order
101
+ });
102
+ }
103
+ return {
104
+ columns: _columns,
105
+ columnsStyles: columnsStyles,
106
+ columnsTotalWidth: columnsTotalWidth,
107
+ fixedColumnsOnLeft: fixedColumnsOnLeft,
108
+ fixedColumnsOnRight: fixedColumnsOnRight,
109
+ hasFixedColumns: hasFixedColumns,
110
+ mainColumns: mainColumns,
111
+ normalColumns: normalColumns,
112
+ visibleColumns: visibleColumns,
113
+ getColumn: getColumn,
114
+ getColumnStyle: getColumnStyle,
115
+ updateColumnWidth: updateColumnWidth,
116
+ onColumnSorted: onColumnSorted
117
+ };
118
+ }
119
+ export { useColumns };
@@ -0,0 +1,15 @@
1
+ import type { TableV2Props } from '../table';
2
+ import type { KeyType } from '../types';
3
+ import type { UseRowReturn } from './use-row';
4
+ type UseDataProps = {
5
+ expandedRowKeys: UseRowReturn['expandedRowKeys'];
6
+ lastRenderedRowIndex: UseRowReturn['lastRenderedRowIndex'];
7
+ setLastRenderedRowIndex: UseRowReturn['setLastRenderedRowIndex'];
8
+ resetAfterIndex: UseRowReturn['resetAfterIndex'];
9
+ };
10
+ export declare const useData: (props: TableV2Props, { expandedRowKeys, lastRenderedRowIndex, setLastRenderedRowIndex, resetAfterIndex }: UseDataProps) => {
11
+ data: any[];
12
+ depthMap: Record<KeyType, number>;
13
+ };
14
+ export type UseDataReturn = ReturnType<typeof useData>;
15
+ export {};
@@ -0,0 +1,62 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ import isArray from 'lodash/isArray';
8
+ import { useEffect, useMemo, useRef } from 'react';
9
+ export var useData = function useData(props, _ref) {
10
+ var expandedRowKeys = _ref.expandedRowKeys,
11
+ lastRenderedRowIndex = _ref.lastRenderedRowIndex,
12
+ setLastRenderedRowIndex = _ref.setLastRenderedRowIndex,
13
+ resetAfterIndex = _ref.resetAfterIndex;
14
+ // const [depthMap, setDepthMap] = useState<Record<KeyType, number>>({});
15
+ var depthMap = useRef({});
16
+ var flattenedData = useMemo(function () {
17
+ var depths = {};
18
+ var data = props.data,
19
+ rowKey = props.rowKey;
20
+ if (!expandedRowKeys || !expandedRowKeys.length) {
21
+ return data;
22
+ }
23
+ var array = [];
24
+ var keysSet = new Set();
25
+ expandedRowKeys.forEach(function (x) {
26
+ return keysSet.add(x);
27
+ });
28
+ var copy = data.slice();
29
+ copy.forEach(function (x) {
30
+ return depths[x[rowKey]] = 0;
31
+ });
32
+ var _loop = function _loop() {
33
+ var item = copy.shift();
34
+ array.push(item);
35
+ if (keysSet.has(item[rowKey]) && isArray(item.children) && item.children.length > 0) {
36
+ copy = [].concat(_toConsumableArray(item.children), _toConsumableArray(copy));
37
+ item.children.forEach(function (child) {
38
+ return depths[child[rowKey]] = depths[item[rowKey]] + 1;
39
+ });
40
+ }
41
+ };
42
+ while (copy.length > 0) {
43
+ _loop();
44
+ }
45
+ depthMap.current = depths;
46
+ return array;
47
+ }, [props.data, props.rowKey, expandedRowKeys]);
48
+ var data = useMemo(function () {
49
+ var expandColumnKey = props.expandColumnKey;
50
+ return expandColumnKey ? flattenedData : props.data;
51
+ }, [props.expandColumnKey, flattenedData, props.data]);
52
+
53
+ // Equivalent to watch(data, ...)
54
+ useEffect(function () {
55
+ setLastRenderedRowIndex(-1);
56
+ resetAfterIndex(0, true);
57
+ }, [data]);
58
+ return {
59
+ data: data,
60
+ depthMap: depthMap.current
61
+ };
62
+ };
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import type { UseNamespaceReturn } from '../../../hooks/useClassNames';
3
+ import type { onRowRenderedParams } from '../grid';
4
+ import type { RowExpandParams, RowHeightChangedParams, RowHoverParams } from '../row';
5
+ import type { TableV2Props } from '../table';
6
+ import type { TableGridInstance } from '../table-grid';
7
+ import type { FixedDirection, KeyType } from '../types';
8
+ type Heights = Record<KeyType, number>;
9
+ type GridInstanceRef = React.RefObject<TableGridInstance | null>;
10
+ type UseRowProps = {
11
+ mainTableRef: GridInstanceRef;
12
+ leftTableRef: GridInstanceRef;
13
+ rightTableRef: GridInstanceRef;
14
+ tableInstance: any;
15
+ ns: UseNamespaceReturn;
16
+ isScrolling: boolean;
17
+ onExpandedRowKeys?: (expandedRowKeys: KeyType[]) => void;
18
+ };
19
+ export declare const useRow: (props: TableV2Props, { mainTableRef, leftTableRef, rightTableRef, tableInstance, ns, isScrolling, onExpandedRowKeys }: UseRowProps) => {
20
+ expandedRowKeys: KeyType[];
21
+ setExpandedRowKeys: React.Dispatch<React.SetStateAction<KeyType[]>>;
22
+ lastRenderedRowIndex: number;
23
+ setLastRenderedRowIndex: React.Dispatch<React.SetStateAction<number>>;
24
+ isDynamic: boolean;
25
+ isResetting: React.MutableRefObject<boolean>;
26
+ rowHeights: Heights;
27
+ resetAfterIndex: (index: number, forceUpdate?: boolean) => void;
28
+ onRowExpanded: ({ expanded, rowData, rowIndex, rowKey }: RowExpandParams) => void;
29
+ onRowHovered: ({ hovered, rowKey }: RowHoverParams) => void;
30
+ onRowsRendered: (params: onRowRenderedParams) => void;
31
+ onRowHeightChange: ({ rowKey, height, rowIndex }: RowHeightChangedParams, fixedDir: FixedDirection) => void;
32
+ };
33
+ export type UseRowReturn = ReturnType<typeof useRow>;
34
+ export {};
@@ -0,0 +1,191 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
10
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
11
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
12
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
13
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
14
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
15
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
16
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
+ import debounce from 'lodash/debounce';
18
+ import isNumber from 'lodash/isNumber';
19
+ import { useCallback, useMemo, useRef, useState } from 'react';
20
+ import { FixedDir } from "../constants";
21
+ export var useRow = function useRow(props, _ref) {
22
+ var mainTableRef = _ref.mainTableRef,
23
+ leftTableRef = _ref.leftTableRef,
24
+ rightTableRef = _ref.rightTableRef,
25
+ tableInstance = _ref.tableInstance,
26
+ ns = _ref.ns,
27
+ isScrolling = _ref.isScrolling,
28
+ onExpandedRowKeys = _ref.onExpandedRowKeys;
29
+ // const [isResetting, setIsResetting] = useState(false);
30
+ var _useState = useState(props.defaultExpandedRowKeys || []),
31
+ _useState2 = _slicedToArray(_useState, 2),
32
+ expandedRowKeys = _useState2[0],
33
+ setExpandedRowKeys = _useState2[1];
34
+ var _useState3 = useState(-1),
35
+ _useState4 = _slicedToArray(_useState3, 2),
36
+ lastRenderedRowIndex = _useState4[0],
37
+ setLastRenderedRowIndex = _useState4[1];
38
+ var resetIndexRef = useRef(null);
39
+ var _useState5 = useState({}),
40
+ _useState6 = _slicedToArray(_useState5, 2),
41
+ rowHeights = _useState6[0],
42
+ setRowHeights = _useState6[1];
43
+ var isResetting = useRef(false);
44
+ var pendingRowHeightsRef = useRef({});
45
+ var leftTableHeightsRef = useRef({});
46
+ var mainTableHeightsRef = useRef({});
47
+ var rightTableHeightsRef = useRef({});
48
+ var isDynamic = useMemo(function () {
49
+ return isNumber(props.estimatedRowHeight);
50
+ }, [props.estimatedRowHeight]);
51
+ var onRowsRendered = useCallback(function (params) {
52
+ var _props$onRowsRendered;
53
+ (_props$onRowsRendered = props.onRowsRendered) === null || _props$onRowsRendered === void 0 || _props$onRowsRendered.call(props, params);
54
+ if (params.rowCacheEnd > lastRenderedRowIndex) {
55
+ setLastRenderedRowIndex(params.rowCacheEnd);
56
+ }
57
+ }, [lastRenderedRowIndex, props]);
58
+ var onRowHovered = useCallback(function (_ref2) {
59
+ var hovered = _ref2.hovered,
60
+ rowKey = _ref2.rowKey;
61
+ if (isScrolling) {
62
+ return;
63
+ }
64
+ // TODO: 需要找到合适的 DOM 引用方式
65
+ // const tableRoot = tableInstance!.vnode.el as HTMLElement
66
+ // const rows = tableRoot.querySelectorAll(`[rowkey="${String(rowKey)}"]`)
67
+ // rows.forEach(row => {
68
+ // if (hovered) {
69
+ // row.classList.add(ns.is('hovered'))
70
+ // } else {
71
+ // row.classList.remove(ns.is('hovered'))
72
+ // }
73
+ // })
74
+ }, [isScrolling]);
75
+ var onRowExpanded = useCallback(function (_ref3) {
76
+ var expanded = _ref3.expanded,
77
+ rowData = _ref3.rowData,
78
+ rowIndex = _ref3.rowIndex,
79
+ rowKey = _ref3.rowKey;
80
+ setExpandedRowKeys(function (prev) {
81
+ var _props$onRowExpand, _props$onExpandedRows;
82
+ var currentKeyIndex = prev.indexOf(rowKey);
83
+ var newExpandedRowKeys;
84
+ if (expanded) {
85
+ if (currentKeyIndex === -1) {
86
+ newExpandedRowKeys = [].concat(_toConsumableArray(prev), [rowKey]);
87
+ } else {
88
+ newExpandedRowKeys = _toConsumableArray(prev);
89
+ }
90
+ } else {
91
+ if (currentKeyIndex > -1) {
92
+ newExpandedRowKeys = prev.filter(function (key) {
93
+ return key !== rowKey;
94
+ });
95
+ } else {
96
+ newExpandedRowKeys = _toConsumableArray(prev);
97
+ }
98
+ }
99
+ onExpandedRowKeys === null || onExpandedRowKeys === void 0 || onExpandedRowKeys(newExpandedRowKeys);
100
+ (_props$onRowExpand = props.onRowExpand) === null || _props$onRowExpand === void 0 || _props$onRowExpand.call(props, {
101
+ expanded: expanded,
102
+ rowData: rowData,
103
+ rowIndex: rowIndex,
104
+ rowKey: rowKey
105
+ });
106
+ (_props$onExpandedRows = props.onExpandedRowsChange) === null || _props$onExpandedRows === void 0 || _props$onExpandedRows.call(props, newExpandedRowKeys);
107
+ return newExpandedRowKeys;
108
+ });
109
+
110
+ // TODO: 需要找到合适的 DOM 引用方式
111
+ // const tableRoot = tableInstance!.vnode.el as HTMLElement;
112
+ // const hoverRow = tableRoot.querySelector(`.${ns.is('hovered')}[rowkey="${String(rowKey)}"]`);
113
+ // if (hoverRow) {
114
+ // nextTick(() => onRowHovered({ hovered: true, rowKey }));
115
+ // }
116
+ }, [onExpandedRowKeys, props]);
117
+ var resetAfterIndex = useCallback(function (index) {
118
+ var forceUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
119
+ if (!isDynamic) {
120
+ return;
121
+ }
122
+ [mainTableRef, leftTableRef, rightTableRef].forEach(function (tableRef) {
123
+ var table = tableRef.current;
124
+ if (table) {
125
+ var _resetAfterRowIndex, _ref4;
126
+ (_resetAfterRowIndex = (_ref4 = table).resetAfterRowIndex) === null || _resetAfterRowIndex === void 0 || _resetAfterRowIndex.call(_ref4, index, forceUpdate);
127
+ }
128
+ });
129
+ }, [isDynamic, mainTableRef, leftTableRef, rightTableRef]);
130
+
131
+ // Equivalent to debounce for flushing row heights
132
+ var flushingRowHeights = debounce(useCallback(function () {
133
+ var _mainTableRef$current, _mainTableRef$current2, _leftTableRef$current, _leftTableRef$current2, _rightTableRef$curren, _rightTableRef$curren2;
134
+ isResetting.current = true;
135
+ setRowHeights(function (prev) {
136
+ return _objectSpread(_objectSpread({}, prev), pendingRowHeightsRef.current);
137
+ });
138
+ resetAfterIndex(resetIndexRef.current, false);
139
+ pendingRowHeightsRef.current = {};
140
+ // force update
141
+ resetIndexRef.current = null;
142
+ (_mainTableRef$current = mainTableRef.current) === null || _mainTableRef$current === void 0 || (_mainTableRef$current2 = _mainTableRef$current.forceUpdate) === null || _mainTableRef$current2 === void 0 || _mainTableRef$current2.call(_mainTableRef$current);
143
+ (_leftTableRef$current = leftTableRef.current) === null || _leftTableRef$current === void 0 || (_leftTableRef$current2 = _leftTableRef$current.forceUpdate) === null || _leftTableRef$current2 === void 0 || _leftTableRef$current2.call(_leftTableRef$current);
144
+ (_rightTableRef$curren = rightTableRef.current) === null || _rightTableRef$curren === void 0 || (_rightTableRef$curren2 = _rightTableRef$curren.forceUpdate) === null || _rightTableRef$curren2 === void 0 || _rightTableRef$curren2.call(_rightTableRef$curren);
145
+ isResetting.current = false;
146
+ }, [resetAfterIndex, mainTableRef, leftTableRef, rightTableRef]), 0);
147
+ var resetHeights = useCallback(function (rowKey, height, rowIdx) {
148
+ var resetIdx = resetIndexRef.current;
149
+ if (resetIdx === null) {
150
+ resetIndexRef.current = rowIdx;
151
+ } else {
152
+ if (resetIdx > rowIdx) {
153
+ resetIndexRef.current = rowIdx;
154
+ }
155
+ }
156
+ pendingRowHeightsRef.current[rowKey] = height;
157
+ }, []);
158
+ var onRowHeightChange = useCallback(function (_ref5, fixedDir) {
159
+ var rowKey = _ref5.rowKey,
160
+ height = _ref5.height,
161
+ rowIndex = _ref5.rowIndex;
162
+ if (!fixedDir) {
163
+ mainTableHeightsRef.current[rowKey] = height;
164
+ } else {
165
+ if (fixedDir === FixedDir.RIGHT) {
166
+ rightTableHeightsRef.current[rowKey] = height;
167
+ } else {
168
+ leftTableHeightsRef.current[rowKey] = height;
169
+ }
170
+ }
171
+ var maximumHeight = Math.max(leftTableHeightsRef.current[rowKey] || 0, rightTableHeightsRef.current[rowKey] || 0, mainTableHeightsRef.current[rowKey] || 0);
172
+ if (rowHeights[rowKey] !== maximumHeight) {
173
+ resetHeights(rowKey, maximumHeight, rowIndex);
174
+ flushingRowHeights();
175
+ }
176
+ }, [rowHeights, resetHeights, flushingRowHeights]);
177
+ return {
178
+ expandedRowKeys: expandedRowKeys,
179
+ setExpandedRowKeys: setExpandedRowKeys,
180
+ lastRenderedRowIndex: lastRenderedRowIndex,
181
+ setLastRenderedRowIndex: setLastRenderedRowIndex,
182
+ isDynamic: isDynamic,
183
+ isResetting: isResetting,
184
+ rowHeights: rowHeights,
185
+ resetAfterIndex: resetAfterIndex,
186
+ onRowExpanded: onRowExpanded,
187
+ onRowHovered: onRowHovered,
188
+ onRowsRendered: onRowsRendered,
189
+ onRowHeightChange: onRowHeightChange
190
+ };
191
+ };
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import type { Alignment as ScrollStrategy } from "../../../VirtualList";
3
+ import type { TableV2Props } from '../table';
4
+ import type { TableGridInstance } from '../table-grid';
5
+ export type ScrollPos = {
6
+ scrollLeft: number;
7
+ scrollTop: number;
8
+ };
9
+ type GridInstanceRef = React.RefObject<TableGridInstance | null>;
10
+ type UseScrollbarProps = {
11
+ mainTableRef: GridInstanceRef;
12
+ leftTableRef: GridInstanceRef;
13
+ rightTableRef: GridInstanceRef;
14
+ onMaybeEndReached: (scrollPos: ScrollPos) => void;
15
+ };
16
+ export type { ScrollStrategy };
17
+ export declare const useScrollbar: (props: TableV2Props, { mainTableRef, leftTableRef, rightTableRef, onMaybeEndReached }: UseScrollbarProps) => {
18
+ scrollPos: ScrollPos;
19
+ scrollTo: (params: ScrollPos) => void;
20
+ scrollToLeft: (scrollLeft: number) => void;
21
+ scrollToTop: (scrollTop: number) => void;
22
+ scrollToRow: (row: number, strategy?: ScrollStrategy) => void;
23
+ onScroll: (params: ScrollPos) => void;
24
+ onVerticalScroll: ({ scrollTop }: ScrollPos) => void;
25
+ };
@@ -0,0 +1,117 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ import throttle from 'lodash/throttle';
14
+ import { useCallback, useEffect, useRef, useState } from 'react';
15
+ export var useScrollbar = function useScrollbar(props, _ref) {
16
+ var mainTableRef = _ref.mainTableRef,
17
+ leftTableRef = _ref.leftTableRef,
18
+ rightTableRef = _ref.rightTableRef,
19
+ onMaybeEndReached = _ref.onMaybeEndReached;
20
+ var _useState = useState({
21
+ scrollLeft: 0,
22
+ scrollTop: 0
23
+ }),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ scrollPos = _useState2[0],
26
+ setScrollPos = _useState2[1];
27
+ var doScroll = useCallback(function (params) {
28
+ var _mainTableRef$current, _mainTableRef$current2, _leftTableRef$current, _leftTableRef$current2, _rightTableRef$curren, _rightTableRef$curren2;
29
+ var scrollTop = params.scrollTop;
30
+ (_mainTableRef$current = mainTableRef.current) === null || _mainTableRef$current === void 0 || (_mainTableRef$current2 = _mainTableRef$current.scrollTo) === null || _mainTableRef$current2 === void 0 || _mainTableRef$current2.call(_mainTableRef$current, params);
31
+ (_leftTableRef$current = leftTableRef.current) === null || _leftTableRef$current === void 0 || (_leftTableRef$current2 = _leftTableRef$current.scrollToTop) === null || _leftTableRef$current2 === void 0 || _leftTableRef$current2.call(_leftTableRef$current, scrollTop);
32
+ (_rightTableRef$curren = rightTableRef.current) === null || _rightTableRef$curren === void 0 || (_rightTableRef$curren2 = _rightTableRef$curren.scrollToTop) === null || _rightTableRef$curren2 === void 0 || _rightTableRef$curren2.call(_rightTableRef$curren, scrollTop);
33
+ }, [mainTableRef, leftTableRef, rightTableRef]);
34
+
35
+ // methods
36
+ var scrollTo = useCallback(function (params) {
37
+ setScrollPos(params);
38
+ doScroll(params);
39
+ }, [doScroll]);
40
+ var scrollToTop = useCallback(function (scrollTop) {
41
+ setScrollPos(function (prev) {
42
+ return _objectSpread(_objectSpread({}, prev), {}, {
43
+ scrollTop: scrollTop
44
+ });
45
+ });
46
+ doScroll(_objectSpread(_objectSpread({}, scrollPos), {}, {
47
+ scrollTop: scrollTop
48
+ }));
49
+ }, [doScroll, scrollPos]);
50
+ var scrollToLeft = useCallback(function (scrollLeft) {
51
+ var _mainTableRef$current3, _mainTableRef$current4;
52
+ setScrollPos(function (prev) {
53
+ return _objectSpread(_objectSpread({}, prev), {}, {
54
+ scrollLeft: scrollLeft
55
+ });
56
+ });
57
+ (_mainTableRef$current3 = mainTableRef.current) === null || _mainTableRef$current3 === void 0 || (_mainTableRef$current4 = _mainTableRef$current3.scrollTo) === null || _mainTableRef$current4 === void 0 || _mainTableRef$current4.call(_mainTableRef$current3, {
58
+ scrollLeft: scrollLeft,
59
+ scrollTop: scrollPos.scrollTop
60
+ });
61
+ }, [scrollPos.scrollTop, mainTableRef]);
62
+
63
+ // 使用节流优化滚动事件处理
64
+ var throttledScrollTo = useRef(throttle(function (params) {
65
+ var _props$onScroll;
66
+ setScrollPos(params);
67
+ (_props$onScroll = props.onScroll) === null || _props$onScroll === void 0 || _props$onScroll.call(props, params);
68
+ }, 16) // 约60fps
69
+ ).current;
70
+ var onScroll = useCallback(function (params) {
71
+ doScroll(params);
72
+ throttledScrollTo(params);
73
+ }, [doScroll, throttledScrollTo]);
74
+ var throttledScrollToTop = useRef(throttle(function (scrollTop) {
75
+ setScrollPos(function (prev) {
76
+ return _objectSpread(_objectSpread({}, prev), {}, {
77
+ scrollTop: scrollTop
78
+ });
79
+ });
80
+ }, 16)).current;
81
+ var onVerticalScroll = useCallback(function (_ref2) {
82
+ var scrollTop = _ref2.scrollTop;
83
+ var currentScrollTop = scrollPos.scrollTop;
84
+ if (scrollTop !== currentScrollTop) {
85
+ doScroll(_objectSpread(_objectSpread({}, scrollPos), {}, {
86
+ scrollTop: scrollTop
87
+ }));
88
+ throttledScrollToTop(scrollTop);
89
+ }
90
+ }, [scrollPos, doScroll, throttledScrollToTop]);
91
+ var scrollToRow = useCallback(function (row) {
92
+ var _mainTableRef$current5, _mainTableRef$current6;
93
+ var strategy = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'auto';
94
+ (_mainTableRef$current5 = mainTableRef.current) === null || _mainTableRef$current5 === void 0 || (_mainTableRef$current6 = _mainTableRef$current5.scrollToRow) === null || _mainTableRef$current6 === void 0 || _mainTableRef$current6.call(_mainTableRef$current5, row, strategy);
95
+ }, [mainTableRef]);
96
+
97
+ // When scrollTop changes, maybe reaching the bottom
98
+ // Equivalent to watch(() => scrollPos.scrollTop, ...)
99
+ var prevScrollTopRef = useRef(0);
100
+ useEffect(function () {
101
+ var cur = scrollPos.scrollTop;
102
+ var prev = prevScrollTopRef.current;
103
+ if (cur > prev) {
104
+ onMaybeEndReached(scrollPos);
105
+ }
106
+ prevScrollTopRef.current = cur;
107
+ }, [scrollPos.scrollTop, onMaybeEndReached]);
108
+ return {
109
+ scrollPos: scrollPos,
110
+ scrollTo: scrollTo,
111
+ scrollToLeft: scrollToLeft,
112
+ scrollToTop: scrollToTop,
113
+ scrollToRow: scrollToRow,
114
+ onScroll: onScroll,
115
+ onVerticalScroll: onVerticalScroll
116
+ };
117
+ };