@infinite-table/infinite-react 0.0.5 → 0.0.9

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
@@ -8,6 +8,8 @@ declare module "components/types/ScrollPosition" {
8
8
  export type SetScrollPosition = OnScrollFn;
9
9
  }
10
10
  declare module "utils/multisort/sortTypes" {
11
+ export const numberComparator: (first: number, second: number) => number;
12
+ export const stringComparator: (first: string, second: string) => number;
11
13
  const sortTypes: {
12
14
  [key: string]: (first: any, second: any) => number;
13
15
  };
@@ -139,9 +141,15 @@ declare module "components/hooks/useComponentState" {
139
141
  componentState: T_STATE;
140
142
  componentActions: T_ACTIONS;
141
143
  };
142
- type ComponentStateGeneratedActions<T_STATE> = {
144
+ export type ComponentStateGeneratedActions<T_STATE> = {
143
145
  [k in keyof T_STATE]: T_STATE[k] | React.SetStateAction<T_STATE[k]>;
144
146
  };
147
+ export type ComponentInterceptedActions<T_STATE> = {
148
+ [k in keyof T_STATE]?: (value: T_STATE[k], { actions, state, }: {
149
+ actions: ComponentStateGeneratedActions<T_STATE>;
150
+ state: T_STATE;
151
+ }) => void;
152
+ };
145
153
  export type ComponentStateActions<T_STATE> = ComponentStateGeneratedActions<T_STATE>;
146
154
  export type ForwardPropsToStateFnResult<TYPE_PROPS, TYPE_RESULT> = Partial<{
147
155
  [propName in keyof TYPE_PROPS & keyof TYPE_RESULT]: 1 | ((value: TYPE_PROPS[propName]) => TYPE_RESULT[propName]);
@@ -151,6 +159,7 @@ declare module "components/hooks/useComponentState" {
151
159
  initSetupState?: () => COMPONENT_SETUP_STATE;
152
160
  forwardProps?: () => ForwardPropsToStateFnResult<T_PROPS, COMPONENT_MAPPED_STATE>;
153
161
  allowedControlledPropOverrides?: Record<keyof T_PROPS, true>;
162
+ interceptActions?: ComponentInterceptedActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>;
154
163
  mapPropsToState?: (params: {
155
164
  props: T_PROPS;
156
165
  state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & Partial<COMPONENT_DERIVED_STATE>;
@@ -175,18 +184,33 @@ declare module "components/hooks/useComponentState" {
175
184
  declare module "components/types/NonUndefined" {
176
185
  export type NonUndefined<T> = T extends undefined ? never : T;
177
186
  }
187
+ declare module "components/types/SubscriptionCallback" {
188
+ import { VoidFn } from "components/types/VoidFn";
189
+ export type SubscriptionCallbackOnChangeFn<T> = (node: T | null) => void;
190
+ export interface SubscriptionCallback<T> {
191
+ (node: T): void;
192
+ get: () => T | null;
193
+ destroy: VoidFn;
194
+ onChange: (fn: SubscriptionCallbackOnChangeFn<T>) => VoidFn;
195
+ }
196
+ }
178
197
  declare module "components/DataSource/types" {
179
198
  import * as React from 'react';
180
199
  import { MultisortInfo } from "utils/multisort/index";
181
200
  import { DeepMap } from "utils/DeepMap";
182
201
  import { AggregationReducer, DeepMapGroupValueType, GroupBy, GroupKeyType, PivotBy } from "utils/groupAndPivot/index";
183
- import { InfiniteTableColumn, InfiniteTableColumnGroup, InfiniteTableRowInfo } from "components/InfiniteTable/index";
202
+ import { InfiniteTableColumn, InfiniteTableColumnGroup, InfiniteTableRowInfo, Scrollbars } from "components/InfiniteTable/index";
184
203
  import { ComponentStateActions } from "components/hooks/useComponentState";
185
204
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
186
205
  import { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
187
206
  import { NonUndefined } from "components/types/NonUndefined";
188
- export interface DataSourceDataInfo<T> {
207
+ import { SubscriptionCallback } from "components/types/SubscriptionCallback";
208
+ export interface DataSourceDataParams<T> {
189
209
  originalDataArray: T[];
210
+ sortInfo?: DataSourceSortInfo<T>;
211
+ groupRowsBy?: DataSourcePropGroupRowsBy<T>;
212
+ pivotBy?: DataSourcePropPivotBy<T>;
213
+ livePaginationCursor?: DataSourceLivePaginationCursorValue;
190
214
  }
191
215
  export type DataSourceSingleSortInfo<T> = MultisortInfo<T> & {
192
216
  field?: keyof T;
@@ -195,11 +219,11 @@ declare module "components/DataSource/types" {
195
219
  export type DataSourceGroupRowsBy<T> = GroupBy<T, any>;
196
220
  export type DataSourcePivotBy<T> = PivotBy<T, any>;
197
221
  export type DataSourceSortInfo<T> = null | DataSourceSingleSortInfo<T> | DataSourceSingleSortInfo<T>[];
198
- export type DataSourceData<T> = T[] | Promise<T[] | {
199
- data: T[];
200
- }> | (() => T[] | Promise<T[] | {
222
+ export type DataSourceRemoteData<T> = {
201
223
  data: T[];
202
- }>);
224
+ livePaginationCursor?: DataSourceLivePaginationCursorValue;
225
+ };
226
+ export type DataSourceData<T> = T[] | Promise<T[] | DataSourceRemoteData<T>> | ((dataInfo: DataSourceDataParams<T>) => T[] | Promise<T[] | DataSourceRemoteData<T>>);
203
227
  export type DataSourceGroupRowsList<KeyType> = true | KeyType[][];
204
228
  export type DataSourceExpandedAndCollapsedGroupRows<KeyType> = {
205
229
  expandedRows: DataSourceGroupRowsList<KeyType>;
@@ -208,7 +232,10 @@ declare module "components/DataSource/types" {
208
232
  export type DataSourcePropGroupRowsBy<T> = DataSourceGroupRowsBy<T>[];
209
233
  export type DataSourcePropPivotBy<T> = DataSourcePivotBy<T>[];
210
234
  export interface DataSourceMappedState<T> {
235
+ livePagination: DataSourceProps<T>['livePagination'];
236
+ livePaginationCursor: DataSourceProps<T>['livePaginationCursor'];
211
237
  remoteCount: DataSourceProps<T>['remoteCount'];
238
+ onDataParamsChange: DataSourceProps<T>['onDataParamsChange'];
212
239
  data: DataSourceProps<T>['data'];
213
240
  primaryKey: DataSourceProps<T>['primaryKey'];
214
241
  groupRowsBy: NonUndefined<DataSourceProps<T>['groupRowsBy']>;
@@ -218,12 +245,15 @@ declare module "components/DataSource/types" {
218
245
  sortInfo: DataSourceSingleSortInfo<T>[] | null;
219
246
  }
220
247
  export interface DataSourceSetupState<T> {
248
+ dataParams?: DataSourceDataParams<T>;
249
+ notifyScrollbarsChange: SubscriptionCallback<Scrollbars>;
221
250
  originalDataArray: T[];
222
251
  lastSortDataArray?: T[];
223
252
  lastGroupDataArray?: InfiniteTableRowInfo<T>[];
224
253
  dataArray: InfiniteTableRowInfo<T>[];
225
254
  groupDeepMap?: DeepMap<GroupKeyType, DeepMapGroupValueType<T, any>>;
226
255
  pivotTotalColumnPosition: InfiniteTablePropPivotTotalColumnPosition;
256
+ scrollBottomId: number | Symbol | DataSourceLivePaginationCursorValue;
227
257
  updatedAt: number;
228
258
  reducedAt: number;
229
259
  groupedAt: number;
@@ -255,12 +285,17 @@ declare module "components/DataSource/types" {
255
285
  onGroupRowsStateChange?: (groupRowsState: GroupRowsState) => void;
256
286
  sortInfo?: DataSourceSortInfo<T>;
257
287
  defaultSortInfo?: DataSourceSortInfo<T>;
258
- onSortInfoChange?: (sortInfo: DataSourceSortInfo<T>) => void;
288
+ onSortInfoChange?: ((sortInfo: DataSourceSingleSortInfo<T> | null) => void) | ((sortInfo: DataSourceSingleSortInfo<T>[]) => void);
289
+ onDataParamsChange?: (dataParamsChange: DataSourceDataParams<T>) => void;
290
+ livePagination?: boolean;
291
+ livePaginationCursor?: DataSourceLivePaginationCursorValue;
259
292
  }
293
+ export type DataSourceLivePaginationCursorValue = string | number;
260
294
  export interface DataSourceState<T> extends DataSourceSetupState<T>, DataSourceDerivedState<T>, DataSourceMappedState<T> {
261
295
  }
262
296
  export interface DataSourceDerivedState<_T> {
263
297
  multiSort: boolean;
298
+ controlledSort: boolean;
264
299
  }
265
300
  export type DataSourceComponentActions<T> = ComponentStateActions<DataSourceState<T>>;
266
301
  export interface DataSourceContextValue<T> {
@@ -290,42 +325,55 @@ declare module "components/DataSource/publicHooks/useDataSource" {
290
325
  export function useDataSource<T>(): DataSourceState<T>;
291
326
  export function useDataSourceContextValue<T>(): DataSourceContextValue<T>;
292
327
  }
293
- declare module "components/DataSource/privateHooks/buildDataSourceDataInfo" {
294
- import { DataSourceDataInfo } from "components/DataSource/types";
295
- export function buildDataSourceDataInfo<T>(dataParam: T[] | {
296
- data: T[];
297
- }): DataSourceDataInfo<T>;
298
- }
299
- declare module "components/DataSource/privateHooks/loadDataAsync" {
300
- import { DataSourceData, DataSourceDataInfo } from "components/DataSource/types";
301
- export function loadDataAsync<T>(data: DataSourceData<T>): Promise<DataSourceDataInfo<T>>;
328
+ declare module "components/hooks/useEffectWithChanges" {
329
+ import { EffectCallback } from 'react';
330
+ export function useEffectWithChanges(fn: (changes: Record<string, any>, prevValues: Record<string, any>) => void | (() => void), deps: Record<string, any>): void;
331
+ export function useEffectWithObject(fn: EffectCallback, deps: Record<string, any>): void;
302
332
  }
303
333
  declare module "components/DataSource/privateHooks/useLoadData" {
334
+ import { DataSourceDataParams, DataSourceState } from "components/DataSource/types";
335
+ export function buildDataSourceDataParams<T>(componentState: DataSourceState<T>): DataSourceDataParams<T>;
304
336
  export function useLoadData<T>(): void;
337
+ export function useLivePagination<T>(): void;
305
338
  }
306
339
  declare module "components/DataSource/state/normalizeSortInfo" {
307
340
  import { DataSourceSingleSortInfo, DataSourceSortInfo } from "components/DataSource/types";
308
341
  export const normalizeSortInfo: <T>(sortInfo?: DataSourceSortInfo<T> | undefined) => DataSourceSingleSortInfo<T>[];
309
342
  }
343
+ declare module "components/utils/buildSubscriptionCallback" {
344
+ import { SubscriptionCallback } from "components/types/SubscriptionCallback";
345
+ export function buildSubscriptionCallback<T>(): SubscriptionCallback<T>;
346
+ }
347
+ declare module "utils/shallowEqualObjects" {
348
+ export function shallowEqualObjects<T extends object | null>(objA: T, objB: T): boolean;
349
+ }
350
+ declare module "components/utils/discardCallsWithEqualArg" {
351
+ export function discardCallsWithEqualArg<T = any>(fn: (arg: T) => void, timeframe?: number, getCompareObject?: (arg: T) => any): (arg: T) => void;
352
+ }
310
353
  declare module "components/DataSource/state/getInitialState" {
311
354
  import { DataSourceMappedState, DataSourceProps, DataSourceDerivedState, DataSourceSetupState, DataSourceState } from "components/DataSource/types";
312
355
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
313
- import { ForwardPropsToStateFnResult } from "components/hooks/useComponentState";
356
+ import { ComponentInterceptedActions, ForwardPropsToStateFnResult } from "components/hooks/useComponentState";
357
+ import { DataSourceDataParams } from "components/DataSource/index";
314
358
  export function initSetupState<T>(): DataSourceSetupState<T>;
315
359
  export const forwardProps: <T>() => Partial<{
316
- data: 1 | ((value: import("components/DataSource/types").DataSourceData<T>) => import("components/DataSource/types").DataSourceData<T>);
360
+ data: 1 | ((value: import("components/DataSource").DataSourceData<T>) => import("components/DataSource").DataSourceData<T>);
317
361
  loading: 1 | ((value: boolean | undefined) => boolean);
362
+ livePagination: 1 | ((value: boolean | undefined) => boolean | undefined);
363
+ livePaginationCursor: 1 | ((value: import("components/DataSource").DataSourceLivePaginationCursorValue | undefined) => import("components/DataSource").DataSourceLivePaginationCursorValue | undefined);
318
364
  remoteCount: 1 | ((value: number | undefined) => number | undefined);
365
+ onDataParamsChange: 1 | ((value: ((dataParamsChange: DataSourceDataParams<T>) => void) | undefined) => ((dataParamsChange: DataSourceDataParams<T>) => void) | undefined);
319
366
  primaryKey: 1 | ((value: keyof T) => keyof T);
320
- groupRowsBy: 1 | ((value: import("components/DataSource/types").DataSourcePropGroupRowsBy<T> | undefined) => import("components/DataSource/types").DataSourcePropGroupRowsBy<T>);
367
+ groupRowsBy: 1 | ((value: import("components/DataSource").DataSourcePropGroupRowsBy<T> | undefined) => import("components/DataSource").DataSourcePropGroupRowsBy<T>);
321
368
  groupRowsState: 1 | ((value: GroupRowsState<any> | undefined) => GroupRowsState<any>);
322
- pivotBy: 1 | ((value: import("components/DataSource/types").DataSourcePropPivotBy<T> | undefined) => import("components/DataSource/types").DataSourcePropPivotBy<T> | undefined);
323
- sortInfo: 1 | ((value: import("components/DataSource/types").DataSourceSortInfo<T> | undefined) => import("components/DataSource/types").DataSourceSingleSortInfo<T>[] | null);
369
+ pivotBy: 1 | ((value: import("components/DataSource").DataSourcePropPivotBy<T> | undefined) => import("components/DataSource").DataSourcePropPivotBy<T> | undefined);
370
+ sortInfo: 1 | ((value: import("components/DataSource").DataSourceSortInfo<T> | undefined) => import("components/DataSource").DataSourceSingleSortInfo<T>[] | null);
324
371
  }>;
325
372
  export function mapPropsToState<T extends any>(params: {
326
373
  props: DataSourceProps<T>;
327
374
  state: DataSourceState<T>;
328
375
  }): DataSourceDerivedState<T>;
376
+ export function getInterceptActions<T>(): ComponentInterceptedActions<DataSourceState<T>>;
329
377
  }
330
378
  declare module "components/types/Renderable" {
331
379
  import * as React from 'react';
@@ -397,16 +445,7 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
397
445
  export type InfiniteTableColumnAlign = 'start' | 'center' | 'end';
398
446
  export type InfiniteTableColumnVerticalAlign = 'start' | 'center' | 'end';
399
447
  export type InfiniteTableColumnHeader<T> = Renderable | InfiniteTableColumnHeaderRenderFunction<T>;
400
- type InfiniteTableColumnWithFlex = {
401
- flex?: number;
402
- defaultFlex?: number;
403
- };
404
- type InfiniteTableColumnWithWidth = {
405
- width?: number;
406
- defaultWidth?: number;
407
- };
408
- export type InfiniteTableColumnWithSize = DiscriminatedUnion<InfiniteTableColumnWithFlex, InfiniteTableColumnWithWidth>;
409
- export type InfiniteTableColumnTypes = 'string' | 'number' | 'date';
448
+ export type InfiniteTableColumnTypeNames = 'string' | 'number' | 'date' | string;
410
449
  export type InfiniteTableColumnWithRenderOrRenderValueOrFieldOrValueGetter<T> = RequireAtLeastOne<{
411
450
  field?: keyof T;
412
451
  render?: InfiniteTableColumnRenderFunction<T>;
@@ -430,11 +469,12 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
430
469
  };
431
470
  export type InfiniteTableColumnValueGetter<T, VALUE_GETTER_TYPE = Renderable> = (params: InfiniteTableColumnValueGetterParams<T>) => VALUE_GETTER_TYPE;
432
471
  export type InfiniteTableColumnRowspanFn<T> = (params: InfiniteTableColumnRowspanFnParams<T>) => number;
472
+ export type InfiniteTableColumnComparer<T> = (a: T, b: T) => number;
433
473
  export type InfiniteTableBaseColumn<T> = {
434
- maxWidth?: number;
435
- minWidth?: number;
436
474
  sortable?: boolean;
437
475
  draggable?: boolean;
476
+ resizable?: boolean;
477
+ comparer?: InfiniteTableColumnComparer<T>;
438
478
  align?: InfiniteTableColumnAlign;
439
479
  verticalAlign?: InfiniteTableColumnVerticalAlign;
440
480
  columnGroup?: string;
@@ -442,15 +482,16 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
442
482
  name?: Renderable;
443
483
  cssEllipsis?: boolean;
444
484
  headerCssEllipsis?: boolean;
445
- type?: InfiniteTableColumnTypes;
485
+ type?: InfiniteTableColumnTypeNames | InfiniteTableColumnTypeNames[] | null;
446
486
  style?: InfiniteTableColumnStyle<T>;
447
487
  className?: InfiniteTableColumnClassName<T>;
448
488
  rowspan?: InfiniteTableColumnRowspanFn<T>;
449
489
  valueGetter?: InfiniteTableColumnValueGetter<T>;
450
490
  };
451
- export type InfiniteTableColumn<T> = {} & InfiniteTableBaseColumn<T> & InfiniteTableColumnWithRenderOrRenderValueOrFieldOrValueGetter<T> & InfiniteTableColumnWithSize;
491
+ export type InfiniteTableColumn<T> = {} & InfiniteTableBaseColumn<T> & InfiniteTableColumnWithRenderOrRenderValueOrFieldOrValueGetter<T>;
452
492
  export type InfiniteTableGeneratedGroupColumn<T> = InfiniteTableColumn<T> & {
453
493
  groupByField?: string | string[];
494
+ id?: string;
454
495
  };
455
496
  export type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & {
456
497
  pivotBy?: DataSourcePivotBy<T>[];
@@ -494,29 +535,31 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
494
535
  }
495
536
  declare module "utils/groupAndPivot/getPivotColumnsAndColumnGroups" {
496
537
  import type { DataSourcePivotBy } from "components/DataSource/index";
497
- import type { InfiniteTablePropColumnGroups, InfiniteTablePropColumns } from "components/InfiniteTable/index";
538
+ import type { InfiniteTablePropColumnGroups, InfiniteTablePropColumnsMap } from "components/InfiniteTable/index";
498
539
  import type { InfiniteTablePivotColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
499
540
  import type { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
500
541
  import { DeepMap } from "utils/DeepMap";
501
542
  export type ComputedColumnsAndGroups<DataType> = {
502
- columns: InfiniteTablePropColumns<DataType, InfiniteTablePivotColumn<DataType>>;
543
+ columns: InfiniteTablePropColumnsMap<DataType, InfiniteTablePivotColumn<DataType>>;
503
544
  columnGroups: InfiniteTablePropColumnGroups;
504
545
  };
505
546
  export function getPivotColumnsAndColumnGroups<DataType, KeyType = any>(deepMap: DeepMap<KeyType, boolean>, pivotBy: DataSourcePivotBy<DataType>[], pivotTotalColumnPosition: InfiniteTablePropPivotTotalColumnPosition): ComputedColumnsAndGroups<DataType>;
506
547
  }
507
548
  declare module "components/DataSource/state/reducer" {
508
549
  import type { DataSourceState, DataSourceDerivedState } from "components/DataSource/types";
550
+ import { DataSourceSetupState } from "components/DataSource/index";
509
551
  export function concludeReducer<T>(params: {
510
552
  previousState: DataSourceState<T> & DataSourceDerivedState<T>;
511
- state: DataSourceState<T> & DataSourceDerivedState<T>;
512
- }): DataSourceState<T> & DataSourceDerivedState<T>;
553
+ state: DataSourceState<T> & DataSourceDerivedState<T> & DataSourceSetupState<T>;
554
+ }): DataSourceState<T> & DataSourceDerivedState<T> & DataSourceSetupState<T>;
513
555
  }
514
556
  declare module "components/DataSource/index" {
557
+ import { multisort } from "utils/multisort/index";
515
558
  import { DataSourceProps } from "components/DataSource/types";
516
559
  import { useDataSource } from "components/DataSource/publicHooks/useDataSource";
517
560
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
518
561
  function DataSource<T>(props: DataSourceProps<T>): JSX.Element;
519
- export { useDataSource, DataSource, GroupRowsState };
562
+ export { useDataSource, DataSource, GroupRowsState, multisort };
520
563
  export * from "components/DataSource/types";
521
564
  }
522
565
  declare module "components/DataSource/GroupRowsState" {
@@ -602,7 +645,7 @@ declare module "utils/groupAndPivot/index" {
602
645
  export type GroupBy<DataType, KeyType> = {
603
646
  field: keyof DataType;
604
647
  toKey?: (value: any, data: DataType) => GroupKeyType<KeyType>;
605
- column?: InfiniteTableGroupColumnBase<DataType>;
648
+ column?: Partial<InfiniteTableGroupColumnBase<DataType>>;
606
649
  };
607
650
  export type PivotBy<DataType, KeyType> = Omit<GroupBy<DataType, KeyType>, 'column'> & {
608
651
  column?: InfiniteTablePivotColumn<DataType> | (({ column, }: {
@@ -820,7 +863,7 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
820
863
  import { DataSourceGroupRowsBy, DataSourcePropGroupRowsBy, DataSourcePropPivotBy, DataSourceState } from "components/DataSource/index";
821
864
  import { Renderable } from "components/types/Renderable";
822
865
  import { LoadMaskProps } from "components/InfiniteTable/components/LoadMask";
823
- import type { InfiniteTableBaseColumn, InfiniteTableColumn, InfiniteTableColumnRenderFunction, InfiniteTableColumnWithSize, InfiniteTableComputedColumn, InfiniteTablePivotColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
866
+ import type { InfiniteTableBaseColumn, InfiniteTableColumn, InfiniteTableColumnRenderFunction, InfiniteTableComputedColumn, InfiniteTablePivotColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
824
867
  import { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
825
868
  export type InfiniteTablePropColumnOrderNormalized = string[];
826
869
  export type InfiniteTablePropColumnOrder = InfiniteTablePropColumnOrderNormalized | true;
@@ -840,6 +883,31 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
840
883
  getter?: AggregationReducer<T, AggregationResultType>['getter'];
841
884
  };
842
885
  export type InfiniteTablePropColumnAggregations<T> = Map<string, InfiniteTableColumnAggregator<T, any>>;
886
+ export type InfiniteTableColumnType<T> = {
887
+ minWidth?: number;
888
+ maxWidth?: number;
889
+ width?: number;
890
+ flex?: number;
891
+ header?: InfiniteTableColumn<T>['header'];
892
+ comparer?: InfiniteTableColumn<T>['comparer'];
893
+ draggable?: InfiniteTableColumn<T>['draggable'];
894
+ sortable?: InfiniteTableColumn<T>['sortable'];
895
+ resizable?: InfiniteTableColumn<T>['resizable'];
896
+ align?: InfiniteTableColumn<T>['align'];
897
+ verticalAlign?: InfiniteTableColumn<T>['verticalAlign'];
898
+ renderValue?: InfiniteTableColumn<T>['renderValue'];
899
+ render?: InfiniteTableColumn<T>['render'];
900
+ };
901
+ export type InfiniteTablePropColumnTypesMap<T> = Map<'default' | string, InfiniteTableColumnType<T>>;
902
+ export type InfiniteTablePropColumnTypes<T> = InfiniteTablePropColumnTypesMap<T> | Record<'default' | string, InfiniteTableColumnType<T>>;
903
+ export type InfiniteTableColumnSizingOptions = {
904
+ flex?: number;
905
+ width?: number;
906
+ minWidth?: number;
907
+ maxWidth?: number;
908
+ };
909
+ export type InfiniteTablePropColumnSizingMap = Map<string, InfiniteTableColumnSizingOptions>;
910
+ export type InfiniteTablePropColumnSizing = InfiniteTablePropColumnSizingMap | Record<string, InfiniteTableColumnSizingOptions>;
843
911
  export type InfiniteTableImperativeApi<T> = {
844
912
  setColumnOrder: (columnOrder: InfiniteTablePropColumnOrder) => void;
845
913
  setColumnVisibility: (columnVisibility: InfiniteTablePropColumnVisibility) => void;
@@ -853,8 +921,10 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
853
921
  rowHeight: number;
854
922
  ___t?: T;
855
923
  };
856
- export type InfiniteTablePropColumns<T, ColumnType = InfiniteTableColumn<T>> = Map<string, ColumnType>;
924
+ export type InfiniteTablePropColumnsMap<T, ColumnType = InfiniteTableColumn<T>> = Map<string, ColumnType>;
925
+ export type InfiniteTablePropColumns<T, ColumnType = InfiniteTableColumn<T>> = InfiniteTablePropColumnsMap<T, ColumnType> | Record<string, ColumnType>;
857
926
  export type InfiniteTableColumns<T> = InfiniteTablePropColumns<T>;
927
+ export type InfiniteTableColumnsMap<T> = InfiniteTablePropColumnsMap<T>;
858
928
  export type InfiniteTablePropColumnGroups = Map<string, InfiniteTableColumnGroup>;
859
929
  /**
860
930
  * 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
@@ -890,11 +960,13 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
890
960
  pivotBy: DataSourcePropPivotBy<T>;
891
961
  };
892
962
  export type InfiniteTablePropGroupRenderStrategy = 'single-column' | 'multi-column' | 'inline';
893
- export type InfiniteTableGroupColumnBase<T> = InfiniteTableBaseColumn<T> & InfiniteTableColumnWithSize & {
963
+ export type InfiniteTableGroupColumnBase<T> = InfiniteTableBaseColumn<T> & {
894
964
  renderValue?: InfiniteTableColumnRenderFunction<T>;
965
+ id?: string;
895
966
  };
896
- export type InfiniteTablePivotColumnBase<T> = InfiniteTableColumn<T> & InfiniteTableColumnWithSize & {
967
+ export type InfiniteTablePivotColumnBase<T> = InfiniteTableColumn<T> & {
897
968
  renderValue?: InfiniteTableColumnRenderFunction<T>;
969
+ id?: string;
898
970
  };
899
971
  export type InfiniteTablePropGroupColumn<T> = InfiniteTableGroupColumnBase<T> | InfiniteTableGroupColumnFunction<T>;
900
972
  export type InfiniteTableGroupColumnFunction<T> = (options: InfiniteTableGroupColumnGetterOptions<T>, toggleGroupRow: (groupKeys: any[]) => void) => InfiniteTableGroupColumnBase<T>;
@@ -905,9 +977,10 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
905
977
  };
906
978
  export interface InfiniteTableProps<T> {
907
979
  columns: InfiniteTablePropColumns<T>;
908
- pivotColumns?: InfiniteTablePropColumns<T, InfiniteTablePivotColumn<T>>;
980
+ pivotColumns?: InfiniteTablePropColumnsMap<T, InfiniteTablePivotColumn<T>>;
909
981
  loadingText?: Renderable;
910
982
  components?: InfiniteTablePropComponents;
983
+ viewportReservedWidth?: number;
911
984
  pivotColumn?: Partial<InfiniteTablePropPivotColumn<T>>;
912
985
  pivotRowLabelsColumn?: Partial<InfiniteTablePropPivotRowLabelsColumn<T>>;
913
986
  pivotTotalColumnPosition?: InfiniteTablePropPivotTotalColumnPosition;
@@ -922,12 +995,16 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
922
995
  defaultColumnPinning?: InfiniteTablePropColumnPinning;
923
996
  defaultColumnAggregations?: InfiniteTablePropColumnAggregations<T>;
924
997
  columnAggregations?: InfiniteTablePropColumnAggregations<T>;
998
+ columnSizing?: InfiniteTablePropColumnSizing;
999
+ defaultColumnSizing?: InfiniteTablePropColumnSizing;
925
1000
  pivotColumnGroups?: InfiniteTablePropColumnGroups;
926
1001
  columnGroups?: InfiniteTablePropColumnGroups;
927
1002
  defaultColumnGroups?: InfiniteTablePropColumnGroups;
928
1003
  defaultCollapsedColumnGroups?: InfiniteTablePropCollapsedColumnGroups;
929
1004
  collapsedColumnGroups?: InfiniteTablePropCollapsedColumnGroups;
1005
+ onScrollbarsChange?: (scrollbars: Scrollbars) => void;
930
1006
  onColumnVisibilityChange?: (columnVisibility: InfiniteTablePropColumnVisibility) => void;
1007
+ columnTypes?: InfiniteTablePropColumnTypes<T>;
931
1008
  rowHeight: number | string;
932
1009
  rowStyle?: InfiniteTablePropRowStyle<T>;
933
1010
  rowClassName?: InfiniteTablePropRowClassName<T>;
@@ -963,7 +1040,12 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
963
1040
  onReady?: (api: InfiniteTableImperativeApi<T>) => void;
964
1041
  rowProps?: React.HTMLProps<HTMLDivElement> | ((rowArgs: InfiniteTableRowStyleFnParams<T>) => React.HTMLProps<HTMLDivElement>);
965
1042
  licenseKey?: string;
1043
+ scrollTopId?: string | number;
966
1044
  }
1045
+ export type Scrollbars = {
1046
+ vertical: boolean;
1047
+ horizontal: boolean;
1048
+ };
967
1049
  }
968
1050
  declare module "components/types/Size" {
969
1051
  export interface Size {
@@ -975,16 +1057,6 @@ declare module "components/types/Size" {
975
1057
  height: number;
976
1058
  }) => void;
977
1059
  }
978
- declare module "components/types/SubscriptionCallback" {
979
- import { VoidFn } from "components/types/VoidFn";
980
- export type SubscriptionCallbackOnChangeFn<T> = (node: T | null) => void;
981
- export interface SubscriptionCallback<T> {
982
- (node: T): void;
983
- get: () => T | null;
984
- destroy: VoidFn;
985
- onChange: (fn: SubscriptionCallbackOnChangeFn<T>) => VoidFn;
986
- }
987
- }
988
1060
  declare module "components/VirtualBrain/ScrollListener" {
989
1061
  import { OnScrollFn, ScrollPosition } from "components/types/ScrollPosition";
990
1062
  export class ScrollListener {
@@ -999,7 +1071,7 @@ declare module "components/VirtualBrain/ScrollListener" {
999
1071
  }
1000
1072
  declare module "components/InfiniteTable/types/InfiniteTableState" {
1001
1073
  import type { ScrollPosition } from "components/types/ScrollPosition";
1002
- import type { InfiniteTableColumnGroup, InfiniteTableColumns, InfiniteTablePropColumnGroups, InfiniteTableProps } from "components/InfiniteTable/types/InfiniteTableProps";
1074
+ import type { InfiniteTableColumnGroup, InfiniteTablePropColumnGroups, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnsMap, InfiniteTablePropColumnTypesMap, InfiniteTableProps } from "components/InfiniteTable/types/InfiniteTableProps";
1003
1075
  import { Size } from "components/types/Size";
1004
1076
  import { MutableRefObject } from 'react';
1005
1077
  import { SubscriptionCallback } from "components/types/SubscriptionCallback";
@@ -1019,7 +1091,7 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1019
1091
  portalDOMRef: MutableRefObject<HTMLDivElement | null>;
1020
1092
  onRowHeightCSSVarChange: SubscriptionCallback<number>;
1021
1093
  onHeaderHeightCSSVarChange: SubscriptionCallback<number>;
1022
- columnsWhenGrouping?: InfiniteTableColumns<T>;
1094
+ columnsWhenGrouping?: InfiniteTablePropColumnsMap<T>;
1023
1095
  bodySize: Size;
1024
1096
  focused: boolean;
1025
1097
  focusedWithin: boolean;
@@ -1036,10 +1108,13 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1036
1108
  export type InfiniteTableColumnGroupsDepthsMap = Map<string, number>;
1037
1109
  export type InfiniteTablePropPivotTotalColumnPosition = false | 'start' | 'end';
1038
1110
  export interface InfiniteTableMappedState<T> {
1111
+ scrollTopId: InfiniteTableProps<T>['scrollTopId'];
1112
+ viewportReservedWidth: InfiniteTableProps<T>['viewportReservedWidth'];
1039
1113
  groupColumn: InfiniteTableProps<T>['groupColumn'];
1114
+ onScrollbarsChange: InfiniteTableProps<T>['onScrollbarsChange'];
1040
1115
  loadingText: InfiniteTableProps<T>['loadingText'];
1041
1116
  components: InfiniteTableProps<T>['components'];
1042
- columns: InfiniteTableProps<T>['columns'];
1117
+ columns: InfiniteTablePropColumnsMap<T>;
1043
1118
  pivotColumns: InfiniteTableProps<T>['pivotColumns'];
1044
1119
  onReady: InfiniteTableProps<T>['onReady'];
1045
1120
  onSelfFocus: InfiniteTableProps<T>['onSelfFocus'];
@@ -1079,6 +1154,8 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1079
1154
  licenseKey: NonUndefined<InfiniteTableProps<T>['licenseKey']>;
1080
1155
  columnVisibility: NonUndefined<InfiniteTableProps<T>['columnVisibility']>;
1081
1156
  columnPinning: NonUndefined<InfiniteTableProps<T>['columnPinning']>;
1157
+ columnSizing: InfiniteTablePropColumnSizingMap;
1158
+ columnTypes: InfiniteTablePropColumnTypesMap<T>;
1082
1159
  columnAggregations: NonUndefined<InfiniteTableProps<T>['columnAggregations']>;
1083
1160
  columnGroups: NonUndefined<InfiniteTableProps<T>['columnGroups']>;
1084
1161
  collapsedColumnGroups: NonUndefined<InfiniteTableProps<T>['collapsedColumnGroups']>;
@@ -1159,21 +1236,17 @@ declare module "components/InfiniteTable/types/index" {
1159
1236
  import type { InfiniteTableState } from "components/InfiniteTable/types/InfiniteTableState";
1160
1237
  import type { InfiniteTableAction } from "components/InfiniteTable/types/InfiniteTableAction";
1161
1238
  import type { InfiniteTableActionType } from "components/InfiniteTable/types/InfiniteTableActionType";
1162
- import type { InfiniteTableProps, InfiniteTableImperativeApi, InfiniteTablePropColumnOrder, InfiniteTablePropColumnVisibility, InfiniteTablePropColumnPinning, InfiniteTableColumnAggregator, InfiniteTableColumnGroup, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropColumnAggregations, InfiniteTablePropColumnGroups, InfiniteTablePropRowStyle, InfiniteTableRowStyleFn, InfiniteTableRowClassNameFn, InfiniteTablePropRowClassName, InfiniteTablePropColumns, InfiniteTablePropComponents, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions } from "components/InfiniteTable/types/InfiniteTableProps";
1163
- import type { InfiniteTableColumn, InfiniteTableComputedColumn, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam } from "components/InfiniteTable/types/InfiniteTableColumn";
1239
+ import type { InfiniteTableProps, InfiniteTableImperativeApi, InfiniteTablePropColumnOrder, InfiniteTablePropColumnVisibility, InfiniteTablePropColumnPinning, InfiniteTableColumnAggregator, InfiniteTableColumnGroup, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropColumnAggregations, InfiniteTablePropColumnGroups, InfiniteTablePropRowStyle, InfiniteTableRowStyleFn, InfiniteTableRowClassNameFn, InfiniteTablePropRowClassName, InfiniteTablePropColumns, InfiniteTablePropColumnsMap, InfiniteTablePropComponents, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnTypesMap, InfiniteTableColumnSizingOptions, Scrollbars } from "components/InfiniteTable/types/InfiniteTableProps";
1240
+ import type { InfiniteTableColumn, InfiniteTableColumnComparer, InfiniteTableComputedColumn, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam } from "components/InfiniteTable/types/InfiniteTableColumn";
1164
1241
  import type { InfiniteTableComputedValues } from "components/InfiniteTable/types/InfiniteTableComputedValues";
1165
1242
  import type { InfiniteTableContextValue } from "components/InfiniteTable/types/InfiniteTableContextValue";
1166
1243
  import type { InfiniteTableRowInfo } from "utils/groupAndPivot/index";
1167
- export type { InfiniteTableColumnAggregator, InfiniteTableComputedValues, InfiniteTablePropColumns, InfiniteTableRowInfo, InfiniteTableGroupColumnFunction, InfiniteTablePropColumnOrder, InfiniteTablePropComponents, InfiniteTablePropColumnVisibility, InfiniteTablePropColumnPinning, InfiniteTableColumnGroup, InfiniteTableColumn, InfiniteTableComputedColumn, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam, InfiniteTableContextValue, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropColumnAggregations, InfiniteTablePropColumnGroups, InfiniteTableState, InfiniteTableAction, InfiniteTableProps, InfiniteTableImperativeApi, InfiniteTableActionType, InfiniteTablePropRowStyle, InfiniteTablePropRowClassName, InfiniteTableRowStyleFn, InfiniteTableRowClassNameFn, InfiniteTableGroupColumnGetterOptions, };
1244
+ export type { Scrollbars, InfiniteTableColumnAggregator, InfiniteTableComputedValues, InfiniteTablePropColumns, InfiniteTablePropColumnsMap, InfiniteTableRowInfo, InfiniteTableGroupColumnFunction, InfiniteTablePropColumnOrder, InfiniteTablePropComponents, InfiniteTablePropColumnVisibility, InfiniteTablePropColumnPinning, InfiniteTableColumnGroup, InfiniteTableColumn, InfiniteTableColumnComparer, InfiniteTableComputedColumn, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam, InfiniteTableContextValue, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropColumnAggregations, InfiniteTablePropColumnGroups, InfiniteTablePropColumnSizing, InfiniteTablePropColumnSizingMap, InfiniteTableColumnSizingOptions, InfiniteTableState, InfiniteTableAction, InfiniteTableProps, InfiniteTablePropColumnTypes, InfiniteTablePropColumnTypesMap, InfiniteTableImperativeApi, InfiniteTableActionType, InfiniteTablePropRowStyle, InfiniteTablePropRowClassName, InfiniteTableRowStyleFn, InfiniteTableRowClassNameFn, InfiniteTableGroupColumnGetterOptions, };
1168
1245
  }
1169
1246
  declare module "components/InfiniteTable/InfiniteTableContext" {
1170
1247
  import { InfiniteTableContextValue } from "components/InfiniteTable/types/InfiniteTableContextValue";
1171
1248
  export function getInfiniteTableContext<T>(): React.Context<InfiniteTableContextValue<T>>;
1172
1249
  }
1173
- declare module "components/utils/buildSubscriptionCallback" {
1174
- import { SubscriptionCallback } from "components/types/SubscriptionCallback";
1175
- export function buildSubscriptionCallback<T>(): SubscriptionCallback<T>;
1176
- }
1177
1250
  declare module "components/InfiniteTable/state/computeColumnGroupsDepths" {
1178
1251
  import type { InfiniteTablePropColumnGroups } from "components/InfiniteTable/types/InfiniteTableProps";
1179
1252
  import type { InfiniteTableColumnGroupsDepthsMap } from "components/InfiniteTable/types/InfiniteTableState";
@@ -1191,21 +1264,24 @@ declare module "components/InfiniteTable/state/getInitialState" {
1191
1264
  */
1192
1265
  export function initSetupState<T>(): InfiniteTableSetupState<T>;
1193
1266
  export const forwardProps: <T>() => Partial<{
1194
- columns: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumns<T, import("components/InfiniteTable/types").InfiniteTableColumn<T>>) => import("components/InfiniteTable/types").InfiniteTablePropColumns<T, import("components/InfiniteTable/types").InfiniteTableColumn<T>>);
1267
+ 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>>);
1195
1268
  header: 1 | ((value: boolean | undefined) => boolean);
1196
1269
  pivotTotalColumnPosition: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableState").InfiniteTablePropPivotTotalColumnPosition | undefined) => import("components/InfiniteTable/types/InfiniteTableState").InfiniteTablePropPivotTotalColumnPosition);
1197
- pivotColumns: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumns<T, import("components/InfiniteTable/types/InfiniteTableColumn").InfiniteTablePivotColumn<T>> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumns<T, import("components/InfiniteTable/types/InfiniteTableColumn").InfiniteTablePivotColumn<T>> | undefined);
1270
+ 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);
1198
1271
  pivotColumnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined);
1199
1272
  pivotColumn: 1 | ((value: Partial<import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotColumn<T>> | undefined) => Partial<import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotColumn<T>> | undefined);
1200
1273
  sortable: 1 | ((value: boolean | undefined) => boolean);
1201
1274
  components: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropComponents | undefined) => import("components/InfiniteTable/types").InfiniteTablePropComponents | undefined);
1275
+ scrollTopId: 1 | ((value: string | number | undefined) => string | number | undefined);
1276
+ viewportReservedWidth: 1 | ((value: number | undefined) => number | undefined);
1202
1277
  groupColumn: 1 | ((value: Partial<InfiniteTablePropGroupColumn<T>> | undefined) => Partial<InfiniteTablePropGroupColumn<T>> | undefined);
1278
+ onScrollbarsChange: 1 | ((value: ((scrollbars: import("components/InfiniteTable/types").Scrollbars) => void) | undefined) => ((scrollbars: import("components/InfiniteTable/types").Scrollbars) => void) | undefined);
1203
1279
  loadingText: 1 | ((value: import("react").ReactNode) => import("react").ReactNode);
1204
1280
  onReady: 1 | ((value: ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined) => ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined);
1205
- onSelfFocus: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined);
1206
- onSelfBlur: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined);
1207
- onFocusWithin: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined);
1208
- onBlurWithin: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement>) => void) | undefined);
1281
+ onSelfFocus: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1282
+ onSelfBlur: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1283
+ onFocusWithin: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1284
+ onBlurWithin: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
1209
1285
  onScrollToTop: 1 | ((value: (() => void) | undefined) => (() => void) | undefined);
1210
1286
  onScrollToBottom: 1 | ((value: (() => void) | undefined) => (() => void) | undefined);
1211
1287
  scrollToBottomOffset: 1 | ((value: number | undefined) => number | undefined);
@@ -1236,6 +1312,8 @@ declare module "components/InfiniteTable/state/getInitialState" {
1236
1312
  columnAggregations: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnAggregations<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnAggregations<T>);
1237
1313
  columnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnGroups);
1238
1314
  collapsedColumnGroups: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups);
1315
+ columnSizing: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnSizing | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnSizingMap);
1316
+ columnTypes: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnTypes<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnTypesMap<T>);
1239
1317
  rowHeight: 1 | ((value: string | number) => number);
1240
1318
  headerHeight: 1 | ((value: string | number) => number);
1241
1319
  }>;
@@ -1318,11 +1396,22 @@ declare module "components/InfiniteTable/utils/adjustColumnOrderForPinning" {
1318
1396
  import { InfiniteTablePropColumnOrderNormalized } from "components/InfiniteTable/types/InfiniteTableProps";
1319
1397
  export const adjustColumnOrderForPinning: (columnOrder: InfiniteTablePropColumnOrderNormalized, columnPinning: InfiniteTablePropColumnPinning) => InfiniteTablePropColumnOrderNormalized;
1320
1398
  }
1399
+ declare module "utils/getGlobal" {
1400
+ export function getGlobal<T extends Window>(): T;
1401
+ }
1402
+ declare module "components/utils/getScrollbarWidth" {
1403
+ export function getScrollbarWidth(): number;
1404
+ }
1405
+ declare module "components/InfiniteTable/utils/getColumnComputedType" {
1406
+ import type { InfiniteTableColumn } from "components/InfiniteTable/types/index";
1407
+ import type { InfiniteTableColumnType, InfiniteTablePropColumnTypesMap } from "components/InfiniteTable/types/InfiniteTableProps";
1408
+ export function getColumnComputedType<T>(column: InfiniteTableColumn<T>, columnTypes: InfiniteTablePropColumnTypesMap<T>): InfiniteTableColumnType<T>;
1409
+ }
1321
1410
  declare module "components/InfiniteTable/utils/getComputedVisibleColumns" {
1322
1411
  import type { InfiniteTableColumn, InfiniteTableComputedColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
1323
1412
  import type { Size } from "components/types/Size";
1324
1413
  import type { DataSourceSingleSortInfo } from "components/DataSource/types";
1325
- import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnOrderNormalized, InfiniteTablePropColumnPinning, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1414
+ import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnOrderNormalized, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1326
1415
  export type SortInfoMap<T> = {
1327
1416
  [key: string]: {
1328
1417
  sortInfo: DataSourceSingleSortInfo<T>;
@@ -1357,6 +1446,7 @@ declare module "components/InfiniteTable/utils/getComputedVisibleColumns" {
1357
1446
  pinnedStartMaxWidth?: number;
1358
1447
  pinnedEndMaxWidth?: number;
1359
1448
  columnDefaultWidth?: number;
1449
+ viewportReservedWidth?: number;
1360
1450
  sortable?: boolean;
1361
1451
  multiSort: boolean;
1362
1452
  sortInfo?: DataSourceSingleSortInfo<T>[];
@@ -1364,10 +1454,12 @@ declare module "components/InfiniteTable/utils/getComputedVisibleColumns" {
1364
1454
  draggableColumns?: boolean;
1365
1455
  columnOrder: InfiniteTablePropColumnOrder;
1366
1456
  columnPinning: InfiniteTablePropColumnPinning;
1457
+ columnSizing: InfiniteTablePropColumnSizingMap;
1458
+ columnTypes: InfiniteTablePropColumnTypesMap<T>;
1367
1459
  columnVisibility: InfiniteTablePropColumnVisibility;
1368
1460
  columnVisibilityAssumeVisible: boolean;
1369
1461
  };
1370
- export const getComputedVisibleColumns: <T extends unknown>({ columns, bodySize, columnMinWidth, columnMaxWidth, columnDefaultWidth, pinnedStartMaxWidth, pinnedEndMaxWidth, sortable, sortInfo, setSortInfo, multiSort, draggableColumns, columnOrder, columnPinning, columnVisibility, columnVisibilityAssumeVisible, }: GetComputedVisibleColumnsParam<T>) => GetComputedVisibleColumnsResult<T>;
1462
+ export const getComputedVisibleColumns: <T extends unknown>({ columns, bodySize, columnMinWidth, columnMaxWidth, columnDefaultWidth, pinnedStartMaxWidth, pinnedEndMaxWidth, sortable, sortInfo, setSortInfo, multiSort, viewportReservedWidth, draggableColumns, columnOrder, columnPinning, columnSizing, columnTypes, columnVisibility, columnVisibilityAssumeVisible, }: GetComputedVisibleColumnsParam<T>) => GetComputedVisibleColumnsResult<T>;
1371
1463
  }
1372
1464
  declare module "components/hooks/useRerender" {
1373
1465
  export const useRerender: () => [number, () => void];
@@ -1397,7 +1489,7 @@ declare module "components/InfiniteTable/hooks/useRerenderOnKeyChange" {
1397
1489
  declare module "components/InfiniteTable/hooks/useComputedVisibleColumns" {
1398
1490
  import type { DataSourceSingleSortInfo } from "components/DataSource/types";
1399
1491
  import type { InfiniteTableColumn } from "components/InfiniteTable/types/index";
1400
- import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1492
+ import type { InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnTypesMap, InfiniteTablePropColumnVisibility } from "components/InfiniteTable/types/InfiniteTableProps";
1401
1493
  import type { Size } from "components/types/Size";
1402
1494
  import type { GetComputedVisibleColumnsResult } from "components/InfiniteTable/utils/getComputedVisibleColumns";
1403
1495
  type UseComputedVisibleColumnsParam<T> = {
@@ -1405,6 +1497,7 @@ declare module "components/InfiniteTable/hooks/useComputedVisibleColumns" {
1405
1497
  bodySize: Size;
1406
1498
  columnMinWidth?: number;
1407
1499
  columnMaxWidth?: number;
1500
+ viewportReservedWidth?: number;
1408
1501
  pinnedEndMaxWidth?: number;
1409
1502
  pinnedStartMaxWidth?: number;
1410
1503
  columnDefaultWidth?: number;
@@ -1414,6 +1507,8 @@ declare module "components/InfiniteTable/hooks/useComputedVisibleColumns" {
1414
1507
  sortInfo?: DataSourceSingleSortInfo<T>[];
1415
1508
  setSortInfo: (sortInfo: DataSourceSingleSortInfo<T>[]) => void;
1416
1509
  columnPinning: InfiniteTablePropColumnPinning;
1510
+ columnSizing: InfiniteTablePropColumnSizingMap;
1511
+ columnTypes: InfiniteTablePropColumnTypesMap<T>;
1417
1512
  columnOrder: InfiniteTablePropColumnOrder;
1418
1513
  columnVisibility: InfiniteTablePropColumnVisibility;
1419
1514
  columnVisibilityAssumeVisible?: boolean;
@@ -1435,7 +1530,7 @@ declare module "components/InfiniteTable/hooks/useComputedVisibleColumns" {
1435
1530
  computedPinnedStartWidth: GetComputedVisibleColumnsResult<T>['computedPinnedStartWidth'];
1436
1531
  computedColumnOrder: GetComputedVisibleColumnsResult<T>['computedColumnOrder'];
1437
1532
  };
1438
- export const useComputedVisibleColumns: <T extends unknown>({ columns, bodySize, columnMinWidth, columnMaxWidth, columnDefaultWidth, sortable, draggableColumns, sortInfo, multiSort, setSortInfo, columnOrder, columnPinning, pinnedEndMaxWidth, pinnedStartMaxWidth, columnVisibility, columnVisibilityAssumeVisible, }: UseComputedVisibleColumnsParam<T>) => UseComputedVisibleColumnsResult<T>;
1533
+ export const useComputedVisibleColumns: <T extends unknown>({ columns, bodySize, columnMinWidth, columnMaxWidth, columnDefaultWidth, sortable, draggableColumns, sortInfo, multiSort, setSortInfo, columnOrder, columnPinning, columnTypes, pinnedEndMaxWidth, pinnedStartMaxWidth, viewportReservedWidth, columnVisibility, columnVisibilityAssumeVisible, columnSizing, }: UseComputedVisibleColumnsParam<T>) => UseComputedVisibleColumnsResult<T>;
1439
1534
  }
1440
1535
  declare module "components/DataSource/publicHooks/useDataSourceActions" {
1441
1536
  import { DataSourceComponentActions } from "components/DataSource/types";
@@ -1561,12 +1656,6 @@ declare module "components/InfiniteTable/components/InfiniteTableBody/InfiniteTa
1561
1656
  declare module "components/InfiniteTable/components/InfiniteTableBody/index" {
1562
1657
  export * from "components/InfiniteTable/components/InfiniteTableBody/InfiniteTableBody";
1563
1658
  }
1564
- declare module "utils/getGlobal" {
1565
- export function getGlobal<T extends Window>(): T;
1566
- }
1567
- declare module "components/utils/getScrollbarWidth" {
1568
- export function getScrollbarWidth(): number;
1569
- }
1570
1659
  declare module "components/VirtualBrain/index" {
1571
1660
  import { Logger } from "utils/debug";
1572
1661
  import { Size } from "components/types/Size";
@@ -1584,6 +1673,7 @@ declare module "components/VirtualBrain/index" {
1584
1673
  export type MainAxisSize = number | ((itemIndex: number) => number);
1585
1674
  type OnRenderCountChangeFn = (renderCount: number) => void;
1586
1675
  type OnSizeChangeFn = (size: number) => void;
1676
+ type OnDestroyFn = () => void;
1587
1677
  export type GetItemPositionFn = (itemIndex: number) => number;
1588
1678
  export type RenderRange = {
1589
1679
  renderStartIndex: number;
@@ -1598,11 +1688,13 @@ declare module "components/VirtualBrain/index" {
1598
1688
  private itemSizeCache;
1599
1689
  private itemOffsetCache;
1600
1690
  private options;
1691
+ private destroyed;
1601
1692
  private totalSize;
1602
1693
  private onScrollFns;
1603
1694
  private onTotalSizeChangeFns;
1604
1695
  private onRenderCountChangeFns;
1605
1696
  private onRenderRangeChangeFns;
1697
+ private onDestroyFns;
1606
1698
  name: string | undefined;
1607
1699
  private renderCount;
1608
1700
  private renderRange;
@@ -1618,6 +1710,7 @@ declare module "components/VirtualBrain/index" {
1618
1710
  getRenderCount: () => number;
1619
1711
  setScrollPosition: (scrollPosition: ScrollPosition) => void;
1620
1712
  private notifyScrollChange;
1713
+ private notifyDestroy;
1621
1714
  private notifyTotalSizeChange;
1622
1715
  private notifyRenderCountChange;
1623
1716
  private notifyRenderRangeChange;
@@ -1629,6 +1722,7 @@ declare module "components/VirtualBrain/index" {
1629
1722
  onTotalSizeChange: (fn: OnSizeChangeFn) => () => void;
1630
1723
  onRenderCountChange: (fn: OnRenderCountChangeFn) => () => void;
1631
1724
  onRenderRangeChange: (fn: OnRenderRangeChangeFn) => () => void;
1725
+ onDestroy: (fn: OnDestroyFn) => () => void;
1632
1726
  update: (newCount: VirtualBrainOptions['count'], newItemSize: VirtualBrainOptions['itemSize'], newItemSpan?: VirtualBrainOptions['itemSpan']) => void;
1633
1727
  private reset;
1634
1728
  private computeItemSpanUpTo;
@@ -1976,6 +2070,17 @@ declare module "components/InfiniteTable/components/InfiniteTableHeader/Infinite
1976
2070
  scrollable?: boolean;
1977
2071
  };
1978
2072
  }
2073
+ declare module "components/RawList/AvoidReactDiff" {
2074
+ import * as React from 'react';
2075
+ import { Renderable } from "components/types/Renderable";
2076
+ import { SubscriptionCallback } from "components/types/SubscriptionCallback";
2077
+ export type AvoidReactDiffProps = {
2078
+ name?: string;
2079
+ updater: SubscriptionCallback<Renderable>;
2080
+ };
2081
+ function AvoidReactDiffFn(props: AvoidReactDiffProps): JSX.Element;
2082
+ export const AvoidReactDiff: React.MemoExoticComponent<typeof AvoidReactDiffFn>;
2083
+ }
1979
2084
  declare module "components/RawList/types" {
1980
2085
  import type { RefCallback } from 'react';
1981
2086
  import type { Renderable } from "components/types/Renderable";
@@ -2010,6 +2115,7 @@ declare module "components/RawList/MappedItems" {
2010
2115
  private renderedElements;
2011
2116
  constructor(axis: string);
2012
2117
  init(): void;
2118
+ reset(): void;
2013
2119
  destroy(): void;
2014
2120
  getUnrenderedItems: (startIndex: number, endIndex: number) => number[];
2015
2121
  getElementsOutsideItemRange: (startIndex: number, endIndex: number) => number[];
@@ -2026,17 +2132,6 @@ declare module "components/RawList/MappedItems" {
2026
2132
  discardElementsStartingWith: (elementIndex: number, callback?: ((index: number) => void) | undefined) => boolean;
2027
2133
  }
2028
2134
  }
2029
- declare module "components/RawList/AvoidReactDiff" {
2030
- import * as React from 'react';
2031
- import { Renderable } from "components/types/Renderable";
2032
- import { SubscriptionCallback } from "components/types/SubscriptionCallback";
2033
- export type AvoidReactDiffProps = {
2034
- name?: string;
2035
- updater: SubscriptionCallback<Renderable>;
2036
- };
2037
- function AvoidReactDiffFn(props: AvoidReactDiffProps): JSX.Element;
2038
- export const AvoidReactDiff: React.MemoExoticComponent<typeof AvoidReactDiffFn>;
2039
- }
2040
2135
  declare module "components/RawList/ReactVirtualRenderer" {
2041
2136
  import type { Renderable } from "components/types/Renderable";
2042
2137
  import type { RenderItem } from "components/RawList/types";
@@ -2066,8 +2161,22 @@ declare module "components/RawList/ReactVirtualRenderer" {
2066
2161
  private renderItemAtElement;
2067
2162
  private updateElementPosition;
2068
2163
  destroy: () => void;
2164
+ reset(): void;
2069
2165
  }
2070
2166
  }
2167
+ declare module "components/RawList/useVirtualRenderer" {
2168
+ import { Renderable } from "components/types/Renderable";
2169
+ import { SubscriptionCallback } from "components/types/SubscriptionCallback";
2170
+ import { VirtualBrain } from "components/VirtualBrain/index";
2171
+ import { ReactVirtualRenderer } from "components/RawList/ReactVirtualRenderer";
2172
+ export function useVirtualRenderer({ brain, }: {
2173
+ brain: VirtualBrain;
2174
+ debugChannel?: string;
2175
+ }): {
2176
+ onRenderUpdater: SubscriptionCallback<Renderable>;
2177
+ renderer: ReactVirtualRenderer;
2178
+ };
2179
+ }
2071
2180
  declare module "components/RawList/index" {
2072
2181
  import * as React from 'react';
2073
2182
  import { RawListProps } from "components/RawList/types";
@@ -2128,13 +2237,11 @@ declare module "components/InfiniteTable/components/InfiniteTableHeader/Infinite
2128
2237
  export const InfiniteTableHeaderUnvirtualized: typeof InfiniteTableHeaderUnvirtualizedFn;
2129
2238
  }
2130
2239
  declare module "components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderWrapper" {
2240
+ import type { Scrollbars } from "components/InfiniteTable/index";
2131
2241
  import { VirtualBrain } from "components/VirtualBrain/index";
2132
2242
  export type TableHeaderWrapperProps = {
2133
2243
  brain: VirtualBrain;
2134
- scrollbars: {
2135
- vertical: boolean;
2136
- horizontal: boolean;
2137
- };
2244
+ scrollbars: Scrollbars;
2138
2245
  repaintId?: number | string;
2139
2246
  };
2140
2247
  export function TableHeaderWrapper<T>(props: TableHeaderWrapperProps): JSX.Element;
@@ -2413,7 +2520,7 @@ declare module "components/VirtualList/RowListWithExternalScrolling" {
2413
2520
  }
2414
2521
  declare module "components/InfiniteTable/hooks/usePinnedRendering" {
2415
2522
  import { VirtualBrain } from "components/VirtualBrain/index";
2416
- import { InfiniteTableComputedColumn, InfiniteTableRowInfo } from "components/InfiniteTable/types/index";
2523
+ import type { InfiniteTableComputedColumn, InfiniteTableRowInfo, Scrollbars } from "components/InfiniteTable/types/index";
2417
2524
  import type { Size } from "components/types/Size";
2418
2525
  import type { RenderRow } from "components/VirtualList/types";
2419
2526
  import { InfiniteTableState } from "components/InfiniteTable/types/InfiniteTableState";
@@ -2433,10 +2540,7 @@ declare module "components/InfiniteTable/hooks/usePinnedRendering" {
2433
2540
  computedPinnedEndColumnsWidth: number;
2434
2541
  computedPinnedEndColumns: InfiniteTableComputedColumn<T>[];
2435
2542
  verticalVirtualBrain: VirtualBrain;
2436
- scrollbars: {
2437
- vertical: boolean;
2438
- horizontal: boolean;
2439
- };
2543
+ scrollbars: Scrollbars;
2440
2544
  rowHeight: number;
2441
2545
  toggleGroupRow: InfiniteTableToggleGroupRowFn;
2442
2546
  computedPinnedStartColumnsWidth: number;
@@ -2483,13 +2587,11 @@ declare module "components/InfiniteTable/hooks/useYourBrain" {
2483
2587
  verticalVirtualBrain: VirtualBrain;
2484
2588
  };
2485
2589
  }
2486
- declare module "utils/shallowEqualObjects" {
2487
- export function shallowEqualObjects<T extends object | null>(objA: T, objB: T): boolean;
2488
- }
2489
2590
  declare module "components/InfiniteTable/hooks/useListRendering" {
2490
2591
  import type { Ref } from 'react';
2491
2592
  import type { InfiniteTableComputedValues } from "components/InfiniteTable/types/index";
2492
2593
  import type { Size } from "components/types/Size";
2594
+ import type { Scrollbars } from "components/InfiniteTable/types/InfiniteTableProps";
2493
2595
  type ListRenderingParam<T> = {
2494
2596
  computed: InfiniteTableComputedValues<T>;
2495
2597
  domRef: Ref<HTMLElement>;
@@ -2499,10 +2601,7 @@ declare module "components/InfiniteTable/hooks/useListRendering" {
2499
2601
  };
2500
2602
  import type { VirtualBrain } from "components/VirtualBrain/index";
2501
2603
  type ListRenderingResult = {
2502
- scrollbars: {
2503
- vertical: boolean;
2504
- horizontal: boolean;
2505
- };
2604
+ scrollbars: Scrollbars;
2506
2605
  horizontalVirtualBrain: VirtualBrain;
2507
2606
  verticalVirtualBrain: VirtualBrain;
2508
2607
  applyScrollHorizontal: ({ scrollLeft }: {
@@ -2560,7 +2659,7 @@ declare module "components/InfiniteTable/hooks/useLicense/decode" {
2560
2659
  export const decode: (licenseKey: string) => LicenseDetails;
2561
2660
  }
2562
2661
  declare module "components/InfiniteTable/hooks/useLicense/useLicense" {
2563
- export const useLicense: (licenseKey: string) => boolean;
2662
+ export const useLicense: (licenseKey?: string) => boolean;
2564
2663
  }
2565
2664
  declare module "components/CSSVariableWatch" {
2566
2665
  import * as React from 'react';