@infinite-table/infinite-react 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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;
@@ -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,15 +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'];
215
225
  changes?: DataSourceDataParamsChanges<T>;
216
226
  }
217
- export type DataSourceDataParamsChanges<T> = Record<keyof Omit<DataSourceDataParams<T>, 'originalDataArray' | 'changes'>, true>;
227
+ export type DataSourceDataParamsChanges<T> = Partial<Record<keyof Omit<DataSourceDataParams<T>, 'originalDataArray' | 'changes'>, true>>;
218
228
  export type DataSourceSingleSortInfo<T> = MultisortInfo<T> & {
219
229
  field?: keyof T;
220
230
  id?: string;
@@ -224,6 +234,8 @@ declare module "components/DataSource/types" {
224
234
  export type DataSourceSortInfo<T> = null | DataSourceSingleSortInfo<T> | DataSourceSingleSortInfo<T>[];
225
235
  export type DataSourceRemoteData<T> = {
226
236
  data: T[];
237
+ mappings?: DataSourceMappings;
238
+ totalCount?: number;
227
239
  livePaginationCursor?: DataSourceLivePaginationCursorValue;
228
240
  };
229
241
  export type DataSourceData<T> = T[] | DataSourceRemoteData<T> | Promise<T[] | DataSourceRemoteData<T>> | ((dataInfo: DataSourceDataParams<T>) => T[] | Promise<T[] | DataSourceRemoteData<T>>);
@@ -237,6 +249,8 @@ declare module "components/DataSource/types" {
237
249
  export interface DataSourceMappedState<T> {
238
250
  aggregationReducers?: DataSourceProps<T>['aggregationReducers'];
239
251
  livePagination: DataSourceProps<T>['livePagination'];
252
+ fullLazyLoad: DataSourceProps<T>['fullLazyLoad'];
253
+ lazyLoadBatchSize: DataSourceProps<T>['lazyLoadBatchSize'];
240
254
  onDataParamsChange: DataSourceProps<T>['onDataParamsChange'];
241
255
  data: DataSourceProps<T>['data'];
242
256
  primaryKey: DataSourceProps<T>['primaryKey'];
@@ -244,27 +258,47 @@ declare module "components/DataSource/types" {
244
258
  groupRowsState: NonUndefined<DataSourceProps<T>['groupRowsState']>;
245
259
  pivotBy: DataSourceProps<T>['pivotBy'];
246
260
  loading: NonUndefined<DataSourceProps<T>['loading']>;
261
+ collapseGroupRowsOnDataFunctionChange: NonUndefined<DataSourceProps<T>['collapseGroupRowsOnDataFunctionChange']>;
247
262
  sortInfo: DataSourceSingleSortInfo<T>[] | null;
248
263
  }
249
264
  export type DataSourceAggregationReducer<T, AggregationResultType> = {
265
+ name?: string;
250
266
  field?: keyof T;
251
- initialValue: AggregationResultType;
267
+ initialValue?: AggregationResultType;
252
268
  getter?: (data: T) => any;
253
- reducer: (accumulator: any, value: any, data: T) => AggregationResultType | any;
269
+ reducer: string | ((accumulator: any, value: any, data: T) => AggregationResultType | any);
254
270
  done?: (accumulatedValue: AggregationResultType | any, array: T[]) => AggregationResultType;
255
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>>;
256
287
  export interface DataSourceSetupState<T> {
288
+ pivotMappings?: DataSourceMappings;
257
289
  propsCache: Map<keyof DataSourceProps<T>, WeakMap<any, any>>;
258
290
  showSeparatePivotColumnForSingleAggregation: boolean;
259
291
  dataParams?: DataSourceDataParams<T>;
292
+ originalLazyGroupData: LazyGroupDataDeepMap<T>;
260
293
  notifyScrollbarsChange: SubscriptionCallback<Scrollbars>;
294
+ notifyScrollStop: SubscriptionCallback<ScrollStopInfo>;
261
295
  originalDataArray: T[];
262
296
  lastSortDataArray?: T[];
263
297
  lastGroupDataArray?: InfiniteTableRowInfo<T>[];
264
298
  dataArray: InfiniteTableRowInfo<T>[];
265
299
  groupDeepMap?: DeepMap<GroupKeyType, DeepMapGroupValueType<T, any>>;
266
300
  pivotTotalColumnPosition: InfiniteTablePropPivotTotalColumnPosition;
267
- scrollBottomId: number | Symbol | DataSourceLivePaginationCursorValue;
301
+ cursorId: number | Symbol | DataSourceLivePaginationCursorValue;
268
302
  updatedAt: number;
269
303
  reducedAt: number;
270
304
  groupedAt: number;
@@ -276,11 +310,13 @@ declare module "components/DataSource/types" {
276
310
  pivotColumnGroups?: Map<string, InfiniteTableColumnGroup>;
277
311
  }
278
312
  export type DataSourcePropAggregationReducers<T> = Record<string, DataSourceAggregationReducer<T, any>>;
279
- export interface DataSourceProps<T> {
313
+ export type DataSourceProps<T> = {
280
314
  children: React.ReactNode | ((contextData: DataSourceState<T>) => React.ReactNode);
281
315
  primaryKey: keyof T;
282
316
  fields?: (keyof T)[];
283
317
  data: DataSourceData<T>;
318
+ fullLazyLoad?: boolean;
319
+ lazyLoadBatchSize?: number;
284
320
  loading?: boolean;
285
321
  defaultLoading?: boolean;
286
322
  onLoadingChange?: (loading: boolean) => void;
@@ -295,6 +331,7 @@ declare module "components/DataSource/types" {
295
331
  groupRowsState?: GroupRowsState;
296
332
  defaultGroupRowsState?: GroupRowsState;
297
333
  onGroupRowsStateChange?: (groupRowsState: GroupRowsState) => void;
334
+ collapseGroupRowsOnDataFunctionChange?: boolean;
298
335
  sortInfo?: DataSourceSortInfo<T>;
299
336
  defaultSortInfo?: DataSourceSortInfo<T>;
300
337
  onSortInfoChange?: ((sortInfo: DataSourceSingleSortInfo<T> | null) => void) | ((sortInfo: DataSourceSingleSortInfo<T>[]) => void);
@@ -302,7 +339,7 @@ declare module "components/DataSource/types" {
302
339
  livePagination?: boolean;
303
340
  livePaginationCursor?: DataSourcePropLivePaginationCursor<T>;
304
341
  onLivePaginationCursorChange?: (livePaginationCursor: DataSourceLivePaginationCursorValue) => void;
305
- }
342
+ };
306
343
  export type DataSourcePropLivePaginationCursor<T> = DataSourceLivePaginationCursorValue | DataSourceLivePaginationCursorFn<T>;
307
344
  export type DataSourceLivePaginationCursorFn<T> = (params: DataSourceLivePaginationCursorParams<T>) => DataSourceLivePaginationCursorValue;
308
345
  export type DataSourceLivePaginationCursorParams<T> = {
@@ -352,10 +389,11 @@ declare module "components/hooks/useEffectWithChanges" {
352
389
  export function useEffectWithObject(fn: EffectCallback, deps: Record<string, any>): void;
353
390
  }
354
391
  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>;
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;
357
396
  export function useLoadData<T>(): void;
358
- export function useLivePagination<T>(): void;
359
397
  }
360
398
  declare module "components/DataSource/state/normalizeSortInfo" {
361
399
  import { DataSourceSingleSortInfo, DataSourceSortInfo } from "components/DataSource/types";
@@ -366,7 +404,7 @@ declare module "components/utils/buildSubscriptionCallback" {
366
404
  export function buildSubscriptionCallback<T>(): SubscriptionCallback<T>;
367
405
  }
368
406
  declare module "utils/shallowEqualObjects" {
369
- 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;
370
408
  }
371
409
  declare module "components/utils/discardCallsWithEqualArg" {
372
410
  export function discardCallsWithEqualArg<T = any>(fn: (arg: T) => void, timeframe?: number, getCompareObject?: (arg: T) => any): (arg: T) => void;
@@ -375,7 +413,8 @@ declare module "components/DataSource/state/getInitialState" {
375
413
  import { DataSourceMappedState, DataSourceProps, DataSourceDerivedState, DataSourceSetupState, DataSourceState } from "components/DataSource/types";
376
414
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
377
415
  import { ComponentInterceptedActions, ForwardPropsToStateFnResult } from "components/hooks/useComponentState";
378
- import { DataSourceDataParams } from "components/DataSource/index";
416
+ import { DataSourceComponentActions, DataSourceDataParams } from "components/DataSource/index";
417
+ export const defaultCursorId: unique symbol;
379
418
  export function initSetupState<T>(): DataSourceSetupState<T>;
380
419
  export const forwardProps: <T>(setupState: DataSourceSetupState<T>) => Partial<{
381
420
  data: 1 | ((value: import("components/DataSource").DataSourceData<T>) => import("components/DataSource").DataSourceData<T>);
@@ -383,16 +422,24 @@ declare module "components/DataSource/state/getInitialState" {
383
422
  sortInfo: 1 | ((value: import("components/DataSource").DataSourceSortInfo<T> | undefined) => import("components/DataSource").DataSourceSingleSortInfo<T>[] | null);
384
423
  groupBy: 1 | ((value: import("components/DataSource").DataSourcePropGroupBy<T> | undefined) => import("components/DataSource").DataSourcePropGroupBy<T>);
385
424
  pivotBy: 1 | ((value: import("components/DataSource").DataSourcePropPivotBy<T> | undefined) => import("components/DataSource").DataSourcePropPivotBy<T> | undefined);
425
+ lazyLoadBatchSize: 1 | ((value: number | undefined) => number | undefined);
386
426
  aggregationReducers: 1 | ((value: import("components/DataSource").DataSourcePropAggregationReducers<T> | undefined) => import("components/DataSource").DataSourcePropAggregationReducers<T> | undefined);
387
427
  livePagination: 1 | ((value: boolean | undefined) => boolean | undefined);
428
+ fullLazyLoad: 1 | ((value: boolean | undefined) => boolean | undefined);
388
429
  onDataParamsChange: 1 | ((value: ((dataParamsChange: DataSourceDataParams<T>) => void) | undefined) => ((dataParamsChange: DataSourceDataParams<T>) => void) | undefined);
389
430
  primaryKey: 1 | ((value: keyof T) => keyof T);
390
431
  groupRowsState: 1 | ((value: GroupRowsState<any> | undefined) => GroupRowsState<any>);
432
+ collapseGroupRowsOnDataFunctionChange: 1 | ((value: boolean | undefined) => boolean);
391
433
  }>;
392
434
  export function mapPropsToState<T extends any>(params: {
393
435
  props: DataSourceProps<T>;
394
436
  state: DataSourceState<T>;
437
+ oldState: DataSourceState<T> | null;
395
438
  }): DataSourceDerivedState<T>;
439
+ export function onPropChange<T>(params: {
440
+ name: keyof T;
441
+ newValue: any;
442
+ }, props: DataSourceProps<T>, actions: DataSourceComponentActions<T>): void;
396
443
  export function getInterceptActions<T>(): ComponentInterceptedActions<DataSourceState<T>>;
397
444
  }
398
445
  declare module "components/types/Renderable" {
@@ -424,6 +471,7 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
424
471
  import type { InfiniteTableColumnGroup, InfiniteTableRowInfo } from "components/InfiniteTable/types/index";
425
472
  import { CSSProperties } from 'react';
426
473
  import { AggregationReducer, InfiniteTableRowInfoGroup, InfiniteTableRowInfoNormal, PivotBy } from "utils/groupAndPivot/index";
474
+ import { InfiniteTableColumnPinnedValues } from "components/InfiniteTable/types/InfiniteTableProps";
427
475
  export type { DiscriminatedUnion, RequireAtLeastOne };
428
476
  export type InfiniteTableToggleGroupRowFn = (groupKeys: any[]) => void;
429
477
  export type InfiniteTableColumnRenderParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
@@ -454,7 +502,6 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
454
502
  column: InfiniteTableComputedColumn<T>;
455
503
  columnSortInfo: DataSourceSingleSortInfo<T> | null | undefined;
456
504
  }
457
- export type InfiniteTableColumnPinned = 'start' | 'end' | false;
458
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;
459
506
  export type InfiniteTableColumnRenderValueFunction<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnRenderFunction<DATA_TYPE, COL_TYPE>;
460
507
  export type InfiniteTableColumnHeaderRenderFunction<T> = ({ columnSortInfo, column, }: InfiniteTableColumnHeaderRenderParams<T>) => Renderable;
@@ -527,7 +574,7 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
527
574
  groupByField: string | string[];
528
575
  id?: string;
529
576
  };
530
- export type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & Partial<InfiniteTablePivotFinalColumn<T, any>>;
577
+ export type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & Partial<InfiniteTablePivotFinalColumnVariant<T, any>>;
531
578
  export type InfiniteTablePivotFinalColumnGroup<DataType, KeyType extends any = any> = InfiniteTableColumnGroup & {
532
579
  pivotBy: DataSourcePivotBy<DataType>[];
533
580
  pivotTotalColumnGroup?: true;
@@ -543,10 +590,11 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
543
590
  pivotAggregator: AggregationReducer<DataType, any>;
544
591
  pivotAggregatorIndex: number;
545
592
  pivotGroupKeys: KeyType[];
546
- pivotByAtIndex: PivotBy<DataType, KeyType>;
593
+ pivotByAtIndex?: PivotBy<DataType, KeyType>;
547
594
  pivotIndex: number;
548
595
  pivotGroupKey: KeyType;
549
596
  };
597
+ export type InfiniteTablePivotFinalColumnVariant<DataType, KeyType extends any = any> = InfiniteTablePivotFinalColumn<DataType, KeyType>;
550
598
  type InfiniteTableComputedColumnBase<T> = {
551
599
  computedWidth: number;
552
600
  computedOffset: number;
@@ -560,7 +608,7 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
560
608
  computedSortIndex: number;
561
609
  computedVisibleIndex: number;
562
610
  computedMultiSort: boolean;
563
- computedPinned: InfiniteTableColumnPinned;
611
+ computedPinned: InfiniteTableColumnPinnedValues;
564
612
  computedDraggable: boolean;
565
613
  computedFirstInCategory: boolean;
566
614
  computedLastInCategory: boolean;
@@ -574,13 +622,14 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
574
622
  }
575
623
  declare module "utils/groupAndPivot/getPivotColumnsAndColumnGroups" {
576
624
  import type { DataSourceAggregationReducer, DataSourcePivotBy } from "components/DataSource/index";
577
- import type { InfiniteTablePropColumnGroups, InfiniteTablePropColumnsMap } from "components/InfiniteTable/index";
625
+ import type { InfiniteTablePropColumnsMap } from "components/InfiniteTable/index";
578
626
  import type { InfiniteTablePivotColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
627
+ import { InfiniteTablePropColumnGroupsMap } from "components/InfiniteTable/types/InfiniteTableProps";
579
628
  import type { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
580
- import { DeepMap } from "utils/DeepMap";
629
+ import { DeepMap } from "utils/DeepMap/index";
581
630
  export type ComputedColumnsAndGroups<DataType> = {
582
631
  columns: InfiniteTablePropColumnsMap<DataType, InfiniteTablePivotColumn<DataType>>;
583
- columnGroups: InfiniteTablePropColumnGroups;
632
+ columnGroups: InfiniteTablePropColumnGroupsMap;
584
633
  };
585
634
  export function getPivotColumnsAndColumnGroups<DataType, KeyType = any>({ deepMap, pivotBy, pivotTotalColumnPosition, reducers, showSeparatePivotColumnForSingleAggregation, }: {
586
635
  deepMap: DeepMap<KeyType, boolean>;
@@ -632,11 +681,12 @@ declare module "components/DataSource/GroupRowsState" {
632
681
  }
633
682
  }
634
683
  declare module "utils/groupAndPivot/index" {
635
- import { DataSourceAggregationReducer } from "@infinite-table/infinite-react";
684
+ import { DataSourceAggregationReducer, DataSourceMappings, LazyGroupDataDeepMap } from "@infinite-table/infinite-react";
636
685
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
637
- import { InfiniteTableColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn, InfiniteTablePivotFinalColumnGroup } from "components/InfiniteTable/types/InfiniteTableColumn";
686
+ import { InfiniteTableColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumnGroup, InfiniteTablePivotFinalColumnVariant } from "components/InfiniteTable/types/InfiniteTableColumn";
638
687
  import { InfiniteTableColumnGroup, InfiniteTableGroupColumnBase } from "components/InfiniteTable/types/InfiniteTableProps";
639
- import { DeepMap } from "utils/DeepMap";
688
+ import { DeepMap } from "utils/DeepMap/index";
689
+ export const LAZY_ROOT_KEY_FOR_GROUPS: string;
640
690
  export type AggregationReducer<T, AggregationResultType = any> = DataSourceAggregationReducer<T, AggregationResultType> & {
641
691
  id: string;
642
692
  };
@@ -705,7 +755,7 @@ declare module "utils/groupAndPivot/index" {
705
755
  };
706
756
  export type PivotBy<DataType, KeyType> = Omit<GroupBy<DataType, KeyType>, 'column'> & {
707
757
  column?: InfiniteTableColumn<DataType> | (({ column, }: {
708
- column: InfiniteTablePivotFinalColumn<DataType, KeyType>;
758
+ column: InfiniteTablePivotFinalColumnVariant<DataType, KeyType>;
709
759
  }) => Partial<InfiniteTablePivotColumn<DataType>>);
710
760
  columnGroup?: InfiniteTableColumnGroup | (({ columnGroup, }: {
711
761
  columnGroup: InfiniteTablePivotFinalColumnGroup<DataType, KeyType>;
@@ -717,6 +767,9 @@ declare module "utils/groupAndPivot/index" {
717
767
  pivot?: PivotBy<DataType, KeyType>[];
718
768
  reducers?: Record<string, DataSourceAggregationReducer<DataType, any>>;
719
769
  };
770
+ type LazyGroupParams = {
771
+ mappings?: DataSourceMappings;
772
+ };
720
773
  export type DataGroupResult<DataType, KeyType extends any> = {
721
774
  deepMap: DeepMap<GroupKeyType<KeyType>, DeepMapGroupValueType<DataType, KeyType>>;
722
775
  groupParams: GroupParams<DataType, KeyType>;
@@ -725,6 +778,7 @@ declare module "utils/groupAndPivot/index" {
725
778
  topLevelPivotColumns?: DeepMap<GroupKeyType<KeyType>, boolean>;
726
779
  pivot?: PivotBy<DataType, KeyType>[];
727
780
  };
781
+ export function lazyGroup<DataType, KeyType extends string = string>(groupParams: GroupParams<DataType, KeyType> & LazyGroupParams, rootData: LazyGroupDataDeepMap<DataType>): DataGroupResult<DataType, KeyType>;
728
782
  export function group<DataType, KeyType = any>(groupParams: GroupParams<DataType, KeyType>, data: DataType[]): DataGroupResult<DataType, KeyType>;
729
783
  export function flatten<DataType, KeyType extends any>(groupResult: DataGroupResult<DataType, KeyType>): DataType[];
730
784
  export type EnhancedFlattenParam<DataType, KeyType = any> = {
@@ -923,12 +977,15 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
923
977
  import { DataSourceGroupBy, DataSourcePropGroupBy, DataSourcePropPivotBy, DataSourceState } from "components/DataSource/index";
924
978
  import { Renderable } from "components/types/Renderable";
925
979
  import { LoadMaskProps } from "components/InfiniteTable/components/LoadMask";
926
- import type { InfiniteTableBaseColumn, InfiniteTableColumn, InfiniteTableColumnPinned, InfiniteTableColumnRenderFunction, InfiniteTableComputedColumn, InfiniteTableComputedPivotFinalColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
980
+ import type { InfiniteTableColumn, InfiniteTableColumnRenderFunction, InfiniteTableComputedColumn, InfiniteTableComputedPivotFinalColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
927
981
  import { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
928
982
  export type InfiniteTablePropColumnOrderNormalized = string[];
929
983
  export type InfiniteTablePropColumnOrder = InfiniteTablePropColumnOrderNormalized | true;
930
- export type InfiniteTablePropColumnVisibility = Map<string, false>;
931
- 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;
932
989
  export type InfiniteTableRowStyleFnParams<T> = {
933
990
  rowIndex: number;
934
991
  groupBy?: (keyof T)[];
@@ -952,6 +1009,7 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
952
1009
  maxWidth?: number;
953
1010
  defaultWidth?: number;
954
1011
  defaultFlex?: number;
1012
+ defaultPinned?: InfiniteTableColumnPinnedValues;
955
1013
  header?: InfiniteTableColumn<T>['header'];
956
1014
  comparer?: InfiniteTableColumn<T>['comparer'];
957
1015
  draggable?: InfiniteTableColumn<T>['draggable'];
@@ -959,7 +1017,6 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
959
1017
  resizable?: InfiniteTableColumn<T>['resizable'];
960
1018
  align?: InfiniteTableColumn<T>['align'];
961
1019
  verticalAlign?: InfiniteTableColumn<T>['verticalAlign'];
962
- defaultPinned?: InfiniteTableColumnPinned;
963
1020
  renderValue?: InfiniteTableColumn<T>['renderValue'];
964
1021
  render?: InfiniteTableColumn<T>['render'];
965
1022
  valueGetter?: InfiniteTableColumn<T>['valueGetter'];
@@ -990,11 +1047,14 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
990
1047
  export type InfiniteTablePropColumns<T, ColumnType = InfiniteTableColumn<T>> = InfiniteTablePropColumnsMap<T, ColumnType> | Record<string, ColumnType>;
991
1048
  export type InfiniteTableColumns<T> = InfiniteTablePropColumns<T>;
992
1049
  export type InfiniteTableColumnsMap<T> = InfiniteTablePropColumnsMap<T>;
993
- 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;
994
1053
  /**
995
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
996
1055
  * the value is the id of the column to leave as visible
997
1056
  */
1057
+ export type InfiniteTablePropCollapsedColumnGroupsMap = Map<string[], string>;
998
1058
  export type InfiniteTablePropCollapsedColumnGroups = Map<string[], string>;
999
1059
  export type InfiniteTableColumnGroupHeaderRenderParams = {
1000
1060
  columnGroup: InfiniteTableComputedColumnGroup;
@@ -1025,7 +1085,7 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
1025
1085
  pivotBy: DataSourcePropPivotBy<T>;
1026
1086
  };
1027
1087
  export type InfiniteTablePropGroupRenderStrategy = 'single-column' | 'multi-column' | 'inline';
1028
- export type InfiniteTableGroupColumnBase<T> = InfiniteTableBaseColumn<T> & {
1088
+ export type InfiniteTableGroupColumnBase<T> = InfiniteTableColumn<T> & {
1029
1089
  renderValue?: InfiniteTableColumnRenderFunction<T>;
1030
1090
  id?: string;
1031
1091
  };
@@ -1039,6 +1099,11 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
1039
1099
  export type InfiniteTablePropComponents = {
1040
1100
  LoadMask?: React.FC<LoadMaskProps>;
1041
1101
  };
1102
+ export type ScrollStopInfo = {
1103
+ scrollTop: number;
1104
+ firstVisibleRowIndex: number;
1105
+ lastVisibleRowIndex: number;
1106
+ };
1042
1107
  export interface InfiniteTableProps<T> {
1043
1108
  columns: InfiniteTablePropColumns<T>;
1044
1109
  pivotColumns?: InfiniteTablePropColumnsMap<T, InfiniteTablePivotColumn<T>>;
@@ -1095,6 +1160,8 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
1095
1160
  onBlurWithin?: (event: React.FocusEvent<HTMLDivElement>) => void;
1096
1161
  onScrollToTop?: () => void;
1097
1162
  onScrollToBottom?: () => void;
1163
+ scrollStopDelay?: number;
1164
+ onScrollStop?: (param: ScrollStopInfo) => void;
1098
1165
  scrollToBottomOffset?: number;
1099
1166
  defaultColumnOrder?: InfiniteTablePropColumnOrder;
1100
1167
  columnOrder?: InfiniteTablePropColumnOrder;
@@ -1134,7 +1201,7 @@ declare module "components/VirtualBrain/ScrollListener" {
1134
1201
  }
1135
1202
  declare module "components/InfiniteTable/types/InfiniteTableState" {
1136
1203
  import type { ScrollPosition } from "components/types/ScrollPosition";
1137
- 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";
1138
1205
  import { Size } from "components/types/Size";
1139
1206
  import { MutableRefObject } from 'react';
1140
1207
  import { SubscriptionCallback } from "components/types/SubscriptionCallback";
@@ -1148,6 +1215,7 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1148
1215
  groupIndex: number;
1149
1216
  }>;
1150
1217
  export interface InfiniteTableSetupState<T> {
1218
+ propsCache: Map<keyof InfiniteTableProps<T>, WeakMap<any, any>>;
1151
1219
  columnsWhenInlineGroupRenderStrategy?: Map<string, InfiniteTableColumn<T>>;
1152
1220
  domRef: MutableRefObject<HTMLDivElement | null>;
1153
1221
  scrollerDOMRef: MutableRefObject<HTMLDivElement | null>;
@@ -1184,8 +1252,10 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1184
1252
  onSelfBlur: InfiniteTableProps<T>['onSelfBlur'];
1185
1253
  onFocusWithin: InfiniteTableProps<T>['onFocusWithin'];
1186
1254
  onBlurWithin: InfiniteTableProps<T>['onBlurWithin'];
1255
+ scrollStopDelay: NonUndefined<InfiniteTableProps<T>['scrollStopDelay']>;
1187
1256
  onScrollToTop: InfiniteTableProps<T>['onScrollToTop'];
1188
1257
  onScrollToBottom: InfiniteTableProps<T>['onScrollToBottom'];
1258
+ onScrollStop: InfiniteTableProps<T>['onScrollStop'];
1189
1259
  scrollToBottomOffset: InfiniteTableProps<T>['scrollToBottomOffset'];
1190
1260
  focusedClassName: InfiniteTableProps<T>['focusedClassName'];
1191
1261
  focusedWithinClassName: InfiniteTableProps<T>['focusedWithinClassName'];
@@ -1200,7 +1270,7 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1200
1270
  pinnedEndMaxWidth: InfiniteTableProps<T>['pinnedEndMaxWidth'];
1201
1271
  pivotColumn: InfiniteTableProps<T>['pivotColumn'];
1202
1272
  pivotRowLabelsColumn: InfiniteTableProps<T>['pivotRowLabelsColumn'];
1203
- pivotColumnGroups: InfiniteTableProps<T>['pivotColumnGroups'];
1273
+ pivotColumnGroups: InfiniteTablePropColumnGroupsMap;
1204
1274
  activeIndex: NonUndefined<InfiniteTableProps<T>['activeIndex']>;
1205
1275
  columnMinWidth: NonUndefined<InfiniteTableProps<T>['columnMinWidth']>;
1206
1276
  columnMaxWidth: NonUndefined<InfiniteTableProps<T>['columnMaxWidth']>;
@@ -1216,11 +1286,11 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1216
1286
  rowHeight: number;
1217
1287
  headerHeight: number;
1218
1288
  licenseKey: NonUndefined<InfiniteTableProps<T>['licenseKey']>;
1219
- columnVisibility: NonUndefined<InfiniteTableProps<T>['columnVisibility']>;
1220
- columnPinning: NonUndefined<InfiniteTableProps<T>['columnPinning']>;
1289
+ columnVisibility: InfiniteTablePropColumnVisibility;
1290
+ columnPinning: InfiniteTablePropColumnPinningMap;
1221
1291
  columnSizing: InfiniteTablePropColumnSizingMap;
1222
1292
  columnTypes: InfiniteTablePropColumnTypesMap<T>;
1223
- columnGroups: NonUndefined<InfiniteTableProps<T>['columnGroups']>;
1293
+ columnGroups: InfiniteTablePropColumnGroupsMap;
1224
1294
  collapsedColumnGroups: NonUndefined<InfiniteTableProps<T>['collapsedColumnGroups']>;
1225
1295
  pivotTotalColumnPosition: NonUndefined<InfiniteTableProps<T>['pivotTotalColumnPosition']>;
1226
1296
  }
@@ -1231,7 +1301,7 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1231
1301
  groupRenderStrategy: NonUndefined<InfiniteTableProps<T>['groupRenderStrategy']>;
1232
1302
  columnGroupsDepthsMap: InfiniteTableColumnGroupsDepthsMap;
1233
1303
  columnGroupsMaxDepth: number;
1234
- computedColumnGroups: InfiniteTablePropColumnGroups;
1304
+ computedColumnGroups: InfiniteTablePropColumnGroupsMap;
1235
1305
  rowHeightCSSVar: string;
1236
1306
  headerHeightCSSVar: string;
1237
1307
  }
@@ -1304,19 +1374,19 @@ declare module "components/InfiniteTable/types/index" {
1304
1374
  import type { InfiniteTableComputedValues } from "components/InfiniteTable/types/InfiniteTableComputedValues";
1305
1375
  import type { InfiniteTableContextValue } from "components/InfiniteTable/types/InfiniteTableContextValue";
1306
1376
  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, };
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, };
1308
1378
  }
1309
1379
  declare module "components/InfiniteTable/InfiniteTableContext" {
1310
1380
  import { InfiniteTableContextValue } from "components/InfiniteTable/types/InfiniteTableContextValue";
1311
1381
  export function getInfiniteTableContext<T>(): React.Context<InfiniteTableContextValue<T>>;
1312
1382
  }
1313
1383
  declare module "components/InfiniteTable/utils/toMap" {
1314
- 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>;
1315
1385
  }
1316
1386
  declare module "components/InfiniteTable/state/computeColumnGroupsDepths" {
1317
- import type { InfiniteTablePropColumnGroups } from "components/InfiniteTable/types/InfiniteTableProps";
1387
+ import type { InfiniteTablePropColumnGroupsMap } from "components/InfiniteTable/types/InfiniteTableProps";
1318
1388
  import type { InfiniteTableColumnGroupsDepthsMap } from "components/InfiniteTable/types/InfiniteTableState";
1319
- export function computeColumnGroupsDepths(columnGroups: InfiniteTablePropColumnGroups): InfiniteTableColumnGroupsDepthsMap;
1389
+ export function computeColumnGroupsDepths(columnGroups: InfiniteTablePropColumnGroupsMap): InfiniteTableColumnGroupsDepthsMap;
1320
1390
  }
1321
1391
  declare module "components/InfiniteTable/state/getInitialState" {
1322
1392
  import { DataSourceState } from "components/DataSource/index";
@@ -1329,59 +1399,61 @@ declare module "components/InfiniteTable/state/getInitialState" {
1329
1399
  * be affected by props
1330
1400
  */
1331
1401
  export function initSetupState<T>(): InfiniteTableSetupState<T>;
1332
- export const forwardProps: <T>() => Partial<{
1402
+ export const forwardProps: <T>(setupState: InfiniteTableSetupState<T>) => Partial<{
1333
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>>);
1334
1404
  header: 1 | ((value: boolean | undefined) => boolean);
1335
1405
  showSeparatePivotColumnForSingleAggregation: 1 | ((value: boolean | undefined) => boolean);
1336
1406
  pivotTotalColumnPosition: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableState").InfiniteTablePropPivotTotalColumnPosition | undefined) => import("components/InfiniteTable/types/InfiniteTableState").InfiniteTablePropPivotTotalColumnPosition);
1337
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);
1338
- 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);
1339
1409
  sortable: 1 | ((value: boolean | undefined) => boolean);
1340
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);
1341
1411
  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);
1412
+ loadingText: 1 | ((value: import("react").ReactNode) => import("react").ReactNode);
1343
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);
1344
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);
1345
1424
  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);
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);
1348
1443
  onSelfFocus: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1349
1444
  onSelfBlur: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1350
1445
  onFocusWithin: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1351
1446
  onBlurWithin: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1352
1447
  onScrollToTop: 1 | ((value: (() => void) | undefined) => (() => void) | undefined);
1353
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);
1354
1451
  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
1452
  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>);
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);
1376
1455
  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);
1456
+ scrollTopId: 1 | ((value: string | number | undefined) => string | number | undefined);
1385
1457
  }>;
1386
1458
  export const mapPropsToState: <T>(params: {
1387
1459
  props: InfiniteTableProps<T>;
@@ -1458,9 +1530,8 @@ declare module "components/flexbox/index" {
1458
1530
  export const computeFlex: (params: FlexComputeParams) => FlexComputeResult;
1459
1531
  }
1460
1532
  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;
1533
+ import { InfiniteTablePropColumnOrderNormalized, InfiniteTablePropColumnPinningMap } from "components/InfiniteTable/types/InfiniteTableProps";
1534
+ export const adjustColumnOrderForPinning: (columnOrder: InfiniteTablePropColumnOrderNormalized, columnPinning: InfiniteTablePropColumnPinningMap) => InfiniteTablePropColumnOrderNormalized;
1464
1535
  }
1465
1536
  declare module "utils/getGlobal" {
1466
1537
  export function getGlobal<T extends Window>(): T;
@@ -1477,7 +1548,7 @@ declare module "components/InfiniteTable/utils/getComputedVisibleColumns" {
1477
1548
  import type { InfiniteTableColumn, InfiniteTableComputedColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
1478
1549
  import type { Size } from "components/types/Size";
1479
1550
  import type { DataSourceSingleSortInfo } from "components/DataSource/types";
1480
- 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";
1481
1552
  export type SortInfoMap<T> = {
1482
1553
  [key: string]: {
1483
1554
  sortInfo: DataSourceSingleSortInfo<T>;
@@ -1519,7 +1590,7 @@ declare module "components/InfiniteTable/utils/getComputedVisibleColumns" {
1519
1590
  setSortInfo: (sortInfo: DataSourceSingleSortInfo<T>[]) => void;
1520
1591
  draggableColumns?: boolean;
1521
1592
  columnOrder: InfiniteTablePropColumnOrder;
1522
- columnPinning: InfiniteTablePropColumnPinning;
1593
+ columnPinning: InfiniteTablePropColumnPinningMap;
1523
1594
  columnSizing: InfiniteTablePropColumnSizingMap;
1524
1595
  columnTypes: InfiniteTablePropColumnTypesMap<T>;
1525
1596
  columnVisibility: InfiniteTablePropColumnVisibility;
@@ -1555,7 +1626,7 @@ declare module "components/InfiniteTable/hooks/useRerenderOnKeyChange" {
1555
1626
  declare module "components/InfiniteTable/hooks/useComputedVisibleColumns" {
1556
1627
  import type { DataSourceSingleSortInfo } from "components/DataSource/types";
1557
1628
  import type { InfiniteTableColumn } from "components/InfiniteTable/types/index";
1558
- 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";
1559
1630
  import type { Size } from "components/types/Size";
1560
1631
  import type { GetComputedVisibleColumnsResult } from "components/InfiniteTable/utils/getComputedVisibleColumns";
1561
1632
  type UseComputedVisibleColumnsParam<T> = {
@@ -1572,7 +1643,7 @@ declare module "components/InfiniteTable/hooks/useComputedVisibleColumns" {
1572
1643
  multiSort: boolean;
1573
1644
  sortInfo?: DataSourceSingleSortInfo<T>[];
1574
1645
  setSortInfo: (sortInfo: DataSourceSingleSortInfo<T>[]) => void;
1575
- columnPinning: InfiniteTablePropColumnPinning;
1646
+ columnPinning: InfiniteTablePropColumnPinningMap;
1576
1647
  columnSizing: InfiniteTablePropColumnSizingMap;
1577
1648
  columnTypes: InfiniteTablePropColumnTypesMap<T>;
1578
1649
  columnOrder: InfiniteTablePropColumnOrder;
@@ -1684,8 +1755,8 @@ declare module "components/InfiniteTable/utils/getColumnForGroupBy" {
1684
1755
  export function getColumnForGroupBy<T>(options: InfiniteTableGroupColumnGetterOptions<T> & {
1685
1756
  groupIndexForColumn: number;
1686
1757
  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>;
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>;
1689
1760
  }
1690
1761
  declare module "components/InfiniteTable/hooks/useToggleGroupRow" {
1691
1762
  export type ToggleGrouRowFn = (groupKeys: any[]) => void;
@@ -1891,9 +1962,7 @@ declare module "components/InfiniteTable/components/cell.css" {
1891
1962
  unpinned: {};
1892
1963
  pinnedStartLastInCategory: {
1893
1964
  borderRight: import("@vanilla-extract/private").CSSVarFunction;
1894
- vars: {
1895
- [x: string]: import("@vanilla-extract/private").CSSVarFunction;
1896
- };
1965
+ vars: {};
1897
1966
  };
1898
1967
  pinnedEndFirstInCategory: {
1899
1968
  borderLeft: import("@vanilla-extract/private").CSSVarFunction;
@@ -2115,15 +2184,14 @@ declare module "components/InfiniteTable/components/InfiniteTableHeader/Infinite
2115
2184
  import { Renderable } from "components/types/Renderable";
2116
2185
  import { VirtualBrain } from "components/VirtualBrain/index";
2117
2186
  import { ScrollListener } from "components/VirtualBrain/ScrollListener";
2118
- import { InfiniteTableColumnPinned } from "components/InfiniteTable/types/InfiniteTableColumn";
2119
- import { InfiniteTableComputedColumnGroup } from "components/InfiniteTable/types/InfiniteTableProps";
2187
+ import { InfiniteTableColumnPinnedValues, InfiniteTableComputedColumnGroup } from "components/InfiniteTable/types/InfiniteTableProps";
2120
2188
  export type InfiniteTableHeaderProps<T> = {
2121
2189
  repaintId?: string | number;
2122
2190
  brain: VirtualBrain;
2123
2191
  columns: InfiniteTableComputedColumn<T>[];
2124
2192
  totalWidth: number;
2125
2193
  availableWidth: number;
2126
- pinning: InfiniteTableColumnPinned;
2194
+ pinning: InfiniteTableColumnPinnedValues;
2127
2195
  };
2128
2196
  export type InfiniteTableHeaderGroupProps<T> = {
2129
2197
  columns: InfiniteTableComputedColumn<T>[];
@@ -2630,6 +2698,9 @@ declare module "components/InfiniteTable/hooks/usePinnedRendering" {
2630
2698
  pinnedStartScrollbarPlaceholder: JSX.Element | null;
2631
2699
  };
2632
2700
  }
2701
+ declare module "components/hooks/useOnce" {
2702
+ export function useOnce<ReturnType>(fn: () => ReturnType): ReturnType;
2703
+ }
2633
2704
  declare module "components/InfiniteTable/hooks/useColumnSizeFn" {
2634
2705
  import { InfiniteTableComputedColumn } from "components/InfiniteTable/types/index";
2635
2706
  /**