@infinite-table/infinite-react 0.5.1 → 0.5.2

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 (282) hide show
  1. package/README.md +104 -0
  2. package/index.css +896 -0
  3. package/index.d.ts +2264 -0
  4. package/index.esm.css +896 -0
  5. package/index.esm.js +15404 -0
  6. package/index.js +15240 -0
  7. package/package.json +2 -94
  8. package/.vscode/settings.json +0 -3
  9. package/API.md +0 -0
  10. package/build/buildPackageJson.js +0 -43
  11. package/build/scripts/test.js +0 -37
  12. package/bundler.config.js +0 -25
  13. package/globals.d.ts +0 -7
  14. package/rollup.config.js +0 -15
  15. package/run-build-deepmap.js +0 -47
  16. package/run-build.js +0 -45
  17. package/run-dts-concat.js +0 -21
  18. package/src/components/CSSVariableWatch.tsx +0 -82
  19. package/src/components/DataSource/BooleanCollectionState.ts +0 -214
  20. package/src/components/DataSource/BooleanDeepCollectionState.ts +0 -208
  21. package/src/components/DataSource/DataSourceContext.ts +0 -20
  22. package/src/components/DataSource/GroupRowsState.ts +0 -74
  23. package/src/components/DataSource/Indexer.ts +0 -27
  24. package/src/components/DataSource/RowSelectionState.ts +0 -763
  25. package/src/components/DataSource/defaultFilterTypes.ts +0 -64
  26. package/src/components/DataSource/index.tsx +0 -108
  27. package/src/components/DataSource/privateHooks/getChangeDetect.ts +0 -7
  28. package/src/components/DataSource/privateHooks/useLoadData.ts +0 -783
  29. package/src/components/DataSource/publicHooks/useDataSource.ts +0 -19
  30. package/src/components/DataSource/publicHooks/useDataSourceActions.ts +0 -14
  31. package/src/components/DataSource/state/getInitialState.ts +0 -494
  32. package/src/components/DataSource/state/normalizeSortInfo.ts +0 -35
  33. package/src/components/DataSource/state/reducer.ts +0 -466
  34. package/src/components/DataSource/state/rowInfoStatus.ts +0 -27
  35. package/src/components/DataSource/types.ts +0 -548
  36. package/src/components/HeadlessTable/HeadlessTableWithPinnedContainers.tsx +0 -142
  37. package/src/components/HeadlessTable/MappedCells.ts +0 -251
  38. package/src/components/HeadlessTable/RawTable.tsx +0 -98
  39. package/src/components/HeadlessTable/ReactHeadlessTableRenderer.tsx +0 -1516
  40. package/src/components/HeadlessTable/index.tsx +0 -234
  41. package/src/components/InfiniteTable/InfiniteCls.css.ts +0 -164
  42. package/src/components/InfiniteTable/InfiniteTableContext.ts +0 -16
  43. package/src/components/InfiniteTable/api/getImperativeApi.ts +0 -391
  44. package/src/components/InfiniteTable/api/getSelectionApi.ts +0 -364
  45. package/src/components/InfiniteTable/api/type.ts +0 -11
  46. package/src/components/InfiniteTable/components/ActiveCellIndicator.css.ts +0 -51
  47. package/src/components/InfiniteTable/components/ActiveCellIndicator.tsx +0 -116
  48. package/src/components/InfiniteTable/components/ActiveRowIndicator.css.ts +0 -56
  49. package/src/components/InfiniteTable/components/ActiveRowIndicator.tsx +0 -94
  50. package/src/components/InfiniteTable/components/CheckBox.css.ts +0 -13
  51. package/src/components/InfiniteTable/components/CheckBox.tsx +0 -96
  52. package/src/components/InfiniteTable/components/FilterEditors.tsx +0 -52
  53. package/src/components/InfiniteTable/components/InfiniteTableBody/InfiniteTableBody.tsx +0 -27
  54. package/src/components/InfiniteTable/components/InfiniteTableBody/index.tsx +0 -1
  55. package/src/components/InfiniteTable/components/InfiniteTableFooter/InfiniteTableFooter.tsx +0 -31
  56. package/src/components/InfiniteTable/components/InfiniteTableFooter/index.tsx +0 -1
  57. package/src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableColumnHeaderFilter.tsx +0 -102
  58. package/src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeader.tsx +0 -163
  59. package/src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderCell.tsx +0 -574
  60. package/src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderGroup.tsx +0 -79
  61. package/src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderTypes.tsx +0 -25
  62. package/src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderWrapper.tsx +0 -185
  63. package/src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/GroupResizeHandle.tsx +0 -159
  64. package/src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/ResizeHandle.css.ts +0 -124
  65. package/src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/columnResizer.ts +0 -166
  66. package/src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/index.tsx +0 -146
  67. package/src/components/InfiniteTable/components/InfiniteTableHeader/buildColumnAndGroupTree.ts +0 -240
  68. package/src/components/InfiniteTable/components/InfiniteTableHeader/header.css.ts +0 -358
  69. package/src/components/InfiniteTable/components/InfiniteTableHeader/index.tsx +0 -1
  70. package/src/components/InfiniteTable/components/InfiniteTableHeader/useColumnGroupResizeHandle.tsx +0 -114
  71. package/src/components/InfiniteTable/components/InfiniteTableHeader/useColumnResizeHandle.tsx +0 -146
  72. package/src/components/InfiniteTable/components/InfiniteTableLicenseFooter/footer.css.ts +0 -7
  73. package/src/components/InfiniteTable/components/InfiniteTableLicenseFooter/index.tsx +0 -110
  74. package/src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableCell.tsx +0 -120
  75. package/src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableCellTypes.ts +0 -74
  76. package/src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableColumnCell.tsx +0 -457
  77. package/src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableRow.tsx +0 -107
  78. package/src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableRowClassName.ts +0 -6
  79. package/src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableRowTypes.ts +0 -32
  80. package/src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableRowUnvirtualized.tsx +0 -75
  81. package/src/components/InfiniteTable/components/InfiniteTableRow/columnRendering.tsx +0 -263
  82. package/src/components/InfiniteTable/components/InfiniteTableRow/index.tsx +0 -1
  83. package/src/components/InfiniteTable/components/InfiniteTableRow/row.css.ts +0 -74
  84. package/src/components/InfiniteTable/components/InfiniteTableRow/useRowDOMProps.ts +0 -199
  85. package/src/components/InfiniteTable/components/LoadMask.css.ts +0 -34
  86. package/src/components/InfiniteTable/components/LoadMask.tsx +0 -27
  87. package/src/components/InfiniteTable/components/ScrollbarPlaceholder.tsx +0 -56
  88. package/src/components/InfiniteTable/components/cell.css.ts +0 -192
  89. package/src/components/InfiniteTable/components/icons/ArrowDown.tsx +0 -14
  90. package/src/components/InfiniteTable/components/icons/ArrowUp.tsx +0 -14
  91. package/src/components/InfiniteTable/components/icons/ExpanderIcon.css.ts +0 -31
  92. package/src/components/InfiniteTable/components/icons/ExpanderIcon.tsx +0 -63
  93. package/src/components/InfiniteTable/components/icons/Icon.tsx +0 -18
  94. package/src/components/InfiniteTable/components/icons/InfiniteTableIconClassName.ts +0 -1
  95. package/src/components/InfiniteTable/components/icons/LoadingIcon.css.ts +0 -8
  96. package/src/components/InfiniteTable/components/icons/LoadingIcon.tsx +0 -45
  97. package/src/components/InfiniteTable/components/icons/MenuIcon.tsx +0 -50
  98. package/src/components/InfiniteTable/components/icons/SortIcon.tsx +0 -113
  99. package/src/components/InfiniteTable/eventHandlers/eventHandlerTypes.ts +0 -57
  100. package/src/components/InfiniteTable/eventHandlers/index.ts +0 -95
  101. package/src/components/InfiniteTable/eventHandlers/keyboardNavigation.ts +0 -232
  102. package/src/components/InfiniteTable/eventHandlers/keyboardSelection.ts +0 -110
  103. package/src/components/InfiniteTable/eventHandlers/onCellClick.ts +0 -94
  104. package/src/components/InfiniteTable/eventHandlers/onKeyDown.ts +0 -25
  105. package/src/components/InfiniteTable/hooks/adjustColumnOrderForAllColumns.ts +0 -70
  106. package/src/components/InfiniteTable/hooks/reorderColumnsOnDrag.ts +0 -476
  107. package/src/components/InfiniteTable/hooks/useAutoSizeColumns.ts +0 -206
  108. package/src/components/InfiniteTable/hooks/useCellClassName.ts +0 -80
  109. package/src/components/InfiniteTable/hooks/useCellRendering.tsx +0 -217
  110. package/src/components/InfiniteTable/hooks/useColumnGroups.ts +0 -71
  111. package/src/components/InfiniteTable/hooks/useColumnMenu.ts +0 -72
  112. package/src/components/InfiniteTable/hooks/useColumnPointerEvents.ts +0 -258
  113. package/src/components/InfiniteTable/hooks/useColumnRowspan.ts +0 -43
  114. package/src/components/InfiniteTable/hooks/useColumnSizeFn.ts +0 -24
  115. package/src/components/InfiniteTable/hooks/useColumnsWhen.ts +0 -582
  116. package/src/components/InfiniteTable/hooks/useComputed.ts +0 -186
  117. package/src/components/InfiniteTable/hooks/useComputedVisibleColumns.ts +0 -219
  118. package/src/components/InfiniteTable/hooks/useDOMProps.ts +0 -306
  119. package/src/components/InfiniteTable/hooks/useEffectWithRaf.ts +0 -47
  120. package/src/components/InfiniteTable/hooks/useInfiniteTable.ts +0 -10
  121. package/src/components/InfiniteTable/hooks/useInfiniteTableState.ts +0 -11
  122. package/src/components/InfiniteTable/hooks/useInternalProps.ts +0 -8
  123. package/src/components/InfiniteTable/hooks/useLicense/LicenseDetails.ts +0 -13
  124. package/src/components/InfiniteTable/hooks/useLicense/crc32.ts +0 -56
  125. package/src/components/InfiniteTable/hooks/useLicense/decode.ts +0 -147
  126. package/src/components/InfiniteTable/hooks/useLicense/useLicense.ts +0 -39
  127. package/src/components/InfiniteTable/hooks/useRerenderOnKeyChange.ts +0 -21
  128. package/src/components/InfiniteTable/hooks/useRowHover.ts +0 -18
  129. package/src/components/InfiniteTable/hooks/useScrollToActiveCell.ts +0 -48
  130. package/src/components/InfiniteTable/hooks/useScrollToActiveRow.ts +0 -44
  131. package/src/components/InfiniteTable/hooks/useScrollbars.ts +0 -51
  132. package/src/components/InfiniteTable/hooks/useToggleGroupRow.ts +0 -56
  133. package/src/components/InfiniteTable/hooks/useUnpinnedRendering.tsx +0 -165
  134. package/src/components/InfiniteTable/hooks/useYourBrain.ts +0 -55
  135. package/src/components/InfiniteTable/index.tsx +0 -352
  136. package/src/components/InfiniteTable/internalProps.ts +0 -4
  137. package/src/components/InfiniteTable/state/computeColumnGroupsDepths.ts +0 -29
  138. package/src/components/InfiniteTable/state/getColumnVisibilityForHideEmptyGroupColumns.ts +0 -127
  139. package/src/components/InfiniteTable/state/getInitialState.ts +0 -375
  140. package/src/components/InfiniteTable/theme.css.ts +0 -556
  141. package/src/components/InfiniteTable/types/InfiniteTableAction.ts +0 -6
  142. package/src/components/InfiniteTable/types/InfiniteTableActionType.ts +0 -12
  143. package/src/components/InfiniteTable/types/InfiniteTableColumn.ts +0 -478
  144. package/src/components/InfiniteTable/types/InfiniteTableComputedValues.ts +0 -43
  145. package/src/components/InfiniteTable/types/InfiniteTableContextValue.ts +0 -12
  146. package/src/components/InfiniteTable/types/InfiniteTableInternalProps.ts +0 -3
  147. package/src/components/InfiniteTable/types/InfiniteTableProps.ts +0 -511
  148. package/src/components/InfiniteTable/types/InfiniteTableState.ts +0 -195
  149. package/src/components/InfiniteTable/types/Utility.ts +0 -35
  150. package/src/components/InfiniteTable/types/index.ts +0 -96
  151. package/src/components/InfiniteTable/utilities.css.ts +0 -179
  152. package/src/components/InfiniteTable/utils/MultiRowSelector.ts +0 -111
  153. package/src/components/InfiniteTable/utils/RenderHookComponentForInfinite.tsx +0 -52
  154. package/src/components/InfiniteTable/utils/adjustColumnOrderForPinning.ts +0 -33
  155. package/src/components/InfiniteTable/utils/assignFiltered.ts +0 -29
  156. package/src/components/InfiniteTable/utils/defaultGetColumContextMenuItems.tsx +0 -108
  157. package/src/components/InfiniteTable/utils/getColumnComputedType.ts +0 -33
  158. package/src/components/InfiniteTable/utils/getColumnForGroupBy.tsx +0 -313
  159. package/src/components/InfiniteTable/utils/getComputedVisibleColumns.ts +0 -773
  160. package/src/components/InfiniteTable/utils/getContextMenuForColumn.tsx +0 -72
  161. package/src/components/InfiniteTable/utils/infiniteDOMUtils.ts +0 -189
  162. package/src/components/InfiniteTable/utils/mapToObject.ts +0 -20
  163. package/src/components/InfiniteTable/utils/moveXatY.ts +0 -25
  164. package/src/components/InfiniteTable/utils/objectValuesExcept.ts +0 -9
  165. package/src/components/InfiniteTable/utils/progressiveSpeedScroller.ts +0 -158
  166. package/src/components/InfiniteTable/utils/rafFn.ts +0 -13
  167. package/src/components/InfiniteTable/utils/toCSSVarName.ts +0 -1
  168. package/src/components/InfiniteTable/utils/toMap.ts +0 -24
  169. package/src/components/Menu/Menu.tsx +0 -750
  170. package/src/components/Menu/MenuCls.css.ts +0 -139
  171. package/src/components/Menu/MenuContext.ts +0 -10
  172. package/src/components/Menu/MenuContextValue.ts +0 -15
  173. package/src/components/Menu/MenuProps.ts +0 -98
  174. package/src/components/Menu/MenuState.ts +0 -56
  175. package/src/components/Menu/MenuTriangleContext.ts +0 -352
  176. package/src/components/Menu/childrenToRuntimeItems.tsx +0 -103
  177. package/src/components/Menu/getMenuState.tsx +0 -119
  178. package/src/components/Menu/index.tsx +0 -88
  179. package/src/components/Menu/propToIdentifyMenu.ts +0 -1
  180. package/src/components/RawList/AvoidReactDiff.tsx +0 -48
  181. package/src/components/RawList/MappedItems.ts +0 -143
  182. package/src/components/RawList/ReactVirtualRenderer.tsx +0 -307
  183. package/src/components/RawList/index.tsx +0 -42
  184. package/src/components/RawList/types.ts +0 -23
  185. package/src/components/RawList/useVirtualRenderer.ts +0 -36
  186. package/src/components/RenderHookComponent.tsx +0 -10
  187. package/src/components/ResizeObserver/index.tsx +0 -170
  188. package/src/components/VirtualBrain/MatrixBrain.ts +0 -1621
  189. package/src/components/VirtualBrain/ScrollListener.ts +0 -39
  190. package/src/components/VirtualBrain/index.ts +0 -664
  191. package/src/components/VirtualList/ColumnListWithExternalScrolling.tsx +0 -78
  192. package/src/components/VirtualList/InfiniteListRootClassName.ts +0 -1
  193. package/src/components/VirtualList/RowListWithExternalScrolling.tsx +0 -120
  194. package/src/components/VirtualList/SpacePlaceholder.tsx +0 -32
  195. package/src/components/VirtualList/VirtualList.css.ts +0 -29
  196. package/src/components/VirtualList/VirtualList.tsx +0 -141
  197. package/src/components/VirtualList/VirtualRowList.tsx +0 -34
  198. package/src/components/VirtualList/types.ts +0 -56
  199. package/src/components/VirtualList/useCorrectHeightForRowElements.ts +0 -14
  200. package/src/components/VirtualScrollContainer/VirtualScrollContainer.css.ts +0 -51
  201. package/src/components/VirtualScrollContainer/getScrollableClassName.ts +0 -30
  202. package/src/components/VirtualScrollContainer/index.tsx +0 -63
  203. package/src/components/flexbox/index.ts +0 -562
  204. package/src/components/hooks/useComponentState/index.tsx +0 -562
  205. package/src/components/hooks/useComponentState/types.ts +0 -32
  206. package/src/components/hooks/useEffectOnceWithProperUnmount.ts +0 -33
  207. package/src/components/hooks/useEffectWithChanges.ts +0 -56
  208. package/src/components/hooks/useImmutableRef.ts +0 -7
  209. package/src/components/hooks/useInterceptedMap.ts +0 -71
  210. package/src/components/hooks/useLatest.tsx +0 -8
  211. package/src/components/hooks/useLazyLatest.ts +0 -23
  212. package/src/components/hooks/useMemoShallowObjectMerge.ts +0 -16
  213. package/src/components/hooks/useMounted.ts +0 -18
  214. package/src/components/hooks/useOnMount.ts +0 -21
  215. package/src/components/hooks/useOnScroll.ts +0 -34
  216. package/src/components/hooks/useOnce.ts +0 -10
  217. package/src/components/hooks/useOverlay/index.tsx +0 -418
  218. package/src/components/hooks/usePrevious.ts +0 -8
  219. package/src/components/hooks/usePropertyOld.ts +0 -168
  220. package/src/components/hooks/useRerender.ts +0 -12
  221. package/src/components/hooks/xuseProperty.ts +0 -165
  222. package/src/components/types/CellPosition.ts +0 -4
  223. package/src/components/types/NonUndefined.ts +0 -1
  224. package/src/components/types/RemoveObject.ts +0 -22
  225. package/src/components/types/Renderable.ts +0 -3
  226. package/src/components/types/ScrollPosition.ts +0 -7
  227. package/src/components/types/Setter.ts +0 -2
  228. package/src/components/types/Size.ts +0 -6
  229. package/src/components/types/SubscriptionCallback.ts +0 -10
  230. package/src/components/types/VoidFn.ts +0 -1
  231. package/src/components/utils/buildSubscriptionCallback.tsx +0 -60
  232. package/src/components/utils/clamp.ts +0 -3
  233. package/src/components/utils/debounce.ts +0 -16
  234. package/src/components/utils/decamelize.ts +0 -11
  235. package/src/components/utils/discardCallsWithEqualArg.ts +0 -42
  236. package/src/components/utils/getRenderIndexes.ts +0 -33
  237. package/src/components/utils/getScrollbarWidth.ts +0 -31
  238. package/src/components/utils/getVirtualRenderCount.ts +0 -21
  239. package/src/components/utils/isControlled.ts +0 -12
  240. package/src/components/utils/isControlledValue.ts +0 -5
  241. package/src/index.tsx +0 -34
  242. package/src/test.tsx +0 -18
  243. package/src/utils/DeepMap/index.ts +0 -588
  244. package/src/utils/DeepMap/once.ts +0 -16
  245. package/src/utils/DeepMap/sortAscending.ts +0 -1
  246. package/src/utils/DeepMap/tsconfig.deepmap.json +0 -17
  247. package/src/utils/DeepMap/xpackage.json +0 -26
  248. package/src/utils/debug.ts +0 -40
  249. package/src/utils/deepClone.ts +0 -38
  250. package/src/utils/getGlobal.ts +0 -3
  251. package/src/utils/groupAndPivot/defaultToKey.ts +0 -3
  252. package/src/utils/groupAndPivot/getGroupKeysForDataItem.ts +0 -19
  253. package/src/utils/groupAndPivot/getPivotColumnsAndColumnGroups.ts +0 -361
  254. package/src/utils/groupAndPivot/index.ts +0 -1229
  255. package/src/utils/groupAndPivot/types.ts +0 -10
  256. package/src/utils/join.ts +0 -4
  257. package/src/utils/mathIntersection.ts +0 -21
  258. package/src/utils/minified.d.ts +0 -2
  259. package/src/utils/minified.js +0 -6
  260. package/src/utils/multisort/index.ts +0 -151
  261. package/src/utils/multisort/sortTypes.ts +0 -25
  262. package/src/utils/notes-status.md +0 -92
  263. package/src/utils/pageGeometry/ConvexPoly.ts +0 -34
  264. package/src/utils/pageGeometry/Point.ts +0 -51
  265. package/src/utils/pageGeometry/PolyWithPoints.ts +0 -52
  266. package/src/utils/pageGeometry/Rectangle.ts +0 -98
  267. package/src/utils/pageGeometry/Triangle.ts +0 -16
  268. package/src/utils/pageGeometry/alignment/index.ts +0 -221
  269. package/src/utils/pageGeometry/polyContainsPoint.ts +0 -182
  270. package/src/utils/pageGeometry/types.ts +0 -3
  271. package/src/utils/proxyFnCall.ts +0 -46
  272. package/src/utils/raf.ts +0 -13
  273. package/src/utils/selectParent.ts +0 -18
  274. package/src/utils/shallowEqualObjects.ts +0 -49
  275. package/src/utils/stripVar.ts +0 -3
  276. package/src/utils/toUpperFirst.ts +0 -5
  277. package/todo.md +0 -2
  278. package/tsconfig.build.json +0 -8
  279. package/tsconfig.dev.json +0 -7
  280. package/tsconfig.json +0 -30
  281. package/tsconfig.typebundler.json +0 -13
  282. package/typedoc.json +0 -4
@@ -1,391 +0,0 @@
1
- import { DeepMap } from '../../../utils/DeepMap';
2
- import { LAZY_ROOT_KEY_FOR_GROUPS } from '../../../utils/groupAndPivot';
3
- import { SortDir } from '../../../utils/multisort';
4
- import { DataSourceSingleSortInfo, GroupRowsState } from '../../DataSource';
5
- import { getChangeDetect } from '../../DataSource/privateHooks/getChangeDetect';
6
- import { loadData } from '../../DataSource/privateHooks/useLoadData';
7
- import {
8
- InfiniteTableApi,
9
- InfiniteTablePropColumnOrder,
10
- InfiniteTablePropColumnVisibility,
11
- } from '../types';
12
- import {
13
- InfiniteTableColumnPinnedValues,
14
- ScrollAdjustPosition,
15
- } from '../types/InfiniteTableProps';
16
- import { getSelectionApi } from './getSelectionApi';
17
-
18
- import { GetImperativeApiParam } from './type';
19
-
20
- export function getImperativeApi<T>(param: GetImperativeApiParam<T>) {
21
- const {
22
- getComputed,
23
- getState,
24
- getDataSourceState,
25
- componentActions,
26
- dataSourceActions,
27
- } = param;
28
-
29
- const selectionApi = getSelectionApi({
30
- dataSourceActions,
31
- getDataSourceState,
32
- });
33
- const imperativeApi: InfiniteTableApi<T> = {
34
- get selectionApi() {
35
- return selectionApi;
36
- },
37
-
38
- setColumnOrder: (columnOrder: InfiniteTablePropColumnOrder) => {
39
- componentActions.columnOrder = columnOrder;
40
- },
41
-
42
- collapseGroupRow(groupKeys: any[]) {
43
- const state = getDataSourceState();
44
- if (state.groupRowsState.isGroupRowExpanded(groupKeys)) {
45
- this.toggleGroupRow(groupKeys);
46
- return true;
47
- }
48
- return false;
49
- },
50
-
51
- expandGroupRow(groupKeys: any[]) {
52
- const state = getDataSourceState();
53
- if (state.groupRowsState.isGroupRowCollapsed(groupKeys)) {
54
- this.toggleGroupRow(groupKeys);
55
- return true;
56
- }
57
- return false;
58
- },
59
-
60
- toggleGroupRow(groupKeys: any[]) {
61
- const state = getDataSourceState();
62
- const newState = new GroupRowsState(state.groupRowsState);
63
- newState.toggleGroupRow(groupKeys);
64
-
65
- dataSourceActions.groupRowsState = newState;
66
- if (state.lazyLoad) {
67
- const dataKeys = [LAZY_ROOT_KEY_FOR_GROUPS, ...groupKeys];
68
- const currentData = state.originalLazyGroupData.get(dataKeys);
69
-
70
- if (newState.isGroupRowExpanded(groupKeys)) {
71
- if (!currentData?.cache) {
72
- loadData(state.data, state, dataSourceActions, {
73
- groupKeys,
74
- });
75
- }
76
- } else {
77
- if (!currentData?.cache) {
78
- const keysToDelete =
79
- state.lazyLoadCacheOfLoadedBatches.getKeysStartingWith(groupKeys);
80
- keysToDelete.forEach((keys) => {
81
- state.lazyLoadCacheOfLoadedBatches.delete(keys);
82
- });
83
-
84
- dataSourceActions.lazyLoadCacheOfLoadedBatches = DeepMap.clone(
85
- state.lazyLoadCacheOfLoadedBatches,
86
- );
87
-
88
- state.originalLazyGroupData.delete(dataKeys);
89
-
90
- dataSourceActions.originalLazyGroupDataChangeDetect =
91
- getChangeDetect();
92
- }
93
- }
94
- }
95
- },
96
-
97
- setSortingForColumn(columnId: string, dir: SortDir | null) {
98
- const col = getComputed().computedColumnsMap.get(columnId);
99
-
100
- if (!col) {
101
- return;
102
- }
103
-
104
- if (dir === null) {
105
- this.setSortInfoForColumn(columnId, null);
106
- return;
107
- }
108
-
109
- const sortInfo: DataSourceSingleSortInfo<T> = {
110
- dir,
111
- };
112
-
113
- const field = (col.groupByField ? col.groupByField : col.field) as
114
- | keyof T
115
- | (keyof T)[];
116
-
117
- if (field) {
118
- sortInfo.field = field;
119
- }
120
- if (col.computedSortType) {
121
- sortInfo.type = col.computedSortType;
122
- }
123
-
124
- if (col.valueGetter) {
125
- sortInfo.valueGetter = (data) =>
126
- col.valueGetter!({ data, field: col.field });
127
- }
128
-
129
- this.setSortInfoForColumn(columnId, sortInfo);
130
- },
131
-
132
- setPinningForColumn(
133
- columnId: string,
134
- pinning: InfiniteTableColumnPinnedValues,
135
- ) {
136
- const columnPinning = { ...getState().columnPinning };
137
-
138
- if (pinning === false) {
139
- delete columnPinning[columnId];
140
- } else {
141
- columnPinning[columnId] = pinning;
142
- }
143
-
144
- componentActions.columnPinning = columnPinning;
145
- },
146
-
147
- setSortInfoForColumn(
148
- columnId: string,
149
- columnSortInfo: DataSourceSingleSortInfo<T> | null,
150
- ) {
151
- const dataSourceState = getDataSourceState();
152
- const col = getComputed().computedColumnsMap.get(columnId);
153
-
154
- if (!col) {
155
- return;
156
- }
157
-
158
- if (!dataSourceState.multiSort) {
159
- dataSourceActions.sortInfo = columnSortInfo ? [columnSortInfo] : null;
160
- return;
161
- }
162
-
163
- const colField = col.field;
164
-
165
- let newSortInfo = dataSourceState.sortInfo?.slice() ?? [];
166
-
167
- if (columnSortInfo === null) {
168
- // we need to filter out any existing sortInfo for this column
169
- newSortInfo = newSortInfo.filter((sortInfo) => {
170
- if (sortInfo.id) {
171
- if (sortInfo.id === columnId) {
172
- return false;
173
- }
174
- return true;
175
- }
176
- if (sortInfo.field) {
177
- if (sortInfo.field === colField) {
178
- return false;
179
- }
180
- return true;
181
- }
182
-
183
- return true;
184
- });
185
- dataSourceActions.sortInfo = newSortInfo.length ? newSortInfo : null;
186
- return;
187
- }
188
-
189
- newSortInfo = newSortInfo.map((sortInfo) => {
190
- if (sortInfo.id) {
191
- if (sortInfo.id === columnId) {
192
- return columnSortInfo;
193
- }
194
- return sortInfo;
195
- }
196
- if (sortInfo.field) {
197
- if (sortInfo.field === colField) {
198
- return columnSortInfo;
199
- }
200
- return sortInfo;
201
- }
202
-
203
- return sortInfo;
204
- });
205
- dataSourceActions.sortInfo = newSortInfo.length ? newSortInfo : null;
206
- },
207
-
208
- setVisibilityForColumn(columnId: string, visible: boolean) {
209
- const columnVisibility = {
210
- ...getState().columnVisibility,
211
- };
212
-
213
- if (visible) {
214
- delete columnVisibility[columnId];
215
- } else {
216
- columnVisibility[columnId] = false;
217
- }
218
- componentActions.columnVisibility = columnVisibility;
219
- },
220
-
221
- getVisibleColumnsCount() {
222
- return getComputed().computedVisibleColumns.length;
223
- },
224
-
225
- setColumnVisibility(columnVisibility: InfiniteTablePropColumnVisibility) {
226
- componentActions.columnVisibility = columnVisibility;
227
- },
228
- getState,
229
- getDataSourceState,
230
- get scrollLeft() {
231
- const state = getState();
232
- return state.brain.getScrollPosition().scrollLeft;
233
- },
234
- set scrollLeft(scrollLeft: number) {
235
- const state = getState();
236
- state.scrollerDOMRef.current!.scrollLeft = Math.max(scrollLeft, 0);
237
- },
238
-
239
- get scrollTop() {
240
- const state = getState();
241
- return state.brain.getScrollPosition().scrollTop;
242
- },
243
- set scrollTop(scrollTop: number) {
244
- const state = getState();
245
- state.scrollerDOMRef.current!.scrollTop = Math.max(scrollTop, 0);
246
- },
247
- scrollRowIntoView(
248
- rowIndex: number,
249
- config: {
250
- scrollAdjustPosition?: ScrollAdjustPosition;
251
- offset?: number;
252
- } = { offset: 0 },
253
- ) {
254
- const state = getState();
255
-
256
- const scrollPosition =
257
- state.renderer.getScrollPositionForScrollRowIntoView(rowIndex, config);
258
-
259
- if (!scrollPosition) {
260
- return false;
261
- }
262
- const currentScrollPosition = state.brain.getScrollPosition();
263
-
264
- const scrollTopMax = state.brain.scrollTopMax;
265
-
266
- if (scrollPosition.scrollTop > scrollTopMax + (config.offset || 0)) {
267
- return false;
268
- }
269
-
270
- if (scrollPosition.scrollTop !== currentScrollPosition.scrollTop) {
271
- state.scrollerDOMRef.current!.scrollTop = scrollPosition.scrollTop;
272
- }
273
- return true;
274
- },
275
- scrollColumnIntoView(
276
- colId: string,
277
- config: {
278
- scrollAdjustPosition?: ScrollAdjustPosition;
279
- offset?: number;
280
- } = { offset: 0 },
281
- ) {
282
- const state = getState();
283
- const computed = getComputed();
284
-
285
- const computedColumn = computed.computedVisibleColumnsMap.get(colId);
286
-
287
- if (!computedColumn) {
288
- return false;
289
- }
290
- const colIndex = computedColumn.computedVisibleIndex;
291
-
292
- const scrollPosition =
293
- state.renderer.getScrollPositionForScrollColumnIntoView(
294
- colIndex,
295
- config,
296
- );
297
-
298
- if (!scrollPosition) {
299
- return false;
300
- }
301
-
302
- const currentScrollPosition = state.brain.getScrollPosition();
303
-
304
- const scrollLeftMax = state.brain.scrollLeftMax;
305
- if (scrollPosition.scrollLeft > scrollLeftMax + (config.offset || 0)) {
306
- return false;
307
- }
308
-
309
- if (scrollPosition.scrollLeft !== currentScrollPosition.scrollLeft) {
310
- state.scrollerDOMRef.current!.scrollLeft = scrollPosition.scrollLeft;
311
- }
312
-
313
- return true;
314
- },
315
-
316
- scrollCellIntoView(
317
- rowIndex: number,
318
- colIdOrIndex: string | number,
319
- config: {
320
- scrollAdjustPosition?: ScrollAdjustPosition;
321
- offset?: number;
322
- } = { offset: 0 },
323
- ) {
324
- const state = getState();
325
- const computed = getComputed();
326
-
327
- let colIndex = colIdOrIndex as number;
328
- if (typeof colIdOrIndex === 'string') {
329
- const computedColumn =
330
- computed.computedVisibleColumnsMap.get(colIdOrIndex);
331
-
332
- if (!computedColumn) {
333
- return false;
334
- }
335
- colIndex = computedColumn.computedVisibleIndex;
336
- }
337
-
338
- const scrollPositionForCol =
339
- state.renderer.getScrollPositionForScrollColumnIntoView(
340
- colIndex,
341
- config,
342
- );
343
- const scrollPositionForRow =
344
- state.renderer.getScrollPositionForScrollRowIntoView(rowIndex, config);
345
-
346
- if (!scrollPositionForCol || !scrollPositionForRow) {
347
- return false;
348
- }
349
-
350
- const newScrollPosition = {
351
- scrollLeft: scrollPositionForCol.scrollLeft,
352
- scrollTop: scrollPositionForRow.scrollTop,
353
- };
354
-
355
- const currentScrollPosition = state.brain.getScrollPosition();
356
-
357
- const scrollLeftMax = state.brain.scrollLeftMax;
358
- const scrollTopMax = state.brain.scrollTopMax;
359
-
360
- const cantScrollLeft =
361
- newScrollPosition.scrollLeft > scrollLeftMax + (config.offset || 0);
362
- const cantScrollTop =
363
- newScrollPosition.scrollTop > scrollTopMax + (config.offset || 0);
364
-
365
- if (cantScrollLeft && cantScrollTop) {
366
- return false;
367
- }
368
-
369
- if (
370
- newScrollPosition.scrollLeft !== currentScrollPosition.scrollLeft &&
371
- !cantScrollLeft
372
- ) {
373
- state.scrollerDOMRef.current!.scrollLeft = newScrollPosition.scrollLeft;
374
- }
375
- if (
376
- newScrollPosition.scrollTop !== currentScrollPosition.scrollTop &&
377
- !cantScrollTop
378
- ) {
379
- state.scrollerDOMRef.current!.scrollTop = newScrollPosition.scrollTop;
380
- }
381
-
382
- return true;
383
- },
384
- };
385
-
386
- if (__DEV__) {
387
- (globalThis as any).imperativeApi = imperativeApi;
388
- }
389
-
390
- return imperativeApi;
391
- }