@infinite-table/infinite-react 4.3.3 → 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,410 +116,37 @@ 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
- }
119
+ declare type VoidFn = () => void;
130
120
 
131
- declare type InfiniteTableAction = {
132
- type: InfiniteTableActionType;
133
- payload?: any;
121
+ declare type FixedPosition = false | 'start' | 'end';
122
+ declare type SpanFunction = ({ rowIndex, colIndex, }: {
123
+ rowIndex: number;
124
+ colIndex: number;
125
+ }) => number;
126
+ declare type RenderRangeType = {
127
+ startIndex: number;
128
+ endIndex: number;
134
129
  };
135
-
136
- declare type InfiniteTableBaseCellProps<T> = {
137
- column: InfiniteTableComputedColumn<T>;
138
- align?: InfiniteTableColumnAlignValues;
139
- rowId?: any;
140
- renderChildren: () => Renderable;
130
+ declare type ItemSizeFunction = (index: number) => number;
131
+ declare type MatrixBrainOptions = {
141
132
  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'];
133
+ height: number;
134
+ cols: number;
135
+ rows: number;
136
+ rowHeight: number | ItemSizeFunction;
137
+ colWidth: number | ItemSizeFunction;
138
+ rowspan?: SpanFunction;
139
+ colspan?: SpanFunction;
293
140
  };
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;
141
+ declare type TableRenderRange = {
142
+ start: [number, number];
143
+ end: [number, number];
144
+ rowFixed?: FixedPosition;
145
+ colFixed?: FixedPosition;
302
146
  };
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
- declare type VoidFn = () => void;
493
-
494
- declare type FixedPosition = false | 'start' | 'end';
495
- declare type SpanFunction = ({ rowIndex, colIndex, }: {
496
- rowIndex: number;
497
- colIndex: number;
498
- }) => number;
499
- declare type RenderRangeType = {
500
- startIndex: number;
501
- endIndex: number;
502
- };
503
- declare type ItemSizeFunction = (index: number) => number;
504
- declare type MatrixBrainOptions = {
505
- width: number;
506
- height: number;
507
- cols: number;
508
- rows: number;
509
- rowHeight: number | ItemSizeFunction;
510
- colWidth: number | ItemSizeFunction;
511
- rowspan?: SpanFunction;
512
- colspan?: SpanFunction;
513
- };
514
- declare type TableRenderRange = {
515
- start: [number, number];
516
- end: [number, number];
517
- rowFixed?: FixedPosition;
518
- colFixed?: FixedPosition;
519
- };
520
- declare type WhichDirection = {
521
- horizontal?: boolean;
522
- vertical?: boolean;
147
+ declare type WhichDirection = {
148
+ horizontal?: boolean;
149
+ vertical?: boolean;
523
150
  };
524
151
  declare type FnOnRenderRangeChange = (range: TableRenderRange) => void;
525
152
  declare type FnOnDirectionalRenderRangeChange = (range: [number, number]) => void;
@@ -750,6 +377,379 @@ declare class MatrixBrain extends Logger {
750
377
  destroy: () => void;
751
378
  }
752
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;
688
+ };
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
+
753
753
  declare class RowSizeCache {
754
754
  rowHeight: Map<number, number>;
755
755
  rowDetailHeight: 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'];
@@ -5201,6 +5202,7 @@ interface InfiniteTableProps<T> {
5201
5202
  scrollStopDelay?: number;
5202
5203
  onScrollStop?: (param: ScrollStopInfo) => void;
5203
5204
  scrollToBottomOffset?: number;
5205
+ onRenderRangeChange?: (range: TableRenderRange) => void;
5204
5206
  defaultColumnOrder?: InfiniteTablePropColumnOrder;
5205
5207
  columnOrder?: InfiniteTablePropColumnOrder;
5206
5208
  onColumnOrderChange?: (columnOrder: InfiniteTablePropColumnOrderNormalized) => void;
@@ -5400,4 +5402,4 @@ declare const components: {
5400
5402
  NumberFilterEditor: typeof NumberFilterEditor;
5401
5403
  };
5402
5404
 
5403
- 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(
@@ -16866,6 +16877,12 @@ function useCellRendering(param) {
16866
16877
  scrollTopMaxRef.current = brain.scrollTopMax;
16867
16878
  });
16868
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]);
16869
16886
  (0, import_react40.useEffect)(() => {
16870
16887
  return brain.onScrollStop((scrollPosition) => {
16871
16888
  const { scrollTop: scrollTop2, scrollLeft: scrollLeft2 } = scrollPosition;
@@ -17467,6 +17484,7 @@ var forwardProps4 = (_setupState) => {
17467
17484
  onBlurWithin: 1,
17468
17485
  onContextMenu: 1,
17469
17486
  onCellContextMenu: 1,
17487
+ onRenderRangeChange: 1,
17470
17488
  onScrollToTop: 1,
17471
17489
  onScrollToBottom: 1,
17472
17490
  onScrollStop: 1,
@@ -18825,7 +18843,7 @@ var useLicense = (licenseKey = "") => {
18825
18843
  }
18826
18844
  let valid2 = isValidLicense(licenseKey, {
18827
18845
  publishedAt: 1624970570587,
18828
- version: "4.3.3"
18846
+ version: "4.3.4"
18829
18847
  });
18830
18848
  if (!licenseKey && !valid2 && isInsidePlayground) {
18831
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(
@@ -16838,6 +16849,12 @@ function useCellRendering(param) {
16838
16849
  scrollTopMaxRef.current = brain.scrollTopMax;
16839
16850
  });
16840
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]);
16841
16858
  useEffect22(() => {
16842
16859
  return brain.onScrollStop((scrollPosition) => {
16843
16860
  const { scrollTop: scrollTop2, scrollLeft: scrollLeft2 } = scrollPosition;
@@ -17439,6 +17456,7 @@ var forwardProps4 = (_setupState) => {
17439
17456
  onBlurWithin: 1,
17440
17457
  onContextMenu: 1,
17441
17458
  onCellContextMenu: 1,
17459
+ onRenderRangeChange: 1,
17442
17460
  onScrollToTop: 1,
17443
17461
  onScrollToBottom: 1,
17444
17462
  onScrollStop: 1,
@@ -18797,7 +18815,7 @@ var useLicense = (licenseKey = "") => {
18797
18815
  }
18798
18816
  let valid2 = isValidLicense(licenseKey, {
18799
18817
  publishedAt: 1624970570587,
18800
- version: "4.3.3"
18818
+ version: "4.3.4"
18801
18819
  });
18802
18820
  if (!licenseKey && !valid2 && isInsidePlayground) {
18803
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(
@@ -16866,6 +16877,12 @@ function useCellRendering(param) {
16866
16877
  scrollTopMaxRef.current = brain.scrollTopMax;
16867
16878
  });
16868
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]);
16869
16886
  (0, import_react40.useEffect)(() => {
16870
16887
  return brain.onScrollStop((scrollPosition) => {
16871
16888
  const { scrollTop: scrollTop2, scrollLeft: scrollLeft2 } = scrollPosition;
@@ -17467,6 +17484,7 @@ var forwardProps4 = (_setupState) => {
17467
17484
  onBlurWithin: 1,
17468
17485
  onContextMenu: 1,
17469
17486
  onCellContextMenu: 1,
17487
+ onRenderRangeChange: 1,
17470
17488
  onScrollToTop: 1,
17471
17489
  onScrollToBottom: 1,
17472
17490
  onScrollStop: 1,
@@ -18825,7 +18843,7 @@ var useLicense = (licenseKey = "") => {
18825
18843
  }
18826
18844
  let valid2 = isValidLicense(licenseKey, {
18827
18845
  publishedAt: 1624970570587,
18828
- version: "4.3.3"
18846
+ version: "4.3.4"
18829
18847
  });
18830
18848
  if (!licenseKey && !valid2 && isInsidePlayground) {
18831
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(
@@ -16838,6 +16849,12 @@ function useCellRendering(param) {
16838
16849
  scrollTopMaxRef.current = brain.scrollTopMax;
16839
16850
  });
16840
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]);
16841
16858
  useEffect22(() => {
16842
16859
  return brain.onScrollStop((scrollPosition) => {
16843
16860
  const { scrollTop: scrollTop2, scrollLeft: scrollLeft2 } = scrollPosition;
@@ -17439,6 +17456,7 @@ var forwardProps4 = (_setupState) => {
17439
17456
  onBlurWithin: 1,
17440
17457
  onContextMenu: 1,
17441
17458
  onCellContextMenu: 1,
17459
+ onRenderRangeChange: 1,
17442
17460
  onScrollToTop: 1,
17443
17461
  onScrollToBottom: 1,
17444
17462
  onScrollStop: 1,
@@ -18797,7 +18815,7 @@ var useLicense = (licenseKey = "") => {
18797
18815
  }
18798
18816
  let valid2 = isValidLicense(licenseKey, {
18799
18817
  publishedAt: 1624970570587,
18800
- version: "4.3.3"
18818
+ version: "4.3.4"
18801
18819
  });
18802
18820
  if (!licenseKey && !valid2 && isInsidePlayground) {
18803
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.3",
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": 1721832132084
37
+ "publishedAt": 1721977959467
38
38
  }