@infinite-table/infinite-react 0.1.0 → 0.1.4

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
54
  }
56
- declare module "components/types/VoidFn" {
57
- export type VoidFn = () => void;
58
- }
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<{
@@ -158,9 +154,14 @@ declare module "components/hooks/useComponentState" {
158
154
  type ComponentStateRootConfig<T_PROPS, COMPONENT_MAPPED_STATE, COMPONENT_SETUP_STATE = {}, COMPONENT_DERIVED_STATE = {}, T_ACTIONS = {}, T_PARENT_STATE = {}> = {
159
155
  debugName?: string;
160
156
  initSetupState?: () => COMPONENT_SETUP_STATE;
161
- forwardProps?: () => ForwardPropsToStateFnResult<T_PROPS, COMPONENT_MAPPED_STATE>;
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;
@@ -198,7 +202,7 @@ declare module "components/types/SubscriptionCallback" {
198
202
  declare module "components/DataSource/types" {
199
203
  import * as React from 'react';
200
204
  import { MultisortInfo } from "utils/multisort/index";
201
- import { DeepMap } from "utils/DeepMap";
205
+ import { DeepMap } from "utils/DeepMap/index";
202
206
  import { DeepMapGroupValueType, GroupBy, GroupKeyType, PivotBy } from "utils/groupAndPivot/index";
203
207
  import { InfiniteTableColumn, InfiniteTableColumnGroup, InfiniteTableRowInfo, Scrollbars } from "components/InfiniteTable/index";
204
208
  import { ComponentStateActions } from "components/hooks/useComponentState";
@@ -206,13 +210,21 @@ declare module "components/DataSource/types" {
206
210
  import { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
207
211
  import { NonUndefined } from "components/types/NonUndefined";
208
212
  import { SubscriptionCallback } from "components/types/SubscriptionCallback";
213
+ import { ScrollStopInfo } from "components/InfiniteTable/types/InfiniteTableProps";
209
214
  export interface DataSourceDataParams<T> {
210
215
  originalDataArray: T[];
211
216
  sortInfo?: DataSourceSortInfo<T>;
212
217
  groupBy?: DataSourcePropGroupBy<T>;
213
218
  pivotBy?: DataSourcePropPivotBy<T>;
219
+ lazyLoadBatchSize?: number;
220
+ lazyLoadStartIndex?: number;
221
+ groupKeys?: any[];
222
+ aggregationReducers?: DataSourcePropAggregationReducers<T>;
214
223
  livePaginationCursor?: DataSourceLivePaginationCursorValue;
224
+ cursorId?: DataSourceSetupState<T>['cursorId'];
225
+ changes?: DataSourceDataParamsChanges<T>;
215
226
  }
227
+ export type DataSourceDataParamsChanges<T> = Partial<Record<keyof Omit<DataSourceDataParams<T>, 'originalDataArray' | 'changes'>, true>>;
216
228
  export type DataSourceSingleSortInfo<T> = MultisortInfo<T> & {
217
229
  field?: keyof T;
218
230
  id?: string;
@@ -222,6 +234,8 @@ declare module "components/DataSource/types" {
222
234
  export type DataSourceSortInfo<T> = null | DataSourceSingleSortInfo<T> | DataSourceSingleSortInfo<T>[];
223
235
  export type DataSourceRemoteData<T> = {
224
236
  data: T[];
237
+ mappings?: DataSourceMappings;
238
+ totalCount?: number;
225
239
  livePaginationCursor?: DataSourceLivePaginationCursorValue;
226
240
  };
227
241
  export type DataSourceData<T> = T[] | DataSourceRemoteData<T> | Promise<T[] | DataSourceRemoteData<T>> | ((dataInfo: DataSourceDataParams<T>) => T[] | Promise<T[] | DataSourceRemoteData<T>>);
@@ -235,7 +249,8 @@ declare module "components/DataSource/types" {
235
249
  export interface DataSourceMappedState<T> {
236
250
  aggregationReducers?: DataSourceProps<T>['aggregationReducers'];
237
251
  livePagination: DataSourceProps<T>['livePagination'];
238
- livePaginationCursor: DataSourceProps<T>['livePaginationCursor'];
252
+ fullLazyLoad: DataSourceProps<T>['fullLazyLoad'];
253
+ lazyLoadBatchSize: DataSourceProps<T>['lazyLoadBatchSize'];
239
254
  onDataParamsChange: DataSourceProps<T>['onDataParamsChange'];
240
255
  data: DataSourceProps<T>['data'];
241
256
  primaryKey: DataSourceProps<T>['primaryKey'];
@@ -243,26 +258,47 @@ declare module "components/DataSource/types" {
243
258
  groupRowsState: NonUndefined<DataSourceProps<T>['groupRowsState']>;
244
259
  pivotBy: DataSourceProps<T>['pivotBy'];
245
260
  loading: NonUndefined<DataSourceProps<T>['loading']>;
261
+ collapseGroupRowsOnDataFunctionChange: NonUndefined<DataSourceProps<T>['collapseGroupRowsOnDataFunctionChange']>;
246
262
  sortInfo: DataSourceSingleSortInfo<T>[] | null;
247
263
  }
248
264
  export type DataSourceAggregationReducer<T, AggregationResultType> = {
265
+ name?: string;
249
266
  field?: keyof T;
250
- initialValue: AggregationResultType;
267
+ initialValue?: AggregationResultType;
251
268
  getter?: (data: T) => any;
252
- reducer: (accumulator: any, value: any, data: T) => AggregationResultType | any;
269
+ reducer: string | ((accumulator: any, value: any, data: T) => AggregationResultType | any);
253
270
  done?: (accumulatedValue: AggregationResultType | any, array: T[]) => AggregationResultType;
254
271
  };
272
+ export type DataSourceMappings = Record<'totals' | 'values', string>;
273
+ export type LazyGroupDataItem<DataType> = {
274
+ data: Partial<DataType>;
275
+ keys: any[];
276
+ aggregations?: Record<string, any>;
277
+ pivot?: {
278
+ values: Record<string, any>;
279
+ totals?: Record<string, any>;
280
+ };
281
+ };
282
+ export type LazyGroupRowInfo<DataType> = {
283
+ items: LazyGroupDataItem<DataType>[];
284
+ totalCount: number;
285
+ };
286
+ export type LazyGroupDataDeepMap<DataType, KeyType = string> = DeepMap<KeyType, LazyGroupRowInfo<DataType>>;
255
287
  export interface DataSourceSetupState<T> {
288
+ pivotMappings?: DataSourceMappings;
289
+ propsCache: Map<keyof DataSourceProps<T>, WeakMap<any, any>>;
256
290
  showSeparatePivotColumnForSingleAggregation: boolean;
257
291
  dataParams?: DataSourceDataParams<T>;
292
+ originalLazyGroupData: LazyGroupDataDeepMap<T>;
258
293
  notifyScrollbarsChange: SubscriptionCallback<Scrollbars>;
294
+ notifyScrollStop: SubscriptionCallback<ScrollStopInfo>;
259
295
  originalDataArray: T[];
260
296
  lastSortDataArray?: T[];
261
297
  lastGroupDataArray?: InfiniteTableRowInfo<T>[];
262
298
  dataArray: InfiniteTableRowInfo<T>[];
263
299
  groupDeepMap?: DeepMap<GroupKeyType, DeepMapGroupValueType<T, any>>;
264
300
  pivotTotalColumnPosition: InfiniteTablePropPivotTotalColumnPosition;
265
- scrollBottomId: number | Symbol | DataSourceLivePaginationCursorValue;
301
+ cursorId: number | Symbol | DataSourceLivePaginationCursorValue;
266
302
  updatedAt: number;
267
303
  reducedAt: number;
268
304
  groupedAt: number;
@@ -274,11 +310,13 @@ declare module "components/DataSource/types" {
274
310
  pivotColumnGroups?: Map<string, InfiniteTableColumnGroup>;
275
311
  }
276
312
  export type DataSourcePropAggregationReducers<T> = Record<string, DataSourceAggregationReducer<T, any>>;
277
- export interface DataSourceProps<T> {
313
+ export type DataSourceProps<T> = {
278
314
  children: React.ReactNode | ((contextData: DataSourceState<T>) => React.ReactNode);
279
315
  primaryKey: keyof T;
280
316
  fields?: (keyof T)[];
281
317
  data: DataSourceData<T>;
318
+ fullLazyLoad?: boolean;
319
+ lazyLoadBatchSize?: number;
282
320
  loading?: boolean;
283
321
  defaultLoading?: boolean;
284
322
  onLoadingChange?: (loading: boolean) => void;
@@ -293,19 +331,29 @@ declare module "components/DataSource/types" {
293
331
  groupRowsState?: GroupRowsState;
294
332
  defaultGroupRowsState?: GroupRowsState;
295
333
  onGroupRowsStateChange?: (groupRowsState: GroupRowsState) => void;
334
+ collapseGroupRowsOnDataFunctionChange?: boolean;
296
335
  sortInfo?: DataSourceSortInfo<T>;
297
336
  defaultSortInfo?: DataSourceSortInfo<T>;
298
337
  onSortInfoChange?: ((sortInfo: DataSourceSingleSortInfo<T> | null) => void) | ((sortInfo: DataSourceSingleSortInfo<T>[]) => void);
299
338
  onDataParamsChange?: (dataParamsChange: DataSourceDataParams<T>) => void;
300
339
  livePagination?: boolean;
301
- livePaginationCursor?: DataSourceLivePaginationCursorValue;
302
- }
303
- export type DataSourceLivePaginationCursorValue = string | number;
340
+ livePaginationCursor?: DataSourcePropLivePaginationCursor<T>;
341
+ onLivePaginationCursorChange?: (livePaginationCursor: DataSourceLivePaginationCursorValue) => void;
342
+ };
343
+ export type DataSourcePropLivePaginationCursor<T> = DataSourceLivePaginationCursorValue | DataSourceLivePaginationCursorFn<T>;
344
+ export type DataSourceLivePaginationCursorFn<T> = (params: DataSourceLivePaginationCursorParams<T>) => DataSourceLivePaginationCursorValue;
345
+ export type DataSourceLivePaginationCursorParams<T> = {
346
+ array: T[];
347
+ lastItem: T | Partial<T> | null;
348
+ length: number;
349
+ };
350
+ export type DataSourceLivePaginationCursorValue = string | number | null;
304
351
  export interface DataSourceState<T> extends DataSourceSetupState<T>, DataSourceDerivedState<T>, DataSourceMappedState<T> {
305
352
  }
306
353
  export interface DataSourceDerivedState<_T> {
307
354
  multiSort: boolean;
308
355
  controlledSort: boolean;
356
+ livePaginationCursor?: DataSourceLivePaginationCursorValue;
309
357
  }
310
358
  export type DataSourceComponentActions<T> = ComponentStateActions<DataSourceState<T>>;
311
359
  export interface DataSourceContextValue<T> {
@@ -341,21 +389,22 @@ declare module "components/hooks/useEffectWithChanges" {
341
389
  export function useEffectWithObject(fn: EffectCallback, deps: Record<string, any>): void;
342
390
  }
343
391
  declare module "components/DataSource/privateHooks/useLoadData" {
344
- import { DataSourceDataParams, DataSourceState } from "components/DataSource/types";
345
- export function buildDataSourceDataParams<T>(componentState: DataSourceState<T>): DataSourceDataParams<T>;
392
+ import { ComponentStateGeneratedActions } from "components/hooks/useComponentState";
393
+ import { DataSourceDataParams, DataSourceData, DataSourceState } from "components/DataSource/types";
394
+ export function buildDataSourceDataParams<T>(componentState: DataSourceState<T>, overrides?: Partial<DataSourceDataParams<T>>): DataSourceDataParams<T>;
395
+ export function loadData<T>(data: DataSourceData<T>, componentState: DataSourceState<T>, actions: ComponentStateGeneratedActions<DataSourceState<T>>, overrides?: Partial<DataSourceDataParams<T>>): void;
346
396
  export function useLoadData<T>(): void;
347
- export function useLivePagination<T>(): void;
348
397
  }
349
398
  declare module "components/DataSource/state/normalizeSortInfo" {
350
399
  import { DataSourceSingleSortInfo, DataSourceSortInfo } from "components/DataSource/types";
351
- export const normalizeSortInfo: <T>(sortInfo?: DataSourceSortInfo<T> | undefined) => DataSourceSingleSortInfo<T>[];
400
+ export const normalizeSortInfo: <T>(initialSortInfo?: DataSourceSortInfo<T> | undefined, weakMap?: WeakMap<any, any> | undefined) => DataSourceSingleSortInfo<T>[];
352
401
  }
353
402
  declare module "components/utils/buildSubscriptionCallback" {
354
403
  import { SubscriptionCallback } from "components/types/SubscriptionCallback";
355
404
  export function buildSubscriptionCallback<T>(): SubscriptionCallback<T>;
356
405
  }
357
406
  declare module "utils/shallowEqualObjects" {
358
- export function shallowEqualObjects<T extends object | null>(objA: T, objB: T): boolean;
407
+ export function shallowEqualObjects<T extends object | null>(objA: T, objB: T, ignoreKeys?: Set<string>): boolean;
359
408
  }
360
409
  declare module "components/utils/discardCallsWithEqualArg" {
361
410
  export function discardCallsWithEqualArg<T = any>(fn: (arg: T) => void, timeframe?: number, getCompareObject?: (arg: T) => any): (arg: T) => void;
@@ -364,25 +413,33 @@ declare module "components/DataSource/state/getInitialState" {
364
413
  import { DataSourceMappedState, DataSourceProps, DataSourceDerivedState, DataSourceSetupState, DataSourceState } from "components/DataSource/types";
365
414
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
366
415
  import { ComponentInterceptedActions, ForwardPropsToStateFnResult } from "components/hooks/useComponentState";
367
- import { DataSourceDataParams } from "components/DataSource/index";
416
+ import { DataSourceComponentActions, DataSourceDataParams } from "components/DataSource/index";
417
+ export const defaultCursorId: unique symbol;
368
418
  export function initSetupState<T>(): DataSourceSetupState<T>;
369
- export const forwardProps: <T>() => Partial<{
419
+ export const forwardProps: <T>(setupState: DataSourceSetupState<T>) => Partial<{
370
420
  data: 1 | ((value: import("components/DataSource").DataSourceData<T>) => import("components/DataSource").DataSourceData<T>);
371
421
  loading: 1 | ((value: boolean | undefined) => boolean);
422
+ sortInfo: 1 | ((value: import("components/DataSource").DataSourceSortInfo<T> | undefined) => import("components/DataSource").DataSourceSingleSortInfo<T>[] | null);
423
+ groupBy: 1 | ((value: import("components/DataSource").DataSourcePropGroupBy<T> | undefined) => import("components/DataSource").DataSourcePropGroupBy<T>);
424
+ pivotBy: 1 | ((value: import("components/DataSource").DataSourcePropPivotBy<T> | undefined) => import("components/DataSource").DataSourcePropPivotBy<T> | undefined);
425
+ lazyLoadBatchSize: 1 | ((value: number | undefined) => number | undefined);
372
426
  aggregationReducers: 1 | ((value: import("components/DataSource").DataSourcePropAggregationReducers<T> | undefined) => import("components/DataSource").DataSourcePropAggregationReducers<T> | undefined);
373
427
  livePagination: 1 | ((value: boolean | undefined) => boolean | undefined);
374
- livePaginationCursor: 1 | ((value: import("components/DataSource").DataSourceLivePaginationCursorValue | undefined) => import("components/DataSource").DataSourceLivePaginationCursorValue | undefined);
428
+ fullLazyLoad: 1 | ((value: boolean | undefined) => boolean | undefined);
375
429
  onDataParamsChange: 1 | ((value: ((dataParamsChange: DataSourceDataParams<T>) => void) | undefined) => ((dataParamsChange: DataSourceDataParams<T>) => void) | undefined);
376
430
  primaryKey: 1 | ((value: keyof T) => keyof T);
377
- groupBy: 1 | ((value: import("components/DataSource").DataSourcePropGroupBy<T> | undefined) => import("components/DataSource").DataSourcePropGroupBy<T>);
378
431
  groupRowsState: 1 | ((value: GroupRowsState<any> | undefined) => GroupRowsState<any>);
379
- pivotBy: 1 | ((value: import("components/DataSource").DataSourcePropPivotBy<T> | undefined) => import("components/DataSource").DataSourcePropPivotBy<T> | undefined);
380
- sortInfo: 1 | ((value: import("components/DataSource").DataSourceSortInfo<T> | undefined) => import("components/DataSource").DataSourceSingleSortInfo<T>[] | null);
432
+ collapseGroupRowsOnDataFunctionChange: 1 | ((value: boolean | undefined) => boolean);
381
433
  }>;
382
434
  export function mapPropsToState<T extends any>(params: {
383
435
  props: DataSourceProps<T>;
384
436
  state: DataSourceState<T>;
437
+ oldState: DataSourceState<T> | null;
385
438
  }): DataSourceDerivedState<T>;
439
+ export function onPropChange<T>(params: {
440
+ name: keyof T;
441
+ newValue: any;
442
+ }, props: DataSourceProps<T>, actions: DataSourceComponentActions<T>): void;
386
443
  export function getInterceptActions<T>(): ComponentInterceptedActions<DataSourceState<T>>;
387
444
  }
388
445
  declare module "components/types/Renderable" {
@@ -414,6 +471,7 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
414
471
  import type { InfiniteTableColumnGroup, InfiniteTableRowInfo } from "components/InfiniteTable/types/index";
415
472
  import { CSSProperties } from 'react';
416
473
  import { AggregationReducer, InfiniteTableRowInfoGroup, InfiniteTableRowInfoNormal, PivotBy } from "utils/groupAndPivot/index";
474
+ import { InfiniteTableColumnPinnedValues } from "components/InfiniteTable/types/InfiniteTableProps";
417
475
  export type { DiscriminatedUnion, RequireAtLeastOne };
418
476
  export type InfiniteTableToggleGroupRowFn = (groupKeys: any[]) => void;
419
477
  export type InfiniteTableColumnRenderParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
@@ -444,7 +502,6 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
444
502
  column: InfiniteTableComputedColumn<T>;
445
503
  columnSortInfo: DataSourceSingleSortInfo<T> | null | undefined;
446
504
  }
447
- export type InfiniteTableColumnPinned = 'start' | 'end' | false;
448
505
  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;
449
506
  export type InfiniteTableColumnRenderValueFunction<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnRenderFunction<DATA_TYPE, COL_TYPE>;
450
507
  export type InfiniteTableColumnHeaderRenderFunction<T> = ({ columnSortInfo, column, }: InfiniteTableColumnHeaderRenderParams<T>) => Renderable;
@@ -509,13 +566,15 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
509
566
  className?: InfiniteTableColumnClassName<T>;
510
567
  rowspan?: InfiniteTableColumnRowspanFn<T>;
511
568
  valueGetter?: InfiniteTableColumnValueGetter<T>;
569
+ defaultWidth?: number;
570
+ defaultFlex?: number;
512
571
  };
513
572
  export type InfiniteTableColumn<T> = {} & InfiniteTableBaseColumn<T> & InfiniteTableColumnWithRenderOrRenderValueOrFieldOrValueGetter<T>;
514
573
  export type InfiniteTableGeneratedGroupColumn<T> = InfiniteTableColumn<T> & {
515
574
  groupByField: string | string[];
516
575
  id?: string;
517
576
  };
518
- export type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & Partial<InfiniteTablePivotFinalColumn<T, any>>;
577
+ export type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & Partial<InfiniteTablePivotFinalColumnVariant<T, any>>;
519
578
  export type InfiniteTablePivotFinalColumnGroup<DataType, KeyType extends any = any> = InfiniteTableColumnGroup & {
520
579
  pivotBy: DataSourcePivotBy<DataType>[];
521
580
  pivotTotalColumnGroup?: true;
@@ -531,10 +590,11 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
531
590
  pivotAggregator: AggregationReducer<DataType, any>;
532
591
  pivotAggregatorIndex: number;
533
592
  pivotGroupKeys: KeyType[];
534
- pivotByAtIndex: PivotBy<DataType, KeyType>;
593
+ pivotByAtIndex?: PivotBy<DataType, KeyType>;
535
594
  pivotIndex: number;
536
595
  pivotGroupKey: KeyType;
537
596
  };
597
+ export type InfiniteTablePivotFinalColumnVariant<DataType, KeyType extends any = any> = InfiniteTablePivotFinalColumn<DataType, KeyType>;
538
598
  type InfiniteTableComputedColumnBase<T> = {
539
599
  computedWidth: number;
540
600
  computedOffset: number;
@@ -548,7 +608,7 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
548
608
  computedSortIndex: number;
549
609
  computedVisibleIndex: number;
550
610
  computedMultiSort: boolean;
551
- computedPinned: InfiniteTableColumnPinned;
611
+ computedPinned: InfiniteTableColumnPinnedValues;
552
612
  computedDraggable: boolean;
553
613
  computedFirstInCategory: boolean;
554
614
  computedLastInCategory: boolean;
@@ -562,13 +622,14 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
562
622
  }
563
623
  declare module "utils/groupAndPivot/getPivotColumnsAndColumnGroups" {
564
624
  import type { DataSourceAggregationReducer, DataSourcePivotBy } from "components/DataSource/index";
565
- import type { InfiniteTablePropColumnGroups, InfiniteTablePropColumnsMap } from "components/InfiniteTable/index";
625
+ import type { InfiniteTablePropColumnsMap } from "components/InfiniteTable/index";
566
626
  import type { InfiniteTablePivotColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
627
+ import { InfiniteTablePropColumnGroupsMap } from "components/InfiniteTable/types/InfiniteTableProps";
567
628
  import type { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
568
- import { DeepMap } from "utils/DeepMap";
629
+ import { DeepMap } from "utils/DeepMap/index";
569
630
  export type ComputedColumnsAndGroups<DataType> = {
570
631
  columns: InfiniteTablePropColumnsMap<DataType, InfiniteTablePivotColumn<DataType>>;
571
- columnGroups: InfiniteTablePropColumnGroups;
632
+ columnGroups: InfiniteTablePropColumnGroupsMap;
572
633
  };
573
634
  export function getPivotColumnsAndColumnGroups<DataType, KeyType = any>({ deepMap, pivotBy, pivotTotalColumnPosition, reducers, showSeparatePivotColumnForSingleAggregation, }: {
574
635
  deepMap: DeepMap<KeyType, boolean>;
@@ -620,11 +681,12 @@ declare module "components/DataSource/GroupRowsState" {
620
681
  }
621
682
  }
622
683
  declare module "utils/groupAndPivot/index" {
623
- import { DataSourceAggregationReducer } from "@infinite-table/infinite-react";
684
+ import { DataSourceAggregationReducer, DataSourceMappings, LazyGroupDataDeepMap } from "@infinite-table/infinite-react";
624
685
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
625
- import { InfiniteTableColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn, InfiniteTablePivotFinalColumnGroup } from "components/InfiniteTable/types/InfiniteTableColumn";
686
+ import { InfiniteTableColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumnGroup, InfiniteTablePivotFinalColumnVariant } from "components/InfiniteTable/types/InfiniteTableColumn";
626
687
  import { InfiniteTableColumnGroup, InfiniteTableGroupColumnBase } from "components/InfiniteTable/types/InfiniteTableProps";
627
- import { DeepMap } from "utils/DeepMap";
688
+ import { DeepMap } from "utils/DeepMap/index";
689
+ export const LAZY_ROOT_KEY_FOR_GROUPS: string;
628
690
  export type AggregationReducer<T, AggregationResultType = any> = DataSourceAggregationReducer<T, AggregationResultType> & {
629
691
  id: string;
630
692
  };
@@ -693,7 +755,7 @@ declare module "utils/groupAndPivot/index" {
693
755
  };
694
756
  export type PivotBy<DataType, KeyType> = Omit<GroupBy<DataType, KeyType>, 'column'> & {
695
757
  column?: InfiniteTableColumn<DataType> | (({ column, }: {
696
- column: InfiniteTablePivotFinalColumn<DataType, KeyType>;
758
+ column: InfiniteTablePivotFinalColumnVariant<DataType, KeyType>;
697
759
  }) => Partial<InfiniteTablePivotColumn<DataType>>);
698
760
  columnGroup?: InfiniteTableColumnGroup | (({ columnGroup, }: {
699
761
  columnGroup: InfiniteTablePivotFinalColumnGroup<DataType, KeyType>;
@@ -705,6 +767,9 @@ declare module "utils/groupAndPivot/index" {
705
767
  pivot?: PivotBy<DataType, KeyType>[];
706
768
  reducers?: Record<string, DataSourceAggregationReducer<DataType, any>>;
707
769
  };
770
+ type LazyGroupParams = {
771
+ mappings?: DataSourceMappings;
772
+ };
708
773
  export type DataGroupResult<DataType, KeyType extends any> = {
709
774
  deepMap: DeepMap<GroupKeyType<KeyType>, DeepMapGroupValueType<DataType, KeyType>>;
710
775
  groupParams: GroupParams<DataType, KeyType>;
@@ -713,6 +778,7 @@ declare module "utils/groupAndPivot/index" {
713
778
  topLevelPivotColumns?: DeepMap<GroupKeyType<KeyType>, boolean>;
714
779
  pivot?: PivotBy<DataType, KeyType>[];
715
780
  };
781
+ export function lazyGroup<DataType, KeyType extends string = string>(groupParams: GroupParams<DataType, KeyType> & LazyGroupParams, rootData: LazyGroupDataDeepMap<DataType>): DataGroupResult<DataType, KeyType>;
716
782
  export function group<DataType, KeyType = any>(groupParams: GroupParams<DataType, KeyType>, data: DataType[]): DataGroupResult<DataType, KeyType>;
717
783
  export function flatten<DataType, KeyType extends any>(groupResult: DataGroupResult<DataType, KeyType>): DataType[];
718
784
  export type EnhancedFlattenParam<DataType, KeyType = any> = {
@@ -911,12 +977,15 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
911
977
  import { DataSourceGroupBy, DataSourcePropGroupBy, DataSourcePropPivotBy, DataSourceState } from "components/DataSource/index";
912
978
  import { Renderable } from "components/types/Renderable";
913
979
  import { LoadMaskProps } from "components/InfiniteTable/components/LoadMask";
914
- import type { InfiniteTableBaseColumn, InfiniteTableColumn, InfiniteTableColumnRenderFunction, InfiniteTableComputedColumn, InfiniteTableComputedPivotFinalColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
980
+ import type { InfiniteTableColumn, InfiniteTableColumnRenderFunction, InfiniteTableComputedColumn, InfiniteTableComputedPivotFinalColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
915
981
  import { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
916
982
  export type InfiniteTablePropColumnOrderNormalized = string[];
917
983
  export type InfiniteTablePropColumnOrder = InfiniteTablePropColumnOrderNormalized | true;
918
- export type InfiniteTablePropColumnVisibility = Map<string, false>;
919
- export type InfiniteTablePropColumnPinning = Map<string, true | 'start' | 'end'>;
984
+ export type InfiniteTablePropColumnVisibility = Record<string, false>;
985
+ export type InfiniteTablePropColumnPinningMap = Map<string, true | 'start' | 'end'>;
986
+ export type InfiniteTableColumnPinnedValues = false | 'start' | 'end';
987
+ export type InfiniteTablePropColumnPinningRecord = Record<string, true | 'start' | 'end'>;
988
+ export type InfiniteTablePropColumnPinning = InfiniteTablePropColumnPinningRecord | InfiniteTablePropColumnPinningMap;
920
989
  export type InfiniteTableRowStyleFnParams<T> = {
921
990
  rowIndex: number;
922
991
  groupBy?: (keyof T)[];
@@ -938,8 +1007,9 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
938
1007
  export type InfiniteTableColumnType<T> = {
939
1008
  minWidth?: number;
940
1009
  maxWidth?: number;
941
- width?: number;
942
- flex?: number;
1010
+ defaultWidth?: number;
1011
+ defaultFlex?: number;
1012
+ defaultPinned?: InfiniteTableColumnPinnedValues;
943
1013
  header?: InfiniteTableColumn<T>['header'];
944
1014
  comparer?: InfiniteTableColumn<T>['comparer'];
945
1015
  draggable?: InfiniteTableColumn<T>['draggable'];
@@ -949,6 +1019,7 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
949
1019
  verticalAlign?: InfiniteTableColumn<T>['verticalAlign'];
950
1020
  renderValue?: InfiniteTableColumn<T>['renderValue'];
951
1021
  render?: InfiniteTableColumn<T>['render'];
1022
+ valueGetter?: InfiniteTableColumn<T>['valueGetter'];
952
1023
  };
953
1024
  export type InfiniteTablePropColumnTypesMap<T> = Map<'default' | string, InfiniteTableColumnType<T>>;
954
1025
  export type InfiniteTablePropColumnTypes<T> = InfiniteTablePropColumnTypesMap<T> | Record<'default' | string, InfiniteTableColumnType<T>>;
@@ -976,11 +1047,14 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
976
1047
  export type InfiniteTablePropColumns<T, ColumnType = InfiniteTableColumn<T>> = InfiniteTablePropColumnsMap<T, ColumnType> | Record<string, ColumnType>;
977
1048
  export type InfiniteTableColumns<T> = InfiniteTablePropColumns<T>;
978
1049
  export type InfiniteTableColumnsMap<T> = InfiniteTablePropColumnsMap<T>;
979
- export type InfiniteTablePropColumnGroups = Map<string, InfiniteTableColumnGroup>;
1050
+ export type InfiniteTablePropColumnGroupsMap = Map<string, InfiniteTableColumnGroup>;
1051
+ export type InfiniteTablePropColumnGroupsRecord = Record<string, InfiniteTableColumnGroup>;
1052
+ export type InfiniteTablePropColumnGroups = InfiniteTablePropColumnGroupsRecord | InfiniteTablePropColumnGroupsMap;
980
1053
  /**
981
1054
  * 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
982
1055
  * the value is the id of the column to leave as visible
983
1056
  */
1057
+ export type InfiniteTablePropCollapsedColumnGroupsMap = Map<string[], string>;
984
1058
  export type InfiniteTablePropCollapsedColumnGroups = Map<string[], string>;
985
1059
  export type InfiniteTableColumnGroupHeaderRenderParams = {
986
1060
  columnGroup: InfiniteTableComputedColumnGroup;
@@ -1011,7 +1085,7 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
1011
1085
  pivotBy: DataSourcePropPivotBy<T>;
1012
1086
  };
1013
1087
  export type InfiniteTablePropGroupRenderStrategy = 'single-column' | 'multi-column' | 'inline';
1014
- export type InfiniteTableGroupColumnBase<T> = InfiniteTableBaseColumn<T> & {
1088
+ export type InfiniteTableGroupColumnBase<T> = InfiniteTableColumn<T> & {
1015
1089
  renderValue?: InfiniteTableColumnRenderFunction<T>;
1016
1090
  id?: string;
1017
1091
  };
@@ -1025,6 +1099,11 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
1025
1099
  export type InfiniteTablePropComponents = {
1026
1100
  LoadMask?: React.FC<LoadMaskProps>;
1027
1101
  };
1102
+ export type ScrollStopInfo = {
1103
+ scrollTop: number;
1104
+ firstVisibleRowIndex: number;
1105
+ lastVisibleRowIndex: number;
1106
+ };
1028
1107
  export interface InfiniteTableProps<T> {
1029
1108
  columns: InfiniteTablePropColumns<T>;
1030
1109
  pivotColumns?: InfiniteTablePropColumnsMap<T, InfiniteTablePivotColumn<T>>;
@@ -1081,6 +1160,8 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
1081
1160
  onBlurWithin?: (event: React.FocusEvent<HTMLDivElement>) => void;
1082
1161
  onScrollToTop?: () => void;
1083
1162
  onScrollToBottom?: () => void;
1163
+ scrollStopDelay?: number;
1164
+ onScrollStop?: (param: ScrollStopInfo) => void;
1084
1165
  scrollToBottomOffset?: number;
1085
1166
  defaultColumnOrder?: InfiniteTablePropColumnOrder;
1086
1167
  columnOrder?: InfiniteTablePropColumnOrder;
@@ -1120,7 +1201,7 @@ declare module "components/VirtualBrain/ScrollListener" {
1120
1201
  }
1121
1202
  declare module "components/InfiniteTable/types/InfiniteTableState" {
1122
1203
  import type { ScrollPosition } from "components/types/ScrollPosition";
1123
- import type { InfiniteTableColumnGroup, InfiniteTablePropColumnGroups, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnsMap, InfiniteTablePropColumnTypesMap, InfiniteTableProps } from "components/InfiniteTable/types/InfiniteTableProps";
1204
+ import type { InfiniteTableColumnGroup, InfiniteTablePropColumnGroupsMap, InfiniteTablePropColumnPinningMap, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnsMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility, InfiniteTableProps } from "components/InfiniteTable/types/InfiniteTableProps";
1124
1205
  import { Size } from "components/types/Size";
1125
1206
  import { MutableRefObject } from 'react';
1126
1207
  import { SubscriptionCallback } from "components/types/SubscriptionCallback";
@@ -1134,6 +1215,7 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1134
1215
  groupIndex: number;
1135
1216
  }>;
1136
1217
  export interface InfiniteTableSetupState<T> {
1218
+ propsCache: Map<keyof InfiniteTableProps<T>, WeakMap<any, any>>;
1137
1219
  columnsWhenInlineGroupRenderStrategy?: Map<string, InfiniteTableColumn<T>>;
1138
1220
  domRef: MutableRefObject<HTMLDivElement | null>;
1139
1221
  scrollerDOMRef: MutableRefObject<HTMLDivElement | null>;
@@ -1170,8 +1252,10 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1170
1252
  onSelfBlur: InfiniteTableProps<T>['onSelfBlur'];
1171
1253
  onFocusWithin: InfiniteTableProps<T>['onFocusWithin'];
1172
1254
  onBlurWithin: InfiniteTableProps<T>['onBlurWithin'];
1255
+ scrollStopDelay: NonUndefined<InfiniteTableProps<T>['scrollStopDelay']>;
1173
1256
  onScrollToTop: InfiniteTableProps<T>['onScrollToTop'];
1174
1257
  onScrollToBottom: InfiniteTableProps<T>['onScrollToBottom'];
1258
+ onScrollStop: InfiniteTableProps<T>['onScrollStop'];
1175
1259
  scrollToBottomOffset: InfiniteTableProps<T>['scrollToBottomOffset'];
1176
1260
  focusedClassName: InfiniteTableProps<T>['focusedClassName'];
1177
1261
  focusedWithinClassName: InfiniteTableProps<T>['focusedWithinClassName'];
@@ -1186,7 +1270,7 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1186
1270
  pinnedEndMaxWidth: InfiniteTableProps<T>['pinnedEndMaxWidth'];
1187
1271
  pivotColumn: InfiniteTableProps<T>['pivotColumn'];
1188
1272
  pivotRowLabelsColumn: InfiniteTableProps<T>['pivotRowLabelsColumn'];
1189
- pivotColumnGroups: InfiniteTableProps<T>['pivotColumnGroups'];
1273
+ pivotColumnGroups: InfiniteTablePropColumnGroupsMap;
1190
1274
  activeIndex: NonUndefined<InfiniteTableProps<T>['activeIndex']>;
1191
1275
  columnMinWidth: NonUndefined<InfiniteTableProps<T>['columnMinWidth']>;
1192
1276
  columnMaxWidth: NonUndefined<InfiniteTableProps<T>['columnMaxWidth']>;
@@ -1202,11 +1286,11 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1202
1286
  rowHeight: number;
1203
1287
  headerHeight: number;
1204
1288
  licenseKey: NonUndefined<InfiniteTableProps<T>['licenseKey']>;
1205
- columnVisibility: NonUndefined<InfiniteTableProps<T>['columnVisibility']>;
1206
- columnPinning: NonUndefined<InfiniteTableProps<T>['columnPinning']>;
1289
+ columnVisibility: InfiniteTablePropColumnVisibility;
1290
+ columnPinning: InfiniteTablePropColumnPinningMap;
1207
1291
  columnSizing: InfiniteTablePropColumnSizingMap;
1208
1292
  columnTypes: InfiniteTablePropColumnTypesMap<T>;
1209
- columnGroups: NonUndefined<InfiniteTableProps<T>['columnGroups']>;
1293
+ columnGroups: InfiniteTablePropColumnGroupsMap;
1210
1294
  collapsedColumnGroups: NonUndefined<InfiniteTableProps<T>['collapsedColumnGroups']>;
1211
1295
  pivotTotalColumnPosition: NonUndefined<InfiniteTableProps<T>['pivotTotalColumnPosition']>;
1212
1296
  }
@@ -1217,7 +1301,7 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1217
1301
  groupRenderStrategy: NonUndefined<InfiniteTableProps<T>['groupRenderStrategy']>;
1218
1302
  columnGroupsDepthsMap: InfiniteTableColumnGroupsDepthsMap;
1219
1303
  columnGroupsMaxDepth: number;
1220
- computedColumnGroups: InfiniteTablePropColumnGroups;
1304
+ computedColumnGroups: InfiniteTablePropColumnGroupsMap;
1221
1305
  rowHeightCSSVar: string;
1222
1306
  headerHeightCSSVar: string;
1223
1307
  }
@@ -1290,19 +1374,19 @@ declare module "components/InfiniteTable/types/index" {
1290
1374
  import type { InfiniteTableComputedValues } from "components/InfiniteTable/types/InfiniteTableComputedValues";
1291
1375
  import type { InfiniteTableContextValue } from "components/InfiniteTable/types/InfiniteTableContextValue";
1292
1376
  import type { InfiniteTableRowInfo } from "utils/groupAndPivot/index";
1293
- 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, };
1377
+ export type { Scrollbars, InfiniteTableColumnAggregator, InfiniteTableComputedValues, InfiniteTablePropColumns, InfiniteTablePropColumnsMap, InfiniteTableRowInfo, InfiniteTableGroupColumnFunction, 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, };
1294
1378
  }
1295
1379
  declare module "components/InfiniteTable/InfiniteTableContext" {
1296
1380
  import { InfiniteTableContextValue } from "components/InfiniteTable/types/InfiniteTableContextValue";
1297
1381
  export function getInfiniteTableContext<T>(): React.Context<InfiniteTableContextValue<T>>;
1298
1382
  }
1299
1383
  declare module "components/InfiniteTable/utils/toMap" {
1300
- export function toMap<K extends string, V>(mapOrObject?: Map<K, V> | Record<K, V>): Map<K, V>;
1384
+ export function toMap<K extends string, V>(mapOrObject?: Map<K, V> | Record<K, V>, weakMapCache?: WeakMap<any, any>): Map<K, V>;
1301
1385
  }
1302
1386
  declare module "components/InfiniteTable/state/computeColumnGroupsDepths" {
1303
- import type { InfiniteTablePropColumnGroups } from "components/InfiniteTable/types/InfiniteTableProps";
1387
+ import type { InfiniteTablePropColumnGroupsMap } from "components/InfiniteTable/types/InfiniteTableProps";
1304
1388
  import type { InfiniteTableColumnGroupsDepthsMap } from "components/InfiniteTable/types/InfiniteTableState";
1305
- export function computeColumnGroupsDepths(columnGroups: InfiniteTablePropColumnGroups): InfiniteTableColumnGroupsDepthsMap;
1389
+ export function computeColumnGroupsDepths(columnGroups: InfiniteTablePropColumnGroupsMap): InfiniteTableColumnGroupsDepthsMap;
1306
1390
  }
1307
1391
  declare module "components/InfiniteTable/state/getInitialState" {
1308
1392
  import { DataSourceState } from "components/DataSource/index";
@@ -1315,59 +1399,61 @@ declare module "components/InfiniteTable/state/getInitialState" {
1315
1399
  * be affected by props
1316
1400
  */
1317
1401
  export function initSetupState<T>(): InfiniteTableSetupState<T>;
1318
- export const forwardProps: <T>() => Partial<{
1402
+ export const forwardProps: <T>(setupState: InfiniteTableSetupState<T>) => Partial<{
1319
1403
  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>>);
1320
1404
  header: 1 | ((value: boolean | undefined) => boolean);
1321
1405
  showSeparatePivotColumnForSingleAggregation: 1 | ((value: boolean | undefined) => boolean);
1322
1406
  pivotTotalColumnPosition: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableState").InfiniteTablePropPivotTotalColumnPosition | undefined) => import("components/InfiniteTable/types/InfiniteTableState").InfiniteTablePropPivotTotalColumnPosition);
1323
1407
  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);
1324
- pivotColumnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined);
1408
+ pivotColumnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropColumnGroupsMap);
1325
1409
  sortable: 1 | ((value: boolean | undefined) => boolean);
1326
1410
  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);
1327
1411
  components: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropComponents | undefined) => import("components/InfiniteTable/types").InfiniteTablePropComponents | undefined);
1328
- scrollTopId: 1 | ((value: string | number | undefined) => string | number | undefined);
1412
+ loadingText: 1 | ((value: import("react").ReactNode) => import("react").ReactNode);
1329
1413
  viewportReservedWidth: 1 | ((value: number | undefined) => number | undefined);
1414
+ pivotRowLabelsColumn: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T> | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T> | undefined);
1330
1415
  groupColumn: 1 | ((value: Partial<InfiniteTablePropGroupColumn<T>> | undefined) => Partial<InfiniteTablePropGroupColumn<T>> | undefined);
1416
+ hideEmptyGroupColumns: 1 | ((value: boolean | undefined) => boolean);
1417
+ columnVisibility: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnVisibility | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnVisibility);
1418
+ pinnedStartMaxWidth: 1 | ((value: number | undefined) => number | undefined);
1419
+ pinnedEndMaxWidth: 1 | ((value: number | undefined) => number | undefined);
1420
+ columnPinning: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnPinning | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropColumnPinningMap);
1421
+ columnSizing: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnSizing | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnSizingMap);
1422
+ columnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropColumnGroupsMap);
1423
+ collapsedColumnGroups: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups);
1331
1424
  onScrollbarsChange: 1 | ((value: ((scrollbars: import("components/InfiniteTable/types").Scrollbars) => void) | undefined) => ((scrollbars: import("components/InfiniteTable/types").Scrollbars) => void) | undefined);
1332
- loadingText: 1 | ((value: import("react").ReactNode) => import("react").ReactNode);
1333
- onReady: 1 | ((value: ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined) => ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined);
1425
+ columnTypes: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnTypes<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnTypesMap<T>);
1426
+ rowHeight: 1 | ((value: string | number) => number);
1427
+ rowStyle: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropRowStyle<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropRowStyle<T> | undefined);
1428
+ rowClassName: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropRowClassName<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropRowClassName<T> | undefined);
1429
+ headerHeight: 1 | ((value: string | number) => number);
1430
+ domProps: 1 | ((value: import("react").HTMLProps<HTMLDivElement> | undefined) => import("react").HTMLProps<HTMLDivElement> | undefined);
1431
+ showZebraRows: 1 | ((value: boolean | undefined) => boolean);
1432
+ showHoverRows: 1 | ((value: boolean | undefined) => boolean);
1433
+ draggableColumns: 1 | ((value: boolean | undefined) => boolean);
1434
+ focusedClassName: 1 | ((value: string | undefined) => string | undefined);
1435
+ focusedWithinClassName: 1 | ((value: string | undefined) => string | undefined);
1436
+ focusedStyle: 1 | ((value: import("react").CSSProperties | undefined) => import("react").CSSProperties | undefined);
1437
+ focusedWithinStyle: 1 | ((value: import("react").CSSProperties | undefined) => import("react").CSSProperties | undefined);
1438
+ columnDefaultWidth: 1 | ((value: number | undefined) => number);
1439
+ columnMinWidth: 1 | ((value: number | undefined) => number);
1440
+ columnMaxWidth: 1 | ((value: number | undefined) => number);
1441
+ virtualizeColumns: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropVirtualizeColumns<T> | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropVirtualizeColumns<T>);
1442
+ activeIndex: 1 | ((value: number | undefined) => number);
1334
1443
  onSelfFocus: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1335
1444
  onSelfBlur: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1336
1445
  onFocusWithin: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1337
1446
  onBlurWithin: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1338
1447
  onScrollToTop: 1 | ((value: (() => void) | undefined) => (() => void) | undefined);
1339
1448
  onScrollToBottom: 1 | ((value: (() => void) | undefined) => (() => void) | undefined);
1449
+ scrollStopDelay: 1 | ((value: number | undefined) => number);
1450
+ onScrollStop: 1 | ((value: ((param: import("components/InfiniteTable/types/InfiniteTableProps").ScrollStopInfo) => void) | undefined) => ((param: import("components/InfiniteTable/types/InfiniteTableProps").ScrollStopInfo) => void) | undefined);
1340
1451
  scrollToBottomOffset: 1 | ((value: number | undefined) => number | undefined);
1341
- focusedClassName: 1 | ((value: string | undefined) => string | undefined);
1342
- focusedWithinClassName: 1 | ((value: string | undefined) => string | undefined);
1343
- focusedStyle: 1 | ((value: import("react").CSSProperties | undefined) => import("react").CSSProperties | undefined);
1344
- focusedWithinStyle: 1 | ((value: import("react").CSSProperties | undefined) => import("react").CSSProperties | undefined);
1345
- domProps: 1 | ((value: import("react").HTMLProps<HTMLDivElement> | undefined) => import("react").HTMLProps<HTMLDivElement> | undefined);
1346
- rowStyle: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropRowStyle<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropRowStyle<T> | undefined);
1347
- 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);
1348
- rowClassName: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropRowClassName<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropRowClassName<T> | undefined);
1349
- pinnedStartMaxWidth: 1 | ((value: number | undefined) => number | undefined);
1350
- pinnedEndMaxWidth: 1 | ((value: number | undefined) => number | undefined);
1351
- pivotRowLabelsColumn: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T> | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T> | undefined);
1352
- activeIndex: 1 | ((value: number | undefined) => number);
1353
- columnMinWidth: 1 | ((value: number | undefined) => number);
1354
- columnMaxWidth: 1 | ((value: number | undefined) => number);
1355
- columnDefaultWidth: 1 | ((value: number | undefined) => number);
1356
- draggableColumns: 1 | ((value: boolean | undefined) => boolean);
1357
- hideEmptyGroupColumns: 1 | ((value: boolean | undefined) => boolean);
1358
1452
  columnOrder: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnOrder | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnOrder);
1359
- showZebraRows: 1 | ((value: boolean | undefined) => boolean);
1360
- showHoverRows: 1 | ((value: boolean | undefined) => boolean);
1361
- virtualizeColumns: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropVirtualizeColumns<T> | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropVirtualizeColumns<T>);
1453
+ onReady: 1 | ((value: ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined) => ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined);
1454
+ 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
1455
  licenseKey: 1 | ((value: string | undefined) => string);
1363
- columnVisibility: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnVisibility | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnVisibility);
1364
- columnPinning: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnPinning | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnPinning);
1365
- columnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnGroups);
1366
- collapsedColumnGroups: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups);
1367
- columnSizing: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnSizing | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnSizingMap);
1368
- columnTypes: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnTypes<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnTypesMap<T>);
1369
- rowHeight: 1 | ((value: string | number) => number);
1370
- headerHeight: 1 | ((value: string | number) => number);
1456
+ scrollTopId: 1 | ((value: string | number | undefined) => string | number | undefined);
1371
1457
  }>;
1372
1458
  export const mapPropsToState: <T>(params: {
1373
1459
  props: InfiniteTableProps<T>;
@@ -1444,9 +1530,8 @@ declare module "components/flexbox/index" {
1444
1530
  export const computeFlex: (params: FlexComputeParams) => FlexComputeResult;
1445
1531
  }
1446
1532
  declare module "components/InfiniteTable/utils/adjustColumnOrderForPinning" {
1447
- import { InfiniteTablePropColumnPinning } from "components/InfiniteTable/types/index";
1448
- import { InfiniteTablePropColumnOrderNormalized } from "components/InfiniteTable/types/InfiniteTableProps";
1449
- export const adjustColumnOrderForPinning: (columnOrder: InfiniteTablePropColumnOrderNormalized, columnPinning: InfiniteTablePropColumnPinning) => InfiniteTablePropColumnOrderNormalized;
1533
+ import { InfiniteTablePropColumnOrderNormalized, InfiniteTablePropColumnPinningMap } from "components/InfiniteTable/types/InfiniteTableProps";
1534
+ export const adjustColumnOrderForPinning: (columnOrder: InfiniteTablePropColumnOrderNormalized, columnPinning: InfiniteTablePropColumnPinningMap) => InfiniteTablePropColumnOrderNormalized;
1450
1535
  }
1451
1536
  declare module "utils/getGlobal" {
1452
1537
  export function getGlobal<T extends Window>(): T;
@@ -1463,7 +1548,7 @@ declare module "components/InfiniteTable/utils/getComputedVisibleColumns" {
1463
1548
  import type { InfiniteTableColumn, InfiniteTableComputedColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
1464
1549
  import type { Size } from "components/types/Size";
1465
1550
  import type { DataSourceSingleSortInfo } from "components/DataSource/types";
1466
- import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnOrderNormalized, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1551
+ import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnOrderNormalized, InfiniteTablePropColumnPinningMap, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1467
1552
  export type SortInfoMap<T> = {
1468
1553
  [key: string]: {
1469
1554
  sortInfo: DataSourceSingleSortInfo<T>;
@@ -1505,7 +1590,7 @@ declare module "components/InfiniteTable/utils/getComputedVisibleColumns" {
1505
1590
  setSortInfo: (sortInfo: DataSourceSingleSortInfo<T>[]) => void;
1506
1591
  draggableColumns?: boolean;
1507
1592
  columnOrder: InfiniteTablePropColumnOrder;
1508
- columnPinning: InfiniteTablePropColumnPinning;
1593
+ columnPinning: InfiniteTablePropColumnPinningMap;
1509
1594
  columnSizing: InfiniteTablePropColumnSizingMap;
1510
1595
  columnTypes: InfiniteTablePropColumnTypesMap<T>;
1511
1596
  columnVisibility: InfiniteTablePropColumnVisibility;
@@ -1541,7 +1626,7 @@ declare module "components/InfiniteTable/hooks/useRerenderOnKeyChange" {
1541
1626
  declare module "components/InfiniteTable/hooks/useComputedVisibleColumns" {
1542
1627
  import type { DataSourceSingleSortInfo } from "components/DataSource/types";
1543
1628
  import type { InfiniteTableColumn } from "components/InfiniteTable/types/index";
1544
- import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1629
+ import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinningMap, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1545
1630
  import type { Size } from "components/types/Size";
1546
1631
  import type { GetComputedVisibleColumnsResult } from "components/InfiniteTable/utils/getComputedVisibleColumns";
1547
1632
  type UseComputedVisibleColumnsParam<T> = {
@@ -1558,7 +1643,7 @@ declare module "components/InfiniteTable/hooks/useComputedVisibleColumns" {
1558
1643
  multiSort: boolean;
1559
1644
  sortInfo?: DataSourceSingleSortInfo<T>[];
1560
1645
  setSortInfo: (sortInfo: DataSourceSingleSortInfo<T>[]) => void;
1561
- columnPinning: InfiniteTablePropColumnPinning;
1646
+ columnPinning: InfiniteTablePropColumnPinningMap;
1562
1647
  columnSizing: InfiniteTablePropColumnSizingMap;
1563
1648
  columnTypes: InfiniteTablePropColumnTypesMap<T>;
1564
1649
  columnOrder: InfiniteTablePropColumnOrder;
@@ -1670,8 +1755,8 @@ declare module "components/InfiniteTable/utils/getColumnForGroupBy" {
1670
1755
  export function getColumnForGroupBy<T>(options: InfiniteTableGroupColumnGetterOptions<T> & {
1671
1756
  groupIndexForColumn: number;
1672
1757
  groupByForColumn: DataSourceGroupBy<T>;
1673
- }, toggleGroupRow: (groupRowKeys: any[]) => void, groupColumnFromProps?: InfiniteTablePropGroupColumn<T>): InfiniteTableGeneratedGroupColumn<T>;
1674
- export function getSingleGroupColumn<T>(options: InfiniteTableGroupColumnGetterOptions<T>, toggleGroupRow: (groupRowKeys: any[]) => void, groupColumnFromProps?: InfiniteTablePropGroupColumn<T>): InfiniteTableGeneratedGroupColumn<T>;
1758
+ }, toggleGroupRow: (groupRowKeys: any[]) => void, groupColumnFromProps?: Partial<InfiniteTablePropGroupColumn<T>>): InfiniteTableGeneratedGroupColumn<T>;
1759
+ export function getSingleGroupColumn<T>(options: InfiniteTableGroupColumnGetterOptions<T>, toggleGroupRow: (groupRowKeys: any[]) => void, groupColumnFromProps?: Partial<InfiniteTablePropGroupColumn<T>>): InfiniteTableGeneratedGroupColumn<T>;
1675
1760
  }
1676
1761
  declare module "components/InfiniteTable/hooks/useToggleGroupRow" {
1677
1762
  export type ToggleGrouRowFn = (groupKeys: any[]) => void;
@@ -1877,9 +1962,7 @@ declare module "components/InfiniteTable/components/cell.css" {
1877
1962
  unpinned: {};
1878
1963
  pinnedStartLastInCategory: {
1879
1964
  borderRight: import("@vanilla-extract/private").CSSVarFunction;
1880
- vars: {
1881
- [x: string]: import("@vanilla-extract/private").CSSVarFunction;
1882
- };
1965
+ vars: {};
1883
1966
  };
1884
1967
  pinnedEndFirstInCategory: {
1885
1968
  borderLeft: import("@vanilla-extract/private").CSSVarFunction;
@@ -2101,15 +2184,14 @@ declare module "components/InfiniteTable/components/InfiniteTableHeader/Infinite
2101
2184
  import { Renderable } from "components/types/Renderable";
2102
2185
  import { VirtualBrain } from "components/VirtualBrain/index";
2103
2186
  import { ScrollListener } from "components/VirtualBrain/ScrollListener";
2104
- import { InfiniteTableColumnPinned } from "components/InfiniteTable/types/InfiniteTableColumn";
2105
- import { InfiniteTableComputedColumnGroup } from "components/InfiniteTable/types/InfiniteTableProps";
2187
+ import { InfiniteTableColumnPinnedValues, InfiniteTableComputedColumnGroup } from "components/InfiniteTable/types/InfiniteTableProps";
2106
2188
  export type InfiniteTableHeaderProps<T> = {
2107
2189
  repaintId?: string | number;
2108
2190
  brain: VirtualBrain;
2109
2191
  columns: InfiniteTableComputedColumn<T>[];
2110
2192
  totalWidth: number;
2111
2193
  availableWidth: number;
2112
- pinning: InfiniteTableColumnPinned;
2194
+ pinning: InfiniteTableColumnPinnedValues;
2113
2195
  };
2114
2196
  export type InfiniteTableHeaderGroupProps<T> = {
2115
2197
  columns: InfiniteTableComputedColumn<T>[];
@@ -2616,6 +2698,9 @@ declare module "components/InfiniteTable/hooks/usePinnedRendering" {
2616
2698
  pinnedStartScrollbarPlaceholder: JSX.Element | null;
2617
2699
  };
2618
2700
  }
2701
+ declare module "components/hooks/useOnce" {
2702
+ export function useOnce<ReturnType>(fn: () => ReturnType): ReturnType;
2703
+ }
2619
2704
  declare module "components/InfiniteTable/hooks/useColumnSizeFn" {
2620
2705
  import { InfiniteTableComputedColumn } from "components/InfiniteTable/types/index";
2621
2706
  /**
@@ -3114,4 +3199,5 @@ declare module "@infinite-table/infinite-react" {
3114
3199
  export { group, flatten } from "utils/groupAndPivot/index";
3115
3200
  export { useComponentState, getComponentStateRoot, } from "components/hooks/useComponentState";
3116
3201
  export { interceptMap } from "components/hooks/useInterceptedMap";
3202
+ export { useEffectWithChanges } from "components/hooks/useEffectWithChanges";
3117
3203
  }