@infinite-table/infinite-react 0.5.1 → 0.5.3

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 +3 -95
  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,234 +0,0 @@
1
- import * as React from 'react';
2
- import {
3
- MutableRefObject,
4
- RefObject,
5
- useCallback,
6
- useEffect,
7
- useRef,
8
- useState,
9
- } from 'react';
10
-
11
- import { setupResizeObserver } from '../ResizeObserver';
12
-
13
- import type { ScrollPosition } from '../types/ScrollPosition';
14
- import type { Size } from '../types/Size';
15
- import type {
16
- ReactHeadlessTableRenderer,
17
- TableRenderCellFn,
18
- } from './ReactHeadlessTableRenderer';
19
-
20
- import { MatrixBrain, MatrixBrainOptions } from '../VirtualBrain/MatrixBrain';
21
- import { SpacePlaceholder } from '../VirtualList/SpacePlaceholder';
22
- import { scrollTransformTargetCls } from '../VirtualList/VirtualList.css';
23
- import { VirtualScrollContainer } from '../VirtualScrollContainer';
24
- import { RawTable } from './RawTable';
25
- import { SubscriptionCallback } from '../types/SubscriptionCallback';
26
- import { Renderable } from '../types/Renderable';
27
- import { ActiveRowIndicator } from '../InfiniteTable/components/ActiveRowIndicator';
28
- import { ActiveCellIndicator } from '../InfiniteTable/components/ActiveCellIndicator';
29
-
30
- export type HeadlessTableProps = {
31
- scrollerDOMRef?: MutableRefObject<HTMLElement | null>;
32
- brain: MatrixBrain;
33
- renderCell: TableRenderCellFn;
34
- activeRowIndex?: number | null;
35
- activeCellIndex?: [number, number] | null;
36
- scrollStopDelay?: number;
37
- cellHoverClassNames?: string[];
38
- renderer?: ReactHeadlessTableRenderer;
39
- onRenderUpdater?: SubscriptionCallback<Renderable>;
40
- };
41
-
42
- export function useMatrixBrainLazy(
43
- brain: MatrixBrain,
44
- brainOptions: Partial<MatrixBrainOptions>,
45
- fixedCellsInfo: {
46
- fixedColsStart?: number;
47
- fixedColsEnd?: number;
48
- fixedRowsStart?: number;
49
- fixedRowsEnd?: number;
50
- },
51
- ) {
52
- useEffect(() => {
53
- brain.updateFixedCells({
54
- fixedColsStart: fixedCellsInfo.fixedColsStart,
55
- fixedColsEnd: fixedCellsInfo.fixedColsEnd,
56
- fixedRowsStart: fixedCellsInfo.fixedRowsStart,
57
- fixedRowsEnd: fixedCellsInfo.fixedRowsEnd,
58
- });
59
- }, [
60
- fixedCellsInfo.fixedColsStart,
61
- fixedCellsInfo.fixedColsEnd,
62
- fixedCellsInfo.fixedRowsStart,
63
- fixedCellsInfo.fixedRowsEnd,
64
- brain,
65
- ]);
66
-
67
- useEffect(() => {
68
- brain.update({
69
- height: brainOptions.height,
70
- width: brainOptions.width,
71
-
72
- cols: brainOptions.cols,
73
- rows: brainOptions.rows,
74
-
75
- colWidth: brainOptions.colWidth,
76
- rowHeight: brainOptions.rowHeight,
77
-
78
- rowspan: brainOptions.rowspan,
79
- colspan: brainOptions.colspan,
80
- });
81
- }, [
82
- brainOptions.height,
83
- brainOptions.width,
84
-
85
- brainOptions.cols,
86
- brainOptions.rows,
87
-
88
- brainOptions.colspan,
89
- brainOptions.rowspan,
90
-
91
- brainOptions.colWidth,
92
- brainOptions.rowHeight,
93
-
94
- brain,
95
- ]);
96
- }
97
-
98
- export function useMatrixBrain(
99
- brain: MatrixBrain,
100
- brainOptions: Partial<MatrixBrainOptions>,
101
- fixedCellsInfo?: {
102
- fixedColsStart?: number;
103
- fixedColsEnd?: number;
104
- fixedRowsStart?: number;
105
- fixedRowsEnd?: number;
106
- },
107
- ) {
108
- if (
109
- fixedCellsInfo &&
110
- (fixedCellsInfo.fixedColsStart ||
111
- fixedCellsInfo.fixedColsEnd ||
112
- fixedCellsInfo.fixedRowsStart ||
113
- fixedCellsInfo.fixedRowsEnd)
114
- ) {
115
- brain.updateFixedCells({
116
- fixedColsStart: fixedCellsInfo.fixedColsStart,
117
- fixedColsEnd: fixedCellsInfo.fixedColsEnd,
118
- fixedRowsStart: fixedCellsInfo.fixedRowsStart,
119
- fixedRowsEnd: fixedCellsInfo.fixedRowsEnd,
120
- });
121
- }
122
-
123
- brain.update({
124
- height: brainOptions.height,
125
- width: brainOptions.width,
126
-
127
- cols: brainOptions.cols,
128
- rows: brainOptions.rows,
129
-
130
- colWidth: brainOptions.colWidth,
131
- rowHeight: brainOptions.rowHeight,
132
-
133
- rowspan: brainOptions.rowspan,
134
- colspan: brainOptions.colspan,
135
- });
136
- }
137
- export function HeadlessTable(
138
- props: HeadlessTableProps & React.HTMLProps<HTMLDivElement>,
139
- ) {
140
- const {
141
- brain,
142
- scrollerDOMRef,
143
- scrollStopDelay,
144
- renderCell,
145
- cellHoverClassNames,
146
- renderer,
147
- activeRowIndex,
148
- activeCellIndex,
149
- onRenderUpdater,
150
- ...domProps
151
- } = props;
152
-
153
- const domRef = useRef<HTMLDivElement>(null);
154
-
155
- const [scrollSize, setTotalScrollSize] = useState({
156
- width: 0,
157
- height: 0,
158
- });
159
-
160
- useEffect(() => {
161
- if (scrollStopDelay != null) {
162
- brain.setScrollStopDelay(scrollStopDelay);
163
- }
164
- }, [scrollStopDelay, brain]);
165
-
166
- useEffect(() => {
167
- const node = domRef.current?.parentNode as HTMLElement;
168
- if (!node) {
169
- return;
170
- }
171
- const onResize = () => {
172
- // it's not enough to read the size from onResize
173
- // since that doesn't account for scrollbar presence and size
174
- // so we need to read it from the DOM from clientWidth/clientHeight
175
- const size: Size = {
176
- height: node.clientHeight,
177
- width: node.clientWidth,
178
- };
179
-
180
- brain.update(size);
181
- };
182
- const remove = setupResizeObserver(node, onResize, { debounce: 50 });
183
-
184
- return remove;
185
- }, []);
186
-
187
- const onContainerScroll = useCallback(
188
- (scrollPos: ScrollPosition) => {
189
- brain.setScrollPosition(scrollPos, (scrollPos) => {
190
- domRef.current!.style.transform = `translate3d(${-scrollPos.scrollLeft}px, ${-scrollPos.scrollTop}px, 0px)`;
191
- });
192
- },
193
- [brain],
194
- );
195
-
196
- useEffect(() => {
197
- const removeOnRenderCount = brain.onRenderCountChange(() => {
198
- setTotalScrollSize(brain.getTotalSize());
199
- });
200
-
201
- setTotalScrollSize(brain.getTotalSize());
202
-
203
- return removeOnRenderCount;
204
- }, [brain]);
205
-
206
- return (
207
- <VirtualScrollContainer
208
- onContainerScroll={onContainerScroll}
209
- {...domProps}
210
- ref={scrollerDOMRef as RefObject<HTMLDivElement>}
211
- >
212
- <div
213
- ref={domRef}
214
- className={scrollTransformTargetCls}
215
- data-name="scroll-transform-target"
216
- >
217
- <RawTable
218
- renderer={renderer}
219
- onRenderUpdater={onRenderUpdater}
220
- renderCell={renderCell}
221
- brain={brain}
222
- cellHoverClassNames={cellHoverClassNames}
223
- />
224
- <ActiveCellIndicator brain={brain} activeCellIndex={activeCellIndex} />
225
- </div>
226
- <ActiveRowIndicator brain={brain} activeRowIndex={activeRowIndex} />
227
-
228
- <SpacePlaceholder
229
- width={scrollSize.width}
230
- height={scrollSize.height}
231
- ></SpacePlaceholder>
232
- </VirtualScrollContainer>
233
- );
234
- }
@@ -1,164 +0,0 @@
1
- import { fallbackVar, style, styleVariants } from '@vanilla-extract/css';
2
- import { recipe } from '@vanilla-extract/recipes';
3
- import { InternalVars, ThemeVars } from './theme.css';
4
-
5
- import {
6
- boxSizingBorderBox,
7
- cursor,
8
- top,
9
- display,
10
- flexFlow,
11
- pointerEvents,
12
- position,
13
- userSelect,
14
- visibility,
15
- width,
16
- zIndex,
17
- } from './utilities.css';
18
-
19
- export const InfiniteCls = style([
20
- position.relative,
21
- display.flex,
22
- flexFlow.column,
23
- {
24
- outline: 'none',
25
- fontFamily: ThemeVars.fontFamily,
26
- color: ThemeVars.color.color,
27
- background: ThemeVars.background,
28
- minHeight: ThemeVars.minHeight,
29
- },
30
- boxSizingBorderBox,
31
- ]);
32
-
33
- export const InfiniteClsScrolling = style(
34
- {
35
- vars: {
36
- [ThemeVars.components.Row.pointerEventsWhileScrolling]: 'none',
37
- },
38
- },
39
- 'InfiniteClsScrolling',
40
- );
41
-
42
- const activeCellBorderVarsForUnfocusedState = {
43
- // we adjust the alpha opacity for the background
44
- [ThemeVars.components.Cell
45
- .activeBackgroundAlpha]: `${ThemeVars.components.Cell.activeBackgroundAlphaWhenTableUnfocused}`,
46
- [ThemeVars.components.Row.activeBackgroundAlpha]: fallbackVar(
47
- ThemeVars.components.Row.activeBackgroundAlphaWhenTableUnfocused,
48
- ThemeVars.components.Cell.activeBackgroundAlphaWhenTableUnfocused,
49
- ),
50
- };
51
- export const InfiniteClsRecipe = recipe({
52
- variants: {
53
- focused: {
54
- true: {},
55
- false: {},
56
- },
57
- focusedWithin: {
58
- true: {},
59
- false: {},
60
- },
61
- hasPinnedStart: {
62
- true: {},
63
- false: {},
64
- },
65
- hasPinnedEnd: {
66
- true: {},
67
- false: {},
68
- },
69
- hasPinnedStartOverflow: {
70
- true: {},
71
- false: {},
72
- },
73
- hasPinnedEndOverflow: {
74
- true: {},
75
- false: {},
76
- },
77
- },
78
- compoundVariants: [
79
- {
80
- variants: {
81
- focused: false,
82
- focusedWithin: false,
83
- },
84
- style: {
85
- vars: activeCellBorderVarsForUnfocusedState,
86
- },
87
- },
88
- ],
89
- });
90
-
91
- export const PinnedRowsClsVariants = styleVariants({
92
- pinnedStart: {},
93
- pinnedEnd: {},
94
- overflow: {},
95
- });
96
- export const PinnedRowsContainerClsVariants = recipe({
97
- variants: {
98
- pinned: {
99
- start: {
100
- borderRight: [ThemeVars.components.Cell.border],
101
- },
102
- end: {
103
- borderLeft: [ThemeVars.components.Cell.border],
104
- },
105
- false: {},
106
- },
107
- },
108
- });
109
-
110
- export const InfiniteClsShiftingColumns = style(
111
- {
112
- userSelect: 'none',
113
- },
114
- 'shiftingcols',
115
- );
116
-
117
- export const FooterCls = style([position.relative]);
118
-
119
- export const InfiniteClsHasPinnedStart = style({});
120
- export const InfiniteClsHasPinnedEnd = style({});
121
-
122
- export const PinnedIndicatorCls = style([
123
- position.absolute,
124
- top[0],
125
- cursor.colResize,
126
- userSelect.none,
127
- width[0],
128
- visibility.hidden,
129
- pointerEvents['none'],
130
- zIndex[10_000_000],
131
- {
132
- // zIndex: InternalVars.baseZIndexForCells,
133
- transform: `translate3d(-100%, 0px, 0px)`,
134
- borderRight: ThemeVars.components.Cell.pinnedBorder,
135
- bottom: InternalVars.scrollbarWidthHorizontal,
136
- },
137
- ]);
138
- export const PinnedStartIndicatorBorder = style([
139
- PinnedIndicatorCls,
140
- {
141
- left: InternalVars.pinnedStartWidth,
142
-
143
- selectors: {
144
- [`${InfiniteClsHasPinnedStart} &`]: {
145
- visibility: 'visible',
146
- },
147
- },
148
- },
149
- ]);
150
-
151
- export const PinnedEndIndicatorBorder = style([
152
- PinnedIndicatorCls,
153
-
154
- {
155
- // right: `calc( ${InternalVars.pinnedEndWidth} + ${InternalVars.scrollbarWidthVertical})`,
156
- left: `calc( ${InternalVars.pinnedEndOffset} )`,
157
-
158
- selectors: {
159
- [`${InfiniteClsHasPinnedEnd} &`]: {
160
- visibility: 'visible',
161
- },
162
- },
163
- },
164
- ]);
@@ -1,16 +0,0 @@
1
- import { createContext } from 'react';
2
- import { InfiniteTableContextValue } from './types/InfiniteTableContextValue';
3
-
4
- let TableContext: any;
5
-
6
- export function getInfiniteTableContext<T>(): React.Context<
7
- InfiniteTableContextValue<T>
8
- > {
9
- if (TableContext as React.Context<InfiniteTableContextValue<T>>) {
10
- return TableContext;
11
- }
12
-
13
- return (TableContext = createContext<InfiniteTableContextValue<T>>(
14
- null as any as InfiniteTableContextValue<T>,
15
- ));
16
- }