@infinite-table/infinite-react 4.3.2 → 4.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.d.ts CHANGED
@@ -116,379 +116,6 @@ declare class DeepMap<KeyType, ValueType> {
116
116
  private sortedIterator;
117
117
  }
118
118
 
119
- declare enum InfiniteTableActionType {
120
- SET_COLUMN_SIZE = 0,
121
- SET_SCROLL_POSITION = 1,
122
- SET_BODY_SIZE = 2,
123
- SET_COLUMN_ORDER = 3,
124
- SET_COLUMN_VISIBILITY = 4,
125
- SET_COLUMN_SHIFTS = 5,
126
- SET_COLUMN_PINNING = 6,
127
- SET_COLUMN_AGGREGATIONS = 7,
128
- SET_DRAGGING_COLUMN_ID = 8
129
- }
130
-
131
- declare type InfiniteTableAction = {
132
- type: InfiniteTableActionType;
133
- payload?: any;
134
- };
135
-
136
- declare type InfiniteTableBaseCellProps<T> = {
137
- column: InfiniteTableComputedColumn<T>;
138
- align?: InfiniteTableColumnAlignValues;
139
- rowId?: any;
140
- renderChildren: () => Renderable;
141
- width: number;
142
- cssEllipsis?: boolean;
143
- contentStyle?: CSSProperties;
144
- contentClassName?: string;
145
- virtualized?: boolean;
146
- skipColumnShifting?: boolean;
147
- beforeChildren?: Renderable;
148
- afterChildren?: Renderable;
149
- cssPosition?: CSSProperties['position'];
150
- domRef?: React.RefCallback<HTMLElement>;
151
- };
152
- declare type InfiniteTableCellProps<T> = ({
153
- cellType: 'header';
154
- } & InfiniteTableBaseCellProps<T>) | ({
155
- cellType: 'body';
156
- } & InfiniteTableBaseCellProps<T>);
157
-
158
- declare type DiscriminatedUnion<A, B> = (A & {
159
- [K in keyof B]?: undefined;
160
- }) | (B & {
161
- [K in keyof A]?: undefined;
162
- });
163
- declare type KeyOfNoSymbol<T> = Exclude<keyof T, Symbol>;
164
- /**
165
- * Restrict using either exclusively the keys of T or exclusively the keys of U.
166
- *
167
- * No unique keys of T can be used simultaneously with any unique keys of U.
168
- *
169
- * @example
170
- *```
171
- * const myVar: XOR<T, U>
172
- *```
173
- *
174
- * @see https://github.com/maninak/ts-xor/tree/master#description
175
- */
176
- declare type XOR<T, U> = T | U extends object ? Prettify<Without<T, U> & U> | Prettify<Without<U, T> & T> : T | U;
177
- /**
178
- * Useful if applying XOR on more than 2 types.
179
- * It comes with the penalty of having the types wrapped in an array
180
- *
181
- * @example
182
- * ```
183
- * AllXOR<[
184
- * { a: AModule },
185
- * { b: BModule },
186
- * { c: CModule },
187
- * { d: DModule }
188
- * ]>
189
- * ```
190
- * @see https://github.com/Microsoft/TypeScript/issues/14094#issuecomment-723571692
191
- */
192
- declare type AllXOR<T extends any[]> = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? AllXOR<[XOR<A, B>, ...Rest]> : never;
193
- /**
194
- * Get the keys of T without any keys of U.
195
- */
196
- declare type Without<T, U> = {
197
- [P in Exclude<keyof T, keyof U>]?: never;
198
- };
199
- /**
200
- * Resolve mapped types and show the derived keys and their types when hovering in
201
- * IDEs, instead of just showing the names those mapped types are defined with.
202
- */
203
- declare type Prettify<T> = {
204
- [K in keyof T]: T[K];
205
- } & {};
206
-
207
- declare type MenuIconProps = {
208
- lineWidth?: number;
209
- lineStyle?: React$1.CSSProperties;
210
- style?: React$1.CSSProperties;
211
- className?: string;
212
- domProps?: React$1.HTMLAttributes<HTMLDivElement>;
213
- reserveSpaceWhenHidden?: boolean;
214
- menuVisible?: boolean;
215
- children?: React$1.ReactNode;
216
- };
217
- declare function MenuIcon(props: MenuIconProps): React$1.JSX.Element;
218
-
219
- declare type NonUndefined<T> = T extends undefined ? never : T;
220
-
221
- declare type InfiniteTableToggleGroupRowFn = (groupKeys: any[]) => void;
222
- declare type InfiniteTableToggleRowDetailsFn = (id: any) => void;
223
- declare type InfiniteTableSelectRowFn = (id: any) => void;
224
- declare type InfiniteTableColumnHeaderParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
225
- dragging: boolean;
226
- column: COL_TYPE;
227
- columnsMap: Map<string, COL_TYPE>;
228
- columnSortInfo: DataSourceSingleSortInfo<DATA_TYPE> | null;
229
- columnFilterValue: DataSourceFilterValueItem<DATA_TYPE> | null;
230
- selectionMode: DataSourcePropSelectionMode;
231
- allRowsSelected: boolean;
232
- someRowsSelected: boolean;
233
- filtered: boolean;
234
- api: InfiniteTableApi<DATA_TYPE>;
235
- columnApi: InfiniteTableColumnApi<DATA_TYPE>;
236
- renderBag: {
237
- all?: Renderable;
238
- header: string | number | Renderable;
239
- sortIcon?: Renderable;
240
- menuIcon?: Renderable;
241
- menuIconProps?: MenuIconProps;
242
- filterIcon?: Renderable;
243
- selectionCheckBox?: Renderable;
244
- };
245
- } & ({
246
- domRef: InfiniteTableCellProps<DATA_TYPE>['domRef'];
247
- insideColumnMenu: false;
248
- } | {
249
- insideColumnMenu: true;
250
- });
251
- declare type InfiniteTableColumnRenderBag = {
252
- value: string | number | Renderable;
253
- groupIcon?: Renderable;
254
- rowDetailsIcon?: Renderable;
255
- all?: Renderable;
256
- selectionCheckBox?: Renderable;
257
- };
258
- declare type InfiniteTableColumnRenderParamBase<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
259
- domRef: InfiniteTableCellProps<DATA_TYPE>['domRef'];
260
- value: string | number | Renderable;
261
- align: InfiniteTableColumnAlignValues;
262
- verticalAlign: InfiniteTableColumnVerticalAlignValues;
263
- renderBag: InfiniteTableColumnRenderBag;
264
- rowIndex: number;
265
- rowActive: boolean;
266
- api: InfiniteTableApi<DATA_TYPE>;
267
- editError?: Error;
268
- column: COL_TYPE;
269
- columnsMap: Map<string, COL_TYPE>;
270
- fieldsToColumn: Map<keyof DATA_TYPE, COL_TYPE>;
271
- groupByColumn?: InfiniteTableComputedColumn<DATA_TYPE>;
272
- toggleCurrentGroupRow: () => void;
273
- toggleGroupRow: InfiniteTableToggleGroupRowFn;
274
- toggleCurrentGroupRowSelection: () => void;
275
- toggleCurrentRowSelection: () => void;
276
- toggleCurrentRowDetails: () => void;
277
- toggleRowDetails: InfiniteTableToggleRowDetailsFn;
278
- expandRowDetails: InfiniteTableToggleRowDetailsFn;
279
- collapseRowDetails: InfiniteTableToggleRowDetailsFn;
280
- rowHasSelectedCells: boolean;
281
- cellSelected: boolean;
282
- selectCurrentRow: () => void;
283
- selectRow: InfiniteTableSelectRowFn;
284
- deselectRow: InfiniteTableSelectRowFn;
285
- deselectCurrentRow: () => void;
286
- selectCell: () => void;
287
- deselectCell: () => void;
288
- toggleRowSelection: InfiniteTableSelectRowFn;
289
- toggleGroupRowSelection: InfiniteTableToggleGroupRowFn;
290
- selectionMode: DataSourcePropSelectionMode | undefined;
291
- rootGroupBy: DataSourceState<DATA_TYPE>['groupBy'];
292
- pivotBy?: DataSourceState<DATA_TYPE>['pivotBy'];
293
- };
294
- declare type InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnRenderParamBase<DATA_TYPE, COL_TYPE> & InfiniteTableRowInfoDataDiscriminator<DATA_TYPE>;
295
- declare type InfiniteTableColumnRenderValueParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE>;
296
- declare type InfiniteTableColumnRowspanParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
297
- rowInfo: InfiniteTableRowInfo<DATA_TYPE>;
298
- data: DATA_TYPE | Partial<DATA_TYPE> | null;
299
- dataArray: InfiniteTableRowInfo<DATA_TYPE>[];
300
- rowIndex: number;
301
- column: COL_TYPE;
302
- };
303
- declare type InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
304
- isGroupRow: true;
305
- }) => Renderable | null;
306
- declare type InfiniteTableColumnRenderFunctionForNormalRows<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
307
- isGroupRow: false;
308
- }) => Renderable | null;
309
- declare type InfiniteTableColumnRenderFunction<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE>) => Renderable | null;
310
- declare type InfiniteTableColumnHeaderRenderFunction<T> = (headerParams: InfiniteTableColumnHeaderParam<T>) => Renderable;
311
- declare type InfiniteTableColumnContentFocusable<T> = boolean | InfiniteTableColumnContentFocusableFn<T>;
312
- declare type InfiniteTableColumnEditable<T> = boolean | InfiniteTableColumnEditableFn<T>;
313
- declare type InfiniteTableColumnContentFocusableFn<T> = (params: InfiniteTableColumnContentFocusableParams<T>) => boolean;
314
- declare type InfiniteTableColumnEditableFn<T> = (params: InfiniteTableColumnEditableParams<T>) => boolean | Promise<boolean>;
315
- declare type InfiniteTableColumnContentFocusableParams<T> = InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T>;
316
- declare type InfiniteTableColumnEditableParams<T> = InfiniteTableColumnContentFocusableParams<T>;
317
- declare type InfiniteTableColumnGetValueToPersistParams<T> = InfiniteTableColumnEditableParams<T> & {
318
- initialValue: any;
319
- };
320
- declare type InfiniteTableColumnAlignValues = 'start' | 'center' | 'end';
321
- declare type InfiniteTableColumnVerticalAlignValues = 'start' | 'center' | 'end';
322
- declare type InfiniteTableColumnHeader<T> = Renderable | InfiniteTableColumnHeaderRenderFunction<T>;
323
- declare type InfiniteTableDataTypeNames = 'string' | 'number' | 'date' | string;
324
- declare type InfiniteTableColumnTypeNames = 'string' | 'number' | 'date' | string;
325
- declare type InfiniteTableColumnStylingFnParams<T> = {
326
- value: Renderable;
327
- column: InfiniteTableComputedColumn<T>;
328
- inEdit: boolean;
329
- rowHasSelectedCells: boolean;
330
- editError: InfiniteTableColumnRenderParamBase<T>['editError'];
331
- } & InfiniteTableRowInfoDataDiscriminator<T>;
332
- declare type InfiniteTableColumnStyleFn<T> = (params: InfiniteTableColumnStylingFnParams<T>) => undefined | React__default.CSSProperties;
333
- declare type InfiniteTableColumnHeaderClassNameFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | string;
334
- declare type InfiniteTableColumnHeaderStyleFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | React__default.CSSProperties;
335
- declare type InfiniteTableColumnClassNameFn<T> = (params: InfiniteTableColumnStylingFnParams<T>) => undefined | string;
336
- declare type InfiniteTableColumnStyle<T> = CSSProperties | InfiniteTableColumnStyleFn<T>;
337
- declare type InfiniteTableColumnAlign<T> = InfiniteTableColumnAlignValues | InfiniteTableColumnAlignFn<T>;
338
- declare type InfiniteTableColumnVerticalAlign<T> = InfiniteTableColumnVerticalAlignValues | InfiniteTableColumnVerticalAlignFn<T>;
339
- declare type InfiniteTableColumnAlignFn<T> = (params: InfiniteTableColumnAlignFnParams<T>) => InfiniteTableColumnAlignValues;
340
- declare type InfiniteTableColumnAlignFnParams<T> = XOR<{
341
- isHeader: true;
342
- column: InfiniteTableComputedColumn<T>;
343
- }, InfiniteTableColumnStylingFnParams<T> & {
344
- isHeader: false;
345
- }>;
346
- declare type InfiniteTableColumnVerticalAlignFn<T> = (params: InfiniteTableColumnAlignFnParams<T>) => InfiniteTableColumnVerticalAlignValues;
347
- declare type InfiniteTableColumnHeaderStyle<T> = CSSProperties | InfiniteTableColumnHeaderStyleFn<T>;
348
- declare type InfiniteTableColumnClassName<T> = string | InfiniteTableColumnClassNameFn<T>;
349
- declare type InfiniteTableColumnHeaderClassName<T> = string | InfiniteTableColumnHeaderClassNameFn<T>;
350
- declare type InfiniteTableColumnValueGetterParams<T> = ValueGetterParams<T>;
351
- declare type InfiniteTableColumnValueFormatterParams<T> = InfiniteTableRowInfoDataDiscriminator<T>;
352
- declare type InfiniteTableColumnValueGetter<T, VALUE_GETTER_TYPE = string | number | boolean | Date | null | undefined> = (params: InfiniteTableColumnValueGetterParams<T>) => VALUE_GETTER_TYPE;
353
- declare type InfiniteTableColumnValueFormatter<T, VALUE_FORMATTER_TYPE = string | number | boolean | Date | null | undefined> = (params: InfiniteTableColumnValueFormatterParams<T>) => VALUE_FORMATTER_TYPE;
354
- declare type InfiniteTableColumnRowspanFn<T> = (params: InfiniteTableColumnRowspanParam<T>) => number;
355
- declare type InfiniteTableColumnComparer<T> = (a: T, b: T) => number;
356
- declare type InfiniteTableColumnSortableFn<T> = (context: {
357
- api: InfiniteTableApi<T>;
358
- columnApi: InfiniteTableColumnApi<T>;
359
- column: InfiniteTableComputedColumn<T>;
360
- columns: Map<string, InfiniteTableComputedColumn<T>>;
361
- }) => boolean;
362
- declare type InfiniteTableColumnSortable<T> = boolean | InfiniteTableColumnSortableFn<T>;
363
- /**
364
- * Defines a column in the table.
365
- *
366
- * @typeParam DATA_TYPE The type of the data in the table.
367
- *
368
- * Can be bound to a field which is a `keyof DATA_TYPE`.
369
- */
370
- declare type InfiniteTableColumn<DATA_TYPE> = {
371
- field?: KeyOfNoSymbol<DATA_TYPE>;
372
- valueGetter?: InfiniteTableColumnValueGetter<DATA_TYPE>;
373
- defaultSortable?: InfiniteTableColumnSortable<DATA_TYPE>;
374
- draggable?: boolean;
375
- resizable?: boolean;
376
- shouldAcceptEdit?: (params: InfiniteTablePropOnEditAcceptedParams<DATA_TYPE>) => boolean | Error | Promise<boolean | Error>;
377
- contentFocusable?: InfiniteTableColumnContentFocusable<DATA_TYPE>;
378
- defaultEditable?: InfiniteTableColumnEditable<DATA_TYPE>;
379
- getValueToEdit?: (params: InfiniteTableColumnEditableParams<DATA_TYPE>) => any | Promise<any>;
380
- getValueToPersist?: (params: InfiniteTableColumnGetValueToPersistParams<DATA_TYPE>) => any | Promise<any>;
381
- comparer?: InfiniteTableColumnComparer<DATA_TYPE>;
382
- defaultHiddenWhenGroupedBy?: '*' | true | keyof DATA_TYPE | {
383
- [k in keyof Partial<DATA_TYPE>]: true;
384
- };
385
- align?: InfiniteTableColumnAlign<DATA_TYPE>;
386
- headerAlign?: InfiniteTableColumnAlign<DATA_TYPE>;
387
- verticalAlign?: InfiniteTableColumnVerticalAlign<DATA_TYPE>;
388
- columnGroup?: string;
389
- header?: InfiniteTableColumnHeader<DATA_TYPE>;
390
- renderHeader?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
391
- name?: Renderable;
392
- cssEllipsis?: boolean;
393
- headerCssEllipsis?: boolean;
394
- type?: InfiniteTableColumnTypeNames | InfiniteTableColumnTypeNames[] | null;
395
- dataType?: InfiniteTableDataTypeNames;
396
- sortType?: string | string[];
397
- filterType?: string;
398
- style?: InfiniteTableColumnStyle<DATA_TYPE>;
399
- headerStyle?: InfiniteTableColumnHeaderStyle<DATA_TYPE>;
400
- headerClassName?: InfiniteTableColumnHeaderClassName<DATA_TYPE>;
401
- className?: InfiniteTableColumnClassName<DATA_TYPE>;
402
- rowspan?: InfiniteTableColumnRowspanFn<DATA_TYPE>;
403
- render?: InfiniteTableColumnRenderFunction<DATA_TYPE>;
404
- renderValue?: InfiniteTableColumnRenderFunction<DATA_TYPE>;
405
- renderGroupValue?: InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE>;
406
- renderLeafValue?: InfiniteTableColumnRenderFunctionForNormalRows<DATA_TYPE>;
407
- valueFormatter?: InfiniteTableColumnValueFormatter<DATA_TYPE, Renderable>;
408
- defaultWidth?: number;
409
- defaultFlex?: number;
410
- defaultFilterable?: boolean;
411
- minWidth?: number;
412
- maxWidth?: number;
413
- renderGroupIcon?: InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE>;
414
- renderRowDetailIcon?: boolean | InfiniteTableColumnRenderFunction<DATA_TYPE>;
415
- renderSortIcon?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
416
- renderFilterIcon?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
417
- renderSelectionCheckBox?: boolean | InfiniteTableColumnRenderFunction<DATA_TYPE>;
418
- renderMenuIcon?: boolean | InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
419
- renderHeaderSelectionCheckBox?: boolean | InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
420
- components?: {
421
- ColumnCell?: (props: HTMLProps<HTMLDivElement>) => JSX.Element | null;
422
- HeaderCell?: (props: HTMLProps<HTMLDivElement>) => JSX.Element | null;
423
- Editor?: () => JSX.Element | null;
424
- FilterEditor?: () => JSX.Element | null;
425
- FilterOperatorSwitch?: () => JSX.Element | null;
426
- MenuIcon?: (props: MenuIconProps) => JSX.Element | null;
427
- };
428
- };
429
- declare type InfiniteTableGeneratedGroupColumn<T> = Omit<InfiniteTableColumn<T>, 'defaultSortable'> & {
430
- groupByForColumn: GroupBy<T> | GroupBy<T>[];
431
- id?: string;
432
- };
433
- declare type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & ColumnTypeWithInherit<Partial<InfiniteTablePivotFinalColumnVariant<T, any>>>;
434
- declare type InfiniteTablePivotFinalColumnGroup<DataType, KeyType extends any = any> = InfiniteTableColumnGroup & {
435
- pivotBy: DataSourcePivotBy<DataType>[];
436
- pivotTotalColumnGroup?: true;
437
- pivotGroupKeys: KeyType[];
438
- pivotByAtIndex: PivotBy<DataType, KeyType>;
439
- pivotGroupKey: KeyType;
440
- pivotIndex: number;
441
- };
442
- declare type InfiniteTablePivotFinalColumn<DataType, KeyType extends any = any> = InfiniteTableColumn<DataType> & {
443
- pivotBy: DataSourcePivotBy<DataType>[];
444
- pivotColumn: true;
445
- pivotTotalColumn: boolean;
446
- pivotAggregator: AggregationReducer<DataType, any>;
447
- pivotAggregatorIndex: number;
448
- pivotGroupKeys: KeyType[];
449
- pivotByAtIndex?: PivotBy<DataType, KeyType>;
450
- pivotIndex: number;
451
- pivotGroupKey: KeyType;
452
- };
453
- declare type InfiniteTablePivotFinalColumnVariant<DataType, KeyType extends any = any> = InfiniteTablePivotFinalColumn<DataType, KeyType>;
454
- declare type InfiniteTableComputedColumnBase<T> = {
455
- computedFilterType: string;
456
- computedSortType: string | string[];
457
- computedDataType: string;
458
- computedWidth: number;
459
- computedFlex: number | null;
460
- computedMinWidth: number;
461
- computedMaxWidth: number;
462
- computedOffset: number;
463
- computedPinningOffset: number;
464
- computedAbsoluteOffset: number;
465
- computedSortInfo: DataSourceSingleSortInfo<T> | null;
466
- computedSorted: boolean;
467
- computedSortedAsc: boolean;
468
- computedSortedDesc: boolean;
469
- computedSortIndex: number;
470
- computedVisible: boolean;
471
- computedVisibleIndex: number;
472
- computedVisibleIndexInCategory: number;
473
- computedMultiSort: boolean;
474
- computedFiltered: boolean;
475
- computedFilterable: boolean;
476
- computedFilterValue: DataSourceFilterValueItem<T> | null;
477
- computedPinned: InfiniteTableColumnPinnedValues;
478
- computedDraggable: boolean;
479
- computedResizable: boolean;
480
- computedFirstInCategory: boolean;
481
- computedLastInCategory: boolean;
482
- computedFirst: boolean;
483
- computedLast: boolean;
484
- computedEditable: NonUndefined<InfiniteTableColumn<T>['defaultEditable']>;
485
- computedSortable: NonUndefined<InfiniteTableColumn<T>['defaultSortable']>;
486
- colType: InfiniteTableColumnType<T>;
487
- id: string;
488
- };
489
- declare type InfiniteTableComputedColumn<T> = InfiniteTableColumn<T> & InfiniteTableComputedColumnBase<T> & Partial<InfiniteTablePivotFinalColumn<T>> & Partial<InfiniteTableGeneratedGroupColumn<T>>;
490
- declare type InfiniteTableComputedPivotFinalColumn<T> = InfiniteTableComputedColumn<T> & InfiniteTablePivotFinalColumn<T>;
491
-
492
119
  declare type VoidFn = () => void;
493
120
 
494
121
  declare type FixedPosition = false | 'start' | 'end';
@@ -720,35 +347,408 @@ declare class MatrixBrain extends Logger {
720
347
  height: number;
721
348
  width: number;
722
349
  };
723
- getTotalSizeFor: (direction: 'horizontal' | 'vertical') => number;
724
- setRenderRange: ({ horizontal, vertical, extraCells, }: {
725
- horizontal: RenderRangeType;
726
- vertical: RenderRangeType;
727
- extraCells?: [number, number][] | undefined;
728
- }) => void;
729
- getRenderRangeCellCount: (range: TableRenderRange) => number;
730
- getExtraCells: () => [
731
- number,
732
- number
733
- ][];
734
- getScrollPosition: () => ScrollPosition;
735
- getRenderRange: () => TableRenderRange;
736
- onScroll: (fn: OnScrollFn) => () => void;
737
- onScrollStart: (fn: VoidFunction) => () => void;
738
- onScrollStop: (fn: (scrollPos: ScrollPosition) => void) => () => void;
739
- onRenderRangeChange: (fn: FnOnRenderRangeChange) => () => void;
740
- onVerticalRenderRangeChange: (fn: FnOnDirectionalRenderRangeChange) => () => void;
741
- onHorizontalRenderRangeChange: (fn: FnOnDirectionalRenderRangeChange) => () => void;
742
- onRenderCountChange: (fn: FnOnRenderCountChange) => () => void;
743
- onAvailableSizeChange: (fn: OnAvailableSizeChange) => () => void;
744
- onDestroy: (fn: VoidFn) => () => void;
745
- getAvailableSize: () => {
746
- width: number;
747
- height: number;
350
+ getTotalSizeFor: (direction: 'horizontal' | 'vertical') => number;
351
+ setRenderRange: ({ horizontal, vertical, extraCells, }: {
352
+ horizontal: RenderRangeType;
353
+ vertical: RenderRangeType;
354
+ extraCells?: [number, number][] | undefined;
355
+ }) => void;
356
+ getRenderRangeCellCount: (range: TableRenderRange) => number;
357
+ getExtraCells: () => [
358
+ number,
359
+ number
360
+ ][];
361
+ getScrollPosition: () => ScrollPosition;
362
+ getRenderRange: () => TableRenderRange;
363
+ onScroll: (fn: OnScrollFn) => () => void;
364
+ onScrollStart: (fn: VoidFunction) => () => void;
365
+ onScrollStop: (fn: (scrollPos: ScrollPosition) => void) => () => void;
366
+ onRenderRangeChange: (fn: FnOnRenderRangeChange) => () => void;
367
+ onVerticalRenderRangeChange: (fn: FnOnDirectionalRenderRangeChange) => () => void;
368
+ onHorizontalRenderRangeChange: (fn: FnOnDirectionalRenderRangeChange) => () => void;
369
+ onRenderCountChange: (fn: FnOnRenderCountChange) => () => void;
370
+ onAvailableSizeChange: (fn: OnAvailableSizeChange) => () => void;
371
+ onDestroy: (fn: VoidFn) => () => void;
372
+ getAvailableSize: () => {
373
+ width: number;
374
+ height: number;
375
+ };
376
+ private notifyDestroy;
377
+ destroy: () => void;
378
+ }
379
+
380
+ declare enum InfiniteTableActionType {
381
+ SET_COLUMN_SIZE = 0,
382
+ SET_SCROLL_POSITION = 1,
383
+ SET_BODY_SIZE = 2,
384
+ SET_COLUMN_ORDER = 3,
385
+ SET_COLUMN_VISIBILITY = 4,
386
+ SET_COLUMN_SHIFTS = 5,
387
+ SET_COLUMN_PINNING = 6,
388
+ SET_COLUMN_AGGREGATIONS = 7,
389
+ SET_DRAGGING_COLUMN_ID = 8
390
+ }
391
+
392
+ declare type InfiniteTableAction = {
393
+ type: InfiniteTableActionType;
394
+ payload?: any;
395
+ };
396
+
397
+ declare type InfiniteTableBaseCellProps<T> = {
398
+ column: InfiniteTableComputedColumn<T>;
399
+ align?: InfiniteTableColumnAlignValues;
400
+ rowId?: any;
401
+ renderChildren: () => Renderable;
402
+ width: number;
403
+ cssEllipsis?: boolean;
404
+ contentStyle?: CSSProperties;
405
+ contentClassName?: string;
406
+ virtualized?: boolean;
407
+ skipColumnShifting?: boolean;
408
+ beforeChildren?: Renderable;
409
+ afterChildren?: Renderable;
410
+ cssPosition?: CSSProperties['position'];
411
+ domRef?: React.RefCallback<HTMLElement>;
412
+ };
413
+ declare type InfiniteTableCellProps<T> = ({
414
+ cellType: 'header';
415
+ } & InfiniteTableBaseCellProps<T>) | ({
416
+ cellType: 'body';
417
+ } & InfiniteTableBaseCellProps<T>);
418
+
419
+ declare type DiscriminatedUnion<A, B> = (A & {
420
+ [K in keyof B]?: undefined;
421
+ }) | (B & {
422
+ [K in keyof A]?: undefined;
423
+ });
424
+ declare type KeyOfNoSymbol<T> = Exclude<keyof T, Symbol>;
425
+ /**
426
+ * Restrict using either exclusively the keys of T or exclusively the keys of U.
427
+ *
428
+ * No unique keys of T can be used simultaneously with any unique keys of U.
429
+ *
430
+ * @example
431
+ *```
432
+ * const myVar: XOR<T, U>
433
+ *```
434
+ *
435
+ * @see https://github.com/maninak/ts-xor/tree/master#description
436
+ */
437
+ declare type XOR<T, U> = T | U extends object ? Prettify<Without<T, U> & U> | Prettify<Without<U, T> & T> : T | U;
438
+ /**
439
+ * Useful if applying XOR on more than 2 types.
440
+ * It comes with the penalty of having the types wrapped in an array
441
+ *
442
+ * @example
443
+ * ```
444
+ * AllXOR<[
445
+ * { a: AModule },
446
+ * { b: BModule },
447
+ * { c: CModule },
448
+ * { d: DModule }
449
+ * ]>
450
+ * ```
451
+ * @see https://github.com/Microsoft/TypeScript/issues/14094#issuecomment-723571692
452
+ */
453
+ declare type AllXOR<T extends any[]> = T extends [infer Only] ? Only : T extends [infer A, infer B, ...infer Rest] ? AllXOR<[XOR<A, B>, ...Rest]> : never;
454
+ /**
455
+ * Get the keys of T without any keys of U.
456
+ */
457
+ declare type Without<T, U> = {
458
+ [P in Exclude<keyof T, keyof U>]?: never;
459
+ };
460
+ /**
461
+ * Resolve mapped types and show the derived keys and their types when hovering in
462
+ * IDEs, instead of just showing the names those mapped types are defined with.
463
+ */
464
+ declare type Prettify<T> = {
465
+ [K in keyof T]: T[K];
466
+ } & {};
467
+
468
+ declare type MenuIconProps = {
469
+ lineWidth?: number;
470
+ lineStyle?: React$1.CSSProperties;
471
+ style?: React$1.CSSProperties;
472
+ className?: string;
473
+ domProps?: React$1.HTMLAttributes<HTMLDivElement>;
474
+ reserveSpaceWhenHidden?: boolean;
475
+ menuVisible?: boolean;
476
+ children?: React$1.ReactNode;
477
+ };
478
+ declare function MenuIcon(props: MenuIconProps): React$1.JSX.Element;
479
+
480
+ declare type NonUndefined<T> = T extends undefined ? never : T;
481
+
482
+ declare type InfiniteTableToggleGroupRowFn = (groupKeys: any[]) => void;
483
+ declare type InfiniteTableToggleRowDetailsFn = (id: any) => void;
484
+ declare type InfiniteTableSelectRowFn = (id: any) => void;
485
+ declare type InfiniteTableColumnHeaderParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
486
+ dragging: boolean;
487
+ column: COL_TYPE;
488
+ columnsMap: Map<string, COL_TYPE>;
489
+ columnSortInfo: DataSourceSingleSortInfo<DATA_TYPE> | null;
490
+ columnFilterValue: DataSourceFilterValueItem<DATA_TYPE> | null;
491
+ selectionMode: DataSourcePropSelectionMode;
492
+ allRowsSelected: boolean;
493
+ someRowsSelected: boolean;
494
+ filtered: boolean;
495
+ api: InfiniteTableApi<DATA_TYPE>;
496
+ columnApi: InfiniteTableColumnApi<DATA_TYPE>;
497
+ renderBag: {
498
+ all?: Renderable;
499
+ header: string | number | Renderable;
500
+ sortIcon?: Renderable;
501
+ menuIcon?: Renderable;
502
+ menuIconProps?: MenuIconProps;
503
+ filterIcon?: Renderable;
504
+ selectionCheckBox?: Renderable;
505
+ };
506
+ } & ({
507
+ domRef: InfiniteTableCellProps<DATA_TYPE>['domRef'];
508
+ insideColumnMenu: false;
509
+ } | {
510
+ insideColumnMenu: true;
511
+ });
512
+ declare type InfiniteTableColumnRenderBag = {
513
+ value: string | number | Renderable;
514
+ groupIcon?: Renderable;
515
+ rowDetailsIcon?: Renderable;
516
+ all?: Renderable;
517
+ selectionCheckBox?: Renderable;
518
+ };
519
+ declare type InfiniteTableColumnRenderParamBase<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
520
+ domRef: InfiniteTableCellProps<DATA_TYPE>['domRef'];
521
+ value: string | number | Renderable;
522
+ align: InfiniteTableColumnAlignValues;
523
+ verticalAlign: InfiniteTableColumnVerticalAlignValues;
524
+ renderBag: InfiniteTableColumnRenderBag;
525
+ rowIndex: number;
526
+ rowActive: boolean;
527
+ api: InfiniteTableApi<DATA_TYPE>;
528
+ editError?: Error;
529
+ column: COL_TYPE;
530
+ columnsMap: Map<string, COL_TYPE>;
531
+ fieldsToColumn: Map<keyof DATA_TYPE, COL_TYPE>;
532
+ groupByColumn?: InfiniteTableComputedColumn<DATA_TYPE>;
533
+ toggleCurrentGroupRow: () => void;
534
+ toggleGroupRow: InfiniteTableToggleGroupRowFn;
535
+ toggleCurrentGroupRowSelection: () => void;
536
+ toggleCurrentRowSelection: () => void;
537
+ toggleCurrentRowDetails: () => void;
538
+ toggleRowDetails: InfiniteTableToggleRowDetailsFn;
539
+ expandRowDetails: InfiniteTableToggleRowDetailsFn;
540
+ collapseRowDetails: InfiniteTableToggleRowDetailsFn;
541
+ rowHasSelectedCells: boolean;
542
+ cellSelected: boolean;
543
+ selectCurrentRow: () => void;
544
+ selectRow: InfiniteTableSelectRowFn;
545
+ deselectRow: InfiniteTableSelectRowFn;
546
+ deselectCurrentRow: () => void;
547
+ selectCell: () => void;
548
+ deselectCell: () => void;
549
+ toggleRowSelection: InfiniteTableSelectRowFn;
550
+ toggleGroupRowSelection: InfiniteTableToggleGroupRowFn;
551
+ selectionMode: DataSourcePropSelectionMode | undefined;
552
+ rootGroupBy: DataSourceState<DATA_TYPE>['groupBy'];
553
+ pivotBy?: DataSourceState<DATA_TYPE>['pivotBy'];
554
+ };
555
+ declare type InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnRenderParamBase<DATA_TYPE, COL_TYPE> & InfiniteTableRowInfoDataDiscriminator<DATA_TYPE>;
556
+ declare type InfiniteTableColumnRenderValueParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE>;
557
+ declare type InfiniteTableColumnRowspanParam<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = {
558
+ rowInfo: InfiniteTableRowInfo<DATA_TYPE>;
559
+ data: DATA_TYPE | Partial<DATA_TYPE> | null;
560
+ dataArray: InfiniteTableRowInfo<DATA_TYPE>[];
561
+ rowIndex: number;
562
+ column: COL_TYPE;
563
+ };
564
+ declare type InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
565
+ isGroupRow: true;
566
+ }) => Renderable | null;
567
+ declare type InfiniteTableColumnRenderFunctionForNormalRows<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE> & {
568
+ isGroupRow: false;
569
+ }) => Renderable | null;
570
+ declare type InfiniteTableColumnRenderFunction<DATA_TYPE, COL_TYPE = InfiniteTableComputedColumn<DATA_TYPE>> = (renderParams: InfiniteTableColumnCellContextType<DATA_TYPE, COL_TYPE>) => Renderable | null;
571
+ declare type InfiniteTableColumnHeaderRenderFunction<T> = (headerParams: InfiniteTableColumnHeaderParam<T>) => Renderable;
572
+ declare type InfiniteTableColumnContentFocusable<T> = boolean | InfiniteTableColumnContentFocusableFn<T>;
573
+ declare type InfiniteTableColumnEditable<T> = boolean | InfiniteTableColumnEditableFn<T>;
574
+ declare type InfiniteTableColumnContentFocusableFn<T> = (params: InfiniteTableColumnContentFocusableParams<T>) => boolean;
575
+ declare type InfiniteTableColumnEditableFn<T> = (params: InfiniteTableColumnEditableParams<T>) => boolean | Promise<boolean>;
576
+ declare type InfiniteTableColumnContentFocusableParams<T> = InfiniteTableRowInfoDataDiscriminatorWithColumnAndApis<T>;
577
+ declare type InfiniteTableColumnEditableParams<T> = InfiniteTableColumnContentFocusableParams<T>;
578
+ declare type InfiniteTableColumnGetValueToPersistParams<T> = InfiniteTableColumnEditableParams<T> & {
579
+ initialValue: any;
580
+ };
581
+ declare type InfiniteTableColumnAlignValues = 'start' | 'center' | 'end';
582
+ declare type InfiniteTableColumnVerticalAlignValues = 'start' | 'center' | 'end';
583
+ declare type InfiniteTableColumnHeader<T> = Renderable | InfiniteTableColumnHeaderRenderFunction<T>;
584
+ declare type InfiniteTableDataTypeNames = 'string' | 'number' | 'date' | string;
585
+ declare type InfiniteTableColumnTypeNames = 'string' | 'number' | 'date' | string;
586
+ declare type InfiniteTableColumnStylingFnParams<T> = {
587
+ value: Renderable;
588
+ column: InfiniteTableComputedColumn<T>;
589
+ inEdit: boolean;
590
+ rowHasSelectedCells: boolean;
591
+ editError: InfiniteTableColumnRenderParamBase<T>['editError'];
592
+ } & InfiniteTableRowInfoDataDiscriminator<T>;
593
+ declare type InfiniteTableColumnStyleFn<T> = (params: InfiniteTableColumnStylingFnParams<T>) => undefined | React__default.CSSProperties;
594
+ declare type InfiniteTableColumnHeaderClassNameFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | string;
595
+ declare type InfiniteTableColumnHeaderStyleFn<T> = (params: InfiniteTableColumnHeaderParam<T>) => undefined | React__default.CSSProperties;
596
+ declare type InfiniteTableColumnClassNameFn<T> = (params: InfiniteTableColumnStylingFnParams<T>) => undefined | string;
597
+ declare type InfiniteTableColumnStyle<T> = CSSProperties | InfiniteTableColumnStyleFn<T>;
598
+ declare type InfiniteTableColumnAlign<T> = InfiniteTableColumnAlignValues | InfiniteTableColumnAlignFn<T>;
599
+ declare type InfiniteTableColumnVerticalAlign<T> = InfiniteTableColumnVerticalAlignValues | InfiniteTableColumnVerticalAlignFn<T>;
600
+ declare type InfiniteTableColumnAlignFn<T> = (params: InfiniteTableColumnAlignFnParams<T>) => InfiniteTableColumnAlignValues;
601
+ declare type InfiniteTableColumnAlignFnParams<T> = XOR<{
602
+ isHeader: true;
603
+ column: InfiniteTableComputedColumn<T>;
604
+ }, InfiniteTableColumnStylingFnParams<T> & {
605
+ isHeader: false;
606
+ }>;
607
+ declare type InfiniteTableColumnVerticalAlignFn<T> = (params: InfiniteTableColumnAlignFnParams<T>) => InfiniteTableColumnVerticalAlignValues;
608
+ declare type InfiniteTableColumnHeaderStyle<T> = CSSProperties | InfiniteTableColumnHeaderStyleFn<T>;
609
+ declare type InfiniteTableColumnClassName<T> = string | InfiniteTableColumnClassNameFn<T>;
610
+ declare type InfiniteTableColumnHeaderClassName<T> = string | InfiniteTableColumnHeaderClassNameFn<T>;
611
+ declare type InfiniteTableColumnValueGetterParams<T> = ValueGetterParams<T>;
612
+ declare type InfiniteTableColumnValueFormatterParams<T> = InfiniteTableRowInfoDataDiscriminator<T>;
613
+ declare type InfiniteTableColumnValueGetter<T, VALUE_GETTER_TYPE = string | number | boolean | Date | null | undefined> = (params: InfiniteTableColumnValueGetterParams<T>) => VALUE_GETTER_TYPE;
614
+ declare type InfiniteTableColumnValueFormatter<T, VALUE_FORMATTER_TYPE = string | number | boolean | Date | null | undefined> = (params: InfiniteTableColumnValueFormatterParams<T>) => VALUE_FORMATTER_TYPE;
615
+ declare type InfiniteTableColumnRowspanFn<T> = (params: InfiniteTableColumnRowspanParam<T>) => number;
616
+ declare type InfiniteTableColumnComparer<T> = (a: T, b: T) => number;
617
+ declare type InfiniteTableColumnSortableFn<T> = (context: {
618
+ api: InfiniteTableApi<T>;
619
+ columnApi: InfiniteTableColumnApi<T>;
620
+ column: InfiniteTableComputedColumn<T>;
621
+ columns: Map<string, InfiniteTableComputedColumn<T>>;
622
+ }) => boolean;
623
+ declare type InfiniteTableColumnSortable<T> = boolean | InfiniteTableColumnSortableFn<T>;
624
+ /**
625
+ * Defines a column in the table.
626
+ *
627
+ * @typeParam DATA_TYPE The type of the data in the table.
628
+ *
629
+ * Can be bound to a field which is a `keyof DATA_TYPE`.
630
+ */
631
+ declare type InfiniteTableColumn<DATA_TYPE> = {
632
+ field?: KeyOfNoSymbol<DATA_TYPE>;
633
+ valueGetter?: InfiniteTableColumnValueGetter<DATA_TYPE>;
634
+ defaultSortable?: InfiniteTableColumnSortable<DATA_TYPE>;
635
+ draggable?: boolean;
636
+ resizable?: boolean;
637
+ shouldAcceptEdit?: (params: InfiniteTablePropOnEditAcceptedParams<DATA_TYPE>) => boolean | Error | Promise<boolean | Error>;
638
+ contentFocusable?: InfiniteTableColumnContentFocusable<DATA_TYPE>;
639
+ defaultEditable?: InfiniteTableColumnEditable<DATA_TYPE>;
640
+ getValueToEdit?: (params: InfiniteTableColumnEditableParams<DATA_TYPE>) => any | Promise<any>;
641
+ getValueToPersist?: (params: InfiniteTableColumnGetValueToPersistParams<DATA_TYPE>) => any | Promise<any>;
642
+ comparer?: InfiniteTableColumnComparer<DATA_TYPE>;
643
+ defaultHiddenWhenGroupedBy?: '*' | true | keyof DATA_TYPE | {
644
+ [k in keyof Partial<DATA_TYPE>]: true;
645
+ };
646
+ align?: InfiniteTableColumnAlign<DATA_TYPE>;
647
+ headerAlign?: InfiniteTableColumnAlign<DATA_TYPE>;
648
+ verticalAlign?: InfiniteTableColumnVerticalAlign<DATA_TYPE>;
649
+ columnGroup?: string;
650
+ header?: InfiniteTableColumnHeader<DATA_TYPE>;
651
+ renderHeader?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
652
+ name?: Renderable;
653
+ cssEllipsis?: boolean;
654
+ headerCssEllipsis?: boolean;
655
+ type?: InfiniteTableColumnTypeNames | InfiniteTableColumnTypeNames[] | null;
656
+ dataType?: InfiniteTableDataTypeNames;
657
+ sortType?: string | string[];
658
+ filterType?: string;
659
+ style?: InfiniteTableColumnStyle<DATA_TYPE>;
660
+ headerStyle?: InfiniteTableColumnHeaderStyle<DATA_TYPE>;
661
+ headerClassName?: InfiniteTableColumnHeaderClassName<DATA_TYPE>;
662
+ className?: InfiniteTableColumnClassName<DATA_TYPE>;
663
+ rowspan?: InfiniteTableColumnRowspanFn<DATA_TYPE>;
664
+ render?: InfiniteTableColumnRenderFunction<DATA_TYPE>;
665
+ renderValue?: InfiniteTableColumnRenderFunction<DATA_TYPE>;
666
+ renderGroupValue?: InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE>;
667
+ renderLeafValue?: InfiniteTableColumnRenderFunctionForNormalRows<DATA_TYPE>;
668
+ valueFormatter?: InfiniteTableColumnValueFormatter<DATA_TYPE, Renderable>;
669
+ defaultWidth?: number;
670
+ defaultFlex?: number;
671
+ defaultFilterable?: boolean;
672
+ minWidth?: number;
673
+ maxWidth?: number;
674
+ renderGroupIcon?: InfiniteTableColumnRenderFunctionForGroupRows<DATA_TYPE>;
675
+ renderRowDetailIcon?: boolean | InfiniteTableColumnRenderFunction<DATA_TYPE>;
676
+ renderSortIcon?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
677
+ renderFilterIcon?: InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
678
+ renderSelectionCheckBox?: boolean | InfiniteTableColumnRenderFunction<DATA_TYPE>;
679
+ renderMenuIcon?: boolean | InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
680
+ renderHeaderSelectionCheckBox?: boolean | InfiniteTableColumnHeaderRenderFunction<DATA_TYPE>;
681
+ components?: {
682
+ ColumnCell?: (props: HTMLProps<HTMLDivElement>) => JSX.Element | null;
683
+ HeaderCell?: (props: HTMLProps<HTMLDivElement>) => JSX.Element | null;
684
+ Editor?: () => JSX.Element | null;
685
+ FilterEditor?: () => JSX.Element | null;
686
+ FilterOperatorSwitch?: () => JSX.Element | null;
687
+ MenuIcon?: (props: MenuIconProps) => JSX.Element | null;
748
688
  };
749
- private notifyDestroy;
750
- destroy: () => void;
751
- }
689
+ };
690
+ declare type InfiniteTableGeneratedGroupColumn<T> = Omit<InfiniteTableColumn<T>, 'defaultSortable'> & {
691
+ groupByForColumn: GroupBy<T> | GroupBy<T>[];
692
+ id?: string;
693
+ };
694
+ declare type InfiniteTablePivotColumn<T> = InfiniteTableColumn<T> & ColumnTypeWithInherit<Partial<InfiniteTablePivotFinalColumnVariant<T, any>>>;
695
+ declare type InfiniteTablePivotFinalColumnGroup<DataType, KeyType extends any = any> = InfiniteTableColumnGroup & {
696
+ pivotBy: DataSourcePivotBy<DataType>[];
697
+ pivotTotalColumnGroup?: true;
698
+ pivotGroupKeys: KeyType[];
699
+ pivotByAtIndex: PivotBy<DataType, KeyType>;
700
+ pivotGroupKey: KeyType;
701
+ pivotIndex: number;
702
+ };
703
+ declare type InfiniteTablePivotFinalColumn<DataType, KeyType extends any = any> = InfiniteTableColumn<DataType> & {
704
+ pivotBy: DataSourcePivotBy<DataType>[];
705
+ pivotColumn: true;
706
+ pivotTotalColumn: boolean;
707
+ pivotAggregator: AggregationReducer<DataType, any>;
708
+ pivotAggregatorIndex: number;
709
+ pivotGroupKeys: KeyType[];
710
+ pivotByAtIndex?: PivotBy<DataType, KeyType>;
711
+ pivotIndex: number;
712
+ pivotGroupKey: KeyType;
713
+ };
714
+ declare type InfiniteTablePivotFinalColumnVariant<DataType, KeyType extends any = any> = InfiniteTablePivotFinalColumn<DataType, KeyType>;
715
+ declare type InfiniteTableComputedColumnBase<T> = {
716
+ computedFilterType: string;
717
+ computedSortType: string | string[];
718
+ computedDataType: string;
719
+ computedWidth: number;
720
+ computedFlex: number | null;
721
+ computedMinWidth: number;
722
+ computedMaxWidth: number;
723
+ computedOffset: number;
724
+ computedPinningOffset: number;
725
+ computedAbsoluteOffset: number;
726
+ computedSortInfo: DataSourceSingleSortInfo<T> | null;
727
+ computedSorted: boolean;
728
+ computedSortedAsc: boolean;
729
+ computedSortedDesc: boolean;
730
+ computedSortIndex: number;
731
+ computedVisible: boolean;
732
+ computedVisibleIndex: number;
733
+ computedVisibleIndexInCategory: number;
734
+ computedMultiSort: boolean;
735
+ computedFiltered: boolean;
736
+ computedFilterable: boolean;
737
+ computedFilterValue: DataSourceFilterValueItem<T> | null;
738
+ computedPinned: InfiniteTableColumnPinnedValues;
739
+ computedDraggable: boolean;
740
+ computedResizable: boolean;
741
+ computedFirstInCategory: boolean;
742
+ computedLastInCategory: boolean;
743
+ computedFirst: boolean;
744
+ computedLast: boolean;
745
+ computedEditable: NonUndefined<InfiniteTableColumn<T>['defaultEditable']>;
746
+ computedSortable: NonUndefined<InfiniteTableColumn<T>['defaultSortable']>;
747
+ colType: InfiniteTableColumnType<T>;
748
+ id: string;
749
+ };
750
+ declare type InfiniteTableComputedColumn<T> = InfiniteTableColumn<T> & InfiniteTableComputedColumnBase<T> & Partial<InfiniteTablePivotFinalColumn<T>> & Partial<InfiniteTableGeneratedGroupColumn<T>>;
751
+ declare type InfiniteTableComputedPivotFinalColumn<T> = InfiniteTableComputedColumn<T> & InfiniteTablePivotFinalColumn<T>;
752
752
 
753
753
  declare class RowSizeCache {
754
754
  rowHeight: Map<number, number>;
@@ -1428,6 +1428,7 @@ interface InfiniteTableMappedState<T> {
1428
1428
  autoSizeColumnsKey: InfiniteTableProps<T>['autoSizeColumnsKey'];
1429
1429
  activeRowIndex: InfiniteTableProps<T>['activeRowIndex'];
1430
1430
  activeCellIndex: InfiniteTableProps<T>['activeCellIndex'];
1431
+ onRenderRangeChange: InfiniteTableProps<T>['onRenderRangeChange'];
1431
1432
  scrollStopDelay: NonUndefined<InfiniteTableProps<T>['scrollStopDelay']>;
1432
1433
  onScrollToTop: InfiniteTableProps<T>['onScrollToTop'];
1433
1434
  onScrollToBottom: InfiniteTableProps<T>['onScrollToBottom'];
@@ -2085,9 +2086,10 @@ declare type DataSourceProps<T> = {
2085
2086
  } | {
2086
2087
  selectionMode?: false;
2087
2088
  });
2088
- declare type DataSourcePropsWithChildren<T> = DataSourceProps<T> & {
2089
- children: NonUndefined<DataSourceProps<T>['children']>;
2090
- };
2089
+ /**
2090
+ * @deprecated Use DataSourceProps<T> instead
2091
+ */
2092
+ declare type DataSourcePropsWithChildren<T> = DataSourceProps<T> & {};
2091
2093
  declare type DataSourcePropSortTypes = Record<string, (first: any, second: any) => number>;
2092
2094
  declare type DataSourcePropFilterTypes<T> = Record<string, DataSourceFilterType<T>>;
2093
2095
  declare type DataSourceFilterFunctionParam<T> = {
@@ -4252,7 +4254,7 @@ declare const useManagedDataSource: (props: unknown) => {
4252
4254
  sortInfo: never;
4253
4255
  }>>>;
4254
4256
  };
4255
- declare function DataSource<T>(props: DataSourcePropsWithChildren<T>): React$1.JSX.Element;
4257
+ declare function DataSource<T>(props: DataSourceProps<T>): React$1.JSX.Element;
4256
4258
  declare function useRowInfoReducers(): Record<string, any> | undefined;
4257
4259
  declare function useMasterRowInfo<T = any>(): InfiniteTableRowInfo<T> | undefined;
4258
4260
 
@@ -5200,6 +5202,7 @@ interface InfiniteTableProps<T> {
5200
5202
  scrollStopDelay?: number;
5201
5203
  onScrollStop?: (param: ScrollStopInfo) => void;
5202
5204
  scrollToBottomOffset?: number;
5205
+ onRenderRangeChange?: (range: TableRenderRange) => void;
5203
5206
  defaultColumnOrder?: InfiniteTablePropColumnOrder;
5204
5207
  columnOrder?: InfiniteTablePropColumnOrder;
5205
5208
  onColumnOrderChange?: (columnOrder: InfiniteTablePropColumnOrderNormalized) => void;
@@ -5399,4 +5402,4 @@ declare const components: {
5399
5402
  NumberFilterEditor: typeof NumberFilterEditor;
5400
5403
  };
5401
5404
 
5402
- export { AdvancedAlignable, CellSelectionState, CellSelectionStateObject, ColumnTypeWithInherit, DataClient, DataSource, DataSourceAction, DataSourceActionType, DataSourceAggregationReducer, DataSourceApi, DataSourceCRUDParam, DataSourceComponentActions, DataSourceContextValue, DataSourceData, DataSourceDataParams, DataSourceDataParamsChanges, DataSourceDerivedState, DataSourceFilterFunctionParam, DataSourceFilterOperator, DataSourceFilterOperatorFunction, DataSourceFilterOperatorFunctionParam, DataSourceFilterType, DataSourceFilterValueItem, DataSourceFilterValueItemValueGetter, DataSourceGroupBy, DataSourceGroupRowsList, DataSourceInsertParam, DataSourceLivePaginationCursorFn, DataSourceLivePaginationCursorParams, DataSourceLivePaginationCursorValue, DataSourceMappedState, DataSourceMappings, DataSourceMasterDetailContextValue, DataSourcePivotBy, DataSourcePropAggregationReducers, DataSourcePropCellSelection, DataSourcePropCellSelection_MultiCell, DataSourcePropCellSelection_SingleCell, DataSourcePropFilterFunction, DataSourcePropFilterTypes, DataSourcePropFilterValue, DataSourcePropGroupBy, DataSourcePropGroupRowsStateObject, DataSourcePropIsRowSelected, DataSourcePropLivePaginationCursor, DataSourcePropMultiRowSelectionChangeParamType, DataSourcePropOnCellSelectionChange, DataSourcePropOnCellSelectionChange_MultiCell, DataSourcePropOnCellSelectionChange_SingleCell, DataSourcePropOnRowSelectionChange, DataSourcePropOnRowSelectionChange_MultiRow, DataSourcePropOnRowSelectionChange_SingleRow, DataSourcePropPivotBy, DataSourcePropRowInfoReducers, DataSourcePropRowSelection, DataSourcePropRowSelection_MultiRow, DataSourcePropRowSelection_SingleRow, DataSourcePropSelectionMode, DataSourcePropShouldReloadData, DataSourcePropShouldReloadDataObject, DataSourcePropSortFn, DataSourcePropSortInfo, DataSourcePropSortTypes, DataSourceProps, DataSourcePropsWithChildren, DataSourceRawReducer, DataSourceRemoteData, DataSourceRowInfoReducer, DataSourceSetupState, DataSourceSingleSortInfo, DataSourceSortInfo, DataSourceState, DebugLogger, DeepMap, ElementContainerGetter, FixedSizeSet, GroupRowsState, InfiniteColumnEditorContextType, InfiniteTable, InfiniteTableAction, InfiniteTableActionType, InfiniteTableApi, InfiniteTableClassName, InfiniteTableColumn, InfiniteTableColumnAggregator, InfiniteTableColumnApi, InfiniteTableColumnCellContextType, InfiniteTableColumnComparer, InfiniteTableColumnGroup, InfiniteTableColumnRenderFunctionForGroupRows, InfiniteTableColumnRenderFunctionForNormalRows, InfiniteTableColumnRenderValueParam, InfiniteTableColumnRowspanParam, InfiniteTableColumnSizingOptions, InfiniteTableColumnValueFormatterParams, InfiniteTableColumnValueGetterParams, InfiniteTableComponent, InfiniteTableComputedColumn, InfiniteTableComputedValues, InfiniteTableContextValue, InfiniteTableGroupColumnBase, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePivotColumn, InfiniteTablePropAutoSizeColumnsKey, InfiniteTablePropColumnGroups, InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnVisibility, InfiniteTablePropColumns, InfiniteTablePropComponents, InfiniteTablePropGetCellContextMenuItems, InfiniteTablePropGetColumnMenuItems, InfiniteTablePropGroupColumn, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropHeaderOptions, InfiniteTablePropKeyboardNavigation, InfiniteTablePropKeyboardShorcut, InfiniteTablePropMultiSortBehavior, InfiniteTablePropRowClassName, InfiniteTablePropRowStyle, InfiniteTableProps, InfiniteTableRowClassNameFn, InfiniteTableRowInfo, InfiniteTableRowStyleFn, InfiniteTableState, InfiniteTable_HasGrouping_RowInfoGroup, InfiniteTable_HasGrouping_RowInfoNormal, LazyGroupDataDeepMap, LazyGroupDataItem, LazyRowInfoGroup, Menu, MenuChildrenFnParam, MenuColumn, MenuColumnRenderParam, MenuDecoration, MenuIconProps, MenuItemActionContext, MenuItemDefinition, MenuItemObject, MenuProps, MenuRenderable, MenuRuntimeItem, MenuRuntimeItemSelectable, MenuSeparator, OverlayShowParams, RowDetailCache, RowDetailState, RowDetailStateObject, RowSelectionState, ScrollStopInfo, Scrollbars, ShowOverlayFn, WeakFixedSizeSet, components, debounce, debug, defaultFilterTypes, eventMatchesKeyboardShortcut, defaultFilterTypes as filterTypes, flatten, buildManagedComponent as getComponentStateRoot, group, interceptMap, keyboardShortcuts, multisort, queryKeyToCacheKey, useManagedComponentState as useComponentState, useDataSourceInternal, useDataSourceState, useEffectWithChanges, useEffectWithObject, useGridScroll, useInfiniteColumnCell, useInfiniteColumnEditor, useInfiniteColumnFilterEditor, useInfiniteHeaderCell, useManagedDataSource, useMasterRowInfo, useOverlay, useOverlayPortal, useRowInfoReducers, useVisibleColumnSizes };
5405
+ export { AdvancedAlignable, CellSelectionState, CellSelectionStateObject, ColumnTypeWithInherit, DataClient, DataSource, DataSourceAction, DataSourceActionType, DataSourceAggregationReducer, DataSourceApi, DataSourceCRUDParam, DataSourceComponentActions, DataSourceContextValue, DataSourceData, DataSourceDataParams, DataSourceDataParamsChanges, DataSourceDerivedState, DataSourceFilterFunctionParam, DataSourceFilterOperator, DataSourceFilterOperatorFunction, DataSourceFilterOperatorFunctionParam, DataSourceFilterType, DataSourceFilterValueItem, DataSourceFilterValueItemValueGetter, DataSourceGroupBy, DataSourceGroupRowsList, DataSourceInsertParam, DataSourceLivePaginationCursorFn, DataSourceLivePaginationCursorParams, DataSourceLivePaginationCursorValue, DataSourceMappedState, DataSourceMappings, DataSourceMasterDetailContextValue, DataSourcePivotBy, DataSourcePropAggregationReducers, DataSourcePropCellSelection, DataSourcePropCellSelection_MultiCell, DataSourcePropCellSelection_SingleCell, DataSourcePropFilterFunction, DataSourcePropFilterTypes, DataSourcePropFilterValue, DataSourcePropGroupBy, DataSourcePropGroupRowsStateObject, DataSourcePropIsRowSelected, DataSourcePropLivePaginationCursor, DataSourcePropMultiRowSelectionChangeParamType, DataSourcePropOnCellSelectionChange, DataSourcePropOnCellSelectionChange_MultiCell, DataSourcePropOnCellSelectionChange_SingleCell, DataSourcePropOnRowSelectionChange, DataSourcePropOnRowSelectionChange_MultiRow, DataSourcePropOnRowSelectionChange_SingleRow, DataSourcePropPivotBy, DataSourcePropRowInfoReducers, DataSourcePropRowSelection, DataSourcePropRowSelection_MultiRow, DataSourcePropRowSelection_SingleRow, DataSourcePropSelectionMode, DataSourcePropShouldReloadData, DataSourcePropShouldReloadDataObject, DataSourcePropSortFn, DataSourcePropSortInfo, DataSourcePropSortTypes, DataSourceProps, DataSourcePropsWithChildren, DataSourceRawReducer, DataSourceRemoteData, DataSourceRowInfoReducer, DataSourceSetupState, DataSourceSingleSortInfo, DataSourceSortInfo, DataSourceState, DebugLogger, DeepMap, ElementContainerGetter, FixedSizeSet, GroupRowsState, InfiniteColumnEditorContextType, InfiniteTable, InfiniteTableAction, InfiniteTableActionType, InfiniteTableApi, InfiniteTableClassName, InfiniteTableColumn, InfiniteTableColumnAggregator, InfiniteTableColumnApi, InfiniteTableColumnCellContextType, InfiniteTableColumnComparer, InfiniteTableColumnGroup, InfiniteTableColumnRenderFunctionForGroupRows, InfiniteTableColumnRenderFunctionForNormalRows, InfiniteTableColumnRenderValueParam, InfiniteTableColumnRowspanParam, InfiniteTableColumnSizingOptions, InfiniteTableColumnValueFormatterParams, InfiniteTableColumnValueGetterParams, InfiniteTableComponent, InfiniteTableComputedColumn, InfiniteTableComputedValues, InfiniteTableContextValue, InfiniteTableGroupColumnBase, InfiniteTableGroupColumnFunction, InfiniteTableGroupColumnGetterOptions, InfiniteTablePivotColumn, InfiniteTablePropAutoSizeColumnsKey, InfiniteTablePropColumnGroups, InfiniteTablePropColumnOrder, InfiniteTablePropColumnPinning, InfiniteTablePropColumnSizing, InfiniteTablePropColumnTypes, InfiniteTablePropColumnVisibility, InfiniteTablePropColumns, InfiniteTablePropComponents, InfiniteTablePropGetCellContextMenuItems, InfiniteTablePropGetColumnMenuItems, InfiniteTablePropGroupColumn, InfiniteTablePropGroupRenderStrategy, InfiniteTablePropHeaderOptions, InfiniteTablePropKeyboardNavigation, InfiniteTablePropKeyboardShorcut, InfiniteTablePropMultiSortBehavior, InfiniteTablePropRowClassName, InfiniteTablePropRowStyle, InfiniteTableProps, InfiniteTableRowClassNameFn, InfiniteTableRowInfo, InfiniteTableRowStyleFn, InfiniteTableState, InfiniteTable_HasGrouping_RowInfoGroup, InfiniteTable_HasGrouping_RowInfoNormal, LazyGroupDataDeepMap, LazyGroupDataItem, LazyRowInfoGroup, Menu, MenuChildrenFnParam, MenuColumn, MenuColumnRenderParam, MenuDecoration, MenuIconProps, MenuItemActionContext, MenuItemDefinition, MenuItemObject, MenuProps, MenuRenderable, MenuRuntimeItem, MenuRuntimeItemSelectable, MenuSeparator, OverlayShowParams, RowDetailCache, RowDetailState, RowDetailStateObject, RowSelectionState, ScrollStopInfo, Scrollbars, ShowOverlayFn, TableRenderRange, WeakFixedSizeSet, components, debounce, debug, defaultFilterTypes, eventMatchesKeyboardShortcut, defaultFilterTypes as filterTypes, flatten, buildManagedComponent as getComponentStateRoot, group, interceptMap, keyboardShortcuts, multisort, queryKeyToCacheKey, useManagedComponentState as useComponentState, useDataSourceInternal, useDataSourceState, useEffectWithChanges, useEffectWithObject, useGridScroll, useInfiniteColumnCell, useInfiniteColumnEditor, useInfiniteColumnFilterEditor, useInfiniteHeaderCell, useManagedDataSource, useMasterRowInfo, useOverlay, useOverlayPortal, useRowInfoReducers, useVisibleColumnSizes };
package/index.dev.js CHANGED
@@ -13351,11 +13351,17 @@ function concludeReducer(params) {
13351
13351
  if (state.lazyLoad || state.livePagination) {
13352
13352
  shouldSort = false;
13353
13353
  }
13354
+ const refetchKeyChanged = haveDepsChanged(previousState, state, [
13355
+ "refetchKey"
13356
+ ]);
13354
13357
  let originalDataArrayChanged = haveDepsChanged(previousState, state, [
13355
13358
  "cache",
13356
13359
  "originalDataArray",
13357
13360
  "originalLazyGroupDataChangeDetect"
13358
13361
  ]);
13362
+ if (Array.isArray(state.data) && refetchKeyChanged) {
13363
+ originalDataArrayChanged = true;
13364
+ }
13359
13365
  const lazyLoadGroupDataChange = false;
13360
13366
  if (lazyLoadGroupDataChange) {
13361
13367
  state.originalLazyGroupData = new DeepMap();
@@ -14071,6 +14077,11 @@ See http://infinite-table.com/docs/reference/error-codes#DS001 for more info.`
14071
14077
  if (changes.filterValue && getComponentState().filterMode === "local") {
14072
14078
  return;
14073
14079
  }
14080
+ const originalData = getComponentState().data;
14081
+ if (Array.isArray(originalData) && changes.refetchKey) {
14082
+ actions.originalDataArray = originalData;
14083
+ return;
14084
+ }
14074
14085
  }
14075
14086
  const masterContext = getMasterContext();
14076
14087
  const { isDetail, isDetailReady } = getDetailReady(
@@ -15229,8 +15240,9 @@ var {
15229
15240
  mappedCallbacks: getMappedCallbacks()
15230
15241
  });
15231
15242
  function DataSource(props) {
15243
+ var _a;
15232
15244
  const { DataSource: DataSourceComponent } = useDataSourceInternal(props);
15233
- return /* @__PURE__ */ React51.createElement(DataSourceComponent, null, props.children);
15245
+ return /* @__PURE__ */ React51.createElement(DataSourceComponent, null, (_a = props.children) != null ? _a : null);
15234
15246
  }
15235
15247
  function useRowInfoReducers() {
15236
15248
  const { rowInfoReducerResults } = useDataSourceState();
@@ -16865,6 +16877,12 @@ function useCellRendering(param) {
16865
16877
  scrollTopMaxRef.current = brain.scrollTopMax;
16866
16878
  });
16867
16879
  }, [brain]);
16880
+ (0, import_react40.useEffect)(() => {
16881
+ return brain.onRenderRangeChange((range) => {
16882
+ var _a, _b;
16883
+ (_b = (_a = getState()).onRenderRangeChange) == null ? void 0 : _b.call(_a, range);
16884
+ });
16885
+ }, [brain]);
16868
16886
  (0, import_react40.useEffect)(() => {
16869
16887
  return brain.onScrollStop((scrollPosition) => {
16870
16888
  const { scrollTop: scrollTop2, scrollLeft: scrollLeft2 } = scrollPosition;
@@ -17466,6 +17484,7 @@ var forwardProps4 = (_setupState) => {
17466
17484
  onBlurWithin: 1,
17467
17485
  onContextMenu: 1,
17468
17486
  onCellContextMenu: 1,
17487
+ onRenderRangeChange: 1,
17469
17488
  onScrollToTop: 1,
17470
17489
  onScrollToBottom: 1,
17471
17490
  onScrollStop: 1,
@@ -18824,7 +18843,7 @@ var useLicense = (licenseKey = "") => {
18824
18843
  }
18825
18844
  let valid2 = isValidLicense(licenseKey, {
18826
18845
  publishedAt: 1624970570587,
18827
- version: "4.3.2"
18846
+ version: "4.3.4"
18828
18847
  });
18829
18848
  if (!licenseKey && !valid2 && isInsidePlayground) {
18830
18849
  return true;
package/index.dev.mjs CHANGED
@@ -13314,11 +13314,17 @@ function concludeReducer(params) {
13314
13314
  if (state.lazyLoad || state.livePagination) {
13315
13315
  shouldSort = false;
13316
13316
  }
13317
+ const refetchKeyChanged = haveDepsChanged(previousState, state, [
13318
+ "refetchKey"
13319
+ ]);
13317
13320
  let originalDataArrayChanged = haveDepsChanged(previousState, state, [
13318
13321
  "cache",
13319
13322
  "originalDataArray",
13320
13323
  "originalLazyGroupDataChangeDetect"
13321
13324
  ]);
13325
+ if (Array.isArray(state.data) && refetchKeyChanged) {
13326
+ originalDataArrayChanged = true;
13327
+ }
13322
13328
  const lazyLoadGroupDataChange = false;
13323
13329
  if (lazyLoadGroupDataChange) {
13324
13330
  state.originalLazyGroupData = new DeepMap();
@@ -14034,6 +14040,11 @@ See http://infinite-table.com/docs/reference/error-codes#DS001 for more info.`
14034
14040
  if (changes.filterValue && getComponentState().filterMode === "local") {
14035
14041
  return;
14036
14042
  }
14043
+ const originalData = getComponentState().data;
14044
+ if (Array.isArray(originalData) && changes.refetchKey) {
14045
+ actions.originalDataArray = originalData;
14046
+ return;
14047
+ }
14037
14048
  }
14038
14049
  const masterContext = getMasterContext();
14039
14050
  const { isDetail, isDetailReady } = getDetailReady(
@@ -15197,8 +15208,9 @@ var {
15197
15208
  mappedCallbacks: getMappedCallbacks()
15198
15209
  });
15199
15210
  function DataSource(props) {
15211
+ var _a;
15200
15212
  const { DataSource: DataSourceComponent } = useDataSourceInternal(props);
15201
- return /* @__PURE__ */ React51.createElement(DataSourceComponent, null, props.children);
15213
+ return /* @__PURE__ */ React51.createElement(DataSourceComponent, null, (_a = props.children) != null ? _a : null);
15202
15214
  }
15203
15215
  function useRowInfoReducers() {
15204
15216
  const { rowInfoReducerResults } = useDataSourceState();
@@ -16837,6 +16849,12 @@ function useCellRendering(param) {
16837
16849
  scrollTopMaxRef.current = brain.scrollTopMax;
16838
16850
  });
16839
16851
  }, [brain]);
16852
+ useEffect22(() => {
16853
+ return brain.onRenderRangeChange((range) => {
16854
+ var _a, _b;
16855
+ (_b = (_a = getState()).onRenderRangeChange) == null ? void 0 : _b.call(_a, range);
16856
+ });
16857
+ }, [brain]);
16840
16858
  useEffect22(() => {
16841
16859
  return brain.onScrollStop((scrollPosition) => {
16842
16860
  const { scrollTop: scrollTop2, scrollLeft: scrollLeft2 } = scrollPosition;
@@ -17438,6 +17456,7 @@ var forwardProps4 = (_setupState) => {
17438
17456
  onBlurWithin: 1,
17439
17457
  onContextMenu: 1,
17440
17458
  onCellContextMenu: 1,
17459
+ onRenderRangeChange: 1,
17441
17460
  onScrollToTop: 1,
17442
17461
  onScrollToBottom: 1,
17443
17462
  onScrollStop: 1,
@@ -18796,7 +18815,7 @@ var useLicense = (licenseKey = "") => {
18796
18815
  }
18797
18816
  let valid2 = isValidLicense(licenseKey, {
18798
18817
  publishedAt: 1624970570587,
18799
- version: "4.3.2"
18818
+ version: "4.3.4"
18800
18819
  });
18801
18820
  if (!licenseKey && !valid2 && isInsidePlayground) {
18802
18821
  return true;
package/index.js CHANGED
@@ -13351,11 +13351,17 @@ function concludeReducer(params) {
13351
13351
  if (state.lazyLoad || state.livePagination) {
13352
13352
  shouldSort = false;
13353
13353
  }
13354
+ const refetchKeyChanged = haveDepsChanged(previousState, state, [
13355
+ "refetchKey"
13356
+ ]);
13354
13357
  let originalDataArrayChanged = haveDepsChanged(previousState, state, [
13355
13358
  "cache",
13356
13359
  "originalDataArray",
13357
13360
  "originalLazyGroupDataChangeDetect"
13358
13361
  ]);
13362
+ if (Array.isArray(state.data) && refetchKeyChanged) {
13363
+ originalDataArrayChanged = true;
13364
+ }
13359
13365
  const lazyLoadGroupDataChange = false;
13360
13366
  if (lazyLoadGroupDataChange) {
13361
13367
  state.originalLazyGroupData = new DeepMap();
@@ -14071,6 +14077,11 @@ See http://infinite-table.com/docs/reference/error-codes#DS001 for more info.`
14071
14077
  if (changes.filterValue && getComponentState().filterMode === "local") {
14072
14078
  return;
14073
14079
  }
14080
+ const originalData = getComponentState().data;
14081
+ if (Array.isArray(originalData) && changes.refetchKey) {
14082
+ actions.originalDataArray = originalData;
14083
+ return;
14084
+ }
14074
14085
  }
14075
14086
  const masterContext = getMasterContext();
14076
14087
  const { isDetail, isDetailReady } = getDetailReady(
@@ -15229,8 +15240,9 @@ var {
15229
15240
  mappedCallbacks: getMappedCallbacks()
15230
15241
  });
15231
15242
  function DataSource(props) {
15243
+ var _a;
15232
15244
  const { DataSource: DataSourceComponent } = useDataSourceInternal(props);
15233
- return /* @__PURE__ */ React51.createElement(DataSourceComponent, null, props.children);
15245
+ return /* @__PURE__ */ React51.createElement(DataSourceComponent, null, (_a = props.children) != null ? _a : null);
15234
15246
  }
15235
15247
  function useRowInfoReducers() {
15236
15248
  const { rowInfoReducerResults } = useDataSourceState();
@@ -16865,6 +16877,12 @@ function useCellRendering(param) {
16865
16877
  scrollTopMaxRef.current = brain.scrollTopMax;
16866
16878
  });
16867
16879
  }, [brain]);
16880
+ (0, import_react40.useEffect)(() => {
16881
+ return brain.onRenderRangeChange((range) => {
16882
+ var _a, _b;
16883
+ (_b = (_a = getState()).onRenderRangeChange) == null ? void 0 : _b.call(_a, range);
16884
+ });
16885
+ }, [brain]);
16868
16886
  (0, import_react40.useEffect)(() => {
16869
16887
  return brain.onScrollStop((scrollPosition) => {
16870
16888
  const { scrollTop: scrollTop2, scrollLeft: scrollLeft2 } = scrollPosition;
@@ -17466,6 +17484,7 @@ var forwardProps4 = (_setupState) => {
17466
17484
  onBlurWithin: 1,
17467
17485
  onContextMenu: 1,
17468
17486
  onCellContextMenu: 1,
17487
+ onRenderRangeChange: 1,
17469
17488
  onScrollToTop: 1,
17470
17489
  onScrollToBottom: 1,
17471
17490
  onScrollStop: 1,
@@ -18824,7 +18843,7 @@ var useLicense = (licenseKey = "") => {
18824
18843
  }
18825
18844
  let valid2 = isValidLicense(licenseKey, {
18826
18845
  publishedAt: 1624970570587,
18827
- version: "4.3.2"
18846
+ version: "4.3.4"
18828
18847
  });
18829
18848
  if (!licenseKey && !valid2 && isInsidePlayground) {
18830
18849
  return true;
package/index.mjs CHANGED
@@ -13314,11 +13314,17 @@ function concludeReducer(params) {
13314
13314
  if (state.lazyLoad || state.livePagination) {
13315
13315
  shouldSort = false;
13316
13316
  }
13317
+ const refetchKeyChanged = haveDepsChanged(previousState, state, [
13318
+ "refetchKey"
13319
+ ]);
13317
13320
  let originalDataArrayChanged = haveDepsChanged(previousState, state, [
13318
13321
  "cache",
13319
13322
  "originalDataArray",
13320
13323
  "originalLazyGroupDataChangeDetect"
13321
13324
  ]);
13325
+ if (Array.isArray(state.data) && refetchKeyChanged) {
13326
+ originalDataArrayChanged = true;
13327
+ }
13322
13328
  const lazyLoadGroupDataChange = false;
13323
13329
  if (lazyLoadGroupDataChange) {
13324
13330
  state.originalLazyGroupData = new DeepMap();
@@ -14034,6 +14040,11 @@ See http://infinite-table.com/docs/reference/error-codes#DS001 for more info.`
14034
14040
  if (changes.filterValue && getComponentState().filterMode === "local") {
14035
14041
  return;
14036
14042
  }
14043
+ const originalData = getComponentState().data;
14044
+ if (Array.isArray(originalData) && changes.refetchKey) {
14045
+ actions.originalDataArray = originalData;
14046
+ return;
14047
+ }
14037
14048
  }
14038
14049
  const masterContext = getMasterContext();
14039
14050
  const { isDetail, isDetailReady } = getDetailReady(
@@ -15197,8 +15208,9 @@ var {
15197
15208
  mappedCallbacks: getMappedCallbacks()
15198
15209
  });
15199
15210
  function DataSource(props) {
15211
+ var _a;
15200
15212
  const { DataSource: DataSourceComponent } = useDataSourceInternal(props);
15201
- return /* @__PURE__ */ React51.createElement(DataSourceComponent, null, props.children);
15213
+ return /* @__PURE__ */ React51.createElement(DataSourceComponent, null, (_a = props.children) != null ? _a : null);
15202
15214
  }
15203
15215
  function useRowInfoReducers() {
15204
15216
  const { rowInfoReducerResults } = useDataSourceState();
@@ -16837,6 +16849,12 @@ function useCellRendering(param) {
16837
16849
  scrollTopMaxRef.current = brain.scrollTopMax;
16838
16850
  });
16839
16851
  }, [brain]);
16852
+ useEffect22(() => {
16853
+ return brain.onRenderRangeChange((range) => {
16854
+ var _a, _b;
16855
+ (_b = (_a = getState()).onRenderRangeChange) == null ? void 0 : _b.call(_a, range);
16856
+ });
16857
+ }, [brain]);
16840
16858
  useEffect22(() => {
16841
16859
  return brain.onScrollStop((scrollPosition) => {
16842
16860
  const { scrollTop: scrollTop2, scrollLeft: scrollLeft2 } = scrollPosition;
@@ -17438,6 +17456,7 @@ var forwardProps4 = (_setupState) => {
17438
17456
  onBlurWithin: 1,
17439
17457
  onContextMenu: 1,
17440
17458
  onCellContextMenu: 1,
17459
+ onRenderRangeChange: 1,
17441
17460
  onScrollToTop: 1,
17442
17461
  onScrollToBottom: 1,
17443
17462
  onScrollStop: 1,
@@ -18796,7 +18815,7 @@ var useLicense = (licenseKey = "") => {
18796
18815
  }
18797
18816
  let valid2 = isValidLicense(licenseKey, {
18798
18817
  publishedAt: 1624970570587,
18799
- version: "4.3.2"
18818
+ version: "4.3.4"
18800
18819
  });
18801
18820
  if (!licenseKey && !valid2 && isInsidePlayground) {
18802
18821
  return true;
package/package.json CHANGED
@@ -25,7 +25,7 @@
25
25
  "bugs": {
26
26
  "url": "https://github.com/infinite-table/infinite-react/issues"
27
27
  },
28
- "version": "4.3.2",
28
+ "version": "4.3.4",
29
29
  "main": "index.js",
30
30
  "module": "index.mjs",
31
31
  "typings": "index.d.ts",
@@ -34,5 +34,5 @@
34
34
  },
35
35
  "license": "Commercial & Open Source",
36
36
  "//": "will be updated at build time",
37
- "publishedAt": 1721818271281
37
+ "publishedAt": 1721977959467
38
38
  }