@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,263 +0,0 @@
1
- import { DataSourceState } from '../../../DataSource';
2
- import {
3
- InfiniteTableApi,
4
- InfiniteTableColumn,
5
- InfiniteTableColumnRenderParam,
6
- InfiniteTableComputedColumn,
7
- InfiniteTableRowInfo,
8
- InfiniteTableState,
9
- } from '../../types';
10
- import {
11
- InfiniteTableColumnValueFormatterParams,
12
- InfiniteTableColumnWithField,
13
- } from '../../types/InfiniteTableColumn';
14
- import { InfiniteTableActions } from '../../types/InfiniteTableState';
15
-
16
- function isColumnWithField<T>(
17
- c: InfiniteTableColumn<T>,
18
- ): c is InfiniteTableColumnWithField<T> & InfiniteTableColumn<T> {
19
- return typeof (c as InfiniteTableColumnWithField<T>).field === 'string';
20
- }
21
-
22
- export type InfiniteTableColumnRenderingContext<T> = {
23
- getState: () => InfiniteTableState<T>;
24
- getDataSourceState: () => DataSourceState<T>;
25
- actions: InfiniteTableActions<T>;
26
- api: InfiniteTableApi<T>;
27
- };
28
-
29
- export function getGroupByColumn<T>(options: {
30
- rowInfo: InfiniteTableRowInfo<T>;
31
- column: InfiniteTableComputedColumn<T>;
32
- fieldsToColumn: Map<keyof T, InfiniteTableComputedColumn<T>>;
33
- }) {
34
- const { column, rowInfo, fieldsToColumn } = options;
35
- let groupByColumn: InfiniteTableComputedColumn<T> | undefined = undefined;
36
- if (column.groupByField) {
37
- if (rowInfo.isGroupRow) {
38
- groupByColumn = fieldsToColumn.get(
39
- rowInfo.groupBy[rowInfo.groupBy.length - 1],
40
- );
41
- } else if (column.field) {
42
- groupByColumn = fieldsToColumn.get(column.field);
43
- }
44
- }
45
-
46
- return groupByColumn;
47
- }
48
-
49
- export function getColumnRenderingParams<T>(options: {
50
- column: InfiniteTableComputedColumn<T>;
51
- rowInfo: InfiniteTableRowInfo<T>;
52
- columnsMap: Map<string, InfiniteTableComputedColumn<T>>;
53
- fieldsToColumn: Map<keyof T, InfiniteTableComputedColumn<T>>;
54
- context: InfiniteTableColumnRenderingContext<T>;
55
- }) {
56
- const { column } = options;
57
- const groupByColumn = getGroupByColumn(options);
58
-
59
- const formattedResult = getFormattedValueContextForCell({
60
- ...options,
61
- column: groupByColumn || column,
62
- });
63
- const { formattedValueContext } = formattedResult;
64
-
65
- return {
66
- stylingParam: {
67
- column: options.column,
68
- ...formattedValueContext,
69
- },
70
- formattedValueContext,
71
- renderFunctions: {
72
- renderGroupIcon: column.renderGroupIcon || groupByColumn?.renderGroupIcon,
73
- renderSelectionCheckBox: column.renderSelectionCheckBox,
74
- renderValue: column.renderValue || groupByColumn?.renderValue,
75
- renderGroupValue:
76
- column.renderGroupValue || groupByColumn?.renderGroupValue,
77
- renderLeafValue: column.renderLeafValue || groupByColumn?.renderLeafValue,
78
- },
79
- renderParams: getColumnRenderParam({
80
- ...options,
81
-
82
- formattedValueContext,
83
- }),
84
- groupByColumn,
85
- };
86
- }
87
-
88
- export function getColumnRenderParam<T>(options: {
89
- column: InfiniteTableComputedColumn<T>;
90
- rowInfo: InfiniteTableRowInfo<T>;
91
- formattedValueContext: InfiniteTableColumnValueFormatterParams<T>;
92
- columnsMap: Map<string, InfiniteTableComputedColumn<T>>;
93
- fieldsToColumn: Map<keyof T, InfiniteTableComputedColumn<T>>;
94
-
95
- context: InfiniteTableColumnRenderingContext<T>;
96
- }) {
97
- const {
98
- column,
99
- context,
100
- rowInfo,
101
- columnsMap,
102
- fieldsToColumn,
103
- formattedValueContext,
104
- } = options;
105
- const { value } = formattedValueContext;
106
- const { api: imperativeApi, getDataSourceState } = context;
107
-
108
- const { indexInAll: rowIndex } = rowInfo;
109
-
110
- const dataSourceState = getDataSourceState();
111
- const { selectionMode } = dataSourceState;
112
-
113
- const groupByColumn = getGroupByColumn({ rowInfo, column, fieldsToColumn });
114
-
115
- const toggleGroupRow = imperativeApi.toggleGroupRow;
116
-
117
- const renderParam: Omit<InfiniteTableColumnRenderParam<T>, 'domRef'> = {
118
- column,
119
- columnsMap,
120
- fieldsToColumn,
121
-
122
- ...formattedValueContext,
123
- groupByColumn,
124
- selectionMode,
125
- api: imperativeApi,
126
- selectRow: imperativeApi.selectionApi.selectRow,
127
- deselectRow: imperativeApi.selectionApi.deselectRow,
128
- toggleRowSelection: imperativeApi.selectionApi.toggleRowSelection,
129
- toggleGroupRowSelection: imperativeApi.selectionApi.toggleGroupRowSelection,
130
- renderBag: {
131
- value,
132
- selectionCheckBox: null,
133
- groupIcon: null,
134
- },
135
-
136
- selectCurrentRow: () => {
137
- return imperativeApi.selectionApi.selectRow(
138
- rowInfo.id,
139
- rowInfo.dataSourceHasGrouping ? rowInfo.groupKeys : undefined,
140
- );
141
- },
142
- deselectCurrentRow: () => {
143
- return imperativeApi.selectionApi.deselectRow(
144
- rowInfo.id,
145
- rowInfo.dataSourceHasGrouping ? rowInfo.groupKeys : undefined,
146
- );
147
- },
148
- rowIndex,
149
- toggleGroupRow,
150
- toggleCurrentGroupRow: () => {
151
- if (!rowInfo.isGroupRow) {
152
- return;
153
- }
154
-
155
- toggleGroupRow(rowInfo.groupKeys!);
156
- },
157
-
158
- toggleCurrentRowSelection: () => {
159
- if (rowInfo.isGroupRow) {
160
- return;
161
- }
162
- return imperativeApi.selectionApi.toggleRowSelection(rowInfo.id);
163
- },
164
-
165
- toggleCurrentGroupRowSelection: () => {
166
- if (!rowInfo.isGroupRow) {
167
- return;
168
- }
169
- return imperativeApi.selectionApi.toggleGroupRowSelection(
170
- rowInfo.isGroupRow ? rowInfo.groupKeys : [],
171
- );
172
- },
173
- rootGroupBy: dataSourceState.groupBy,
174
- pivotBy: dataSourceState.pivotBy,
175
- };
176
-
177
- return renderParam;
178
- }
179
-
180
- export function getRawValueForCell<T>(
181
- column: InfiniteTableComputedColumn<T>,
182
- rowInfo: InfiniteTableRowInfo<T>,
183
- ) {
184
- const { data, isGroupRow, dataSourceHasGrouping } = rowInfo;
185
- const groupBy = dataSourceHasGrouping ? rowInfo.groupBy : undefined;
186
-
187
- let value =
188
- isGroupRow && groupBy && column.groupByField
189
- ? rowInfo.value
190
- : isColumnWithField(column)
191
- ? data?.[column.field]
192
- : null;
193
-
194
- if (column.valueGetter) {
195
- if (!rowInfo.isGroupRow && rowInfo.data) {
196
- value = column.valueGetter({ data: rowInfo.data, field: column.field });
197
- }
198
- }
199
-
200
- return value;
201
- }
202
-
203
- export function getFormattedValueParamForCell<T>(
204
- value: any,
205
- column: InfiniteTableComputedColumn<T>,
206
- rowInfo: InfiniteTableRowInfo<T>,
207
- context: InfiniteTableColumnRenderingContext<T>,
208
- ) {
209
- const { rowSelected, indexInAll: rowIndex } = rowInfo;
210
- const { activeRowIndex, keyboardNavigation } = context.getState();
211
- const rowActive = rowIndex === activeRowIndex && keyboardNavigation === 'row';
212
-
213
- // TS hack to discriminate between the grouped vs non-grouped rows
214
- return rowInfo.isGroupRow
215
- ? {
216
- rowInfo,
217
- isGroupRow: rowInfo.isGroupRow,
218
- data: rowInfo.data,
219
- rowSelected,
220
- rowActive,
221
- value,
222
- field: column.field,
223
- }
224
- : {
225
- rowInfo,
226
- isGroupRow: rowInfo.isGroupRow,
227
- data: rowInfo.data,
228
- rowSelected,
229
- rowActive,
230
- value,
231
- field: column.field,
232
- };
233
- }
234
-
235
- export function getFormattedValueContextForCell<T>(options: {
236
- column: InfiniteTableComputedColumn<T>;
237
- rowInfo: InfiniteTableRowInfo<T>;
238
- columnsMap: Map<string, InfiniteTableComputedColumn<T>>;
239
- context: InfiniteTableColumnRenderingContext<T>;
240
- }): {
241
- formattedValueContext: InfiniteTableColumnValueFormatterParams<T>;
242
- formattedValue: any;
243
- } {
244
- const { column, rowInfo, context } = options;
245
- const rawValue = getRawValueForCell(column, rowInfo);
246
- const formattedValueContext = getFormattedValueParamForCell(
247
- rawValue,
248
- column,
249
- rowInfo,
250
- context,
251
- );
252
-
253
- const formattedValue: any = column.valueFormatter
254
- ? column.valueFormatter(formattedValueContext)
255
- : rawValue;
256
-
257
- formattedValueContext.value = formattedValue;
258
-
259
- return {
260
- formattedValue,
261
- formattedValueContext,
262
- };
263
- }
@@ -1 +0,0 @@
1
- export * from './InfiniteTableRow';
@@ -1,74 +0,0 @@
1
- import { style } from '@vanilla-extract/css';
2
- import { recipe } from '@vanilla-extract/recipes';
3
-
4
- import { ThemeVars } from '../../theme.css';
5
-
6
- const RowCls = style({
7
- willChange: 'transform',
8
- position: 'absolute',
9
- top: 0,
10
- left: 0,
11
- pointerEvents: ThemeVars.components.Row.pointerEventsWhileScrolling,
12
- [ThemeVars.components.ColumnCell.background.slice(4, -1)]:
13
- ThemeVars.components.Row.background,
14
- });
15
-
16
- const groupRowStyle = {
17
- zIndex: 100,
18
- };
19
-
20
- export const RowHoverCls = style({
21
- vars: {
22
- [ThemeVars.components.Row.background]:
23
- ThemeVars.components.Row.hoverBackground,
24
- [ThemeVars.components.Row.selectedBackground]:
25
- ThemeVars.components.Row.selectedHoverBackground,
26
- [ThemeVars.components.Row.oddBackground]:
27
- ThemeVars.components.Row.hoverBackground,
28
- },
29
- });
30
-
31
- export const RowClsRecipe = recipe({
32
- base: RowCls,
33
- variants: {
34
- zebra: {
35
- false: {},
36
- even: {
37
- background: ThemeVars.components.Row.background,
38
- },
39
- odd: {
40
- background: ThemeVars.components.Row.oddBackground,
41
- },
42
- },
43
- groupRow: {
44
- true: {
45
- ...groupRowStyle,
46
- },
47
- false: {},
48
- },
49
- inlineGroupRow: {
50
- true: { ...groupRowStyle },
51
- false: {},
52
- },
53
- showHoverRows: {
54
- true: {},
55
- false: {},
56
- },
57
- },
58
- });
59
-
60
- export const GroupRowExpanderCls = recipe({
61
- variants: {
62
- align: {
63
- start: {
64
- paddingInlineStart: `calc(${ThemeVars.components.Row.groupNesting} * ${ThemeVars.components.Row.groupRowColumnNesting})`,
65
- },
66
- center: {
67
- paddingInlineStart: `calc(${ThemeVars.components.Row.groupNesting} * ${ThemeVars.components.Row.groupRowColumnNesting})`,
68
- },
69
- end: {
70
- paddingInlineEnd: `calc(${ThemeVars.components.Row.groupNesting} * ${ThemeVars.components.Row.groupRowColumnNesting})`,
71
- },
72
- },
73
- },
74
- });
@@ -1,199 +0,0 @@
1
- //@ts-nocheck
2
- import {
3
- CSSProperties,
4
- MutableRefObject,
5
- RefCallback,
6
- useCallback,
7
- useRef,
8
- } from 'react';
9
-
10
- import { join } from '../../../../utils/join';
11
- import { stripVar } from '../../../../utils/stripVar';
12
- import { ThemeVars } from '../../theme.css';
13
- import { InfiniteTableRowStyleFnParams } from '../../types/InfiniteTableProps';
14
- import { InfiniteTableState } from '../../types/InfiniteTableState';
15
-
16
- import {
17
- InfiniteTableRowClassName,
18
- InfiniteTableRowClassName__hover,
19
- } from './InfiniteTableRowClassName';
20
- import type { InfiniteTableRowProps } from './InfiniteTableRowTypes';
21
- import { RowClsRecipe, RowHoverCls } from './row.css';
22
-
23
- export type TableRowHTMLAttributes = React.HTMLAttributes<HTMLDivElement> & {
24
- 'data-virtualize-columns': 'on' | 'off';
25
- 'data-hover-index': number;
26
- 'data-row-index': number;
27
- 'data-row-id': string;
28
- ref: RefCallback<HTMLElement | null>;
29
- } & any;
30
-
31
- export function useRowDOMProps<T>(
32
- props: InfiniteTableRowProps<T>,
33
- rowProps: InfiniteTableState<T>['rowProps'],
34
- rowStyle: InfiniteTableState<T>['rowStyle'],
35
- rowClassName: InfiniteTableState<T>['rowClassName'],
36
- groupRenderStrategy: InfiniteTableState<T>['groupRenderStrategy'],
37
- tableDOMRef: MutableRefObject<HTMLDivElement | null>,
38
- ): {
39
- domProps: TableRowHTMLAttributes;
40
- domRef: MutableRefObject<HTMLElement | null>;
41
- } {
42
- const domProps = props.domProps;
43
- const {
44
- showZebraRows = false,
45
- showHoverRows = false,
46
- rowIndex,
47
- domRef: domRefFromProps,
48
- rowInfo,
49
- rowSpan,
50
- } = props;
51
-
52
- const domRef = useRef<HTMLElement | null>(null);
53
- const rowDOMRef = useCallback((node) => {
54
- domRefFromProps(node);
55
- domRef.current = node;
56
- }, []);
57
-
58
- // TS hack to discriminate between for grouped vs non-grouped rows
59
- const rest = rowInfo.isGroupRow
60
- ? { data: rowInfo.data, rowInfo }
61
- : { data: rowInfo.data, rowInfo };
62
-
63
- const rowPropsAndStyleArgs: InfiniteTableRowStyleFnParams<T> = {
64
- ...rest,
65
- rowIndex,
66
- };
67
-
68
- if (typeof rowProps === 'function') {
69
- rowProps = rowProps(rowPropsAndStyleArgs);
70
- }
71
-
72
- let style: CSSProperties | undefined = rowProps ? rowProps.style : undefined;
73
-
74
- const inlineGroupRoot =
75
- groupRenderStrategy === 'inline' && rowInfo.indexInGroup === 0;
76
-
77
- if (rowStyle) {
78
- style =
79
- typeof rowStyle === 'function'
80
- ? { ...style, ...rowStyle(rowPropsAndStyleArgs) }
81
- : { ...style, ...rowStyle };
82
- }
83
-
84
- if (inlineGroupRoot || rowSpan) {
85
- style = style || {};
86
- //TODO remove this harcoded value - should be datasource size - ...
87
- style.zIndex = 2_000_000 - rowInfo.indexInAll;
88
- }
89
-
90
- const odd =
91
- (rowInfo.indexInAll != null ? rowInfo.indexInAll : rowIndex) % 2 === 1;
92
-
93
- const rowComputedClassName =
94
- typeof rowClassName === 'function'
95
- ? rowClassName(rowPropsAndStyleArgs)
96
- : rowClassName;
97
-
98
- const className = join(
99
- InfiniteTableRowClassName,
100
-
101
- RowClsRecipe({
102
- groupRow: rowInfo.isGroupRow,
103
- inlineGroupRow: inlineGroupRoot,
104
- zebra: showHoverRows ? (odd ? 'odd' : 'even') : false,
105
- showHoverRows,
106
- }),
107
- `${InfiniteTableRowClassName}--${
108
- rowInfo.isGroupRow ? 'group' : 'normal'
109
- }-row`,
110
-
111
- inlineGroupRoot ? `${InfiniteTableRowClassName}--inline-group-row` : '',
112
- showZebraRows
113
- ? `${InfiniteTableRowClassName}--${odd ? 'odd' : 'even'}`
114
- : null,
115
- showHoverRows ? `${InfiniteTableRowClassName}--show-hover` : null,
116
- domProps?.className,
117
- rowProps?.className,
118
- rowComputedClassName,
119
- );
120
-
121
- const initialMouseEnter = rowProps?.onMouseEnter;
122
- const initialMouseLeave = rowProps?.onMouseLeave;
123
-
124
- // const parentIndex = brain.getItemSpanParent(rowIndex);
125
- // const covered = parentIndex !== rowIndex;
126
-
127
- const onMouseEnter = useCallback(
128
- (event) => {
129
- initialMouseEnter?.(event);
130
-
131
- const rowIndex = event.currentTarget?.dataset.rowIndex * 1;
132
-
133
- const parentNode = tableDOMRef.current;
134
-
135
- if (!parentNode || !showHoverRows) {
136
- return;
137
- }
138
-
139
- const hoverSelector = [
140
- `.${InfiniteTableRowClassName}[data-hover-index="${rowIndex}"]`,
141
- ];
142
-
143
- const rows = parentNode.querySelectorAll(hoverSelector.join(','));
144
-
145
- rows.forEach((row) =>
146
- row.classList.add(InfiniteTableRowClassName__hover, RowHoverCls),
147
- );
148
- },
149
- [initialMouseEnter, showHoverRows],
150
- );
151
-
152
- const onMouseLeave = useCallback(
153
- (event) => {
154
- initialMouseLeave?.(event);
155
-
156
- const rowIndex = event.currentTarget?.dataset.rowIndex;
157
-
158
- const parentNode = tableDOMRef.current;
159
-
160
- if (!parentNode || !showHoverRows) {
161
- return;
162
- }
163
-
164
- const hoverSelector = [
165
- `.${InfiniteTableRowClassName}[data-hover-index="${rowIndex}"]`,
166
- ];
167
- const rows = parentNode.querySelectorAll(hoverSelector.join(','));
168
- rows.forEach((row) =>
169
- row.classList.remove(InfiniteTableRowClassName__hover, RowHoverCls),
170
- );
171
- },
172
- [initialMouseLeave, showHoverRows],
173
- );
174
-
175
- if (rowInfo.dataSourceHasGrouping) {
176
- style = style || {};
177
- //@ts-ignore
178
- style[stripVar(ThemeVars.components.Row.groupNesting)] =
179
- rowInfo.groupNesting! - 1;
180
- }
181
- return {
182
- domRef,
183
- domProps: {
184
- ...rowProps,
185
- ...domProps,
186
- style,
187
- 'data-virtualize-columns': props.virtualizeColumns ? 'on' : 'off',
188
- 'data-row-index': rowIndex,
189
-
190
- // 'data-hover-index': covered ? null : rowIndex,
191
- 'data-hover-index': rowIndex,
192
- 'data-row-id': `${rowInfo.id}`,
193
- className,
194
- onMouseEnter,
195
- onMouseLeave,
196
- ref: rowDOMRef,
197
- },
198
- };
199
- }
@@ -1,34 +0,0 @@
1
- import { style, styleVariants } from '@vanilla-extract/css';
2
-
3
- import { ThemeVars } from '../theme.css';
4
- import { absoluteCover } from '../utilities.css';
5
-
6
- const LoadMaskBaseCls = style([
7
- {
8
- flexFlow: 'row',
9
- alignItems: 'center',
10
- justifyContent: 'center',
11
- },
12
- absoluteCover,
13
- ]);
14
-
15
- export const LoadMaskCls = styleVariants({
16
- visible: [LoadMaskBaseCls, { display: 'flex' }],
17
- hidden: [LoadMaskBaseCls, { display: 'none' }],
18
- });
19
- export const LoadMaskOverlayCls = style([
20
- absoluteCover,
21
- {
22
- background: ThemeVars.components.LoadMask.overlayBackground,
23
- opacity: ThemeVars.components.LoadMask.overlayOpacity,
24
- },
25
- ]);
26
-
27
- export const LoadMaskTextCls = style({
28
- position: 'relative',
29
-
30
- padding: ThemeVars.components.LoadMask.padding,
31
- color: ThemeVars.components.LoadMask.color,
32
- background: ThemeVars.components.LoadMask.textBackground,
33
- borderRadius: ThemeVars.components.LoadMask.borderRadius,
34
- });
@@ -1,27 +0,0 @@
1
- import * as React from 'react';
2
- import {
3
- LoadMaskCls,
4
- LoadMaskOverlayCls,
5
- LoadMaskTextCls,
6
- } from './LoadMask.css';
7
- import { internalProps } from '../internalProps';
8
-
9
- import { LoadMaskProps } from '../types/InfiniteTableProps';
10
-
11
- const { rootClassName } = internalProps;
12
- const baseCls = `${rootClassName}-LoadMask`;
13
-
14
- function LoadMaskFn(props: LoadMaskProps) {
15
- const { visible, children = 'Loading' } = props;
16
-
17
- return (
18
- <div
19
- className={`${LoadMaskCls[visible ? 'visible' : 'hidden']} ${baseCls}`}
20
- >
21
- <div className={`${LoadMaskOverlayCls} ${baseCls}-Overlay`}></div>
22
- <div className={`${LoadMaskTextCls} ${baseCls}-Text`}>{children}</div>
23
- </div>
24
- );
25
- }
26
-
27
- export const LoadMask = React.memo(LoadMaskFn) as typeof LoadMaskFn;
@@ -1,56 +0,0 @@
1
- import * as React from 'react';
2
- import { getScrollbarWidth } from '../../utils/getScrollbarWidth';
3
-
4
- function HorizontalScrollbarPlaceholderFn(props: {
5
- style: React.CSSProperties;
6
- }) {
7
- const scrollbarWidth = getScrollbarWidth();
8
-
9
- // we're on a system with no visible scrollbar, so no need to render anything
10
- if (!scrollbarWidth) {
11
- return null;
12
- }
13
- return (
14
- <div
15
- data-name="horizontal-scrollbar-placeholder"
16
- style={{
17
- position: 'absolute',
18
- overflow: 'visible',
19
- overflowX: 'scroll',
20
- // height: scrollbarWidth,// not needed, as browser makes the element have the needed width
21
- bottom: 0,
22
- ...props.style,
23
- }}
24
- ></div>
25
- );
26
- }
27
-
28
- export const HorizontalScrollbarPlaceholder = React.memo(
29
- HorizontalScrollbarPlaceholderFn,
30
- );
31
-
32
- function VerticalScrollbarPlaceholderFn(props: { style: React.CSSProperties }) {
33
- const scrollbarWidth = getScrollbarWidth();
34
-
35
- // we're on a system with no visible scrollbar, so no need to render anything
36
- if (!scrollbarWidth) {
37
- return null;
38
- }
39
- return (
40
- <div
41
- data-name="vertical-scrollbar-placeholder"
42
- style={{
43
- position: 'absolute',
44
- overflow: 'visible',
45
- overflowY: 'scroll',
46
- bottom: 0,
47
- // width: scrollbarWidth, // not needed, as browser makes the element have the needed width
48
- ...props.style,
49
- }}
50
- ></div>
51
- );
52
- }
53
-
54
- export const VerticalScrollbarPlaceholder = React.memo(
55
- VerticalScrollbarPlaceholderFn,
56
- );