@infinite-table/infinite-react 0.1.2 → 0.2.1

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.
package/index.d.ts CHANGED
@@ -49,18 +49,14 @@ declare module "utils/multisort/index" {
49
49
  const getMultisortFunction: <T>(sortInfo: MultisortInfo<T>[], get?: ((item: any) => T) | undefined) => (first: T, second: T) => number;
50
50
  export { getMultisortFunction, getSortFunctions };
51
51
  }
52
- declare module "components/hooks/useOnce" {
52
+ declare module "utils/DeepMap/once" {
53
53
  export function once<ReturnType>(fn: () => ReturnType): () => ReturnType;
54
- export function useOnce<ReturnType>(fn: () => ReturnType): ReturnType;
55
- }
56
- declare module "components/types/VoidFn" {
57
- export type VoidFn = () => void;
58
54
  }
59
- declare module "utils/sortAscending" {
55
+ declare module "utils/DeepMap/sortAscending" {
60
56
  export const sortAscending: (a: number, b: number) => number;
61
57
  }
62
- declare module "utils/DeepMap" {
63
- import { VoidFn } from "components/types/VoidFn";
58
+ declare module "utils/DeepMap/index" {
59
+ type VoidFn = () => void;
64
60
  type Pair<KeyType, ValueType> = {
65
61
  value?: ValueType;
66
62
  map?: Map<KeyType, Pair<KeyType, ValueType>>;
@@ -149,7 +145,7 @@ declare module "components/hooks/useComponentState" {
149
145
  [k in keyof T_STATE]?: (value: T_STATE[k], { actions, state, }: {
150
146
  actions: ComponentStateGeneratedActions<T_STATE>;
151
147
  state: T_STATE;
152
- }) => void;
148
+ }) => void | boolean;
153
149
  };
154
150
  export type ComponentStateActions<T_STATE> = ComponentStateGeneratedActions<T_STATE>;
155
151
  export type ForwardPropsToStateFnResult<TYPE_PROPS, TYPE_RESULT> = Partial<{
@@ -161,6 +157,11 @@ declare module "components/hooks/useComponentState" {
161
157
  forwardProps?: (setupState: COMPONENT_SETUP_STATE) => ForwardPropsToStateFnResult<T_PROPS, COMPONENT_MAPPED_STATE>;
162
158
  allowedControlledPropOverrides?: Record<keyof T_PROPS, true>;
163
159
  interceptActions?: ComponentInterceptedActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>;
160
+ onPropChange?: (params: {
161
+ name: keyof T_PROPS;
162
+ oldValue: any;
163
+ newValue: any;
164
+ }, props: T_PROPS, actions: ComponentStateActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>) => void;
164
165
  mapPropsToState?: (params: {
165
166
  props: T_PROPS;
166
167
  state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & Partial<COMPONENT_DERIVED_STATE>;
@@ -185,6 +186,9 @@ declare module "components/hooks/useComponentState" {
185
186
  declare module "components/types/NonUndefined" {
186
187
  export type NonUndefined<T> = T extends undefined ? never : T;
187
188
  }
189
+ declare module "components/types/VoidFn" {
190
+ export type VoidFn = () => void;
191
+ }
188
192
  declare module "components/types/SubscriptionCallback" {
189
193
  import { VoidFn } from "components/types/VoidFn";
190
194
  export type SubscriptionCallbackOnChangeFn<T> = (node: T | null) => void;
@@ -195,10 +199,107 @@ declare module "components/types/SubscriptionCallback" {
195
199
  onChange: (fn: SubscriptionCallbackOnChangeFn<T>) => VoidFn;
196
200
  }
197
201
  }
202
+ declare module "components/types/Size" {
203
+ export interface Size {
204
+ width: number;
205
+ height: number;
206
+ }
207
+ export type OnResizeFn = (size: {
208
+ width: number;
209
+ height: number;
210
+ }) => void;
211
+ }
212
+ declare module "components/VirtualBrain/index" {
213
+ import { Logger } from "utils/debug";
214
+ import { Size } from "components/types/Size";
215
+ import type { OnScrollFn, ScrollPosition } from "components/types/ScrollPosition";
216
+ type MainAxisOptions = 'vertical' | 'horizontal';
217
+ export type VirtualBrainOptions = {
218
+ mainAxis: MainAxisOptions;
219
+ itemSize: MainAxisSize;
220
+ itemSpan?: ({ itemIndex }: {
221
+ itemIndex: number;
222
+ }) => number;
223
+ count: number;
224
+ name?: string;
225
+ };
226
+ export type MainAxisSize = number | ((itemIndex: number) => number);
227
+ type OnRenderCountChangeFn = (renderCount: number) => void;
228
+ type OnSizeChangeFn = (size: number) => void;
229
+ type OnDestroyFn = () => void;
230
+ export type GetItemPositionFn = (itemIndex: number) => number;
231
+ export type RenderRange = {
232
+ renderStartIndex: number;
233
+ renderEndIndex: number;
234
+ };
235
+ export type OnRenderRangeChangeFn = (renderRange: RenderRange) => void;
236
+ export class VirtualBrain extends Logger {
237
+ private scrollPosition;
238
+ private scrollPositionOnMainAxis;
239
+ private itemSpanParent;
240
+ private itemSpanValue;
241
+ private itemSizeCache;
242
+ private itemOffsetCache;
243
+ private options;
244
+ private destroyed;
245
+ private totalSize;
246
+ private onScrollFns;
247
+ private onTotalSizeChangeFns;
248
+ private onRenderCountChangeFns;
249
+ private onRenderRangeChangeFns;
250
+ private onDestroyFns;
251
+ name: string | undefined;
252
+ private renderCount;
253
+ private renderRange;
254
+ private availableSize;
255
+ constructor(options: VirtualBrainOptions);
256
+ setAvailableSize: (size: Size) => void;
257
+ getOptions(): VirtualBrainOptions;
258
+ private updateRenderCount;
259
+ private computeRenderCount;
260
+ private setRenderCount;
261
+ private updateRenderRange;
262
+ getRenderStartIndex(): number;
263
+ getRenderCount: () => number;
264
+ setScrollPosition: (scrollPosition: ScrollPosition) => void;
265
+ private notifyScrollChange;
266
+ private notifyDestroy;
267
+ private notifyTotalSizeChange;
268
+ private notifyRenderCountChange;
269
+ private notifyRenderRangeChange;
270
+ getRenderRange: () => RenderRange;
271
+ private setRenderRange;
272
+ private computeRenderRange;
273
+ getScrollPosition: () => ScrollPosition;
274
+ onScroll: (fn: OnScrollFn) => () => void;
275
+ onTotalSizeChange: (fn: OnSizeChangeFn) => () => void;
276
+ onRenderCountChange: (fn: OnRenderCountChangeFn) => () => void;
277
+ onRenderRangeChange: (fn: OnRenderRangeChangeFn) => () => void;
278
+ onDestroy: (fn: OnDestroyFn) => () => void;
279
+ update: (newCount: VirtualBrainOptions['count'], newItemSize: VirtualBrainOptions['itemSize'], newItemSpan?: VirtualBrainOptions['itemSpan']) => void;
280
+ private reset;
281
+ private computeItemSpanUpTo;
282
+ private computeCacheFor;
283
+ private getItemSizeCacheFor;
284
+ getItemSpan: (itemIndex: number) => number;
285
+ getItemSpanParent: (itemIndex: number) => number;
286
+ getItemSizeWithSpan: (itemIndex: number, itemSpan: number) => number;
287
+ /**
288
+ * For now, this doesn't take into account the itemspan, and it's okay not to
289
+ * @param itemIndex
290
+ * @returns the size of the specified item
291
+ */
292
+ getItemSize: (itemIndex: number) => number;
293
+ getTotalSize: () => number;
294
+ getItemAt: (scrollPos: number) => number;
295
+ getItemOffsetFor: (itemIndex: number) => number;
296
+ destroy: () => void;
297
+ }
298
+ }
198
299
  declare module "components/DataSource/types" {
199
300
  import * as React from 'react';
200
301
  import { MultisortInfo } from "utils/multisort/index";
201
- import { DeepMap } from "utils/DeepMap";
302
+ import { DeepMap } from "utils/DeepMap/index";
202
303
  import { DeepMapGroupValueType, GroupBy, GroupKeyType, PivotBy } from "utils/groupAndPivot/index";
203
304
  import { InfiniteTableColumn, InfiniteTableColumnGroup, InfiniteTableRowInfo, Scrollbars } from "components/InfiniteTable/index";
204
305
  import { ComponentStateActions } from "components/hooks/useComponentState";
@@ -206,15 +307,22 @@ declare module "components/DataSource/types" {
206
307
  import { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
207
308
  import { NonUndefined } from "components/types/NonUndefined";
208
309
  import { SubscriptionCallback } from "components/types/SubscriptionCallback";
310
+ import { ScrollStopInfo } from "components/InfiniteTable/types/InfiniteTableProps";
311
+ import { RenderRange } from "components/VirtualBrain/index";
209
312
  export interface DataSourceDataParams<T> {
210
313
  originalDataArray: T[];
211
314
  sortInfo?: DataSourceSortInfo<T>;
212
315
  groupBy?: DataSourcePropGroupBy<T>;
213
316
  pivotBy?: DataSourcePropPivotBy<T>;
317
+ lazyLoadBatchSize?: number;
318
+ lazyLoadStartIndex?: number;
319
+ groupKeys?: any[];
320
+ aggregationReducers?: DataSourcePropAggregationReducers<T>;
214
321
  livePaginationCursor?: DataSourceLivePaginationCursorValue;
322
+ cursorId?: DataSourceSetupState<T>['cursorId'];
215
323
  changes?: DataSourceDataParamsChanges<T>;
216
324
  }
217
- export type DataSourceDataParamsChanges<T> = Record<keyof Omit<DataSourceDataParams<T>, 'originalDataArray' | 'changes'>, true>;
325
+ export type DataSourceDataParamsChanges<T> = Partial<Record<keyof Omit<DataSourceDataParams<T>, 'originalDataArray' | 'changes'>, true>>;
218
326
  export type DataSourceSingleSortInfo<T> = MultisortInfo<T> & {
219
327
  field?: keyof T;
220
328
  id?: string;
@@ -224,6 +332,8 @@ declare module "components/DataSource/types" {
224
332
  export type DataSourceSortInfo<T> = null | DataSourceSingleSortInfo<T> | DataSourceSingleSortInfo<T>[];
225
333
  export type DataSourceRemoteData<T> = {
226
334
  data: T[];
335
+ mappings?: DataSourceMappings;
336
+ totalCount?: number;
227
337
  livePaginationCursor?: DataSourceLivePaginationCursorValue;
228
338
  };
229
339
  export type DataSourceData<T> = T[] | DataSourceRemoteData<T> | Promise<T[] | DataSourceRemoteData<T>> | ((dataInfo: DataSourceDataParams<T>) => T[] | Promise<T[] | DataSourceRemoteData<T>>);
@@ -237,6 +347,8 @@ declare module "components/DataSource/types" {
237
347
  export interface DataSourceMappedState<T> {
238
348
  aggregationReducers?: DataSourceProps<T>['aggregationReducers'];
239
349
  livePagination: DataSourceProps<T>['livePagination'];
350
+ fullLazyLoad: DataSourceProps<T>['fullLazyLoad'];
351
+ lazyLoadBatchSize: DataSourceProps<T>['lazyLoadBatchSize'];
240
352
  onDataParamsChange: DataSourceProps<T>['onDataParamsChange'];
241
353
  data: DataSourceProps<T>['data'];
242
354
  primaryKey: DataSourceProps<T>['primaryKey'];
@@ -244,27 +356,50 @@ declare module "components/DataSource/types" {
244
356
  groupRowsState: NonUndefined<DataSourceProps<T>['groupRowsState']>;
245
357
  pivotBy: DataSourceProps<T>['pivotBy'];
246
358
  loading: NonUndefined<DataSourceProps<T>['loading']>;
359
+ collapseGroupRowsOnDataFunctionChange: NonUndefined<DataSourceProps<T>['collapseGroupRowsOnDataFunctionChange']>;
247
360
  sortInfo: DataSourceSingleSortInfo<T>[] | null;
248
361
  }
249
362
  export type DataSourceAggregationReducer<T, AggregationResultType> = {
363
+ name?: string;
250
364
  field?: keyof T;
251
- initialValue: AggregationResultType;
365
+ initialValue?: AggregationResultType;
252
366
  getter?: (data: T) => any;
253
- reducer: (accumulator: any, value: any, data: T) => AggregationResultType | any;
367
+ reducer: string | ((accumulator: any, value: any, data: T) => AggregationResultType | any);
254
368
  done?: (accumulatedValue: AggregationResultType | any, array: T[]) => AggregationResultType;
255
369
  };
370
+ export type DataSourceMappings = Record<'totals' | 'values', string>;
371
+ export type LazyGroupDataItem<DataType> = {
372
+ data: Partial<DataType>;
373
+ keys: any[];
374
+ aggregations?: Record<string, any>;
375
+ pivot?: {
376
+ values: Record<string, any>;
377
+ totals?: Record<string, any>;
378
+ };
379
+ };
380
+ export type LazyGroupRowInfo<DataType> = {
381
+ items: LazyGroupDataItem<DataType>[];
382
+ totalCount: number;
383
+ };
384
+ export type LazyGroupDataDeepMap<DataType, KeyType = string> = DeepMap<KeyType, LazyGroupRowInfo<DataType>>;
256
385
  export interface DataSourceSetupState<T> {
386
+ pivotMappings?: DataSourceMappings;
257
387
  propsCache: Map<keyof DataSourceProps<T>, WeakMap<any, any>>;
258
388
  showSeparatePivotColumnForSingleAggregation: boolean;
259
389
  dataParams?: DataSourceDataParams<T>;
390
+ originalLazyGroupData: LazyGroupDataDeepMap<T>;
391
+ originalLazyGroupDataChangeDetect: number | string;
392
+ scrollStopDelayUpdatedByTable: number;
260
393
  notifyScrollbarsChange: SubscriptionCallback<Scrollbars>;
394
+ notifyScrollStop: SubscriptionCallback<ScrollStopInfo>;
395
+ notifyRenderRangeChange: SubscriptionCallback<RenderRange>;
261
396
  originalDataArray: T[];
262
397
  lastSortDataArray?: T[];
263
398
  lastGroupDataArray?: InfiniteTableRowInfo<T>[];
264
399
  dataArray: InfiniteTableRowInfo<T>[];
265
400
  groupDeepMap?: DeepMap<GroupKeyType, DeepMapGroupValueType<T, any>>;
266
401
  pivotTotalColumnPosition: InfiniteTablePropPivotTotalColumnPosition;
267
- scrollBottomId: number | Symbol | DataSourceLivePaginationCursorValue;
402
+ cursorId: number | Symbol | DataSourceLivePaginationCursorValue;
268
403
  updatedAt: number;
269
404
  reducedAt: number;
270
405
  groupedAt: number;
@@ -276,11 +411,13 @@ declare module "components/DataSource/types" {
276
411
  pivotColumnGroups?: Map<string, InfiniteTableColumnGroup>;
277
412
  }
278
413
  export type DataSourcePropAggregationReducers<T> = Record<string, DataSourceAggregationReducer<T, any>>;
279
- export interface DataSourceProps<T> {
414
+ export type DataSourceProps<T> = {
280
415
  children: React.ReactNode | ((contextData: DataSourceState<T>) => React.ReactNode);
281
416
  primaryKey: keyof T;
282
417
  fields?: (keyof T)[];
283
418
  data: DataSourceData<T>;
419
+ fullLazyLoad?: boolean;
420
+ lazyLoadBatchSize?: number;
284
421
  loading?: boolean;
285
422
  defaultLoading?: boolean;
286
423
  onLoadingChange?: (loading: boolean) => void;
@@ -295,6 +432,7 @@ declare module "components/DataSource/types" {
295
432
  groupRowsState?: GroupRowsState;
296
433
  defaultGroupRowsState?: GroupRowsState;
297
434
  onGroupRowsStateChange?: (groupRowsState: GroupRowsState) => void;
435
+ collapseGroupRowsOnDataFunctionChange?: boolean;
298
436
  sortInfo?: DataSourceSortInfo<T>;
299
437
  defaultSortInfo?: DataSourceSortInfo<T>;
300
438
  onSortInfoChange?: ((sortInfo: DataSourceSingleSortInfo<T> | null) => void) | ((sortInfo: DataSourceSingleSortInfo<T>[]) => void);
@@ -302,7 +440,7 @@ declare module "components/DataSource/types" {
302
440
  livePagination?: boolean;
303
441
  livePaginationCursor?: DataSourcePropLivePaginationCursor<T>;
304
442
  onLivePaginationCursorChange?: (livePaginationCursor: DataSourceLivePaginationCursorValue) => void;
305
- }
443
+ };
306
444
  export type DataSourcePropLivePaginationCursor<T> = DataSourceLivePaginationCursorValue | DataSourceLivePaginationCursorFn<T>;
307
445
  export type DataSourceLivePaginationCursorFn<T> = (params: DataSourceLivePaginationCursorParams<T>) => DataSourceLivePaginationCursorValue;
308
446
  export type DataSourceLivePaginationCursorParams<T> = {
@@ -346,16 +484,25 @@ declare module "components/DataSource/publicHooks/useDataSource" {
346
484
  export function useDataSource<T>(): DataSourceState<T>;
347
485
  export function useDataSourceContextValue<T>(): DataSourceContextValue<T>;
348
486
  }
487
+ declare module "utils/getGlobal" {
488
+ export function getGlobal<T extends Window>(): T;
489
+ }
349
490
  declare module "components/hooks/useEffectWithChanges" {
350
491
  import { EffectCallback } from 'react';
351
492
  export function useEffectWithChanges(fn: (changes: Record<string, any>, prevValues: Record<string, any>) => void | (() => void), deps: Record<string, any>): void;
352
493
  export function useEffectWithObject(fn: EffectCallback, deps: Record<string, any>): void;
353
494
  }
495
+ declare module "components/utils/debounce" {
496
+ export function debounce(fn: Function, { wait }: {
497
+ wait: number;
498
+ }): (...args: any[]) => void;
499
+ }
354
500
  declare module "components/DataSource/privateHooks/useLoadData" {
355
- import { DataSourceDataParams, DataSourceState, DataSourceDataParamsChanges } from "components/DataSource/types";
356
- export function buildDataSourceDataParams<T>(componentState: DataSourceState<T>, changes?: DataSourceDataParamsChanges<T>): DataSourceDataParams<T>;
501
+ import { ComponentStateGeneratedActions } from "components/hooks/useComponentState";
502
+ import { DataSourceDataParams, DataSourceData, DataSourceState } from "components/DataSource/types";
503
+ export function buildDataSourceDataParams<T>(componentState: DataSourceState<T>, overrides?: Partial<DataSourceDataParams<T>>): DataSourceDataParams<T>;
504
+ export function loadData<T>(data: DataSourceData<T>, componentState: DataSourceState<T>, actions: ComponentStateGeneratedActions<DataSourceState<T>>, overrides?: Partial<DataSourceDataParams<T>>): Promise<void>;
357
505
  export function useLoadData<T>(): void;
358
- export function useLivePagination<T>(): void;
359
506
  }
360
507
  declare module "components/DataSource/state/normalizeSortInfo" {
361
508
  import { DataSourceSingleSortInfo, DataSourceSortInfo } from "components/DataSource/types";
@@ -366,7 +513,7 @@ declare module "components/utils/buildSubscriptionCallback" {
366
513
  export function buildSubscriptionCallback<T>(): SubscriptionCallback<T>;
367
514
  }
368
515
  declare module "utils/shallowEqualObjects" {
369
- export function shallowEqualObjects<T extends object | null>(objA: T, objB: T): boolean;
516
+ export function shallowEqualObjects<T extends object | null>(objA: T, objB: T, ignoreKeys?: Set<string>): boolean;
370
517
  }
371
518
  declare module "components/utils/discardCallsWithEqualArg" {
372
519
  export function discardCallsWithEqualArg<T = any>(fn: (arg: T) => void, timeframe?: number, getCompareObject?: (arg: T) => any): (arg: T) => void;
@@ -375,7 +522,8 @@ declare module "components/DataSource/state/getInitialState" {
375
522
  import { DataSourceMappedState, DataSourceProps, DataSourceDerivedState, DataSourceSetupState, DataSourceState } from "components/DataSource/types";
376
523
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
377
524
  import { ComponentInterceptedActions, ForwardPropsToStateFnResult } from "components/hooks/useComponentState";
378
- import { DataSourceDataParams } from "components/DataSource/index";
525
+ import { DataSourceComponentActions, DataSourceDataParams } from "components/DataSource/index";
526
+ export const defaultCursorId: unique symbol;
379
527
  export function initSetupState<T>(): DataSourceSetupState<T>;
380
528
  export const forwardProps: <T>(setupState: DataSourceSetupState<T>) => Partial<{
381
529
  data: 1 | ((value: import("components/DataSource").DataSourceData<T>) => import("components/DataSource").DataSourceData<T>);
@@ -383,16 +531,24 @@ declare module "components/DataSource/state/getInitialState" {
383
531
  sortInfo: 1 | ((value: import("components/DataSource").DataSourceSortInfo<T> | undefined) => import("components/DataSource").DataSourceSingleSortInfo<T>[] | null);
384
532
  groupBy: 1 | ((value: import("components/DataSource").DataSourcePropGroupBy<T> | undefined) => import("components/DataSource").DataSourcePropGroupBy<T>);
385
533
  pivotBy: 1 | ((value: import("components/DataSource").DataSourcePropPivotBy<T> | undefined) => import("components/DataSource").DataSourcePropPivotBy<T> | undefined);
534
+ lazyLoadBatchSize: 1 | ((value: number | undefined) => number | undefined);
386
535
  aggregationReducers: 1 | ((value: import("components/DataSource").DataSourcePropAggregationReducers<T> | undefined) => import("components/DataSource").DataSourcePropAggregationReducers<T> | undefined);
387
536
  livePagination: 1 | ((value: boolean | undefined) => boolean | undefined);
537
+ fullLazyLoad: 1 | ((value: boolean | undefined) => boolean | undefined);
388
538
  onDataParamsChange: 1 | ((value: ((dataParamsChange: DataSourceDataParams<T>) => void) | undefined) => ((dataParamsChange: DataSourceDataParams<T>) => void) | undefined);
389
539
  primaryKey: 1 | ((value: keyof T) => keyof T);
390
540
  groupRowsState: 1 | ((value: GroupRowsState<any> | undefined) => GroupRowsState<any>);
541
+ collapseGroupRowsOnDataFunctionChange: 1 | ((value: boolean | undefined) => boolean);
391
542
  }>;
392
543
  export function mapPropsToState<T extends any>(params: {
393
544
  props: DataSourceProps<T>;
394
545
  state: DataSourceState<T>;
546
+ oldState: DataSourceState<T> | null;
395
547
  }): DataSourceDerivedState<T>;
548
+ export function onPropChange<T>(params: {
549
+ name: keyof T;
550
+ newValue: any;
551
+ }, props: DataSourceProps<T>, actions: DataSourceComponentActions<T>): void;
396
552
  export function getInterceptActions<T>(): ComponentInterceptedActions<DataSourceState<T>>;
397
553
  }
398
554
  declare module "components/types/Renderable" {
@@ -424,6 +580,7 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
424
580
  import type { InfiniteTableColumnGroup, InfiniteTableRowInfo } from "components/InfiniteTable/types/index";
425
581
  import { CSSProperties } from 'react';
426
582
  import { AggregationReducer, InfiniteTableRowInfoGroup, InfiniteTableRowInfoNormal, PivotBy } from "utils/groupAndPivot/index";
583
+ import { InfiniteTableColumnPinnedValues } from "components/InfiniteTable/types/InfiniteTableProps";
427
584
  export type { DiscriminatedUnion, RequireAtLeastOne };
428
585
  export type InfiniteTableToggleGroupRowFn = (groupKeys: any[]) => void;
429
586
  export type InfiniteTableColumnRenderParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
@@ -454,7 +611,6 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
454
611
  column: InfiniteTableComputedColumn<T>;
455
612
  columnSortInfo: DataSourceSingleSortInfo<T> | null | undefined;
456
613
  }
457
- export type InfiniteTableColumnPinned = 'start' | 'end' | false;
458
614
  export type InfiniteTableColumnRenderFunction<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = ({ value, rowIndex, column, data, toggleGroupRow, toggleCurrentGroupRow, rowInfo, groupBy, }: InfiniteTableColumnRenderParam<DATA_TYPE, COL_TYPE>) => Renderable | null;
459
615
  export type InfiniteTableColumnRenderValueFunction<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnRenderFunction<DATA_TYPE, COL_TYPE>;
460
616
  export type InfiniteTableColumnHeaderRenderFunction<T> = ({ columnSortInfo, column, }: InfiniteTableColumnHeaderRenderParams<T>) => Renderable;
@@ -527,7 +683,7 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
527
683
  groupByField: string | string[];
528
684
  id?: string;
529
685
  };
530
- export type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & Partial<InfiniteTablePivotFinalColumn<T, any>>;
686
+ export type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & Partial<InfiniteTablePivotFinalColumnVariant<T, any>>;
531
687
  export type InfiniteTablePivotFinalColumnGroup<DataType, KeyType extends any = any> = InfiniteTableColumnGroup & {
532
688
  pivotBy: DataSourcePivotBy<DataType>[];
533
689
  pivotTotalColumnGroup?: true;
@@ -543,10 +699,11 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
543
699
  pivotAggregator: AggregationReducer<DataType, any>;
544
700
  pivotAggregatorIndex: number;
545
701
  pivotGroupKeys: KeyType[];
546
- pivotByAtIndex: PivotBy<DataType, KeyType>;
702
+ pivotByAtIndex?: PivotBy<DataType, KeyType>;
547
703
  pivotIndex: number;
548
704
  pivotGroupKey: KeyType;
549
705
  };
706
+ export type InfiniteTablePivotFinalColumnVariant<DataType, KeyType extends any = any> = InfiniteTablePivotFinalColumn<DataType, KeyType>;
550
707
  type InfiniteTableComputedColumnBase<T> = {
551
708
  computedWidth: number;
552
709
  computedOffset: number;
@@ -560,7 +717,7 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
560
717
  computedSortIndex: number;
561
718
  computedVisibleIndex: number;
562
719
  computedMultiSort: boolean;
563
- computedPinned: InfiniteTableColumnPinned;
720
+ computedPinned: InfiniteTableColumnPinnedValues;
564
721
  computedDraggable: boolean;
565
722
  computedFirstInCategory: boolean;
566
723
  computedLastInCategory: boolean;
@@ -574,13 +731,14 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
574
731
  }
575
732
  declare module "utils/groupAndPivot/getPivotColumnsAndColumnGroups" {
576
733
  import type { DataSourceAggregationReducer, DataSourcePivotBy } from "components/DataSource/index";
577
- import type { InfiniteTablePropColumnGroups, InfiniteTablePropColumnsMap } from "components/InfiniteTable/index";
734
+ import type { InfiniteTablePropColumnsMap } from "components/InfiniteTable/index";
578
735
  import type { InfiniteTablePivotColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
736
+ import { InfiniteTablePropColumnGroupsMap } from "components/InfiniteTable/types/InfiniteTableProps";
579
737
  import type { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
580
- import { DeepMap } from "utils/DeepMap";
738
+ import { DeepMap } from "utils/DeepMap/index";
581
739
  export type ComputedColumnsAndGroups<DataType> = {
582
740
  columns: InfiniteTablePropColumnsMap<DataType, InfiniteTablePivotColumn<DataType>>;
583
- columnGroups: InfiniteTablePropColumnGroups;
741
+ columnGroups: InfiniteTablePropColumnGroupsMap;
584
742
  };
585
743
  export function getPivotColumnsAndColumnGroups<DataType, KeyType = any>({ deepMap, pivotBy, pivotTotalColumnPosition, reducers, showSeparatePivotColumnForSingleAggregation, }: {
586
744
  deepMap: DeepMap<KeyType, boolean>;
@@ -632,11 +790,12 @@ declare module "components/DataSource/GroupRowsState" {
632
790
  }
633
791
  }
634
792
  declare module "utils/groupAndPivot/index" {
635
- import { DataSourceAggregationReducer } from "@infinite-table/infinite-react";
793
+ import { DataSourceAggregationReducer, DataSourceMappings, LazyGroupDataDeepMap } from "@infinite-table/infinite-react";
636
794
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
637
- import { InfiniteTableColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn, InfiniteTablePivotFinalColumnGroup } from "components/InfiniteTable/types/InfiniteTableColumn";
795
+ import { InfiniteTableColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumnGroup, InfiniteTablePivotFinalColumnVariant } from "components/InfiniteTable/types/InfiniteTableColumn";
638
796
  import { InfiniteTableColumnGroup, InfiniteTableGroupColumnBase } from "components/InfiniteTable/types/InfiniteTableProps";
639
- import { DeepMap } from "utils/DeepMap";
797
+ import { DeepMap } from "utils/DeepMap/index";
798
+ export const LAZY_ROOT_KEY_FOR_GROUPS: string;
640
799
  export type AggregationReducer<T, AggregationResultType = any> = DataSourceAggregationReducer<T, AggregationResultType> & {
641
800
  id: string;
642
801
  };
@@ -670,6 +829,7 @@ declare module "utils/groupAndPivot/index" {
670
829
  indexInAll: number;
671
830
  groupCount?: number;
672
831
  groupBy?: (keyof T)[];
832
+ rootGroupBy?: (keyof T)[];
673
833
  pivotValuesMap?: PivotValuesDeepMap<T, any>;
674
834
  reducerResults?: Record<string, AggregationReducerResult>;
675
835
  };
@@ -684,6 +844,7 @@ declare module "utils/groupAndPivot/index" {
684
844
  groupKeys?: any[];
685
845
  groupCount: number;
686
846
  groupBy: (keyof T)[];
847
+ rootGroupBy: (keyof T)[];
687
848
  pivotValuesMap?: PivotValuesDeepMap<T, any>;
688
849
  };
689
850
  export type GroupKeyType<T extends any = any> = T;
@@ -705,7 +866,7 @@ declare module "utils/groupAndPivot/index" {
705
866
  };
706
867
  export type PivotBy<DataType, KeyType> = Omit<GroupBy<DataType, KeyType>, 'column'> & {
707
868
  column?: InfiniteTableColumn<DataType> | (({ column, }: {
708
- column: InfiniteTablePivotFinalColumn<DataType, KeyType>;
869
+ column: InfiniteTablePivotFinalColumnVariant<DataType, KeyType>;
709
870
  }) => Partial<InfiniteTablePivotColumn<DataType>>);
710
871
  columnGroup?: InfiniteTableColumnGroup | (({ columnGroup, }: {
711
872
  columnGroup: InfiniteTablePivotFinalColumnGroup<DataType, KeyType>;
@@ -717,6 +878,9 @@ declare module "utils/groupAndPivot/index" {
717
878
  pivot?: PivotBy<DataType, KeyType>[];
718
879
  reducers?: Record<string, DataSourceAggregationReducer<DataType, any>>;
719
880
  };
881
+ type LazyGroupParams = {
882
+ mappings?: DataSourceMappings;
883
+ };
720
884
  export type DataGroupResult<DataType, KeyType extends any> = {
721
885
  deepMap: DeepMap<GroupKeyType<KeyType>, DeepMapGroupValueType<DataType, KeyType>>;
722
886
  groupParams: GroupParams<DataType, KeyType>;
@@ -725,6 +889,7 @@ declare module "utils/groupAndPivot/index" {
725
889
  topLevelPivotColumns?: DeepMap<GroupKeyType<KeyType>, boolean>;
726
890
  pivot?: PivotBy<DataType, KeyType>[];
727
891
  };
892
+ export function lazyGroup<DataType, KeyType extends string = string>(groupParams: GroupParams<DataType, KeyType> & LazyGroupParams, rootData: LazyGroupDataDeepMap<DataType>): DataGroupResult<DataType, KeyType>;
728
893
  export function group<DataType, KeyType = any>(groupParams: GroupParams<DataType, KeyType>, data: DataType[]): DataGroupResult<DataType, KeyType>;
729
894
  export function flatten<DataType, KeyType extends any>(groupResult: DataGroupResult<DataType, KeyType>): DataType[];
730
895
  export type EnhancedFlattenParam<DataType, KeyType = any> = {
@@ -923,12 +1088,15 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
923
1088
  import { DataSourceGroupBy, DataSourcePropGroupBy, DataSourcePropPivotBy, DataSourceState } from "components/DataSource/index";
924
1089
  import { Renderable } from "components/types/Renderable";
925
1090
  import { LoadMaskProps } from "components/InfiniteTable/components/LoadMask";
926
- import type { InfiniteTableBaseColumn, InfiniteTableColumn, InfiniteTableColumnPinned, InfiniteTableColumnRenderFunction, InfiniteTableComputedColumn, InfiniteTableComputedPivotFinalColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
1091
+ import type { InfiniteTableColumn, InfiniteTableColumnRenderFunction, InfiniteTableComputedColumn, InfiniteTableComputedPivotFinalColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
927
1092
  import { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
928
1093
  export type InfiniteTablePropColumnOrderNormalized = string[];
929
1094
  export type InfiniteTablePropColumnOrder = InfiniteTablePropColumnOrderNormalized | true;
930
- export type InfiniteTablePropColumnVisibility = Map<string, false>;
931
- export type InfiniteTablePropColumnPinning = Map<string, true | 'start' | 'end'>;
1095
+ export type InfiniteTablePropColumnVisibility = Record<string, false>;
1096
+ export type InfiniteTablePropColumnPinningMap = Map<string, true | 'start' | 'end'>;
1097
+ export type InfiniteTableColumnPinnedValues = false | 'start' | 'end';
1098
+ export type InfiniteTablePropColumnPinningRecord = Record<string, true | 'start' | 'end'>;
1099
+ export type InfiniteTablePropColumnPinning = InfiniteTablePropColumnPinningRecord | InfiniteTablePropColumnPinningMap;
932
1100
  export type InfiniteTableRowStyleFnParams<T> = {
933
1101
  rowIndex: number;
934
1102
  groupBy?: (keyof T)[];
@@ -952,6 +1120,7 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
952
1120
  maxWidth?: number;
953
1121
  defaultWidth?: number;
954
1122
  defaultFlex?: number;
1123
+ defaultPinned?: InfiniteTableColumnPinnedValues;
955
1124
  header?: InfiniteTableColumn<T>['header'];
956
1125
  comparer?: InfiniteTableColumn<T>['comparer'];
957
1126
  draggable?: InfiniteTableColumn<T>['draggable'];
@@ -959,7 +1128,6 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
959
1128
  resizable?: InfiniteTableColumn<T>['resizable'];
960
1129
  align?: InfiniteTableColumn<T>['align'];
961
1130
  verticalAlign?: InfiniteTableColumn<T>['verticalAlign'];
962
- defaultPinned?: InfiniteTableColumnPinned;
963
1131
  renderValue?: InfiniteTableColumn<T>['renderValue'];
964
1132
  render?: InfiniteTableColumn<T>['render'];
965
1133
  valueGetter?: InfiniteTableColumn<T>['valueGetter'];
@@ -990,11 +1158,14 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
990
1158
  export type InfiniteTablePropColumns<T, ColumnType = InfiniteTableColumn<T>> = InfiniteTablePropColumnsMap<T, ColumnType> | Record<string, ColumnType>;
991
1159
  export type InfiniteTableColumns<T> = InfiniteTablePropColumns<T>;
992
1160
  export type InfiniteTableColumnsMap<T> = InfiniteTablePropColumnsMap<T>;
993
- export type InfiniteTablePropColumnGroups = Map<string, InfiniteTableColumnGroup>;
1161
+ export type InfiniteTablePropColumnGroupsMap = Map<string, InfiniteTableColumnGroup>;
1162
+ export type InfiniteTablePropColumnGroupsRecord = Record<string, InfiniteTableColumnGroup>;
1163
+ export type InfiniteTablePropColumnGroups = InfiniteTablePropColumnGroupsRecord | InfiniteTablePropColumnGroupsMap;
994
1164
  /**
995
1165
  * the keys is an array of strings: first string in the array is the column group id, next strings are the ids of all columns in the group
996
1166
  * the value is the id of the column to leave as visible
997
1167
  */
1168
+ export type InfiniteTablePropCollapsedColumnGroupsMap = Map<string[], string>;
998
1169
  export type InfiniteTablePropCollapsedColumnGroups = Map<string[], string>;
999
1170
  export type InfiniteTableColumnGroupHeaderRenderParams = {
1000
1171
  columnGroup: InfiniteTableComputedColumnGroup;
@@ -1025,7 +1196,7 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
1025
1196
  pivotBy: DataSourcePropPivotBy<T>;
1026
1197
  };
1027
1198
  export type InfiniteTablePropGroupRenderStrategy = 'single-column' | 'multi-column' | 'inline';
1028
- export type InfiniteTableGroupColumnBase<T> = InfiniteTableBaseColumn<T> & {
1199
+ export type InfiniteTableGroupColumnBase<T> = InfiniteTableColumn<T> & {
1029
1200
  renderValue?: InfiniteTableColumnRenderFunction<T>;
1030
1201
  id?: string;
1031
1202
  };
@@ -1033,12 +1204,17 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
1033
1204
  renderValue?: InfiniteTableColumnRenderFunction<T, InfiniteTableComputedPivotFinalColumn<T>>;
1034
1205
  };
1035
1206
  export type InfiniteTablePropGroupColumn<T> = InfiniteTableGroupColumnBase<T> | InfiniteTableGroupColumnFunction<T>;
1036
- export type InfiniteTableGroupColumnFunction<T> = (options: InfiniteTableGroupColumnGetterOptions<T>, toggleGroupRow: (groupKeys: any[]) => void) => InfiniteTableGroupColumnBase<T>;
1207
+ export type InfiniteTableGroupColumnFunction<T> = (options: InfiniteTableGroupColumnGetterOptions<T>, toggleGroupRow: (groupKeys: any[]) => void) => Partial<InfiniteTableGroupColumnBase<T>>;
1037
1208
  export type InfiniteTablePropPivotColumn<T, COL_TYPE = InfiniteTableColumn<T>> = Partial<InfiniteTablePivotColumnBase<T>> | ((options: InfiniteTablePivotColumnGetterOptions<T, COL_TYPE>) => InfiniteTablePivotColumnBase<T>);
1038
1209
  export type InfiniteTablePropPivotRowLabelsColumn<T> = InfiniteTablePropPivotColumn<T>;
1039
1210
  export type InfiniteTablePropComponents = {
1040
1211
  LoadMask?: React.FC<LoadMaskProps>;
1041
1212
  };
1213
+ export type ScrollStopInfo = {
1214
+ scrollTop: number;
1215
+ firstVisibleRowIndex: number;
1216
+ lastVisibleRowIndex: number;
1217
+ };
1042
1218
  export interface InfiniteTableProps<T> {
1043
1219
  columns: InfiniteTablePropColumns<T>;
1044
1220
  pivotColumns?: InfiniteTablePropColumnsMap<T, InfiniteTablePivotColumn<T>>;
@@ -1095,6 +1271,8 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
1095
1271
  onBlurWithin?: (event: React.FocusEvent<HTMLDivElement>) => void;
1096
1272
  onScrollToTop?: () => void;
1097
1273
  onScrollToBottom?: () => void;
1274
+ scrollStopDelay?: number;
1275
+ onScrollStop?: (param: ScrollStopInfo) => void;
1098
1276
  scrollToBottomOffset?: number;
1099
1277
  defaultColumnOrder?: InfiniteTablePropColumnOrder;
1100
1278
  columnOrder?: InfiniteTablePropColumnOrder;
@@ -1110,16 +1288,6 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
1110
1288
  horizontal: boolean;
1111
1289
  };
1112
1290
  }
1113
- declare module "components/types/Size" {
1114
- export interface Size {
1115
- width: number;
1116
- height: number;
1117
- }
1118
- export type OnResizeFn = (size: {
1119
- width: number;
1120
- height: number;
1121
- }) => void;
1122
- }
1123
1291
  declare module "components/VirtualBrain/ScrollListener" {
1124
1292
  import { OnScrollFn, ScrollPosition } from "components/types/ScrollPosition";
1125
1293
  export class ScrollListener {
@@ -1134,7 +1302,7 @@ declare module "components/VirtualBrain/ScrollListener" {
1134
1302
  }
1135
1303
  declare module "components/InfiniteTable/types/InfiniteTableState" {
1136
1304
  import type { ScrollPosition } from "components/types/ScrollPosition";
1137
- import type { InfiniteTableColumnGroup, InfiniteTablePropColumnGroups, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnsMap, InfiniteTablePropColumnTypesMap, InfiniteTableProps } from "components/InfiniteTable/types/InfiniteTableProps";
1305
+ import type { InfiniteTableColumnGroup, InfiniteTablePropColumnGroupsMap, InfiniteTablePropColumnPinningMap, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnsMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility, InfiniteTableProps } from "components/InfiniteTable/types/InfiniteTableProps";
1138
1306
  import { Size } from "components/types/Size";
1139
1307
  import { MutableRefObject } from 'react';
1140
1308
  import { SubscriptionCallback } from "components/types/SubscriptionCallback";
@@ -1148,6 +1316,7 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1148
1316
  groupIndex: number;
1149
1317
  }>;
1150
1318
  export interface InfiniteTableSetupState<T> {
1319
+ propsCache: Map<keyof InfiniteTableProps<T>, WeakMap<any, any>>;
1151
1320
  columnsWhenInlineGroupRenderStrategy?: Map<string, InfiniteTableColumn<T>>;
1152
1321
  domRef: MutableRefObject<HTMLDivElement | null>;
1153
1322
  scrollerDOMRef: MutableRefObject<HTMLDivElement | null>;
@@ -1184,8 +1353,10 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1184
1353
  onSelfBlur: InfiniteTableProps<T>['onSelfBlur'];
1185
1354
  onFocusWithin: InfiniteTableProps<T>['onFocusWithin'];
1186
1355
  onBlurWithin: InfiniteTableProps<T>['onBlurWithin'];
1356
+ scrollStopDelay: NonUndefined<InfiniteTableProps<T>['scrollStopDelay']>;
1187
1357
  onScrollToTop: InfiniteTableProps<T>['onScrollToTop'];
1188
1358
  onScrollToBottom: InfiniteTableProps<T>['onScrollToBottom'];
1359
+ onScrollStop: InfiniteTableProps<T>['onScrollStop'];
1189
1360
  scrollToBottomOffset: InfiniteTableProps<T>['scrollToBottomOffset'];
1190
1361
  focusedClassName: InfiniteTableProps<T>['focusedClassName'];
1191
1362
  focusedWithinClassName: InfiniteTableProps<T>['focusedWithinClassName'];
@@ -1200,7 +1371,7 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1200
1371
  pinnedEndMaxWidth: InfiniteTableProps<T>['pinnedEndMaxWidth'];
1201
1372
  pivotColumn: InfiniteTableProps<T>['pivotColumn'];
1202
1373
  pivotRowLabelsColumn: InfiniteTableProps<T>['pivotRowLabelsColumn'];
1203
- pivotColumnGroups: InfiniteTableProps<T>['pivotColumnGroups'];
1374
+ pivotColumnGroups: InfiniteTablePropColumnGroupsMap;
1204
1375
  activeIndex: NonUndefined<InfiniteTableProps<T>['activeIndex']>;
1205
1376
  columnMinWidth: NonUndefined<InfiniteTableProps<T>['columnMinWidth']>;
1206
1377
  columnMaxWidth: NonUndefined<InfiniteTableProps<T>['columnMaxWidth']>;
@@ -1216,11 +1387,11 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1216
1387
  rowHeight: number;
1217
1388
  headerHeight: number;
1218
1389
  licenseKey: NonUndefined<InfiniteTableProps<T>['licenseKey']>;
1219
- columnVisibility: NonUndefined<InfiniteTableProps<T>['columnVisibility']>;
1220
- columnPinning: NonUndefined<InfiniteTableProps<T>['columnPinning']>;
1390
+ columnVisibility: InfiniteTablePropColumnVisibility;
1391
+ columnPinning: InfiniteTablePropColumnPinningMap;
1221
1392
  columnSizing: InfiniteTablePropColumnSizingMap;
1222
1393
  columnTypes: InfiniteTablePropColumnTypesMap<T>;
1223
- columnGroups: NonUndefined<InfiniteTableProps<T>['columnGroups']>;
1394
+ columnGroups: InfiniteTablePropColumnGroupsMap;
1224
1395
  collapsedColumnGroups: NonUndefined<InfiniteTableProps<T>['collapsedColumnGroups']>;
1225
1396
  pivotTotalColumnPosition: NonUndefined<InfiniteTableProps<T>['pivotTotalColumnPosition']>;
1226
1397
  }
@@ -1231,7 +1402,7 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1231
1402
  groupRenderStrategy: NonUndefined<InfiniteTableProps<T>['groupRenderStrategy']>;
1232
1403
  columnGroupsDepthsMap: InfiniteTableColumnGroupsDepthsMap;
1233
1404
  columnGroupsMaxDepth: number;
1234
- computedColumnGroups: InfiniteTablePropColumnGroups;
1405
+ computedColumnGroups: InfiniteTablePropColumnGroupsMap;
1235
1406
  rowHeightCSSVar: string;
1236
1407
  headerHeightCSSVar: string;
1237
1408
  }
@@ -1299,24 +1470,24 @@ declare module "components/InfiniteTable/types/index" {
1299
1470
  import type { InfiniteTableState } from "components/InfiniteTable/types/InfiniteTableState";
1300
1471
  import type { InfiniteTableAction } from "components/InfiniteTable/types/InfiniteTableAction";
1301
1472
  import type { InfiniteTableActionType } from "components/InfiniteTable/types/InfiniteTableActionType";
1302
- import type { InfiniteTableProps, InfiniteTableImperativeApi, InfiniteTablePropColumnOrder, InfiniteTablePropColumnVisibility, InfiniteTablePropColumnPinning, InfiniteTableColumnAggregator, InfiniteTableColumnGroup, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropColumnGroups, InfiniteTablePropRowStyle, InfiniteTableRowStyleFn, InfiniteTableRowClassNameFn, InfiniteTablePropRowClassName, InfiniteTablePropColumns, InfiniteTablePropColumnsMap, InfiniteTablePropComponents, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnTypesMap, InfiniteTableColumnSizingOptions, Scrollbars } from "components/InfiniteTable/types/InfiniteTableProps";
1473
+ import type { InfiniteTableProps, InfiniteTableImperativeApi, InfiniteTablePropColumnOrder, InfiniteTablePropColumnVisibility, InfiniteTablePropColumnPinning, InfiniteTableColumnAggregator, InfiniteTableColumnGroup, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropColumnGroups, InfiniteTablePropRowStyle, InfiniteTableRowStyleFn, InfiniteTableRowClassNameFn, InfiniteTablePropRowClassName, InfiniteTablePropColumns, InfiniteTablePropColumnsMap, InfiniteTablePropComponents, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnTypesMap, InfiniteTableColumnSizingOptions, Scrollbars, InfiniteTableGroupColumnBase } from "components/InfiniteTable/types/InfiniteTableProps";
1303
1474
  import type { InfiniteTableColumn, InfiniteTableColumnComparer, InfiniteTableComputedColumn, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam } from "components/InfiniteTable/types/InfiniteTableColumn";
1304
1475
  import type { InfiniteTableComputedValues } from "components/InfiniteTable/types/InfiniteTableComputedValues";
1305
1476
  import type { InfiniteTableContextValue } from "components/InfiniteTable/types/InfiniteTableContextValue";
1306
1477
  import type { InfiniteTableRowInfo } from "utils/groupAndPivot/index";
1307
- export type { Scrollbars, InfiniteTableColumnAggregator, InfiniteTableComputedValues, InfiniteTablePropColumns, InfiniteTablePropColumnsMap, InfiniteTableRowInfo, InfiniteTableGroupColumnFunction, InfiniteTablePropColumnOrder, InfiniteTablePropComponents, InfiniteTablePropColumnVisibility, InfiniteTablePropColumnPinning, InfiniteTableColumnGroup, InfiniteTableColumn, InfiniteTableColumnComparer, InfiniteTableComputedColumn, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam, InfiniteTableContextValue, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropColumnGroups, InfiniteTablePropColumnSizing, InfiniteTablePropColumnSizingMap, InfiniteTableColumnSizingOptions, InfiniteTableState, InfiniteTableAction, InfiniteTableProps, InfiniteTablePropColumnTypes, InfiniteTablePropColumnTypesMap, InfiniteTableImperativeApi, InfiniteTableActionType, InfiniteTablePropRowStyle, InfiniteTablePropRowClassName, InfiniteTableRowStyleFn, InfiniteTableRowClassNameFn, InfiniteTableGroupColumnGetterOptions, };
1478
+ export type { Scrollbars, InfiniteTableColumnAggregator, InfiniteTableComputedValues, InfiniteTablePropColumns, InfiniteTablePropColumnsMap, InfiniteTableRowInfo, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnBase, InfiniteTablePropColumnOrder, InfiniteTablePropComponents, InfiniteTablePropColumnVisibility as InfiniteTablePropColumnVisibility, InfiniteTablePropColumnPinning, InfiniteTableColumnGroup, InfiniteTableColumn, InfiniteTableColumnComparer, InfiniteTableComputedColumn, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam, InfiniteTableContextValue, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropColumnGroups, InfiniteTablePropColumnSizing, InfiniteTablePropColumnSizingMap, InfiniteTableColumnSizingOptions, InfiniteTableState, InfiniteTableAction, InfiniteTableProps, InfiniteTablePropColumnTypes, InfiniteTablePropColumnTypesMap, InfiniteTableImperativeApi, InfiniteTableActionType, InfiniteTablePropRowStyle, InfiniteTablePropRowClassName, InfiniteTableRowStyleFn, InfiniteTableRowClassNameFn, InfiniteTableGroupColumnGetterOptions, };
1308
1479
  }
1309
1480
  declare module "components/InfiniteTable/InfiniteTableContext" {
1310
1481
  import { InfiniteTableContextValue } from "components/InfiniteTable/types/InfiniteTableContextValue";
1311
1482
  export function getInfiniteTableContext<T>(): React.Context<InfiniteTableContextValue<T>>;
1312
1483
  }
1313
1484
  declare module "components/InfiniteTable/utils/toMap" {
1314
- export function toMap<K extends string, V>(mapOrObject?: Map<K, V> | Record<K, V>): Map<K, V>;
1485
+ export function toMap<K extends string, V>(mapOrObject?: Map<K, V> | Record<K, V>, weakMapCache?: WeakMap<any, any>): Map<K, V>;
1315
1486
  }
1316
1487
  declare module "components/InfiniteTable/state/computeColumnGroupsDepths" {
1317
- import type { InfiniteTablePropColumnGroups } from "components/InfiniteTable/types/InfiniteTableProps";
1488
+ import type { InfiniteTablePropColumnGroupsMap } from "components/InfiniteTable/types/InfiniteTableProps";
1318
1489
  import type { InfiniteTableColumnGroupsDepthsMap } from "components/InfiniteTable/types/InfiniteTableState";
1319
- export function computeColumnGroupsDepths(columnGroups: InfiniteTablePropColumnGroups): InfiniteTableColumnGroupsDepthsMap;
1490
+ export function computeColumnGroupsDepths(columnGroups: InfiniteTablePropColumnGroupsMap): InfiniteTableColumnGroupsDepthsMap;
1320
1491
  }
1321
1492
  declare module "components/InfiniteTable/state/getInitialState" {
1322
1493
  import { DataSourceState } from "components/DataSource/index";
@@ -1329,59 +1500,61 @@ declare module "components/InfiniteTable/state/getInitialState" {
1329
1500
  * be affected by props
1330
1501
  */
1331
1502
  export function initSetupState<T>(): InfiniteTableSetupState<T>;
1332
- export const forwardProps: <T>() => Partial<{
1503
+ export const forwardProps: <T>(setupState: InfiniteTableSetupState<T>) => Partial<{
1333
1504
  columns: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumns<T, import("components/InfiniteTable/types").InfiniteTableColumn<T>>) => import("components/InfiniteTable/types").InfiniteTablePropColumnsMap<T, import("components/InfiniteTable/types").InfiniteTableColumn<T>>);
1334
1505
  header: 1 | ((value: boolean | undefined) => boolean);
1335
1506
  showSeparatePivotColumnForSingleAggregation: 1 | ((value: boolean | undefined) => boolean);
1336
1507
  pivotTotalColumnPosition: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableState").InfiniteTablePropPivotTotalColumnPosition | undefined) => import("components/InfiniteTable/types/InfiniteTableState").InfiniteTablePropPivotTotalColumnPosition);
1337
1508
  pivotColumns: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnsMap<T, import("components/InfiniteTable/types/InfiniteTableColumn").InfiniteTablePivotColumn<T>> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnsMap<T, import("components/InfiniteTable/types/InfiniteTableColumn").InfiniteTablePivotColumn<T>> | undefined);
1338
- pivotColumnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined);
1509
+ pivotColumnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropColumnGroupsMap);
1339
1510
  sortable: 1 | ((value: boolean | undefined) => boolean);
1340
1511
  pivotColumn: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotColumn<T, import("components/InfiniteTable/types").InfiniteTableColumn<T> & import("components/InfiniteTable/types/InfiniteTableColumn").InfiniteTablePivotFinalColumn<T, any>> | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotColumn<T, import("components/InfiniteTable/types").InfiniteTableColumn<T> & import("components/InfiniteTable/types/InfiniteTableColumn").InfiniteTablePivotFinalColumn<T, any>> | undefined);
1341
1512
  components: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropComponents | undefined) => import("components/InfiniteTable/types").InfiniteTablePropComponents | undefined);
1342
- scrollTopId: 1 | ((value: string | number | undefined) => string | number | undefined);
1513
+ loadingText: 1 | ((value: import("react").ReactNode) => import("react").ReactNode);
1343
1514
  viewportReservedWidth: 1 | ((value: number | undefined) => number | undefined);
1515
+ pivotRowLabelsColumn: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T> | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T> | undefined);
1344
1516
  groupColumn: 1 | ((value: Partial<InfiniteTablePropGroupColumn<T>> | undefined) => Partial<InfiniteTablePropGroupColumn<T>> | undefined);
1517
+ hideEmptyGroupColumns: 1 | ((value: boolean | undefined) => boolean);
1518
+ columnVisibility: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnVisibility | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnVisibility);
1519
+ pinnedStartMaxWidth: 1 | ((value: number | undefined) => number | undefined);
1520
+ pinnedEndMaxWidth: 1 | ((value: number | undefined) => number | undefined);
1521
+ columnPinning: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnPinning | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropColumnPinningMap);
1522
+ columnSizing: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnSizing | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnSizingMap);
1523
+ columnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropColumnGroupsMap);
1524
+ collapsedColumnGroups: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups);
1345
1525
  onScrollbarsChange: 1 | ((value: ((scrollbars: import("components/InfiniteTable/types").Scrollbars) => void) | undefined) => ((scrollbars: import("components/InfiniteTable/types").Scrollbars) => void) | undefined);
1346
- loadingText: 1 | ((value: import("react").ReactNode) => import("react").ReactNode);
1347
- onReady: 1 | ((value: ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined) => ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined);
1526
+ columnTypes: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnTypes<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnTypesMap<T>);
1527
+ rowHeight: 1 | ((value: string | number) => number);
1528
+ rowStyle: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropRowStyle<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropRowStyle<T> | undefined);
1529
+ rowClassName: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropRowClassName<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropRowClassName<T> | undefined);
1530
+ headerHeight: 1 | ((value: string | number) => number);
1531
+ domProps: 1 | ((value: import("react").HTMLProps<HTMLDivElement> | undefined) => import("react").HTMLProps<HTMLDivElement> | undefined);
1532
+ showZebraRows: 1 | ((value: boolean | undefined) => boolean);
1533
+ showHoverRows: 1 | ((value: boolean | undefined) => boolean);
1534
+ draggableColumns: 1 | ((value: boolean | undefined) => boolean);
1535
+ focusedClassName: 1 | ((value: string | undefined) => string | undefined);
1536
+ focusedWithinClassName: 1 | ((value: string | undefined) => string | undefined);
1537
+ focusedStyle: 1 | ((value: import("react").CSSProperties | undefined) => import("react").CSSProperties | undefined);
1538
+ focusedWithinStyle: 1 | ((value: import("react").CSSProperties | undefined) => import("react").CSSProperties | undefined);
1539
+ columnDefaultWidth: 1 | ((value: number | undefined) => number);
1540
+ columnMinWidth: 1 | ((value: number | undefined) => number);
1541
+ columnMaxWidth: 1 | ((value: number | undefined) => number);
1542
+ virtualizeColumns: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropVirtualizeColumns<T> | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropVirtualizeColumns<T>);
1543
+ activeIndex: 1 | ((value: number | undefined) => number);
1348
1544
  onSelfFocus: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1349
1545
  onSelfBlur: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1350
1546
  onFocusWithin: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1351
1547
  onBlurWithin: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1352
1548
  onScrollToTop: 1 | ((value: (() => void) | undefined) => (() => void) | undefined);
1353
1549
  onScrollToBottom: 1 | ((value: (() => void) | undefined) => (() => void) | undefined);
1550
+ scrollStopDelay: 1 | ((value: number | undefined) => number);
1551
+ onScrollStop: 1 | ((value: ((param: import("components/InfiniteTable/types/InfiniteTableProps").ScrollStopInfo) => void) | undefined) => ((param: import("components/InfiniteTable/types/InfiniteTableProps").ScrollStopInfo) => void) | undefined);
1354
1552
  scrollToBottomOffset: 1 | ((value: number | undefined) => number | undefined);
1355
- focusedClassName: 1 | ((value: string | undefined) => string | undefined);
1356
- focusedWithinClassName: 1 | ((value: string | undefined) => string | undefined);
1357
- focusedStyle: 1 | ((value: import("react").CSSProperties | undefined) => import("react").CSSProperties | undefined);
1358
- focusedWithinStyle: 1 | ((value: import("react").CSSProperties | undefined) => import("react").CSSProperties | undefined);
1359
- domProps: 1 | ((value: import("react").HTMLProps<HTMLDivElement> | undefined) => import("react").HTMLProps<HTMLDivElement> | undefined);
1360
- rowStyle: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropRowStyle<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropRowStyle<T> | undefined);
1361
- rowProps: 1 | ((value: import("react").HTMLProps<HTMLDivElement> | ((rowArgs: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTableRowStyleFnParams<T>) => import("react").HTMLProps<HTMLDivElement>) | undefined) => import("react").HTMLProps<HTMLDivElement> | ((rowArgs: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTableRowStyleFnParams<T>) => import("react").HTMLProps<HTMLDivElement>) | undefined);
1362
- rowClassName: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropRowClassName<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropRowClassName<T> | undefined);
1363
- pinnedStartMaxWidth: 1 | ((value: number | undefined) => number | undefined);
1364
- pinnedEndMaxWidth: 1 | ((value: number | undefined) => number | undefined);
1365
- pivotRowLabelsColumn: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T> | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T> | undefined);
1366
- activeIndex: 1 | ((value: number | undefined) => number);
1367
- columnMinWidth: 1 | ((value: number | undefined) => number);
1368
- columnMaxWidth: 1 | ((value: number | undefined) => number);
1369
- columnDefaultWidth: 1 | ((value: number | undefined) => number);
1370
- draggableColumns: 1 | ((value: boolean | undefined) => boolean);
1371
- hideEmptyGroupColumns: 1 | ((value: boolean | undefined) => boolean);
1372
1553
  columnOrder: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnOrder | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnOrder);
1373
- showZebraRows: 1 | ((value: boolean | undefined) => boolean);
1374
- showHoverRows: 1 | ((value: boolean | undefined) => boolean);
1375
- virtualizeColumns: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropVirtualizeColumns<T> | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropVirtualizeColumns<T>);
1554
+ onReady: 1 | ((value: ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined) => ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined);
1555
+ rowProps: 1 | ((value: import("react").HTMLProps<HTMLDivElement> | ((rowArgs: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTableRowStyleFnParams<T>) => import("react").HTMLProps<HTMLDivElement>) | undefined) => import("react").HTMLProps<HTMLDivElement> | ((rowArgs: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTableRowStyleFnParams<T>) => import("react").HTMLProps<HTMLDivElement>) | undefined);
1376
1556
  licenseKey: 1 | ((value: string | undefined) => string);
1377
- columnVisibility: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnVisibility | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnVisibility);
1378
- columnPinning: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnPinning | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnPinning);
1379
- columnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnGroups);
1380
- collapsedColumnGroups: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups);
1381
- columnSizing: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnSizing | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnSizingMap);
1382
- columnTypes: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnTypes<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnTypesMap<T>);
1383
- rowHeight: 1 | ((value: string | number) => number);
1384
- headerHeight: 1 | ((value: string | number) => number);
1557
+ scrollTopId: 1 | ((value: string | number | undefined) => string | number | undefined);
1385
1558
  }>;
1386
1559
  export const mapPropsToState: <T>(params: {
1387
1560
  props: InfiniteTableProps<T>;
@@ -1458,12 +1631,8 @@ declare module "components/flexbox/index" {
1458
1631
  export const computeFlex: (params: FlexComputeParams) => FlexComputeResult;
1459
1632
  }
1460
1633
  declare module "components/InfiniteTable/utils/adjustColumnOrderForPinning" {
1461
- import { InfiniteTablePropColumnPinning } from "components/InfiniteTable/types/index";
1462
- import { InfiniteTablePropColumnOrderNormalized } from "components/InfiniteTable/types/InfiniteTableProps";
1463
- export const adjustColumnOrderForPinning: (columnOrder: InfiniteTablePropColumnOrderNormalized, columnPinning: InfiniteTablePropColumnPinning) => InfiniteTablePropColumnOrderNormalized;
1464
- }
1465
- declare module "utils/getGlobal" {
1466
- export function getGlobal<T extends Window>(): T;
1634
+ import { InfiniteTablePropColumnOrderNormalized, InfiniteTablePropColumnPinningMap } from "components/InfiniteTable/types/InfiniteTableProps";
1635
+ export const adjustColumnOrderForPinning: (columnOrder: InfiniteTablePropColumnOrderNormalized, columnPinning: InfiniteTablePropColumnPinningMap) => InfiniteTablePropColumnOrderNormalized;
1467
1636
  }
1468
1637
  declare module "components/utils/getScrollbarWidth" {
1469
1638
  export function getScrollbarWidth(): number;
@@ -1477,7 +1646,7 @@ declare module "components/InfiniteTable/utils/getComputedVisibleColumns" {
1477
1646
  import type { InfiniteTableColumn, InfiniteTableComputedColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
1478
1647
  import type { Size } from "components/types/Size";
1479
1648
  import type { DataSourceSingleSortInfo } from "components/DataSource/types";
1480
- import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnOrderNormalized, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1649
+ import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnOrderNormalized, InfiniteTablePropColumnPinningMap, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1481
1650
  export type SortInfoMap<T> = {
1482
1651
  [key: string]: {
1483
1652
  sortInfo: DataSourceSingleSortInfo<T>;
@@ -1519,7 +1688,7 @@ declare module "components/InfiniteTable/utils/getComputedVisibleColumns" {
1519
1688
  setSortInfo: (sortInfo: DataSourceSingleSortInfo<T>[]) => void;
1520
1689
  draggableColumns?: boolean;
1521
1690
  columnOrder: InfiniteTablePropColumnOrder;
1522
- columnPinning: InfiniteTablePropColumnPinning;
1691
+ columnPinning: InfiniteTablePropColumnPinningMap;
1523
1692
  columnSizing: InfiniteTablePropColumnSizingMap;
1524
1693
  columnTypes: InfiniteTablePropColumnTypesMap<T>;
1525
1694
  columnVisibility: InfiniteTablePropColumnVisibility;
@@ -1555,7 +1724,7 @@ declare module "components/InfiniteTable/hooks/useRerenderOnKeyChange" {
1555
1724
  declare module "components/InfiniteTable/hooks/useComputedVisibleColumns" {
1556
1725
  import type { DataSourceSingleSortInfo } from "components/DataSource/types";
1557
1726
  import type { InfiniteTableColumn } from "components/InfiniteTable/types/index";
1558
- import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1727
+ import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinningMap, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1559
1728
  import type { Size } from "components/types/Size";
1560
1729
  import type { GetComputedVisibleColumnsResult } from "components/InfiniteTable/utils/getComputedVisibleColumns";
1561
1730
  type UseComputedVisibleColumnsParam<T> = {
@@ -1572,7 +1741,7 @@ declare module "components/InfiniteTable/hooks/useComputedVisibleColumns" {
1572
1741
  multiSort: boolean;
1573
1742
  sortInfo?: DataSourceSingleSortInfo<T>[];
1574
1743
  setSortInfo: (sortInfo: DataSourceSingleSortInfo<T>[]) => void;
1575
- columnPinning: InfiniteTablePropColumnPinning;
1744
+ columnPinning: InfiniteTablePropColumnPinningMap;
1576
1745
  columnSizing: InfiniteTablePropColumnSizingMap;
1577
1746
  columnTypes: InfiniteTablePropColumnTypesMap<T>;
1578
1747
  columnOrder: InfiniteTablePropColumnOrder;
@@ -1684,8 +1853,8 @@ declare module "components/InfiniteTable/utils/getColumnForGroupBy" {
1684
1853
  export function getColumnForGroupBy<T>(options: InfiniteTableGroupColumnGetterOptions<T> & {
1685
1854
  groupIndexForColumn: number;
1686
1855
  groupByForColumn: DataSourceGroupBy<T>;
1687
- }, toggleGroupRow: (groupRowKeys: any[]) => void, groupColumnFromProps?: InfiniteTablePropGroupColumn<T>): InfiniteTableGeneratedGroupColumn<T>;
1688
- export function getSingleGroupColumn<T>(options: InfiniteTableGroupColumnGetterOptions<T>, toggleGroupRow: (groupRowKeys: any[]) => void, groupColumnFromProps?: InfiniteTablePropGroupColumn<T>): InfiniteTableGeneratedGroupColumn<T>;
1856
+ }, toggleGroupRow: (groupRowKeys: any[]) => void, groupColumnFromProps?: Partial<InfiniteTablePropGroupColumn<T>>): InfiniteTableGeneratedGroupColumn<T>;
1857
+ export function getSingleGroupColumn<T>(options: InfiniteTableGroupColumnGetterOptions<T>, toggleGroupRow: (groupRowKeys: any[]) => void, groupColumnFromProps?: Partial<InfiniteTablePropGroupColumn<T>>): InfiniteTableGeneratedGroupColumn<T>;
1689
1858
  }
1690
1859
  declare module "components/InfiniteTable/hooks/useToggleGroupRow" {
1691
1860
  export type ToggleGrouRowFn = (groupKeys: any[]) => void;
@@ -1724,93 +1893,6 @@ declare module "components/InfiniteTable/components/InfiniteTableBody/InfiniteTa
1724
1893
  declare module "components/InfiniteTable/components/InfiniteTableBody/index" {
1725
1894
  export * from "components/InfiniteTable/components/InfiniteTableBody/InfiniteTableBody";
1726
1895
  }
1727
- declare module "components/VirtualBrain/index" {
1728
- import { Logger } from "utils/debug";
1729
- import { Size } from "components/types/Size";
1730
- import type { OnScrollFn, ScrollPosition } from "components/types/ScrollPosition";
1731
- type MainAxisOptions = 'vertical' | 'horizontal';
1732
- export type VirtualBrainOptions = {
1733
- mainAxis: MainAxisOptions;
1734
- itemSize: MainAxisSize;
1735
- itemSpan?: ({ itemIndex }: {
1736
- itemIndex: number;
1737
- }) => number;
1738
- count: number;
1739
- name?: string;
1740
- };
1741
- export type MainAxisSize = number | ((itemIndex: number) => number);
1742
- type OnRenderCountChangeFn = (renderCount: number) => void;
1743
- type OnSizeChangeFn = (size: number) => void;
1744
- type OnDestroyFn = () => void;
1745
- export type GetItemPositionFn = (itemIndex: number) => number;
1746
- export type RenderRange = {
1747
- renderStartIndex: number;
1748
- renderEndIndex: number;
1749
- };
1750
- export type OnRenderRangeChangeFn = (renderRange: RenderRange) => void;
1751
- export class VirtualBrain extends Logger {
1752
- private scrollPosition;
1753
- private scrollPositionOnMainAxis;
1754
- private itemSpanParent;
1755
- private itemSpanValue;
1756
- private itemSizeCache;
1757
- private itemOffsetCache;
1758
- private options;
1759
- private destroyed;
1760
- private totalSize;
1761
- private onScrollFns;
1762
- private onTotalSizeChangeFns;
1763
- private onRenderCountChangeFns;
1764
- private onRenderRangeChangeFns;
1765
- private onDestroyFns;
1766
- name: string | undefined;
1767
- private renderCount;
1768
- private renderRange;
1769
- private availableSize;
1770
- constructor(options: VirtualBrainOptions);
1771
- setAvailableSize: (size: Size) => void;
1772
- getOptions(): VirtualBrainOptions;
1773
- private updateRenderCount;
1774
- private computeRenderCount;
1775
- private setRenderCount;
1776
- private updateRenderRange;
1777
- getRenderStartIndex(): number;
1778
- getRenderCount: () => number;
1779
- setScrollPosition: (scrollPosition: ScrollPosition) => void;
1780
- private notifyScrollChange;
1781
- private notifyDestroy;
1782
- private notifyTotalSizeChange;
1783
- private notifyRenderCountChange;
1784
- private notifyRenderRangeChange;
1785
- getRenderRange: () => RenderRange;
1786
- private setRenderRange;
1787
- private computeRenderRange;
1788
- getScrollPosition: () => ScrollPosition;
1789
- onScroll: (fn: OnScrollFn) => () => void;
1790
- onTotalSizeChange: (fn: OnSizeChangeFn) => () => void;
1791
- onRenderCountChange: (fn: OnRenderCountChangeFn) => () => void;
1792
- onRenderRangeChange: (fn: OnRenderRangeChangeFn) => () => void;
1793
- onDestroy: (fn: OnDestroyFn) => () => void;
1794
- update: (newCount: VirtualBrainOptions['count'], newItemSize: VirtualBrainOptions['itemSize'], newItemSpan?: VirtualBrainOptions['itemSpan']) => void;
1795
- private reset;
1796
- private computeItemSpanUpTo;
1797
- private computeCacheFor;
1798
- private getItemSizeCacheFor;
1799
- getItemSpan: (itemIndex: number) => number;
1800
- getItemSpanParent: (itemIndex: number) => number;
1801
- getItemSizeWithSpan: (itemIndex: number, itemSpan: number) => number;
1802
- /**
1803
- * For now, this doesn't take into account the itemspan, and it's okay not to
1804
- * @param itemIndex
1805
- * @returns the size of the specified item
1806
- */
1807
- getItemSize: (itemIndex: number) => number;
1808
- getTotalSize: () => number;
1809
- getItemAt: (scrollPos: number) => number;
1810
- getItemOffsetFor: (itemIndex: number) => number;
1811
- destroy: () => void;
1812
- }
1813
- }
1814
1896
  declare module "components/InfiniteTable/components/ScrollbarPlaceholder" {
1815
1897
  import * as React from 'react';
1816
1898
  function HorizontalScrollbarPlaceholderFn(props: {
@@ -1891,9 +1973,7 @@ declare module "components/InfiniteTable/components/cell.css" {
1891
1973
  unpinned: {};
1892
1974
  pinnedStartLastInCategory: {
1893
1975
  borderRight: import("@vanilla-extract/private").CSSVarFunction;
1894
- vars: {
1895
- [x: string]: import("@vanilla-extract/private").CSSVarFunction;
1896
- };
1976
+ vars: {};
1897
1977
  };
1898
1978
  pinnedEndFirstInCategory: {
1899
1979
  borderLeft: import("@vanilla-extract/private").CSSVarFunction;
@@ -2115,15 +2195,14 @@ declare module "components/InfiniteTable/components/InfiniteTableHeader/Infinite
2115
2195
  import { Renderable } from "components/types/Renderable";
2116
2196
  import { VirtualBrain } from "components/VirtualBrain/index";
2117
2197
  import { ScrollListener } from "components/VirtualBrain/ScrollListener";
2118
- import { InfiniteTableColumnPinned } from "components/InfiniteTable/types/InfiniteTableColumn";
2119
- import { InfiniteTableComputedColumnGroup } from "components/InfiniteTable/types/InfiniteTableProps";
2198
+ import { InfiniteTableColumnPinnedValues, InfiniteTableComputedColumnGroup } from "components/InfiniteTable/types/InfiniteTableProps";
2120
2199
  export type InfiniteTableHeaderProps<T> = {
2121
2200
  repaintId?: string | number;
2122
2201
  brain: VirtualBrain;
2123
2202
  columns: InfiniteTableComputedColumn<T>[];
2124
2203
  totalWidth: number;
2125
2204
  availableWidth: number;
2126
- pinning: InfiniteTableColumnPinned;
2205
+ pinning: InfiniteTableColumnPinnedValues;
2127
2206
  };
2128
2207
  export type InfiniteTableHeaderGroupProps<T> = {
2129
2208
  columns: InfiniteTableComputedColumn<T>[];
@@ -2630,6 +2709,9 @@ declare module "components/InfiniteTable/hooks/usePinnedRendering" {
2630
2709
  pinnedStartScrollbarPlaceholder: JSX.Element | null;
2631
2710
  };
2632
2711
  }
2712
+ declare module "components/hooks/useOnce" {
2713
+ export function useOnce<ReturnType>(fn: () => ReturnType): ReturnType;
2714
+ }
2633
2715
  declare module "components/InfiniteTable/hooks/useColumnSizeFn" {
2634
2716
  import { InfiniteTableComputedColumn } from "components/InfiniteTable/types/index";
2635
2717
  /**