material-react-table 0.7.4 → 0.8.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/MaterialReactTable.d.ts +25 -31
  2. package/dist/body/MRT_TableBody.d.ts +0 -1
  3. package/dist/body/MRT_TableBodyCell.d.ts +1 -0
  4. package/dist/body/MRT_TableBodyRow.d.ts +0 -1
  5. package/dist/buttons/MRT_ColumnPinningButtons.d.ts +8 -0
  6. package/dist/buttons/MRT_CopyButton.d.ts +2 -1
  7. package/dist/enums.d.ts +3 -3
  8. package/dist/filtersFNs.d.ts +31 -30
  9. package/dist/footer/MRT_TableFooter.d.ts +0 -1
  10. package/dist/head/MRT_TableHead.d.ts +0 -1
  11. package/dist/inputs/MRT_FilterRangeFields.d.ts +8 -0
  12. package/dist/inputs/MRT_FilterTextField.d.ts +1 -0
  13. package/dist/localization.d.ts +7 -2
  14. package/dist/material-react-table.cjs.development.js +489 -448
  15. package/dist/material-react-table.cjs.development.js.map +1 -1
  16. package/dist/material-react-table.cjs.production.min.js +1 -1
  17. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  18. package/dist/material-react-table.esm.js +492 -451
  19. package/dist/material-react-table.esm.js.map +1 -1
  20. package/dist/menus/{MRT_FilterTypeMenu.d.ts → MRT_FilterOptionMenu.d.ts} +1 -1
  21. package/dist/table/MRT_Table.d.ts +0 -1
  22. package/dist/toolbar/MRT_ToolbarTop.d.ts +1 -0
  23. package/dist/utils.d.ts +6 -6
  24. package/package.json +24 -24
  25. package/src/MaterialReactTable.tsx +39 -41
  26. package/src/body/MRT_TableBody.tsx +3 -11
  27. package/src/body/MRT_TableBodyCell.tsx +102 -51
  28. package/src/body/MRT_TableBodyRow.tsx +21 -30
  29. package/src/buttons/MRT_ColumnPinningButtons.tsx +57 -0
  30. package/src/buttons/MRT_CopyButton.tsx +3 -2
  31. package/src/buttons/MRT_EditActionButtons.tsx +1 -2
  32. package/src/buttons/MRT_ExpandAllButton.tsx +1 -2
  33. package/src/enums.ts +3 -3
  34. package/src/filtersFNs.ts +71 -81
  35. package/src/footer/MRT_TableFooter.tsx +6 -16
  36. package/src/footer/MRT_TableFooterCell.tsx +5 -7
  37. package/src/footer/MRT_TableFooterRow.tsx +5 -8
  38. package/src/head/MRT_TableHead.tsx +5 -16
  39. package/src/head/MRT_TableHeadCell.tsx +101 -44
  40. package/src/head/MRT_TableHeadRow.tsx +8 -15
  41. package/src/inputs/MRT_EditCellTextField.tsx +2 -2
  42. package/src/inputs/MRT_FilterRangeFields.tsx +41 -0
  43. package/src/inputs/MRT_FilterTextField.tsx +84 -52
  44. package/src/inputs/MRT_SearchTextField.tsx +2 -2
  45. package/src/inputs/MRT_SelectCheckbox.tsx +16 -17
  46. package/src/localization.ts +15 -5
  47. package/src/menus/MRT_ColumnActionMenu.tsx +9 -8
  48. package/src/menus/{MRT_FilterTypeMenu.tsx → MRT_FilterOptionMenu.tsx} +54 -49
  49. package/src/menus/MRT_ShowHideColumnsMenu.tsx +25 -11
  50. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +15 -5
  51. package/src/table/MRT_Table.tsx +8 -19
  52. package/src/table/MRT_TableContainer.tsx +8 -69
  53. package/src/table/MRT_TableRoot.tsx +70 -70
  54. package/src/toolbar/MRT_LinearProgressBar.tsx +5 -2
  55. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +3 -2
  56. package/src/toolbar/MRT_ToolbarTop.tsx +4 -6
  57. package/src/utils.ts +10 -10
@@ -36,10 +36,10 @@ var ViewColumnIcon = _interopDefault(require('@mui/icons-material/ViewColumn'));
36
36
  var VisibilityOffIcon = _interopDefault(require('@mui/icons-material/VisibilityOff'));
37
37
  var reactTable = require('@tanstack/react-table');
38
38
  var material = require('@mui/material');
39
- var matchSorter = require('match-sorter');
39
+ var matchSorterUtils = require('@tanstack/match-sorter-utils');
40
40
 
41
41
  function _extends() {
42
- _extends = Object.assign || function (target) {
42
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
43
43
  for (var i = 1; i < arguments.length; i++) {
44
44
  var source = arguments[i];
45
45
 
@@ -52,7 +52,6 @@ function _extends() {
52
52
 
53
53
  return target;
54
54
  };
55
-
56
55
  return _extends.apply(this, arguments);
57
56
  }
58
57
 
@@ -73,6 +72,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
73
72
 
74
73
  var MRT_DefaultLocalization_EN = {
75
74
  actions: 'Actions',
75
+ and: 'and',
76
76
  cancel: 'Cancel',
77
77
  changeFilterMode: 'Change filter mode',
78
78
  changeSearchMode: 'Change search mode',
@@ -85,24 +85,26 @@ var MRT_DefaultLocalization_EN = {
85
85
  edit: 'Edit',
86
86
  expand: 'Expand',
87
87
  expandAll: 'Expand all',
88
- filterBestMatch: 'Best Match',
89
- filterBestMatchFirst: 'Best Match First',
88
+ filterBetween: 'Between',
90
89
  filterByColumn: 'Filter by {column}',
91
90
  filterContains: 'Contains',
92
91
  filterEmpty: 'Empty',
93
92
  filterEndsWith: 'Ends With',
94
93
  filterEquals: 'Equals',
94
+ filterFuzzy: 'Fuzzy',
95
95
  filterGreaterThan: 'Greater Than',
96
96
  filterLessThan: 'Less Than',
97
97
  filterMode: 'Filter Mode: {filterType}',
98
98
  filterNotEmpty: 'Not Empty',
99
99
  filterNotEquals: 'Not Equals',
100
100
  filterStartsWith: 'Starts With',
101
- filteringByColumn: 'Filtering by {column} - {filterType} "{filterValue}"',
101
+ filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',
102
102
  groupByColumn: 'Group by {column}',
103
103
  groupedBy: 'Grouped by ',
104
104
  hideAll: 'Hide all',
105
105
  hideColumn: 'Hide {column} column',
106
+ max: 'Max',
107
+ min: 'Min',
106
108
  pinToLeft: 'Pin to left',
107
109
  pinToRight: 'Pin to right',
108
110
  resetColumnSize: 'Reset column size',
@@ -123,12 +125,14 @@ var MRT_DefaultLocalization_EN = {
123
125
  sortedByColumnAsc: 'Sorted by {column} ascending',
124
126
  sortedByColumnDesc: 'Sorted by {column} descending',
125
127
  thenBy: ', then by ',
128
+ to: 'to',
126
129
  toggleDensePadding: 'Toggle dense padding',
127
130
  toggleFullScreen: 'Toggle full screen',
128
131
  toggleSelectAll: 'Toggle select all',
129
132
  toggleSelectRow: 'Toggle select row',
130
133
  ungroupByColumn: 'Ungroup by {column}',
131
134
  unpin: 'Unpin',
135
+ unpinAll: 'Unpin all',
132
136
  unsorted: 'Unsorted'
133
137
  };
134
138
 
@@ -170,12 +174,12 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
170
174
  getState = tableInstance.getState,
171
175
  _tableInstance$option = tableInstance.options,
172
176
  DoubleArrowDownIcon = _tableInstance$option.icons.DoubleArrowDownIcon,
173
- isLoading = _tableInstance$option.isLoading,
174
177
  localization = _tableInstance$option.localization,
175
178
  toggleAllRowsExpanded = tableInstance.toggleAllRowsExpanded;
176
179
 
177
180
  var _getState = getState(),
178
- isDensePadding = _getState.isDensePadding;
181
+ isDensePadding = _getState.isDensePadding,
182
+ isLoading = _getState.isLoading;
179
183
 
180
184
  return React__default.createElement(material.IconButton, {
181
185
  "aria-label": localization.expandAll,
@@ -235,133 +239,108 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
235
239
  }));
236
240
  };
237
241
 
238
- var MRT_FILTER_TYPE;
239
-
240
- (function (MRT_FILTER_TYPE) {
241
- MRT_FILTER_TYPE["BEST_MATCH"] = "bestMatch";
242
- MRT_FILTER_TYPE["BEST_MATCH_FIRST"] = "bestMatchFirst";
243
- MRT_FILTER_TYPE["CONTAINS"] = "contains";
244
- MRT_FILTER_TYPE["EMPTY"] = "empty";
245
- MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
246
- MRT_FILTER_TYPE["EQUALS"] = "equals";
247
- MRT_FILTER_TYPE["GREATER_THAN"] = "greaterThan";
248
- MRT_FILTER_TYPE["LESS_THAN"] = "lessThan";
249
- MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
250
- MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
251
- MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
252
- })(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
253
-
254
- var bestMatchFirst = function bestMatchFirst(rows, columnIds, filterValue) {
255
- return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
256
- keys: Array.isArray(columnIds) ? columnIds.map(function (c) {
257
- return "values." + c;
258
- }) : ["values." + columnIds]
259
- });
260
- };
261
-
262
- bestMatchFirst.autoRemove = function (val) {
263
- return !val;
264
- };
265
-
266
- var bestMatch = function bestMatch(rows, columnIds, filterValue) {
267
- return matchSorter.matchSorter(rows, filterValue.toString().trim(), {
268
- keys: Array.isArray(columnIds) ? columnIds.map(function (c) {
269
- return "values." + c;
270
- }) : ["values." + columnIds],
271
- sorter: function sorter(rankedItems) {
272
- return rankedItems;
273
- }
242
+ var MRT_FILTER_OPTION;
243
+
244
+ (function (MRT_FILTER_OPTION) {
245
+ MRT_FILTER_OPTION["BETWEEN"] = "between";
246
+ MRT_FILTER_OPTION["CONTAINS"] = "contains";
247
+ MRT_FILTER_OPTION["EMPTY"] = "empty";
248
+ MRT_FILTER_OPTION["ENDS_WITH"] = "endsWith";
249
+ MRT_FILTER_OPTION["EQUALS"] = "equals";
250
+ MRT_FILTER_OPTION["FUZZY"] = "fuzzy";
251
+ MRT_FILTER_OPTION["GREATER_THAN"] = "greaterThan";
252
+ MRT_FILTER_OPTION["LESS_THAN"] = "lessThan";
253
+ MRT_FILTER_OPTION["NOT_EMPTY"] = "notEmpty";
254
+ MRT_FILTER_OPTION["NOT_EQUALS"] = "notEquals";
255
+ MRT_FILTER_OPTION["STARTS_WITH"] = "startsWith";
256
+ })(MRT_FILTER_OPTION || (MRT_FILTER_OPTION = {}));
257
+
258
+ var fuzzy = function fuzzy(row, columnId, value, addMeta) {
259
+ var itemRank = matchSorterUtils.rankItem(row.getValue(columnId), value, {
260
+ threshold: matchSorterUtils.rankings.MATCHES
274
261
  });
262
+ addMeta(itemRank);
263
+ return itemRank.passed;
275
264
  };
276
265
 
277
- bestMatch.autoRemove = function (val) {
266
+ fuzzy.autoRemove = function (val) {
278
267
  return !val;
279
268
  };
280
269
 
281
- var contains = function contains(rows, id, filterValue) {
282
- return rows.filter(function (row) {
283
- return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
284
- });
270
+ var contains = function contains(row, id, filterValue) {
271
+ return row.getValue(id).toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
285
272
  };
286
273
 
287
274
  contains.autoRemove = function (val) {
288
275
  return !val;
289
276
  };
290
277
 
291
- var startsWith = function startsWith(rows, id, filterValue) {
292
- return rows.filter(function (row) {
293
- return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
294
- });
278
+ var startsWith = function startsWith(row, id, filterValue) {
279
+ return row.getValue(id).toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
295
280
  };
296
281
 
297
282
  startsWith.autoRemove = function (val) {
298
283
  return !val;
299
284
  };
300
285
 
301
- var endsWith = function endsWith(rows, id, filterValue) {
302
- return rows.filter(function (row) {
303
- return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
304
- });
286
+ var endsWith = function endsWith(row, id, filterValue) {
287
+ return row.getValue(id).toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
305
288
  };
306
289
 
307
290
  endsWith.autoRemove = function (val) {
308
291
  return !val;
309
292
  };
310
293
 
311
- var equals = function equals(rows, id, filterValue) {
312
- return rows.filter(function (row) {
313
- return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
314
- });
294
+ var equals = function equals(row, id, filterValue) {
295
+ return row.getValue(id).toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
315
296
  };
316
297
 
317
298
  equals.autoRemove = function (val) {
318
299
  return !val;
319
300
  };
320
301
 
321
- var notEquals = function notEquals(rows, id, filterValue) {
322
- return rows.filter(function (row) {
323
- return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
324
- });
302
+ var notEquals = function notEquals(row, id, filterValue) {
303
+ return row.getValue(id).toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
325
304
  };
326
305
 
327
306
  notEquals.autoRemove = function (val) {
328
307
  return !val;
329
308
  };
330
309
 
331
- var greaterThan = function greaterThan(rows, id, filterValue) {
332
- return rows.filter(function (row) {
333
- return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
334
- });
310
+ var greaterThan = function greaterThan(row, id, filterValue) {
311
+ return !isNaN(+filterValue) && !isNaN(+row.getValue(id)) ? +row.getValue(id) >= +filterValue : row.getValue(id).toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
335
312
  };
336
313
 
337
314
  greaterThan.autoRemove = function (val) {
338
315
  return !val;
339
316
  };
340
317
 
341
- var lessThan = function lessThan(rows, id, filterValue) {
342
- return rows.filter(function (row) {
343
- return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
344
- });
318
+ var lessThan = function lessThan(row, id, filterValue) {
319
+ return !isNaN(+filterValue) && !isNaN(+row.getValue(id)) ? +row.getValue(id) <= +filterValue : row.getValue(id).toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
345
320
  };
346
321
 
347
322
  lessThan.autoRemove = function (val) {
348
323
  return !val;
349
324
  };
350
325
 
351
- var empty = function empty(rows, id, _filterValue) {
352
- return rows.filter(function (row) {
353
- return !row.values[id].toString().toLowerCase().trim();
354
- });
326
+ var between = function between(row, id, filterValues) {
327
+ return (['', undefined].includes(filterValues[0]) || greaterThan(row, id, filterValues[0])) && (!isNaN(+filterValues[0]) && !isNaN(+filterValues[1]) && +filterValues[0] > +filterValues[1] || ['', undefined].includes(filterValues[1]) || lessThan(row, id, filterValues[1]));
328
+ };
329
+
330
+ between.autoRemove = function (val) {
331
+ return !val;
332
+ };
333
+
334
+ var empty = function empty(row, id, _filterValue) {
335
+ return !row.getValue(id).toString().trim();
355
336
  };
356
337
 
357
338
  empty.autoRemove = function (val) {
358
339
  return !val;
359
340
  };
360
341
 
361
- var notEmpty = function notEmpty(rows, id, _filterValue) {
362
- return rows.filter(function (row) {
363
- return !!row.values[id].toString().toLowerCase().trim();
364
- });
342
+ var notEmpty = function notEmpty(row, id, _filterValue) {
343
+ return !!row.getValue(id).toString().trim();
365
344
  };
366
345
 
367
346
  notEmpty.autoRemove = function (val) {
@@ -369,12 +348,12 @@ notEmpty.autoRemove = function (val) {
369
348
  };
370
349
 
371
350
  var defaultFilterFNs = {
372
- bestMatch: bestMatch,
373
- bestMatchFirst: bestMatchFirst,
351
+ between: between,
374
352
  contains: contains,
375
353
  empty: empty,
376
354
  endsWith: endsWith,
377
355
  equals: equals,
356
+ fuzzy: fuzzy,
378
357
  greaterThan: greaterThan,
379
358
  lessThan: lessThan,
380
359
  notEmpty: notEmpty,
@@ -387,7 +366,7 @@ var commonMenuItemStyles = {
387
366
  my: 0,
388
367
  alignItems: 'center'
389
368
  };
390
- var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
369
+ var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
391
370
  var anchorEl = _ref.anchorEl,
392
371
  header = _ref.header,
393
372
  onSelect = _ref.onSelect,
@@ -395,97 +374,101 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
395
374
  tableInstance = _ref.tableInstance;
396
375
  var getState = tableInstance.getState,
397
376
  _tableInstance$option = tableInstance.options,
398
- enabledGlobalFilterTypes = _tableInstance$option.enabledGlobalFilterTypes,
377
+ enabledGlobalFilterOptions = _tableInstance$option.enabledGlobalFilterOptions,
399
378
  localization = _tableInstance$option.localization,
400
- setCurrentFilterTypes = tableInstance.setCurrentFilterTypes,
401
- setCurrentGlobalFilterType = tableInstance.setCurrentGlobalFilterType;
379
+ setCurrentFilterFns = tableInstance.setCurrentFilterFns,
380
+ setCurrentGlobalFilterFn = tableInstance.setCurrentGlobalFilterFn;
402
381
 
403
382
  var _getState = getState(),
404
383
  isDensePadding = _getState.isDensePadding,
405
- currentFilterTypes = _getState.currentFilterTypes,
406
- currentGlobalFilterType = _getState.currentGlobalFilterType;
384
+ currentFilterFns = _getState.currentFilterFns,
385
+ currentGlobalFilterFn = _getState.currentGlobalFilterFn;
407
386
 
408
- var filterTypes = React.useMemo(function () {
387
+ var filterOptions = React.useMemo(function () {
409
388
  return [{
410
- type: MRT_FILTER_TYPE.BEST_MATCH_FIRST,
411
- label: localization.filterBestMatchFirst,
389
+ option: MRT_FILTER_OPTION.FUZZY,
390
+ label: localization.filterFuzzy,
412
391
  divider: false,
413
- fn: bestMatchFirst
392
+ fn: fuzzy
414
393
  }, {
415
- type: MRT_FILTER_TYPE.BEST_MATCH,
416
- label: localization.filterBestMatch,
417
- divider: !!header,
418
- fn: bestMatch
419
- }, {
420
- type: MRT_FILTER_TYPE.CONTAINS,
394
+ option: MRT_FILTER_OPTION.CONTAINS,
421
395
  label: localization.filterContains,
422
396
  divider: false,
423
397
  fn: contains
424
398
  }, {
425
- type: MRT_FILTER_TYPE.STARTS_WITH,
399
+ option: MRT_FILTER_OPTION.STARTS_WITH,
426
400
  label: localization.filterStartsWith,
427
401
  divider: false,
428
402
  fn: startsWith
429
403
  }, {
430
- type: MRT_FILTER_TYPE.ENDS_WITH,
404
+ option: MRT_FILTER_OPTION.ENDS_WITH,
431
405
  label: localization.filterEndsWith,
432
406
  divider: true,
433
407
  fn: endsWith
434
408
  }, {
435
- type: MRT_FILTER_TYPE.EQUALS,
409
+ option: MRT_FILTER_OPTION.EQUALS,
436
410
  label: localization.filterEquals,
437
411
  divider: false,
438
412
  fn: equals
439
413
  }, {
440
- type: MRT_FILTER_TYPE.NOT_EQUALS,
414
+ option: MRT_FILTER_OPTION.NOT_EQUALS,
441
415
  label: localization.filterNotEquals,
442
416
  divider: true,
443
417
  fn: notEquals
444
418
  }, {
445
- type: MRT_FILTER_TYPE.GREATER_THAN,
419
+ option: MRT_FILTER_OPTION.BETWEEN,
420
+ label: localization.filterBetween,
421
+ divider: false,
422
+ fn: between
423
+ }, {
424
+ option: MRT_FILTER_OPTION.GREATER_THAN,
446
425
  label: localization.filterGreaterThan,
447
426
  divider: false,
448
427
  fn: greaterThan
449
428
  }, {
450
- type: MRT_FILTER_TYPE.LESS_THAN,
429
+ option: MRT_FILTER_OPTION.LESS_THAN,
451
430
  label: localization.filterLessThan,
452
431
  divider: true,
453
432
  fn: lessThan
454
433
  }, {
455
- type: MRT_FILTER_TYPE.EMPTY,
434
+ option: MRT_FILTER_OPTION.EMPTY,
456
435
  label: localization.filterEmpty,
457
436
  divider: false,
458
437
  fn: empty
459
438
  }, {
460
- type: MRT_FILTER_TYPE.NOT_EMPTY,
439
+ option: MRT_FILTER_OPTION.NOT_EMPTY,
461
440
  label: localization.filterNotEmpty,
462
441
  divider: false,
463
442
  fn: notEmpty
464
443
  }].filter(function (filterType) {
465
- return header ? !header.column.enabledColumnFilterTypes || header.column.enabledColumnFilterTypes.includes(filterType.type) : (!enabledGlobalFilterTypes || enabledGlobalFilterTypes.includes(filterType.type)) && [MRT_FILTER_TYPE.BEST_MATCH_FIRST, MRT_FILTER_TYPE.BEST_MATCH].includes(filterType.type);
444
+ return header ? !header.column.enabledColumnFilterOptions || header.column.enabledColumnFilterOptions.includes(filterType.option) : (!enabledGlobalFilterOptions || enabledGlobalFilterOptions.includes(filterType.option)) && [MRT_FILTER_OPTION.FUZZY, MRT_FILTER_OPTION.CONTAINS].includes(filterType.option);
466
445
  });
467
446
  }, []);
468
447
 
469
448
  var handleSelectFilterType = function handleSelectFilterType(value) {
470
449
  if (header) {
471
- setCurrentFilterTypes(function (prev) {
450
+ setCurrentFilterFns(function (prev) {
472
451
  var _extends2;
473
452
 
474
453
  return _extends({}, prev, (_extends2 = {}, _extends2[header.id] = value, _extends2));
475
454
  });
476
455
 
477
- if ([MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {
478
- header.column.setColumnFilterValue(' ');
456
+ if ([MRT_FILTER_OPTION.EMPTY, MRT_FILTER_OPTION.NOT_EMPTY].includes(value)) {
457
+ header.column.setFilterValue(' ');
458
+ } else if (value === MRT_FILTER_OPTION.BETWEEN) {
459
+ header.column.setFilterValue(['', '']);
460
+ } else {
461
+ header.column.setFilterValue('');
479
462
  }
480
463
  } else {
481
- setCurrentGlobalFilterType(value);
464
+ setCurrentGlobalFilterFn(value);
482
465
  }
483
466
 
484
467
  setAnchorEl(null);
485
468
  onSelect == null ? void 0 : onSelect();
486
469
  };
487
470
 
488
- var filterType = !!header ? currentFilterTypes[header.id] : currentGlobalFilterType;
471
+ var filterOption = !!header ? currentFilterFns[header.id] : currentGlobalFilterFn;
489
472
  return React__default.createElement(material.Menu, {
490
473
  anchorEl: anchorEl,
491
474
  anchorOrigin: {
@@ -499,8 +482,8 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
499
482
  MenuListProps: {
500
483
  dense: isDensePadding
501
484
  }
502
- }, filterTypes.map(function (_ref2, index) {
503
- var type = _ref2.type,
485
+ }, filterOptions.map(function (_ref2, index) {
486
+ var option = _ref2.option,
504
487
  label = _ref2.label,
505
488
  divider = _ref2.divider,
506
489
  fn = _ref2.fn;
@@ -508,15 +491,65 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
508
491
  divider: divider,
509
492
  key: index,
510
493
  onClick: function onClick() {
511
- return handleSelectFilterType(type);
494
+ return handleSelectFilterType(option);
512
495
  },
513
- selected: type === filterType || fn === filterType,
496
+ selected: option === filterOption || fn === filterOption,
514
497
  sx: commonMenuItemStyles,
515
- value: type
498
+ value: option
516
499
  }, label);
517
500
  }));
518
501
  };
519
502
 
503
+ var MRT_ColumnPinningButtons = function MRT_ColumnPinningButtons(_ref) {
504
+ var column = _ref.column,
505
+ tableInstance = _ref.tableInstance;
506
+ var _tableInstance$option = tableInstance.options,
507
+ PushPinIcon = _tableInstance$option.icons.PushPinIcon,
508
+ localization = _tableInstance$option.localization;
509
+
510
+ var handlePinColumn = function handlePinColumn(pinDirection) {
511
+ column.pin(pinDirection);
512
+ };
513
+
514
+ return React__default.createElement(material.Box, {
515
+ sx: {
516
+ mr: '8px'
517
+ }
518
+ }, column.getIsPinned() ? React__default.createElement(material.Tooltip, {
519
+ arrow: true,
520
+ title: localization.unpin
521
+ }, React__default.createElement(material.IconButton, {
522
+ onClick: function onClick() {
523
+ return handlePinColumn(false);
524
+ },
525
+ size: "small"
526
+ }, React__default.createElement(PushPinIcon, null))) : React__default.createElement(React__default.Fragment, null, React__default.createElement(material.Tooltip, {
527
+ arrow: true,
528
+ title: localization.pinToLeft
529
+ }, React__default.createElement(material.IconButton, {
530
+ onClick: function onClick() {
531
+ return handlePinColumn('left');
532
+ },
533
+ size: "small"
534
+ }, React__default.createElement(PushPinIcon, {
535
+ style: {
536
+ transform: 'rotate(90deg)'
537
+ }
538
+ }))), React__default.createElement(material.Tooltip, {
539
+ arrow: true,
540
+ title: localization.pinToRight
541
+ }, React__default.createElement(material.IconButton, {
542
+ onClick: function onClick() {
543
+ return handlePinColumn('right');
544
+ },
545
+ size: "small"
546
+ }, React__default.createElement(PushPinIcon, {
547
+ style: {
548
+ transform: 'rotate(-90deg)'
549
+ }
550
+ })))));
551
+ };
552
+
520
553
  var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
521
554
  var _column$columns2;
522
555
 
@@ -552,10 +585,17 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
552
585
  };
553
586
 
554
587
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.MenuItem, {
555
- sx: _extends({}, commonMenuItemStyles$1, {
556
- pl: (column.depth + 0.5) * 2 + "rem"
557
- })
558
- }, React__default.createElement(material.FormControlLabel, {
588
+ sx: {
589
+ alignItems: 'center',
590
+ justifyContent: 'flex-start',
591
+ my: 0,
592
+ pl: (column.depth + 0.5) * 2 + "rem",
593
+ py: '6px'
594
+ }
595
+ }, !isSubMenu && column.getCanPin() && React__default.createElement(MRT_ColumnPinningButtons, {
596
+ column: column,
597
+ tableInstance: tableInstance
598
+ }), React__default.createElement(material.FormControlLabel, {
559
599
  componentsProps: {
560
600
  typography: {
561
601
  sx: {
@@ -565,7 +605,7 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
565
605
  },
566
606
  checked: switchChecked,
567
607
  control: React__default.createElement(material.Switch, null),
568
- disabled: isSubMenu && switchChecked || column.enableHiding === false,
608
+ disabled: isSubMenu && switchChecked || !column.getCanHide(),
569
609
  label: column.header,
570
610
  onChange: function onChange() {
571
611
  return handleToggleColumnHidden(column);
@@ -592,7 +632,9 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
592
632
  getState = tableInstance.getState,
593
633
  toggleAllColumnsVisible = tableInstance.toggleAllColumnsVisible,
594
634
  getAllLeafColumns = tableInstance.getAllLeafColumns,
595
- localization = tableInstance.options.localization;
635
+ _tableInstance$option = tableInstance.options,
636
+ localization = _tableInstance$option.localization,
637
+ enablePinning = _tableInstance$option.enablePinning;
596
638
 
597
639
  var _getState = getState(),
598
640
  isDensePadding = _getState.isDensePadding;
@@ -616,9 +658,9 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
616
658
  });
617
659
  return getIsSomeColumnsPinned() ? [].concat(dataColumns.filter(function (c) {
618
660
  return c.getIsPinned() === 'left';
619
- }), dataColumns.filter(function (c) {
661
+ }), [null], dataColumns.filter(function (c) {
620
662
  return c.getIsPinned() === false;
621
- }), dataColumns.filter(function (c) {
663
+ }), [null], dataColumns.filter(function (c) {
622
664
  return c.getIsPinned() === 'right';
623
665
  })) : dataColumns;
624
666
  }, [getAllColumns(), getState().columnPinning, getIsSomeColumnsPinned()]);
@@ -641,7 +683,12 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
641
683
  }, !isSubMenu && React__default.createElement(material.Button, {
642
684
  disabled: !getIsSomeColumnsVisible(),
643
685
  onClick: hideAllColumns
644
- }, localization.hideAll), React__default.createElement(material.Button, {
686
+ }, localization.hideAll), !isSubMenu && enablePinning && React__default.createElement(material.Button, {
687
+ disabled: !getIsSomeColumnsPinned(),
688
+ onClick: function onClick() {
689
+ return tableInstance.resetColumnPinning(true);
690
+ }
691
+ }, localization.unpinAll), React__default.createElement(material.Button, {
645
692
  disabled: getIsAllColumnsVisible(),
646
693
  onClick: function onClick() {
647
694
  return toggleAllColumnsVisible(true);
@@ -654,11 +701,13 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
654
701
  tableInstance: tableInstance
655
702
  });
656
703
  }), React__default.createElement(material.Divider, null), allDataColumns.map(function (column, index) {
657
- return React__default.createElement(MRT_ShowHideColumnsMenuItems, {
704
+ return column ? React__default.createElement(MRT_ShowHideColumnsMenuItems, {
658
705
  column: column,
659
706
  isSubMenu: isSubMenu,
660
707
  key: index + "-" + column.id,
661
708
  tableInstance: tableInstance
709
+ }) : React__default.createElement(material.Divider, {
710
+ key: index + "-divider"
662
711
  });
663
712
  }));
664
713
  };
@@ -720,7 +769,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
720
769
  setShowHideColumnsMenuAnchorEl = _useState2[1];
721
770
 
722
771
  var handleClearSort = function handleClearSort() {
723
- column.resetSorting();
772
+ column.clearSorting();
724
773
  setAnchorEl(null);
725
774
  };
726
775
 
@@ -746,6 +795,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
746
795
 
747
796
  var handlePinColumn = function handlePinColumn(pinDirection) {
748
797
  column.pin(pinDirection);
798
+ setAnchorEl(null);
749
799
  };
750
800
 
751
801
  var handleGroupByColumn = function handleGroupByColumn() {
@@ -757,7 +807,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
757
807
  };
758
808
 
759
809
  var handleClearFilter = function handleClearFilter() {
760
- column.setColumnFilterValue('');
810
+ column.setFilterValue('');
761
811
  setAnchorEl(null);
762
812
  };
763
813
 
@@ -822,8 +872,8 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
822
872
  style: {
823
873
  transform: 'rotate(180deg) scaleX(-1)'
824
874
  }
825
- })), (_localization$sortByC2 = localization.sortByColumnDesc) == null ? void 0 : _localization$sortByC2.replace('{column}', String(column.header))))], enableColumnFilters && column.getCanColumnFilter() && [React__default.createElement(material.MenuItem, {
826
- disabled: !column.getColumnFilterValue(),
875
+ })), (_localization$sortByC2 = localization.sortByColumnDesc) == null ? void 0 : _localization$sortByC2.replace('{column}', String(column.header))))], enableColumnFilters && column.getCanFilter() && [React__default.createElement(material.MenuItem, {
876
+ disabled: !column.getFilterValue(),
827
877
  key: 0,
828
878
  onClick: handleClearFilter,
829
879
  sx: commonMenuItemStyles$1
@@ -843,7 +893,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
843
893
  sx: {
844
894
  p: 0
845
895
  }
846
- }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterTypeMenu, {
896
+ }, React__default.createElement(ArrowRightIcon, null))), React__default.createElement(MRT_FilterOptionMenu, {
847
897
  anchorEl: filterMenuAnchorEl,
848
898
  header: header,
849
899
  key: 2,
@@ -872,7 +922,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
872
922
  }
873
923
  })), localization.pinToLeft)), React__default.createElement(material.MenuItem, {
874
924
  disabled: column.getIsPinned() === 'right' || !column.getCanPin(),
875
- key: 0,
925
+ key: 1,
876
926
  onClick: function onClick() {
877
927
  return handlePinColumn('right');
878
928
  },
@@ -886,7 +936,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
886
936
  })), localization.pinToRight)), React__default.createElement(material.MenuItem, {
887
937
  disabled: !column.getIsPinned(),
888
938
  divider: enableHiding,
889
- key: 0,
939
+ key: 2,
890
940
  onClick: function onClick() {
891
941
  return handlePinColumn(false);
892
942
  },
@@ -989,7 +1039,7 @@ var MRT_EditActionButtons = function MRT_EditActionButtons(_ref) {
989
1039
  var handleCancel = function handleCancel() {
990
1040
  var _row$original;
991
1041
 
992
- row.values = (_row$original = row.original) != null ? _row$original : {};
1042
+ row._valuesCache = (_row$original = row.original) != null ? _row$original : {};
993
1043
  setCurrentEditingRow(null);
994
1044
  };
995
1045
 
@@ -1103,31 +1153,26 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1103
1153
  var getRowModel = tableInstance.getRowModel,
1104
1154
  getSelectedRowModel = tableInstance.getSelectedRowModel,
1105
1155
  getState = tableInstance.getState,
1106
- getToggleAllRowsSelectedProps = tableInstance.getToggleAllRowsSelectedProps,
1107
1156
  _tableInstance$option = tableInstance.options,
1108
- isLoading = _tableInstance$option.isLoading,
1109
1157
  localization = _tableInstance$option.localization,
1110
1158
  muiSelectCheckboxProps = _tableInstance$option.muiSelectCheckboxProps,
1111
1159
  onSelectChange = _tableInstance$option.onSelectChange,
1112
1160
  onSelectAllChange = _tableInstance$option.onSelectAllChange;
1113
1161
 
1114
1162
  var _getState = getState(),
1115
- isDensePadding = _getState.isDensePadding;
1163
+ isDensePadding = _getState.isDensePadding,
1164
+ isLoading = _getState.isLoading;
1116
1165
 
1117
1166
  var handleSelectChange = function handleSelectChange(event) {
1118
1167
  if (selectAll) {
1119
- var _getToggleAllRowsSele;
1120
-
1121
- getToggleAllRowsSelectedProps == null ? void 0 : (_getToggleAllRowsSele = getToggleAllRowsSelectedProps()) == null ? void 0 : _getToggleAllRowsSele.onChange == null ? void 0 : _getToggleAllRowsSele.onChange(event);
1168
+ tableInstance.getToggleAllRowsSelectedHandler()(event);
1122
1169
  onSelectAllChange == null ? void 0 : onSelectAllChange({
1123
1170
  event: event,
1124
1171
  selectedRows: event.target.checked ? getRowModel().flatRows : [],
1125
1172
  tableInstance: tableInstance
1126
1173
  });
1127
1174
  } else if (row) {
1128
- var _row$getToggleSelecte;
1129
-
1130
- row == null ? void 0 : (_row$getToggleSelecte = row.getToggleSelectedProps()) == null ? void 0 : _row$getToggleSelecte.onChange == null ? void 0 : _row$getToggleSelecte.onChange(event);
1175
+ row == null ? void 0 : row.getToggleSelectedHandler()(event);
1131
1176
  onSelectChange == null ? void 0 : onSelectChange({
1132
1177
  event: event,
1133
1178
  row: row,
@@ -1139,33 +1184,30 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1139
1184
  }
1140
1185
  };
1141
1186
 
1142
- var mTableBodyRowSelectCheckboxProps = muiSelectCheckboxProps instanceof Function ? muiSelectCheckboxProps({
1187
+ var checkboxProps = muiSelectCheckboxProps instanceof Function ? muiSelectCheckboxProps({
1143
1188
  isSelectAll: !!selectAll,
1144
1189
  row: row,
1145
1190
  tableInstance: tableInstance
1146
1191
  }) : muiSelectCheckboxProps;
1147
- var rtSelectCheckboxProps = selectAll ? getToggleAllRowsSelectedProps() : row == null ? void 0 : row.getToggleSelectedProps();
1148
-
1149
- var checkboxProps = _extends({}, rtSelectCheckboxProps, mTableBodyRowSelectCheckboxProps);
1150
-
1151
1192
  return React__default.createElement(material.Tooltip, {
1152
1193
  arrow: true,
1153
1194
  enterDelay: 1000,
1154
1195
  enterNextDelay: 1000,
1155
1196
  title: selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1156
1197
  }, React__default.createElement(material.Checkbox, Object.assign({
1198
+ checked: selectAll ? tableInstance.getIsAllRowsSelected() : row == null ? void 0 : row.getIsSelected(),
1157
1199
  disabled: isLoading,
1200
+ indeterminate: selectAll ? tableInstance.getIsSomeRowsSelected() : row == null ? void 0 : row.getIsSomeSelected(),
1158
1201
  inputProps: {
1159
1202
  'aria-label': selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1160
1203
  },
1204
+ onChange: handleSelectChange,
1161
1205
  size: isDensePadding ? 'small' : 'medium'
1162
1206
  }, checkboxProps, {
1163
- sx: {
1207
+ sx: _extends({
1164
1208
  height: isDensePadding ? '1.75rem' : '2.25rem',
1165
1209
  width: isDensePadding ? '1.75rem' : '2.25rem'
1166
- },
1167
- onChange: handleSelectChange,
1168
- title: undefined
1210
+ }, checkboxProps == null ? void 0 : checkboxProps.sx)
1169
1211
  })));
1170
1212
  };
1171
1213
 
@@ -1257,7 +1299,7 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1257
1299
  sx: _extends({
1258
1300
  justifySelf: 'end'
1259
1301
  }, textFieldProps == null ? void 0 : textFieldProps.sx)
1260
- })), React__default.createElement(MRT_FilterTypeMenu, {
1302
+ })), React__default.createElement(MRT_FilterOptionMenu, {
1261
1303
  anchorEl: anchorEl,
1262
1304
  setAnchorEl: setAnchorEl,
1263
1305
  tableInstance: tableInstance
@@ -1546,7 +1588,6 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1546
1588
  var getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
1547
1589
  getSelectedRowModel = tableInstance.getSelectedRowModel,
1548
1590
  getState = tableInstance.getState,
1549
- toggleColumnGrouping = tableInstance.toggleColumnGrouping,
1550
1591
  _tableInstance$option = tableInstance.options,
1551
1592
  localization = _tableInstance$option.localization,
1552
1593
  muiTableToolbarAlertBannerProps = _tableInstance$option.muiTableToolbarAlertBannerProps,
@@ -1573,7 +1614,7 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1573
1614
  return column.id === columnId;
1574
1615
  })) == null ? void 0 : _tableInstance$getAll.header,
1575
1616
  onDelete: function onDelete() {
1576
- return toggleColumnGrouping(columnId);
1617
+ return tableInstance.getColumn(columnId).toggleGrouping();
1577
1618
  }
1578
1619
  }));
1579
1620
  })) : null;
@@ -1605,15 +1646,19 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1605
1646
 
1606
1647
  var MRT_LinearProgressBar = function MRT_LinearProgressBar(_ref) {
1607
1648
  var tableInstance = _ref.tableInstance;
1608
- var _tableInstance$option = tableInstance.options,
1609
- muiLinearProgressProps = _tableInstance$option.muiLinearProgressProps,
1610
- isReloading = _tableInstance$option.isReloading,
1611
- isLoading = _tableInstance$option.isLoading;
1649
+ var muiLinearProgressProps = tableInstance.options.muiLinearProgressProps,
1650
+ getState = tableInstance.getState;
1651
+
1652
+ var _getState = getState(),
1653
+ isLoading = _getState.isLoading,
1654
+ showProgressBars = _getState.showProgressBars;
1655
+
1612
1656
  var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps({
1613
1657
  tableInstance: tableInstance
1614
1658
  }) : muiLinearProgressProps;
1615
1659
  return React__default.createElement(material.Collapse, {
1616
- "in": isReloading || isLoading,
1660
+ "in": isLoading || showProgressBars,
1661
+ mountOnEnter: true,
1617
1662
  unmountOnExit: true
1618
1663
  }, React__default.createElement(material.LinearProgress, Object.assign({
1619
1664
  "aria-label": "Loading",
@@ -1624,10 +1669,11 @@ var MRT_LinearProgressBar = function MRT_LinearProgressBar(_ref) {
1624
1669
  var commonToolbarStyles = function commonToolbarStyles(_ref) {
1625
1670
  var theme = _ref.theme;
1626
1671
  return {
1627
- backgroundColor: theme.palette.background["default"],
1628
- backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
1672
+ backgroundColor: material.lighten(theme.palette.background["default"], 0.04),
1673
+ backgroundImage: 'none',
1629
1674
  display: 'grid',
1630
1675
  p: '0 !important',
1676
+ transition: 'all 0.2s ease-in-out',
1631
1677
  width: '100%',
1632
1678
  zIndex: 1
1633
1679
  };
@@ -1743,9 +1789,10 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1743
1789
  };
1744
1790
 
1745
1791
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1746
- var _column$getColumnFilt, _localization$filterB, _localization$filterM, _localization$, _localization$clearFi, _column$filterSelectO;
1792
+ var _localization$filterB, _localization$filterM, _localization$, _localization$clearFi, _column$filterSelectO;
1747
1793
 
1748
1794
  var header = _ref.header,
1795
+ inputIndex = _ref.inputIndex,
1749
1796
  tableInstance = _ref.tableInstance;
1750
1797
  var getState = tableInstance.getState,
1751
1798
  _tableInstance$option = tableInstance.options,
@@ -1755,11 +1802,11 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1755
1802
  idPrefix = _tableInstance$option.idPrefix,
1756
1803
  localization = _tableInstance$option.localization,
1757
1804
  muiTableHeadCellFilterTextFieldProps = _tableInstance$option.muiTableHeadCellFilterTextFieldProps,
1758
- setCurrentFilterTypes = tableInstance.setCurrentFilterTypes;
1805
+ setCurrentFilterFns = tableInstance.setCurrentFilterFns;
1759
1806
  var column = header.column;
1760
1807
 
1761
1808
  var _getState = getState(),
1762
- currentFilterTypes = _getState.currentFilterTypes;
1809
+ currentFilterFns = _getState.currentFilterFns;
1763
1810
 
1764
1811
  var _useState = React.useState(null),
1765
1812
  anchorEl = _useState[0],
@@ -1776,14 +1823,22 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1776
1823
 
1777
1824
  var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps);
1778
1825
 
1779
- var _useState2 = React.useState((_column$getColumnFilt = column.getColumnFilterValue()) != null ? _column$getColumnFilt : ''),
1826
+ var _useState2 = React.useState(function () {
1827
+ var _column$getFilterValu, _column$getFilterValu2, _column$getFilterValu3;
1828
+
1829
+ return inputIndex !== undefined ? (_column$getFilterValu = (_column$getFilterValu2 = column.getFilterValue()) == null ? void 0 : _column$getFilterValu2[inputIndex]) != null ? _column$getFilterValu : '' : (_column$getFilterValu3 = column.getFilterValue()) != null ? _column$getFilterValu3 : '';
1830
+ }),
1780
1831
  filterValue = _useState2[0],
1781
1832
  setFilterValue = _useState2[1];
1782
1833
 
1783
- var handleChange = React.useCallback(material.debounce(function (event) {
1834
+ var handleChangeDebounced = React.useCallback(material.debounce(function (event) {
1784
1835
  var _event$target$value;
1785
1836
 
1786
- return column.setColumnFilterValue((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
1837
+ return inputIndex !== undefined ? column.setFilterValue(function (old) {
1838
+ var newFilterValues = old != null ? old : ['', ''];
1839
+ newFilterValues[inputIndex] = event.target.value;
1840
+ return newFilterValues;
1841
+ }) : column.setFilterValue((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
1787
1842
  }, 150), []);
1788
1843
 
1789
1844
  var handleFilterMenuOpen = function handleFilterMenuOpen(event) {
@@ -1792,16 +1847,25 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1792
1847
 
1793
1848
  var handleClear = function handleClear() {
1794
1849
  setFilterValue('');
1795
- column.setColumnFilterValue(undefined);
1850
+
1851
+ if (inputIndex !== undefined) {
1852
+ column.setFilterValue(function (old) {
1853
+ var newFilterValues = old != null ? old : ['', ''];
1854
+ newFilterValues[inputIndex] = undefined;
1855
+ return newFilterValues;
1856
+ });
1857
+ } else {
1858
+ column.setFilterValue(undefined);
1859
+ }
1796
1860
  };
1797
1861
 
1798
1862
  var handleClearFilterChip = function handleClearFilterChip() {
1799
1863
  setFilterValue('');
1800
- column.setColumnFilterValue(undefined);
1801
- setCurrentFilterTypes(function (prev) {
1864
+ column.setFilterValue(undefined);
1865
+ setCurrentFilterFns(function (prev) {
1802
1866
  var _extends2;
1803
1867
 
1804
- return _extends({}, prev, (_extends2 = {}, _extends2[header.id] = MRT_FILTER_TYPE.BEST_MATCH, _extends2));
1868
+ return _extends({}, prev, (_extends2 = {}, _extends2[header.id] = MRT_FILTER_OPTION.FUZZY, _extends2));
1805
1869
  });
1806
1870
  };
1807
1871
 
@@ -1812,12 +1876,12 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1812
1876
  }));
1813
1877
  }
1814
1878
 
1815
- var filterId = "mrt-" + idPrefix + "-" + header.id + "-filter-text-field";
1816
- var filterType = currentFilterTypes == null ? void 0 : currentFilterTypes[header.id];
1879
+ var filterId = "mrt-" + idPrefix + "-" + header.id + "-filter-text-field" + (inputIndex != null ? inputIndex : '');
1880
+ var filterFn = currentFilterFns == null ? void 0 : currentFilterFns[header.id];
1817
1881
  var isSelectFilter = !!column.filterSelectOptions;
1818
- var filterChipLabel = !(filterType instanceof Function) && [MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(filterType) ? //@ts-ignore
1819
- localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))] : '';
1820
- var filterPlaceholder = (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.header));
1882
+ var filterChipLabel = !(filterFn instanceof Function) && [MRT_FILTER_OPTION.EMPTY, MRT_FILTER_OPTION.NOT_EMPTY].includes(filterFn) ? //@ts-ignore
1883
+ localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))] : '';
1884
+ var filterPlaceholder = inputIndex === undefined ? (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.header)) : inputIndex === 0 ? localization.min : inputIndex === 1 ? localization.max : '';
1821
1885
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TextField, Object.assign({
1822
1886
  fullWidth: true,
1823
1887
  id: filterId,
@@ -1829,23 +1893,24 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1829
1893
  },
1830
1894
  title: filterPlaceholder
1831
1895
  },
1832
- helperText: React__default.createElement("label", {
1896
+ helperText: !inputIndex ? React__default.createElement("label", {
1833
1897
  htmlFor: filterId
1834
- }, filterType instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
1835
- (_localization$ = localization["filter" + (filterType.name.charAt(0).toUpperCase() + filterType.name.slice(1))]) != null ? _localization$ : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
1836
- localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))])),
1898
+ }, filterFn instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
1899
+ (_localization$ = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization$ : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
1900
+ localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))])) : null,
1837
1901
  FormHelperTextProps: {
1838
1902
  sx: {
1839
1903
  fontSize: '0.6rem',
1840
- lineHeight: '0.8rem'
1904
+ lineHeight: '0.8rem',
1905
+ whiteSpace: 'nowrap'
1841
1906
  }
1842
1907
  },
1843
1908
  label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
1844
1909
  margin: "none",
1845
- placeholder: filterPlaceholder,
1910
+ placeholder: filterChipLabel || isSelectFilter ? undefined : filterPlaceholder,
1846
1911
  onChange: function onChange(event) {
1847
1912
  setFilterValue(event.target.value);
1848
- handleChange(event);
1913
+ handleChangeDebounced(event);
1849
1914
  },
1850
1915
  onClick: function onClick(e) {
1851
1916
  return e.stopPropagation();
@@ -1854,7 +1919,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1854
1919
  value: filterValue != null ? filterValue : '',
1855
1920
  variant: "standard",
1856
1921
  InputProps: {
1857
- startAdornment: !isSelectFilter && React__default.createElement(material.InputAdornment, {
1922
+ startAdornment: !isSelectFilter && !inputIndex && React__default.createElement(material.InputAdornment, {
1858
1923
  position: "start"
1859
1924
  }, React__default.createElement(material.Tooltip, {
1860
1925
  arrow: true,
@@ -1893,7 +1958,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1893
1958
  sx: _extends({
1894
1959
  m: '-0.25rem',
1895
1960
  p: 0,
1896
- minWidth: !filterChipLabel ? '5rem' : 'auto',
1961
+ minWidth: !filterChipLabel ? '6rem' : 'auto',
1897
1962
  width: 'calc(100% + 0.5rem)',
1898
1963
  mt: isSelectFilter && !filterValue ? '-1rem' : undefined,
1899
1964
  '& .MuiSelect-icon': {
@@ -1920,7 +1985,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1920
1985
  key: value,
1921
1986
  value: value
1922
1987
  }, text);
1923
- })), React__default.createElement(MRT_FilterTypeMenu, {
1988
+ })), React__default.createElement(MRT_FilterOptionMenu, {
1924
1989
  anchorEl: anchorEl,
1925
1990
  header: header,
1926
1991
  setAnchorEl: setAnchorEl,
@@ -1988,6 +2053,32 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
1988
2053
  }));
1989
2054
  };
1990
2055
 
2056
+ var MRT_FilterRangeFields = function MRT_FilterRangeFields(_ref) {
2057
+ var header = _ref.header,
2058
+ tableInstance = _ref.tableInstance;
2059
+ var localization = tableInstance.options.localization;
2060
+ return React__default.createElement(material.Box, {
2061
+ sx: {
2062
+ display: 'grid',
2063
+ gridTemplateColumns: '6fr auto 5fr'
2064
+ }
2065
+ }, React__default.createElement(MRT_FilterTextField, {
2066
+ header: header,
2067
+ inputIndex: 0,
2068
+ tableInstance: tableInstance
2069
+ }), React__default.createElement(material.Box, {
2070
+ sx: {
2071
+ width: '100%',
2072
+ minWidth: '5ch',
2073
+ textAlign: 'center'
2074
+ }
2075
+ }, localization.to), React__default.createElement(MRT_FilterTextField, {
2076
+ header: header,
2077
+ inputIndex: 1,
2078
+ tableInstance: tableInstance
2079
+ }));
2080
+ };
2081
+
1991
2082
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1992
2083
  var _getState2, _getState2$currentFil, _column$Header;
1993
2084
 
@@ -2006,6 +2097,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2006
2097
  setShowFilters = tableInstance.setShowFilters;
2007
2098
 
2008
2099
  var _getState = getState(),
2100
+ currentFilterFns = _getState.currentFilterFns,
2009
2101
  isDensePadding = _getState.isDensePadding,
2010
2102
  showFilters = _getState.showFilters;
2011
2103
 
@@ -2019,36 +2111,53 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2019
2111
  tableInstance: tableInstance
2020
2112
  }) : column.muiTableHeadCellProps;
2021
2113
 
2022
- var tableCellProps = _extends({}, header.getHeaderProps(), mTableHeadCellProps, mcTableHeadCellProps);
2114
+ var tableCellProps = _extends({}, mTableHeadCellProps, mcTableHeadCellProps);
2023
2115
 
2024
2116
  var sortTooltip = !!column.getIsSorted() ? column.getIsSorted() === 'desc' ? localization.sortedByColumnDesc.replace('{column}', column.header) : localization.sortedByColumnAsc.replace('{column}', column.header) : localization.unsorted;
2025
- var filterType = (_getState2 = getState()) == null ? void 0 : (_getState2$currentFil = _getState2.currentFilterTypes) == null ? void 0 : _getState2$currentFil[header.id];
2026
- var filterTooltip = !!column.getColumnFilterValue() ? localization.filteringByColumn.replace('{column}', String(column.header)).replace('{filterType}', filterType instanceof Function ? '' : // @ts-ignore
2027
- localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))]).replace('{filterValue}', column.getColumnFilterValue()).replace('" "', '') : localization.showHideFilters;
2117
+ var filterFn = (_getState2 = getState()) == null ? void 0 : (_getState2$currentFil = _getState2.currentFilterFns) == null ? void 0 : _getState2$currentFil[header.id];
2118
+ var filterTooltip = !!column.getFilterValue() ? localization.filteringByColumn.replace('{column}', String(column.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
2119
+ localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))]).replace('{filterValue}', "\"" + (Array.isArray(column.getFilterValue()) ? column.getFilterValue().join("\" " + localization.and + " \"") : column.getFilterValue()) + "\"").replace('" "', '') : localization.showHideFilters;
2028
2120
  var headerElement = (_column$Header = column == null ? void 0 : column.Header == null ? void 0 : column.Header({
2029
2121
  header: header,
2030
2122
  tableInstance: tableInstance
2031
2123
  })) != null ? _column$Header : column.header;
2124
+
2125
+ var getIsLastLeftPinnedColumn = function getIsLastLeftPinnedColumn() {
2126
+ return column.getIsPinned() === 'left' && tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex();
2127
+ };
2128
+
2129
+ var getIsFirstRightPinnedColumn = function getIsFirstRightPinnedColumn() {
2130
+ return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
2131
+ };
2132
+
2133
+ var getTotalRight = function getTotalRight() {
2134
+ return (tableInstance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
2135
+ };
2136
+
2032
2137
  return React__default.createElement(material.TableCell, Object.assign({
2033
- align: column.columnDefType === 'group' ? 'center' : 'left'
2138
+ align: column.columnDefType === 'group' ? 'center' : 'left',
2139
+ colSpan: header.colSpan
2034
2140
  }, tableCellProps, {
2035
- //@ts-ignore
2036
2141
  sx: function sx(theme) {
2037
2142
  return _extends({
2038
- backgroundColor: theme.palette.background["default"],
2039
- backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2143
+ backgroundColor: column.getIsPinned() && column.columnDefType !== 'group' ? material.alpha(material.lighten(theme.palette.background["default"], 0.04), 0.95) : 'inherit',
2144
+ backgroundImage: 'inherit',
2145
+ boxShadow: getIsLastLeftPinnedColumn() ? "4px 0 4px -2px " + material.alpha(theme.palette.common.black, 0.1) : getIsFirstRightPinnedColumn() ? "-4px 0 4px -2px " + material.alpha(theme.palette.common.black, 0.1) : undefined,
2040
2146
  fontWeight: 'bold',
2041
2147
  height: '100%',
2042
- maxWidth: "min(" + column.getWidth() + "px, " + column.maxWidth + "px)",
2043
- minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2148
+ left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
2149
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
2150
+ minWidth: "max(" + column.getSize() + "px, " + column.minSize + "px)",
2151
+ overflow: 'visible',
2044
2152
  p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2045
- pt: column.columnDefType === 'display' ? 0 : isDensePadding ? '0.75rem' : '1.25rem',
2046
2153
  pb: column.columnDefType === 'display' ? 0 : undefined,
2047
- overflow: 'visible',
2154
+ position: column.getIsPinned() && column.columnDefType !== 'group' ? 'sticky' : undefined,
2155
+ pt: column.columnDefType === 'display' ? 0 : isDensePadding ? '0.75rem' : '1.25rem',
2156
+ right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2048
2157
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2049
2158
  verticalAlign: 'text-top',
2050
- width: header.getWidth(),
2051
- zIndex: column.getIsResizing() ? 2 : 1
2159
+ width: header.getSize(),
2160
+ zIndex: column.getIsResizing() ? 3 : column.getIsPinned() && column.columnDefType !== 'group' ? 2 : 1
2052
2161
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2053
2162
  }
2054
2163
  }), header.isPlaceholder ? null : column.columnDefType === 'display' ? headerElement : React__default.createElement(material.Box, {
@@ -2077,7 +2186,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2077
2186
  "aria-label": sortTooltip,
2078
2187
  active: !!column.getIsSorted(),
2079
2188
  direction: column.getIsSorted() ? column.getIsSorted() : undefined
2080
- })), column.columnDefType === 'data' && enableColumnFilters && !!column.getCanColumnFilter() && React__default.createElement(material.Tooltip, {
2189
+ })), column.columnDefType === 'data' && enableColumnFilters && !!column.getCanFilter() && React__default.createElement(material.Tooltip, {
2081
2190
  arrow: true,
2082
2191
  placement: "top",
2083
2192
  title: filterTooltip
@@ -2090,7 +2199,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2090
2199
  size: "small",
2091
2200
  sx: {
2092
2201
  m: 0,
2093
- opacity: !!column.getColumnFilterValue() ? 0.8 : 0,
2202
+ opacity: !!column.getFilterValue() ? 0.8 : 0,
2094
2203
  p: '2px',
2095
2204
  transition: 'all 0.2s ease-in-out',
2096
2205
  '&:hover': {
@@ -2098,14 +2207,14 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2098
2207
  opacity: 0.8
2099
2208
  }
2100
2209
  }
2101
- }, showFilters && !column.getColumnFilterValue() ? React__default.createElement(FilterAltOff, null) : React__default.createElement(FilterAltIcon, null)))), (enableColumnActions || column.enableColumnActions) && column.enableColumnActions !== false && column.columnDefType !== 'group' && React__default.createElement(MRT_ToggleColumnActionMenuButton, {
2210
+ }, showFilters && !column.getFilterValue() ? React__default.createElement(FilterAltOff, null) : React__default.createElement(FilterAltIcon, null)))), (enableColumnActions || column.enableColumnActions) && column.enableColumnActions !== false && column.columnDefType !== 'group' && React__default.createElement(MRT_ToggleColumnActionMenuButton, {
2102
2211
  header: header,
2103
2212
  tableInstance: tableInstance
2104
2213
  }), column.getCanResize() && React__default.createElement(material.Divider, Object.assign({
2105
2214
  flexItem: true,
2106
2215
  orientation: "vertical",
2107
2216
  onDoubleClick: function onDoubleClick() {
2108
- return header.resetSize();
2217
+ return column.resetSize();
2109
2218
  },
2110
2219
  sx: function sx(theme) {
2111
2220
  return {
@@ -2126,15 +2235,21 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2126
2235
  }
2127
2236
  };
2128
2237
  }
2129
- }, header.getResizerProps(function (props) {
2130
- return _extends({}, props, {
2131
- style: {
2132
- transform: column.getIsResizing() ? "translateX(" + getState().columnSizingInfo.deltaOffset + "px)" : ''
2133
- }
2134
- });
2135
- })))), column.columnDefType === 'data' && column.getCanColumnFilter() && React__default.createElement(material.Collapse, {
2136
- "in": showFilters
2137
- }, React__default.createElement(MRT_FilterTextField, {
2238
+ }, {
2239
+ onMouseDown: header.getResizeHandler,
2240
+ onTouchStart: header.getResizeHandler
2241
+ }, {
2242
+ style: {
2243
+ transform: column.getIsResizing() ? "translateX(" + getState().columnSizingInfo.deltaOffset + "px)" : 'none'
2244
+ }
2245
+ }))), column.columnDefType === 'data' && column.getCanFilter() && React__default.createElement(material.Collapse, {
2246
+ "in": showFilters,
2247
+ mountOnEnter: true,
2248
+ unmountOnExit: true
2249
+ }, currentFilterFns[column.id] === MRT_FILTER_OPTION.BETWEEN ? React__default.createElement(MRT_FilterRangeFields, {
2250
+ header: header,
2251
+ tableInstance: tableInstance
2252
+ }) : React__default.createElement(MRT_FilterTextField, {
2138
2253
  header: header,
2139
2254
  tableInstance: tableInstance
2140
2255
  })));
@@ -2144,17 +2259,15 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2144
2259
  var headerGroup = _ref.headerGroup,
2145
2260
  tableInstance = _ref.tableInstance;
2146
2261
  var muiTableHeadRowProps = tableInstance.options.muiTableHeadRowProps;
2147
- var mTableHeadRowProps = muiTableHeadRowProps instanceof Function ? muiTableHeadRowProps({
2262
+ var tableRowProps = muiTableHeadRowProps instanceof Function ? muiTableHeadRowProps({
2148
2263
  headerGroup: headerGroup,
2149
2264
  tableInstance: tableInstance
2150
2265
  }) : muiTableHeadRowProps;
2151
-
2152
- var tableRowProps = _extends({}, headerGroup == null ? void 0 : headerGroup.getHeaderGroupProps(), mTableHeadRowProps);
2153
-
2154
2266
  return React__default.createElement(material.TableRow, Object.assign({}, tableRowProps, {
2155
2267
  sx: function sx(theme) {
2156
2268
  return _extends({
2157
- boxShadow: "4px 0 8px " + material.alpha(theme.palette.common.black, 0.1)
2269
+ boxShadow: "4px 0 8px " + material.alpha(theme.palette.common.black, 0.1),
2270
+ backgroundColor: material.lighten(theme.palette.background["default"], 0.04)
2158
2271
  }, tableRowProps == null ? void 0 : tableRowProps.sx);
2159
2272
  }
2160
2273
  }), headerGroup.headers.map(function (header, index) {
@@ -2167,26 +2280,16 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2167
2280
  };
2168
2281
 
2169
2282
  var MRT_TableHead = function MRT_TableHead(_ref) {
2170
- var pinned = _ref.pinned,
2171
- tableInstance = _ref.tableInstance;
2172
- var getCenterHeaderGroups = tableInstance.getCenterHeaderGroups,
2173
- getHeaderGroups = tableInstance.getHeaderGroups,
2174
- getLeftHeaderGroups = tableInstance.getLeftHeaderGroups,
2175
- getRightHeaderGroups = tableInstance.getRightHeaderGroups,
2283
+ var tableInstance = _ref.tableInstance;
2284
+ var getHeaderGroups = tableInstance.getHeaderGroups,
2176
2285
  muiTableHeadProps = tableInstance.options.muiTableHeadProps;
2177
2286
  var tableHeadProps = muiTableHeadProps instanceof Function ? muiTableHeadProps({
2178
2287
  tableInstance: tableInstance
2179
2288
  }) : muiTableHeadProps;
2180
- var getHeaderGroupsMap = {
2181
- center: getCenterHeaderGroups,
2182
- left: getLeftHeaderGroups,
2183
- none: getHeaderGroups,
2184
- right: getRightHeaderGroups
2185
- };
2186
- return React__default.createElement(material.TableHead, Object.assign({}, tableHeadProps), getHeaderGroupsMap[pinned]().map(function (headerGroup) {
2289
+ return React__default.createElement(material.TableHead, Object.assign({}, tableHeadProps), getHeaderGroups().map(function (headerGroup) {
2187
2290
  return React__default.createElement(MRT_TableHeadRow, {
2188
2291
  headerGroup: headerGroup,
2189
- key: headerGroup.getHeaderGroupProps().key,
2292
+ key: headerGroup.id,
2190
2293
  tableInstance: tableInstance
2191
2294
  });
2192
2295
  }));
@@ -2205,7 +2308,7 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2205
2308
  setCurrentEditingCell = tableInstance.setCurrentEditingCell,
2206
2309
  setCurrentEditingRow = tableInstance.setCurrentEditingRow;
2207
2310
 
2208
- var _useState = React.useState(cell.value),
2311
+ var _useState = React.useState(cell.getValue()),
2209
2312
  value = _useState[0],
2210
2313
  setValue = _useState[1];
2211
2314
 
@@ -2228,7 +2331,7 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2228
2331
 
2229
2332
  var handleBlur = function handleBlur(event) {
2230
2333
  if (getState().currentEditingRow) {
2231
- row.values[column.id] = value;
2334
+ row._valuesCache[column.id] = value;
2232
2335
  setCurrentEditingRow(_extends({}, getState().currentEditingRow));
2233
2336
  }
2234
2337
 
@@ -2317,7 +2420,7 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2317
2420
  }, React__default.createElement(material.Button, Object.assign({
2318
2421
  "aria-label": localization.clickToCopy,
2319
2422
  onClick: function onClick() {
2320
- return handleCopy(cell.value);
2423
+ return handleCopy(cell.getValue());
2321
2424
  },
2322
2425
  size: "small"
2323
2426
  }, buttonProps, {
@@ -2342,16 +2445,14 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2342
2445
  var _cell$column$Cell, _cell$column, _row$subRows, _cell$column$Cell2, _cell$column2, _row$subRows2;
2343
2446
 
2344
2447
  var cell = _ref.cell,
2448
+ enableHover = _ref.enableHover,
2345
2449
  tableInstance = _ref.tableInstance;
2346
- var getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
2347
- getState = tableInstance.getState,
2450
+ var getState = tableInstance.getState,
2348
2451
  _tableInstance$option = tableInstance.options,
2349
2452
  editingMode = _tableInstance$option.editingMode,
2350
2453
  enableClickToCopy = _tableInstance$option.enableClickToCopy,
2351
2454
  enableEditing = _tableInstance$option.enableEditing,
2352
- enablePinning = _tableInstance$option.enablePinning,
2353
2455
  idPrefix = _tableInstance$option.idPrefix,
2354
- isLoading = _tableInstance$option.isLoading,
2355
2456
  muiTableBodyCellProps = _tableInstance$option.muiTableBodyCellProps,
2356
2457
  muiTableBodyCellSkeletonProps = _tableInstance$option.muiTableBodyCellSkeletonProps,
2357
2458
  onCellClick = _tableInstance$option.onCellClick,
@@ -2360,7 +2461,9 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2360
2461
  var _getState = getState(),
2361
2462
  currentEditingCell = _getState.currentEditingCell,
2362
2463
  currentEditingRow = _getState.currentEditingRow,
2363
- isDensePadding = _getState.isDensePadding;
2464
+ isDensePadding = _getState.isDensePadding,
2465
+ isLoading = _getState.isLoading,
2466
+ showSkeletons = _getState.showSkeletons;
2364
2467
 
2365
2468
  var column = cell.column,
2366
2469
  row = cell.row;
@@ -2373,11 +2476,11 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2373
2476
  tableInstance: tableInstance
2374
2477
  }) : column.muiTableBodyCellProps;
2375
2478
 
2376
- var tableCellProps = _extends({}, cell.getCellProps(), mTableCellBodyProps, mcTableCellBodyProps);
2479
+ var tableCellProps = _extends({}, mTableCellBodyProps, mcTableCellBodyProps);
2377
2480
 
2378
2481
  var skeletonWidth = React.useMemo(function () {
2379
- return column.columnDefType === 'display' ? column.getWidth() / 2 : Math.random() * (column.getWidth() - column.getWidth() / 3) + column.getWidth() / 3;
2380
- }, [column.columnDefType, column.getWidth()]);
2482
+ return column.columnDefType === 'display' ? column.getSize() / 2 : Math.random() * (column.getSize() - column.getSize() / 3) + column.getSize() / 3;
2483
+ }, [column.columnDefType, column.getSize()]);
2381
2484
  var isEditable = (enableEditing || column.enableEditing) && column.enableEditing !== false;
2382
2485
  var isEditing = isEditable && (editingMode === 'table' || (currentEditingRow == null ? void 0 : currentEditingRow.id) === row.id || (currentEditingCell == null ? void 0 : currentEditingCell.id) === cell.id);
2383
2486
 
@@ -2395,6 +2498,18 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2395
2498
  }
2396
2499
  };
2397
2500
 
2501
+ var getIsLastLeftPinnedColumn = function getIsLastLeftPinnedColumn() {
2502
+ return column.getIsPinned() === 'left' && tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex();
2503
+ };
2504
+
2505
+ var getIsFirstRightPinnedColumn = function getIsFirstRightPinnedColumn() {
2506
+ return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
2507
+ };
2508
+
2509
+ var getTotalRight = function getTotalRight() {
2510
+ return (tableInstance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
2511
+ };
2512
+
2398
2513
  return React__default.createElement(material.TableCell, Object.assign({
2399
2514
  onClick: function onClick(event) {
2400
2515
  return onCellClick == null ? void 0 : onCellClick({
@@ -2405,17 +2520,28 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2405
2520
  },
2406
2521
  onDoubleClick: handleDoubleClick
2407
2522
  }, tableCellProps, {
2408
- sx: _extends({
2409
- cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
2410
- maxWidth: "min(" + column.getWidth() + "px, fit-content)",
2411
- minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2412
- p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2413
- pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
2414
- transition: 'all 0.2s ease-in-out',
2415
- whiteSpace: isDensePadding || enablePinning && getIsSomeColumnsPinned() ? 'nowrap' : 'normal',
2416
- width: column.getWidth()
2417
- }, tableCellProps == null ? void 0 : tableCellProps.sx)
2418
- }), isLoading ? React__default.createElement(material.Skeleton, Object.assign({
2523
+ sx: function sx(theme) {
2524
+ return _extends({
2525
+ backgroundColor: column.getIsPinned() ? material.alpha(material.lighten(theme.palette.background["default"], 0.04), 0.95) : undefined,
2526
+ boxShadow: getIsLastLeftPinnedColumn() ? "4px 0 4px -2px " + material.alpha(theme.palette.common.black, 0.1) : getIsFirstRightPinnedColumn() ? "-4px 0 4px -2px " + material.alpha(theme.palette.common.black, 0.1) : undefined,
2527
+ cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
2528
+ left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
2529
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
2530
+ minWidth: "max" + column.getSize() + "px, " + column.minSize + "px",
2531
+ p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2532
+ pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
2533
+ position: column.getIsPinned() ? 'sticky' : 'relative',
2534
+ right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2535
+ transition: 'all 0.2s ease-in-out',
2536
+ whiteSpace: isDensePadding ? 'nowrap' : 'normal',
2537
+ width: column.getSize(),
2538
+ zIndex: column.getIsPinned() ? 1 : undefined,
2539
+ '&:hover': {
2540
+ backgroundColor: enableHover ? theme.palette.mode === 'dark' ? material.lighten(theme.palette.background["default"], 0.13) + " !important" : material.darken(theme.palette.background["default"], 0.07) + " !important" : undefined
2541
+ }
2542
+ }, tableCellProps == null ? void 0 : tableCellProps.sx);
2543
+ }
2544
+ }), React__default.createElement(React__default.Fragment, null, isLoading || showSkeletons ? React__default.createElement(material.Skeleton, Object.assign({
2419
2545
  animation: "wave",
2420
2546
  height: 20,
2421
2547
  width: skeletonWidth
@@ -2428,13 +2554,13 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2428
2554
  }) : (enableClickToCopy || column.enableClickToCopy) && column.enableClickToCopy !== false ? React__default.createElement(React__default.Fragment, null, React__default.createElement(MRT_CopyButton, {
2429
2555
  cell: cell,
2430
2556
  tableInstance: tableInstance
2431
- }, (_cell$column$Cell = (_cell$column = cell.column) == null ? void 0 : _cell$column.Cell == null ? void 0 : _cell$column.Cell({
2557
+ }, React__default.createElement(React__default.Fragment, null, (_cell$column$Cell = (_cell$column = cell.column) == null ? void 0 : _cell$column.Cell == null ? void 0 : _cell$column.Cell({
2432
2558
  cell: cell,
2433
2559
  tableInstance: tableInstance
2434
- })) != null ? _cell$column$Cell : cell.renderCell()), row.getIsGrouped() && React__default.createElement(React__default.Fragment, null, " (", (_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length, ")")) : React__default.createElement(React__default.Fragment, null, (_cell$column$Cell2 = (_cell$column2 = cell.column) == null ? void 0 : _cell$column2.Cell == null ? void 0 : _cell$column2.Cell({
2560
+ })) != null ? _cell$column$Cell : cell.renderCell())), row.getIsGrouped() && React__default.createElement(React__default.Fragment, null, " (", (_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length, ")")) : React__default.createElement(React__default.Fragment, null, (_cell$column$Cell2 = (_cell$column2 = cell.column) == null ? void 0 : _cell$column2.Cell == null ? void 0 : _cell$column2.Cell({
2435
2561
  cell: cell,
2436
2562
  tableInstance: tableInstance
2437
- })) != null ? _cell$column$Cell2 : cell.renderCell(), row.getIsGrouped() && React__default.createElement(React__default.Fragment, null, " (", (_row$subRows2 = row.subRows) == null ? void 0 : _row$subRows2.length, ")")));
2563
+ })) != null ? _cell$column$Cell2 : cell.renderCell(), row.getIsGrouped() && React__default.createElement(React__default.Fragment, null, " (", (_row$subRows2 = row.subRows) == null ? void 0 : _row$subRows2.length, ")"))));
2438
2564
  };
2439
2565
 
2440
2566
  var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
@@ -2479,33 +2605,16 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
2479
2605
  };
2480
2606
 
2481
2607
  var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2482
- var pinned = _ref.pinned,
2483
- row = _ref.row,
2608
+ var row = _ref.row,
2484
2609
  tableInstance = _ref.tableInstance;
2485
2610
  var _tableInstance$option = tableInstance.options,
2486
2611
  muiTableBodyRowProps = _tableInstance$option.muiTableBodyRowProps,
2487
2612
  onRowClick = _tableInstance$option.onRowClick,
2488
2613
  renderDetailPanel = _tableInstance$option.renderDetailPanel;
2489
- var getCenterVisibleCells = row.getCenterVisibleCells,
2490
- getIsGrouped = row.getIsGrouped,
2491
- getIsSelected = row.getIsSelected,
2492
- getLeftVisibleCells = row.getLeftVisibleCells,
2493
- getRightVisibleCells = row.getRightVisibleCells,
2494
- getRowProps = row.getRowProps,
2495
- getVisibleCells = row.getVisibleCells;
2496
- var mTableBodyRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps({
2614
+ var tableRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps({
2497
2615
  row: row,
2498
2616
  tableInstance: tableInstance
2499
2617
  }) : muiTableBodyRowProps;
2500
-
2501
- var tableRowProps = _extends({}, getRowProps(), mTableBodyRowProps);
2502
-
2503
- var getVisibleCellsMap = {
2504
- center: getCenterVisibleCells,
2505
- left: getLeftVisibleCells,
2506
- none: getVisibleCells,
2507
- right: getRightVisibleCells
2508
- };
2509
2618
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.TableRow, Object.assign({
2510
2619
  hover: true,
2511
2620
  onClick: function onClick(event) {
@@ -2515,39 +2624,44 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2515
2624
  tableInstance: tableInstance
2516
2625
  });
2517
2626
  },
2518
- selected: getIsSelected()
2519
- }, tableRowProps), getVisibleCellsMap[pinned]().map(function (cell) {
2627
+ selected: row.getIsSelected()
2628
+ }, tableRowProps, {
2629
+ sx: function sx(theme) {
2630
+ return _extends({
2631
+ backgroundColor: material.lighten(theme.palette.background["default"], 0.06),
2632
+ transition: 'all 0.2s ease-in-out',
2633
+ '&:hover td': {
2634
+ backgroundColor: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false ? theme.palette.mode === 'dark' ? "" + material.lighten(theme.palette.background["default"], 0.12) : "" + material.darken(theme.palette.background["default"], 0.05) : undefined
2635
+ }
2636
+ }, tableRowProps == null ? void 0 : tableRowProps.sx);
2637
+ }
2638
+ }), row.getVisibleCells().map(function (cell) {
2520
2639
  return React__default.createElement(MRT_TableBodyCell, {
2521
2640
  cell: cell,
2522
- key: cell.getCellProps().key,
2641
+ key: cell.id,
2642
+ enableHover: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false,
2523
2643
  tableInstance: tableInstance
2524
2644
  });
2525
- })), renderDetailPanel && !getIsGrouped() && React__default.createElement(MRT_TableDetailPanel, {
2645
+ })), renderDetailPanel && !row.getIsGrouped() && React__default.createElement(MRT_TableDetailPanel, {
2526
2646
  row: row,
2527
2647
  tableInstance: tableInstance
2528
2648
  }));
2529
2649
  };
2530
2650
 
2531
2651
  var MRT_TableBody = function MRT_TableBody(_ref) {
2532
- var pinned = _ref.pinned,
2533
- tableInstance = _ref.tableInstance;
2652
+ var tableInstance = _ref.tableInstance;
2534
2653
  var getPaginationRowModel = tableInstance.getPaginationRowModel,
2535
2654
  getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
2536
- getTableBodyProps = tableInstance.getTableBodyProps,
2537
2655
  _tableInstance$option = tableInstance.options,
2538
2656
  enablePagination = _tableInstance$option.enablePagination,
2539
2657
  muiTableBodyProps = _tableInstance$option.muiTableBodyProps;
2540
2658
  var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
2541
- var mTableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
2659
+ var tableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
2542
2660
  tableInstance: tableInstance
2543
2661
  }) : muiTableBodyProps;
2544
-
2545
- var tableBodyProps = _extends({}, getTableBodyProps(), mTableBodyProps);
2546
-
2547
2662
  return React__default.createElement(material.TableBody, Object.assign({}, tableBodyProps), rows.map(function (row) {
2548
2663
  return React__default.createElement(MRT_TableBodyRow, {
2549
- key: row.getRowProps().key,
2550
- pinned: pinned,
2664
+ key: row.id,
2551
2665
  row: row,
2552
2666
  tableInstance: tableInstance
2553
2667
  });
@@ -2577,23 +2691,23 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2577
2691
  tableInstance: tableInstance
2578
2692
  }) : column.muiTableFooterCellProps;
2579
2693
 
2580
- var tableCellProps = _extends({}, footer.getFooterProps(), mTableFooterCellProps, mcTableFooterCellProps);
2694
+ var tableCellProps = _extends({}, mTableFooterCellProps, mcTableFooterCellProps);
2581
2695
 
2582
2696
  return React__default.createElement(material.TableCell, Object.assign({
2583
2697
  align: column.columnDefType === 'group' ? 'center' : 'left',
2698
+ colSpan: footer.colSpan,
2584
2699
  variant: "head"
2585
2700
  }, tableCellProps, {
2586
- //@ts-ignore
2587
2701
  sx: function sx(theme) {
2588
2702
  return _extends({
2589
2703
  backgroundColor: theme.palette.background["default"],
2590
2704
  backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2591
2705
  fontWeight: 'bold',
2592
- maxWidth: "min(" + column.getWidth() + "px, " + column.maxWidth + "px)",
2593
- minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2706
+ maxWidth: column.getSize() + "px",
2707
+ minWidth: column.getSize() + "px",
2594
2708
  p: isDensePadding ? '0.5rem' : '1rem',
2595
2709
  transition: "all " + (enableColumnResizing ? '10ms' : '0.2s') + " ease-in-out",
2596
- width: column.getWidth(),
2710
+ width: column.getSize(),
2597
2711
  verticalAlign: 'text-top'
2598
2712
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2599
2713
  }
@@ -2611,107 +2725,69 @@ var MRT_TableFooterRow = function MRT_TableFooterRow(_ref) {
2611
2725
  var muiTableFooterRowProps = tableInstance.options.muiTableFooterRowProps; // if no content in row, skip row
2612
2726
 
2613
2727
  if (!((_footerGroup$headers = footerGroup.headers) != null && _footerGroup$headers.some(function (h) {
2614
- return h.column.columnDef.footer || h.column.Footer;
2728
+ return typeof h.column.footer === 'string' && !!h.column.footer || h.column.Footer;
2615
2729
  }))) return null;
2616
- var mTableFooterRowProps = muiTableFooterRowProps instanceof Function ? muiTableFooterRowProps({
2730
+ var tableRowProps = muiTableFooterRowProps instanceof Function ? muiTableFooterRowProps({
2617
2731
  footerGroup: footerGroup,
2618
2732
  tableInstance: tableInstance
2619
2733
  }) : muiTableFooterRowProps;
2620
-
2621
- var tableRowProps = _extends({}, footerGroup.getFooterGroupProps(), mTableFooterRowProps);
2622
-
2623
2734
  return React__default.createElement(material.TableRow, Object.assign({}, tableRowProps), footerGroup.headers.map(function (footer) {
2624
2735
  return React__default.createElement(MRT_TableFooterCell, {
2625
2736
  footer: footer,
2626
- key: footer.getFooterProps().key,
2737
+ key: footer.id,
2627
2738
  tableInstance: tableInstance
2628
2739
  });
2629
2740
  }));
2630
2741
  };
2631
2742
 
2632
2743
  var MRT_TableFooter = function MRT_TableFooter(_ref) {
2633
- var pinned = _ref.pinned,
2634
- tableInstance = _ref.tableInstance;
2635
- var getCenterFooterGroups = tableInstance.getCenterFooterGroups,
2636
- getFooterGroups = tableInstance.getFooterGroups,
2637
- getLeftFooterGroups = tableInstance.getLeftFooterGroups,
2638
- getRightFooterGroups = tableInstance.getRightFooterGroups,
2744
+ var tableInstance = _ref.tableInstance;
2745
+ var getFooterGroups = tableInstance.getFooterGroups,
2639
2746
  muiTableFooterProps = tableInstance.options.muiTableFooterProps;
2640
2747
  var tableFooterProps = muiTableFooterProps instanceof Function ? muiTableFooterProps({
2641
2748
  tableInstance: tableInstance
2642
2749
  }) : muiTableFooterProps;
2643
- var getFooterGroupsMap = {
2644
- center: getCenterFooterGroups,
2645
- left: getLeftFooterGroups,
2646
- none: getFooterGroups,
2647
- right: getRightFooterGroups
2648
- };
2649
- return React__default.createElement(material.TableFooter, Object.assign({}, tableFooterProps), getFooterGroupsMap[pinned]().map(function (footerGroup) {
2750
+ return React__default.createElement(material.TableFooter, Object.assign({}, tableFooterProps), getFooterGroups().map(function (footerGroup) {
2650
2751
  return React__default.createElement(MRT_TableFooterRow, {
2651
2752
  footerGroup: footerGroup,
2652
- key: footerGroup.getFooterGroupProps().key,
2753
+ key: footerGroup.id,
2653
2754
  tableInstance: tableInstance
2654
2755
  });
2655
2756
  }));
2656
2757
  };
2657
2758
 
2658
2759
  var MRT_Table = function MRT_Table(_ref) {
2659
- var pinned = _ref.pinned,
2660
- tableInstance = _ref.tableInstance;
2661
- var getTableProps = tableInstance.getTableProps,
2662
- _tableInstance$option = tableInstance.options,
2663
- muiTableProps = _tableInstance$option.muiTableProps,
2664
- enableTableHead = _tableInstance$option.enableTableHead,
2760
+ var tableInstance = _ref.tableInstance;
2761
+ var _tableInstance$option = tableInstance.options,
2762
+ enableStickyHeader = _tableInstance$option.enableStickyHeader,
2665
2763
  enableTableFooter = _tableInstance$option.enableTableFooter,
2666
- enableStickyHeader = _tableInstance$option.enableStickyHeader;
2667
- var mTableProps = muiTableProps instanceof Function ? muiTableProps({
2764
+ enableTableHead = _tableInstance$option.enableTableHead,
2765
+ muiTableProps = _tableInstance$option.muiTableProps;
2766
+ var tableProps = muiTableProps instanceof Function ? muiTableProps({
2668
2767
  tableInstance: tableInstance
2669
2768
  }) : muiTableProps;
2670
-
2671
- var tableProps = _extends({}, getTableProps(), mTableProps);
2672
-
2673
2769
  return React__default.createElement(material.Table, Object.assign({
2674
2770
  stickyHeader: enableStickyHeader
2675
2771
  }, tableProps), enableTableHead && React__default.createElement(MRT_TableHead, {
2676
- pinned: pinned,
2677
2772
  tableInstance: tableInstance
2678
2773
  }), React__default.createElement(MRT_TableBody, {
2679
- pinned: pinned,
2680
2774
  tableInstance: tableInstance
2681
2775
  }), enableTableFooter && React__default.createElement(MRT_TableFooter, {
2682
- pinned: pinned,
2683
2776
  tableInstance: tableInstance
2684
2777
  }));
2685
2778
  };
2686
2779
 
2687
- var commonBoxStyles = function commonBoxStyles(_ref) {
2688
- var pinned = _ref.pinned,
2689
- theme = _ref.theme,
2690
- visible = _ref.visible;
2691
- return {
2692
- display: 'grid',
2693
- minWidth: visible ? '200px' : 0,
2694
- overflowX: pinned ? 'scroll' : 'auto',
2695
- boxShadow: pinned === 'left' ? "0 1px 12px " + material.alpha(theme.palette.common.black, 0.5) : pinned === 'right' ? "0 -1px 12px " + material.alpha(theme.palette.common.black, 0.5) : 'none'
2696
- };
2697
- };
2698
-
2699
- var MRT_TableContainer = function MRT_TableContainer(_ref2) {
2700
- var tableInstance = _ref2.tableInstance;
2701
- var getCenterTableWidth = tableInstance.getCenterTableWidth,
2702
- getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
2703
- getLeftTableWidth = tableInstance.getLeftTableWidth,
2704
- getRightTableWidth = tableInstance.getRightTableWidth,
2705
- getState = tableInstance.getState,
2780
+ var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
2781
+ var MRT_TableContainer = function MRT_TableContainer(_ref) {
2782
+ var tableInstance = _ref.tableInstance;
2783
+ var getState = tableInstance.getState,
2706
2784
  _tableInstance$option = tableInstance.options,
2707
- enablePinning = _tableInstance$option.enablePinning,
2708
2785
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
2709
2786
  idPrefix = _tableInstance$option.idPrefix,
2710
2787
  muiTableContainerProps = _tableInstance$option.muiTableContainerProps;
2711
2788
 
2712
2789
  var _getState = getState(),
2713
- isFullScreen = _getState.isFullScreen,
2714
- columnPinning = _getState.columnPinning;
2790
+ isFullScreen = _getState.isFullScreen;
2715
2791
 
2716
2792
  var _useState = React.useState(0),
2717
2793
  totalToolbarHeight = _useState[0],
@@ -2720,7 +2796,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref2) {
2720
2796
  var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps({
2721
2797
  tableInstance: tableInstance
2722
2798
  }) : muiTableContainerProps;
2723
- React.useEffect(function () {
2799
+ useIsomorphicLayoutEffect(function () {
2724
2800
  var _document$getElementB, _document, _document$getElementB2, _document$getElementB3, _document2, _document2$getElement;
2725
2801
 
2726
2802
  var topToolbarHeight = typeof document !== 'undefined' ? (_document$getElementB = (_document = document) == null ? void 0 : (_document$getElementB2 = _document.getElementById("mrt-" + idPrefix + "-toolbar-top")) == null ? void 0 : _document$getElementB2.offsetHeight) != null ? _document$getElementB : 0 : 0;
@@ -2736,48 +2812,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref2) {
2736
2812
  style: {
2737
2813
  maxHeight: isFullScreen ? "calc(100vh - " + totalToolbarHeight + "px)" : undefined
2738
2814
  }
2739
- }), enablePinning && getIsSomeColumnsPinned() ? React__default.createElement(material.Box, {
2740
- sx: {
2741
- display: 'grid',
2742
- gridTemplateColumns: getLeftTableWidth() + "fr " + getCenterTableWidth() + "fr " + getRightTableWidth() + "fr"
2743
- }
2744
- }, React__default.createElement(material.Box, {
2745
- sx: function sx(theme) {
2746
- var _columnPinning$left;
2747
-
2748
- return commonBoxStyles({
2749
- pinned: 'left',
2750
- theme: theme,
2751
- visible: !!((_columnPinning$left = columnPinning.left) != null && _columnPinning$left.length)
2752
- });
2753
- }
2754
- }, React__default.createElement(MRT_Table, {
2755
- pinned: "left",
2756
- tableInstance: tableInstance
2757
- })), React__default.createElement(material.Box, {
2758
- sx: function sx(theme) {
2759
- return commonBoxStyles({
2760
- theme: theme
2761
- });
2762
- }
2763
- }, React__default.createElement(MRT_Table, {
2764
- pinned: "center",
2765
- tableInstance: tableInstance
2766
- })), React__default.createElement(material.Box, {
2767
- sx: function sx(theme) {
2768
- var _columnPinning$right;
2769
-
2770
- return commonBoxStyles({
2771
- pinned: 'right',
2772
- theme: theme,
2773
- visible: !!((_columnPinning$right = columnPinning.right) != null && _columnPinning$right.length)
2774
- });
2775
- }
2776
- }, React__default.createElement(MRT_Table, {
2777
- pinned: "right",
2778
- tableInstance: tableInstance
2779
- }))) : React__default.createElement(MRT_Table, {
2780
- pinned: "none",
2815
+ }), React__default.createElement(MRT_Table, {
2781
2816
  tableInstance: tableInstance
2782
2817
  }));
2783
2818
  };
@@ -2858,19 +2893,19 @@ var getAllLeafColumnDefs = function getAllLeafColumnDefs(columns) {
2858
2893
  return !col.columns;
2859
2894
  });
2860
2895
  };
2861
- var createGroup = function createGroup(table, column, currentFilterTypes) {
2896
+ var createGroup = function createGroup(table, column, currentFilterFns) {
2862
2897
  var _column$columns;
2863
2898
 
2864
2899
  return table.createGroup(_extends({}, column, {
2865
2900
  columns: column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.map == null ? void 0 : _column$columns.map(function (col) {
2866
- return col.columns ? createGroup(table, col, currentFilterTypes) : createDataColumn(table, col, currentFilterTypes);
2901
+ return col.columns ? createGroup(table, col, currentFilterFns) : createDataColumn(table, col, currentFilterFns);
2867
2902
  })
2868
2903
  }));
2869
2904
  };
2870
- var createDataColumn = function createDataColumn(table, column, currentFilterTypes) {
2905
+ var createDataColumn = function createDataColumn(table, column, currentFilterFns) {
2871
2906
  return (// @ts-ignore
2872
2907
  table.createDataColumn(column.id, _extends({
2873
- filterFn: currentFilterTypes[column.id] instanceof Function ? currentFilterTypes[column.id] : defaultFilterFNs[currentFilterTypes[column.id]]
2908
+ filterFn: currentFilterFns[column.id] instanceof Function ? currentFilterFns[column.id] : defaultFilterFNs[currentFilterFns[column.id]]
2874
2909
  }, column))
2875
2910
  );
2876
2911
  };
@@ -2879,7 +2914,7 @@ var createDisplayColumn = function createDisplayColumn(table, column) {
2879
2914
  };
2880
2915
 
2881
2916
  var MRT_TableRoot = function MRT_TableRoot(props) {
2882
- var _initialState$current, _initialState$current2, _initialState$isDense, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _initialState$paginat, _initialState$paginat2, _initialState$paginat3, _initialState$paginat4, _initialState$paginat5, _initialState$paginat6, _props$globalFilterTy;
2917
+ var _initialState$current, _initialState$current2, _initialState$isDense, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _initialState$paginat, _initialState$paginat2, _initialState$paginat3, _initialState$paginat4, _initialState$paginat5, _props$globalFilterFn, _props$state3, _props$state4;
2883
2918
 
2884
2919
  var _useState = React.useState(props.idPrefix),
2885
2920
  idPrefix = _useState[0],
@@ -2943,24 +2978,24 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
2943
2978
  var _useState8 = React.useState({
2944
2979
  pageIndex: (_initialState$paginat = initialState == null ? void 0 : (_initialState$paginat2 = initialState.pagination) == null ? void 0 : _initialState$paginat2.pageIndex) != null ? _initialState$paginat : 0,
2945
2980
  pageSize: (_initialState$paginat3 = initialState == null ? void 0 : (_initialState$paginat4 = initialState.pagination) == null ? void 0 : _initialState$paginat4.pageSize) != null ? _initialState$paginat3 : 10,
2946
- pageCount: (_initialState$paginat5 = initialState == null ? void 0 : (_initialState$paginat6 = initialState.pagination) == null ? void 0 : _initialState$paginat6.pageCount) != null ? _initialState$paginat5 : -1
2981
+ pageCount: initialState == null ? void 0 : (_initialState$paginat5 = initialState.pagination) == null ? void 0 : _initialState$paginat5.pageCount
2947
2982
  }),
2948
2983
  pagination = _useState8[0],
2949
2984
  setPagination = _useState8[1];
2950
2985
 
2951
2986
  var _useState9 = React.useState(function () {
2952
2987
  return Object.assign.apply(Object, [{}].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
2953
- var _ref, _c$filter, _initialState$current3, _c$filterSelectOption, _ref2;
2988
+ var _ref, _c$filterFn, _initialState$current3, _c$filterSelectOption, _ref2;
2954
2989
 
2955
- return _ref2 = {}, _ref2[c.id] = (_ref = (_c$filter = c.filter) != null ? _c$filter : initialState == null ? void 0 : (_initialState$current3 = initialState.currentFilterTypes) == null ? void 0 : _initialState$current3[c.id]) != null ? _ref : !!((_c$filterSelectOption = c.filterSelectOptions) != null && _c$filterSelectOption.length) ? MRT_FILTER_TYPE.EQUALS : MRT_FILTER_TYPE.BEST_MATCH, _ref2;
2990
+ return _ref2 = {}, _ref2[c.id] = (_ref = (_c$filterFn = c.filterFn) != null ? _c$filterFn : initialState == null ? void 0 : (_initialState$current3 = initialState.currentFilterFns) == null ? void 0 : _initialState$current3[c.id]) != null ? _ref : !!((_c$filterSelectOption = c.filterSelectOptions) != null && _c$filterSelectOption.length) ? MRT_FILTER_OPTION.EQUALS : MRT_FILTER_OPTION.FUZZY, _ref2;
2956
2991
  })));
2957
2992
  }),
2958
- currentFilterTypes = _useState9[0],
2959
- setCurrentFilterTypes = _useState9[1];
2993
+ currentFilterFns = _useState9[0],
2994
+ setCurrentFilterFns = _useState9[1];
2960
2995
 
2961
- var _useState10 = React.useState((_props$globalFilterTy = props.globalFilterType) != null ? _props$globalFilterTy : MRT_FILTER_TYPE.BEST_MATCH_FIRST),
2962
- currentGlobalFilterType = _useState10[0],
2963
- setCurrentGlobalFilterType = _useState10[1];
2996
+ var _useState10 = React.useState((_props$globalFilterFn = props.globalFilterFn) != null ? _props$globalFilterFn : MRT_FILTER_OPTION.FUZZY),
2997
+ currentGlobalFilterFn = _useState10[0],
2998
+ setCurrentGlobalFilterFn = _useState10[1];
2964
2999
 
2965
3000
  var table = React.useMemo(function () {
2966
3001
  return reactTable.createTable();
@@ -2978,9 +3013,8 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
2978
3013
  },
2979
3014
  header: (_props$localization = props.localization) == null ? void 0 : _props$localization.actions,
2980
3015
  id: 'mrt-row-actions',
2981
- maxWidth: 60,
2982
- width: 60
2983
- }), (props.enableExpanded || props.enableGrouping) && createDisplayColumn(table, {
3016
+ size: 60
3017
+ }), (props.enableExpanding || props.enableGrouping) && createDisplayColumn(table, {
2984
3018
  Cell: function Cell(_ref4) {
2985
3019
  var cell = _ref4.cell;
2986
3020
  return React__default.createElement(MRT_ExpandButton, {
@@ -2995,8 +3029,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
2995
3029
  },
2996
3030
  header: (_props$localization2 = props.localization) == null ? void 0 : _props$localization2.expand,
2997
3031
  id: 'mrt-expand',
2998
- maxWidth: 40,
2999
- width: 40
3032
+ size: 50
3000
3033
  }), props.enableRowSelection && createDisplayColumn(table, {
3001
3034
  Cell: function Cell(_ref5) {
3002
3035
  var cell = _ref5.cell;
@@ -3013,8 +3046,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3013
3046
  },
3014
3047
  header: (_props$localization3 = props.localization) == null ? void 0 : _props$localization3.select,
3015
3048
  id: 'mrt-select',
3016
- maxWidth: 40,
3017
- width: 40
3049
+ size: 50
3018
3050
  }), props.enableRowNumbers && createDisplayColumn(table, {
3019
3051
  Cell: function Cell(_ref6) {
3020
3052
  var cell = _ref6.cell;
@@ -3027,56 +3059,64 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3027
3059
  },
3028
3060
  header: (_props$localization5 = props.localization) == null ? void 0 : _props$localization5.rowNumbers,
3029
3061
  id: 'mrt-row-numbers',
3030
- maxWidth: 40,
3031
- width: 40,
3032
- minWidth: 40
3062
+ size: 50
3033
3063
  })].filter(Boolean);
3034
- }, [props.editingMode, props.enableEditing, props.enableExpandAll, props.enableExpanded, props.enableGrouping, props.enableRowActions, props.enableRowNumbers, props.enableRowSelection, props.enableSelectAll, props.localization, table]);
3064
+ }, [props.editingMode, props.enableEditing, props.enableExpandAll, props.enableExpanding, props.enableGrouping, props.enableRowActions, props.enableRowNumbers, props.enableRowSelection, props.enableSelectAll, props.localization, table]);
3035
3065
  var columns = React.useMemo(function () {
3036
- return table.createColumns([].concat(displayColumns, props.columns.map(function (column) {
3037
- return column.columns ? createGroup(table, column, currentFilterTypes) : createDataColumn(table, column, currentFilterTypes);
3038
- })));
3039
- }, [table, props.columns, currentFilterTypes]);
3066
+ return [].concat(displayColumns, props.columns.map(function (column) {
3067
+ return column.columns ? createGroup(table, column, currentFilterFns) : createDataColumn(table, column, currentFilterFns);
3068
+ }));
3069
+ }, [table, props.columns, currentFilterFns]);
3040
3070
  var data = React.useMemo(function () {
3041
- return props.isLoading && !props.data.length ? [].concat(Array(10).fill(null)).map(function () {
3071
+ var _props$state, _props$state2;
3072
+
3073
+ return ((_props$state = props.state) != null && _props$state.isLoading || (_props$state2 = props.state) != null && _props$state2.showSkeletons) && !props.data.length ? [].concat(Array(10).fill(null)).map(function () {
3042
3074
  return Object.assign.apply(Object, [{}].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
3043
3075
  var _ref7;
3044
3076
 
3045
3077
  return _ref7 = {}, _ref7[c.id] = null, _ref7;
3046
3078
  })));
3047
3079
  }) : props.data;
3048
- }, [props.data, props.isLoading]); //@ts-ignore
3080
+ }, [props.data, (_props$state3 = props.state) == null ? void 0 : _props$state3.isLoading, (_props$state4 = props.state) == null ? void 0 : _props$state4.showSkeletons]); //@ts-ignore
3049
3081
 
3050
3082
  var tableInstance = _extends({}, reactTable.useTableInstance(table, _extends({
3083
+ filterFns: defaultFilterFNs,
3084
+ //@ts-ignore
3085
+ getCoreRowModel: reactTable.getCoreRowModel(),
3051
3086
  //@ts-ignore
3052
- filterTypes: defaultFilterFNs,
3053
- getColumnFilteredRowModel: reactTable.getColumnFilteredRowModelSync(),
3054
- getCoreRowModel: reactTable.getCoreRowModelSync(),
3055
3087
  getExpandedRowModel: reactTable.getExpandedRowModel(),
3056
- getGlobalFilteredRowModel: reactTable.getGlobalFilteredRowModelSync(),
3057
- getGroupedRowModel: reactTable.getGroupedRowModelSync(),
3088
+ //@ts-ignore
3089
+ getFacetedRowModel: reactTable.getFacetedRowModel(),
3090
+ //@ts-ignore
3091
+ getFilteredRowModel: reactTable.getFilteredRowModel(),
3092
+ //@ts-ignore
3093
+ getGroupedRowModel: reactTable.getGroupedRowModel(),
3094
+ //@ts-ignore
3058
3095
  getPaginationRowModel: reactTable.getPaginationRowModel(),
3059
- getSortedRowModel: reactTable.getSortedRowModelSync(),
3060
- getSubRows: function getSubRows(originalRow) {
3061
- return originalRow.subRows;
3096
+ //@ts-ignore
3097
+ getSortedRowModel: reactTable.getSortedRowModel(),
3098
+ //@ts-ignore
3099
+ getSubRows: function getSubRows(row) {
3100
+ return row == null ? void 0 : row.subRows;
3062
3101
  },
3063
- globalFilterType: currentGlobalFilterType,
3102
+ //@ts-ignore
3103
+ globalFilterFn: currentGlobalFilterFn,
3064
3104
  onPaginationChange: function onPaginationChange(updater) {
3065
3105
  return setPagination(function (old) {
3066
3106
  return reactTable.functionalUpdate(updater, old);
3067
3107
  });
3068
3108
  }
3069
3109
  }, props, {
3110
+ //@ts-ignore
3070
3111
  columns: columns,
3071
3112
  data: data,
3072
3113
  idPrefix: idPrefix,
3073
- //@ts-ignore
3074
3114
  initialState: initialState,
3075
3115
  state: _extends({
3076
3116
  currentEditingCell: currentEditingCell,
3077
3117
  currentEditingRow: currentEditingRow,
3078
- currentFilterTypes: currentFilterTypes,
3079
- currentGlobalFilterType: currentGlobalFilterType,
3118
+ currentFilterFns: currentFilterFns,
3119
+ currentGlobalFilterFn: currentGlobalFilterFn,
3080
3120
  isDensePadding: isDensePadding,
3081
3121
  isFullScreen: isFullScreen,
3082
3122
  //@ts-ignore
@@ -3085,12 +3125,10 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3085
3125
  showGlobalFilter: showGlobalFilter
3086
3126
  }, props.state)
3087
3127
  })), {
3088
- //@ts-ignore
3089
3128
  setCurrentEditingCell: setCurrentEditingCell,
3090
- //@ts-ignore
3091
3129
  setCurrentEditingRow: setCurrentEditingRow,
3092
- setCurrentFilterTypes: setCurrentFilterTypes,
3093
- setCurrentGlobalFilterType: setCurrentGlobalFilterType,
3130
+ setCurrentFilterFns: setCurrentFilterFns,
3131
+ setCurrentGlobalFilterFn: setCurrentGlobalFilterFn,
3094
3132
  setIsDensePadding: setIsDensePadding,
3095
3133
  setIsFullScreen: setIsFullScreen,
3096
3134
  setShowFilters: setShowFilters,
@@ -3120,24 +3158,24 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3120
3158
  }
3121
3159
  }, [props.enablePersistentState, props.idPrefix, props.persistentStateMode, tableInstance]);
3122
3160
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.Dialog, {
3123
- TransitionComponent: material.Grow,
3124
3161
  PaperComponent: material.Box,
3162
+ TransitionComponent: material.Grow,
3125
3163
  disablePortal: true,
3126
3164
  fullScreen: true,
3127
3165
  keepMounted: false,
3128
3166
  onClose: function onClose() {
3129
- return tableInstance.setIsFullScreen(false);
3167
+ return setIsFullScreen(false);
3130
3168
  },
3131
- open: tableInstance.getState().isFullScreen,
3169
+ open: isFullScreen,
3132
3170
  transitionDuration: 400
3133
3171
  }, React__default.createElement(MRT_TablePaper, {
3134
3172
  tableInstance: tableInstance
3135
- })), !tableInstance.getState().isFullScreen && React__default.createElement(MRT_TablePaper, {
3173
+ })), !isFullScreen && React__default.createElement(MRT_TablePaper, {
3136
3174
  tableInstance: tableInstance
3137
3175
  }));
3138
3176
  };
3139
3177
 
3140
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableHiding", "enableMultiRowSelection", "enablePagination", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
3178
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
3141
3179
  var MaterialReactTable = (function (_ref) {
3142
3180
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3143
3181
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -3167,6 +3205,8 @@ var MaterialReactTable = (function (_ref) {
3167
3205
  enableMultiRowSelection = _ref$enableMultiRowSe === void 0 ? true : _ref$enableMultiRowSe,
3168
3206
  _ref$enablePagination = _ref.enablePagination,
3169
3207
  enablePagination = _ref$enablePagination === void 0 ? true : _ref$enablePagination,
3208
+ _ref$enablePinning = _ref.enablePinning,
3209
+ enablePinning = _ref$enablePinning === void 0 ? false : _ref$enablePinning,
3170
3210
  _ref$enableSelectAll = _ref.enableSelectAll,
3171
3211
  enableSelectAll = _ref$enableSelectAll === void 0 ? true : _ref$enableSelectAll,
3172
3212
  _ref$enableSorting = _ref.enableSorting,
@@ -3202,8 +3242,8 @@ var MaterialReactTable = (function (_ref) {
3202
3242
  columnResizeMode: columnResizeMode,
3203
3243
  editingMode: editingMode,
3204
3244
  enableColumnActions: enableColumnActions,
3205
- enableColumnResizing: enableColumnResizing,
3206
3245
  enableColumnFilters: enableColumnFilters,
3246
+ enableColumnResizing: enableColumnResizing,
3207
3247
  enableDensePaddingToggle: enableDensePaddingToggle,
3208
3248
  enableExpandAll: enableExpandAll,
3209
3249
  enableFilters: enableFilters,
@@ -3212,6 +3252,7 @@ var MaterialReactTable = (function (_ref) {
3212
3252
  enableHiding: enableHiding,
3213
3253
  enableMultiRowSelection: enableMultiRowSelection,
3214
3254
  enablePagination: enablePagination,
3255
+ enablePinning: enablePinning,
3215
3256
  enableSelectAll: enableSelectAll,
3216
3257
  enableSorting: enableSorting,
3217
3258
  enableStickyHeader: enableStickyHeader,