@dtjoy/dt-design 1.1.1 → 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 (623) hide show
  1. package/README.md +44 -24
  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/{esm → es}/_util/gapSize.d.ts +1 -1
  11. package/{esm → es}/_util/getScroll.js +1 -1
  12. package/es/_util/hooks/index.d.ts +11 -0
  13. package/es/_util/hooks/index.js +11 -0
  14. package/es/_util/hooks/useBreakpoint.d.ts +5 -0
  15. package/es/_util/hooks/useBreakpoint.js +75 -0
  16. package/es/_util/hooks/useCssVar.d.ts +3 -0
  17. package/es/_util/hooks/useCssVar.js +28 -0
  18. package/es/_util/hooks/useEvent.d.ts +1 -0
  19. package/es/_util/hooks/useEvent.js +1 -0
  20. package/es/_util/hooks/useLayoutEffect.d.ts +1 -0
  21. package/es/_util/hooks/useLayoutEffect.js +1 -0
  22. package/es/_util/hooks/useMultipleSelect.d.ts +2 -0
  23. package/es/_util/hooks/useMultipleSelect.js +37 -0
  24. package/es/_util/hooks/useProxyImperativeHandle.d.ts +4 -0
  25. package/{esm → es}/_util/hooks/useProxyImperativeHandle.js +10 -3
  26. package/es/_util/hooks/useTimeoutLock.d.ts +1 -0
  27. package/es/_util/hooks/useTimeoutLock.js +26 -0
  28. package/es/_util/index.d.ts +11 -0
  29. package/{esm → es}/_util/index.js +9 -1
  30. package/es/_util/is.d.ts +5 -0
  31. package/es/_util/is.js +16 -0
  32. package/es/_util/rcUtil.d.ts +17 -0
  33. package/es/_util/rcUtil.js +58 -0
  34. package/{esm → es}/_util/scrollTo.js +1 -1
  35. package/es/_util/scrollbar.d.ts +1 -0
  36. package/es/_util/scrollbar.js +32 -0
  37. package/{esm → es}/_util/type.d.ts +1 -0
  38. package/es/_util/validate.d.ts +2 -0
  39. package/es/_util/validate.js +10 -0
  40. package/{esm → es}/_util/warning.js +5 -6
  41. package/{lib/blockHeader → es/block-header}/index.d.ts +1 -1
  42. package/{esm/blockHeader → es/block-header}/index.js +1 -1
  43. package/{lib/blockHeader → es/block-header}/style/index.less +167 -143
  44. package/{esm → es}/button/index.d.ts +3 -3
  45. package/{esm → es}/button/index.js +16 -4
  46. package/{esm → es}/button/style/index.less +62 -59
  47. package/{esm → es}/button/style/mixin.less +40 -39
  48. package/{esm → es}/collapsible/index.js +3 -2
  49. package/{esm → es}/collapsible/style/index.less +24 -24
  50. package/{esm/collapsibleActionItems → es/collapsible-action-items}/index.d.ts +1 -1
  51. package/{esm/collapsibleActionItems → es/collapsible-action-items}/index.js +21 -19
  52. package/{lib/collapsibleActionItems → es/collapsible-action-items}/style/index.less +7 -7
  53. package/{lib → es}/flex/index.d.ts +2 -2
  54. package/{esm → es}/flex/index.js +3 -3
  55. package/{esm → es}/flex/style/index.less +80 -76
  56. package/{esm/formList → es/form-list}/index.d.ts +9 -0
  57. package/{esm/formList → es/form-list}/index.js +18 -8
  58. package/{lib/formList → es/form-list}/style/index.less +45 -45
  59. package/es/index.d.ts +26 -0
  60. package/es/index.js +21 -0
  61. package/{lib/overflowList → es/overflow-list}/index.d.ts +4 -1
  62. package/{esm/overflowList → es/overflow-list}/index.js +37 -9
  63. package/{esm/overflowList → es/overflow-list}/style/index.less +9 -9
  64. package/{lib/resizeObserver → es/resize-observer}/index.d.ts +1 -1
  65. package/{esm/resizeObserver → es/resize-observer}/index.js +8 -8
  66. package/{esm → es}/splitter/Panel.d.ts +1 -1
  67. package/{esm → es}/splitter/Panel.js +12 -4
  68. package/{esm → es}/splitter/SplitBar.d.ts +6 -2
  69. package/{esm → es}/splitter/SplitBar.js +82 -80
  70. package/{esm → es}/splitter/Splitter.js +52 -23
  71. package/{esm → es}/splitter/hooks/sizeUtil.js +1 -1
  72. package/es/splitter/hooks/useDragListeners.d.ts +14 -0
  73. package/es/splitter/hooks/useDragListeners.js +107 -0
  74. package/{esm → es}/splitter/hooks/useItems.d.ts +6 -0
  75. package/es/splitter/hooks/useOrientation.d.ts +2 -0
  76. package/es/splitter/hooks/useOrientation.js +6 -0
  77. package/{esm → es}/splitter/hooks/useResizable.d.ts +3 -0
  78. package/{esm → es}/splitter/hooks/useResizable.js +5 -2
  79. package/{esm → es}/splitter/hooks/useResize.d.ts +1 -1
  80. package/{esm → es}/splitter/hooks/useResize.js +10 -3
  81. package/{esm → es}/splitter/hooks/useSizes.js +5 -6
  82. package/{lib → es}/splitter/index.d.ts +2 -1
  83. package/es/splitter/interface.d.ts +45 -0
  84. package/es/splitter/style/index.less +349 -0
  85. package/{esm/statusTag → es/status-tag}/index.js +1 -1
  86. package/{esm/statusTag → es/status-tag}/style/index.less +70 -70
  87. package/{esm/statusTag → es/status-tag}/style/mixin.less +48 -39
  88. package/{esm → es}/style/index.less +1 -1
  89. package/es/style/themes/index.less +2 -0
  90. package/{esm → es}/style/themes/variable.less +5 -5
  91. package/es/table/Column.d.ts +2 -0
  92. package/es/table/Column.js +1 -0
  93. package/es/table/ColumnGroup.d.ts +2 -0
  94. package/es/table/ColumnGroup.js +1 -0
  95. package/es/table/InternalTable.d.ts +43 -0
  96. package/es/table/InternalTable.js +816 -0
  97. package/{lib → es}/table/Table.d.ts +7 -5
  98. package/{esm → es}/table/Table.js +6 -4
  99. package/es/table/components/Body/BodyRow.d.ts +37 -0
  100. package/es/table/components/Body/BodyRow.js +182 -0
  101. package/es/table/components/Body/ExpandedRow.d.ts +15 -0
  102. package/es/table/components/Body/ExpandedRow.js +51 -0
  103. package/es/table/components/Body/MeasureCell.d.ts +8 -0
  104. package/es/table/components/Body/MeasureCell.js +33 -0
  105. package/es/table/components/Body/MeasureRow.d.ts +10 -0
  106. package/es/table/components/Body/MeasureRow.js +54 -0
  107. package/es/table/components/Body/index.d.ts +11 -0
  108. package/es/table/components/Body/index.js +123 -0
  109. package/es/table/components/Cell/index.d.ts +39 -0
  110. package/es/table/components/Cell/index.js +196 -0
  111. package/es/table/components/Cell/useCellRender.d.ts +3 -0
  112. package/es/table/components/Cell/useCellRender.js +69 -0
  113. package/es/table/components/Cell/useHoverState.d.ts +2 -0
  114. package/es/table/components/Cell/useHoverState.js +13 -0
  115. package/es/table/components/ColGroup.d.ts +9 -0
  116. package/es/table/components/ColGroup.js +53 -0
  117. package/es/table/components/ExpandIcon.d.ts +12 -0
  118. package/es/table/components/ExpandIcon.js +27 -0
  119. package/es/table/components/FixedHolder/index.d.ts +27 -0
  120. package/es/table/components/FixedHolder/index.js +186 -0
  121. package/es/table/components/Footer/Cell.d.ts +11 -0
  122. package/es/table/components/Footer/Cell.js +47 -0
  123. package/es/table/components/Footer/Row.d.ts +8 -0
  124. package/es/table/components/Footer/Row.js +10 -0
  125. package/es/table/components/Footer/Summary.d.ts +14 -0
  126. package/es/table/components/Footer/Summary.js +12 -0
  127. package/es/table/components/Footer/SummaryContext.d.ts +11 -0
  128. package/es/table/components/Footer/SummaryContext.js +3 -0
  129. package/es/table/components/Footer/index.d.ts +16 -0
  130. package/es/table/components/Footer/index.js +31 -0
  131. package/es/table/components/Header/Header.d.ts +10 -0
  132. package/es/table/components/Header/Header.js +110 -0
  133. package/es/table/components/Header/HeaderRow.d.ts +19 -0
  134. package/es/table/components/Header/HeaderRow.js +63 -0
  135. package/es/table/components/Panel.d.ts +7 -0
  136. package/es/table/components/Panel.js +11 -0
  137. package/es/table/components/RcTable.d.ts +114 -0
  138. package/es/table/components/RcTable.js +757 -0
  139. package/es/table/components/VirtualTable.d.ts +5 -0
  140. package/{esm/table/RcTable → es/table/components}/VirtualTable.js +4 -1
  141. package/es/table/components/VirtualTableBody/BodyGrid.d.ts +13 -0
  142. package/es/table/components/VirtualTableBody/BodyGrid.js +307 -0
  143. package/es/table/components/VirtualTableBody/BodyLine.d.ts +14 -0
  144. package/es/table/components/VirtualTableBody/BodyLine.js +116 -0
  145. package/es/table/components/VirtualTableBody/VirtualCell.d.ts +26 -0
  146. package/es/table/components/VirtualTableBody/VirtualCell.js +118 -0
  147. package/es/table/components/VirtualTableBody/context.d.ts +13 -0
  148. package/es/table/components/VirtualTableBody/context.js +3 -0
  149. package/es/table/components/VirtualTableBody/index.d.ts +16 -0
  150. package/es/table/components/VirtualTableBody/index.js +102 -0
  151. package/es/table/constant.d.ts +2 -0
  152. package/es/table/constant.js +2 -0
  153. package/es/table/features/columns/Column.d.ts +7 -0
  154. package/es/table/features/columns/Column.js +4 -0
  155. package/es/table/features/columns/ColumnGroup.d.ts +9 -0
  156. package/es/table/features/columns/ColumnGroup.js +4 -0
  157. package/es/table/features/columns/index.d.ts +8 -0
  158. package/es/table/features/columns/index.js +6 -0
  159. package/es/table/features/columns/useColumns.d.ts +31 -0
  160. package/es/table/features/columns/useColumns.js +227 -0
  161. package/es/table/features/columns/useFilledColumns.d.ts +4 -0
  162. package/es/table/features/columns/useFilledColumns.js +34 -0
  163. package/es/table/features/columns/useTitleColumns.d.ts +4 -0
  164. package/es/table/features/columns/useTitleColumns.js +26 -0
  165. package/es/table/features/columns/useWidthColumns.d.ts +5 -0
  166. package/es/table/features/columns/useWidthColumns.js +75 -0
  167. package/es/table/features/editable/BatchEditModal.d.ts +4 -0
  168. package/es/table/features/editable/BatchEditModal.js +786 -0
  169. package/es/table/features/editable/EditableCell.d.ts +42 -0
  170. package/es/table/features/editable/EditableCell.js +294 -0
  171. package/es/table/features/editable/EditableContext.d.ts +33 -0
  172. package/es/table/features/editable/EditableContext.js +20 -0
  173. package/es/table/features/editable/batchEditTypes.d.ts +55 -0
  174. package/es/table/features/editable/batchEditTypes.js +1 -0
  175. package/es/table/features/editable/batchEditUtils.d.ts +44 -0
  176. package/es/table/features/editable/batchEditUtils.js +258 -0
  177. package/es/table/features/editable/builtinEditors.d.ts +32 -0
  178. package/es/table/features/editable/builtinEditors.js +165 -0
  179. package/es/table/features/editable/index.d.ts +11 -0
  180. package/es/table/features/editable/index.js +10 -0
  181. package/es/table/features/editable/useBatchRules.d.ts +17 -0
  182. package/es/table/features/editable/useBatchRules.js +96 -0
  183. package/es/table/features/editable/useEditable.d.ts +51 -0
  184. package/es/table/features/editable/useEditable.js +693 -0
  185. package/es/table/features/expand/expandUtil.d.ts +5 -0
  186. package/es/table/features/expand/expandUtil.js +47 -0
  187. package/es/table/features/expand/index.d.ts +2 -0
  188. package/es/table/features/expand/index.js +2 -0
  189. package/es/table/features/expand/useExpand.d.ts +10 -0
  190. package/es/table/features/expand/useExpand.js +90 -0
  191. package/es/table/features/filter/FilterDropdown.d.ts +31 -0
  192. package/es/table/features/filter/FilterDropdown.js +494 -0
  193. package/es/table/features/filter/FilterSearch.d.ts +12 -0
  194. package/es/table/features/filter/FilterSearch.js +24 -0
  195. package/es/table/features/filter/FilterWrapper.d.ts +8 -0
  196. package/es/table/features/filter/FilterWrapper.js +23 -0
  197. package/es/table/features/filter/index.d.ts +4 -0
  198. package/es/table/features/filter/index.js +4 -0
  199. package/es/table/features/filter/useFilter.d.ts +22 -0
  200. package/es/table/features/filter/useFilter.js +240 -0
  201. package/es/table/features/fixed/fixUtil.d.ts +21 -0
  202. package/es/table/features/fixed/fixUtil.js +69 -0
  203. package/es/table/features/fixed/index.d.ts +4 -0
  204. package/es/table/features/fixed/index.js +4 -0
  205. package/es/table/features/fixed/offsetUtil.d.ts +4 -0
  206. package/es/table/features/fixed/offsetUtil.js +13 -0
  207. package/es/table/features/fixed/useFixedInfo.d.ts +2 -0
  208. package/es/table/features/fixed/useFixedInfo.js +16 -0
  209. package/es/table/features/fixed/useStickyOffsets.d.ts +6 -0
  210. package/es/table/features/fixed/useStickyOffsets.js +29 -0
  211. package/es/table/features/hover/index.d.ts +1 -0
  212. package/es/table/features/hover/index.js +1 -0
  213. package/es/table/features/hover/useHover.d.ts +2 -0
  214. package/es/table/features/hover/useHover.js +22 -0
  215. package/es/table/features/pagination/index.d.ts +1 -0
  216. package/es/table/features/pagination/index.js +1 -0
  217. package/es/table/features/pagination/usePagination.d.ts +5 -0
  218. package/es/table/features/pagination/usePagination.js +89 -0
  219. package/es/table/features/resize/ResizeHandle.d.ts +22 -0
  220. package/es/table/features/resize/ResizeHandle.js +99 -0
  221. package/es/table/features/resize/index.d.ts +5 -0
  222. package/es/table/features/resize/index.js +3 -0
  223. package/es/table/features/resize/transformResizableColumns.d.ts +11 -0
  224. package/es/table/features/resize/transformResizableColumns.js +52 -0
  225. package/es/table/features/resize/useResize.d.ts +52 -0
  226. package/es/table/features/resize/useResize.js +586 -0
  227. package/es/table/features/selection/index.d.ts +1 -0
  228. package/es/table/features/selection/index.js +1 -0
  229. package/es/table/features/selection/useSelection.d.ts +20 -0
  230. package/es/table/features/selection/useSelection.js +579 -0
  231. package/es/table/features/sort/index.d.ts +1 -0
  232. package/es/table/features/sort/index.js +1 -0
  233. package/es/table/features/sort/useSorter.d.ts +21 -0
  234. package/es/table/features/sort/useSorter.js +372 -0
  235. package/es/table/features/sticky/index.d.ts +2 -0
  236. package/es/table/features/sticky/index.js +2 -0
  237. package/es/table/features/sticky/stickyScrollBar.d.ts +12 -0
  238. package/es/table/features/sticky/stickyScrollBar.js +203 -0
  239. package/es/table/features/sticky/useSticky.d.ts +10 -0
  240. package/es/table/features/sticky/useSticky.js +34 -0
  241. package/es/table/features/summary/index.d.ts +1 -0
  242. package/es/table/features/summary/index.js +1 -0
  243. package/es/table/features/virtual/index.d.ts +2 -0
  244. package/es/table/features/virtual/index.js +2 -0
  245. package/es/table/features/virtual/useFlattenRecords.d.ts +19 -0
  246. package/es/table/features/virtual/useFlattenRecords.js +55 -0
  247. package/es/table/features/virtual/useFrame.d.ts +7 -0
  248. package/es/table/features/virtual/useFrame.js +67 -0
  249. package/es/table/immutableHelper.d.ts +9 -0
  250. package/es/table/immutableHelper.js +36 -0
  251. package/es/table/index.d.ts +24 -0
  252. package/es/table/index.js +23 -0
  253. package/es/table/interface.d.ts +438 -0
  254. package/es/table/interface.js +56 -0
  255. package/es/table/shared/context/PerfContext.d.ts +6 -0
  256. package/es/table/shared/context/PerfContext.js +6 -0
  257. package/es/table/shared/context/TableContext.d.ts +51 -0
  258. package/es/table/shared/context/TableContext.js +8 -0
  259. package/es/table/shared/hooks/useLazyKVMap.d.ts +4 -0
  260. package/es/table/shared/hooks/useLazyKVMap.js +30 -0
  261. package/es/table/shared/hooks/useRenderTimes.d.ts +5 -0
  262. package/es/table/shared/hooks/useRenderTimes.js +39 -0
  263. package/es/table/shared/hooks/useRowInfo.d.ts +11 -0
  264. package/es/table/shared/hooks/useRowInfo.js +73 -0
  265. package/es/table/shared/utils/legacyUtil.d.ts +5 -0
  266. package/es/table/shared/utils/legacyUtil.js +30 -0
  267. package/{esm/table → es/table/shared/utils}/util.d.ts +3 -11
  268. package/{esm/table → es/table/shared/utils}/util.js +6 -13
  269. package/es/table/shared/utils/valueUtil.d.ts +8 -0
  270. package/es/table/shared/utils/valueUtil.js +29 -0
  271. package/es/table/style/base.less +164 -0
  272. package/es/table/style/bordered.less +83 -0
  273. package/es/table/style/editable.less +50 -0
  274. package/es/table/style/ellipsis.less +33 -0
  275. package/es/table/style/empty.less +16 -0
  276. package/es/table/style/expand.less +123 -0
  277. package/es/table/style/filter.less +34 -0
  278. package/es/table/style/fixed.less +85 -0
  279. package/es/table/style/index.d.ts +3 -0
  280. package/es/table/style/index.js +3 -0
  281. package/es/table/style/index.less +19 -0
  282. package/es/table/style/pagination.less +29 -0
  283. package/es/table/style/radius.less +64 -0
  284. package/es/table/style/resize.less +78 -0
  285. package/es/table/style/rtl.less +52 -0
  286. package/es/table/style/selection.less +63 -0
  287. package/es/table/style/size.less +54 -0
  288. package/es/table/style/sorter.less +99 -0
  289. package/es/table/style/sticky.less +45 -0
  290. package/es/table/style/summary.less +23 -0
  291. package/es/table/style/variables.less +80 -0
  292. package/es/table/style/virtual.less +95 -0
  293. package/lib/_util/context/createContextSelector.js +120 -0
  294. package/lib/_util/context/immutable.js +92 -0
  295. package/lib/_util/context/index.js +41 -0
  296. package/lib/_util/easings.js +1 -1
  297. package/lib/_util/getScroll.js +6 -6
  298. package/lib/_util/hooks/index.js +82 -5
  299. package/lib/_util/hooks/useBreakpoint.js +85 -0
  300. package/lib/_util/hooks/useCssVar.js +37 -0
  301. package/lib/_util/hooks/useEvent.js +13 -0
  302. package/lib/_util/hooks/useForceUpdate.js +5 -4
  303. package/lib/_util/hooks/useLayoutEffect.js +13 -0
  304. package/lib/_util/hooks/useMultipleSelect.js +43 -0
  305. package/lib/_util/hooks/useOrientation.js +7 -8
  306. package/lib/_util/hooks/useProxyImperativeHandle.js +18 -14
  307. package/lib/_util/hooks/useSyncState.js +19 -9
  308. package/lib/_util/hooks/useTimeoutLock.js +35 -0
  309. package/lib/_util/index.js +101 -1
  310. package/lib/_util/is.js +22 -0
  311. package/lib/_util/rcUtil.js +134 -0
  312. package/lib/_util/scrollTo.js +22 -18
  313. package/lib/_util/scrollbar.js +38 -0
  314. package/lib/_util/validate.js +17 -0
  315. package/lib/_util/warning.js +25 -27
  316. package/lib/block-header/index.js +141 -0
  317. package/{esm/blockHeader → lib/block-header}/style/index.less +167 -143
  318. package/lib/button/index.js +24 -9
  319. package/lib/button/style/index.less +62 -59
  320. package/lib/button/style/mixin.less +40 -39
  321. package/lib/collapsible/index.js +210 -169
  322. package/lib/collapsible/style/index.less +24 -24
  323. package/lib/collapsible-action-items/index.js +83 -0
  324. package/{esm/collapsibleActionItems → lib/collapsible-action-items}/style/index.less +7 -7
  325. package/lib/flex/index.js +43 -34
  326. package/lib/flex/style/index.less +80 -76
  327. package/lib/flex/utils.js +23 -23
  328. package/lib/form-list/index.js +163 -0
  329. package/{esm/formList → lib/form-list}/style/index.less +45 -45
  330. package/lib/index.js +37 -67
  331. package/lib/overflow-list/index.js +203 -0
  332. package/lib/{overflowList → overflow-list}/style/index.less +9 -9
  333. package/lib/resize/index.js +13 -13
  334. package/lib/resize-observer/index.js +182 -0
  335. package/lib/splitter/Panel.js +36 -25
  336. package/lib/splitter/SplitBar.js +151 -134
  337. package/lib/splitter/Splitter.js +141 -89
  338. package/lib/splitter/hooks/sizeUtil.js +50 -33
  339. package/lib/splitter/hooks/useDragListeners.js +114 -0
  340. package/lib/splitter/hooks/useItems.js +27 -20
  341. package/lib/splitter/hooks/useOrientation.js +12 -0
  342. package/lib/splitter/hooks/useResizable.js +32 -30
  343. package/lib/splitter/hooks/useResize.js +76 -45
  344. package/lib/splitter/hooks/useSizes.js +55 -30
  345. package/lib/splitter/index.js +1 -1
  346. package/lib/splitter/style/index.less +349 -312
  347. package/lib/status-tag/index.js +131 -0
  348. package/lib/{statusTag → status-tag}/style/index.less +70 -70
  349. package/lib/{statusTag → status-tag}/style/mixin.less +48 -39
  350. package/lib/style/index.less +1 -1
  351. package/lib/style/themes/index.less +2 -2
  352. package/lib/style/themes/variable.less +5 -5
  353. package/lib/table/Column.js +13 -0
  354. package/lib/table/ColumnGroup.js +13 -0
  355. package/lib/table/InternalTable.js +699 -270
  356. package/lib/table/Table.js +14 -11
  357. package/lib/table/TableMeasureRowContext.js +1 -1
  358. package/lib/table/components/Body/BodyRow.js +192 -0
  359. package/lib/table/components/Body/ExpandedRow.js +61 -0
  360. package/lib/table/components/Body/MeasureCell.js +43 -0
  361. package/lib/table/components/Body/MeasureRow.js +64 -0
  362. package/lib/table/components/Body/index.js +133 -0
  363. package/lib/table/components/Cell/index.js +205 -0
  364. package/lib/table/components/Cell/useCellRender.js +78 -0
  365. package/lib/table/components/Cell/useHoverState.js +20 -0
  366. package/lib/table/components/ColGroup.js +62 -0
  367. package/lib/table/components/ExpandIcon.js +35 -0
  368. package/lib/table/components/FixedHolder/index.js +195 -0
  369. package/lib/table/components/Footer/Cell.js +57 -0
  370. package/lib/table/components/Footer/Row.js +19 -0
  371. package/lib/table/components/Footer/Summary.js +19 -0
  372. package/lib/table/components/Footer/SummaryContext.js +12 -0
  373. package/lib/table/components/Footer/index.js +41 -0
  374. package/lib/table/components/Header/Header.js +120 -0
  375. package/lib/table/components/Header/HeaderRow.js +72 -0
  376. package/lib/table/components/Panel.js +20 -0
  377. package/lib/table/components/RcTable.js +764 -0
  378. package/lib/table/components/VirtualTable.js +18 -0
  379. package/lib/table/components/VirtualTableBody/BodyGrid.js +316 -0
  380. package/lib/table/components/VirtualTableBody/BodyLine.js +125 -0
  381. package/lib/table/components/VirtualTableBody/VirtualCell.js +128 -0
  382. package/lib/table/components/VirtualTableBody/context.js +9 -0
  383. package/lib/table/components/VirtualTableBody/index.js +111 -0
  384. package/lib/table/constant.js +8 -0
  385. package/lib/table/features/columns/Column.js +10 -0
  386. package/lib/table/features/columns/ColumnGroup.js +10 -0
  387. package/lib/table/features/columns/index.js +57 -0
  388. package/lib/table/features/columns/useColumns.js +237 -0
  389. package/lib/table/features/columns/useFilledColumns.js +42 -0
  390. package/lib/table/features/columns/useTitleColumns.js +34 -0
  391. package/lib/table/features/columns/useWidthColumns.js +83 -0
  392. package/lib/table/features/editable/BatchEditModal.js +794 -0
  393. package/lib/table/features/editable/EditableCell.js +303 -0
  394. package/lib/table/features/editable/EditableContext.js +28 -0
  395. package/lib/table/features/editable/batchEditTypes.js +5 -0
  396. package/lib/table/features/editable/batchEditUtils.js +264 -0
  397. package/lib/table/features/editable/builtinEditors.js +174 -0
  398. package/lib/table/features/editable/index.js +75 -0
  399. package/lib/table/features/editable/useBatchRules.js +103 -0
  400. package/lib/table/features/editable/useEditable.js +701 -0
  401. package/lib/table/features/expand/expandUtil.js +57 -0
  402. package/lib/table/features/expand/index.js +32 -0
  403. package/lib/table/features/expand/useExpand.js +99 -0
  404. package/lib/table/features/filter/FilterDropdown.js +504 -0
  405. package/lib/table/features/filter/FilterSearch.js +34 -0
  406. package/lib/table/features/filter/FilterWrapper.js +32 -0
  407. package/lib/table/features/filter/index.js +49 -0
  408. package/lib/table/features/filter/useFilter.js +254 -0
  409. package/lib/table/features/fixed/fixUtil.js +75 -0
  410. package/lib/table/features/fixed/index.js +34 -0
  411. package/lib/table/features/fixed/offsetUtil.js +19 -0
  412. package/lib/table/features/fixed/useFixedInfo.js +26 -0
  413. package/lib/table/features/fixed/useStickyOffsets.js +35 -0
  414. package/lib/table/features/hover/index.js +13 -0
  415. package/lib/table/features/hover/useHover.js +31 -0
  416. package/lib/table/features/pagination/index.js +27 -0
  417. package/lib/table/features/pagination/usePagination.js +96 -0
  418. package/lib/table/features/resize/ResizeHandle.js +109 -0
  419. package/lib/table/features/resize/index.js +27 -0
  420. package/lib/table/features/resize/transformResizableColumns.js +61 -0
  421. package/lib/table/features/resize/useResize.js +595 -0
  422. package/lib/table/features/selection/index.js +39 -0
  423. package/lib/table/features/selection/useSelection.js +588 -0
  424. package/lib/table/features/sort/index.js +21 -0
  425. package/lib/table/features/sort/useSorter.js +381 -0
  426. package/lib/table/features/sticky/index.js +20 -0
  427. package/lib/table/features/sticky/stickyScrollBar.js +212 -0
  428. package/lib/table/features/sticky/useSticky.js +43 -0
  429. package/lib/table/features/summary/index.js +13 -0
  430. package/lib/table/features/virtual/index.js +26 -0
  431. package/lib/table/features/virtual/useFlattenRecords.js +64 -0
  432. package/lib/table/features/virtual/useFrame.js +74 -0
  433. package/lib/table/immutableHelper.js +46 -0
  434. package/lib/table/index.js +118 -3
  435. package/lib/table/interface.js +54 -2
  436. package/lib/table/shared/context/PerfContext.js +15 -0
  437. package/lib/table/shared/context/TableContext.js +13 -0
  438. package/lib/table/shared/hooks/useContainerWidth.js +20 -0
  439. package/lib/table/shared/hooks/useLazyKVMap.js +39 -0
  440. package/lib/table/shared/hooks/useRenderTimes.js +49 -0
  441. package/lib/table/shared/hooks/useRowInfo.js +80 -0
  442. package/lib/table/shared/utils/legacyUtil.js +38 -0
  443. package/lib/table/shared/utils/util.js +34 -0
  444. package/lib/table/shared/utils/valueUtil.js +37 -0
  445. package/lib/table/style/base.less +164 -0
  446. package/lib/table/style/bordered.less +83 -141
  447. package/lib/table/style/editable.less +50 -0
  448. package/lib/table/style/ellipsis.less +33 -0
  449. package/lib/table/style/empty.less +16 -0
  450. package/lib/table/style/expand.less +123 -0
  451. package/lib/table/style/filter.less +34 -0
  452. package/lib/table/style/fixed.less +85 -88
  453. package/lib/table/style/index.js +2 -1
  454. package/lib/table/style/index.less +19 -150
  455. package/lib/table/style/pagination.less +29 -0
  456. package/lib/table/style/radius.less +64 -0
  457. package/lib/table/style/resize.less +78 -0
  458. package/lib/table/style/rtl.less +52 -0
  459. package/lib/table/style/selection.less +63 -90
  460. package/lib/table/style/size.less +54 -0
  461. package/lib/table/style/sorter.less +99 -0
  462. package/lib/table/style/sticky.less +45 -55
  463. package/lib/table/style/summary.less +23 -0
  464. package/lib/table/style/variables.less +80 -0
  465. package/lib/table/style/virtual.less +95 -65
  466. package/package.json +148 -155
  467. package/esm/_util/extendsObject.d.ts +0 -4
  468. package/esm/_util/extendsObject.js +0 -17
  469. package/esm/_util/hooks/index.d.ts +0 -4
  470. package/esm/_util/hooks/index.js +0 -4
  471. package/esm/_util/hooks/useProxyImperativeHandle.d.ts +0 -4
  472. package/esm/_util/index.d.ts +0 -3
  473. package/esm/_util/isNonNullable.d.ts +0 -2
  474. package/esm/_util/isNonNullable.js +0 -4
  475. package/esm/blockHeader/index.d.ts +0 -58
  476. package/esm/flex/index.d.ts +0 -7
  477. package/esm/index.d.ts +0 -17
  478. package/esm/index.js +0 -14
  479. package/esm/overflowList/index.d.ts +0 -40
  480. package/esm/resizeObserver/index.d.ts +0 -45
  481. package/esm/splitter/index.d.ts +0 -8
  482. package/esm/splitter/interface.d.ts +0 -69
  483. package/esm/splitter/style/index.less +0 -312
  484. package/esm/style/mixins/index.less +0 -0
  485. package/esm/style/themes/index.less +0 -2
  486. package/esm/table/InternalTable.d.ts +0 -32
  487. package/esm/table/InternalTable.js +0 -429
  488. package/esm/table/RcTable/VirtualTable.d.ts +0 -2
  489. package/esm/table/RcTable/index.d.ts +0 -2
  490. package/esm/table/RcTable/index.js +0 -9
  491. package/esm/table/Table.d.ts +0 -17
  492. package/esm/table/index.d.ts +0 -7
  493. package/esm/table/index.js +0 -2
  494. package/esm/table/interface.d.ts +0 -196
  495. package/esm/table/interface.js +0 -4
  496. package/esm/table/style/bordered.less +0 -141
  497. package/esm/table/style/fixed.less +0 -88
  498. package/esm/table/style/index.d.ts +0 -2
  499. package/esm/table/style/index.js +0 -2
  500. package/esm/table/style/index.less +0 -150
  501. package/esm/table/style/selection.less +0 -90
  502. package/esm/table/style/sticky.less +0 -55
  503. package/esm/table/style/virtual.less +0 -65
  504. package/lib/_util/easings.d.ts +0 -1
  505. package/lib/_util/extendsObject.d.ts +0 -4
  506. package/lib/_util/extendsObject.js +0 -20
  507. package/lib/_util/gapSize.d.ts +0 -3
  508. package/lib/_util/getScroll.d.ts +0 -3
  509. package/lib/_util/hooks/index.d.ts +0 -4
  510. package/lib/_util/hooks/useForceUpdate.d.ts +0 -2
  511. package/lib/_util/hooks/useOrientation.d.ts +0 -2
  512. package/lib/_util/hooks/useProxyImperativeHandle.d.ts +0 -4
  513. package/lib/_util/hooks/useSyncState.d.ts +0 -3
  514. package/lib/_util/index.d.ts +0 -3
  515. package/lib/_util/isNonNullable.d.ts +0 -2
  516. package/lib/_util/isNonNullable.js +0 -10
  517. package/lib/_util/scrollTo.d.ts +0 -10
  518. package/lib/_util/type.d.ts +0 -52
  519. package/lib/_util/warning.d.ts +0 -31
  520. package/lib/blockHeader/index.js +0 -121
  521. package/lib/blockHeader/style/index.d.ts +0 -2
  522. package/lib/button/index.d.ts +0 -10
  523. package/lib/button/style/index.d.ts +0 -2
  524. package/lib/collapsible/index.d.ts +0 -102
  525. package/lib/collapsible/style/index.d.ts +0 -1
  526. package/lib/collapsibleActionItems/index.d.ts +0 -24
  527. package/lib/collapsibleActionItems/index.js +0 -68
  528. package/lib/collapsibleActionItems/style/index.d.ts +0 -2
  529. package/lib/flex/interface.d.ts +0 -16
  530. package/lib/flex/style/index.d.ts +0 -2
  531. package/lib/flex/utils.d.ts +0 -7
  532. package/lib/formList/index.d.ts +0 -78
  533. package/lib/formList/index.js +0 -130
  534. package/lib/formList/style/index.d.ts +0 -2
  535. package/lib/index.d.ts +0 -17
  536. package/lib/overflowList/index.js +0 -144
  537. package/lib/overflowList/style/index.d.ts +0 -2
  538. package/lib/resize/index.d.ts +0 -9
  539. package/lib/resizeObserver/index.js +0 -137
  540. package/lib/splitter/Panel.d.ts +0 -7
  541. package/lib/splitter/SplitBar.d.ts +0 -24
  542. package/lib/splitter/Splitter.d.ts +0 -5
  543. package/lib/splitter/hooks/sizeUtil.d.ts +0 -3
  544. package/lib/splitter/hooks/useItems.d.ts +0 -14
  545. package/lib/splitter/hooks/useResizable.d.ts +0 -10
  546. package/lib/splitter/hooks/useResize.d.ts +0 -6
  547. package/lib/splitter/hooks/useSizes.d.ts +0 -4
  548. package/lib/splitter/interface.d.ts +0 -69
  549. package/lib/splitter/style/index.d.ts +0 -2
  550. package/lib/statusTag/index.d.ts +0 -29
  551. package/lib/statusTag/index.js +0 -125
  552. package/lib/statusTag/style/index.d.ts +0 -2
  553. package/lib/style/index.d.ts +0 -1
  554. package/lib/style/mixins/index.less +0 -0
  555. package/lib/table/InternalTable.d.ts +0 -32
  556. package/lib/table/RcTable/VirtualTable.d.ts +0 -2
  557. package/lib/table/RcTable/VirtualTable.js +0 -17
  558. package/lib/table/RcTable/index.d.ts +0 -2
  559. package/lib/table/RcTable/index.js +0 -17
  560. package/lib/table/TableMeasureRowContext.d.ts +0 -3
  561. package/lib/table/hooks/useContainerWidth.d.ts +0 -1
  562. package/lib/table/hooks/useContainerWidth.js +0 -20
  563. package/lib/table/index.d.ts +0 -7
  564. package/lib/table/interface.d.ts +0 -196
  565. package/lib/table/style/index.d.ts +0 -2
  566. package/lib/table/util.d.ts +0 -14
  567. package/lib/table/util.js +0 -44
  568. /package/{esm → es}/_util/easings.d.ts +0 -0
  569. /package/{esm → es}/_util/easings.js +0 -0
  570. /package/{esm → es}/_util/gapSize.js +0 -0
  571. /package/{esm → es}/_util/getScroll.d.ts +0 -0
  572. /package/{esm → es}/_util/hooks/useForceUpdate.d.ts +0 -0
  573. /package/{esm → es}/_util/hooks/useForceUpdate.js +0 -0
  574. /package/{esm → es}/_util/hooks/useOrientation.d.ts +0 -0
  575. /package/{esm → es}/_util/hooks/useOrientation.js +0 -0
  576. /package/{esm → es}/_util/hooks/useSyncState.d.ts +0 -0
  577. /package/{esm → es}/_util/hooks/useSyncState.js +0 -0
  578. /package/{esm → es}/_util/scrollTo.d.ts +0 -0
  579. /package/{esm → es}/_util/type.js +0 -0
  580. /package/{esm → es}/_util/warning.d.ts +0 -0
  581. /package/{esm/blockHeader → es/block-header}/style/index.d.ts +0 -0
  582. /package/{esm/blockHeader → es/block-header}/style/index.js +0 -0
  583. /package/{esm → es}/button/style/index.d.ts +0 -0
  584. /package/{esm → es}/button/style/index.js +0 -0
  585. /package/{esm → es}/collapsible/index.d.ts +0 -0
  586. /package/{esm → es}/collapsible/style/index.d.ts +0 -0
  587. /package/{esm → es}/collapsible/style/index.js +0 -0
  588. /package/{esm/collapsibleActionItems → es/collapsible-action-items}/style/index.d.ts +0 -0
  589. /package/{esm/collapsibleActionItems → es/collapsible-action-items}/style/index.js +0 -0
  590. /package/{esm → es}/flex/interface.d.ts +0 -0
  591. /package/{esm → es}/flex/interface.js +0 -0
  592. /package/{esm → es}/flex/style/index.d.ts +0 -0
  593. /package/{esm → es}/flex/style/index.js +0 -0
  594. /package/{esm → es}/flex/utils.d.ts +0 -0
  595. /package/{esm → es}/flex/utils.js +0 -0
  596. /package/{esm/formList → es/form-list}/style/index.d.ts +0 -0
  597. /package/{esm/formList → es/form-list}/style/index.js +0 -0
  598. /package/{esm/overflowList → es/overflow-list}/style/index.d.ts +0 -0
  599. /package/{esm/overflowList → es/overflow-list}/style/index.js +0 -0
  600. /package/{esm → es}/resize/index.d.ts +0 -0
  601. /package/{esm → es}/resize/index.js +0 -0
  602. /package/{esm → es}/splitter/Splitter.d.ts +0 -0
  603. /package/{esm → es}/splitter/hooks/sizeUtil.d.ts +0 -0
  604. /package/{esm → es}/splitter/hooks/useItems.js +0 -0
  605. /package/{esm → es}/splitter/hooks/useSizes.d.ts +0 -0
  606. /package/{esm → es}/splitter/index.js +0 -0
  607. /package/{esm → es}/splitter/interface.js +0 -0
  608. /package/{esm → es}/splitter/style/index.d.ts +0 -0
  609. /package/{esm → es}/splitter/style/index.js +0 -0
  610. /package/{esm/statusTag → es/status-tag}/index.d.ts +0 -0
  611. /package/{esm/statusTag → es/status-tag}/style/index.d.ts +0 -0
  612. /package/{esm/statusTag → es/status-tag}/style/index.js +0 -0
  613. /package/{esm → es}/style/index.d.ts +0 -0
  614. /package/{esm → es}/style/index.js +0 -0
  615. /package/{esm → es}/table/TableMeasureRowContext.d.ts +0 -0
  616. /package/{esm → es}/table/TableMeasureRowContext.js +0 -0
  617. /package/{esm/table → es/table/shared}/hooks/useContainerWidth.d.ts +0 -0
  618. /package/{esm/table → es/table/shared}/hooks/useContainerWidth.js +0 -0
  619. /package/lib/{blockHeader → block-header}/style/index.js +0 -0
  620. /package/lib/{collapsibleActionItems → collapsible-action-items}/style/index.js +0 -0
  621. /package/lib/{formList → form-list}/style/index.js +0 -0
  622. /package/lib/{overflowList → overflow-list}/style/index.js +0 -0
  623. /package/lib/{statusTag → status-tag}/style/index.js +0 -0
@@ -11,12 +11,13 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
11
11
  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; }
12
12
  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; } }
13
13
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
14
- import React, { useContext, useState } from 'react';
15
- import { ConfigContext } from 'antd/es/config-provider';
14
+ import React, { useContext, useMemo, useState } from 'react';
15
+ import { ConfigContext } from 'antd/lib/config-provider';
16
16
  import ResizeObserver from 'rc-resize-observer';
17
- import useEvent from 'rc-util/es/hooks/useEvent';
18
- import warning from 'rc-util/es/warning';
17
+ import useEvent from 'rc-util/lib/hooks/useEvent';
18
+ import warning from 'rc-util/lib/warning';
19
19
  import useItems from "./hooks/useItems";
20
+ import useOrientation from "./hooks/useOrientation";
20
21
  import useResizable from "./hooks/useResizable";
21
22
  import useResize from "./hooks/useResize";
22
23
  import useSizes from "./hooks/useSizes";
@@ -24,24 +25,30 @@ import { InternalPanel } from "./Panel";
24
25
  import SplitBar from "./SplitBar";
25
26
  import "./style/index.less";
26
27
  import clsx from 'clsx';
27
- import { uniqueId } from 'lodash-es';
28
28
  var Splitter = function Splitter(props) {
29
29
  var customizePrefixCls = props.prefixCls,
30
30
  className = props.className,
31
31
  style = props.style,
32
- _props$layout = props.layout,
33
- layout = _props$layout === void 0 ? 'horizontal' : _props$layout,
32
+ layout = props.layout,
33
+ orientation = props.orientation,
34
+ vertical = props.vertical,
34
35
  children = props.children,
35
36
  rootClassName = props.rootClassName,
36
37
  onResizeStart = props.onResizeStart,
37
38
  onResize = props.onResize,
38
39
  onResizeEnd = props.onResizeEnd,
39
- lazy = props.lazy;
40
+ lazy = props.lazy,
41
+ destroyOnHidden = props.destroyOnHidden,
42
+ draggerIcon = props.draggerIcon,
43
+ motion = props.motion;
40
44
  var _useContext = useContext(ConfigContext),
41
45
  getPrefixCls = _useContext.getPrefixCls,
42
46
  direction = _useContext.direction;
43
47
  var prefixCls = getPrefixCls('splitter', customizePrefixCls);
44
- var isVertical = layout === 'vertical';
48
+ var _useOrientation = useOrientation(orientation, vertical, layout),
49
+ _useOrientation2 = _slicedToArray(_useOrientation, 2),
50
+ mergedOrientation = _useOrientation2[0],
51
+ isVertical = _useOrientation2[1];
45
52
  var isRTL = direction === 'rtl';
46
53
  var reverse = !isVertical && isRTL;
47
54
  var items = useItems(children);
@@ -88,6 +95,12 @@ var Splitter = function Splitter(props) {
88
95
  onOffsetEnd = _useResize2[2],
89
96
  onCollapse = _useResize2[3],
90
97
  movingIndex = _useResize2[4];
98
+ var supportMotion = React.useMemo(function () {
99
+ return (motion || items.some(function (item) {
100
+ var _item$collapsible;
101
+ return (_item$collapsible = item.collapsible) === null || _item$collapsible === void 0 ? void 0 : _item$collapsible.motion;
102
+ })) && movingIndex === undefined;
103
+ }, [items, motion, movingIndex]);
91
104
  var onInternalResizeStart = useEvent(function (index) {
92
105
  onOffsetStart(index);
93
106
  onResizeStart === null || onResizeStart === void 0 || onResizeStart(itemPxSizes);
@@ -99,13 +112,21 @@ var Splitter = function Splitter(props) {
99
112
  } else {
100
113
  onResize === null || onResize === void 0 || onResize(nextSizes);
101
114
  }
115
+ return nextSizes;
102
116
  });
103
- var onInternalResizeEnd = useEvent(function (lazyEnd) {
104
- onOffsetEnd();
117
+ var onInternalResizeEnd = useEvent(function (nextSizes, lazyEnd) {
118
+ onOffsetEnd(nextSizes);
105
119
  if (!lazyEnd) {
106
- onResizeEnd === null || onResizeEnd === void 0 || onResizeEnd(itemPxSizes);
120
+ onResizeEnd === null || onResizeEnd === void 0 || onResizeEnd(nextSizes !== null && nextSizes !== void 0 ? nextSizes : itemPxSizes);
107
121
  }
108
122
  });
123
+ var onInternalOffsetUpdate = useEvent(function (index, offsetX, offsetY, lazyEnd) {
124
+ var offset = isVertical ? offsetY : offsetX;
125
+ if (reverse) {
126
+ offset = -offset;
127
+ }
128
+ return onInternalResizeUpdate(index, offset, lazyEnd);
129
+ });
109
130
  var onInternalCollapse = useEvent(function (index, type) {
110
131
  var _props$onCollapse;
111
132
  var nextSizes = onCollapse(index, type);
@@ -116,7 +137,7 @@ var Splitter = function Splitter(props) {
116
137
  });
117
138
  (_props$onCollapse = props.onCollapse) === null || _props$onCollapse === void 0 || _props$onCollapse.call(props, collapsed, nextSizes);
118
139
  });
119
- var containerClassName = clsx(prefixCls, className, "".concat(prefixCls, "-").concat(layout), _defineProperty({}, "".concat(prefixCls, "-rtl"), isRTL), rootClassName);
140
+ var containerClassName = clsx(prefixCls, className, "".concat(prefixCls, "-").concat(mergedOrientation), _defineProperty({}, "".concat(prefixCls, "-rtl"), isRTL), rootClassName);
120
141
  var maskCls = "".concat(prefixCls, "-mask");
121
142
  var stackSizes = React.useMemo(function () {
122
143
  var mergedSizes = [];
@@ -128,6 +149,11 @@ var Splitter = function Splitter(props) {
128
149
  }
129
150
  return mergedSizes;
130
151
  }, [itemPtgSizes, items.length]);
152
+ var panelIds = useMemo(function () {
153
+ return items.map(function (item, idx) {
154
+ return item.id || "".concat(prefixCls, "-panel-").concat(idx);
155
+ });
156
+ }, [items, prefixCls]);
131
157
  var mergedStyle = _objectSpread({}, style);
132
158
  return /*#__PURE__*/React.createElement(ResizeObserver, {
133
159
  onResize: onContainerResize
@@ -135,9 +161,13 @@ var Splitter = function Splitter(props) {
135
161
  style: mergedStyle,
136
162
  className: containerClassName
137
163
  }, items.map(function (item, idx) {
164
+ var _item$destroyOnHidden;
138
165
  var panel = /*#__PURE__*/React.createElement(InternalPanel, _extends({}, item, {
166
+ id: panelIds[idx],
139
167
  prefixCls: prefixCls,
140
- size: panelSizes[idx]
168
+ size: panelSizes[idx],
169
+ destroyOnHidden: (_item$destroyOnHidden = item.destroyOnHidden) !== null && _item$destroyOnHidden !== void 0 ? _item$destroyOnHidden : destroyOnHidden,
170
+ supportMotion: supportMotion
141
171
  }));
142
172
  var splitBar = null;
143
173
  var resizableInfo = resizableInfos[idx];
@@ -146,6 +176,7 @@ var Splitter = function Splitter(props) {
146
176
  var ariaMinEnd = (stackSizes[idx + 1] || 100) - itemPtgMaxSizes[idx + 1];
147
177
  var ariaMaxStart = (stackSizes[idx - 1] || 0) + itemPtgMaxSizes[idx];
148
178
  var ariaMaxEnd = (stackSizes[idx + 1] || 100) - itemPtgMinSizes[idx + 1];
179
+ var ariaControls = [panelIds[idx], panelIds[idx + 1]].filter(Boolean).join(' ');
149
180
  splitBar = /*#__PURE__*/React.createElement(SplitBar, {
150
181
  lazy: lazy,
151
182
  index: idx,
@@ -153,32 +184,30 @@ var Splitter = function Splitter(props) {
153
184
  prefixCls: prefixCls,
154
185
  vertical: isVertical,
155
186
  resizable: resizableInfo.resizable,
187
+ draggerIcon: draggerIcon,
188
+ startIcon: resizableInfo.startIcon,
189
+ endIcon: resizableInfo.endIcon,
156
190
  ariaNow: stackSizes[idx] * 100,
157
191
  ariaMin: Math.max(ariaMinStart, ariaMinEnd) * 100,
158
192
  ariaMax: Math.min(ariaMaxStart, ariaMaxEnd) * 100,
193
+ ariaControls: ariaControls,
159
194
  startCollapsible: resizableInfo.startCollapsible,
160
195
  endCollapsible: resizableInfo.endCollapsible,
161
196
  showStartCollapsibleIcon: resizableInfo.showStartCollapsibleIcon,
162
197
  showEndCollapsibleIcon: resizableInfo.showEndCollapsibleIcon,
163
198
  onOffsetStart: onInternalResizeStart,
164
- onOffsetUpdate: function onOffsetUpdate(index, offsetX, offsetY, lazyEnd) {
165
- var offset = isVertical ? offsetY : offsetX;
166
- if (reverse) {
167
- offset = -offset;
168
- }
169
- onInternalResizeUpdate(index, offset, lazyEnd);
170
- },
199
+ onOffsetUpdate: onInternalOffsetUpdate,
171
200
  onOffsetEnd: onInternalResizeEnd,
172
201
  onCollapse: onInternalCollapse,
173
202
  containerSize: containerSize || 0
174
203
  });
175
204
  }
176
205
  return /*#__PURE__*/React.createElement(React.Fragment, {
177
- key: "split-panel-".concat(uniqueId())
206
+ key: panelIds[idx] || "split-panel-".concat(idx)
178
207
  }, panel, splitBar);
179
208
  }), typeof movingIndex === 'number' && /*#__PURE__*/React.createElement("div", {
180
209
  "aria-hidden": true,
181
- className: clsx(maskCls, "".concat(maskCls, "-").concat(layout))
210
+ className: clsx(maskCls, "".concat(maskCls, "-").concat(mergedOrientation))
182
211
  })));
183
212
  };
184
213
  if (process.env.NODE_ENV !== 'production') {
@@ -51,7 +51,7 @@ export function autoPtgSizes(ptgSizes, minPtgSizes, maxPtgSizes) {
51
51
  limitMin = Math.max(limitMin, min);
52
52
  limitMax = Math.min(limitMax, max);
53
53
  }
54
- if (sumMin > 1 && sumMax < 1) {
54
+ if (sumMin > 1 || sumMax < 1) {
55
55
  var _avg = 1 / undefinedCount;
56
56
  return ptgSizes.map(function (size) {
57
57
  return size === undefined ? _avg : size;
@@ -0,0 +1,14 @@
1
+ type StartPos = readonly [number, number];
2
+ export interface UseDragListenersOptions {
3
+ startPos: StartPos | null;
4
+ vertical: boolean;
5
+ lazy?: boolean;
6
+ onOffsetUpdate: (index: number, offsetX: number, offsetY: number, lazyEnd?: boolean) => void;
7
+ onOffsetEnd: (nextSizes?: number[], lazyEnd?: boolean) => void;
8
+ handleLazyMove: (offsetX: number, offsetY: number) => void;
9
+ handleLazyEnd: () => void;
10
+ setStartPos: (pos: StartPos | null) => void;
11
+ index: number;
12
+ }
13
+ export default function useDragListeners(options: UseDragListenersOptions): void;
14
+ export {};
@@ -0,0 +1,107 @@
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 useLayoutEffect from 'rc-util/lib/hooks/useLayoutEffect';
8
+ export default function useDragListeners(options) {
9
+ var startPos = options.startPos,
10
+ lazy = options.lazy,
11
+ onOffsetUpdate = options.onOffsetUpdate,
12
+ onOffsetEnd = options.onOffsetEnd,
13
+ handleLazyMove = options.handleLazyMove,
14
+ handleLazyEnd = options.handleLazyEnd,
15
+ setStartPos = options.setStartPos,
16
+ index = options.index;
17
+ useLayoutEffect(function () {
18
+ if (!startPos) {
19
+ return;
20
+ }
21
+ var onMouseMove = function onMouseMove(e) {
22
+ var pageX = e.pageX,
23
+ pageY = e.pageY;
24
+ var offsetX = pageX - startPos[0];
25
+ var offsetY = pageY - startPos[1];
26
+ if (lazy) {
27
+ handleLazyMove(offsetX, offsetY);
28
+ } else {
29
+ onOffsetUpdate(index, offsetX, offsetY);
30
+ }
31
+ };
32
+ var onMouseUp = function onMouseUp() {
33
+ if (lazy) {
34
+ handleLazyEnd();
35
+ } else {
36
+ onOffsetEnd();
37
+ }
38
+ setStartPos(null);
39
+ };
40
+ var handleTouchMove = function handleTouchMove(e) {
41
+ if (e.touches.length === 1) {
42
+ e.preventDefault();
43
+ var touch = e.touches[0];
44
+ var _offsetX = touch.pageX - startPos[0];
45
+ var _offsetY = touch.pageY - startPos[1];
46
+ if (lazy) {
47
+ handleLazyMove(_offsetX, _offsetY);
48
+ } else {
49
+ onOffsetUpdate(index, _offsetX, _offsetY);
50
+ }
51
+ }
52
+ };
53
+ var handleTouchEnd = function handleTouchEnd() {
54
+ if (lazy) {
55
+ handleLazyEnd();
56
+ } else {
57
+ onOffsetEnd();
58
+ }
59
+ setStartPos(null);
60
+ };
61
+ var handleMouseLeave = function handleMouseLeave() {
62
+ if (lazy) {
63
+ handleLazyEnd();
64
+ } else {
65
+ onOffsetEnd();
66
+ }
67
+ setStartPos(null);
68
+ };
69
+ var handleBlur = function handleBlur() {
70
+ if (lazy) {
71
+ handleLazyEnd();
72
+ } else {
73
+ onOffsetEnd();
74
+ }
75
+ setStartPos(null);
76
+ };
77
+ var eventHandlerMap = {
78
+ mousemove: onMouseMove,
79
+ mouseup: onMouseUp,
80
+ touchmove: handleTouchMove,
81
+ touchend: handleTouchEnd,
82
+ mouseleave: handleMouseLeave,
83
+ blur: handleBlur
84
+ };
85
+ for (var _i = 0, _Object$entries = Object.entries(eventHandlerMap); _i < _Object$entries.length; _i++) {
86
+ var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
87
+ event = _Object$entries$_i[0],
88
+ handler = _Object$entries$_i[1];
89
+ var _options = event === 'touchmove' ? {
90
+ passive: false
91
+ } : undefined;
92
+ // eslint-disable-next-line react-web-api/no-leaked-event-listener
93
+ window.addEventListener(event, handler, _options);
94
+ }
95
+ return function () {
96
+ for (var _i2 = 0, _Object$entries2 = Object.entries(eventHandlerMap); _i2 < _Object$entries2.length; _i2++) {
97
+ var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
98
+ _event = _Object$entries2$_i[0],
99
+ _handler = _Object$entries2$_i[1];
100
+ var _options2 = _event === 'touchmove' ? {
101
+ passive: false
102
+ } : undefined;
103
+ window.removeEventListener(_event, _handler, _options2);
104
+ }
105
+ };
106
+ }, [startPos, index, lazy]);
107
+ }
@@ -1,10 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import type { PanelProps } from '../interface';
3
3
  export type ItemType = Omit<PanelProps, 'collapsible'> & {
4
+ id?: string;
4
5
  collapsible: {
5
6
  start?: boolean;
6
7
  end?: boolean;
7
8
  showCollapsibleIcon: 'auto' | boolean;
9
+ icon?: {
10
+ start?: React.ReactNode;
11
+ end?: React.ReactNode;
12
+ };
13
+ motion?: boolean;
8
14
  };
9
15
  };
10
16
  /**
@@ -0,0 +1,2 @@
1
+ export type Orientation = 'horizontal' | 'vertical';
2
+ export default function useOrientation(orientation?: Orientation, vertical?: boolean, layout?: Orientation): [Orientation, boolean];
@@ -0,0 +1,6 @@
1
+ export default function useOrientation(orientation, vertical, layout) {
2
+ var _ref, _ref2;
3
+ var mergedOrientation = (_ref = (_ref2 = orientation !== null && orientation !== void 0 ? orientation : vertical ? 'vertical' : undefined) !== null && _ref2 !== void 0 ? _ref2 : layout) !== null && _ref !== void 0 ? _ref : 'horizontal';
4
+ var isVertical = mergedOrientation === 'vertical';
5
+ return [mergedOrientation, isVertical];
6
+ }
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import type { ShowCollapsibleIconMode } from '../SplitBar';
2
3
  import type { ItemType } from './useItems';
3
4
  export type ResizableInfo = {
@@ -6,5 +7,7 @@ export type ResizableInfo = {
6
7
  endCollapsible: boolean;
7
8
  showStartCollapsibleIcon: ShowCollapsibleIconMode;
8
9
  showEndCollapsibleIcon: ShowCollapsibleIconMode;
10
+ startIcon?: React.ReactNode;
11
+ endIcon?: React.ReactNode;
9
12
  };
10
13
  export default function useResizable(items: ItemType[], pxSizes: number[], isRTL: boolean): ResizableInfo[];
@@ -21,6 +21,7 @@ export default function useResizable(items, pxSizes, isRTL) {
21
21
  return React.useMemo(function () {
22
22
  var resizeInfos = [];
23
23
  for (var i = 0; i < items.length - 1; i += 1) {
24
+ var _prevCollapsible$icon, _prevCollapsible$icon2, _nextCollapsible$icon, _nextCollapsible$icon2;
24
25
  var prevItem = items[i];
25
26
  var nextItem = items[i + 1];
26
27
  var prevSize = pxSizes[i];
@@ -65,9 +66,11 @@ export default function useResizable(items, pxSizes, isRTL) {
65
66
  startCollapsible: !!(isRTL ? endCollapsible : startCollapsible),
66
67
  endCollapsible: !!(isRTL ? startCollapsible : endCollapsible),
67
68
  showStartCollapsibleIcon: isRTL ? showEndCollapsibleIcon : showStartCollapsibleIcon,
68
- showEndCollapsibleIcon: isRTL ? showStartCollapsibleIcon : showEndCollapsibleIcon
69
+ showEndCollapsibleIcon: isRTL ? showStartCollapsibleIcon : showEndCollapsibleIcon,
70
+ startIcon: isRTL ? (_prevCollapsible$icon = prevCollapsible.icon) === null || _prevCollapsible$icon === void 0 ? void 0 : _prevCollapsible$icon.start : (_prevCollapsible$icon2 = prevCollapsible.icon) === null || _prevCollapsible$icon2 === void 0 ? void 0 : _prevCollapsible$icon2.end,
71
+ endIcon: isRTL ? (_nextCollapsible$icon = nextCollapsible.icon) === null || _nextCollapsible$icon === void 0 ? void 0 : _nextCollapsible$icon.end : (_nextCollapsible$icon2 = nextCollapsible.icon) === null || _nextCollapsible$icon2 === void 0 ? void 0 : _nextCollapsible$icon2.start
69
72
  };
70
73
  }
71
74
  return resizeInfos;
72
- }, [pxSizes, items]);
75
+ }, [pxSizes, items, isRTL]);
73
76
  }
@@ -3,4 +3,4 @@ import type { ResizableInfo } from './useResizable';
3
3
  /**
4
4
  * Handle user drag resize logic.
5
5
  */
6
- export default function useResize(items: ItemType[], resizableInfos: ResizableInfo[], percentSizes: number[], containerSize: number | undefined, updateSizes: (sizes: number[]) => void, isRTL: boolean): readonly [(index: number) => void, (index: number, offset: number) => number[], () => void, (index: number, type: 'start' | 'end') => number[], number | undefined];
6
+ export default function useResize(items: ItemType[], resizableInfos: ResizableInfo[], percentSizes: number[], containerSize: number | undefined, updateSizes: (sizes: number[]) => void, isRTL: boolean): readonly [(index: number) => void, (index: number, offset: number) => number[], (nextSizes?: number[]) => number[] | undefined, (index: number, type: "start" | "end") => number[], number | undefined];
@@ -61,6 +61,13 @@ export default function useResize(items, resizableInfos, percentSizes, container
61
61
  // First time trigger move index update is not sync in the state
62
62
  var confirmedIndex = null;
63
63
 
64
+ // Drag offsets are cumulative from the drag start, so compute on the
65
+ // drag-start baseline (`cacheSizes`). Keyboard resize fires start/update
66
+ // synchronously and the seeded state is not committed yet (`movingIndex`
67
+ // is still null), so compute on the current sizes instead of an empty
68
+ // baseline which would produce NaN sizes.
69
+ var numSizes = movingIndex ? _toConsumableArray(cacheSizes) : getPxSizes();
70
+
64
71
  // We need to know what the real index is.
65
72
  if ((!movingIndex || !movingIndex.confirmed) && offset !== 0) {
66
73
  // Search for the real index
@@ -72,7 +79,7 @@ export default function useResize(items, resizableInfos, percentSizes, container
72
79
  });
73
80
  } else {
74
81
  for (var i = index; i >= 0; i -= 1) {
75
- if (cacheSizes[i] > 0 && resizableInfos[i].resizable) {
82
+ if (numSizes[i] > 0 && resizableInfos[i].resizable) {
76
83
  confirmedIndex = i;
77
84
  setMovingIndex({
78
85
  index: i,
@@ -84,7 +91,6 @@ export default function useResize(items, resizableInfos, percentSizes, container
84
91
  }
85
92
  }
86
93
  var mergedIndex = (_ref = (_confirmedIndex = confirmedIndex) !== null && _confirmedIndex !== void 0 ? _confirmedIndex : movingIndex === null || movingIndex === void 0 ? void 0 : movingIndex.index) !== null && _ref !== void 0 ? _ref : index;
87
- var numSizes = _toConsumableArray(cacheSizes);
88
94
  var nextIndex = mergedIndex + 1;
89
95
 
90
96
  // Get boundary
@@ -114,8 +120,9 @@ export default function useResize(items, resizableInfos, percentSizes, container
114
120
  updateSizes(numSizes);
115
121
  return numSizes;
116
122
  };
117
- var onOffsetEnd = function onOffsetEnd() {
123
+ var onOffsetEnd = function onOffsetEnd(nextSizes) {
118
124
  setMovingIndex(null);
125
+ return nextSizes;
119
126
  };
120
127
 
121
128
  // ======================= Collapse =======================
@@ -5,6 +5,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
5
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
6
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
7
  import React from 'react';
8
+ import { isNonNullable } from "../../_util/is";
8
9
  import { autoPtgSizes } from "./sizeUtil";
9
10
  export function getPtg(str) {
10
11
  return Number(str.slice(0, -1)) / 100;
@@ -30,12 +31,10 @@ export default function useSizes(items, containerSize) {
30
31
  innerSizes = _React$useState2[0],
31
32
  setInnerSizes = _React$useState2[1];
32
33
  var sizes = React.useMemo(function () {
33
- var mergedSizes = [];
34
- for (var i = 0; i < itemsCount; i += 1) {
35
- var _propSizes$i;
36
- mergedSizes[i] = (_propSizes$i = propSizes[i]) !== null && _propSizes$i !== void 0 ? _propSizes$i : innerSizes[i];
37
- }
38
- return mergedSizes;
34
+ // If any panel has a controlled `size`, use only prop sizes.
35
+ // Undefined panels will be auto-filled by autoPtgSizes.
36
+ // Otherwise, use innerSizes for fully uncontrolled mode.
37
+ return propSizes.some(isNonNullable) ? propSizes : innerSizes;
39
38
  }, [itemsCount, innerSizes, propSizes]);
40
39
  var postPercentMinSizes = React.useMemo(function () {
41
40
  return items.map(function (item) {
@@ -1,6 +1,7 @@
1
1
  import Panel from './Panel';
2
2
  import SplitterComp from './Splitter';
3
- export type { SplitterProps } from './interface';
3
+ export type { PanelProps, SplitterProps } from './interface';
4
+ export type { ShowCollapsibleIconMode } from './SplitBar';
4
5
  type CompoundedComponent = typeof SplitterComp & {
5
6
  Panel: typeof Panel;
6
7
  };
@@ -0,0 +1,45 @@
1
+ import type { ShowCollapsibleIconMode } from './SplitBar';
2
+ export interface SplitterProps {
3
+ prefixCls?: string;
4
+ className?: string;
5
+ style?: React.CSSProperties;
6
+ rootClassName?: string;
7
+ layout?: 'horizontal' | 'vertical';
8
+ orientation?: 'horizontal' | 'vertical';
9
+ vertical?: boolean;
10
+ onResizeStart?: (sizes: number[]) => void;
11
+ onResize?: (sizes: number[]) => void;
12
+ onResizeEnd?: (sizes: number[]) => void;
13
+ onCollapse?: (collapsed: boolean[], sizes: number[]) => void;
14
+ lazy?: boolean;
15
+ destroyOnHidden?: boolean;
16
+ draggerIcon?: React.ReactNode;
17
+ motion?: boolean;
18
+ }
19
+ export interface PanelProps {
20
+ className?: string;
21
+ style?: React.CSSProperties;
22
+ id?: string;
23
+ min?: number | string;
24
+ max?: number | string;
25
+ size?: number | string;
26
+ collapsible?: boolean | {
27
+ start?: boolean;
28
+ end?: boolean;
29
+ showCollapsibleIcon?: ShowCollapsibleIconMode;
30
+ icon?: {
31
+ start?: React.ReactNode;
32
+ end?: React.ReactNode;
33
+ };
34
+ motion?: boolean;
35
+ };
36
+ resizable?: boolean;
37
+ defaultSize?: number | string;
38
+ destroyOnHidden?: boolean;
39
+ }
40
+ export interface InternalPanelProps extends PanelProps {
41
+ className?: string;
42
+ prefixCls?: string;
43
+ id?: string;
44
+ supportMotion?: boolean;
45
+ }