@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,10 +0,0 @@
1
- import { InfiniteTableGroupColumnBase } from '../../components/InfiniteTable/types';
2
- import { KeyOfNoSymbol } from '../../components/InfiniteTable/types/Utility';
3
-
4
- export type GroupKeyType<T extends any = any> = T; //string | number | symbol | null | undefined;
5
-
6
- export type GroupBy<DataType, KeyType> = {
7
- field: KeyOfNoSymbol<DataType>;
8
- toKey?: (value: any, data: DataType) => GroupKeyType<KeyType>;
9
- column?: Partial<InfiniteTableGroupColumnBase<DataType>>;
10
- };
package/src/utils/join.ts DELETED
@@ -1,4 +0,0 @@
1
- const join = (...args: (string | number | void | null)[]): string =>
2
- args.filter((x) => !!`${x}`).join(' ');
3
-
4
- export { join };
@@ -1,21 +0,0 @@
1
- export function arrayIntersection<T>(...arrays: T[][]): T[] {
2
- if (!arrays.length) {
3
- return [] as T[];
4
- }
5
- const map = new Map();
6
- arrays.forEach((arr) => {
7
- for (let i = 0, len = arr.length; i < len; i++) {
8
- const item = arr[i];
9
- const count = map.get(item) ?? 0;
10
-
11
- map.set(item, count + 1);
12
- }
13
-
14
- return map;
15
- });
16
-
17
- const len = arrays.length;
18
- return arrays[0].filter((x: T) => {
19
- return map.get(x) === len;
20
- });
21
- }
@@ -1,2 +0,0 @@
1
- declare const minified: boolean;
2
- export default minified;
@@ -1,6 +0,0 @@
1
- function checkMinified(arg) {
2
- /* this is a simple comment */
3
- }
4
-
5
- export default checkMinified.toString() !=
6
- 'function checkMinified(arg) { /* this is a simple comment */ }';
@@ -1,151 +0,0 @@
1
- import TYPES from './sortTypes';
2
-
3
- export type SortDir = 1 | -1;
4
-
5
- export type MultisortInfo<T> = {
6
- /**
7
- * The sorting direction
8
- */
9
- dir: SortDir;
10
-
11
- /**
12
- * for now 'string' and 'number' are known types, meaning they have
13
- * sort functions already implemented
14
- */
15
- type?: string;
16
-
17
- fn?: (a: any, b: any) => number;
18
-
19
- /**
20
- * a property whose value to use for sorting on the array items
21
- */
22
- field?: keyof T;
23
-
24
- /**
25
- * or a function to retrieve the item value to use for sorting
26
- */
27
- valueGetter?: (item: T) => any;
28
- };
29
-
30
- export type MultisortInfoAllowMultipleFields<T> = Omit<
31
- MultisortInfo<T>,
32
- 'field'
33
- > & {
34
- field?: keyof T | (keyof T)[];
35
- };
36
-
37
- export interface MultisortFn<T> {
38
- (sortInfo: MultisortInfo<T>[], array: T[]): T[];
39
- knownTypes: {
40
- [key: string]: (first: T, second: T) => number;
41
- };
42
- }
43
-
44
- export const multisort = <T>(
45
- sortInfo: MultisortInfoAllowMultipleFields<T>[],
46
- array: T[],
47
- get?: (item: any) => T,
48
- ): T[] => {
49
- const plainSortInfo = sortInfo
50
- .map((sortInfo) => {
51
- if (Array.isArray(sortInfo.field)) {
52
- return sortInfo.field.map((field) => {
53
- return { ...sortInfo, field } as MultisortInfo<T>;
54
- });
55
- }
56
-
57
- return sortInfo as MultisortInfo<T>;
58
- })
59
- .flat();
60
-
61
- array.sort(getMultisortFunction<T>(plainSortInfo, get));
62
-
63
- return array;
64
- };
65
-
66
- multisort.knownTypes = TYPES;
67
-
68
- const getSingleSortFunction = <T>(info: MultisortInfo<T>) => {
69
- if (!info) {
70
- return;
71
- }
72
-
73
- const field = info.field;
74
- const valueGetter = info.valueGetter;
75
- const dir = info.dir < 0 ? -1 : info.dir > 0 ? 1 : 0;
76
-
77
- if (!dir) {
78
- return;
79
- }
80
-
81
- let fn = info.fn;
82
-
83
- if (!fn && info.type) {
84
- fn = multisort.knownTypes[info.type];
85
- if (!fn) {
86
- console.warn(
87
- `Unknown sort type "${info.type}" - please pass one of ${Object.keys(
88
- multisort.knownTypes,
89
- ).join(', ')}`,
90
- );
91
- }
92
- }
93
-
94
- if (!fn) {
95
- fn = TYPES.string;
96
- }
97
-
98
- return (first: T, second: T) => {
99
- const a = valueGetter ? valueGetter(first) : field ? first[field] : first;
100
- const b = valueGetter
101
- ? valueGetter(second)
102
- : field
103
- ? second[field]
104
- : second;
105
-
106
- return dir * fn!(a, b);
107
- };
108
- };
109
-
110
- const getSortFunctions = <T>(sortInfo: MultisortInfo<T>[]) => {
111
- return sortInfo
112
- .map(getSingleSortFunction)
113
- .filter((fn) => fn instanceof Function);
114
- };
115
-
116
- const getMultisortFunction = <T>(
117
- sortInfo: MultisortInfo<T>[],
118
- get?: (item: any) => T,
119
- ) => {
120
- const fns = getSortFunctions<T>(sortInfo);
121
-
122
- return (first: T, second: T): number => {
123
- if (get) {
124
- first = get(first);
125
- second = get(second);
126
- }
127
-
128
- let result = 0;
129
- let i = 0;
130
- let fn;
131
-
132
- const len = fns.length;
133
-
134
- for (; i < len; i++) {
135
- fn = fns[i];
136
- if (!fn) {
137
- continue;
138
- }
139
-
140
- result = fn(first, second);
141
-
142
- if (result !== 0) {
143
- return result;
144
- }
145
- }
146
-
147
- return result;
148
- };
149
- };
150
-
151
- export { getMultisortFunction, getSortFunctions };
@@ -1,25 +0,0 @@
1
- export const numberComparator = function (
2
- first: number,
3
- second: number,
4
- ): number {
5
- return first - second;
6
- };
7
-
8
- export const stringComparator = function (
9
- first: string,
10
- second: string,
11
- ): number {
12
- first = `${first}`;
13
- second = `${second}`;
14
-
15
- return first.localeCompare(second);
16
- };
17
-
18
- export const defaultSortTypes: {
19
- [key: string]: (first: any, second: any) => number;
20
- } = {
21
- number: numberComparator,
22
- string: stringComparator,
23
- };
24
-
25
- export default defaultSortTypes;
@@ -1,92 +0,0 @@
1
- # Row status:
2
-
3
- 1. inspired by react-query?
4
-
5
- - https://react-query.tanstack.com/guides/queries
6
- - familiar for react devs
7
-
8
- 2. HTTP status codes? https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
9
-
10
- - too much?
11
-
12
- # Row vs Cell Status vs Column Status
13
-
14
- - should we support independent cell status or just derive from row status?
15
- - column status?
16
- - group status?
17
-
18
- # Error status
19
-
20
- - how to keep error info?
21
- - per row: unnecessary overhead as most errors will be per row batch
22
- - er batch: how to keep it in sync with the individual rows?
23
-
24
- # Retry/refetch info
25
-
26
- - do we even (intend to) support this?
27
- - if yes, do we want to keep track of it (ex. refetching, 3. try, etc)?
28
-
29
- # add statusin rowInfo object or in some state map?
30
-
31
- - support for:
32
- - lazy loaded normal row
33
- - lazy loaded group (children) rows
34
-
35
- // batched lazy loading
36
-
37
- // per batch
38
- RowInfo.ts:
39
- status: not_loaded
40
- directChildrenStatus: not_loaded
41
- allChildrenStatus: not_loaded
42
-
43
- RowInfo.ts:
44
- status: loading
45
- directChildrenStatus: not_loaded
46
- allChildrenStatus: not_loaded
47
-
48
- RowInfo.ts:
49
- status: available
50
- directChildrenStatus: not_loaded
51
- allChildrenStatus: not_loaded
52
-
53
- // stable viewport
54
-
55
- $$
56
- expand
57
-
58
- RowInfo.ts:
59
- status: available
60
- directChildrenStatus: loading
61
- allChildrenStatus: not_loaded
62
-
63
- // stable viewport
64
-
65
- RowInfo.ts:
66
- status: available
67
- directChildrenStatus: available
68
- allChildrenStatus: not_loaded
69
-
70
- // 1. child Row Info
71
- RowInfo.ts:
72
- status: available
73
- addDirectChildrenStatus: not_loaded
74
- allChildrenStatus: not_loaded
75
-
76
-
77
- // type status =
78
- 'available' | // rowInfo.data !== null
79
- 'loading' | // status === 'loading'
80
- 'not_loaded' | // rowInfo.data === null
81
- 'error' // rowInfo.errorInfo !== null
82
-
83
- Available status:
84
- data available
85
- all direct children data available
86
- all children data available
87
- Loading status:
88
-
89
-
90
- $$
91
-
92
- // differentiate between no_data & loading_Data??
@@ -1,34 +0,0 @@
1
- import { Point, PointCoords } from './Point';
2
-
3
- import { PolyWithPoints } from './PolyWithPoints';
4
- import { ArrayWithAtLeast3 } from './types';
5
-
6
- export class ConvexPoly extends PolyWithPoints {
7
- points!: ArrayWithAtLeast3<Point>;
8
-
9
- static clone(points: ArrayWithAtLeast3<PointCoords>) {
10
- return new ConvexPoly(points);
11
- }
12
-
13
- constructor(points: ArrayWithAtLeast3<PointCoords>) {
14
- super();
15
- this.points = points.map(Point.clone) as ArrayWithAtLeast3<Point>;
16
- }
17
-
18
- getPoints() {
19
- return this.points as ArrayWithAtLeast3<PointCoords>;
20
- }
21
-
22
- shift(
23
- shiftOptions:
24
- | { top: number }
25
- | { top: number; left: number }
26
- | { left: number },
27
- ) {
28
- this.points.forEach((p) => {
29
- p.shift(shiftOptions);
30
- });
31
-
32
- return this;
33
- }
34
- }
@@ -1,51 +0,0 @@
1
- export type PointCoords = {
2
- top: number;
3
- left: number;
4
- };
5
- export class Point {
6
- top: PointCoords['top'] = 0;
7
- left: PointCoords['left'] = 0;
8
-
9
- static clone(point: PointCoords) {
10
- return new Point(point);
11
- }
12
-
13
- static from(point: PointCoords) {
14
- return new Point(point);
15
- }
16
-
17
- constructor(point: PointCoords) {
18
- this.left = point.left;
19
- this.top = point.top;
20
- }
21
-
22
- shift(
23
- shiftOptions:
24
- | { top: number }
25
- | { top: number; left: number }
26
- | { left: number },
27
- ) {
28
- if ((shiftOptions as { top: number }).top != null) {
29
- this.top += (shiftOptions as { top: number }).top;
30
- }
31
- if ((shiftOptions as { left: number }).left != null) {
32
- this.left += (shiftOptions as { left: number }).left;
33
- }
34
- return this;
35
- }
36
-
37
- getDistanceToPoint(point: PointCoords) {
38
- const shiftTop = point.top - this.top;
39
- const shiftLeft = point.left - this.left;
40
-
41
- return {
42
- top: shiftTop,
43
- left: shiftLeft,
44
- };
45
- }
46
- }
47
-
48
- export const originPoint: PointCoords = {
49
- left: 0,
50
- top: 0,
51
- };
@@ -1,52 +0,0 @@
1
- import { PointCoords } from './Point';
2
- import { polyContainsPoint } from './polyContainsPoint';
3
- import { ArrayWithAtLeast3 } from './types';
4
-
5
- export abstract class PolyWithPoints {
6
- abstract getPoints(): ArrayWithAtLeast3<PointCoords>;
7
-
8
- abstract shift(
9
- shiftOptions:
10
- | { top: number }
11
- | { top: number; left: number }
12
- | { left: number },
13
- ): PolyWithPoints;
14
-
15
- containsPoint(point: PointCoords): boolean {
16
- return polyContainsPoint(this.getPoints(), point);
17
- }
18
- contains(poly: PolyWithPoints): boolean {
19
- const points = poly.getPoints();
20
-
21
- for (let i = 0, len = points.length; i < len; i++) {
22
- if (!this.containsPoint(points[i])) {
23
- return false;
24
- }
25
- }
26
-
27
- return true;
28
- }
29
- intersects(r: PolyWithPoints): boolean {
30
- return this.privateIntersects(r, false);
31
- }
32
-
33
- privateIntersects(r: PolyWithPoints, skipOtherCheck: boolean): boolean {
34
- const pointsOfR = r.getPoints();
35
- for (let i = 0, len = pointsOfR.length; i < len; i++) {
36
- if (this.containsPoint(pointsOfR[i])) {
37
- return true;
38
- }
39
- }
40
- if (skipOtherCheck) {
41
- return false;
42
- }
43
- // there is another case, when we have 2 rectangles, r1, and r2
44
- // and r2 is fully inside r1 - intersects should treat this case as well
45
-
46
- // calling r2.intersects(r1) should return true
47
- // but the above is not enough for this
48
-
49
- // so we execute the reverse as well
50
- return r.privateIntersects(this, true);
51
- }
52
- }
@@ -1,98 +0,0 @@
1
- import { ConvexPoly } from './ConvexPoly';
2
- import { Point, PointCoords } from './Point';
3
- import { PolyWithPoints } from './PolyWithPoints';
4
-
5
- type CoordsWithSize = {
6
- width: number;
7
- height: number;
8
- left: number;
9
- top: number;
10
- };
11
- type CoordsNoSize = {
12
- right: number;
13
- bottom: number;
14
- left: number;
15
- top: number;
16
- };
17
-
18
- export type RectangleCoords = CoordsWithSize | CoordsNoSize;
19
- export class Rectangle extends PolyWithPoints {
20
- top: number = 0;
21
- left: number = 0;
22
-
23
- width: number = 0;
24
- height: number = 0;
25
-
26
- static fromDOMRect(rect: DOMRect) {
27
- return new Rectangle(rect);
28
- }
29
-
30
- static clone(rect: DOMRect | Rectangle | RectangleCoords) {
31
- return new Rectangle(rect);
32
- }
33
-
34
- static from(rect: DOMRect | Rectangle | RectangleCoords) {
35
- return Rectangle.clone(rect);
36
- }
37
-
38
- constructor(coordsAndSize: RectangleCoords) {
39
- super();
40
- if (!coordsAndSize) {
41
- debugger;
42
- }
43
- this.top = coordsAndSize.top;
44
- this.left = coordsAndSize.left;
45
-
46
- if (typeof (coordsAndSize as CoordsWithSize).width === 'number') {
47
- this.width = (coordsAndSize as CoordsWithSize).width;
48
- this.height = (coordsAndSize as CoordsWithSize).height;
49
- } else {
50
- this.width = (coordsAndSize as CoordsNoSize).right - coordsAndSize.left;
51
- this.height = (coordsAndSize as CoordsNoSize).bottom - coordsAndSize.top;
52
- }
53
- }
54
-
55
- containsPoint(p: PointCoords) {
56
- return new ConvexPoly(this.getPoints()).containsPoint(p);
57
- }
58
-
59
- getTopLeft() {
60
- return { left: this.left, top: this.top };
61
- }
62
-
63
- getTopRight() {
64
- return { left: this.left + this.width, top: this.top };
65
- }
66
-
67
- getBottomLeft() {
68
- return { left: this.left, top: this.top + this.height };
69
- }
70
-
71
- getBottomRight() {
72
- return { left: this.left + this.width, top: this.top + this.height };
73
- }
74
-
75
- getPoints() {
76
- return [
77
- this.getTopLeft(),
78
- this.getTopRight(),
79
- this.getBottomLeft(),
80
- this.getBottomRight(),
81
- ].map(Point.from) as [Point, Point, Point, Point];
82
- }
83
-
84
- shift(
85
- shiftOptions:
86
- | { top: number }
87
- | { top: number; left: number }
88
- | { left: number },
89
- ) {
90
- if ((shiftOptions as { top: number }).top != null) {
91
- this.top += (shiftOptions as { top: number }).top;
92
- }
93
- if ((shiftOptions as { left: number }).left != null) {
94
- this.left += (shiftOptions as { left: number }).left;
95
- }
96
- return this;
97
- }
98
- }
@@ -1,16 +0,0 @@
1
- import { ConvexPoly } from './ConvexPoly';
2
- import { PointCoords } from './Point';
3
- import { ArrayWith3 } from './types';
4
-
5
- type PointCoordsTimes3 = ArrayWith3<PointCoords>;
6
-
7
- export class Triangle extends ConvexPoly {
8
- // uncommenting this here breaks our tests - WHAT????
9
- // it's just narrowing down the type of the points member variable
10
- // - this should not introduce any change in behavior!!! however, TS is crazy about this one
11
- // points!: PointTimes3;
12
-
13
- constructor(points: PointCoordsTimes3) {
14
- super(points.slice(0, 3) as PointCoordsTimes3);
15
- }
16
- }