@infinite-table/infinite-react 0.0.8 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -71,6 +71,7 @@ declare module "utils/DeepMap" {
71
71
  private map;
72
72
  private length;
73
73
  private revision;
74
+ static clone<KeyType, ValueType>(map: DeepMap<KeyType, ValueType>): DeepMap<KeyType, ValueType>;
74
75
  constructor(initial?: [KeyType[], ValueType][]);
75
76
  set(keys: KeyType[] & {
76
77
  length: Omit<number, 0>;
@@ -141,9 +142,15 @@ declare module "components/hooks/useComponentState" {
141
142
  componentState: T_STATE;
142
143
  componentActions: T_ACTIONS;
143
144
  };
144
- type ComponentStateGeneratedActions<T_STATE> = {
145
+ export type ComponentStateGeneratedActions<T_STATE> = {
145
146
  [k in keyof T_STATE]: T_STATE[k] | React.SetStateAction<T_STATE[k]>;
146
147
  };
148
+ export type ComponentInterceptedActions<T_STATE> = {
149
+ [k in keyof T_STATE]?: (value: T_STATE[k], { actions, state, }: {
150
+ actions: ComponentStateGeneratedActions<T_STATE>;
151
+ state: T_STATE;
152
+ }) => void;
153
+ };
147
154
  export type ComponentStateActions<T_STATE> = ComponentStateGeneratedActions<T_STATE>;
148
155
  export type ForwardPropsToStateFnResult<TYPE_PROPS, TYPE_RESULT> = Partial<{
149
156
  [propName in keyof TYPE_PROPS & keyof TYPE_RESULT]: 1 | ((value: TYPE_PROPS[propName]) => TYPE_RESULT[propName]);
@@ -153,6 +160,7 @@ declare module "components/hooks/useComponentState" {
153
160
  initSetupState?: () => COMPONENT_SETUP_STATE;
154
161
  forwardProps?: () => ForwardPropsToStateFnResult<T_PROPS, COMPONENT_MAPPED_STATE>;
155
162
  allowedControlledPropOverrides?: Record<keyof T_PROPS, true>;
163
+ interceptActions?: ComponentInterceptedActions<COMPONENT_MAPPED_STATE & COMPONENT_DERIVED_STATE & COMPONENT_SETUP_STATE>;
156
164
  mapPropsToState?: (params: {
157
165
  props: T_PROPS;
158
166
  state: COMPONENT_MAPPED_STATE & COMPONENT_SETUP_STATE & Partial<COMPONENT_DERIVED_STATE>;
@@ -177,71 +185,99 @@ declare module "components/hooks/useComponentState" {
177
185
  declare module "components/types/NonUndefined" {
178
186
  export type NonUndefined<T> = T extends undefined ? never : T;
179
187
  }
188
+ declare module "components/types/SubscriptionCallback" {
189
+ import { VoidFn } from "components/types/VoidFn";
190
+ export type SubscriptionCallbackOnChangeFn<T> = (node: T | null) => void;
191
+ export interface SubscriptionCallback<T> {
192
+ (node: T): void;
193
+ get: () => T | null;
194
+ destroy: VoidFn;
195
+ onChange: (fn: SubscriptionCallbackOnChangeFn<T>) => VoidFn;
196
+ }
197
+ }
180
198
  declare module "components/DataSource/types" {
181
199
  import * as React from 'react';
182
200
  import { MultisortInfo } from "utils/multisort/index";
183
201
  import { DeepMap } from "utils/DeepMap";
184
- import { AggregationReducer, DeepMapGroupValueType, GroupBy, GroupKeyType, PivotBy } from "utils/groupAndPivot/index";
185
- import { InfiniteTableColumn, InfiniteTableColumnGroup, InfiniteTableRowInfo } from "components/InfiniteTable/index";
202
+ import { DeepMapGroupValueType, GroupBy, GroupKeyType, PivotBy } from "utils/groupAndPivot/index";
203
+ import { InfiniteTableColumn, InfiniteTableColumnGroup, InfiniteTableRowInfo, Scrollbars } from "components/InfiniteTable/index";
186
204
  import { ComponentStateActions } from "components/hooks/useComponentState";
187
205
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
188
206
  import { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
189
207
  import { NonUndefined } from "components/types/NonUndefined";
190
- export interface DataSourceDataInfo<T> {
208
+ import { SubscriptionCallback } from "components/types/SubscriptionCallback";
209
+ export interface DataSourceDataParams<T> {
191
210
  originalDataArray: T[];
211
+ sortInfo?: DataSourceSortInfo<T>;
212
+ groupBy?: DataSourcePropGroupBy<T>;
213
+ pivotBy?: DataSourcePropPivotBy<T>;
214
+ livePaginationCursor?: DataSourceLivePaginationCursorValue;
192
215
  }
193
216
  export type DataSourceSingleSortInfo<T> = MultisortInfo<T> & {
194
217
  field?: keyof T;
195
218
  id?: string;
196
219
  };
197
- export type DataSourceGroupRowsBy<T> = GroupBy<T, any>;
220
+ export type DataSourceGroupBy<T> = GroupBy<T, any>;
198
221
  export type DataSourcePivotBy<T> = PivotBy<T, any>;
199
222
  export type DataSourceSortInfo<T> = null | DataSourceSingleSortInfo<T> | DataSourceSingleSortInfo<T>[];
200
- export type DataSourceData<T> = T[] | Promise<T[] | {
201
- data: T[];
202
- }> | (() => T[] | Promise<T[] | {
223
+ export type DataSourceRemoteData<T> = {
203
224
  data: T[];
204
- }>);
225
+ livePaginationCursor?: DataSourceLivePaginationCursorValue;
226
+ };
227
+ export type DataSourceData<T> = T[] | DataSourceRemoteData<T> | Promise<T[] | DataSourceRemoteData<T>> | ((dataInfo: DataSourceDataParams<T>) => T[] | Promise<T[] | DataSourceRemoteData<T>>);
205
228
  export type DataSourceGroupRowsList<KeyType> = true | KeyType[][];
206
229
  export type DataSourceExpandedAndCollapsedGroupRows<KeyType> = {
207
230
  expandedRows: DataSourceGroupRowsList<KeyType>;
208
231
  collapsedRows: DataSourceGroupRowsList<KeyType>;
209
232
  };
210
- export type DataSourcePropGroupRowsBy<T> = DataSourceGroupRowsBy<T>[];
233
+ export type DataSourcePropGroupBy<T> = DataSourceGroupBy<T>[];
211
234
  export type DataSourcePropPivotBy<T> = DataSourcePivotBy<T>[];
212
235
  export interface DataSourceMappedState<T> {
213
- remoteCount: DataSourceProps<T>['remoteCount'];
236
+ aggregationReducers?: DataSourceProps<T>['aggregationReducers'];
237
+ livePagination: DataSourceProps<T>['livePagination'];
238
+ livePaginationCursor: DataSourceProps<T>['livePaginationCursor'];
239
+ onDataParamsChange: DataSourceProps<T>['onDataParamsChange'];
214
240
  data: DataSourceProps<T>['data'];
215
241
  primaryKey: DataSourceProps<T>['primaryKey'];
216
- groupRowsBy: NonUndefined<DataSourceProps<T>['groupRowsBy']>;
242
+ groupBy: NonUndefined<DataSourceProps<T>['groupBy']>;
217
243
  groupRowsState: NonUndefined<DataSourceProps<T>['groupRowsState']>;
218
244
  pivotBy: DataSourceProps<T>['pivotBy'];
219
245
  loading: NonUndefined<DataSourceProps<T>['loading']>;
220
246
  sortInfo: DataSourceSingleSortInfo<T>[] | null;
221
247
  }
248
+ export type DataSourceAggregationReducer<T, AggregationResultType> = {
249
+ field?: keyof T;
250
+ initialValue: AggregationResultType;
251
+ getter?: (data: T) => any;
252
+ reducer: (accumulator: any, value: any, data: T) => AggregationResultType | any;
253
+ done?: (accumulatedValue: AggregationResultType | any, array: T[]) => AggregationResultType;
254
+ };
222
255
  export interface DataSourceSetupState<T> {
256
+ showSeparatePivotColumnForSingleAggregation: boolean;
257
+ dataParams?: DataSourceDataParams<T>;
258
+ notifyScrollbarsChange: SubscriptionCallback<Scrollbars>;
223
259
  originalDataArray: T[];
224
260
  lastSortDataArray?: T[];
225
261
  lastGroupDataArray?: InfiniteTableRowInfo<T>[];
226
262
  dataArray: InfiniteTableRowInfo<T>[];
227
263
  groupDeepMap?: DeepMap<GroupKeyType, DeepMapGroupValueType<T, any>>;
228
264
  pivotTotalColumnPosition: InfiniteTablePropPivotTotalColumnPosition;
265
+ scrollBottomId: number | Symbol | DataSourceLivePaginationCursorValue;
229
266
  updatedAt: number;
230
267
  reducedAt: number;
231
268
  groupedAt: number;
232
269
  sortedAt: number;
233
270
  generateGroupRows: boolean;
234
- aggregationReducers?: AggregationReducer<T, any>[];
235
271
  postSortDataArray?: T[];
236
272
  postGroupDataArray?: InfiniteTableRowInfo<T>[];
237
273
  pivotColumns?: Map<string, InfiniteTableColumn<T>>;
238
274
  pivotColumnGroups?: Map<string, InfiniteTableColumnGroup>;
239
275
  }
276
+ export type DataSourcePropAggregationReducers<T> = Record<string, DataSourceAggregationReducer<T, any>>;
240
277
  export interface DataSourceProps<T> {
241
278
  children: React.ReactNode | ((contextData: DataSourceState<T>) => React.ReactNode);
242
279
  primaryKey: keyof T;
243
280
  fields?: (keyof T)[];
244
- remoteCount?: number;
245
281
  data: DataSourceData<T>;
246
282
  loading?: boolean;
247
283
  defaultLoading?: boolean;
@@ -249,20 +285,27 @@ declare module "components/DataSource/types" {
249
285
  pivotBy?: DataSourcePropPivotBy<T>;
250
286
  defaultPivotBy?: DataSourcePropPivotBy<T>;
251
287
  onPivotByChange?: (pivotBy: DataSourcePropPivotBy<T>) => void;
252
- groupRowsBy?: DataSourcePropGroupRowsBy<T>;
253
- defaultGroupRowsBy?: DataSourcePropGroupRowsBy<T>;
254
- onGroupRowsByChange?: (groupBy: DataSourcePropGroupRowsBy<T>) => void;
288
+ aggregationReducers?: DataSourcePropAggregationReducers<T>;
289
+ defaultAggregationReducers?: DataSourcePropAggregationReducers<T>;
290
+ groupBy?: DataSourcePropGroupBy<T>;
291
+ defaultGroupBy?: DataSourcePropGroupBy<T>;
292
+ onGroupByChange?: (groupBy: DataSourcePropGroupBy<T>) => void;
255
293
  groupRowsState?: GroupRowsState;
256
294
  defaultGroupRowsState?: GroupRowsState;
257
295
  onGroupRowsStateChange?: (groupRowsState: GroupRowsState) => void;
258
296
  sortInfo?: DataSourceSortInfo<T>;
259
297
  defaultSortInfo?: DataSourceSortInfo<T>;
260
- onSortInfoChange?: (sortInfo: DataSourceSortInfo<T>) => void;
298
+ onSortInfoChange?: ((sortInfo: DataSourceSingleSortInfo<T> | null) => void) | ((sortInfo: DataSourceSingleSortInfo<T>[]) => void);
299
+ onDataParamsChange?: (dataParamsChange: DataSourceDataParams<T>) => void;
300
+ livePagination?: boolean;
301
+ livePaginationCursor?: DataSourceLivePaginationCursorValue;
261
302
  }
303
+ export type DataSourceLivePaginationCursorValue = string | number;
262
304
  export interface DataSourceState<T> extends DataSourceSetupState<T>, DataSourceDerivedState<T>, DataSourceMappedState<T> {
263
305
  }
264
306
  export interface DataSourceDerivedState<_T> {
265
307
  multiSort: boolean;
308
+ controlledSort: boolean;
266
309
  }
267
310
  export type DataSourceComponentActions<T> = ComponentStateActions<DataSourceState<T>>;
268
311
  export interface DataSourceContextValue<T> {
@@ -292,42 +335,55 @@ declare module "components/DataSource/publicHooks/useDataSource" {
292
335
  export function useDataSource<T>(): DataSourceState<T>;
293
336
  export function useDataSourceContextValue<T>(): DataSourceContextValue<T>;
294
337
  }
295
- declare module "components/DataSource/privateHooks/buildDataSourceDataInfo" {
296
- import { DataSourceDataInfo } from "components/DataSource/types";
297
- export function buildDataSourceDataInfo<T>(dataParam: T[] | {
298
- data: T[];
299
- }): DataSourceDataInfo<T>;
300
- }
301
- declare module "components/DataSource/privateHooks/loadDataAsync" {
302
- import { DataSourceData, DataSourceDataInfo } from "components/DataSource/types";
303
- export function loadDataAsync<T>(data: DataSourceData<T>): Promise<DataSourceDataInfo<T>>;
338
+ declare module "components/hooks/useEffectWithChanges" {
339
+ import { EffectCallback } from 'react';
340
+ export function useEffectWithChanges(fn: (changes: Record<string, any>, prevValues: Record<string, any>) => void | (() => void), deps: Record<string, any>): void;
341
+ export function useEffectWithObject(fn: EffectCallback, deps: Record<string, any>): void;
304
342
  }
305
343
  declare module "components/DataSource/privateHooks/useLoadData" {
344
+ import { DataSourceDataParams, DataSourceState } from "components/DataSource/types";
345
+ export function buildDataSourceDataParams<T>(componentState: DataSourceState<T>): DataSourceDataParams<T>;
306
346
  export function useLoadData<T>(): void;
347
+ export function useLivePagination<T>(): void;
307
348
  }
308
349
  declare module "components/DataSource/state/normalizeSortInfo" {
309
350
  import { DataSourceSingleSortInfo, DataSourceSortInfo } from "components/DataSource/types";
310
351
  export const normalizeSortInfo: <T>(sortInfo?: DataSourceSortInfo<T> | undefined) => DataSourceSingleSortInfo<T>[];
311
352
  }
353
+ declare module "components/utils/buildSubscriptionCallback" {
354
+ import { SubscriptionCallback } from "components/types/SubscriptionCallback";
355
+ export function buildSubscriptionCallback<T>(): SubscriptionCallback<T>;
356
+ }
357
+ declare module "utils/shallowEqualObjects" {
358
+ export function shallowEqualObjects<T extends object | null>(objA: T, objB: T): boolean;
359
+ }
360
+ declare module "components/utils/discardCallsWithEqualArg" {
361
+ export function discardCallsWithEqualArg<T = any>(fn: (arg: T) => void, timeframe?: number, getCompareObject?: (arg: T) => any): (arg: T) => void;
362
+ }
312
363
  declare module "components/DataSource/state/getInitialState" {
313
364
  import { DataSourceMappedState, DataSourceProps, DataSourceDerivedState, DataSourceSetupState, DataSourceState } from "components/DataSource/types";
314
365
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
315
- import { ForwardPropsToStateFnResult } from "components/hooks/useComponentState";
366
+ import { ComponentInterceptedActions, ForwardPropsToStateFnResult } from "components/hooks/useComponentState";
367
+ import { DataSourceDataParams } from "components/DataSource/index";
316
368
  export function initSetupState<T>(): DataSourceSetupState<T>;
317
369
  export const forwardProps: <T>() => Partial<{
318
- data: 1 | ((value: import("components/DataSource/types").DataSourceData<T>) => import("components/DataSource/types").DataSourceData<T>);
370
+ data: 1 | ((value: import("components/DataSource").DataSourceData<T>) => import("components/DataSource").DataSourceData<T>);
319
371
  loading: 1 | ((value: boolean | undefined) => boolean);
320
- remoteCount: 1 | ((value: number | undefined) => number | undefined);
372
+ aggregationReducers: 1 | ((value: import("components/DataSource").DataSourcePropAggregationReducers<T> | undefined) => import("components/DataSource").DataSourcePropAggregationReducers<T> | undefined);
373
+ livePagination: 1 | ((value: boolean | undefined) => boolean | undefined);
374
+ livePaginationCursor: 1 | ((value: import("components/DataSource").DataSourceLivePaginationCursorValue | undefined) => import("components/DataSource").DataSourceLivePaginationCursorValue | undefined);
375
+ onDataParamsChange: 1 | ((value: ((dataParamsChange: DataSourceDataParams<T>) => void) | undefined) => ((dataParamsChange: DataSourceDataParams<T>) => void) | undefined);
321
376
  primaryKey: 1 | ((value: keyof T) => keyof T);
322
- groupRowsBy: 1 | ((value: import("components/DataSource/types").DataSourcePropGroupRowsBy<T> | undefined) => import("components/DataSource/types").DataSourcePropGroupRowsBy<T>);
377
+ groupBy: 1 | ((value: import("components/DataSource").DataSourcePropGroupBy<T> | undefined) => import("components/DataSource").DataSourcePropGroupBy<T>);
323
378
  groupRowsState: 1 | ((value: GroupRowsState<any> | undefined) => GroupRowsState<any>);
324
- pivotBy: 1 | ((value: import("components/DataSource/types").DataSourcePropPivotBy<T> | undefined) => import("components/DataSource/types").DataSourcePropPivotBy<T> | undefined);
325
- sortInfo: 1 | ((value: import("components/DataSource/types").DataSourceSortInfo<T> | undefined) => import("components/DataSource/types").DataSourceSingleSortInfo<T>[] | null);
379
+ pivotBy: 1 | ((value: import("components/DataSource").DataSourcePropPivotBy<T> | undefined) => import("components/DataSource").DataSourcePropPivotBy<T> | undefined);
380
+ sortInfo: 1 | ((value: import("components/DataSource").DataSourceSortInfo<T> | undefined) => import("components/DataSource").DataSourceSingleSortInfo<T>[] | null);
326
381
  }>;
327
382
  export function mapPropsToState<T extends any>(params: {
328
383
  props: DataSourceProps<T>;
329
384
  state: DataSourceState<T>;
330
385
  }): DataSourceDerivedState<T>;
386
+ export function getInterceptActions<T>(): ComponentInterceptedActions<DataSourceState<T>>;
331
387
  }
332
388
  declare module "components/types/Renderable" {
333
389
  import * as React from 'react';
@@ -335,6 +391,7 @@ declare module "components/types/Renderable" {
335
391
  }
336
392
  declare module "components/InfiniteTable/types/Utility" {
337
393
  export type ArrayElement<ArrayType extends readonly unknown[]> = ArrayType extends readonly (infer ElementType)[] ? ElementType : never;
394
+ export type MapOrRecord<K extends string, V> = Map<K, V> | Record<K, V>;
338
395
  export type RequireOnlyOneProperty<T, Keys extends keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
339
396
  [K in Keys]-?: Required<Pick<T, K>> & Partial<Record<Exclude<Keys, K>, undefined>>;
340
397
  }[Keys];
@@ -354,26 +411,30 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
354
411
  import type { Renderable } from "components/types/Renderable";
355
412
  import type { DataSourcePivotBy, DataSourceSingleSortInfo, DataSourceState } from "components/DataSource/types";
356
413
  import type { DiscriminatedUnion, RequireAtLeastOne } from "components/InfiniteTable/types/Utility";
357
- import type { InfiniteTableRowInfo } from "components/InfiniteTable/types/index";
414
+ import type { InfiniteTableColumnGroup, InfiniteTableRowInfo } from "components/InfiniteTable/types/index";
358
415
  import { CSSProperties } from 'react';
359
- import { PivotBy } from "utils/groupAndPivot/index";
416
+ import { AggregationReducer, InfiniteTableRowInfoGroup, InfiniteTableRowInfoNormal, PivotBy } from "utils/groupAndPivot/index";
360
417
  export type { DiscriminatedUnion, RequireAtLeastOne };
361
418
  export type InfiniteTableToggleGroupRowFn = (groupKeys: any[]) => void;
362
- export interface InfiniteTableColumnRenderParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> {
419
+ export type InfiniteTableColumnRenderParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
363
420
  value: string | number | Renderable;
364
- data: DATA_TYPE | null;
365
- rowInfo: InfiniteTableRowInfo<DATA_TYPE>;
366
421
  groupRowInfo: InfiniteTableRowInfo<DATA_TYPE> | null;
367
422
  rowIndex: number;
368
423
  column: COL_TYPE;
369
424
  toggleCurrentGroupRow: () => void;
370
425
  toggleGroupRow: InfiniteTableToggleGroupRowFn;
371
- groupRowsBy: DataSourceState<DATA_TYPE>['groupRowsBy'];
372
- }
426
+ groupBy: DataSourceState<DATA_TYPE>['groupBy'];
427
+ } & ({
428
+ rowInfo: InfiniteTableRowInfoNormal<DATA_TYPE>;
429
+ data: DATA_TYPE;
430
+ } | {
431
+ rowInfo: InfiniteTableRowInfoGroup<DATA_TYPE>;
432
+ data: Partial<DATA_TYPE> | null;
433
+ });
373
434
  export type InfiniteTableColumnRenderValueParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnRenderParam<DATA_TYPE, COL_TYPE>;
374
435
  export type InfiniteTableColumnRowspanFnParams<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
375
- data: DATA_TYPE | null;
376
436
  rowInfo: InfiniteTableRowInfo<DATA_TYPE>;
437
+ data: DATA_TYPE | Partial<DATA_TYPE> | null;
377
438
  groupRowInfo: InfiniteTableRowInfo<DATA_TYPE> | null;
378
439
  dataArray: InfiniteTableRowInfo<DATA_TYPE>[];
379
440
  rowIndex: number;
@@ -384,7 +445,7 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
384
445
  columnSortInfo: DataSourceSingleSortInfo<T> | null | undefined;
385
446
  }
386
447
  export type InfiniteTableColumnPinned = 'start' | 'end' | false;
387
- export type InfiniteTableColumnRenderFunction<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = ({ value, rowIndex, column, data, toggleGroupRow, toggleCurrentGroupRow, rowInfo, groupRowsBy, }: InfiniteTableColumnRenderParam<DATA_TYPE, COL_TYPE>) => Renderable | null;
448
+ 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;
388
449
  export type InfiniteTableColumnRenderValueFunction<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnRenderFunction<DATA_TYPE, COL_TYPE>;
389
450
  export type InfiniteTableColumnHeaderRenderFunction<T> = ({ columnSortInfo, column, }: InfiniteTableColumnHeaderRenderParams<T>) => Renderable;
390
451
  export type InfiniteTableColumnWithField<T> = {
@@ -407,19 +468,25 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
407
468
  valueGetter?: InfiniteTableColumnValueGetter<T>;
408
469
  }, 'render' | 'renderValue' | 'field' | 'valueGetter'>;
409
470
  export type InfiniteTableColumnStyleFnParams<T> = {
410
- data: T | null;
411
471
  value: Renderable;
412
- rowInfo: InfiniteTableRowInfo<T>;
413
472
  column: InfiniteTableColumn<T>;
414
- };
473
+ } & ({
474
+ data: T;
475
+ rowInfo: InfiniteTableRowInfoNormal<T>;
476
+ } | {
477
+ data: Partial<T> | null;
478
+ rowInfo: InfiniteTableRowInfoGroup<T>;
479
+ });
415
480
  export type InfiniteTableColumnStyleFn<T> = (params: InfiniteTableColumnStyleFnParams<T>) => undefined | React.CSSProperties;
416
481
  export type InfiniteTableColumnClassNameFn<T> = (params: InfiniteTableColumnStyleFnParams<T>) => undefined | string;
417
482
  export type InfiniteTableColumnStyle<T> = CSSProperties | InfiniteTableColumnStyleFn<T>;
418
483
  export type InfiniteTableColumnClassName<T> = string | InfiniteTableColumnClassNameFn<T>;
419
484
  export type InfiniteTableColumnValueGetterParams<T> = {
420
- data: T | null;
421
- rowInfo: InfiniteTableRowInfo<T>;
422
- groupRowInfo: InfiniteTableRowInfo<T> | null;
485
+ data: T;
486
+ rowInfo: InfiniteTableRowInfoNormal<T>;
487
+ } | {
488
+ data: Partial<T> | null;
489
+ rowInfo: InfiniteTableRowInfoGroup<T>;
423
490
  };
424
491
  export type InfiniteTableColumnValueGetter<T, VALUE_GETTER_TYPE = Renderable> = (params: InfiniteTableColumnValueGetterParams<T>) => VALUE_GETTER_TYPE;
425
492
  export type InfiniteTableColumnRowspanFn<T> = (params: InfiniteTableColumnRowspanFnParams<T>) => number;
@@ -429,6 +496,7 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
429
496
  draggable?: boolean;
430
497
  resizable?: boolean;
431
498
  comparer?: InfiniteTableColumnComparer<T>;
499
+ hiddenWhenGrouped?: boolean;
432
500
  align?: InfiniteTableColumnAlign;
433
501
  verticalAlign?: InfiniteTableColumnVerticalAlign;
434
502
  columnGroup?: string;
@@ -441,27 +509,33 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
441
509
  className?: InfiniteTableColumnClassName<T>;
442
510
  rowspan?: InfiniteTableColumnRowspanFn<T>;
443
511
  valueGetter?: InfiniteTableColumnValueGetter<T>;
512
+ defaultWidth?: number;
513
+ defaultFlex?: number;
444
514
  };
445
515
  export type InfiniteTableColumn<T> = {} & InfiniteTableBaseColumn<T> & InfiniteTableColumnWithRenderOrRenderValueOrFieldOrValueGetter<T>;
446
516
  export type InfiniteTableGeneratedGroupColumn<T> = InfiniteTableColumn<T> & {
447
- groupByField?: string | string[];
517
+ groupByField: string | string[];
448
518
  id?: string;
449
519
  };
450
- export type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & {
451
- pivotBy?: DataSourcePivotBy<T>[];
452
- pivotColumn?: true;
453
- pivotTotalColumn?: true;
454
- pivotGroupKeys?: any[];
455
- pivotByForColumn?: DataSourcePivotBy<T>;
456
- pivotIndexForColumn?: number;
457
- pivotGroupKeyForColumn?: any;
520
+ export type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & Partial<InfiniteTablePivotFinalColumn<T, any>>;
521
+ export type InfiniteTablePivotFinalColumnGroup<DataType, KeyType extends any = any> = InfiniteTableColumnGroup & {
522
+ pivotBy: DataSourcePivotBy<DataType>[];
523
+ pivotTotalColumnGroup?: true;
524
+ pivotGroupKeys: KeyType[];
525
+ pivotByAtIndex: PivotBy<DataType, KeyType>;
526
+ pivotGroupKey: KeyType;
527
+ pivotIndex: number;
458
528
  };
459
- export type InfiniteTablePivotFinalColumn<DataType, KeyType extends any = any> = InfiniteTablePivotColumn<DataType> & {
529
+ export type InfiniteTablePivotFinalColumn<DataType, KeyType extends any = any> = InfiniteTableColumn<DataType> & {
460
530
  pivotBy: DataSourcePivotBy<DataType>[];
531
+ pivotColumn: true;
532
+ pivotTotalColumn: boolean;
533
+ pivotAggregator: AggregationReducer<DataType, any>;
534
+ pivotAggregatorIndex: number;
461
535
  pivotGroupKeys: KeyType[];
462
- pivotByForColumn: PivotBy<DataType, KeyType>;
463
- pivotIndexForColumn: number;
464
- pivotGroupKeyForColumn: KeyType;
536
+ pivotByAtIndex: PivotBy<DataType, KeyType>;
537
+ pivotIndex: number;
538
+ pivotGroupKey: KeyType;
465
539
  };
466
540
  type InfiniteTableComputedColumnBase<T> = {
467
541
  computedWidth: number;
@@ -485,10 +559,11 @@ declare module "components/InfiniteTable/types/InfiniteTableColumn" {
485
559
  toggleSort: () => void;
486
560
  id: string;
487
561
  };
488
- export type InfiniteTableComputedColumn<T> = InfiniteTableColumn<T> & InfiniteTableComputedColumnBase<T> & InfiniteTablePivotColumn<T> & InfiniteTableGeneratedGroupColumn<T>;
562
+ export type InfiniteTableComputedColumn<T> = InfiniteTableColumn<T> & InfiniteTableComputedColumnBase<T> & Partial<InfiniteTablePivotFinalColumn<T>> & Partial<InfiniteTableGeneratedGroupColumn<T>>;
563
+ export type InfiniteTableComputedPivotFinalColumn<T> = InfiniteTableComputedColumn<T> & InfiniteTablePivotFinalColumn<T>;
489
564
  }
490
565
  declare module "utils/groupAndPivot/getPivotColumnsAndColumnGroups" {
491
- import type { DataSourcePivotBy } from "components/DataSource/index";
566
+ import type { DataSourceAggregationReducer, DataSourcePivotBy } from "components/DataSource/index";
492
567
  import type { InfiniteTablePropColumnGroups, InfiniteTablePropColumnsMap } from "components/InfiniteTable/index";
493
568
  import type { InfiniteTablePivotColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
494
569
  import type { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
@@ -497,21 +572,29 @@ declare module "utils/groupAndPivot/getPivotColumnsAndColumnGroups" {
497
572
  columns: InfiniteTablePropColumnsMap<DataType, InfiniteTablePivotColumn<DataType>>;
498
573
  columnGroups: InfiniteTablePropColumnGroups;
499
574
  };
500
- export function getPivotColumnsAndColumnGroups<DataType, KeyType = any>(deepMap: DeepMap<KeyType, boolean>, pivotBy: DataSourcePivotBy<DataType>[], pivotTotalColumnPosition: InfiniteTablePropPivotTotalColumnPosition): ComputedColumnsAndGroups<DataType>;
575
+ export function getPivotColumnsAndColumnGroups<DataType, KeyType = any>({ deepMap, pivotBy, pivotTotalColumnPosition, reducers, showSeparatePivotColumnForSingleAggregation, }: {
576
+ deepMap: DeepMap<KeyType, boolean>;
577
+ pivotBy: DataSourcePivotBy<DataType>[];
578
+ pivotTotalColumnPosition: InfiniteTablePropPivotTotalColumnPosition;
579
+ reducers?: Record<string, DataSourceAggregationReducer<DataType, any>>;
580
+ showSeparatePivotColumnForSingleAggregation?: boolean;
581
+ }): ComputedColumnsAndGroups<DataType>;
501
582
  }
502
583
  declare module "components/DataSource/state/reducer" {
503
584
  import type { DataSourceState, DataSourceDerivedState } from "components/DataSource/types";
585
+ import { DataSourceSetupState } from "components/DataSource/index";
504
586
  export function concludeReducer<T>(params: {
505
587
  previousState: DataSourceState<T> & DataSourceDerivedState<T>;
506
- state: DataSourceState<T> & DataSourceDerivedState<T>;
507
- }): DataSourceState<T> & DataSourceDerivedState<T>;
588
+ state: DataSourceState<T> & DataSourceDerivedState<T> & DataSourceSetupState<T>;
589
+ }): DataSourceState<T> & DataSourceDerivedState<T> & DataSourceSetupState<T>;
508
590
  }
509
591
  declare module "components/DataSource/index" {
592
+ import { multisort } from "utils/multisort/index";
510
593
  import { DataSourceProps } from "components/DataSource/types";
511
594
  import { useDataSource } from "components/DataSource/publicHooks/useDataSource";
512
595
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
513
596
  function DataSource<T>(props: DataSourceProps<T>): JSX.Element;
514
- export { useDataSource, DataSource, GroupRowsState };
597
+ export { useDataSource, DataSource, GroupRowsState, multisort };
515
598
  export * from "components/DataSource/types";
516
599
  }
517
600
  declare module "components/DataSource/GroupRowsState" {
@@ -539,22 +622,33 @@ declare module "components/DataSource/GroupRowsState" {
539
622
  }
540
623
  }
541
624
  declare module "utils/groupAndPivot/index" {
625
+ import { DataSourceAggregationReducer } from "@infinite-table/infinite-react";
542
626
  import { GroupRowsState } from "components/DataSource/GroupRowsState";
543
- import { InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
544
- import { InfiniteTableGroupColumnBase } from "components/InfiniteTable/types/InfiniteTableProps";
627
+ import { InfiniteTableColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn, InfiniteTablePivotFinalColumnGroup } from "components/InfiniteTable/types/InfiniteTableColumn";
628
+ import { InfiniteTableColumnGroup, InfiniteTableGroupColumnBase } from "components/InfiniteTable/types/InfiniteTableProps";
545
629
  import { DeepMap } from "utils/DeepMap";
546
- export type AggregationReducer<T, AggregationResultType> = {
547
- initialValue: AggregationResultType;
548
- getter: (data: T) => any;
549
- reducer: (accumulator: any, value: any, data: T) => AggregationResultType | any;
550
- done?: (accumulatedValue: AggregationResultType | any, array: T[]) => AggregationResultType;
630
+ export type AggregationReducer<T, AggregationResultType = any> = DataSourceAggregationReducer<T, AggregationResultType> & {
631
+ id: string;
632
+ };
633
+ export type AggregationReducerResult<AggregationResultType extends any = any> = {
634
+ value: AggregationResultType;
635
+ id: string;
636
+ };
637
+ export type InfiniteTableRowInfoNormalType<DataType> = {
638
+ data: DataType;
639
+ isGroupRow: false;
640
+ };
641
+ export type InfiniteTableRowInfoGroupType<DataType> = {
642
+ data: Partial<DataType> | null;
643
+ isGroupRow: true;
551
644
  };
552
- export interface InfiniteTableRowInfo<T> {
645
+ export type InfiniteTableRowInfoNormal<T> = InfiniteTableRowInfoBase<T> & InfiniteTableRowInfoNormalType<T>;
646
+ export type InfiniteTableRowInfoGroup<T> = InfiniteTableRowInfoBase<T> & InfiniteTableRowInfoGroupType<T>;
647
+ export type InfiniteTableRowInfo<T> = InfiniteTableRowInfoNormal<T> | InfiniteTableRowInfoGroup<T>;
648
+ export type InfiniteTableRowInfoBase<T> = {
553
649
  id: any;
554
- data: T | null;
555
- groupData?: T[];
556
650
  value?: any;
557
- isGroupRow?: boolean;
651
+ groupData?: T[];
558
652
  collapsed: boolean;
559
653
  collapsedChildrenCount?: number;
560
654
  collapsedGroupsCount?: number;
@@ -567,10 +661,10 @@ declare module "utils/groupAndPivot/index" {
567
661
  groupCount?: number;
568
662
  groupBy?: (keyof T)[];
569
663
  pivotValuesMap?: PivotValuesDeepMap<T, any>;
570
- reducerResults?: any[];
571
- }
572
- export interface InfiniteTableEnhancedGroupInfo<T> extends InfiniteTableRowInfo<T> {
573
- data: null;
664
+ reducerResults?: Record<string, AggregationReducerResult>;
665
+ };
666
+ export type InfiniteTableEnhancedGroupInfo<T> = InfiniteTableRowInfo<T> & {
667
+ data: Partial<T> | null;
574
668
  groupData: T[];
575
669
  value: any;
576
670
  isGroupRow: true;
@@ -581,9 +675,9 @@ declare module "utils/groupAndPivot/index" {
581
675
  groupCount: number;
582
676
  groupBy: (keyof T)[];
583
677
  pivotValuesMap?: PivotValuesDeepMap<T, any>;
584
- }
678
+ };
585
679
  export type GroupKeyType<T extends any = any> = T;
586
- type PivotReducerResults<T = any> = T[];
680
+ type PivotReducerResults<T = any> = Record<string, AggregationReducerResult<T>>;
587
681
  type PivotGroupValueType<DataType, KeyType> = {
588
682
  reducerResults: PivotReducerResults<KeyType>;
589
683
  items: DataType[];
@@ -591,7 +685,7 @@ declare module "utils/groupAndPivot/index" {
591
685
  export type PivotValuesDeepMap<DataType, KeyType> = DeepMap<GroupKeyType<KeyType>, PivotGroupValueType<DataType, KeyType>>;
592
686
  export type DeepMapGroupValueType<DataType, KeyType> = {
593
687
  items: DataType[];
594
- reducerResults: any[];
688
+ reducerResults: Record<string, AggregationReducerResult>;
595
689
  pivotDeepMap?: DeepMap<GroupKeyType<KeyType>, PivotGroupValueType<DataType, KeyType>>;
596
690
  };
597
691
  export type GroupBy<DataType, KeyType> = {
@@ -600,21 +694,24 @@ declare module "utils/groupAndPivot/index" {
600
694
  column?: Partial<InfiniteTableGroupColumnBase<DataType>>;
601
695
  };
602
696
  export type PivotBy<DataType, KeyType> = Omit<GroupBy<DataType, KeyType>, 'column'> & {
603
- column?: InfiniteTablePivotColumn<DataType> | (({ column, }: {
697
+ column?: InfiniteTableColumn<DataType> | (({ column, }: {
604
698
  column: InfiniteTablePivotFinalColumn<DataType, KeyType>;
605
699
  }) => Partial<InfiniteTablePivotColumn<DataType>>);
700
+ columnGroup?: InfiniteTableColumnGroup | (({ columnGroup, }: {
701
+ columnGroup: InfiniteTablePivotFinalColumnGroup<DataType, KeyType>;
702
+ }) => Partial<InfiniteTablePivotFinalColumnGroup<DataType>>);
606
703
  };
607
704
  type GroupParams<DataType, KeyType> = {
608
705
  groupBy: GroupBy<DataType, KeyType>[];
609
706
  defaultToKey?: (value: any, item: DataType) => GroupKeyType<KeyType>;
610
707
  pivot?: PivotBy<DataType, KeyType>[];
611
- reducers?: AggregationReducer<DataType, any>[];
708
+ reducers?: Record<string, DataSourceAggregationReducer<DataType, any>>;
612
709
  };
613
710
  export type DataGroupResult<DataType, KeyType extends any> = {
614
711
  deepMap: DeepMap<GroupKeyType<KeyType>, DeepMapGroupValueType<DataType, KeyType>>;
615
712
  groupParams: GroupParams<DataType, KeyType>;
616
713
  initialData: DataType[];
617
- reducerResults?: any[];
714
+ reducerResults?: Record<string, AggregationReducerResult>;
618
715
  topLevelPivotColumns?: DeepMap<GroupKeyType<KeyType>, boolean>;
619
716
  pivot?: PivotBy<DataType, KeyType>[];
620
717
  };
@@ -624,6 +721,7 @@ declare module "utils/groupAndPivot/index" {
624
721
  groupResult: DataGroupResult<DataType, KeyType>;
625
722
  toPrimaryKey: (data: DataType) => any;
626
723
  groupRowsState?: GroupRowsState;
724
+ reducers?: Record<string, DataSourceAggregationReducer<DataType, any>>;
627
725
  generateGroupRows: boolean;
628
726
  };
629
727
  export function enhancedFlatten<DataType, KeyType = any>(param: EnhancedFlattenParam<DataType, KeyType>): {
@@ -811,35 +909,39 @@ declare module "components/InfiniteTable/components/LoadMask" {
811
909
  declare module "components/InfiniteTable/types/InfiniteTableProps" {
812
910
  import * as React from 'react';
813
911
  import { InfiniteTableState } from "components/InfiniteTable/types/index";
814
- import { AggregationReducer, InfiniteTableRowInfo } from "utils/groupAndPivot/index";
815
- import { DataSourceGroupRowsBy, DataSourcePropGroupRowsBy, DataSourcePropPivotBy, DataSourceState } from "components/DataSource/index";
912
+ import { AggregationReducer, InfiniteTableRowInfoGroup, InfiniteTableRowInfoNormal } from "utils/groupAndPivot/index";
913
+ import { DataSourceGroupBy, DataSourcePropGroupBy, DataSourcePropPivotBy, DataSourceState } from "components/DataSource/index";
816
914
  import { Renderable } from "components/types/Renderable";
817
915
  import { LoadMaskProps } from "components/InfiniteTable/components/LoadMask";
818
- import type { InfiniteTableBaseColumn, InfiniteTableColumn, InfiniteTableColumnRenderFunction, InfiniteTableComputedColumn, InfiniteTablePivotColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
916
+ import type { InfiniteTableBaseColumn, InfiniteTableColumn, InfiniteTableColumnPinned, InfiniteTableColumnRenderFunction, InfiniteTableComputedColumn, InfiniteTableComputedPivotFinalColumn, InfiniteTablePivotColumn, InfiniteTablePivotFinalColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
819
917
  import { InfiniteTablePropPivotTotalColumnPosition } from "components/InfiniteTable/types/InfiniteTableState";
820
918
  export type InfiniteTablePropColumnOrderNormalized = string[];
821
919
  export type InfiniteTablePropColumnOrder = InfiniteTablePropColumnOrderNormalized | true;
822
920
  export type InfiniteTablePropColumnVisibility = Map<string, false>;
823
921
  export type InfiniteTablePropColumnPinning = Map<string, true | 'start' | 'end'>;
824
922
  export type InfiniteTableRowStyleFnParams<T> = {
825
- data: T | null;
826
- rowInfo: InfiniteTableRowInfo<T>;
827
923
  rowIndex: number;
828
- groupRowsBy?: (keyof T)[];
829
- };
924
+ groupBy?: (keyof T)[];
925
+ } & ({
926
+ data: T;
927
+ rowInfo: InfiniteTableRowInfoNormal<T>;
928
+ } | {
929
+ data: Partial<T> | null;
930
+ rowInfo: InfiniteTableRowInfoGroup<T>;
931
+ });
830
932
  export type InfiniteTableRowStyleFn<T> = (params: InfiniteTableRowStyleFnParams<T>) => undefined | React.CSSProperties;
831
933
  export type InfiniteTableRowClassNameFn<T> = (params: InfiniteTableRowStyleFnParams<T>) => string | undefined;
832
934
  export type InfiniteTablePropRowStyle<T> = React.CSSProperties | InfiniteTableRowStyleFn<T>;
833
935
  export type InfiniteTablePropRowClassName<T> = string | InfiniteTableRowClassNameFn<T>;
834
- export type InfiniteTableColumnAggregator<T, AggregationResultType> = Omit<AggregationReducer<T, AggregationResultType>, 'getter'> & {
936
+ export type InfiniteTableColumnAggregator<T, AggregationResultType> = Omit<AggregationReducer<T, AggregationResultType>, 'getter' | 'id'> & {
835
937
  getter?: AggregationReducer<T, AggregationResultType>['getter'];
938
+ field?: keyof T;
836
939
  };
837
- export type InfiniteTablePropColumnAggregations<T> = Map<string, InfiniteTableColumnAggregator<T, any>>;
838
940
  export type InfiniteTableColumnType<T> = {
839
941
  minWidth?: number;
840
942
  maxWidth?: number;
841
- width?: number;
842
- flex?: number;
943
+ defaultWidth?: number;
944
+ defaultFlex?: number;
843
945
  header?: InfiniteTableColumn<T>['header'];
844
946
  comparer?: InfiniteTableColumn<T>['comparer'];
845
947
  draggable?: InfiniteTableColumn<T>['draggable'];
@@ -847,8 +949,10 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
847
949
  resizable?: InfiniteTableColumn<T>['resizable'];
848
950
  align?: InfiniteTableColumn<T>['align'];
849
951
  verticalAlign?: InfiniteTableColumn<T>['verticalAlign'];
952
+ defaultPinned?: InfiniteTableColumnPinned;
850
953
  renderValue?: InfiniteTableColumn<T>['renderValue'];
851
954
  render?: InfiniteTableColumn<T>['render'];
955
+ valueGetter?: InfiniteTableColumn<T>['valueGetter'];
852
956
  };
853
957
  export type InfiniteTablePropColumnTypesMap<T> = Map<'default' | string, InfiniteTableColumnType<T>>;
854
958
  export type InfiniteTablePropColumnTypes<T> = InfiniteTablePropColumnTypesMap<T> | Record<'default' | string, InfiniteTableColumnType<T>>;
@@ -863,7 +967,6 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
863
967
  export type InfiniteTableImperativeApi<T> = {
864
968
  setColumnOrder: (columnOrder: InfiniteTablePropColumnOrder) => void;
865
969
  setColumnVisibility: (columnVisibility: InfiniteTablePropColumnVisibility) => void;
866
- setColumnAggregations: (columnAggregations: InfiniteTablePropColumnAggregations<T>) => void;
867
970
  x?: T;
868
971
  getState: () => InfiniteTableState<T>;
869
972
  getDataSourceState: () => DataSourceState<T>;
@@ -901,14 +1004,14 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
901
1004
  };
902
1005
  export type InfiniteTableGroupColumnGetterOptions<T> = {
903
1006
  groupIndexForColumn?: number;
904
- groupByForColumn?: DataSourceGroupRowsBy<T>;
1007
+ groupByForColumn?: DataSourceGroupBy<T>;
905
1008
  groupRenderStrategy: InfiniteTablePropGroupRenderStrategy;
906
1009
  groupCount: number;
907
- groupRowsBy: DataSourceGroupRowsBy<T>[];
1010
+ groupBy: DataSourceGroupBy<T>[];
908
1011
  };
909
- export type InfiniteTablePivotColumnGetterOptions<T> = {
910
- column: InfiniteTablePivotColumn<T>;
911
- groupRowsBy: DataSourcePropGroupRowsBy<T>;
1012
+ export type InfiniteTablePivotColumnGetterOptions<T, COL_TYPE = InfiniteTableColumn<T>> = {
1013
+ column: COL_TYPE;
1014
+ groupBy: DataSourcePropGroupBy<T>;
912
1015
  pivotBy: DataSourcePropPivotBy<T>;
913
1016
  };
914
1017
  export type InfiniteTablePropGroupRenderStrategy = 'single-column' | 'multi-column' | 'inline';
@@ -917,12 +1020,11 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
917
1020
  id?: string;
918
1021
  };
919
1022
  export type InfiniteTablePivotColumnBase<T> = InfiniteTableColumn<T> & {
920
- renderValue?: InfiniteTableColumnRenderFunction<T>;
921
- id?: string;
1023
+ renderValue?: InfiniteTableColumnRenderFunction<T, InfiniteTableComputedPivotFinalColumn<T>>;
922
1024
  };
923
1025
  export type InfiniteTablePropGroupColumn<T> = InfiniteTableGroupColumnBase<T> | InfiniteTableGroupColumnFunction<T>;
924
1026
  export type InfiniteTableGroupColumnFunction<T> = (options: InfiniteTableGroupColumnGetterOptions<T>, toggleGroupRow: (groupKeys: any[]) => void) => InfiniteTableGroupColumnBase<T>;
925
- export type InfiniteTablePropPivotColumn<T> = InfiniteTablePivotColumnBase<T> | ((options: InfiniteTablePivotColumnGetterOptions<T>) => InfiniteTablePivotColumnBase<T>);
1027
+ export type InfiniteTablePropPivotColumn<T, COL_TYPE = InfiniteTableColumn<T>> = Partial<InfiniteTablePivotColumnBase<T>> | ((options: InfiniteTablePivotColumnGetterOptions<T, COL_TYPE>) => InfiniteTablePivotColumnBase<T>);
926
1028
  export type InfiniteTablePropPivotRowLabelsColumn<T> = InfiniteTablePropPivotColumn<T>;
927
1029
  export type InfiniteTablePropComponents = {
928
1030
  LoadMask?: React.FC<LoadMaskProps>;
@@ -933,20 +1035,18 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
933
1035
  loadingText?: Renderable;
934
1036
  components?: InfiniteTablePropComponents;
935
1037
  viewportReservedWidth?: number;
936
- pivotColumn?: Partial<InfiniteTablePropPivotColumn<T>>;
937
- pivotRowLabelsColumn?: Partial<InfiniteTablePropPivotRowLabelsColumn<T>>;
1038
+ pivotColumn?: InfiniteTablePropPivotColumn<T, InfiniteTableColumn<T> & InfiniteTablePivotFinalColumn<T>>;
1039
+ pivotRowLabelsColumn?: InfiniteTablePropPivotRowLabelsColumn<T>;
938
1040
  pivotTotalColumnPosition?: InfiniteTablePropPivotTotalColumnPosition;
939
1041
  groupColumn?: Partial<InfiniteTablePropGroupColumn<T>>;
940
1042
  groupRenderStrategy?: InfiniteTablePropGroupRenderStrategy;
941
1043
  hideEmptyGroupColumns?: boolean;
942
1044
  columnVisibility?: InfiniteTablePropColumnVisibility;
943
1045
  defaultColumnVisibility?: InfiniteTablePropColumnVisibility;
944
- columnPinning?: InfiniteTablePropColumnPinning;
945
1046
  pinnedStartMaxWidth?: number;
946
1047
  pinnedEndMaxWidth?: number;
1048
+ columnPinning?: InfiniteTablePropColumnPinning;
947
1049
  defaultColumnPinning?: InfiniteTablePropColumnPinning;
948
- defaultColumnAggregations?: InfiniteTablePropColumnAggregations<T>;
949
- columnAggregations?: InfiniteTablePropColumnAggregations<T>;
950
1050
  columnSizing?: InfiniteTablePropColumnSizing;
951
1051
  defaultColumnSizing?: InfiniteTablePropColumnSizing;
952
1052
  pivotColumnGroups?: InfiniteTablePropColumnGroups;
@@ -954,8 +1054,10 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
954
1054
  defaultColumnGroups?: InfiniteTablePropColumnGroups;
955
1055
  defaultCollapsedColumnGroups?: InfiniteTablePropCollapsedColumnGroups;
956
1056
  collapsedColumnGroups?: InfiniteTablePropCollapsedColumnGroups;
1057
+ onScrollbarsChange?: (scrollbars: Scrollbars) => void;
957
1058
  onColumnVisibilityChange?: (columnVisibility: InfiniteTablePropColumnVisibility) => void;
958
1059
  columnTypes?: InfiniteTablePropColumnTypes<T>;
1060
+ showSeparatePivotColumnForSingleAggregation?: boolean;
959
1061
  rowHeight: number | string;
960
1062
  rowStyle?: InfiniteTablePropRowStyle<T>;
961
1063
  rowClassName?: InfiniteTablePropRowClassName<T>;
@@ -991,7 +1093,12 @@ declare module "components/InfiniteTable/types/InfiniteTableProps" {
991
1093
  onReady?: (api: InfiniteTableImperativeApi<T>) => void;
992
1094
  rowProps?: React.HTMLProps<HTMLDivElement> | ((rowArgs: InfiniteTableRowStyleFnParams<T>) => React.HTMLProps<HTMLDivElement>);
993
1095
  licenseKey?: string;
1096
+ scrollTopId?: string | number;
994
1097
  }
1098
+ export type Scrollbars = {
1099
+ vertical: boolean;
1100
+ horizontal: boolean;
1101
+ };
995
1102
  }
996
1103
  declare module "components/types/Size" {
997
1104
  export interface Size {
@@ -1003,16 +1110,6 @@ declare module "components/types/Size" {
1003
1110
  height: number;
1004
1111
  }) => void;
1005
1112
  }
1006
- declare module "components/types/SubscriptionCallback" {
1007
- import { VoidFn } from "components/types/VoidFn";
1008
- export type SubscriptionCallbackOnChangeFn<T> = (node: T | null) => void;
1009
- export interface SubscriptionCallback<T> {
1010
- (node: T): void;
1011
- get: () => T | null;
1012
- destroy: VoidFn;
1013
- onChange: (fn: SubscriptionCallbackOnChangeFn<T>) => VoidFn;
1014
- }
1015
- }
1016
1113
  declare module "components/VirtualBrain/ScrollListener" {
1017
1114
  import { OnScrollFn, ScrollPosition } from "components/types/ScrollPosition";
1018
1115
  export class ScrollListener {
@@ -1035,9 +1132,9 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1035
1132
  import { NonUndefined } from "components/types/NonUndefined";
1036
1133
  import { InfiniteTableColumn, InfiniteTablePivotColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
1037
1134
  import { ComponentStateActions } from "components/hooks/useComponentState";
1038
- import { DataSourceGroupRowsBy, DataSourceProps } from "components/DataSource/types";
1039
- export type GroupRowsMap<T> = Map<keyof T, {
1040
- groupBy: DataSourceGroupRowsBy<T>;
1135
+ import { DataSourceGroupBy, DataSourceProps } from "components/DataSource/types";
1136
+ export type GroupByMap<T> = Map<keyof T, {
1137
+ groupBy: DataSourceGroupBy<T>;
1041
1138
  groupIndex: number;
1042
1139
  }>;
1043
1140
  export interface InfiniteTableSetupState<T> {
@@ -1064,8 +1161,10 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1064
1161
  export type InfiniteTableColumnGroupsDepthsMap = Map<string, number>;
1065
1162
  export type InfiniteTablePropPivotTotalColumnPosition = false | 'start' | 'end';
1066
1163
  export interface InfiniteTableMappedState<T> {
1164
+ scrollTopId: InfiniteTableProps<T>['scrollTopId'];
1067
1165
  viewportReservedWidth: InfiniteTableProps<T>['viewportReservedWidth'];
1068
1166
  groupColumn: InfiniteTableProps<T>['groupColumn'];
1167
+ onScrollbarsChange: InfiniteTableProps<T>['onScrollbarsChange'];
1069
1168
  loadingText: InfiniteTableProps<T>['loadingText'];
1070
1169
  components: InfiniteTableProps<T>['components'];
1071
1170
  columns: InfiniteTablePropColumnsMap<T>;
@@ -1082,6 +1181,7 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1082
1181
  focusedWithinClassName: InfiniteTableProps<T>['focusedWithinClassName'];
1083
1182
  focusedStyle: InfiniteTableProps<T>['focusedStyle'];
1084
1183
  focusedWithinStyle: InfiniteTableProps<T>['focusedWithinStyle'];
1184
+ showSeparatePivotColumnForSingleAggregation: NonUndefined<InfiniteTableProps<T>['showSeparatePivotColumnForSingleAggregation']>;
1085
1185
  domProps: InfiniteTableProps<T>['domProps'];
1086
1186
  rowStyle: InfiniteTableProps<T>['rowStyle'];
1087
1187
  rowProps: InfiniteTableProps<T>['rowProps'];
@@ -1110,13 +1210,12 @@ declare module "components/InfiniteTable/types/InfiniteTableState" {
1110
1210
  columnPinning: NonUndefined<InfiniteTableProps<T>['columnPinning']>;
1111
1211
  columnSizing: InfiniteTablePropColumnSizingMap;
1112
1212
  columnTypes: InfiniteTablePropColumnTypesMap<T>;
1113
- columnAggregations: NonUndefined<InfiniteTableProps<T>['columnAggregations']>;
1114
1213
  columnGroups: NonUndefined<InfiniteTableProps<T>['columnGroups']>;
1115
1214
  collapsedColumnGroups: NonUndefined<InfiniteTableProps<T>['collapsedColumnGroups']>;
1116
1215
  pivotTotalColumnPosition: NonUndefined<InfiniteTableProps<T>['pivotTotalColumnPosition']>;
1117
1216
  }
1118
1217
  export interface InfiniteTableDerivedState<T> {
1119
- groupRowsBy: DataSourceProps<T>['groupRowsBy'];
1218
+ groupBy: DataSourceProps<T>['groupBy'];
1120
1219
  computedColumns: Map<string, InfiniteTableColumn<T>>;
1121
1220
  virtualizeHeader: boolean;
1122
1221
  groupRenderStrategy: NonUndefined<InfiniteTableProps<T>['groupRenderStrategy']>;
@@ -1190,20 +1289,19 @@ declare module "components/InfiniteTable/types/index" {
1190
1289
  import type { InfiniteTableState } from "components/InfiniteTable/types/InfiniteTableState";
1191
1290
  import type { InfiniteTableAction } from "components/InfiniteTable/types/InfiniteTableAction";
1192
1291
  import type { InfiniteTableActionType } from "components/InfiniteTable/types/InfiniteTableActionType";
1193
- 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 } from "components/InfiniteTable/types/InfiniteTableProps";
1292
+ import type { InfiniteTableProps, InfiniteTableImperativeApi, InfiniteTablePropColumnOrder, InfiniteTablePropColumnVisibility, InfiniteTablePropColumnPinning, InfiniteTableColumnAggregator, InfiniteTableColumnGroup, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropColumnGroups, InfiniteTablePropRowStyle, InfiniteTableRowStyleFn, InfiniteTableRowClassNameFn, InfiniteTablePropRowClassName, InfiniteTablePropColumns, InfiniteTablePropColumnsMap, InfiniteTablePropComponents, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePropColumnSizingMap, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnTypesMap, InfiniteTableColumnSizingOptions, Scrollbars } from "components/InfiniteTable/types/InfiniteTableProps";
1194
1293
  import type { InfiniteTableColumn, InfiniteTableColumnComparer, InfiniteTableComputedColumn, InfiniteTableColumnRenderParam, InfiniteTableColumnRenderValueParam } from "components/InfiniteTable/types/InfiniteTableColumn";
1195
1294
  import type { InfiniteTableComputedValues } from "components/InfiniteTable/types/InfiniteTableComputedValues";
1196
1295
  import type { InfiniteTableContextValue } from "components/InfiniteTable/types/InfiniteTableContextValue";
1197
1296
  import type { InfiniteTableRowInfo } from "utils/groupAndPivot/index";
1198
- export type { 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, };
1297
+ 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, };
1199
1298
  }
1200
1299
  declare module "components/InfiniteTable/InfiniteTableContext" {
1201
1300
  import { InfiniteTableContextValue } from "components/InfiniteTable/types/InfiniteTableContextValue";
1202
1301
  export function getInfiniteTableContext<T>(): React.Context<InfiniteTableContextValue<T>>;
1203
1302
  }
1204
- declare module "components/utils/buildSubscriptionCallback" {
1205
- import { SubscriptionCallback } from "components/types/SubscriptionCallback";
1206
- export function buildSubscriptionCallback<T>(): SubscriptionCallback<T>;
1303
+ declare module "components/InfiniteTable/utils/toMap" {
1304
+ export function toMap<K extends string, V>(mapOrObject?: Map<K, V> | Record<K, V>): Map<K, V>;
1207
1305
  }
1208
1306
  declare module "components/InfiniteTable/state/computeColumnGroupsDepths" {
1209
1307
  import type { InfiniteTablePropColumnGroups } from "components/InfiniteTable/types/InfiniteTableProps";
@@ -1224,14 +1322,17 @@ declare module "components/InfiniteTable/state/getInitialState" {
1224
1322
  export const forwardProps: <T>() => Partial<{
1225
1323
  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>>);
1226
1324
  header: 1 | ((value: boolean | undefined) => boolean);
1325
+ showSeparatePivotColumnForSingleAggregation: 1 | ((value: boolean | undefined) => boolean);
1227
1326
  pivotTotalColumnPosition: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableState").InfiniteTablePropPivotTotalColumnPosition | undefined) => import("components/InfiniteTable/types/InfiniteTableState").InfiniteTablePropPivotTotalColumnPosition);
1228
1327
  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);
1229
1328
  pivotColumnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined);
1230
- pivotColumn: 1 | ((value: Partial<import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotColumn<T>> | undefined) => Partial<import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotColumn<T>> | undefined);
1231
1329
  sortable: 1 | ((value: boolean | undefined) => boolean);
1330
+ 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);
1232
1331
  components: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropComponents | undefined) => import("components/InfiniteTable/types").InfiniteTablePropComponents | undefined);
1332
+ scrollTopId: 1 | ((value: string | number | undefined) => string | number | undefined);
1233
1333
  viewportReservedWidth: 1 | ((value: number | undefined) => number | undefined);
1234
1334
  groupColumn: 1 | ((value: Partial<InfiniteTablePropGroupColumn<T>> | undefined) => Partial<InfiniteTablePropGroupColumn<T>> | undefined);
1335
+ onScrollbarsChange: 1 | ((value: ((scrollbars: import("components/InfiniteTable/types").Scrollbars) => void) | undefined) => ((scrollbars: import("components/InfiniteTable/types").Scrollbars) => void) | undefined);
1235
1336
  loadingText: 1 | ((value: import("react").ReactNode) => import("react").ReactNode);
1236
1337
  onReady: 1 | ((value: ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined) => ((api: import("components/InfiniteTable/types").InfiniteTableImperativeApi<T>) => void) | undefined);
1237
1338
  onSelfFocus: 1 | ((value: ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined) => ((event: import("react").FocusEvent<HTMLDivElement, Element>) => void) | undefined);
@@ -1251,7 +1352,7 @@ declare module "components/InfiniteTable/state/getInitialState" {
1251
1352
  rowClassName: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropRowClassName<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropRowClassName<T> | undefined);
1252
1353
  pinnedStartMaxWidth: 1 | ((value: number | undefined) => number | undefined);
1253
1354
  pinnedEndMaxWidth: 1 | ((value: number | undefined) => number | undefined);
1254
- pivotRowLabelsColumn: 1 | ((value: Partial<import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T>> | undefined) => Partial<import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T>> | undefined);
1355
+ pivotRowLabelsColumn: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T> | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropPivotRowLabelsColumn<T> | undefined);
1255
1356
  activeIndex: 1 | ((value: number | undefined) => number);
1256
1357
  columnMinWidth: 1 | ((value: number | undefined) => number);
1257
1358
  columnMaxWidth: 1 | ((value: number | undefined) => number);
@@ -1265,7 +1366,6 @@ declare module "components/InfiniteTable/state/getInitialState" {
1265
1366
  licenseKey: 1 | ((value: string | undefined) => string);
1266
1367
  columnVisibility: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnVisibility | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnVisibility);
1267
1368
  columnPinning: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnPinning | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnPinning);
1268
- columnAggregations: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnAggregations<T> | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnAggregations<T>);
1269
1369
  columnGroups: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnGroups | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnGroups);
1270
1370
  collapsedColumnGroups: 1 | ((value: import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups | undefined) => import("components/InfiniteTable/types/InfiniteTableProps").InfiniteTablePropCollapsedColumnGroups);
1271
1371
  columnSizing: 1 | ((value: import("components/InfiniteTable/types").InfiniteTablePropColumnSizing | undefined) => import("components/InfiniteTable/types").InfiniteTablePropColumnSizingMap);
@@ -1488,13 +1588,6 @@ declare module "components/InfiniteTable/hooks/useComputedVisibleColumns" {
1488
1588
  };
1489
1589
  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>;
1490
1590
  }
1491
- declare module "components/DataSource/publicHooks/useDataSourceActions" {
1492
- import { DataSourceComponentActions } from "components/DataSource/types";
1493
- export default function useDataSourceActions<T>(): DataSourceComponentActions<T>;
1494
- }
1495
- declare module "components/InfiniteTable/hooks/useColumnAggregations" {
1496
- export function useColumnAggregations<T>(): void;
1497
- }
1498
1591
  declare module "components/InfiniteTable/hooks/useColumnGroups" {
1499
1592
  export function useColumnGroups<T>(): void;
1500
1593
  }
@@ -1502,6 +1595,15 @@ declare module "utils/join" {
1502
1595
  const join: (...args: (string | number | void | null)[]) => string;
1503
1596
  export { join };
1504
1597
  }
1598
+ declare module "components/InfiniteTable/components/icons/ExpanderIcon.css" {
1599
+ export const ExpanderIconCls: string;
1600
+ export const ExpanderIconClsVariants: import("@vanilla-extract/recipes/dist/declarations/src/types").RuntimeFn<{
1601
+ expanded: {
1602
+ true: string;
1603
+ false: {};
1604
+ };
1605
+ }>;
1606
+ }
1505
1607
  declare module "components/InfiniteTable/components/icons/ExpanderIcon" {
1506
1608
  import * as React from 'react';
1507
1609
  type ExpanderIconProps = {
@@ -1546,7 +1648,7 @@ declare module "components/InfiniteTable/components/InfiniteTableRow/row.css" {
1546
1648
  export const GroupRowExpanderCls: string;
1547
1649
  }
1548
1650
  declare module "components/InfiniteTable/state/getComputedPivotColumnsFromDataSourcePivotColumns" {
1549
- import { DataSourcePropGroupRowsBy, DataSourcePropPivotBy } from "components/DataSource/index";
1651
+ import { DataSourcePropGroupBy, DataSourcePropPivotBy } from "components/DataSource/index";
1550
1652
  import { InfiniteTableProps } from "components/InfiniteTable/types/index";
1551
1653
  import { InfiniteTableState } from "components/InfiniteTable/types/InfiniteTableState";
1552
1654
  export function getComputedPivotColumnsFromDataSourcePivotColumns<T>(pivotColumns: InfiniteTableProps<T>['pivotColumns'], params: {
@@ -1555,13 +1657,13 @@ declare module "components/InfiniteTable/state/getComputedPivotColumnsFromDataSo
1555
1657
  pivotRowLabelsColumn: InfiniteTableProps<T>['pivotRowLabelsColumn'];
1556
1658
  pivotTotalColumnPosition: InfiniteTableState<T>['pivotTotalColumnPosition'];
1557
1659
  pivotBy: DataSourcePropPivotBy<T>;
1558
- groupRowsBy: DataSourcePropGroupRowsBy<T>;
1660
+ groupBy: DataSourcePropGroupBy<T>;
1559
1661
  }): InfiniteTableProps<T>['pivotColumns'];
1560
1662
  }
1561
1663
  declare module "components/InfiniteTable/utils/getColumnForGroupBy" {
1562
1664
  import * as React from 'react';
1563
1665
  import { InfiniteTableColumnRenderParam } from "components/InfiniteTable/index";
1564
- import { DataSourceGroupRowsBy } from "components/DataSource/index";
1666
+ import { DataSourceGroupBy } from "components/DataSource/index";
1565
1667
  import { InfiniteTableGeneratedGroupColumn } from "components/InfiniteTable/types/InfiniteTableColumn";
1566
1668
  import { InfiniteTableGroupColumnGetterOptions, InfiniteTablePropGroupColumn, InfiniteTablePropGroupRenderStrategy } from "components/InfiniteTable/types/InfiniteTableProps";
1567
1669
  export function getGroupColumnRender<T>({ groupIndexForColumn, groupRenderStrategy, toggleGroupRow, }: {
@@ -1571,7 +1673,7 @@ declare module "components/InfiniteTable/utils/getColumnForGroupBy" {
1571
1673
  }): (renderOptions: InfiniteTableColumnRenderParam<T>) => React.ReactNode;
1572
1674
  export function getColumnForGroupBy<T>(options: InfiniteTableGroupColumnGetterOptions<T> & {
1573
1675
  groupIndexForColumn: number;
1574
- groupByForColumn: DataSourceGroupRowsBy<T>;
1676
+ groupByForColumn: DataSourceGroupBy<T>;
1575
1677
  }, toggleGroupRow: (groupRowKeys: any[]) => void, groupColumnFromProps?: InfiniteTablePropGroupColumn<T>): InfiniteTableGeneratedGroupColumn<T>;
1576
1678
  export function getSingleGroupColumn<T>(options: InfiniteTableGroupColumnGetterOptions<T>, toggleGroupRow: (groupRowKeys: any[]) => void, groupColumnFromProps?: InfiniteTablePropGroupColumn<T>): InfiniteTableGeneratedGroupColumn<T>;
1577
1679
  }
@@ -1581,12 +1683,12 @@ declare module "components/InfiniteTable/hooks/useToggleGroupRow" {
1581
1683
  }
1582
1684
  declare module "components/InfiniteTable/hooks/useColumnsWhen" {
1583
1685
  import type { InfiniteTableColumn } from "components/InfiniteTable/index";
1584
- import type { DataSourceGroupRowsBy } from "components/DataSource/index";
1686
+ import type { DataSourceGroupBy } from "components/DataSource/index";
1585
1687
  import type { InfiniteTablePropGroupRenderStrategy, InfiniteTableProps } from "components/InfiniteTable/types/InfiniteTableProps";
1586
1688
  export function useColumnsWhen<T>(): void;
1587
1689
  export function getColumnsWhenGrouping<T>(params: {
1588
1690
  columns: Map<string, InfiniteTableColumn<T>>;
1589
- groupRowsBy: DataSourceGroupRowsBy<T>[];
1691
+ groupBy: DataSourceGroupBy<T>[];
1590
1692
  toggleGroupRow: (groupKeys: any[]) => void;
1591
1693
  groupColumn: InfiniteTableProps<T>['groupColumn'];
1592
1694
  groupRenderStrategy: InfiniteTablePropGroupRenderStrategy;
@@ -2193,13 +2295,11 @@ declare module "components/InfiniteTable/components/InfiniteTableHeader/Infinite
2193
2295
  export const InfiniteTableHeaderUnvirtualized: typeof InfiniteTableHeaderUnvirtualizedFn;
2194
2296
  }
2195
2297
  declare module "components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderWrapper" {
2298
+ import type { Scrollbars } from "components/InfiniteTable/index";
2196
2299
  import { VirtualBrain } from "components/VirtualBrain/index";
2197
2300
  export type TableHeaderWrapperProps = {
2198
2301
  brain: VirtualBrain;
2199
- scrollbars: {
2200
- vertical: boolean;
2201
- horizontal: boolean;
2202
- };
2302
+ scrollbars: Scrollbars;
2203
2303
  repaintId?: number | string;
2204
2304
  };
2205
2305
  export function TableHeaderWrapper<T>(props: TableHeaderWrapperProps): JSX.Element;
@@ -2478,7 +2578,7 @@ declare module "components/VirtualList/RowListWithExternalScrolling" {
2478
2578
  }
2479
2579
  declare module "components/InfiniteTable/hooks/usePinnedRendering" {
2480
2580
  import { VirtualBrain } from "components/VirtualBrain/index";
2481
- import { InfiniteTableComputedColumn, InfiniteTableRowInfo } from "components/InfiniteTable/types/index";
2581
+ import type { InfiniteTableComputedColumn, InfiniteTableRowInfo, Scrollbars } from "components/InfiniteTable/types/index";
2482
2582
  import type { Size } from "components/types/Size";
2483
2583
  import type { RenderRow } from "components/VirtualList/types";
2484
2584
  import { InfiniteTableState } from "components/InfiniteTable/types/InfiniteTableState";
@@ -2498,10 +2598,7 @@ declare module "components/InfiniteTable/hooks/usePinnedRendering" {
2498
2598
  computedPinnedEndColumnsWidth: number;
2499
2599
  computedPinnedEndColumns: InfiniteTableComputedColumn<T>[];
2500
2600
  verticalVirtualBrain: VirtualBrain;
2501
- scrollbars: {
2502
- vertical: boolean;
2503
- horizontal: boolean;
2504
- };
2601
+ scrollbars: Scrollbars;
2505
2602
  rowHeight: number;
2506
2603
  toggleGroupRow: InfiniteTableToggleGroupRowFn;
2507
2604
  computedPinnedStartColumnsWidth: number;
@@ -2548,13 +2645,11 @@ declare module "components/InfiniteTable/hooks/useYourBrain" {
2548
2645
  verticalVirtualBrain: VirtualBrain;
2549
2646
  };
2550
2647
  }
2551
- declare module "utils/shallowEqualObjects" {
2552
- export function shallowEqualObjects<T extends object | null>(objA: T, objB: T): boolean;
2553
- }
2554
2648
  declare module "components/InfiniteTable/hooks/useListRendering" {
2555
2649
  import type { Ref } from 'react';
2556
2650
  import type { InfiniteTableComputedValues } from "components/InfiniteTable/types/index";
2557
2651
  import type { Size } from "components/types/Size";
2652
+ import type { Scrollbars } from "components/InfiniteTable/types/InfiniteTableProps";
2558
2653
  type ListRenderingParam<T> = {
2559
2654
  computed: InfiniteTableComputedValues<T>;
2560
2655
  domRef: Ref<HTMLElement>;
@@ -2564,10 +2659,7 @@ declare module "components/InfiniteTable/hooks/useListRendering" {
2564
2659
  };
2565
2660
  import type { VirtualBrain } from "components/VirtualBrain/index";
2566
2661
  type ListRenderingResult = {
2567
- scrollbars: {
2568
- vertical: boolean;
2569
- horizontal: boolean;
2570
- };
2662
+ scrollbars: Scrollbars;
2571
2663
  horizontalVirtualBrain: VirtualBrain;
2572
2664
  verticalVirtualBrain: VirtualBrain;
2573
2665
  applyScrollHorizontal: ({ scrollLeft }: {
@@ -2587,9 +2679,9 @@ declare module "components/InfiniteTable/hooks/useListRendering" {
2587
2679
  export function useListRendering<T>(param: ListRenderingParam<T>): ListRenderingResult;
2588
2680
  }
2589
2681
  declare module "components/utils/decamelize" {
2590
- export const decamelize: (input: string, options?: {
2682
+ export function decamelize(str: string, options?: {
2591
2683
  separator: string;
2592
- } | undefined) => string;
2684
+ }): string;
2593
2685
  }
2594
2686
  declare module "components/InfiniteTable/components/InfiniteTableLicenseFooter/index" {
2595
2687
  import * as React from 'react';