@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,457 +0,0 @@
1
- import * as React from 'react';
2
- import { useCallback, useContext, useMemo } from 'react';
3
-
4
- import { join } from '../../../../utils/join';
5
- import { stripVar } from '../../../../utils/stripVar';
6
- import { useDataSourceContextValue } from '../../../DataSource/publicHooks/useDataSource';
7
-
8
- import { useCellClassName } from '../../hooks/useCellClassName';
9
- import { useInfiniteTable } from '../../hooks/useInfiniteTable';
10
- import { internalProps } from '../../internalProps';
11
- import { InternalVars } from '../../theme.css';
12
-
13
- import type {
14
- InfiniteTableColumnRenderParam,
15
- InfiniteTableColumnCellContextType,
16
- InfiniteTableColumnRenderFunction,
17
- InfiniteTableColumnClassName,
18
- InfiniteTableColumnStyleFnParams,
19
- InfiniteTableColumnStyle,
20
- } from '../../types/InfiniteTableColumn';
21
- import { InfiniteTableRowStyleFnParams } from '../../types/InfiniteTableProps';
22
- import { styleForGroupColumn } from '../../utils/getColumnForGroupBy';
23
- import { objectValuesExcept } from '../../utils/objectValuesExcept';
24
- import { RenderCellHookComponent } from '../../utils/RenderHookComponentForInfinite';
25
- import { ColumnCellRecipe, SelectionCheckboxCls } from '../cell.css';
26
- import { InfiniteCheckBox } from '../CheckBox';
27
- import {
28
- getColumnRenderingParams,
29
- InfiniteTableColumnRenderingContext,
30
- } from './columnRendering';
31
-
32
- import {
33
- InfiniteTableCell,
34
- InfiniteTableCellClassName,
35
- } from './InfiniteTableCell';
36
- import {
37
- InfiniteTableCellProps,
38
- InfiniteTableColumnCellProps,
39
- } from './InfiniteTableCellTypes';
40
-
41
- const { rootClassName } = internalProps;
42
-
43
- const columnZIndexAtIndex = stripVar(InternalVars.columnZIndexAtIndex);
44
-
45
- export const InfiniteTableColumnCellContext = React.createContext<
46
- InfiniteTableColumnCellContextType<any>
47
- >(null as any as InfiniteTableColumnCellContextType<any>);
48
-
49
- export const InfiniteTableColumnCellClassName = `${rootClassName}ColumnCell`;
50
-
51
- export const defaultRenderSelectionCheckBox: InfiniteTableColumnRenderFunction<
52
- any
53
- > = (params) => {
54
- const {
55
- rowInfo,
56
- selectCurrentRow,
57
- deselectCurrentRow,
58
- toggleCurrentGroupRowSelection,
59
- column,
60
- } = params;
61
-
62
- if (rowInfo.isGroupRow && !column.groupByField) {
63
- return null;
64
- }
65
-
66
- return (
67
- <InfiniteCheckBox
68
- domProps={{
69
- className: SelectionCheckboxCls,
70
- }}
71
- onChange={(selected) => {
72
- if (rowInfo.isGroupRow) {
73
- toggleCurrentGroupRowSelection();
74
- return;
75
- }
76
-
77
- if (selected) {
78
- selectCurrentRow();
79
- } else {
80
- deselectCurrentRow();
81
- }
82
- }}
83
- checked={rowInfo.rowSelected}
84
- />
85
- );
86
- };
87
-
88
- function applyColumnClassName<T>(
89
- columnClassName: InfiniteTableColumnClassName<T>,
90
- param: InfiniteTableColumnStyleFnParams<T>,
91
- ) {
92
- const colClassName: undefined | string = columnClassName
93
- ? typeof columnClassName === 'function'
94
- ? columnClassName(param)
95
- : columnClassName
96
- : undefined;
97
-
98
- return colClassName;
99
- }
100
-
101
- function applyColumnStyle<T>(
102
- existingStyle: React.CSSProperties | undefined,
103
- columnStyle: InfiniteTableColumnStyle<T>,
104
- param: InfiniteTableColumnStyleFnParams<T>,
105
- ) {
106
- return typeof columnStyle === 'function'
107
- ? { ...existingStyle, ...columnStyle(param) }
108
- : { ...existingStyle, ...columnStyle };
109
- }
110
-
111
- function InfiniteTableColumnCellFn<T>(props: InfiniteTableColumnCellProps<T>) {
112
- const {
113
- rowInfo,
114
- rowStyle,
115
- rowClassName,
116
-
117
- // getData,
118
- width,
119
- column,
120
- onMouseLeave,
121
- onMouseEnter,
122
-
123
- // toggleGroupRow,
124
- rowIndex,
125
- rowHeight,
126
- columnsMap,
127
-
128
- fieldsToColumn,
129
-
130
- domRef,
131
- hidden,
132
- showZebraRows,
133
- } = props;
134
-
135
- if (!column) {
136
- return <div ref={domRef}>no column</div>;
137
- }
138
-
139
- const { rowSelected } = rowInfo;
140
-
141
- const { getState, componentActions, imperativeApi } = useInfiniteTable<T>();
142
- const { componentState: dataSourceState, getState: getDataSourceState } =
143
- useDataSourceContextValue<T>();
144
-
145
- const { activeRowIndex, keyboardNavigation } = getState();
146
- const rowActive = rowIndex === activeRowIndex && keyboardNavigation === 'row';
147
-
148
- const renderingContext: InfiniteTableColumnRenderingContext<T> = {
149
- getState,
150
- getDataSourceState,
151
- actions: componentActions,
152
- api: imperativeApi,
153
- };
154
-
155
- const {
156
- stylingParam,
157
- renderParams,
158
- formattedValueContext,
159
- renderFunctions,
160
- groupByColumn,
161
- } = getColumnRenderingParams({
162
- column,
163
- rowInfo,
164
- columnsMap,
165
- fieldsToColumn,
166
- context: renderingContext,
167
- });
168
-
169
- const renderParam = renderParams as InfiniteTableColumnRenderParam<T>;
170
- const renderParamRef =
171
- React.useRef<InfiniteTableColumnRenderParam<T>>(renderParam);
172
-
173
- const onClick = useCallback(
174
- (event: React.MouseEvent) => {
175
- const colIndex = column.computedVisibleIndex;
176
-
177
- getState().cellClick({
178
- rowIndex,
179
- colIndex,
180
- event,
181
- });
182
- },
183
- [rowIndex, column.computedVisibleIndex, keyboardNavigation],
184
- );
185
-
186
- const onMouseDown = useCallback(
187
- (event: React.MouseEvent) => {
188
- const colIndex = column.computedVisibleIndex;
189
-
190
- getState().cellMouseDown({
191
- rowIndex,
192
- colIndex,
193
- event,
194
- });
195
-
196
- if (keyboardNavigation === 'row') {
197
- componentActions.activeRowIndex = rowIndex;
198
- return;
199
- }
200
- if (keyboardNavigation === 'cell') {
201
- componentActions.activeCellIndex = [rowIndex, colIndex];
202
- }
203
- },
204
- [rowIndex, column.computedVisibleIndex, keyboardNavigation],
205
- );
206
-
207
- const { selectionMode } = dataSourceState;
208
-
209
- renderParam.domRef = domRef;
210
-
211
- renderParam.selectCurrentRow = useCallback(renderParam.selectCurrentRow, [
212
- rowInfo,
213
- ]);
214
- renderParam.deselectCurrentRow = useCallback(renderParam.deselectCurrentRow, [
215
- rowInfo,
216
- ]);
217
- renderParam.toggleCurrentGroupRow = useCallback(
218
- renderParam.toggleCurrentGroupRow,
219
- [rowInfo],
220
- );
221
- renderParam.toggleCurrentRowSelection = useCallback(
222
- renderParam.toggleCurrentRowSelection,
223
- [rowInfo],
224
- );
225
- renderParam.toggleCurrentGroupRowSelection = useCallback(
226
- renderParam.toggleCurrentGroupRowSelection,
227
- [rowInfo],
228
- );
229
-
230
- const renderChildren = useCallback(() => {
231
- if (hidden) {
232
- return null;
233
- }
234
-
235
- if (renderFunctions.renderGroupIcon) {
236
- renderParam.renderBag.groupIcon = (
237
- <RenderCellHookComponent
238
- render={renderFunctions.renderGroupIcon}
239
- renderParam={{
240
- ...renderParam,
241
- renderBag: { ...renderParam.renderBag },
242
- }}
243
- />
244
- );
245
- }
246
- if (
247
- renderFunctions.renderSelectionCheckBox &&
248
- selectionMode == 'multi-row'
249
- ) {
250
- // make selectionCheckBox available in the render bag
251
- // when we have column.renderSelectionCheckBox defined as a function
252
- // as people might want to use the default value
253
- // and enhance it
254
- renderParam.renderBag.selectionCheckBox = (
255
- <RenderCellHookComponent
256
- render={defaultRenderSelectionCheckBox}
257
- renderParam={renderParam}
258
- />
259
- );
260
-
261
- if (renderFunctions.renderSelectionCheckBox !== true) {
262
- renderParam.renderBag.selectionCheckBox = (
263
- <RenderCellHookComponent
264
- render={renderFunctions.renderSelectionCheckBox}
265
- renderParam={{
266
- ...renderParam,
267
- renderBag: { ...renderParam.renderBag },
268
- }}
269
- />
270
- );
271
- }
272
- }
273
-
274
- if (renderFunctions.renderValue) {
275
- renderParam.renderBag.value = (
276
- <RenderCellHookComponent
277
- render={renderFunctions.renderValue}
278
- renderParam={{
279
- ...renderParam,
280
- renderBag: { ...renderParam.renderBag },
281
- }}
282
- />
283
- );
284
- }
285
-
286
- if (rowInfo.isGroupRow && renderFunctions.renderGroupValue) {
287
- renderParam.renderBag.value = (
288
- <RenderCellHookComponent
289
- render={renderFunctions.renderGroupValue}
290
- renderParam={{
291
- ...renderParam,
292
- renderBag: { ...renderParam.renderBag },
293
- }}
294
- />
295
- );
296
- }
297
- if (!rowInfo.isGroupRow && renderFunctions.renderLeafValue) {
298
- renderParam.renderBag.value = (
299
- <RenderCellHookComponent
300
- render={renderFunctions.renderLeafValue}
301
- renderParam={{
302
- ...renderParam,
303
- renderBag: { ...renderParam.renderBag },
304
- }}
305
- />
306
- );
307
- }
308
-
309
- renderParamRef.current = renderParam;
310
-
311
- if (column.render) {
312
- return (
313
- <RenderCellHookComponent
314
- render={column.render}
315
- renderParam={renderParam}
316
- />
317
- );
318
- }
319
-
320
- return (
321
- <>
322
- {column.align !== 'end' ? renderParam.renderBag.groupIcon : null}
323
- {column.align !== 'end'
324
- ? renderParam.renderBag.selectionCheckBox
325
- : null}
326
- {renderParam.renderBag.value}
327
-
328
- {column.align === 'end'
329
- ? renderParam.renderBag.selectionCheckBox
330
- : null}
331
- {column.align === 'end' ? renderParam.renderBag.groupIcon : null}
332
- </>
333
- );
334
- }, [
335
- column,
336
- hidden,
337
- ...objectValuesExcept(renderParam, {
338
- renderBag: true,
339
- }),
340
- ]);
341
-
342
- const rowPropsAndStyleArgs: InfiniteTableRowStyleFnParams<T> = {
343
- ...formattedValueContext,
344
- rowIndex,
345
- };
346
-
347
- const rowComputedClassName =
348
- typeof rowClassName === 'function'
349
- ? rowClassName(rowPropsAndStyleArgs)
350
- : rowClassName;
351
-
352
- let colClassName: string | undefined = undefined;
353
-
354
- if (groupByColumn?.className) {
355
- colClassName = applyColumnClassName(groupByColumn.className, stylingParam);
356
- }
357
- if (column.className) {
358
- colClassName = join(
359
- colClassName,
360
- applyColumnClassName(column.className, stylingParam),
361
- );
362
- }
363
-
364
- let style: React.CSSProperties | undefined;
365
-
366
- if (rowInfo.dataSourceHasGrouping && column.groupByField) {
367
- style = styleForGroupColumn({ rowInfo });
368
- }
369
-
370
- if (rowStyle) {
371
- style =
372
- typeof rowStyle === 'function'
373
- ? { ...style, ...rowStyle(rowPropsAndStyleArgs) }
374
- : { ...style, ...rowStyle };
375
- }
376
-
377
- if (groupByColumn?.style) {
378
- style = applyColumnStyle(style, groupByColumn.style, stylingParam);
379
- }
380
- if (column.style) {
381
- style = applyColumnStyle(style, column.style, stylingParam);
382
- }
383
- style = style || {};
384
-
385
- style.height = rowHeight;
386
- style.zIndex = `var(${columnZIndexAtIndex}-${column.computedVisibleIndex})`;
387
-
388
- const memoizedStyle = useMemo(
389
- () => style,
390
- [!style ? null : JSON.stringify(style)],
391
- );
392
-
393
- const odd =
394
- (rowInfo.indexInAll != null ? rowInfo.indexInAll : rowIndex) % 2 === 1;
395
-
396
- const zebra = showZebraRows ? (odd ? 'odd' : 'even') : false;
397
-
398
- const cellProps: InfiniteTableCellProps<T> &
399
- React.HTMLAttributes<HTMLElement> = {
400
- domRef,
401
- cellType: 'body',
402
- column,
403
- width,
404
- rowId: rowInfo.id,
405
-
406
- style: memoizedStyle,
407
- onMouseLeave,
408
- onMouseEnter,
409
- onClick,
410
- onMouseDown,
411
- cssEllipsis: column.cssEllipsis ?? true,
412
- className: join(
413
- useCellClassName(
414
- column,
415
- [InfiniteTableColumnCellClassName, InfiniteTableCellClassName],
416
- ColumnCellRecipe,
417
- {
418
- dragging: false,
419
- zebra,
420
- rowActive,
421
- rowSelected,
422
- groupRow: rowInfo.isGroupRow,
423
- rowExpanded: rowInfo.isGroupRow ? !rowInfo.collapsed : false,
424
- },
425
- ),
426
- colClassName,
427
- rowComputedClassName,
428
- ),
429
- renderChildren,
430
- };
431
-
432
- const ContextProvider =
433
- InfiniteTableColumnCellContext.Provider as React.Provider<
434
- InfiniteTableColumnCellContextType<T>
435
- >;
436
- return (
437
- // this context is here for supporting useInfiniteColumnCell to be used
438
- // with a custom column component, specified via column.components.ColumnCell
439
- <ContextProvider
440
- value={renderParamRef.current as InfiniteTableColumnCellContextType<T>}
441
- >
442
- <InfiniteTableCell<T> {...cellProps}></InfiniteTableCell>
443
- </ContextProvider>
444
- );
445
- }
446
-
447
- export const InfiniteTableColumnCell = React.memo(
448
- InfiniteTableColumnCellFn,
449
- ) as typeof InfiniteTableColumnCellFn;
450
-
451
- export function useInfiniteColumnCell<T>() {
452
- const result = useContext(
453
- InfiniteTableColumnCellContext,
454
- ) as InfiniteTableColumnCellContextType<T>;
455
-
456
- return result;
457
- }
@@ -1,107 +0,0 @@
1
- //@ts-nocheck - this file is not being used
2
- import * as React from 'react';
3
- import { useRef } from 'react';
4
-
5
- import { useInfiniteTable } from '../../hooks/useInfiniteTable';
6
- import { InfiniteTableColumnCell } from './InfiniteTableColumnCell';
7
-
8
- import { useRowDOMProps } from './useRowDOMProps';
9
-
10
- import { InfiniteTableRowClassName } from './InfiniteTableRowClassName';
11
-
12
- import type { InfiniteTableRowProps } from './InfiniteTableRowTypes';
13
- import { RawList } from '../../../RawList';
14
- import { RenderItem } from '../../../RawList/types';
15
-
16
- function InfiniteTableRowFn<T>(
17
- props: InfiniteTableRowProps<T> & React.HTMLAttributes<HTMLDivElement>,
18
- ) {
19
- const {
20
- rowWidth,
21
- rowHeight,
22
- getData,
23
- rowInfo,
24
- toggleGroupRow,
25
- rowIndex,
26
- //TODO continue here?? receive columnWidth from props
27
- brain,
28
- columns,
29
- } = props;
30
- const tableContextValue = useInfiniteTable<T>();
31
-
32
- const { componentState } = tableContextValue;
33
- const { domRef: tableDOMRef } = componentState;
34
-
35
- const { groupRenderStrategy } = componentState;
36
-
37
- const { domProps } = useRowDOMProps(
38
- props,
39
- componentState.rowProps,
40
- componentState.rowStyle,
41
- componentState.rowClassName,
42
- groupRenderStrategy,
43
- tableDOMRef,
44
- );
45
-
46
- const style = {
47
- width: rowWidth,
48
- height: rowHeight,
49
- ...domProps.style,
50
- };
51
-
52
- const renderCellRef = useRef<any>(null);
53
-
54
- const renderCell: RenderItem = React.useCallback(
55
- ({ domRef, itemIndex }) => {
56
- const column = columns[itemIndex];
57
-
58
- if (!column) {
59
- // return null;
60
- }
61
- // const parentIndex = verticalBrain.getItemSpanParent(rowIndex);
62
- const hidden = false; //parentIndex < rowIndex;
63
- return (
64
- <InfiniteTableColumnCell<T>
65
- getData={getData}
66
- rowInfo={rowInfo}
67
- groupRenderStrategy={groupRenderStrategy}
68
- virtualized
69
- hidden={hidden}
70
- rowHeight={rowHeight}
71
- toggleGroupRow={toggleGroupRow}
72
- rowIndex={rowIndex}
73
- domRef={domRef}
74
- column={column}
75
- />
76
- );
77
- },
78
- [columns, rowIndex, rowInfo, rowHeight, groupRenderStrategy, getData], // don't add repaintId here since it would make this out-of-sync with the available columns when columnOrder controlled changes
79
- );
80
-
81
- if (renderCellRef.current !== renderCell) {
82
- renderCellRef.current = renderCell;
83
- }
84
- // (renderCell as any)._colscount = columns.length;
85
- // (renderCell as any)._repaintId = repaintId;
86
- // (globalThis as any).renderCell = renderCell;
87
-
88
- if (__DEV__) {
89
- (domProps as any)['data-cmp-name'] = 'ITableRow';
90
- }
91
-
92
- return (
93
- <div {...domProps} style={style}>
94
- <RawList
95
- brain={brain}
96
- renderItem={renderCell}
97
- debugChannel={`${rowIndex}`}
98
- />
99
- </div>
100
- );
101
- }
102
-
103
- export const InfiniteTableRow = React.memo(
104
- InfiniteTableRowFn,
105
- ) as typeof InfiniteTableRowFn;
106
-
107
- export { InfiniteTableRowClassName };
@@ -1,6 +0,0 @@
1
- import { internalProps } from '../../internalProps';
2
-
3
- const { rootClassName } = internalProps;
4
-
5
- export const InfiniteTableRowClassName = `${rootClassName}Row`;
6
- export const InfiniteTableRowClassName__hover = `${rootClassName}Element--hover`;
@@ -1,32 +0,0 @@
1
- import type { ScrollPosition } from '../../../types/ScrollPosition';
2
- import type {
3
- InfiniteTableComputedColumn,
4
- InfiniteTableRowInfo,
5
- } from '../../types';
6
- import { InfiniteTableToggleGroupRowFn } from '../../types/InfiniteTableColumn';
7
- import { MatrixBrain } from '../../../VirtualBrain/MatrixBrain';
8
-
9
- export interface InfiniteTableRowProps<T> {
10
- rowHeight: number;
11
- rowWidth: number;
12
- rowIndex: number;
13
- brain: MatrixBrain;
14
-
15
- domRef: React.RefCallback<HTMLElement>;
16
- rowInfo: InfiniteTableRowInfo<T>;
17
- getData: () => InfiniteTableRowInfo<T>[];
18
- toggleGroupRow: InfiniteTableToggleGroupRowFn;
19
- repaintId?: number | string;
20
- // rowSpan?: VirtualBrainOptions['itemSpan'];
21
-
22
- virtualizeColumns: boolean;
23
- showZebraRows?: boolean;
24
- showHoverRows?: boolean;
25
-
26
- columns: InfiniteTableComputedColumn<T>[];
27
-
28
- domProps?: React.HTMLAttributes<HTMLDivElement>;
29
- }
30
- export type InfiniteTableRowApi = {
31
- setScrollPosition: (scrollPosition: ScrollPosition) => void;
32
- };
@@ -1,75 +0,0 @@
1
- //@ts-nocheck - this file is not being used
2
- import * as React from 'react';
3
-
4
- import type { InfiniteTableRowProps } from './InfiniteTableRowTypes';
5
-
6
- import { InfiniteTableColumnCell } from './InfiniteTableColumnCell';
7
- import { VirtualBrain } from '../../../VirtualBrain';
8
- import { useRowDOMProps } from './useRowDOMProps';
9
- import { useInfiniteTable } from '../../hooks/useInfiniteTable';
10
-
11
- function TableRowUnvirtualizedFn<T>(
12
- props: InfiniteTableRowProps<T> & {
13
- brain: VirtualBrain | null | undefined;
14
- verticalBrain: VirtualBrain;
15
- },
16
- ) {
17
- const {
18
- rowHeight,
19
- rowWidth,
20
- getData,
21
- rowInfo,
22
- rowIndex,
23
- columns,
24
- toggleGroupRow,
25
- } = props;
26
-
27
- const tableContextValue = useInfiniteTable<T>();
28
-
29
- const { componentState } = tableContextValue;
30
- const { domRef: tableDOMRef } = componentState;
31
- const { domProps } = useRowDOMProps(
32
- props,
33
- componentState.rowProps,
34
- componentState.rowStyle,
35
- componentState.rowClassName,
36
- componentState.groupRenderStrategy,
37
- tableDOMRef,
38
- );
39
-
40
- const style = {
41
- width: rowWidth,
42
- height: rowHeight,
43
- ...domProps.style,
44
- };
45
-
46
- const children = columns.map((col) => {
47
- // const parentIndex = verticalBrain.getItemSpanParent(rowIndex);
48
- const hidden = false; //parentIndex < rowIndex;
49
- return (
50
- <InfiniteTableColumnCell<T>
51
- key={col.id}
52
- virtualized={false}
53
- rowHeight={rowHeight}
54
- getData={getData}
55
- hidden={hidden}
56
- groupRenderStrategy={componentState.groupRenderStrategy}
57
- toggleGroupRow={toggleGroupRow}
58
- rowInfo={rowInfo}
59
- rowIndex={rowIndex}
60
- column={col}
61
- />
62
- );
63
- });
64
-
65
- return (
66
- <div {...domProps} style={style}>
67
- {children}
68
- </div>
69
- );
70
- }
71
-
72
- export const TableRowUnvirtualized = React.memo(
73
- TableRowUnvirtualizedFn,
74
- ) as typeof TableRowUnvirtualizedFn;
75
- // export const TableRow = TableRowUnvirtualizedFn;