@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,96 +0,0 @@
1
- import * as React from 'react';
2
- import { useEffect, useRef } from 'react';
3
- import { join } from '../../../utils/join';
4
- import {
5
- ForwardPropsToStateFnResult,
6
- getComponentStateRoot,
7
- useComponentState,
8
- } from '../../hooks/useComponentState';
9
- import { NonUndefined } from '../../types/NonUndefined';
10
- import { CheckBoxCls } from './CheckBox.css';
11
-
12
- export type InfiniteCheckBoxPropChecked = true | false | null;
13
- export type InfiniteCheckBoxProps = {
14
- disabled?: boolean;
15
- checked?: InfiniteCheckBoxPropChecked;
16
- defaultChecked?: InfiniteCheckBoxPropChecked;
17
- onChange?: (checked: InfiniteCheckBoxPropChecked) => void;
18
- domProps?: React.HTMLProps<HTMLElement>;
19
- };
20
-
21
- export type InfiniteCheckBoxMappedState = {
22
- checked: NonUndefined<InfiniteCheckBoxProps['checked']>;
23
- disabled: NonUndefined<InfiniteCheckBoxProps['disabled']>;
24
- domProps: InfiniteCheckBoxProps['domProps'];
25
- };
26
-
27
- function forwardProps(): ForwardPropsToStateFnResult<
28
- InfiniteCheckBoxProps,
29
- InfiniteCheckBoxMappedState
30
- > {
31
- return {
32
- checked: 1,
33
- disabled: (disabled) => disabled ?? false,
34
- domProps: 1,
35
- };
36
- }
37
-
38
- export interface InfiniteCheckBoxState extends InfiniteCheckBoxMappedState {}
39
-
40
- const InfiniteCheckBoxRoot = getComponentStateRoot({
41
- // @ts-ignore
42
- forwardProps,
43
- // @ts-ignore
44
- // mapPropsToState,
45
- // @ts-ignore
46
- // cleanup: cleanupState,
47
- // @ts-ignore,
48
- mappedCallbacks: {
49
- checked: (checked) => {
50
- return {
51
- callbackName: 'onChange',
52
- callbackParams: [checked],
53
- };
54
- },
55
- },
56
-
57
- debugName: 'InfiniteCheckBox',
58
- });
59
-
60
- function InfiniteCheckBoxComponent() {
61
- const { componentState, componentActions } =
62
- useComponentState<InfiniteCheckBoxState>();
63
-
64
- const { checked, domProps, disabled } = componentState;
65
-
66
- const inputRef = useRef<HTMLInputElement>(null);
67
-
68
- useEffect(() => {
69
- inputRef.current!.indeterminate = checked == null;
70
- }, [checked]);
71
-
72
- return (
73
- <input
74
- {...domProps}
75
- className={join('InfiniteCheckBox', CheckBoxCls, domProps?.className)}
76
- type="checkbox"
77
- ref={inputRef}
78
- checked={!!checked}
79
- disabled={disabled}
80
- onChange={() => {
81
- if (disabled) {
82
- return;
83
- }
84
- componentActions.checked = !checked;
85
- }}
86
- />
87
- );
88
- }
89
-
90
- export function InfiniteCheckBox(props: InfiniteCheckBoxProps) {
91
- return (
92
- <InfiniteCheckBoxRoot {...props}>
93
- <InfiniteCheckBoxComponent />
94
- </InfiniteCheckBoxRoot>
95
- );
96
- }
@@ -1,52 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import {
4
- InfiniteTableFilterEditorProps,
5
- InfiniteTablePropFilterEditors,
6
- } from '../types/InfiniteTableProps';
7
-
8
- function getFilterEditors<T>(): InfiniteTablePropFilterEditors<T> {
9
- return {
10
- string: StringFilterEditor,
11
- number: NumberFilterEditor,
12
- };
13
- }
14
-
15
- export const defaultFilterEditors = getFilterEditors();
16
-
17
- export function StringFilterEditor<T>(
18
- props: InfiniteTableFilterEditorProps<T>,
19
- ) {
20
- return (
21
- <input
22
- aria-label={`Filter for ${props.ariaLabel}`}
23
- type="text"
24
- value={props.filterValue as any as string}
25
- onChange={(event) => {
26
- props.onChange(event.target.value as any as T);
27
- }}
28
- className={props.className}
29
- />
30
- );
31
- }
32
-
33
- export function NumberFilterEditor<T>(
34
- props: InfiniteTableFilterEditorProps<T>,
35
- ) {
36
- return (
37
- <input
38
- aria-label={`Filter for ${props.ariaLabel}`}
39
- type="number"
40
- value={props.filterValue as any as number}
41
- onChange={(event) => {
42
- let value = event.target.value;
43
- //@ts-ignore
44
- if (!isNaN(value + '')) {
45
- value = value + '';
46
- }
47
- props.onChange(value as any as T);
48
- }}
49
- className={props.className}
50
- />
51
- );
52
- }
@@ -1,27 +0,0 @@
1
- import * as React from 'react';
2
- import { Ref } from 'react';
3
-
4
- import { useInternalProps } from '../../hooks/useInternalProps';
5
- import { join } from '../../../../utils/join';
6
-
7
- import { flex, position, transformTranslateZero } from '../../utilities.css';
8
-
9
- export const InfiniteTableBody = React.forwardRef(function InfiniteTableBody(
10
- props: React.HTMLAttributes<HTMLDivElement>,
11
- ref: Ref<HTMLDivElement>,
12
- ) {
13
- const { rootClassName } = useInternalProps();
14
- return (
15
- <div
16
- ref={ref}
17
- {...props}
18
- className={join(
19
- `${rootClassName}Body`,
20
- position.relative,
21
- flex['1'],
22
- transformTranslateZero,
23
- props.className,
24
- )}
25
- />
26
- );
27
- });
@@ -1 +0,0 @@
1
- export * from './InfiniteTableBody';
@@ -1,31 +0,0 @@
1
- import * as React from 'react';
2
- import { Ref } from 'react';
3
-
4
- import { join } from '../../../../utils/join';
5
- import { useInternalProps } from '../../hooks/useInternalProps';
6
- import { display, flexFlow, position } from '../../utilities.css';
7
-
8
- export const InfiniteTableFooter = React.forwardRef(
9
- function InfiniteTableFooter<_T>(
10
- props: React.HTMLAttributes<HTMLDivElement>,
11
- ref: Ref<HTMLDivElement>,
12
- ) {
13
- const { rootClassName } = useInternalProps();
14
-
15
- return (
16
- <div
17
- ref={ref}
18
- {...props}
19
- className={join(
20
- `${rootClassName}Footer`,
21
- position.relative,
22
- display.flex,
23
- flexFlow.row,
24
- props.className,
25
- )}
26
- >
27
- {/* Showing {dataArray.length} from {unfilteredCount} */}
28
- </div>
29
- );
30
- },
31
- );
@@ -1 +0,0 @@
1
- export * from './InfiniteTableFooter';
@@ -1,102 +0,0 @@
1
- import * as React from 'react';
2
- import { useEffect, useState } from 'react';
3
-
4
- import {
5
- DataSourceFilterValueItem,
6
- DataSourcePropFilterTypes,
7
- } from '../../../DataSource';
8
- import { Renderable } from '../../../types/Renderable';
9
- import { internalProps } from '../../internalProps';
10
- import { InfiniteTableFilterEditorProps } from '../../types';
11
-
12
- import { HeaderFilterCls, HeaderFilterEditorCls } from './header.css';
13
-
14
- const { rootClassName } = internalProps;
15
- export type InfiniteTableColumnHeaderFilterProps<T> = {
16
- filterEditor: React.FC<InfiniteTableFilterEditorProps<T>>;
17
- filterTypes: DataSourcePropFilterTypes<T>;
18
- columnFilterValue: DataSourceFilterValueItem<T> | null;
19
- columnLabel: Renderable;
20
- columnFilterType?: string;
21
- columnHeaderHeight: number;
22
- onChange: (value: DataSourceFilterValueItem<T> | null) => void;
23
- };
24
-
25
- export const InfiniteTableColumnHeaderFilterClassName = `${rootClassName}HeaderCell__filter`;
26
-
27
- const stopPropagation = (e: React.PointerEvent<any>) => e.stopPropagation();
28
-
29
- export function InfiniteTableColumnHeaderFilter<T>(
30
- props: InfiniteTableColumnHeaderFilterProps<T>,
31
- ) {
32
- const [theValue, setTheValue] = useState(
33
- props.columnFilterValue?.filterValue ?? '',
34
- );
35
-
36
- const onInputChange = (filterValue: any) => {
37
- setTheValue(filterValue);
38
- props.onChange(filterValue);
39
- };
40
-
41
- useEffect(() => {
42
- if (props.columnFilterValue) {
43
- if (theValue !== props.columnFilterValue.filterValue) {
44
- setTheValue(props.columnFilterValue.filterValue);
45
- }
46
- } else {
47
- //reset to empty value if no filter value defined
48
- const currentFilterType =
49
- props.filterTypes[props.columnFilterType ?? 'string'];
50
-
51
- if (currentFilterType) {
52
- const emptyValue = [...currentFilterType.emptyValues][0];
53
- if (emptyValue !== theValue) {
54
- setTheValue(emptyValue);
55
- }
56
- }
57
- }
58
- }, [props.columnFilterValue?.filterValue]);
59
-
60
- const filterType = props.columnFilterValue
61
- ? props.columnFilterValue.filterType
62
- : props.columnFilterType ?? 'string';
63
-
64
- const operator = props.columnFilterValue
65
- ? props.columnFilterValue.operator
66
- : props.filterTypes[filterType]
67
- ? props.filterTypes[filterType].defaultOperator
68
- : props.filterTypes.string.defaultOperator;
69
-
70
- const filterEditorProps = {
71
- ariaLabel: `Filter for ${props.columnLabel}`,
72
- filterValue: theValue,
73
- className: HeaderFilterEditorCls,
74
- operator,
75
- filterType,
76
- onChange: onInputChange,
77
- };
78
-
79
- const FilterEditor = props.filterEditor;
80
-
81
- return (
82
- <div
83
- onPointerUp={stopPropagation}
84
- onPointerDown={stopPropagation}
85
- className={`${InfiniteTableColumnHeaderFilterClassName} ${HeaderFilterCls}`}
86
- style={{ height: props.columnHeaderHeight }}
87
- >
88
- {FilterEditor ? <FilterEditor {...filterEditorProps} /> : null}
89
- </div>
90
- );
91
- }
92
-
93
- export function InfiniteTableColumnHeaderFilterEmpty() {
94
- return (
95
- <div
96
- onPointerUp={stopPropagation}
97
- onPointerDown={stopPropagation}
98
- className={`${InfiniteTableColumnHeaderFilterClassName} ${HeaderFilterCls}`}
99
- style={{ height: '100%' }}
100
- />
101
- );
102
- }
@@ -1,163 +0,0 @@
1
- import * as React from 'react';
2
- import { useCallback, useEffect, useRef } from 'react';
3
-
4
- import { join } from '../../../../utils/join';
5
- import { RawTable } from '../../../HeadlessTable/RawTable';
6
-
7
- import {
8
- TableRenderCellFn,
9
- TableRenderCellFnParam,
10
- } from '../../../HeadlessTable/ReactHeadlessTableRenderer';
11
- import { ScrollPosition } from '../../../types/ScrollPosition';
12
- import { useInfiniteTable } from '../../hooks/useInfiniteTable';
13
- import { internalProps } from '../../internalProps';
14
- import { InfiniteTableComputedColumnGroup } from '../../types/InfiniteTableProps';
15
-
16
- import { HeaderClsRecipe } from './header.css';
17
- import { InfiniteTableHeaderCell } from './InfiniteTableHeaderCell';
18
- import { InfiniteTableHeaderGroup } from './InfiniteTableHeaderGroup';
19
- import type { InfiniteTableHeaderProps } from './InfiniteTableHeaderTypes';
20
-
21
- // import { transformTranslateZero } from '../../utilities.css';
22
-
23
- const { rootClassName } = internalProps;
24
-
25
- export const TableHeaderClassName = `${rootClassName}Header`;
26
-
27
- function InfiniteTableHeaderFn<T>(
28
- props: InfiniteTableHeaderProps<T> & React.HTMLAttributes<HTMLDivElement>,
29
- ) {
30
- const {
31
- bodyBrain,
32
- headerBrain: brain,
33
- columns,
34
- style,
35
- className,
36
- columnHeaderHeight,
37
- columnAndGroupTreeInfo,
38
-
39
- columnGroupsMaxDepth,
40
- } = props;
41
-
42
- const {
43
- computed,
44
- componentState: { headerBrain, headerOptions },
45
- } = useInfiniteTable<T>();
46
-
47
- const { computedColumnsMap, showColumnFilters } = computed;
48
-
49
- useEffect(() => {
50
- const onScroll = (scrollPosition: ScrollPosition) => {
51
- if (domRef.current) {
52
- domRef.current.style.transform = `translate3d(-${scrollPosition.scrollLeft}px, 0px, 0px)`;
53
- }
54
- };
55
-
56
- const removeOnScroll = brain.onScroll(onScroll);
57
-
58
- return removeOnScroll;
59
- }, [brain]);
60
-
61
- const domRef = useRef<HTMLDivElement | null>(null);
62
-
63
- const headerCls = HeaderClsRecipe({
64
- overflow: false,
65
- });
66
-
67
- const domProps: React.HTMLProps<HTMLDivElement> = {
68
- ref: domRef,
69
- className: join(
70
- TableHeaderClassName,
71
-
72
- `${TableHeaderClassName}--virtualized`,
73
- className,
74
- headerCls,
75
- ),
76
- style: { ...style, height: columnHeaderHeight },
77
- };
78
-
79
- const renderCell: TableRenderCellFn = useCallback(
80
- (params: TableRenderCellFnParam) => {
81
- const {
82
- rowIndex,
83
- colIndex,
84
- domRef,
85
- height,
86
- widthWithColspan,
87
- heightWithRowspan,
88
- hidden,
89
- } = params;
90
-
91
- const column = columns[colIndex];
92
- if (!column || hidden) {
93
- return null;
94
- }
95
- const colGroupItem = columnAndGroupTreeInfo
96
- ? columnAndGroupTreeInfo.pathsToCells.get([rowIndex, colIndex])
97
- : null;
98
-
99
- if (colGroupItem && colGroupItem.type === 'group') {
100
- const columns = colGroupItem.columnItems.map((item) => item.ref);
101
- const computedColumnGroup: InfiniteTableComputedColumnGroup = {
102
- ...colGroupItem.ref,
103
- id: colGroupItem.id,
104
- uniqueGroupId: colGroupItem.uniqueGroupId,
105
- depth: colGroupItem.depth,
106
- columns: columns.map((c) => c.id),
107
- computedWidth: colGroupItem.computedWidth,
108
- groupOffset: colGroupItem.groupOffset,
109
- };
110
-
111
- return (
112
- <InfiniteTableHeaderGroup
113
- bodyBrain={bodyBrain}
114
- columnGroupsMaxDepth={columnGroupsMaxDepth}
115
- domRef={domRef}
116
- columns={columns}
117
- width={widthWithColspan}
118
- height={height}
119
- columnGroup={computedColumnGroup}
120
- />
121
- );
122
- }
123
-
124
- return (
125
- <InfiniteTableHeaderCell<T>
126
- domRef={domRef}
127
- column={column}
128
- headerOptions={headerOptions}
129
- width={widthWithColspan}
130
- height={heightWithRowspan}
131
- columnsMap={computedColumnsMap}
132
- />
133
- );
134
- },
135
-
136
- // leave columnHeaderHeight here, as it's needed even
137
- // since it can change - eg, when the corresponding CSS variable changes
138
- // do it needs to trigger a re-render
139
- [
140
- headerOptions,
141
- columns,
142
- columnHeaderHeight,
143
- columnAndGroupTreeInfo,
144
- columnGroupsMaxDepth,
145
- showColumnFilters,
146
- ],
147
- );
148
-
149
- return (
150
- <div {...domProps}>
151
- <RawTable
152
- name="header"
153
- renderCell={renderCell}
154
- brain={headerBrain}
155
- cellHoverClassNames={[]}
156
- />
157
- </div>
158
- );
159
- }
160
-
161
- export const InfiniteTableHeader = React.memo(
162
- InfiniteTableHeaderFn,
163
- ) as typeof InfiniteTableHeaderFn;