@dtjoy/dt-design 1.1.2 → 1.1.5

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 (538) hide show
  1. package/README.md +161 -141
  2. package/dist/dt-design.min.css +1 -0
  3. package/dist/dt-design.min.js +1 -0
  4. package/es/_util/context/createContextSelector.d.ts +28 -0
  5. package/es/_util/context/createContextSelector.js +110 -0
  6. package/es/_util/context/immutable.d.ts +10 -0
  7. package/es/_util/context/immutable.js +84 -0
  8. package/es/_util/context/index.d.ts +3 -0
  9. package/es/_util/context/index.js +3 -0
  10. package/es/_util/easings.d.ts +1 -0
  11. package/es/_util/gapSize.d.ts +3 -0
  12. package/es/_util/getScroll.d.ts +3 -0
  13. package/{esm → es}/_util/getScroll.js +1 -1
  14. package/es/_util/hooks/index.d.ts +11 -0
  15. package/es/_util/hooks/index.js +11 -0
  16. package/es/_util/hooks/useBreakpoint.d.ts +5 -0
  17. package/es/_util/hooks/useBreakpoint.js +75 -0
  18. package/es/_util/hooks/useCssVar.d.ts +3 -0
  19. package/es/_util/hooks/useCssVar.js +28 -0
  20. package/es/_util/hooks/useEvent.d.ts +1 -0
  21. package/es/_util/hooks/useEvent.js +1 -0
  22. package/es/_util/hooks/useForceUpdate.d.ts +2 -0
  23. package/es/_util/hooks/useLayoutEffect.d.ts +1 -0
  24. package/es/_util/hooks/useLayoutEffect.js +1 -0
  25. package/es/_util/hooks/useMultipleSelect.d.ts +2 -0
  26. package/es/_util/hooks/useMultipleSelect.js +37 -0
  27. package/es/_util/hooks/useOrientation.d.ts +2 -0
  28. package/es/_util/hooks/useProxyImperativeHandle.d.ts +4 -0
  29. package/{esm → es}/_util/hooks/useProxyImperativeHandle.js +10 -3
  30. package/es/_util/hooks/useSyncState.d.ts +3 -0
  31. package/es/_util/hooks/useTimeoutLock.d.ts +1 -0
  32. package/es/_util/hooks/useTimeoutLock.js +26 -0
  33. package/es/_util/index.d.ts +11 -0
  34. package/{esm → es}/_util/index.js +9 -1
  35. package/es/_util/is.d.ts +5 -0
  36. package/es/_util/is.js +16 -0
  37. package/es/_util/rcUtil.d.ts +17 -0
  38. package/es/_util/rcUtil.js +58 -0
  39. package/es/_util/scrollTo.d.ts +10 -0
  40. package/{esm → es}/_util/scrollTo.js +1 -1
  41. package/es/_util/scrollbar.d.ts +1 -0
  42. package/es/_util/scrollbar.js +32 -0
  43. package/es/_util/type.d.ts +53 -0
  44. package/es/_util/validate.d.ts +2 -0
  45. package/es/_util/validate.js +10 -0
  46. package/es/_util/warning.d.ts +31 -0
  47. package/{esm → es}/_util/warning.js +5 -6
  48. package/es/block-header/index.d.ts +58 -0
  49. package/{esm/blockHeader → es/block-header}/index.js +1 -1
  50. package/es/block-header/style/index.d.ts +2 -0
  51. package/{lib/blockHeader → es/block-header}/style/index.less +167 -143
  52. package/es/button/index.d.ts +10 -0
  53. package/{esm → es}/button/index.js +16 -4
  54. package/es/button/style/index.d.ts +2 -0
  55. package/{esm → es}/button/style/index.less +62 -59
  56. package/{esm → es}/button/style/mixin.less +40 -39
  57. package/es/collapsible/index.d.ts +102 -0
  58. package/{esm → es}/collapsible/index.js +3 -2
  59. package/es/collapsible/style/index.d.ts +1 -0
  60. package/{esm → es}/collapsible/style/index.less +24 -24
  61. package/es/collapsible-action-items/index.d.ts +24 -0
  62. package/{esm/collapsibleActionItems → es/collapsible-action-items}/index.js +21 -19
  63. package/es/collapsible-action-items/style/index.d.ts +2 -0
  64. package/{lib/collapsibleActionItems → es/collapsible-action-items}/style/index.less +7 -7
  65. package/es/flex/index.d.ts +7 -0
  66. package/{esm → es}/flex/index.js +3 -3
  67. package/es/flex/interface.d.ts +16 -0
  68. package/es/flex/style/index.d.ts +2 -0
  69. package/{esm → es}/flex/style/index.less +80 -76
  70. package/es/flex/utils.d.ts +7 -0
  71. package/es/form-list/index.d.ts +87 -0
  72. package/{esm/formList → es/form-list}/index.js +18 -8
  73. package/es/form-list/style/index.d.ts +2 -0
  74. package/{esm/formList → es/form-list}/style/index.less +45 -45
  75. package/es/index.d.ts +26 -0
  76. package/es/index.js +21 -0
  77. package/es/overflow-list/index.d.ts +43 -0
  78. package/{esm/overflowList → es/overflow-list}/index.js +37 -9
  79. package/es/overflow-list/style/index.d.ts +2 -0
  80. package/{esm/overflowList → es/overflow-list}/style/index.less +9 -9
  81. package/es/resize/index.d.ts +9 -0
  82. package/es/resize-observer/index.d.ts +45 -0
  83. package/{esm/resizeObserver → es/resize-observer}/index.js +8 -8
  84. package/es/splitter/Panel.d.ts +7 -0
  85. package/{esm → es}/splitter/Panel.js +12 -4
  86. package/es/splitter/SplitBar.d.ts +28 -0
  87. package/{esm → es}/splitter/SplitBar.js +82 -80
  88. package/es/splitter/Splitter.d.ts +5 -0
  89. package/{esm → es}/splitter/Splitter.js +52 -23
  90. package/es/splitter/hooks/sizeUtil.d.ts +3 -0
  91. package/{esm → es}/splitter/hooks/sizeUtil.js +1 -1
  92. package/es/splitter/hooks/useDragListeners.d.ts +14 -0
  93. package/es/splitter/hooks/useDragListeners.js +107 -0
  94. package/es/splitter/hooks/useItems.d.ts +20 -0
  95. package/es/splitter/hooks/useOrientation.d.ts +2 -0
  96. package/es/splitter/hooks/useOrientation.js +6 -0
  97. package/es/splitter/hooks/useResizable.d.ts +13 -0
  98. package/{esm → es}/splitter/hooks/useResizable.js +5 -2
  99. package/es/splitter/hooks/useResize.d.ts +6 -0
  100. package/{esm → es}/splitter/hooks/useResize.js +10 -3
  101. package/es/splitter/hooks/useSizes.d.ts +4 -0
  102. package/{esm → es}/splitter/hooks/useSizes.js +5 -6
  103. package/es/splitter/index.d.ts +9 -0
  104. package/es/splitter/interface.d.ts +45 -0
  105. package/es/splitter/style/index.d.ts +2 -0
  106. package/es/splitter/style/index.less +349 -0
  107. package/es/status-tag/index.d.ts +29 -0
  108. package/{esm/statusTag → es/status-tag}/index.js +1 -1
  109. package/es/status-tag/style/index.d.ts +2 -0
  110. package/{lib/statusTag → es/status-tag}/style/index.less +70 -70
  111. package/{esm/statusTag → es/status-tag}/style/mixin.less +48 -39
  112. package/es/style/index.d.ts +1 -0
  113. package/{esm → es}/style/index.less +1 -1
  114. package/es/style/themes/index.less +2 -0
  115. package/{esm → es}/style/themes/variable.less +5 -5
  116. package/es/table/Column.d.ts +2 -0
  117. package/es/table/Column.js +1 -0
  118. package/es/table/ColumnGroup.d.ts +2 -0
  119. package/es/table/ColumnGroup.js +1 -0
  120. package/es/table/InternalTable.d.ts +43 -0
  121. package/es/table/InternalTable.js +816 -0
  122. package/es/table/Table.d.ts +19 -0
  123. package/es/table/Table.js +30 -0
  124. package/es/table/TableMeasureRowContext.d.ts +3 -0
  125. package/es/table/TableMeasureRowContext.js +3 -0
  126. package/es/table/components/Body/BodyRow.d.ts +37 -0
  127. package/es/table/components/Body/BodyRow.js +182 -0
  128. package/es/table/components/Body/ExpandedRow.d.ts +15 -0
  129. package/es/table/components/Body/ExpandedRow.js +51 -0
  130. package/es/table/components/Body/MeasureCell.d.ts +8 -0
  131. package/es/table/components/Body/MeasureCell.js +33 -0
  132. package/es/table/components/Body/MeasureRow.d.ts +10 -0
  133. package/es/table/components/Body/MeasureRow.js +54 -0
  134. package/es/table/components/Body/index.d.ts +11 -0
  135. package/es/table/components/Body/index.js +123 -0
  136. package/es/table/components/Cell/index.d.ts +39 -0
  137. package/es/table/components/Cell/index.js +196 -0
  138. package/es/table/components/Cell/useCellRender.d.ts +3 -0
  139. package/es/table/components/Cell/useCellRender.js +69 -0
  140. package/es/table/components/Cell/useHoverState.d.ts +2 -0
  141. package/es/table/components/Cell/useHoverState.js +13 -0
  142. package/es/table/components/ColGroup.d.ts +9 -0
  143. package/es/table/components/ColGroup.js +53 -0
  144. package/es/table/components/ExpandIcon.d.ts +12 -0
  145. package/es/table/components/ExpandIcon.js +27 -0
  146. package/es/table/components/FixedHolder/index.d.ts +27 -0
  147. package/es/table/components/FixedHolder/index.js +186 -0
  148. package/es/table/components/Footer/Cell.d.ts +11 -0
  149. package/es/table/components/Footer/Cell.js +47 -0
  150. package/es/table/components/Footer/Row.d.ts +8 -0
  151. package/es/table/components/Footer/Row.js +10 -0
  152. package/es/table/components/Footer/Summary.d.ts +14 -0
  153. package/es/table/components/Footer/Summary.js +12 -0
  154. package/es/table/components/Footer/SummaryContext.d.ts +11 -0
  155. package/es/table/components/Footer/SummaryContext.js +3 -0
  156. package/es/table/components/Footer/index.d.ts +16 -0
  157. package/es/table/components/Footer/index.js +31 -0
  158. package/es/table/components/Header/Header.d.ts +10 -0
  159. package/es/table/components/Header/Header.js +110 -0
  160. package/es/table/components/Header/HeaderRow.d.ts +19 -0
  161. package/es/table/components/Header/HeaderRow.js +63 -0
  162. package/es/table/components/Panel.d.ts +7 -0
  163. package/es/table/components/Panel.js +11 -0
  164. package/es/table/components/RcTable.d.ts +114 -0
  165. package/es/table/components/RcTable.js +757 -0
  166. package/es/table/components/VirtualTable.d.ts +5 -0
  167. package/es/table/components/VirtualTable.js +12 -0
  168. package/es/table/components/VirtualTableBody/BodyGrid.d.ts +13 -0
  169. package/es/table/components/VirtualTableBody/BodyGrid.js +307 -0
  170. package/es/table/components/VirtualTableBody/BodyLine.d.ts +14 -0
  171. package/es/table/components/VirtualTableBody/BodyLine.js +116 -0
  172. package/es/table/components/VirtualTableBody/VirtualCell.d.ts +26 -0
  173. package/es/table/components/VirtualTableBody/VirtualCell.js +118 -0
  174. package/es/table/components/VirtualTableBody/context.d.ts +13 -0
  175. package/es/table/components/VirtualTableBody/context.js +3 -0
  176. package/es/table/components/VirtualTableBody/index.d.ts +16 -0
  177. package/es/table/components/VirtualTableBody/index.js +102 -0
  178. package/es/table/constant.d.ts +2 -0
  179. package/es/table/constant.js +2 -0
  180. package/es/table/features/columns/Column.d.ts +7 -0
  181. package/es/table/features/columns/Column.js +4 -0
  182. package/es/table/features/columns/ColumnGroup.d.ts +9 -0
  183. package/es/table/features/columns/ColumnGroup.js +4 -0
  184. package/es/table/features/columns/index.d.ts +8 -0
  185. package/es/table/features/columns/index.js +6 -0
  186. package/es/table/features/columns/useColumns.d.ts +31 -0
  187. package/es/table/features/columns/useColumns.js +227 -0
  188. package/es/table/features/columns/useFilledColumns.d.ts +4 -0
  189. package/es/table/features/columns/useFilledColumns.js +34 -0
  190. package/es/table/features/columns/useTitleColumns.d.ts +4 -0
  191. package/es/table/features/columns/useTitleColumns.js +26 -0
  192. package/es/table/features/columns/useWidthColumns.d.ts +5 -0
  193. package/es/table/features/columns/useWidthColumns.js +75 -0
  194. package/es/table/features/editable/BatchEditModal.d.ts +4 -0
  195. package/es/table/features/editable/BatchEditModal.js +786 -0
  196. package/es/table/features/editable/EditableCell.d.ts +42 -0
  197. package/es/table/features/editable/EditableCell.js +294 -0
  198. package/es/table/features/editable/EditableContext.d.ts +33 -0
  199. package/es/table/features/editable/EditableContext.js +20 -0
  200. package/es/table/features/editable/batchEditTypes.d.ts +55 -0
  201. package/es/table/features/editable/batchEditTypes.js +1 -0
  202. package/es/table/features/editable/batchEditUtils.d.ts +44 -0
  203. package/es/table/features/editable/batchEditUtils.js +258 -0
  204. package/es/table/features/editable/builtinEditors.d.ts +32 -0
  205. package/es/table/features/editable/builtinEditors.js +165 -0
  206. package/es/table/features/editable/index.d.ts +11 -0
  207. package/es/table/features/editable/index.js +10 -0
  208. package/es/table/features/editable/useBatchRules.d.ts +17 -0
  209. package/es/table/features/editable/useBatchRules.js +96 -0
  210. package/es/table/features/editable/useEditable.d.ts +51 -0
  211. package/es/table/features/editable/useEditable.js +693 -0
  212. package/es/table/features/expand/expandUtil.d.ts +5 -0
  213. package/es/table/features/expand/expandUtil.js +47 -0
  214. package/es/table/features/expand/index.d.ts +2 -0
  215. package/es/table/features/expand/index.js +2 -0
  216. package/es/table/features/expand/useExpand.d.ts +10 -0
  217. package/es/table/features/expand/useExpand.js +90 -0
  218. package/es/table/features/filter/FilterDropdown.d.ts +31 -0
  219. package/es/table/features/filter/FilterDropdown.js +494 -0
  220. package/es/table/features/filter/FilterSearch.d.ts +12 -0
  221. package/es/table/features/filter/FilterSearch.js +24 -0
  222. package/es/table/features/filter/FilterWrapper.d.ts +8 -0
  223. package/es/table/features/filter/FilterWrapper.js +23 -0
  224. package/es/table/features/filter/index.d.ts +4 -0
  225. package/es/table/features/filter/index.js +4 -0
  226. package/es/table/features/filter/useFilter.d.ts +22 -0
  227. package/es/table/features/filter/useFilter.js +240 -0
  228. package/es/table/features/fixed/fixUtil.d.ts +21 -0
  229. package/es/table/features/fixed/fixUtil.js +69 -0
  230. package/es/table/features/fixed/index.d.ts +4 -0
  231. package/es/table/features/fixed/index.js +4 -0
  232. package/es/table/features/fixed/offsetUtil.d.ts +4 -0
  233. package/es/table/features/fixed/offsetUtil.js +13 -0
  234. package/es/table/features/fixed/useFixedInfo.d.ts +2 -0
  235. package/es/table/features/fixed/useFixedInfo.js +16 -0
  236. package/es/table/features/fixed/useStickyOffsets.d.ts +6 -0
  237. package/es/table/features/fixed/useStickyOffsets.js +29 -0
  238. package/es/table/features/hover/index.d.ts +1 -0
  239. package/es/table/features/hover/index.js +1 -0
  240. package/es/table/features/hover/useHover.d.ts +2 -0
  241. package/es/table/features/hover/useHover.js +22 -0
  242. package/es/table/features/pagination/index.d.ts +1 -0
  243. package/es/table/features/pagination/index.js +1 -0
  244. package/es/table/features/pagination/usePagination.d.ts +5 -0
  245. package/es/table/features/pagination/usePagination.js +89 -0
  246. package/es/table/features/resize/ResizeHandle.d.ts +22 -0
  247. package/es/table/features/resize/ResizeHandle.js +99 -0
  248. package/es/table/features/resize/index.d.ts +5 -0
  249. package/es/table/features/resize/index.js +3 -0
  250. package/es/table/features/resize/transformResizableColumns.d.ts +11 -0
  251. package/es/table/features/resize/transformResizableColumns.js +52 -0
  252. package/es/table/features/resize/useResize.d.ts +52 -0
  253. package/es/table/features/resize/useResize.js +586 -0
  254. package/es/table/features/selection/index.d.ts +1 -0
  255. package/es/table/features/selection/index.js +1 -0
  256. package/es/table/features/selection/useSelection.d.ts +20 -0
  257. package/es/table/features/selection/useSelection.js +579 -0
  258. package/es/table/features/sort/index.d.ts +1 -0
  259. package/es/table/features/sort/index.js +1 -0
  260. package/es/table/features/sort/useSorter.d.ts +21 -0
  261. package/es/table/features/sort/useSorter.js +372 -0
  262. package/es/table/features/sticky/index.d.ts +2 -0
  263. package/es/table/features/sticky/index.js +2 -0
  264. package/es/table/features/sticky/stickyScrollBar.d.ts +12 -0
  265. package/es/table/features/sticky/stickyScrollBar.js +203 -0
  266. package/es/table/features/sticky/useSticky.d.ts +10 -0
  267. package/es/table/features/sticky/useSticky.js +34 -0
  268. package/es/table/features/summary/index.d.ts +1 -0
  269. package/es/table/features/summary/index.js +1 -0
  270. package/es/table/features/virtual/index.d.ts +2 -0
  271. package/es/table/features/virtual/index.js +2 -0
  272. package/es/table/features/virtual/useFlattenRecords.d.ts +19 -0
  273. package/es/table/features/virtual/useFlattenRecords.js +55 -0
  274. package/es/table/features/virtual/useFrame.d.ts +7 -0
  275. package/es/table/features/virtual/useFrame.js +67 -0
  276. package/es/table/immutableHelper.d.ts +9 -0
  277. package/es/table/immutableHelper.js +36 -0
  278. package/es/table/index.d.ts +24 -0
  279. package/es/table/index.js +23 -0
  280. package/es/table/interface.d.ts +438 -0
  281. package/es/table/interface.js +56 -0
  282. package/es/table/shared/context/PerfContext.d.ts +6 -0
  283. package/es/table/shared/context/PerfContext.js +6 -0
  284. package/es/table/shared/context/TableContext.d.ts +51 -0
  285. package/es/table/shared/context/TableContext.js +8 -0
  286. package/es/table/shared/hooks/useContainerWidth.d.ts +1 -0
  287. package/es/table/shared/hooks/useContainerWidth.js +14 -0
  288. package/es/table/shared/hooks/useLazyKVMap.d.ts +4 -0
  289. package/es/table/shared/hooks/useLazyKVMap.js +30 -0
  290. package/es/table/shared/hooks/useRenderTimes.d.ts +5 -0
  291. package/es/table/shared/hooks/useRenderTimes.js +39 -0
  292. package/es/table/shared/hooks/useRowInfo.d.ts +11 -0
  293. package/es/table/shared/hooks/useRowInfo.js +73 -0
  294. package/es/table/shared/utils/legacyUtil.d.ts +5 -0
  295. package/es/table/shared/utils/legacyUtil.js +30 -0
  296. package/es/table/shared/utils/util.d.ts +6 -0
  297. package/es/table/shared/utils/util.js +26 -0
  298. package/es/table/shared/utils/valueUtil.d.ts +8 -0
  299. package/es/table/shared/utils/valueUtil.js +29 -0
  300. package/es/table/style/base.less +164 -0
  301. package/es/table/style/bordered.less +83 -0
  302. package/es/table/style/editable.less +50 -0
  303. package/es/table/style/ellipsis.less +33 -0
  304. package/es/table/style/empty.less +16 -0
  305. package/es/table/style/expand.less +123 -0
  306. package/es/table/style/filter.less +34 -0
  307. package/es/table/style/fixed.less +85 -0
  308. package/es/table/style/index.d.ts +3 -0
  309. package/es/table/style/index.js +3 -0
  310. package/es/table/style/index.less +19 -0
  311. package/es/table/style/pagination.less +29 -0
  312. package/es/table/style/radius.less +64 -0
  313. package/es/table/style/resize.less +78 -0
  314. package/es/table/style/rtl.less +52 -0
  315. package/es/table/style/selection.less +63 -0
  316. package/es/table/style/size.less +54 -0
  317. package/es/table/style/sorter.less +99 -0
  318. package/es/table/style/sticky.less +45 -0
  319. package/es/table/style/summary.less +23 -0
  320. package/es/table/style/variables.less +80 -0
  321. package/es/table/style/virtual.less +95 -0
  322. package/lib/_util/context/createContextSelector.js +120 -0
  323. package/lib/_util/context/immutable.js +92 -0
  324. package/lib/_util/context/index.js +41 -0
  325. package/lib/_util/easings.js +1 -1
  326. package/lib/_util/getScroll.js +6 -6
  327. package/lib/_util/hooks/index.js +82 -5
  328. package/lib/_util/hooks/useBreakpoint.js +85 -0
  329. package/lib/_util/hooks/useCssVar.js +37 -0
  330. package/lib/_util/hooks/useEvent.js +13 -0
  331. package/lib/_util/hooks/useForceUpdate.js +5 -4
  332. package/lib/_util/hooks/useLayoutEffect.js +13 -0
  333. package/lib/_util/hooks/useMultipleSelect.js +43 -0
  334. package/lib/_util/hooks/useOrientation.js +7 -8
  335. package/lib/_util/hooks/useProxyImperativeHandle.js +18 -14
  336. package/lib/_util/hooks/useSyncState.js +19 -9
  337. package/lib/_util/hooks/useTimeoutLock.js +35 -0
  338. package/lib/_util/index.js +101 -1
  339. package/lib/_util/is.js +22 -0
  340. package/lib/_util/rcUtil.js +134 -0
  341. package/lib/_util/scrollTo.js +22 -18
  342. package/lib/_util/scrollbar.js +38 -0
  343. package/lib/_util/validate.js +17 -0
  344. package/lib/_util/warning.js +25 -27
  345. package/lib/block-header/index.js +141 -0
  346. package/{esm/blockHeader → lib/block-header}/style/index.less +167 -143
  347. package/lib/button/index.js +24 -9
  348. package/lib/button/style/index.less +62 -59
  349. package/lib/button/style/mixin.less +40 -39
  350. package/lib/collapsible/index.js +210 -169
  351. package/lib/collapsible/style/index.less +24 -24
  352. package/lib/collapsible-action-items/index.js +83 -0
  353. package/{esm/collapsibleActionItems → lib/collapsible-action-items}/style/index.less +7 -7
  354. package/lib/flex/index.js +43 -34
  355. package/lib/flex/style/index.less +80 -76
  356. package/lib/flex/utils.js +23 -23
  357. package/lib/form-list/index.js +163 -0
  358. package/lib/{formList → form-list}/style/index.less +45 -45
  359. package/lib/index.js +41 -63
  360. package/lib/overflow-list/index.js +203 -0
  361. package/lib/{overflowList → overflow-list}/style/index.less +9 -9
  362. package/lib/resize/index.js +13 -13
  363. package/lib/resize-observer/index.js +182 -0
  364. package/lib/splitter/Panel.js +36 -25
  365. package/lib/splitter/SplitBar.js +151 -134
  366. package/lib/splitter/Splitter.js +141 -89
  367. package/lib/splitter/hooks/sizeUtil.js +50 -33
  368. package/lib/splitter/hooks/useDragListeners.js +114 -0
  369. package/lib/splitter/hooks/useItems.js +27 -20
  370. package/lib/splitter/hooks/useOrientation.js +12 -0
  371. package/lib/splitter/hooks/useResizable.js +32 -30
  372. package/lib/splitter/hooks/useResize.js +76 -45
  373. package/lib/splitter/hooks/useSizes.js +55 -30
  374. package/lib/splitter/index.js +1 -1
  375. package/lib/splitter/style/index.less +349 -312
  376. package/lib/status-tag/index.js +131 -0
  377. package/{esm/statusTag → lib/status-tag}/style/index.less +70 -70
  378. package/lib/{statusTag → status-tag}/style/mixin.less +48 -39
  379. package/lib/style/index.less +1 -1
  380. package/lib/style/themes/index.less +2 -2
  381. package/lib/style/themes/variable.less +5 -5
  382. package/lib/table/Column.js +13 -0
  383. package/lib/table/ColumnGroup.js +13 -0
  384. package/lib/table/InternalTable.js +824 -0
  385. package/lib/table/Table.js +40 -0
  386. package/lib/table/TableMeasureRowContext.js +10 -0
  387. package/lib/table/components/Body/BodyRow.js +192 -0
  388. package/lib/table/components/Body/ExpandedRow.js +61 -0
  389. package/lib/table/components/Body/MeasureCell.js +43 -0
  390. package/lib/table/components/Body/MeasureRow.js +64 -0
  391. package/lib/table/components/Body/index.js +133 -0
  392. package/lib/table/components/Cell/index.js +205 -0
  393. package/lib/table/components/Cell/useCellRender.js +78 -0
  394. package/lib/table/components/Cell/useHoverState.js +20 -0
  395. package/lib/table/components/ColGroup.js +62 -0
  396. package/lib/table/components/ExpandIcon.js +35 -0
  397. package/lib/table/components/FixedHolder/index.js +195 -0
  398. package/lib/table/components/Footer/Cell.js +57 -0
  399. package/lib/table/components/Footer/Row.js +19 -0
  400. package/lib/table/components/Footer/Summary.js +19 -0
  401. package/lib/table/components/Footer/SummaryContext.js +12 -0
  402. package/lib/table/components/Footer/index.js +41 -0
  403. package/lib/table/components/Header/Header.js +120 -0
  404. package/lib/table/components/Header/HeaderRow.js +72 -0
  405. package/lib/table/components/Panel.js +20 -0
  406. package/lib/table/components/RcTable.js +764 -0
  407. package/lib/table/components/VirtualTable.js +18 -0
  408. package/lib/table/components/VirtualTableBody/BodyGrid.js +316 -0
  409. package/lib/table/components/VirtualTableBody/BodyLine.js +125 -0
  410. package/lib/table/components/VirtualTableBody/VirtualCell.js +128 -0
  411. package/lib/table/components/VirtualTableBody/context.js +9 -0
  412. package/lib/table/components/VirtualTableBody/index.js +111 -0
  413. package/lib/table/constant.js +8 -0
  414. package/lib/table/features/columns/Column.js +10 -0
  415. package/lib/table/features/columns/ColumnGroup.js +10 -0
  416. package/lib/table/features/columns/index.js +57 -0
  417. package/lib/table/features/columns/useColumns.js +237 -0
  418. package/lib/table/features/columns/useFilledColumns.js +42 -0
  419. package/lib/table/features/columns/useTitleColumns.js +34 -0
  420. package/lib/table/features/columns/useWidthColumns.js +83 -0
  421. package/lib/table/features/editable/BatchEditModal.js +794 -0
  422. package/lib/table/features/editable/EditableCell.js +303 -0
  423. package/lib/table/features/editable/EditableContext.js +28 -0
  424. package/lib/table/features/editable/batchEditTypes.js +5 -0
  425. package/lib/table/features/editable/batchEditUtils.js +264 -0
  426. package/lib/table/features/editable/builtinEditors.js +174 -0
  427. package/lib/table/features/editable/index.js +75 -0
  428. package/lib/table/features/editable/useBatchRules.js +103 -0
  429. package/lib/table/features/editable/useEditable.js +701 -0
  430. package/lib/table/features/expand/expandUtil.js +57 -0
  431. package/lib/table/features/expand/index.js +32 -0
  432. package/lib/table/features/expand/useExpand.js +99 -0
  433. package/lib/table/features/filter/FilterDropdown.js +504 -0
  434. package/lib/table/features/filter/FilterSearch.js +34 -0
  435. package/lib/table/features/filter/FilterWrapper.js +32 -0
  436. package/lib/table/features/filter/index.js +49 -0
  437. package/lib/table/features/filter/useFilter.js +254 -0
  438. package/lib/table/features/fixed/fixUtil.js +75 -0
  439. package/lib/table/features/fixed/index.js +34 -0
  440. package/lib/table/features/fixed/offsetUtil.js +19 -0
  441. package/lib/table/features/fixed/useFixedInfo.js +26 -0
  442. package/lib/table/features/fixed/useStickyOffsets.js +35 -0
  443. package/lib/table/features/hover/index.js +13 -0
  444. package/lib/table/features/hover/useHover.js +31 -0
  445. package/lib/table/features/pagination/index.js +27 -0
  446. package/lib/table/features/pagination/usePagination.js +96 -0
  447. package/lib/table/features/resize/ResizeHandle.js +109 -0
  448. package/lib/table/features/resize/index.js +27 -0
  449. package/lib/table/features/resize/transformResizableColumns.js +61 -0
  450. package/lib/table/features/resize/useResize.js +595 -0
  451. package/lib/table/features/selection/index.js +39 -0
  452. package/lib/table/features/selection/useSelection.js +588 -0
  453. package/lib/table/features/sort/index.js +21 -0
  454. package/lib/table/features/sort/useSorter.js +381 -0
  455. package/lib/table/features/sticky/index.js +20 -0
  456. package/lib/table/features/sticky/stickyScrollBar.js +212 -0
  457. package/lib/table/features/sticky/useSticky.js +43 -0
  458. package/lib/table/features/summary/index.js +13 -0
  459. package/lib/table/features/virtual/index.js +26 -0
  460. package/lib/table/features/virtual/useFlattenRecords.js +64 -0
  461. package/lib/table/features/virtual/useFrame.js +74 -0
  462. package/lib/table/immutableHelper.js +46 -0
  463. package/lib/table/index.js +124 -0
  464. package/lib/table/interface.js +60 -0
  465. package/lib/table/shared/context/PerfContext.js +15 -0
  466. package/lib/table/shared/context/TableContext.js +13 -0
  467. package/lib/table/shared/hooks/useContainerWidth.js +20 -0
  468. package/lib/table/shared/hooks/useLazyKVMap.js +39 -0
  469. package/lib/table/shared/hooks/useRenderTimes.js +49 -0
  470. package/lib/table/shared/hooks/useRowInfo.js +80 -0
  471. package/lib/table/shared/utils/legacyUtil.js +38 -0
  472. package/lib/table/shared/utils/util.js +34 -0
  473. package/lib/table/shared/utils/valueUtil.js +37 -0
  474. package/lib/table/style/base.less +164 -0
  475. package/lib/table/style/bordered.less +83 -0
  476. package/lib/table/style/editable.less +50 -0
  477. package/lib/table/style/ellipsis.less +33 -0
  478. package/lib/table/style/empty.less +16 -0
  479. package/lib/table/style/expand.less +123 -0
  480. package/lib/table/style/filter.less +34 -0
  481. package/lib/table/style/fixed.less +85 -0
  482. package/lib/table/style/index.js +5 -0
  483. package/lib/table/style/index.less +19 -0
  484. package/lib/table/style/pagination.less +29 -0
  485. package/lib/table/style/radius.less +64 -0
  486. package/lib/table/style/resize.less +78 -0
  487. package/lib/table/style/rtl.less +52 -0
  488. package/lib/table/style/selection.less +63 -0
  489. package/lib/table/style/size.less +54 -0
  490. package/lib/table/style/sorter.less +99 -0
  491. package/lib/table/style/sticky.less +45 -0
  492. package/lib/table/style/summary.less +23 -0
  493. package/lib/table/style/variables.less +80 -0
  494. package/lib/table/style/virtual.less +95 -0
  495. package/package.json +147 -152
  496. package/esm/_util/extendsObject.js +0 -17
  497. package/esm/_util/hooks/index.js +0 -4
  498. package/esm/_util/isNonNullable.js +0 -4
  499. package/esm/index.js +0 -22
  500. package/esm/splitter/style/index.less +0 -312
  501. package/esm/style/mixins/index.less +0 -0
  502. package/esm/style/themes/index.less +0 -2
  503. package/lib/_util/extendsObject.js +0 -20
  504. package/lib/_util/isNonNullable.js +0 -10
  505. package/lib/blockHeader/index.js +0 -121
  506. package/lib/collapsibleActionItems/index.js +0 -68
  507. package/lib/formList/index.js +0 -130
  508. package/lib/overflowList/index.js +0 -144
  509. package/lib/resizeObserver/index.js +0 -137
  510. package/lib/statusTag/index.js +0 -125
  511. package/lib/style/mixins/index.less +0 -0
  512. /package/{esm → es}/_util/easings.js +0 -0
  513. /package/{esm → es}/_util/gapSize.js +0 -0
  514. /package/{esm → es}/_util/hooks/useForceUpdate.js +0 -0
  515. /package/{esm → es}/_util/hooks/useOrientation.js +0 -0
  516. /package/{esm → es}/_util/hooks/useSyncState.js +0 -0
  517. /package/{esm → es}/_util/type.js +0 -0
  518. /package/{esm/blockHeader → es/block-header}/style/index.js +0 -0
  519. /package/{esm → es}/button/style/index.js +0 -0
  520. /package/{esm → es}/collapsible/style/index.js +0 -0
  521. /package/{esm/collapsibleActionItems → es/collapsible-action-items}/style/index.js +0 -0
  522. /package/{esm → es}/flex/interface.js +0 -0
  523. /package/{esm → es}/flex/style/index.js +0 -0
  524. /package/{esm → es}/flex/utils.js +0 -0
  525. /package/{esm/formList → es/form-list}/style/index.js +0 -0
  526. /package/{esm/overflowList → es/overflow-list}/style/index.js +0 -0
  527. /package/{esm → es}/resize/index.js +0 -0
  528. /package/{esm → es}/splitter/hooks/useItems.js +0 -0
  529. /package/{esm → es}/splitter/index.js +0 -0
  530. /package/{esm → es}/splitter/interface.js +0 -0
  531. /package/{esm → es}/splitter/style/index.js +0 -0
  532. /package/{esm/statusTag → es/status-tag}/style/index.js +0 -0
  533. /package/{esm → es}/style/index.js +0 -0
  534. /package/lib/{blockHeader → block-header}/style/index.js +0 -0
  535. /package/lib/{collapsibleActionItems → collapsible-action-items}/style/index.js +0 -0
  536. /package/lib/{formList → form-list}/style/index.js +0 -0
  537. /package/lib/{overflowList → overflow-list}/style/index.js +0 -0
  538. /package/lib/{statusTag → status-tag}/style/index.js +0 -0
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Same as `rc-component/table` but we modify trigger children update logic instead.
3
+ */
4
+ declare const RcVirtualTable: import("./VirtualTableBody").ForwardGenericVirtualTable;
5
+ export default RcVirtualTable;
@@ -0,0 +1,12 @@
1
+ import { genVirtualTable } from "./VirtualTableBody";
2
+ /**
3
+ * Same as `rc-component/table` but we modify trigger children update logic instead.
4
+ */
5
+ var RcVirtualTable = genVirtualTable(function (prev, next) {
6
+ var _ref = prev,
7
+ prevRenderTimes = _ref._renderTimes;
8
+ var _ref2 = next,
9
+ nextRenderTimes = _ref2._renderTimes;
10
+ return prevRenderTimes !== nextRenderTimes;
11
+ });
12
+ export default RcVirtualTable;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import type { OnCustomizeScroll, ScrollConfig } from '../../interface';
3
+ export interface GridProps<RecordType = any> {
4
+ data: RecordType[];
5
+ onScroll: OnCustomizeScroll;
6
+ }
7
+ export interface GridRef {
8
+ scrollLeft: number;
9
+ nativeElement: HTMLDivElement;
10
+ scrollTo: (scrollConfig: ScrollConfig) => void;
11
+ }
12
+ declare const ResponseGrid: React.ForwardRefExoticComponent<GridProps<any> & React.RefAttributes<GridRef>>;
13
+ export default ResponseGrid;
@@ -0,0 +1,307 @@
1
+ var _excluded = ["align", "offset"];
2
+ 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); }
3
+ 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; }
4
+ 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; }
5
+ 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; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ 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); }
8
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
+ 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."); }
12
+ 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); }
13
+ 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; }
14
+ 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; } }
15
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
+ import { useContext } from "../../../_util/context";
17
+ import VirtualList from 'rc-virtual-list';
18
+ import * as React from 'react';
19
+ import TableContext, { responseImmutable } from "../../shared/context/TableContext";
20
+ import useFlattenRecords from "../../features/virtual/useFlattenRecords";
21
+ import BodyLine from "./BodyLine";
22
+ import { GridContext, StaticContext } from "./context";
23
+ var ALIGN_MAP = {
24
+ start: 'top',
25
+ end: 'bottom',
26
+ nearest: 'auto'
27
+ };
28
+ var Grid = /*#__PURE__*/React.forwardRef(function (props, ref) {
29
+ var data = props.data,
30
+ onScroll = props.onScroll;
31
+ var _useContext = useContext(TableContext, ['flattenColumns', 'onColumnResize', 'getRowKey', 'prefixCls', 'expandedKeys', 'childrenColumnName', 'scrollX', 'direction']),
32
+ flattenColumns = _useContext.flattenColumns,
33
+ onColumnResize = _useContext.onColumnResize,
34
+ getRowKey = _useContext.getRowKey,
35
+ expandedKeys = _useContext.expandedKeys,
36
+ prefixCls = _useContext.prefixCls,
37
+ childrenColumnName = _useContext.childrenColumnName,
38
+ scrollX = _useContext.scrollX,
39
+ direction = _useContext.direction;
40
+ var _useContext2 = useContext(StaticContext),
41
+ sticky = _useContext2.sticky,
42
+ scrollY = _useContext2.scrollY,
43
+ listItemHeight = _useContext2.listItemHeight,
44
+ getComponent = _useContext2.getComponent,
45
+ onTablePropScroll = _useContext2.onScroll;
46
+
47
+ // =========================== Ref ============================
48
+ var listRef = React.useRef(null);
49
+
50
+ // =========================== Data ===========================
51
+ var flattenData = useFlattenRecords(data, childrenColumnName, expandedKeys, getRowKey);
52
+
53
+ // ========================== Column ==========================
54
+ var columnsWidth = React.useMemo(function () {
55
+ var total = 0;
56
+ return flattenColumns.map(function (_ref) {
57
+ var width = _ref.width,
58
+ minWidth = _ref.minWidth,
59
+ key = _ref.key;
60
+ var finalWidth = Math.max(width || 0, minWidth || 0);
61
+ total += finalWidth;
62
+ return [key, finalWidth, total];
63
+ });
64
+ }, [flattenColumns]);
65
+ var columnsOffset = React.useMemo(function () {
66
+ return columnsWidth.map(function (colWidth) {
67
+ return colWidth[2];
68
+ });
69
+ }, [columnsWidth]);
70
+ React.useEffect(function () {
71
+ columnsWidth.forEach(function (_ref2) {
72
+ var _ref3 = _slicedToArray(_ref2, 2),
73
+ key = _ref3[0],
74
+ width = _ref3[1];
75
+ onColumnResize(key, width);
76
+ });
77
+ }, [columnsWidth]);
78
+
79
+ // =========================== Ref ============================
80
+ React.useImperativeHandle(ref, function () {
81
+ var _listRef$current2;
82
+ var obj = {
83
+ scrollTo: function scrollTo(config) {
84
+ var _ref4, _listRef$current;
85
+ var align = config.align,
86
+ offset = config.offset,
87
+ restConfig = _objectWithoutProperties(config, _excluded);
88
+ var virtualAlign = (_ref4 = align && ALIGN_MAP[align]) !== null && _ref4 !== void 0 ? _ref4 : offset ? 'top' : 'auto';
89
+ (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.scrollTo(_objectSpread(_objectSpread({}, restConfig), {}, {
90
+ offset: offset,
91
+ align: virtualAlign
92
+ }));
93
+ },
94
+ nativeElement: (_listRef$current2 = listRef.current) === null || _listRef$current2 === void 0 ? void 0 : _listRef$current2.nativeElement
95
+ };
96
+ Object.defineProperty(obj, 'scrollLeft', {
97
+ get: function get() {
98
+ var _listRef$current3;
99
+ return ((_listRef$current3 = listRef.current) === null || _listRef$current3 === void 0 ? void 0 : _listRef$current3.getScrollInfo().x) || 0;
100
+ },
101
+ set: function set(value) {
102
+ var _listRef$current4;
103
+ (_listRef$current4 = listRef.current) === null || _listRef$current4 === void 0 || _listRef$current4.scrollTo({
104
+ left: value
105
+ });
106
+ }
107
+ });
108
+
109
+ // https://github.com/ant-design/ant-design/issues/54734
110
+ Object.defineProperty(obj, 'scrollTop', {
111
+ get: function get() {
112
+ var _listRef$current5;
113
+ return ((_listRef$current5 = listRef.current) === null || _listRef$current5 === void 0 ? void 0 : _listRef$current5.getScrollInfo().y) || 0;
114
+ },
115
+ set: function set(value) {
116
+ var _listRef$current6;
117
+ (_listRef$current6 = listRef.current) === null || _listRef$current6 === void 0 || _listRef$current6.scrollTo({
118
+ top: value
119
+ });
120
+ }
121
+ });
122
+ return obj;
123
+ });
124
+
125
+ // ======================= Col/Row Span =======================
126
+ var getRowSpan = function getRowSpan(column, index) {
127
+ var _flattenData$index;
128
+ var record = (_flattenData$index = flattenData[index]) === null || _flattenData$index === void 0 ? void 0 : _flattenData$index.record;
129
+ var onCell = column.onCell;
130
+ if (onCell) {
131
+ var _cellProps$rowSpan;
132
+ var cellProps = onCell(record, index);
133
+ return (_cellProps$rowSpan = cellProps === null || cellProps === void 0 ? void 0 : cellProps.rowSpan) !== null && _cellProps$rowSpan !== void 0 ? _cellProps$rowSpan : 1;
134
+ }
135
+ return 1;
136
+ };
137
+ var extraRender = function extraRender(info) {
138
+ var start = info.start,
139
+ end = info.end,
140
+ getSize = info.getSize,
141
+ offsetY = info.offsetY;
142
+
143
+ // Do nothing if no data
144
+ if (end < 0) {
145
+ return null;
146
+ }
147
+
148
+ // Find first rowSpan column
149
+ var firstRowSpanColumns = flattenColumns.filter(
150
+ // rowSpan is 0
151
+ function (column) {
152
+ return getRowSpan(column, start) === 0;
153
+ });
154
+ var startIndex = start;
155
+ var _loop = function _loop(i) {
156
+ firstRowSpanColumns = firstRowSpanColumns.filter(function (column) {
157
+ return getRowSpan(column, i) === 0;
158
+ });
159
+ if (!firstRowSpanColumns.length) {
160
+ startIndex = i;
161
+ return 1; // break
162
+ }
163
+ };
164
+ for (var i = start; i >= 0; i -= 1) {
165
+ if (_loop(i)) break;
166
+ }
167
+
168
+ // Find last rowSpan column
169
+ var lastRowSpanColumns = flattenColumns.filter(
170
+ // rowSpan is not 1
171
+ function (column) {
172
+ return getRowSpan(column, end) !== 1;
173
+ });
174
+ var endIndex = end;
175
+ var _loop2 = function _loop2(_i) {
176
+ lastRowSpanColumns = lastRowSpanColumns.filter(function (column) {
177
+ return getRowSpan(column, _i) !== 1;
178
+ });
179
+ if (!lastRowSpanColumns.length) {
180
+ endIndex = Math.max(_i - 1, end);
181
+ return 1; // break
182
+ }
183
+ };
184
+ for (var _i = end; _i < flattenData.length; _i += 1) {
185
+ if (_loop2(_i)) break;
186
+ }
187
+
188
+ // Collect the line who has rowSpan
189
+ var spanLines = [];
190
+ var _loop3 = function _loop3(_i2) {
191
+ var item = flattenData[_i2];
192
+
193
+ // This code will never reach, just incase
194
+ if (!item) {
195
+ return 1; // continue
196
+ }
197
+ if (flattenColumns.some(function (column) {
198
+ return getRowSpan(column, _i2) > 1;
199
+ })) {
200
+ spanLines.push(_i2);
201
+ }
202
+ };
203
+ for (var _i2 = startIndex; _i2 <= endIndex; _i2 += 1) {
204
+ if (_loop3(_i2)) continue;
205
+ }
206
+
207
+ // Patch extra line on the page
208
+ var nodes = spanLines.map(function (index) {
209
+ var item = flattenData[index];
210
+ var rowKey = getRowKey(item.record, index);
211
+ var getHeight = function getHeight(rowSpan) {
212
+ var endItemIndex = index + rowSpan - 1;
213
+ var endItem = flattenData[endItemIndex];
214
+ if (!endItem || !endItem.record) {
215
+ // clamp 到当前可用的最后一行,或退化为默认高度
216
+ var safeEndIndex = Math.min(endItemIndex, flattenData.length - 1);
217
+ var safeEndItem = flattenData[safeEndIndex];
218
+ var _endItemKey = getRowKey(safeEndItem.record, safeEndIndex);
219
+ var _sizeInfo = getSize(rowKey, _endItemKey);
220
+ return _sizeInfo.bottom - _sizeInfo.top;
221
+ }
222
+ var endItemKey = getRowKey(endItem.record, endItemIndex);
223
+ var sizeInfo = getSize(rowKey, endItemKey);
224
+ return sizeInfo.bottom - sizeInfo.top;
225
+ };
226
+ var sizeInfo = getSize(rowKey);
227
+ return /*#__PURE__*/React.createElement(BodyLine, {
228
+ key: index,
229
+ data: item,
230
+ rowKey: rowKey,
231
+ index: index,
232
+ style: {
233
+ top: -offsetY + sizeInfo.top
234
+ },
235
+ extra: true,
236
+ getHeight: getHeight
237
+ });
238
+ });
239
+ return nodes;
240
+ };
241
+
242
+ // ========================= Context ==========================
243
+ var gridContext = React.useMemo(function () {
244
+ return {
245
+ columnsOffset: columnsOffset
246
+ };
247
+ }, [columnsOffset]);
248
+
249
+ // ========================== Render ==========================
250
+ var tblPrefixCls = "".concat(prefixCls, "-tbody");
251
+
252
+ // default 'div' in rc-virtual-list
253
+ var wrapperComponent = getComponent(['body', 'wrapper']);
254
+
255
+ // ========================== Sticky Scroll Bar ==========================
256
+ var horizontalScrollBarStyle = {};
257
+ if (sticky) {
258
+ horizontalScrollBarStyle.position = 'sticky';
259
+ horizontalScrollBarStyle.bottom = 0;
260
+ if (_typeof(sticky) === 'object' && sticky.offsetScroll) {
261
+ horizontalScrollBarStyle.bottom = sticky.offsetScroll;
262
+ }
263
+ }
264
+ return /*#__PURE__*/React.createElement(GridContext.Provider, {
265
+ value: gridContext
266
+ }, /*#__PURE__*/React.createElement(VirtualList, {
267
+ fullHeight: false,
268
+ ref: listRef,
269
+ prefixCls: "".concat(tblPrefixCls, "-virtual"),
270
+ styles: {
271
+ horizontalScrollBar: horizontalScrollBarStyle
272
+ },
273
+ className: tblPrefixCls,
274
+ height: scrollY,
275
+ itemHeight: listItemHeight || 24,
276
+ data: flattenData,
277
+ itemKey: function itemKey(item) {
278
+ return getRowKey(item.record);
279
+ },
280
+ component: wrapperComponent,
281
+ scrollWidth: scrollX,
282
+ direction: direction,
283
+ onVirtualScroll: function onVirtualScroll(_ref5) {
284
+ var _listRef$current7;
285
+ var x = _ref5.x;
286
+ onScroll({
287
+ currentTarget: (_listRef$current7 = listRef.current) === null || _listRef$current7 === void 0 ? void 0 : _listRef$current7.nativeElement,
288
+ scrollLeft: x
289
+ });
290
+ },
291
+ onScroll: onTablePropScroll,
292
+ extraRender: extraRender
293
+ }, function (item, index, itemProps) {
294
+ var rowKey = getRowKey(item.record, index);
295
+ return /*#__PURE__*/React.createElement(BodyLine, {
296
+ data: item,
297
+ rowKey: rowKey,
298
+ index: index,
299
+ style: itemProps.style
300
+ });
301
+ }));
302
+ });
303
+ var ResponseGrid = responseImmutable(Grid);
304
+ if (process.env.NODE_ENV !== 'production') {
305
+ ResponseGrid.displayName = 'ResponseGrid';
306
+ }
307
+ export default ResponseGrid;
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import type { FlattenData } from '../../features/virtual/useFlattenRecords';
3
+ export interface BodyLineProps<RecordType = any> {
4
+ data: FlattenData<RecordType>;
5
+ index: number;
6
+ className?: string;
7
+ style?: React.CSSProperties;
8
+ rowKey: React.Key;
9
+ /** Render cell only when it has `rowSpan > 1` */
10
+ extra?: boolean;
11
+ getHeight?: (rowSpan: number) => number;
12
+ }
13
+ declare const ResponseBodyLine: React.ForwardRefExoticComponent<BodyLineProps<any> & React.RefAttributes<HTMLDivElement>>;
14
+ export default ResponseBodyLine;
@@ -0,0 +1,116 @@
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
+ var _excluded = ["data", "index", "className", "rowKey", "style", "extra", "getHeight"];
3
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
4
+ 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; }
5
+ 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; }
6
+ 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; }
7
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
8
+ 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); }
9
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
10
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
11
+ import { useContext } from "../../../_util/context";
12
+ import { clsx } from 'clsx';
13
+ import * as React from 'react';
14
+ import Cell from "../Cell";
15
+ import TableContext, { responseImmutable } from "../../shared/context/TableContext";
16
+ import useRowInfo from "../../shared/hooks/useRowInfo";
17
+ import VirtualCell from "./VirtualCell";
18
+ import { StaticContext } from "./context";
19
+ import { computedExpandedClassName } from "../../features/expand/expandUtil";
20
+ var BodyLine = /*#__PURE__*/React.forwardRef(function (props, ref) {
21
+ var _classNames$body, _styles$body;
22
+ var data = props.data,
23
+ index = props.index,
24
+ className = props.className,
25
+ rowKey = props.rowKey,
26
+ style = props.style,
27
+ extra = props.extra,
28
+ getHeight = props.getHeight,
29
+ restProps = _objectWithoutProperties(props, _excluded);
30
+ var record = data.record,
31
+ indent = data.indent,
32
+ renderIndex = data.index;
33
+ var _useContext = useContext(TableContext, ['prefixCls', 'flattenColumns', 'fixColumn', 'componentWidth', 'scrollX', 'classNames', 'styles']),
34
+ scrollX = _useContext.scrollX,
35
+ flattenColumns = _useContext.flattenColumns,
36
+ prefixCls = _useContext.prefixCls,
37
+ fixColumn = _useContext.fixColumn,
38
+ componentWidth = _useContext.componentWidth,
39
+ classNames = _useContext.classNames,
40
+ styles = _useContext.styles;
41
+ var _useContext2 = useContext(StaticContext, ['getComponent']),
42
+ getComponent = _useContext2.getComponent;
43
+ var rowInfo = useRowInfo(record, rowKey, index, indent);
44
+ var RowComponent = getComponent(['body', 'row'], 'div');
45
+ var cellComponent = getComponent(['body', 'cell'], 'div');
46
+
47
+ // ========================== Expand ==========================
48
+ var rowSupportExpand = rowInfo.rowSupportExpand,
49
+ expanded = rowInfo.expanded,
50
+ rowProps = rowInfo.rowProps,
51
+ expandedRowRender = rowInfo.expandedRowRender,
52
+ expandedRowClassName = rowInfo.expandedRowClassName;
53
+ var expandedClsName = computedExpandedClassName(expandedRowClassName, record, index, indent);
54
+ var expandRowNode = null;
55
+ if (rowSupportExpand && expanded) {
56
+ var expandContent = expandedRowRender(record, index, indent + 1, expanded);
57
+ var additionalProps = {};
58
+ if (fixColumn) {
59
+ additionalProps = {
60
+ style: _defineProperty({}, '--virtual-width', "".concat(componentWidth, "px"))
61
+ };
62
+ }
63
+ var rowCellCls = "".concat(prefixCls, "-expanded-row-cell");
64
+ expandRowNode = /*#__PURE__*/React.createElement(RowComponent, {
65
+ className: clsx("".concat(prefixCls, "-expanded-row"), "".concat(prefixCls, "-expanded-row-level-").concat(indent + 1), expandedClsName)
66
+ }, /*#__PURE__*/React.createElement(Cell, {
67
+ component: cellComponent,
68
+ prefixCls: prefixCls,
69
+ className: clsx(rowCellCls, _defineProperty({}, "".concat(rowCellCls, "-fixed"), fixColumn)),
70
+ additionalProps: additionalProps
71
+ }, expandContent));
72
+ }
73
+
74
+ // ========================== Render ==========================
75
+ var rowStyle = _objectSpread(_objectSpread({}, style), {}, {
76
+ width: scrollX
77
+ });
78
+ if (extra) {
79
+ rowStyle.position = 'absolute';
80
+ rowStyle.pointerEvents = 'none';
81
+ }
82
+ var rowNode = /*#__PURE__*/React.createElement(RowComponent, _extends({}, rowProps, restProps, {
83
+ "data-row-key": rowKey,
84
+ ref: rowSupportExpand ? null : ref,
85
+ className: clsx(className, "".concat(prefixCls, "-row"), rowProps === null || rowProps === void 0 ? void 0 : rowProps.className, classNames === null || classNames === void 0 || (_classNames$body = classNames.body) === null || _classNames$body === void 0 ? void 0 : _classNames$body.row, _defineProperty(_defineProperty({}, expandedClsName, indent >= 1), "".concat(prefixCls, "-row-extra"), extra)),
86
+ style: _objectSpread(_objectSpread(_objectSpread({}, rowStyle), rowProps === null || rowProps === void 0 ? void 0 : rowProps.style), styles === null || styles === void 0 || (_styles$body = styles.body) === null || _styles$body === void 0 ? void 0 : _styles$body.row)
87
+ }), flattenColumns.map(function (column, colIndex) {
88
+ var _classNames$body2, _styles$body2;
89
+ return /*#__PURE__*/React.createElement(VirtualCell, {
90
+ key: column.key != null ? String(column.key) : "cell-".concat(colIndex),
91
+ className: classNames === null || classNames === void 0 || (_classNames$body2 = classNames.body) === null || _classNames$body2 === void 0 ? void 0 : _classNames$body2.cell,
92
+ style: styles === null || styles === void 0 || (_styles$body2 = styles.body) === null || _styles$body2 === void 0 ? void 0 : _styles$body2.cell,
93
+ component: cellComponent,
94
+ rowInfo: rowInfo,
95
+ column: column,
96
+ colIndex: colIndex,
97
+ indent: indent,
98
+ index: index,
99
+ renderIndex: renderIndex,
100
+ record: record,
101
+ inverse: extra,
102
+ getHeight: getHeight
103
+ });
104
+ }));
105
+ if (rowSupportExpand) {
106
+ return /*#__PURE__*/React.createElement("div", {
107
+ ref: ref
108
+ }, rowNode, expandRowNode);
109
+ }
110
+ return rowNode;
111
+ });
112
+ var ResponseBodyLine = responseImmutable(BodyLine);
113
+ if (process.env.NODE_ENV !== 'production') {
114
+ ResponseBodyLine.displayName = 'BodyLine';
115
+ }
116
+ export default ResponseBodyLine;
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import type useRowInfo from '../../shared/hooks/useRowInfo';
3
+ import type { ColumnType, CustomizeComponent } from '../../interface';
4
+ export interface VirtualCellProps<RecordType> {
5
+ rowInfo: ReturnType<typeof useRowInfo<RecordType>>;
6
+ column: ColumnType<RecordType>;
7
+ colIndex: number;
8
+ indent: number;
9
+ index: number;
10
+ component?: CustomizeComponent;
11
+ /** Used for `column.render` */
12
+ renderIndex: number;
13
+ record: RecordType;
14
+ style?: React.CSSProperties;
15
+ className?: string;
16
+ /** Render cell only when it has `rowSpan > 1` */
17
+ inverse?: boolean;
18
+ getHeight?: (rowSpan: number) => number;
19
+ }
20
+ /**
21
+ * Return the width of the column by `colSpan`.
22
+ * When `colSpan` is `0` will be trade as `1`.
23
+ */
24
+ export declare function getColumnWidth(colIndex: number, colSpan: number, columnsOffset: number[]): number;
25
+ declare const VirtualCell: <RecordType>(props: VirtualCellProps<RecordType>) => React.JSX.Element;
26
+ export default VirtualCell;
@@ -0,0 +1,118 @@
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 _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
+ 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; }
4
+ 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; }
5
+ 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; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
7
+ 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); }
8
+ import { useContext } from "../../../_util/context";
9
+ import { clsx } from 'clsx';
10
+ import * as React from 'react';
11
+ import { getCellProps } from "../Body/BodyRow";
12
+ import Cell from "../Cell";
13
+ import { GridContext } from "./context";
14
+ /**
15
+ * Return the width of the column by `colSpan`.
16
+ * When `colSpan` is `0` will be trade as `1`.
17
+ */
18
+ export function getColumnWidth(colIndex, colSpan, columnsOffset) {
19
+ var mergedColSpan = colSpan || 1;
20
+ return columnsOffset[colIndex + mergedColSpan] - (columnsOffset[colIndex] || 0);
21
+ }
22
+ var VirtualCell = function VirtualCell(props) {
23
+ var rowInfo = props.rowInfo,
24
+ column = props.column,
25
+ colIndex = props.colIndex,
26
+ indent = props.indent,
27
+ index = props.index,
28
+ component = props.component,
29
+ renderIndex = props.renderIndex,
30
+ record = props.record,
31
+ style = props.style,
32
+ className = props.className,
33
+ inverse = props.inverse,
34
+ getHeight = props.getHeight;
35
+ var render = column.render,
36
+ dataIndex = column.dataIndex,
37
+ columnClassName = column.className,
38
+ colWidth = column.width;
39
+ var _useContext = useContext(GridContext, ['columnsOffset']),
40
+ columnsOffset = _useContext.columnsOffset;
41
+
42
+ // TODO: support `expandableRowOffset`
43
+ var _getCellProps = getCellProps(rowInfo, column, colIndex, indent, index),
44
+ key = _getCellProps.key,
45
+ fixedInfo = _getCellProps.fixedInfo,
46
+ appendCellNode = _getCellProps.appendCellNode,
47
+ additionalCellProps = _getCellProps.additionalCellProps;
48
+ var cellStyle = additionalCellProps.style,
49
+ _additionalCellProps$ = additionalCellProps.colSpan,
50
+ colSpan = _additionalCellProps$ === void 0 ? 1 : _additionalCellProps$,
51
+ _additionalCellProps$2 = additionalCellProps.rowSpan,
52
+ rowSpan = _additionalCellProps$2 === void 0 ? 1 : _additionalCellProps$2;
53
+
54
+ // ========================= ColWidth =========================
55
+ // column width
56
+ var startColIndex = colIndex - 1;
57
+ var concatColWidth = getColumnWidth(startColIndex, colSpan, columnsOffset);
58
+
59
+ // margin offset
60
+ var marginOffset = colSpan > 1 ? colWidth - concatColWidth : 0;
61
+
62
+ // ========================== Style ===========================
63
+ var mergedStyle = _objectSpread(_objectSpread(_objectSpread({}, cellStyle), style), {}, {
64
+ flex: "0 0 ".concat(concatColWidth, "px"),
65
+ width: "".concat(concatColWidth, "px"),
66
+ marginRight: marginOffset,
67
+ pointerEvents: 'auto'
68
+ });
69
+
70
+ // When `colSpan` or `rowSpan` is `0`, should skip render.
71
+ var needHide = React.useMemo(function () {
72
+ if (inverse) {
73
+ return rowSpan <= 1;
74
+ } else {
75
+ return colSpan === 0 || rowSpan === 0 || rowSpan > 1;
76
+ }
77
+ }, [rowSpan, colSpan, inverse]);
78
+
79
+ // 0 rowSpan or colSpan should not render
80
+ if (needHide) {
81
+ mergedStyle.visibility = 'hidden';
82
+ } else if (inverse) {
83
+ mergedStyle.height = getHeight === null || getHeight === void 0 ? void 0 : getHeight(rowSpan);
84
+ }
85
+ var mergedRender = needHide ? function () {
86
+ return null;
87
+ } : render;
88
+
89
+ // ========================== Render ==========================
90
+ var cellSpan = {};
91
+
92
+ // Virtual should reset `colSpan` & `rowSpan`
93
+ if (rowSpan === 0 || colSpan === 0) {
94
+ cellSpan.rowSpan = 1;
95
+ cellSpan.colSpan = 1;
96
+ }
97
+ return /*#__PURE__*/React.createElement(Cell, _extends({
98
+ className: clsx(columnClassName, className),
99
+ ellipsis: column.ellipsis,
100
+ align: column.align,
101
+ scope: column.rowScope,
102
+ component: component,
103
+ prefixCls: rowInfo.prefixCls,
104
+ key: key,
105
+ record: record,
106
+ index: index,
107
+ renderIndex: renderIndex,
108
+ dataIndex: dataIndex,
109
+ render: mergedRender,
110
+ shouldCellUpdate: column.shouldCellUpdate
111
+ }, fixedInfo, {
112
+ appendNode: appendCellNode,
113
+ additionalProps: _objectSpread(_objectSpread({}, additionalCellProps), {}, {
114
+ style: mergedStyle
115
+ }, cellSpan)
116
+ }));
117
+ };
118
+ export default VirtualCell;
@@ -0,0 +1,13 @@
1
+ import type { GetComponent, TableSticky } from '../../interface';
2
+ export interface StaticContextProps {
3
+ scrollY: number;
4
+ listItemHeight: number;
5
+ sticky: boolean | TableSticky;
6
+ getComponent: GetComponent;
7
+ onScroll?: React.UIEventHandler<HTMLDivElement>;
8
+ }
9
+ export declare const StaticContext: import("../../../_util/context").SelectorContext<StaticContextProps>;
10
+ export interface GridContextProps {
11
+ columnsOffset: number[];
12
+ }
13
+ export declare const GridContext: import("../../../_util/context").SelectorContext<GridContextProps>;
@@ -0,0 +1,3 @@
1
+ import { createContext } from "../../../_util/context";
2
+ export var StaticContext = createContext();
3
+ export var GridContext = createContext();
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import type { Reference } from '../../interface';
3
+ import type { CompareProps, TableProps } from '../RcTable';
4
+ export interface VirtualTableProps<RecordType> extends Omit<TableProps<RecordType>, 'scroll'> {
5
+ listItemHeight?: number;
6
+ scroll: {
7
+ x?: number;
8
+ y?: number;
9
+ };
10
+ }
11
+ export type ForwardGenericVirtualTable = (<RecordType>(props: TableProps<RecordType> & React.RefAttributes<Reference>) => React.ReactElement<any>) & {
12
+ displayName?: string;
13
+ };
14
+ export declare const genVirtualTable: (shouldTriggerRender?: CompareProps<ForwardGenericVirtualTable>) => ForwardGenericVirtualTable;
15
+ declare const _default: ForwardGenericVirtualTable;
16
+ export default _default;