@infinite-table/infinite-react 0.5.0 → 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 +9 -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,47 +0,0 @@
1
- import { EffectCallback, DependencyList, useLayoutEffect } from 'react';
2
- import { useEffect, useRef } from 'react';
3
-
4
- export function useEffectWithRaf(fn: EffectCallback, deps: DependencyList) {
5
- const rafId = useRef<number>(0);
6
- const removeFnRaf = useRef<Function | void>();
7
-
8
- useEffect(() => {
9
- rafId.current = requestAnimationFrame(() => {
10
- removeFnRaf.current = fn();
11
- });
12
-
13
- return () => {
14
- if (rafId.current) {
15
- cancelAnimationFrame(rafId.current);
16
- }
17
- if (typeof removeFnRaf.current === 'function') {
18
- removeFnRaf.current();
19
- removeFnRaf.current = undefined;
20
- }
21
- };
22
- }, deps);
23
- }
24
-
25
- export function useLayoutEffectWithRaf(
26
- fn: EffectCallback,
27
- deps: DependencyList,
28
- ) {
29
- const rafId = useRef<number>(0);
30
- const removeFnRaf = useRef<Function | void>();
31
-
32
- useLayoutEffect(() => {
33
- rafId.current = requestAnimationFrame(() => {
34
- removeFnRaf.current = fn();
35
- });
36
-
37
- return () => {
38
- if (rafId.current) {
39
- cancelAnimationFrame(rafId.current);
40
- }
41
- if (typeof removeFnRaf.current === 'function') {
42
- removeFnRaf.current();
43
- removeFnRaf.current = undefined;
44
- }
45
- };
46
- }, deps);
47
- }
@@ -1,10 +0,0 @@
1
- import { useContext } from 'react';
2
- import type { InfiniteTableContextValue } from '../types';
3
-
4
- import { getInfiniteTableContext } from '../InfiniteTableContext';
5
-
6
- export const useInfiniteTable = <T>(): InfiniteTableContextValue<T> => {
7
- const TableContext = getInfiniteTableContext<T>();
8
-
9
- return useContext(TableContext);
10
- };
@@ -1,11 +0,0 @@
1
- import { useContext } from 'react';
2
- import { InfiniteTableState } from '../types';
3
-
4
- import { getInfiniteTableContext } from '../InfiniteTableContext';
5
-
6
- export const useInfiniteTableState = <T>(): InfiniteTableState<T> => {
7
- const TableContext = getInfiniteTableContext<T>();
8
- const { componentState } = useContext(TableContext);
9
-
10
- return componentState;
11
- };
@@ -1,8 +0,0 @@
1
- import { internalProps } from '../internalProps';
2
-
3
- export const useInternalProps = () => {
4
- return internalProps;
5
- };
6
- export const getInternalProps = () => {
7
- return internalProps;
8
- };
@@ -1,13 +0,0 @@
1
- export type LicenseDetails = {
2
- start: Date;
3
- end: Date;
4
- owner: string;
5
- distribution: boolean;
6
- trial: boolean;
7
- skipAirtable?: boolean;
8
- type: string;
9
- count?: number;
10
- timestamp?: number;
11
-
12
- ref: string;
13
- };
@@ -1,56 +0,0 @@
1
- const DEFAULT_ReversedPolynomial = 0xedb88320;
2
-
3
- /*
4
- * CRC-32 implementation
5
- */
6
-
7
- function crc32_generate(reversedPolynomial = DEFAULT_ReversedPolynomial) {
8
- var table = new Array();
9
- var i, j, n;
10
-
11
- for (i = 0; i < 256; i++) {
12
- n = i;
13
- for (j = 8; j > 0; j--) {
14
- if ((n & 1) == 1) {
15
- n = (n >>> 1) ^ reversedPolynomial;
16
- } else {
17
- n = n >>> 1;
18
- }
19
- }
20
- table[i] = n;
21
- }
22
-
23
- return table;
24
- }
25
-
26
- function crc32_initial() {
27
- return 0xffffffff;
28
- }
29
-
30
- function crc32_add_byte(table: number[], crc: number, byte: number) {
31
- crc = (crc >>> 8) ^ table[byte ^ (crc & 0x000000ff)];
32
- return crc;
33
- }
34
-
35
- function crc32_final(crc: number) {
36
- crc = ~crc;
37
- crc = crc < 0 ? 0xffffffff + crc + 1 : crc;
38
- return crc;
39
- }
40
-
41
- export function crc32_compute_string(
42
- str: string,
43
- reversedPolynomial = DEFAULT_ReversedPolynomial,
44
- ): string {
45
- var table = crc32_generate(reversedPolynomial);
46
- var crc = 0;
47
- var i;
48
-
49
- crc = crc32_initial();
50
-
51
- for (i = 0; i < str.length; i++)
52
- crc = crc32_add_byte(table, crc, str.charCodeAt(i));
53
-
54
- crc = crc32_final(crc);
55
- return `${crc}`;
56
- }
@@ -1,147 +0,0 @@
1
- import { crc32_compute_string } from './crc32';
2
- import { LicenseDetails } from './LicenseDetails';
3
-
4
- export const fieldsToLicenseDetails = (
5
- fields: { name: string; value: string }[],
6
- ): LicenseDetails => {
7
- const fieldsMap = fields.reduce((acc, field) => {
8
- acc.set(field.name, field.value);
9
- return acc;
10
- }, new Map<string, string>());
11
-
12
- const details: LicenseDetails = {
13
- distribution: fieldsMap.get('Type') === 'distribution',
14
- count: fieldsMap.get('DevCount') ? Number(fieldsMap.get('DevCount')) : 0,
15
- start: new Date(fieldsMap.get('StartDate')!),
16
- end: new Date(fieldsMap.get('EndDate')!),
17
- owner: fieldsMap.get('Owner')!,
18
- type: fieldsMap.get('Type')!,
19
- timestamp: fieldsMap.get('TS') ? Number(fieldsMap.get('TS')) : 0,
20
- trial: fieldsMap.get('Trial') === 'true' ? true : false,
21
- ref: fieldsMap.get('Ref') ?? '',
22
- };
23
-
24
- return details;
25
- };
26
-
27
- export const logLicenseError = (
28
- lines: string[],
29
- fn: (...line: string[]) => void = console.error.bind(console),
30
- ) => {
31
- lines = ['* * * infinite-table.com * * *', ...lines];
32
- const max = Math.max(Math.max(...lines.map((l) => l.length)) + 4 * 2, 60); // 4 extra characters on each line, 3 stars and 1 space
33
-
34
- lines.forEach((line) => {
35
- let sideCount = (max - line.length) / 2 - 1; // there's 1 extra space on each side
36
- let offset = 0;
37
-
38
- if (sideCount !== Math.round(sideCount)) {
39
- offset = -1;
40
- sideCount = Math.round(sideCount);
41
- }
42
- const start = sideCount + offset;
43
- const end = sideCount;
44
-
45
- fn('*'.repeat(start) + ' ' + line + ' ' + '*'.repeat(end));
46
- });
47
-
48
- fn('*'.repeat(max));
49
- };
50
-
51
- export const isValidLicense = (
52
- licenseKey: string = '',
53
- packageInfo: { publishedAt: number; version: string },
54
- fn?: (...args: string[]) => void,
55
- ) => {
56
- let details: LicenseDetails;
57
-
58
- try {
59
- details = decode(licenseKey);
60
- } catch (ex) {
61
- logLicenseError(
62
- [
63
- `You don't have a valid Infinite Table license`,
64
- 'Please visit infinite-table.com to purchase a license.',
65
- 'Thank you for playing fair!',
66
- ],
67
- fn,
68
- );
69
- return false;
70
- }
71
-
72
- const currentVersionReleaseDate = new Date(packageInfo.publishedAt);
73
- const licenseEndDate = new Date(details.end);
74
-
75
- if (licenseEndDate < currentVersionReleaseDate) {
76
- logLicenseError(
77
- [
78
- `
79
- Your Infinite Table license has expired on ${licenseEndDate.toDateString()}.
80
- `,
81
- `You are using version "${
82
- packageInfo.version
83
- }" of Infinite Table, which was published on ${currentVersionReleaseDate.toDateString()}.`,
84
- `Please visit infinite-table.com to renew your license.`,
85
- `Thank you for playing fair!`,
86
- ],
87
- fn,
88
- );
89
-
90
- return false;
91
- }
92
-
93
- return true;
94
- };
95
-
96
- export const decode = (licenseKey: string): LicenseDetails => {
97
- let crc: string = '';
98
- let fields = licenseKey.split('|').map((part) => {
99
- let [name, value] = part.split('=');
100
-
101
- if (name === 'C') {
102
- crc = value;
103
- }
104
-
105
- return {
106
- name,
107
- value,
108
- };
109
- });
110
-
111
- if (!crc) {
112
- throw 'Invalid license';
113
- }
114
-
115
- const crcParts = crc.split(',').reverse();
116
-
117
- const overallCrc = crcParts.pop();
118
- crcParts.forEach((fieldCrc, index) => {
119
- const field = fields[index];
120
- if (crc32_compute_string(field.value) !== fieldCrc) {
121
- throw 'Invalid license';
122
- }
123
- });
124
-
125
- const fieldsWithoutC = [...fields];
126
-
127
- fieldsWithoutC.pop();
128
-
129
- const fieldsWithoutCString = fieldsWithoutC
130
- .map((field) => {
131
- return `${field.name}=${field.value}`;
132
- })
133
- .join('|');
134
-
135
- if (crc32_compute_string(fieldsWithoutCString) !== overallCrc) {
136
- throw 'Invalid license';
137
- }
138
-
139
- fields = fields.map((f) => {
140
- return {
141
- ...f,
142
- value: decodeURI(f.value),
143
- };
144
- });
145
-
146
- return fieldsToLicenseDetails(fields);
147
- };
@@ -1,39 +0,0 @@
1
- import { useMemo } from 'react';
2
- import { isValidLicense } from './decode';
3
-
4
- const SANDPACK_REGEX =
5
- /(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g;
6
- const SANDBOX_REGEX = /(https):\/\/\S+(\.csb\.app)/g;
7
-
8
- const origin = typeof window !== 'undefined' ? window.location.origin : '';
9
-
10
- const isInsideSandpack = () => {
11
- const [_fullUrl, protocol, sandpackUrl] = Array.from(
12
- SANDPACK_REGEX.exec(origin) || [],
13
- );
14
- return protocol === 'https' && sandpackUrl === 'sandpack.codesandbox.io';
15
- };
16
- const isInsideSandbox = () => {
17
- const [_fullUrl, protocol, sandboxUrl] = Array.from(
18
- SANDBOX_REGEX.exec(origin) || [],
19
- );
20
- return protocol === 'https' && sandboxUrl === '.csb.app';
21
- };
22
-
23
- const isInsidePlayground = isInsideSandbox() || isInsideSandpack();
24
-
25
- export const useLicense = (licenseKey: string = '') => {
26
- const valid = useMemo(() => {
27
- let valid = isValidLicense(licenseKey, {
28
- publishedAt: __VERSION_TIMESTAMP__,
29
- version: __VERSION__,
30
- });
31
-
32
- if (!licenseKey && !valid && isInsidePlayground) {
33
- return true;
34
- }
35
-
36
- return valid;
37
- }, [licenseKey]);
38
- return valid;
39
- };
@@ -1,21 +0,0 @@
1
- import { useEffect } from 'react';
2
- import { useRerender } from '../../hooks/useRerender';
3
- import { interceptMap } from '../../hooks/useInterceptedMap';
4
- import { rafFn } from '../utils/rafFn';
5
-
6
- export const useRerenderOnKeyChange = <K extends unknown, V extends unknown>(
7
- map: Map<K, V>,
8
- ) => {
9
- const [renderId, rerender] = useRerender();
10
-
11
- useEffect(() => {
12
- const update = rafFn(rerender);
13
- return interceptMap(map, {
14
- set: update,
15
- clear: update,
16
- delete: update,
17
- });
18
- }, [map]);
19
-
20
- return renderId;
21
- };
@@ -1,18 +0,0 @@
1
- import { useEffect } from 'react';
2
-
3
- export const useRowHover = (
4
- ref: React.MutableRefObject<HTMLElement | null>,
5
- ) => {
6
- useEffect(() => {
7
- const node = ref.current;
8
- if (!node) {
9
- return;
10
- }
11
-
12
- // const onMouseEnter = (event) => {
13
- // console.log(event);
14
- // };
15
- // node.addEventListener('mouseover', onMouseEnter);
16
- return () => {};
17
- }, [ref.current]);
18
- };
@@ -1,48 +0,0 @@
1
- import { useRef, useEffect } from 'react';
2
- import { cancelRaf, raf } from '../../../utils/raf';
3
-
4
- import { InfiniteTableApi } from '../types';
5
-
6
- const RETRIES = 10;
7
-
8
- export function useScrollToActiveCell<T>(
9
- activeCellIndex: [number, number] | null | undefined,
10
- dataCount: number,
11
- imperativeApi: InfiniteTableApi<T>,
12
- ) {
13
- const didScrollRef = useRef<boolean>(false);
14
- const rafId = useRef<number | null>(null);
15
-
16
- useEffect(() => {
17
- if (activeCellIndex != null) {
18
- didScrollRef.current = false;
19
- cancelRaf(rafId.current!);
20
- }
21
- }, [activeCellIndex]);
22
- useEffect(() => {
23
- if (activeCellIndex != null && !didScrollRef.current) {
24
- function tryScroll(times = 0) {
25
- times++;
26
- cancelRaf(rafId.current!);
27
- rafId.current = raf(() => {
28
- didScrollRef.current = imperativeApi.scrollCellIntoView(
29
- activeCellIndex![0],
30
- activeCellIndex![1],
31
- {
32
- offset: 30,
33
- },
34
- );
35
- if (!didScrollRef.current && times < RETRIES) {
36
- tryScroll(times);
37
- }
38
- });
39
- }
40
-
41
- tryScroll();
42
- }
43
-
44
- return () => {
45
- cancelRaf(rafId.current!);
46
- };
47
- }, [activeCellIndex, dataCount]);
48
- }
@@ -1,44 +0,0 @@
1
- import { useRef, useEffect } from 'react';
2
- import { InfiniteTableApi } from '../types';
3
-
4
- const RETRIES = 10;
5
-
6
- export function useScrollToActiveRow<T>(
7
- activeRowIndex: number | null | undefined,
8
- dataCount: number,
9
- imperativeApi: InfiniteTableApi<T>,
10
- ) {
11
- const didScrollRef = useRef<boolean>(false);
12
- const rafId = useRef<number | null>(null);
13
-
14
- useEffect(() => {
15
- if (activeRowIndex != null) {
16
- didScrollRef.current = false;
17
- cancelAnimationFrame(rafId.current!);
18
- }
19
- }, [activeRowIndex]);
20
-
21
- useEffect(() => {
22
- if (activeRowIndex != null && !didScrollRef.current) {
23
- function tryScroll(times = 0) {
24
- times++;
25
- rafId.current = requestAnimationFrame(() => {
26
- didScrollRef.current = imperativeApi.scrollRowIntoView(
27
- activeRowIndex!,
28
- {
29
- offset: 0,
30
- },
31
- );
32
- if (!didScrollRef.current && times < RETRIES) {
33
- tryScroll(times);
34
- }
35
- });
36
- }
37
-
38
- tryScroll();
39
- }
40
- return () => {
41
- cancelAnimationFrame(rafId.current!);
42
- };
43
- }, [activeRowIndex, dataCount]);
44
- }
@@ -1,51 +0,0 @@
1
- import { useState, useEffect, useLayoutEffect } from 'react';
2
-
3
- import { useDataSourceContextValue } from '../../DataSource/publicHooks/useDataSource';
4
- import { useComponentState } from '../../hooks/useComponentState';
5
- import { MatrixBrain } from '../../VirtualBrain/MatrixBrain';
6
- import { InfiniteTableState, Scrollbars } from '../types';
7
-
8
- const INITIAL_SCROLLBARS: Scrollbars = {
9
- vertical: false,
10
- horizontal: false,
11
- };
12
-
13
- export function useScrollbars<T>(brain: MatrixBrain) {
14
- const { getComponentState: getInfiniteTableState } =
15
- useComponentState<InfiniteTableState<T>>();
16
- const { getState: getDataSourceState } = useDataSourceContextValue<T>();
17
-
18
- const [scrollbars, setScrollbars] = useState(INITIAL_SCROLLBARS);
19
-
20
- useEffect(() => {
21
- return brain.onRenderCountChange(() => {
22
- const { scrollTopMax, scrollLeftMax } = brain;
23
-
24
- setScrollbars({
25
- vertical: scrollTopMax > 0,
26
- horizontal: scrollLeftMax > 0,
27
- });
28
- });
29
- }, [brain]);
30
-
31
- useLayoutEffect(() => {
32
- // this needs to be useLayoutEffect
33
- // on live Pagination cursor change we need this - ref #lvpgn
34
- const dataSourceState = getDataSourceState();
35
- const { onScrollbarsChange } = getInfiniteTableState();
36
- const { notifyScrollbarsChange } = dataSourceState;
37
-
38
- if (
39
- onScrollbarsChange &&
40
- // we add extra conditions so as to fire this only after initial data load
41
- dataSourceState.updatedAt &&
42
- dataSourceState.dataArray.length
43
- ) {
44
- onScrollbarsChange(scrollbars);
45
- }
46
-
47
- notifyScrollbarsChange(scrollbars);
48
- }, [scrollbars]);
49
-
50
- return scrollbars;
51
- }
@@ -1,56 +0,0 @@
1
- import { useCallback } from 'react';
2
-
3
- import { DeepMap } from '../../../utils/DeepMap';
4
- import { LAZY_ROOT_KEY_FOR_GROUPS } from '../../../utils/groupAndPivot';
5
- import { GroupRowsState } from '../../DataSource';
6
- import { getChangeDetect } from '../../DataSource/privateHooks/getChangeDetect';
7
- import { loadData } from '../../DataSource/privateHooks/useLoadData';
8
- import { useDataSourceContextValue } from '../../DataSource/publicHooks/useDataSource';
9
-
10
- export type ToggleGroupRowFn = (groupKeys: any[]) => void;
11
-
12
- export function useToggleGroupRow<T>() {
13
- const { getState: getDataSourceState, componentActions: dataSourceActions } =
14
- useDataSourceContextValue<T>();
15
-
16
- const toggleGroupRow = useCallback<ToggleGroupRowFn>((groupKeys: any[]) => {
17
- // todo this is duplicated in imperative api
18
-
19
- const state = getDataSourceState();
20
- const newState = new GroupRowsState(state.groupRowsState);
21
- newState.toggleGroupRow(groupKeys);
22
-
23
- dataSourceActions.groupRowsState = newState;
24
- if (state.lazyLoad) {
25
- const dataKeys = [LAZY_ROOT_KEY_FOR_GROUPS, ...groupKeys];
26
- const currentData = state.originalLazyGroupData.get(dataKeys);
27
-
28
- if (newState.isGroupRowExpanded(groupKeys)) {
29
- if (!currentData?.cache) {
30
- loadData(state.data, state, dataSourceActions, {
31
- groupKeys,
32
- });
33
- }
34
- } else {
35
- if (!currentData?.cache) {
36
- const keysToDelete =
37
- state.lazyLoadCacheOfLoadedBatches.getKeysStartingWith(groupKeys);
38
- keysToDelete.forEach((keys) => {
39
- state.lazyLoadCacheOfLoadedBatches.delete(keys);
40
- });
41
-
42
- dataSourceActions.lazyLoadCacheOfLoadedBatches = DeepMap.clone(
43
- state.lazyLoadCacheOfLoadedBatches,
44
- );
45
-
46
- state.originalLazyGroupData.delete(dataKeys);
47
-
48
- dataSourceActions.originalLazyGroupDataChangeDetect =
49
- getChangeDetect();
50
- }
51
- }
52
- }
53
- }, []);
54
-
55
- return toggleGroupRow;
56
- }