material-react-table 0.9.5 → 0.10.0

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.
Files changed (109) hide show
  1. package/README.md +2 -0
  2. package/dist/MaterialReactTable.d.ts +144 -128
  3. package/dist/body/MRT_TableBody.d.ts +1 -1
  4. package/dist/body/MRT_TableBodyCell.d.ts +1 -1
  5. package/dist/body/MRT_TableBodyRow.d.ts +1 -1
  6. package/dist/body/MRT_TableDetailPanel.d.ts +1 -1
  7. package/dist/buttons/MRT_ColumnPinningButtons.d.ts +1 -1
  8. package/dist/buttons/MRT_CopyButton.d.ts +1 -1
  9. package/dist/buttons/MRT_EditActionButtons.d.ts +1 -1
  10. package/dist/buttons/MRT_ExpandAllButton.d.ts +1 -1
  11. package/dist/buttons/MRT_ExpandButton.d.ts +1 -1
  12. package/dist/buttons/MRT_FullScreenToggleButton.d.ts +1 -1
  13. package/dist/buttons/MRT_GrabHandleButton.d.ts +1 -1
  14. package/dist/buttons/MRT_ShowHideColumnsButton.d.ts +1 -1
  15. package/dist/buttons/MRT_ToggleColumnActionMenuButton.d.ts +1 -1
  16. package/dist/buttons/MRT_ToggleDensePaddingButton.d.ts +1 -1
  17. package/dist/buttons/MRT_ToggleFiltersButton.d.ts +1 -1
  18. package/dist/buttons/MRT_ToggleGlobalFilterButton.d.ts +1 -1
  19. package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +1 -1
  20. package/dist/footer/MRT_TableFooter.d.ts +1 -1
  21. package/dist/footer/MRT_TableFooterCell.d.ts +1 -1
  22. package/dist/footer/MRT_TableFooterRow.d.ts +1 -1
  23. package/dist/head/MRT_DraggableTableHeadCell.d.ts +1 -1
  24. package/dist/head/MRT_TableHead.d.ts +1 -1
  25. package/dist/head/MRT_TableHeadCell.d.ts +1 -1
  26. package/dist/head/MRT_TableHeadCellFilterContainer.d.ts +1 -1
  27. package/dist/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
  28. package/dist/head/MRT_TableHeadCellResizeHandle.d.ts +1 -1
  29. package/dist/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  30. package/dist/head/MRT_TableHeadRow.d.ts +1 -1
  31. package/dist/inputs/MRT_EditCellTextField.d.ts +1 -1
  32. package/dist/inputs/MRT_FilterRangeFields.d.ts +1 -1
  33. package/dist/inputs/MRT_FilterTextField.d.ts +1 -1
  34. package/dist/inputs/MRT_SearchTextField.d.ts +1 -1
  35. package/dist/inputs/MRT_SelectCheckbox.d.ts +1 -1
  36. package/dist/material-react-table.cjs.development.js +569 -573
  37. package/dist/material-react-table.cjs.development.js.map +1 -1
  38. package/dist/material-react-table.cjs.production.min.js +1 -1
  39. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  40. package/dist/material-react-table.esm.js +569 -573
  41. package/dist/material-react-table.esm.js.map +1 -1
  42. package/dist/menus/MRT_ColumnActionMenu.d.ts +1 -1
  43. package/dist/menus/MRT_FilterOptionMenu.d.ts +1 -1
  44. package/dist/menus/MRT_RowActionMenu.d.ts +1 -1
  45. package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +1 -1
  46. package/dist/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
  47. package/dist/table/MRT_Table.d.ts +1 -1
  48. package/dist/table/MRT_TableContainer.d.ts +1 -1
  49. package/dist/table/MRT_TablePaper.d.ts +2 -2
  50. package/dist/toolbar/MRT_LinearProgressBar.d.ts +1 -1
  51. package/dist/toolbar/MRT_TablePagination.d.ts +1 -1
  52. package/dist/toolbar/MRT_ToolbarAlertBanner.d.ts +1 -1
  53. package/dist/toolbar/MRT_ToolbarBottom.d.ts +1 -1
  54. package/dist/toolbar/MRT_ToolbarInternalButtons.d.ts +1 -1
  55. package/dist/toolbar/MRT_ToolbarTop.d.ts +1 -1
  56. package/dist/utils.d.ts +2 -2
  57. package/package.json +1 -1
  58. package/src/MaterialReactTable.tsx +159 -157
  59. package/src/body/MRT_TableBody.tsx +12 -9
  60. package/src/body/MRT_TableBodyCell.tsx +15 -21
  61. package/src/body/MRT_TableBodyRow.tsx +7 -7
  62. package/src/body/MRT_TableDetailPanel.tsx +14 -11
  63. package/src/buttons/MRT_ColumnPinningButtons.tsx +3 -6
  64. package/src/buttons/MRT_CopyButton.tsx +5 -9
  65. package/src/buttons/MRT_EditActionButtons.tsx +4 -4
  66. package/src/buttons/MRT_ExpandAllButton.tsx +3 -3
  67. package/src/buttons/MRT_ExpandButton.tsx +4 -4
  68. package/src/buttons/MRT_FullScreenToggleButton.tsx +4 -4
  69. package/src/buttons/MRT_GrabHandleButton.tsx +3 -3
  70. package/src/buttons/MRT_ShowHideColumnsButton.tsx +4 -7
  71. package/src/buttons/MRT_ToggleColumnActionMenuButton.tsx +6 -6
  72. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +4 -4
  73. package/src/buttons/MRT_ToggleFiltersButton.tsx +4 -7
  74. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +5 -5
  75. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +6 -9
  76. package/src/footer/MRT_TableFooter.tsx +5 -5
  77. package/src/footer/MRT_TableFooterCell.tsx +6 -6
  78. package/src/footer/MRT_TableFooterRow.tsx +5 -8
  79. package/src/head/MRT_DraggableTableHeadCell.tsx +4 -7
  80. package/src/head/MRT_TableHead.tsx +5 -5
  81. package/src/head/MRT_TableHeadCell.tsx +15 -25
  82. package/src/head/MRT_TableHeadCellFilterContainer.tsx +6 -7
  83. package/src/head/MRT_TableHeadCellFilterLabel.tsx +3 -3
  84. package/src/head/MRT_TableHeadCellResizeHandle.tsx +3 -3
  85. package/src/head/MRT_TableHeadCellSortLabel.tsx +3 -6
  86. package/src/head/MRT_TableHeadRow.tsx +6 -6
  87. package/src/inputs/MRT_EditCellTextField.tsx +10 -10
  88. package/src/inputs/MRT_FilterRangeFields.tsx +5 -13
  89. package/src/inputs/MRT_FilterTextField.tsx +10 -14
  90. package/src/inputs/MRT_SearchTextField.tsx +6 -6
  91. package/src/inputs/MRT_SelectCheckbox.tsx +10 -16
  92. package/src/menus/MRT_ColumnActionMenu.tsx +5 -5
  93. package/src/menus/MRT_FilterOptionMenu.tsx +33 -33
  94. package/src/menus/MRT_RowActionMenu.tsx +4 -4
  95. package/src/menus/MRT_ShowHideColumnsMenu.tsx +6 -6
  96. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +7 -10
  97. package/src/table/MRT_Table.tsx +14 -9
  98. package/src/table/MRT_TableContainer.tsx +16 -12
  99. package/src/table/MRT_TablePaper.tsx +8 -14
  100. package/src/table/MRT_TableRoot.tsx +25 -30
  101. package/src/toolbar/MRT_LinearProgressBar.tsx +4 -7
  102. package/src/toolbar/MRT_TablePagination.tsx +4 -4
  103. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +6 -8
  104. package/src/toolbar/MRT_ToolbarBottom.tsx +8 -8
  105. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +10 -12
  106. package/src/toolbar/MRT_ToolbarTop.tsx +11 -10
  107. package/src/utils.ts +2 -2
  108. package/dist/enums.d.ts +0 -13
  109. package/src/enums.ts +0 -13
@@ -34,6 +34,7 @@ import {
34
34
  FilterFnOption,
35
35
  Header,
36
36
  HeaderGroup,
37
+ OnChangeFn,
37
38
  Overwrite,
38
39
  ReactTableGenerics,
39
40
  Row,
@@ -43,9 +44,9 @@ import {
43
44
  UseTableInstanceOptions,
44
45
  VisibilityState,
45
46
  } from '@tanstack/react-table';
47
+ import { Options as VirtualizerOptions } from 'react-virtual';
46
48
  import { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';
47
49
  import { MRT_Default_Icons, MRT_Icons } from './icons';
48
- import { MRT_FILTER_OPTION } from './enums';
49
50
  import { MRT_TableRoot } from './table/MRT_TableRoot';
50
51
 
51
52
  export type MRT_TableOptions<D extends Record<string, any> = {}> = Partial<
@@ -119,7 +120,7 @@ export type MRT_TableInstance<D extends Record<string, any> = {}> = Omit<
119
120
  [key: string]: MRT_FilterFn;
120
121
  }>
121
122
  >;
122
- setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterFn<D>>>;
123
+ setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterFn>>;
123
124
  setIsDensePadding: Dispatch<SetStateAction<boolean>>;
124
125
  setIsFullScreen: Dispatch<SetStateAction<boolean>>;
125
126
  setShowFilters: Dispatch<SetStateAction<boolean>>;
@@ -142,48 +143,61 @@ export type MRT_TableState<D extends Record<string, any> = {}> = TableState & {
142
143
 
143
144
  export type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<
144
145
  ColumnDef<D>,
145
- 'accessorFN' | 'header' | 'footer' | 'columns' | 'filterFn'
146
+ | 'accessorFn'
147
+ | 'aggregatedCell'
148
+ | 'header'
149
+ | 'footer'
150
+ | 'columns'
151
+ | 'filterFn'
152
+ | 'cell'
146
153
  > & {
154
+ AggregatedCell?: ({
155
+ cell,
156
+ instance,
157
+ }: {
158
+ cell: MRT_Cell<D>;
159
+ instance: MRT_TableInstance<D>;
160
+ }) => ReactNode;
147
161
  Cell?: ({
148
162
  cell,
149
- tableInstance,
163
+ instance,
150
164
  }: {
151
165
  cell: MRT_Cell<D>;
152
- tableInstance: MRT_TableInstance<D>;
166
+ instance: MRT_TableInstance<D>;
153
167
  }) => ReactNode;
154
168
  Edit?: ({
155
169
  cell,
156
- tableInstance,
170
+ instance,
157
171
  }: {
158
172
  cell: MRT_Cell<D>;
159
- tableInstance: MRT_TableInstance<D>;
173
+ instance: MRT_TableInstance<D>;
160
174
  }) => ReactNode;
161
175
  Filter?: ({
162
176
  header,
163
- tableInstance,
177
+ instance,
164
178
  }: {
165
179
  header: MRT_Header<D>;
166
- tableInstance: MRT_TableInstance<D>;
180
+ instance: MRT_TableInstance<D>;
167
181
  }) => ReactNode;
168
182
  Footer?:
169
183
  | ReactNode
170
184
  | (({
171
185
  footer,
172
- tableInstance,
186
+ instance,
173
187
  }: {
174
188
  footer: MRT_Header<D>;
175
- tableInstance: MRT_TableInstance<D>;
189
+ instance: MRT_TableInstance<D>;
176
190
  }) => ReactNode);
177
191
  Header?:
178
192
  | ReactNode
179
193
  | (({
180
194
  header,
181
- tableInstance,
195
+ instance,
182
196
  }: {
183
197
  header: MRT_Header<D>;
184
- tableInstance: MRT_TableInstance<D>;
198
+ instance: MRT_TableInstance<D>;
185
199
  }) => ReactNode);
186
- accessorFN?: (row: D) => any;
200
+ accessorFn?: (row: D) => any;
187
201
  columns?: MRT_ColumnDef<D>[];
188
202
  enableClickToCopy?: boolean;
189
203
  enableColumnActions?: boolean;
@@ -198,83 +212,83 @@ export type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<
198
212
  muiTableBodyCellCopyButtonProps?:
199
213
  | ButtonProps
200
214
  | (({
201
- tableInstance,
215
+ instance,
202
216
  cell,
203
217
  }: {
204
- tableInstance: MRT_TableInstance;
218
+ instance: MRT_TableInstance;
205
219
  cell: MRT_Cell<D>;
206
220
  }) => ButtonProps);
207
221
  muiTableBodyCellEditTextFieldProps?:
208
222
  | TextFieldProps
209
223
  | (({
210
- tableInstance,
224
+ instance,
211
225
  cell,
212
226
  }: {
213
- tableInstance: MRT_TableInstance;
227
+ instance: MRT_TableInstance;
214
228
  cell: MRT_Cell<D>;
215
229
  }) => TextFieldProps);
216
230
  muiTableBodyCellProps?:
217
231
  | TableCellProps
218
232
  | (({
219
- tableInstance,
233
+ instance,
220
234
  cell,
221
235
  }: {
222
- tableInstance: MRT_TableInstance;
236
+ instance: MRT_TableInstance;
223
237
  cell: MRT_Cell<D>;
224
238
  }) => TableCellProps);
225
239
  muiTableFooterCellProps?:
226
240
  | TableCellProps
227
241
  | (({
228
- tableInstance,
242
+ instance,
229
243
  column,
230
244
  }: {
231
- tableInstance: MRT_TableInstance;
245
+ instance: MRT_TableInstance;
232
246
  column: MRT_Column<D>;
233
247
  }) => TableCellProps);
234
248
  muiTableHeadCellColumnActionsButtonProps?:
235
249
  | IconButtonProps
236
250
  | (({
237
- tableInstance,
251
+ instance,
238
252
  column,
239
253
  }: {
240
- tableInstance: MRT_TableInstance;
254
+ instance: MRT_TableInstance;
241
255
  column: MRT_Column<D>;
242
256
  }) => IconButtonProps);
243
257
  muiTableHeadCellFilterTextFieldProps?:
244
258
  | TextFieldProps
245
259
  | (({
246
- tableInstance,
260
+ instance,
247
261
  column,
248
262
  }: {
249
- tableInstance: MRT_TableInstance;
263
+ instance: MRT_TableInstance;
250
264
  column: MRT_Column<D>;
251
265
  }) => TextFieldProps);
252
266
  muiTableHeadCellProps?:
253
267
  | TableCellProps
254
268
  | (({
255
- tableInstance,
269
+ instance,
256
270
  column,
257
271
  }: {
258
- tableInstance: MRT_TableInstance;
272
+ instance: MRT_TableInstance;
259
273
  column: MRT_Column<D>;
260
274
  }) => TableCellProps);
261
275
  onMrtCellEditBlur?: ({
262
276
  cell,
263
277
  event,
264
- tableInstance,
278
+ instance,
265
279
  }: {
266
280
  event: FocusEvent<HTMLInputElement>;
267
281
  cell: MRT_Cell<D>;
268
- tableInstance: MRT_TableInstance<D>;
282
+ instance: MRT_TableInstance<D>;
269
283
  }) => void;
270
284
  onMrtCellEditChange?: ({
271
285
  cell,
272
286
  event,
273
- tableInstance,
287
+ instance,
274
288
  }: {
275
289
  event: ChangeEvent<HTMLInputElement>;
276
290
  cell: MRT_Cell<D>;
277
- tableInstance: MRT_TableInstance<D>;
291
+ instance: MRT_TableInstance<D>;
278
292
  }) => void;
279
293
  onMrtFilterValueChange?: ({
280
294
  column,
@@ -330,9 +344,24 @@ export type MRT_Cell<D extends Record<string, any> = {}> = Omit<
330
344
  row: MRT_Row<D>;
331
345
  };
332
346
 
333
- export type MRT_FilterFn<D extends Record<string, any> = {}> =
347
+ export type MRT_FILTER_OPTION =
348
+ | 'between'
349
+ | 'contains'
350
+ | 'empty'
351
+ | 'endsWith'
352
+ | 'equals'
353
+ | 'fuzzy'
354
+ | 'greaterThan'
355
+ | 'greaterThanOrEqual'
356
+ | 'lessThan'
357
+ | 'lessThanOrEqual'
358
+ | 'notEmpty'
359
+ | 'notEquals'
360
+ | 'startsWith'
361
+ | FilterFnOption<TableGenerics>;
362
+
363
+ export type MRT_FilterFn =
334
364
  | FilterFn<TableGenerics>
335
- | FilterFnOption<D>
336
365
  | MRT_FILTER_OPTION
337
366
  | number
338
367
  | string
@@ -367,248 +396,218 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
367
396
  muiLinearProgressProps?:
368
397
  | LinearProgressProps
369
398
  | (({
370
- tableInstance,
399
+ instance,
371
400
  }: {
372
- tableInstance: MRT_TableInstance;
401
+ instance: MRT_TableInstance;
373
402
  }) => LinearProgressProps);
374
403
  muiSearchTextFieldProps?:
375
404
  | TextFieldProps
376
- | (({
377
- tableInstance,
378
- }: {
379
- tableInstance: MRT_TableInstance;
380
- }) => TextFieldProps);
405
+ | (({ instance }: { instance: MRT_TableInstance }) => TextFieldProps);
381
406
  muiSelectCheckboxProps?:
382
407
  | CheckboxProps
383
408
  | (({
384
- tableInstance,
409
+ instance,
385
410
  isSelectAll,
386
411
  row,
387
412
  }: {
388
- tableInstance: MRT_TableInstance;
413
+ instance: MRT_TableInstance;
389
414
  isSelectAll: boolean;
390
415
  row?: MRT_Row<D>;
391
416
  }) => CheckboxProps);
392
417
  muiTableBodyCellCopyButtonProps?:
393
418
  | ButtonProps
394
419
  | (({
395
- tableInstance,
420
+ instance,
396
421
  cell,
397
422
  }: {
398
- tableInstance: MRT_TableInstance;
423
+ instance: MRT_TableInstance;
399
424
  cell: MRT_Cell<D>;
400
425
  }) => ButtonProps);
401
426
  muiTableBodyCellEditTextFieldProps?:
402
427
  | TextFieldProps
403
428
  | (({
404
- tableInstance,
429
+ instance,
405
430
  cell,
406
431
  }: {
407
- tableInstance: MRT_TableInstance;
432
+ instance: MRT_TableInstance;
408
433
  cell: MRT_Cell<D>;
409
434
  }) => TextFieldProps);
410
435
  muiTableBodyCellProps?:
411
436
  | TableCellProps
412
437
  | (({
413
- tableInstance,
438
+ instance,
414
439
  cell,
415
440
  }: {
416
- tableInstance: MRT_TableInstance;
441
+ instance: MRT_TableInstance;
417
442
  cell: MRT_Cell<D>;
418
443
  }) => TableCellProps);
419
444
  muiTableBodyCellSkeletonProps?:
420
445
  | SkeletonProps
421
446
  | (({
422
- tableInstance,
447
+ instance,
423
448
  cell,
424
449
  }: {
425
- tableInstance: MRT_TableInstance;
450
+ instance: MRT_TableInstance;
426
451
  cell: MRT_Cell<D>;
427
452
  }) => SkeletonProps);
428
453
  muiTableBodyProps?:
429
454
  | TableBodyProps
430
- | (({
431
- tableInstance,
432
- }: {
433
- tableInstance: MRT_TableInstance;
434
- }) => TableBodyProps);
455
+ | (({ instance }: { instance: MRT_TableInstance }) => TableBodyProps);
435
456
  muiTableBodyRowProps?:
436
457
  | TableRowProps
437
458
  | (({
438
- tableInstance,
459
+ instance,
439
460
  row,
440
461
  }: {
441
- tableInstance: MRT_TableInstance;
462
+ instance: MRT_TableInstance;
442
463
  row: MRT_Row<D>;
443
464
  }) => TableRowProps);
444
465
  muiTableContainerProps?:
445
466
  | TableContainerProps
446
467
  | (({
447
- tableInstance,
468
+ instance,
448
469
  }: {
449
- tableInstance: MRT_TableInstance;
470
+ instance: MRT_TableInstance;
450
471
  }) => TableContainerProps);
451
472
  muiTableDetailPanelProps?:
452
473
  | TableCellProps
453
474
  | (({
454
- tableInstance,
475
+ instance,
455
476
  row,
456
477
  }: {
457
- tableInstance: MRT_TableInstance;
478
+ instance: MRT_TableInstance;
458
479
  row: MRT_Row<D>;
459
480
  }) => TableCellProps);
460
481
  muiTableFooterCellProps?:
461
482
  | TableCellProps
462
483
  | (({
463
- tableInstance,
484
+ instance,
464
485
  column,
465
486
  }: {
466
- tableInstance: MRT_TableInstance;
487
+ instance: MRT_TableInstance;
467
488
  column: MRT_Column<D>;
468
489
  }) => TableCellProps);
469
490
  muiTableFooterProps?:
470
491
  | TableFooterProps
471
- | (({
472
- tableInstance,
473
- }: {
474
- tableInstance: MRT_TableInstance;
475
- }) => TableFooterProps);
492
+ | (({ instance }: { instance: MRT_TableInstance }) => TableFooterProps);
476
493
  muiTableFooterRowProps?:
477
494
  | TableRowProps
478
495
  | (({
479
- tableInstance,
496
+ instance,
480
497
  footerGroup,
481
498
  }: {
482
- tableInstance: MRT_TableInstance;
499
+ instance: MRT_TableInstance;
483
500
  footerGroup: MRT_HeaderGroup<D>;
484
501
  }) => TableRowProps);
485
502
  muiTableHeadCellColumnActionsButtonProps?:
486
503
  | IconButtonProps
487
504
  | (({
488
- tableInstance,
505
+ instance,
489
506
  column,
490
507
  }: {
491
- tableInstance: MRT_TableInstance;
508
+ instance: MRT_TableInstance;
492
509
  column: MRT_Column<D>;
493
510
  }) => IconButtonProps);
494
511
  muiTableHeadCellFilterTextFieldProps?:
495
512
  | TextFieldProps
496
513
  | (({
497
- tableInstance,
514
+ instance,
498
515
  column,
499
516
  }: {
500
- tableInstance: MRT_TableInstance;
517
+ instance: MRT_TableInstance;
501
518
  column: MRT_Column<D>;
502
519
  }) => TextFieldProps);
503
520
  muiTableHeadCellProps?:
504
521
  | TableCellProps
505
522
  | (({
506
- tableInstance,
523
+ instance,
507
524
  column,
508
525
  }: {
509
- tableInstance: MRT_TableInstance;
526
+ instance: MRT_TableInstance;
510
527
  column: MRT_Column<D>;
511
528
  }) => TableCellProps);
512
529
  muiTableHeadProps?:
513
530
  | TableHeadProps
514
- | (({
515
- tableInstance,
516
- }: {
517
- tableInstance: MRT_TableInstance;
518
- }) => TableHeadProps);
531
+ | (({ instance }: { instance: MRT_TableInstance }) => TableHeadProps);
519
532
  muiTableHeadRowProps?:
520
533
  | TableRowProps
521
534
  | (({
522
- tableInstance,
535
+ instance,
523
536
  headerGroup,
524
537
  }: {
525
- tableInstance: MRT_TableInstance;
538
+ instance: MRT_TableInstance;
526
539
  headerGroup: MRT_HeaderGroup<D>;
527
540
  }) => TableRowProps);
528
541
  muiTablePaginationProps?:
529
542
  | Partial<TablePaginationProps>
530
543
  | (({
531
- tableInstance,
544
+ instance,
532
545
  }: {
533
- tableInstance: MRT_TableInstance;
546
+ instance: MRT_TableInstance;
534
547
  }) => Partial<TablePaginationProps>);
535
548
  muiTablePaperProps?:
536
549
  | PaperProps
537
- | (({
538
- tableInstance,
539
- }: {
540
- tableInstance: MRT_TableInstance;
541
- }) => PaperProps);
550
+ | (({ instance }: { instance: MRT_TableInstance }) => PaperProps);
542
551
  muiTableProps?:
543
552
  | TableProps
544
- | (({
545
- tableInstance,
546
- }: {
547
- tableInstance: MRT_TableInstance;
548
- }) => TableProps);
553
+ | (({ instance }: { instance: MRT_TableInstance }) => TableProps);
549
554
  muiTableToolbarAlertBannerProps?:
550
555
  | AlertProps
551
- | (({
552
- tableInstance,
553
- }: {
554
- tableInstance: MRT_TableInstance;
555
- }) => AlertProps);
556
+ | (({ instance }: { instance: MRT_TableInstance }) => AlertProps);
556
557
  muiTableToolbarBottomProps?:
557
558
  | ToolbarProps
558
- | (({
559
- tableInstance,
560
- }: {
561
- tableInstance: MRT_TableInstance;
562
- }) => ToolbarProps);
559
+ | (({ instance }: { instance: MRT_TableInstance }) => ToolbarProps);
563
560
  muiTableToolbarTopProps?:
564
561
  | ToolbarProps
565
- | (({
566
- tableInstance,
567
- }: {
568
- tableInstance: MRT_TableInstance;
569
- }) => ToolbarProps);
562
+ | (({ instance }: { instance: MRT_TableInstance }) => ToolbarProps);
563
+ onCurrentEditingCellChange?: OnChangeFn<MRT_Cell>;
564
+ onCurrentEditingRowChange?: OnChangeFn<MRT_Row>;
565
+ onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterFn }>;
566
+ onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterFn>;
567
+ onIsDensePaddingChange?: OnChangeFn<boolean>;
568
+ onIsFullScreenChange?: OnChangeFn<boolean>;
570
569
  onMrtCellClick?: ({
571
570
  cell,
572
571
  event,
573
- tableInstance,
572
+ instance,
574
573
  }: {
575
574
  cell: MRT_Cell<D>;
576
- tableInstance: MRT_TableInstance<D>;
575
+ instance: MRT_TableInstance<D>;
577
576
  event: MouseEvent<HTMLTableCellElement>;
578
577
  }) => void;
579
578
  onMrtCellEditBlur?: ({
580
579
  cell,
581
580
  event,
582
- tableInstance,
581
+ instance,
583
582
  }: {
584
583
  event: FocusEvent<HTMLInputElement>;
585
584
  cell: MRT_Cell<D>;
586
- tableInstance: MRT_TableInstance<D>;
585
+ instance: MRT_TableInstance<D>;
587
586
  }) => void;
588
587
  onMrtCellEditChange?: ({
589
588
  cell,
590
589
  event,
591
- tableInstance,
590
+ instance,
592
591
  }: {
593
592
  event: ChangeEvent<HTMLInputElement>;
594
593
  cell: MRT_Cell<D>;
595
- tableInstance: MRT_TableInstance<D>;
594
+ instance: MRT_TableInstance<D>;
596
595
  }) => void;
597
596
  onMrtDetailPanelClick?: ({
598
597
  event,
599
598
  row,
600
- tableInstance,
599
+ instance,
601
600
  }: {
602
601
  event: MouseEvent<HTMLTableCellElement>;
603
602
  row: MRT_Row<D>;
604
- tableInstance: MRT_TableInstance<D>;
603
+ instance: MRT_TableInstance<D>;
605
604
  }) => void;
606
605
  onMrtEditRowSubmit?: ({
607
606
  row,
608
- tableInstance,
607
+ instance,
609
608
  }: {
610
609
  row: MRT_Row<D>;
611
- tableInstance: MRT_TableInstance<D>;
610
+ instance: MRT_TableInstance<D>;
612
611
  }) => Promise<void> | void;
613
612
  onMrtFilterValueChange?: ({
614
613
  column,
@@ -621,19 +620,19 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
621
620
  }) => void;
622
621
  onMrtGlobalFilterValueChange?: ({
623
622
  event,
624
- tableInstance,
623
+ instance,
625
624
  }: {
626
625
  event: ChangeEvent<HTMLInputElement>;
627
- tableInstance: MRT_TableInstance<D>;
626
+ instance: MRT_TableInstance<D>;
628
627
  }) => void;
629
628
  onMrtRowClick?: ({
630
629
  event,
631
630
  row,
632
- tableInstance,
631
+ instance,
633
632
  }: {
634
633
  event: MouseEvent<HTMLTableRowElement>;
635
634
  row: MRT_Row<D>;
636
- tableInstance: MRT_TableInstance<D>;
635
+ instance: MRT_TableInstance<D>;
637
636
  }) => void;
638
637
  onMrtRowExpandChange?: ({
639
638
  event,
@@ -641,73 +640,75 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
641
640
  }: {
642
641
  event: MouseEvent<HTMLButtonElement>;
643
642
  row: MRT_Row<D>;
644
- tableInstance: MRT_TableInstance<D>;
643
+ instance: MRT_TableInstance<D>;
645
644
  }) => void;
646
645
  onMrtSelectAllChange?: ({
647
646
  event,
648
647
  selectedRows,
649
- tableInstance,
648
+ instance,
650
649
  }: {
651
650
  event: ChangeEvent;
652
651
  selectedRows: MRT_Row<D>[];
653
- tableInstance: MRT_TableInstance<D>;
652
+ instance: MRT_TableInstance<D>;
654
653
  }) => void;
655
654
  onMrtSelectRowChange?: ({
656
655
  event,
657
656
  row,
658
657
  selectedRows,
659
- tableInstance,
658
+ instance,
660
659
  }: {
661
660
  event: ChangeEvent;
662
661
  row: MRT_Row<D>;
663
662
  selectedRows: MRT_Row<D>[];
664
- tableInstance: MRT_TableInstance<D>;
663
+ instance: MRT_TableInstance<D>;
665
664
  }) => void;
666
665
  onMrtToggleColumnVisibility?: ({
667
666
  column,
668
667
  columnVisibility,
669
- tableInstance,
668
+ instance,
670
669
  }: {
671
670
  column: MRT_Column<D>;
672
671
  columnVisibility: VisibilityState;
673
- tableInstance: MRT_TableInstance<D>;
672
+ instance: MRT_TableInstance<D>;
674
673
  }) => void;
675
674
  onMrtToggleDensePadding?: ({
676
675
  event,
677
676
  isDensePadding,
678
- tableInstance,
677
+ instance,
679
678
  }: {
680
679
  event: MouseEvent<HTMLButtonElement>;
681
680
  isDensePadding: boolean;
682
- tableInstance: MRT_TableInstance<D>;
681
+ instance: MRT_TableInstance<D>;
683
682
  }) => void;
684
683
  onMrtToggleFullScreen?: ({
685
684
  event,
686
685
  isFullScreen,
687
- tableInstance,
686
+ instance,
688
687
  }: {
689
688
  event: MouseEvent<HTMLButtonElement>;
690
689
  isFullScreen: boolean;
691
- tableInstance: MRT_TableInstance<D>;
690
+ instance: MRT_TableInstance<D>;
692
691
  }) => void;
693
692
  onMrtToggleShowFilters?: ({
694
693
  event,
695
694
  showFilters,
696
- tableInstance,
695
+ instance,
697
696
  }: {
698
697
  event: MouseEvent<HTMLButtonElement>;
699
698
  showFilters: boolean;
700
- tableInstance: MRT_TableInstance<D>;
699
+ instance: MRT_TableInstance<D>;
701
700
  }) => void;
702
701
  onMrtToggleShowGlobalFilter?: ({
703
702
  event,
704
703
  showGlobalFilter,
705
- tableInstance,
704
+ instance,
706
705
  }: {
707
706
  event: MouseEvent<HTMLButtonElement>;
708
707
  showGlobalFilter: boolean;
709
- tableInstance: MRT_TableInstance<D>;
708
+ instance: MRT_TableInstance<D>;
710
709
  }) => void;
710
+ onShowFiltersChange?: OnChangeFn<boolean>;
711
+ onShowGlobalFilterChange?: OnChangeFn<boolean>;
711
712
  persistentStateMode?: 'localStorage' | 'sessionStorage';
712
713
  positionActionsColumn?: 'first' | 'last';
713
714
  positionPagination?: 'bottom' | 'top' | 'both';
@@ -716,66 +717,67 @@ export type MaterialReactTableProps<D extends Record<string, any> = {}> =
716
717
  positionToolbarAlertBanner?: 'bottom' | 'top';
717
718
  renderDetailPanel?: ({
718
719
  row,
719
- tableInstance,
720
+ instance,
720
721
  }: {
721
722
  row: MRT_Row<D>;
722
- tableInstance: MRT_TableInstance<D>;
723
+ instance: MRT_TableInstance<D>;
723
724
  }) => ReactNode;
724
725
  renderRowActionMenuItems?: ({
725
726
  closeMenu,
726
727
  row,
727
- tableInstance,
728
+ instance,
728
729
  }: {
729
730
  closeMenu: () => void;
730
731
  row: MRT_Row<D>;
731
- tableInstance: MRT_TableInstance<D>;
732
+ instance: MRT_TableInstance<D>;
732
733
  }) => ReactNode[];
733
734
  renderRowActions?: ({
734
735
  row,
735
- tableInstance,
736
+ instance,
736
737
  }: {
737
738
  row: MRT_Row<D>;
738
- tableInstance: MRT_TableInstance<D>;
739
+ instance: MRT_TableInstance<D>;
739
740
  }) => ReactNode;
740
741
  renderToolbarCustomActions?: ({
741
- tableInstance,
742
+ instance,
742
743
  }: {
743
- tableInstance: MRT_TableInstance<D>;
744
+ instance: MRT_TableInstance<D>;
744
745
  }) => ReactNode;
745
746
  renderToolbarInternalActions?: ({
746
- tableInstance,
747
+ instance,
747
748
  MRT_ToggleGlobalFilterButton,
748
749
  MRT_ToggleFiltersButton,
749
750
  MRT_ShowHideColumnsButton,
750
751
  MRT_ToggleDensePaddingButton,
751
752
  MRT_FullScreenToggleButton,
752
753
  }: {
753
- tableInstance: MRT_TableInstance<D>;
754
+ instance: MRT_TableInstance<D>;
754
755
  MRT_ToggleGlobalFilterButton: FC<
755
- IconButtonProps & { tableInstance: MRT_TableInstance<D> }
756
+ IconButtonProps & { instance: MRT_TableInstance<D> }
756
757
  >;
757
758
  MRT_ToggleFiltersButton: FC<
758
- IconButtonProps & { tableInstance: MRT_TableInstance<D> }
759
+ IconButtonProps & { instance: MRT_TableInstance<D> }
759
760
  >;
760
761
  MRT_ShowHideColumnsButton: FC<
761
- IconButtonProps & { tableInstance: MRT_TableInstance<D> }
762
+ IconButtonProps & { instance: MRT_TableInstance<D> }
762
763
  >;
763
764
  MRT_ToggleDensePaddingButton: FC<
764
- IconButtonProps & { tableInstance: MRT_TableInstance<D> }
765
+ IconButtonProps & { instance: MRT_TableInstance<D> }
765
766
  >;
766
767
  MRT_FullScreenToggleButton: FC<
767
- IconButtonProps & { tableInstance: MRT_TableInstance<D> }
768
+ IconButtonProps & { instance: MRT_TableInstance<D> }
768
769
  >;
769
770
  }) => ReactNode;
770
771
  rowNumberMode?: 'original' | 'static';
771
772
  selectAllMode?: 'all' | 'page';
772
773
  tableId?: string;
774
+ virtualizerProps?: VirtualizerOptions<HTMLDivElement>;
773
775
  };
774
776
 
775
777
  export default <D extends Record<string, any> = {}>({
776
778
  autoResetExpanded = false,
777
779
  columnResizeMode = 'onEnd',
778
- defaultColumn = { minSize: 30, maxSize: 1000, size: 180 },
780
+ defaultColumn = { minSize: 40, maxSize: 1000, size: 180 },
779
781
  editingMode = 'row',
780
782
  enableColumnActions = true,
781
783
  enableColumnFilters = true,
@@ -793,7 +795,7 @@ export default <D extends Record<string, any> = {}>({
793
795
  enablePinning = false,
794
796
  enableSelectAll = true,
795
797
  enableSorting = true,
796
- enableStickyHeader = true,
798
+ enableStickyHeader = false,
797
799
  enableTableFooter = true,
798
800
  enableTableHead = true,
799
801
  enableToolbarBottom = true,