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
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useState, useCallback, Fragment, useEffect } from 'react';
1
+ import React, { useMemo, useState, useCallback, Fragment, useLayoutEffect, useEffect } from 'react';
2
2
  import ArrowRightIcon from '@mui/icons-material/ArrowRight';
3
3
  import CancelIcon from '@mui/icons-material/Cancel';
4
4
  import CheckBoxIcon from '@mui/icons-material/CheckBox';
@@ -27,12 +27,12 @@ import SearchOffIcon from '@mui/icons-material/SearchOff';
27
27
  import SortIcon from '@mui/icons-material/Sort';
28
28
  import ViewColumnIcon from '@mui/icons-material/ViewColumn';
29
29
  import VisibilityOffIcon from '@mui/icons-material/VisibilityOff';
30
- import { createTable, useTableInstance, getColumnFilteredRowModelSync, getCoreRowModelSync, getExpandedRowModel, getGlobalFilteredRowModelSync, getGroupedRowModelSync, getPaginationRowModel, getSortedRowModelSync, functionalUpdate } from '@tanstack/react-table';
31
- import { IconButton, Menu, MenuItem, FormControlLabel, Switch, Box, Button, Divider, ListItemIcon, Tooltip, Checkbox, debounce, Collapse, TextField, InputAdornment, TablePagination, useMediaQuery, Chip, Alert, LinearProgress, Toolbar, alpha, TableCell, TableSortLabel, TableRow, TableHead, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog, Grow } from '@mui/material';
32
- import { matchSorter } from 'match-sorter';
30
+ import { createTable, useTableInstance, getCoreRowModel, getExpandedRowModel, getFacetedRowModel, getFilteredRowModel, getGroupedRowModel, getPaginationRowModel, getSortedRowModel, functionalUpdate } from '@tanstack/react-table';
31
+ import { IconButton, Menu, MenuItem, Box, Tooltip, FormControlLabel, Switch, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, TablePagination, useMediaQuery, Chip, Alert, LinearProgress, Toolbar, lighten, alpha, TableCell, TableSortLabel, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog, Grow } from '@mui/material';
32
+ import { rankItem, rankings } from '@tanstack/match-sorter-utils';
33
33
 
34
34
  function _extends() {
35
- _extends = Object.assign || function (target) {
35
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
36
36
  for (var i = 1; i < arguments.length; i++) {
37
37
  var source = arguments[i];
38
38
 
@@ -45,7 +45,6 @@ function _extends() {
45
45
 
46
46
  return target;
47
47
  };
48
-
49
48
  return _extends.apply(this, arguments);
50
49
  }
51
50
 
@@ -66,6 +65,7 @@ function _objectWithoutPropertiesLoose(source, excluded) {
66
65
 
67
66
  var MRT_DefaultLocalization_EN = {
68
67
  actions: 'Actions',
68
+ and: 'and',
69
69
  cancel: 'Cancel',
70
70
  changeFilterMode: 'Change filter mode',
71
71
  changeSearchMode: 'Change search mode',
@@ -78,24 +78,26 @@ var MRT_DefaultLocalization_EN = {
78
78
  edit: 'Edit',
79
79
  expand: 'Expand',
80
80
  expandAll: 'Expand all',
81
- filterBestMatch: 'Best Match',
82
- filterBestMatchFirst: 'Best Match First',
81
+ filterBetween: 'Between',
83
82
  filterByColumn: 'Filter by {column}',
84
83
  filterContains: 'Contains',
85
84
  filterEmpty: 'Empty',
86
85
  filterEndsWith: 'Ends With',
87
86
  filterEquals: 'Equals',
87
+ filterFuzzy: 'Fuzzy',
88
88
  filterGreaterThan: 'Greater Than',
89
89
  filterLessThan: 'Less Than',
90
90
  filterMode: 'Filter Mode: {filterType}',
91
91
  filterNotEmpty: 'Not Empty',
92
92
  filterNotEquals: 'Not Equals',
93
93
  filterStartsWith: 'Starts With',
94
- filteringByColumn: 'Filtering by {column} - {filterType} "{filterValue}"',
94
+ filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',
95
95
  groupByColumn: 'Group by {column}',
96
96
  groupedBy: 'Grouped by ',
97
97
  hideAll: 'Hide all',
98
98
  hideColumn: 'Hide {column} column',
99
+ max: 'Max',
100
+ min: 'Min',
99
101
  pinToLeft: 'Pin to left',
100
102
  pinToRight: 'Pin to right',
101
103
  resetColumnSize: 'Reset column size',
@@ -116,12 +118,14 @@ var MRT_DefaultLocalization_EN = {
116
118
  sortedByColumnAsc: 'Sorted by {column} ascending',
117
119
  sortedByColumnDesc: 'Sorted by {column} descending',
118
120
  thenBy: ', then by ',
121
+ to: 'to',
119
122
  toggleDensePadding: 'Toggle dense padding',
120
123
  toggleFullScreen: 'Toggle full screen',
121
124
  toggleSelectAll: 'Toggle select all',
122
125
  toggleSelectRow: 'Toggle select row',
123
126
  ungroupByColumn: 'Ungroup by {column}',
124
127
  unpin: 'Unpin',
128
+ unpinAll: 'Unpin all',
125
129
  unsorted: 'Unsorted'
126
130
  };
127
131
 
@@ -163,12 +167,12 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
163
167
  getState = tableInstance.getState,
164
168
  _tableInstance$option = tableInstance.options,
165
169
  DoubleArrowDownIcon = _tableInstance$option.icons.DoubleArrowDownIcon,
166
- isLoading = _tableInstance$option.isLoading,
167
170
  localization = _tableInstance$option.localization,
168
171
  toggleAllRowsExpanded = tableInstance.toggleAllRowsExpanded;
169
172
 
170
173
  var _getState = getState(),
171
- isDensePadding = _getState.isDensePadding;
174
+ isDensePadding = _getState.isDensePadding,
175
+ isLoading = _getState.isLoading;
172
176
 
173
177
  return React.createElement(IconButton, {
174
178
  "aria-label": localization.expandAll,
@@ -228,133 +232,108 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
228
232
  }));
229
233
  };
230
234
 
231
- var MRT_FILTER_TYPE;
232
-
233
- (function (MRT_FILTER_TYPE) {
234
- MRT_FILTER_TYPE["BEST_MATCH"] = "bestMatch";
235
- MRT_FILTER_TYPE["BEST_MATCH_FIRST"] = "bestMatchFirst";
236
- MRT_FILTER_TYPE["CONTAINS"] = "contains";
237
- MRT_FILTER_TYPE["EMPTY"] = "empty";
238
- MRT_FILTER_TYPE["ENDS_WITH"] = "endsWith";
239
- MRT_FILTER_TYPE["EQUALS"] = "equals";
240
- MRT_FILTER_TYPE["GREATER_THAN"] = "greaterThan";
241
- MRT_FILTER_TYPE["LESS_THAN"] = "lessThan";
242
- MRT_FILTER_TYPE["NOT_EMPTY"] = "notEmpty";
243
- MRT_FILTER_TYPE["NOT_EQUALS"] = "notEquals";
244
- MRT_FILTER_TYPE["STARTS_WITH"] = "startsWith";
245
- })(MRT_FILTER_TYPE || (MRT_FILTER_TYPE = {}));
246
-
247
- var bestMatchFirst = function bestMatchFirst(rows, columnIds, filterValue) {
248
- return matchSorter(rows, filterValue.toString().trim(), {
249
- keys: Array.isArray(columnIds) ? columnIds.map(function (c) {
250
- return "values." + c;
251
- }) : ["values." + columnIds]
252
- });
253
- };
254
-
255
- bestMatchFirst.autoRemove = function (val) {
256
- return !val;
257
- };
258
-
259
- var bestMatch = function bestMatch(rows, columnIds, filterValue) {
260
- return matchSorter(rows, filterValue.toString().trim(), {
261
- keys: Array.isArray(columnIds) ? columnIds.map(function (c) {
262
- return "values." + c;
263
- }) : ["values." + columnIds],
264
- sorter: function sorter(rankedItems) {
265
- return rankedItems;
266
- }
235
+ var MRT_FILTER_OPTION;
236
+
237
+ (function (MRT_FILTER_OPTION) {
238
+ MRT_FILTER_OPTION["BETWEEN"] = "between";
239
+ MRT_FILTER_OPTION["CONTAINS"] = "contains";
240
+ MRT_FILTER_OPTION["EMPTY"] = "empty";
241
+ MRT_FILTER_OPTION["ENDS_WITH"] = "endsWith";
242
+ MRT_FILTER_OPTION["EQUALS"] = "equals";
243
+ MRT_FILTER_OPTION["FUZZY"] = "fuzzy";
244
+ MRT_FILTER_OPTION["GREATER_THAN"] = "greaterThan";
245
+ MRT_FILTER_OPTION["LESS_THAN"] = "lessThan";
246
+ MRT_FILTER_OPTION["NOT_EMPTY"] = "notEmpty";
247
+ MRT_FILTER_OPTION["NOT_EQUALS"] = "notEquals";
248
+ MRT_FILTER_OPTION["STARTS_WITH"] = "startsWith";
249
+ })(MRT_FILTER_OPTION || (MRT_FILTER_OPTION = {}));
250
+
251
+ var fuzzy = function fuzzy(row, columnId, value, addMeta) {
252
+ var itemRank = rankItem(row.getValue(columnId), value, {
253
+ threshold: rankings.MATCHES
267
254
  });
255
+ addMeta(itemRank);
256
+ return itemRank.passed;
268
257
  };
269
258
 
270
- bestMatch.autoRemove = function (val) {
259
+ fuzzy.autoRemove = function (val) {
271
260
  return !val;
272
261
  };
273
262
 
274
- var contains = function contains(rows, id, filterValue) {
275
- return rows.filter(function (row) {
276
- return row.values[id].toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
277
- });
263
+ var contains = function contains(row, id, filterValue) {
264
+ return row.getValue(id).toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
278
265
  };
279
266
 
280
267
  contains.autoRemove = function (val) {
281
268
  return !val;
282
269
  };
283
270
 
284
- var startsWith = function startsWith(rows, id, filterValue) {
285
- return rows.filter(function (row) {
286
- return row.values[id].toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
287
- });
271
+ var startsWith = function startsWith(row, id, filterValue) {
272
+ return row.getValue(id).toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
288
273
  };
289
274
 
290
275
  startsWith.autoRemove = function (val) {
291
276
  return !val;
292
277
  };
293
278
 
294
- var endsWith = function endsWith(rows, id, filterValue) {
295
- return rows.filter(function (row) {
296
- return row.values[id].toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
297
- });
279
+ var endsWith = function endsWith(row, id, filterValue) {
280
+ return row.getValue(id).toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
298
281
  };
299
282
 
300
283
  endsWith.autoRemove = function (val) {
301
284
  return !val;
302
285
  };
303
286
 
304
- var equals = function equals(rows, id, filterValue) {
305
- return rows.filter(function (row) {
306
- return row.values[id].toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
307
- });
287
+ var equals = function equals(row, id, filterValue) {
288
+ return row.getValue(id).toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
308
289
  };
309
290
 
310
291
  equals.autoRemove = function (val) {
311
292
  return !val;
312
293
  };
313
294
 
314
- var notEquals = function notEquals(rows, id, filterValue) {
315
- return rows.filter(function (row) {
316
- return row.values[id].toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
317
- });
295
+ var notEquals = function notEquals(row, id, filterValue) {
296
+ return row.getValue(id).toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
318
297
  };
319
298
 
320
299
  notEquals.autoRemove = function (val) {
321
300
  return !val;
322
301
  };
323
302
 
324
- var greaterThan = function greaterThan(rows, id, filterValue) {
325
- return rows.filter(function (row) {
326
- return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] > +filterValue : row.values[id].toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
327
- });
303
+ var greaterThan = function greaterThan(row, id, filterValue) {
304
+ return !isNaN(+filterValue) && !isNaN(+row.getValue(id)) ? +row.getValue(id) >= +filterValue : row.getValue(id).toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
328
305
  };
329
306
 
330
307
  greaterThan.autoRemove = function (val) {
331
308
  return !val;
332
309
  };
333
310
 
334
- var lessThan = function lessThan(rows, id, filterValue) {
335
- return rows.filter(function (row) {
336
- return !isNaN(+filterValue) && !isNaN(+row.values[id]) ? +row.values[id] < +filterValue : row.values[id].toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
337
- });
311
+ var lessThan = function lessThan(row, id, filterValue) {
312
+ return !isNaN(+filterValue) && !isNaN(+row.getValue(id)) ? +row.getValue(id) <= +filterValue : row.getValue(id).toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
338
313
  };
339
314
 
340
315
  lessThan.autoRemove = function (val) {
341
316
  return !val;
342
317
  };
343
318
 
344
- var empty = function empty(rows, id, _filterValue) {
345
- return rows.filter(function (row) {
346
- return !row.values[id].toString().toLowerCase().trim();
347
- });
319
+ var between = function between(row, id, filterValues) {
320
+ 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]));
321
+ };
322
+
323
+ between.autoRemove = function (val) {
324
+ return !val;
325
+ };
326
+
327
+ var empty = function empty(row, id, _filterValue) {
328
+ return !row.getValue(id).toString().trim();
348
329
  };
349
330
 
350
331
  empty.autoRemove = function (val) {
351
332
  return !val;
352
333
  };
353
334
 
354
- var notEmpty = function notEmpty(rows, id, _filterValue) {
355
- return rows.filter(function (row) {
356
- return !!row.values[id].toString().toLowerCase().trim();
357
- });
335
+ var notEmpty = function notEmpty(row, id, _filterValue) {
336
+ return !!row.getValue(id).toString().trim();
358
337
  };
359
338
 
360
339
  notEmpty.autoRemove = function (val) {
@@ -362,12 +341,12 @@ notEmpty.autoRemove = function (val) {
362
341
  };
363
342
 
364
343
  var defaultFilterFNs = {
365
- bestMatch: bestMatch,
366
- bestMatchFirst: bestMatchFirst,
344
+ between: between,
367
345
  contains: contains,
368
346
  empty: empty,
369
347
  endsWith: endsWith,
370
348
  equals: equals,
349
+ fuzzy: fuzzy,
371
350
  greaterThan: greaterThan,
372
351
  lessThan: lessThan,
373
352
  notEmpty: notEmpty,
@@ -380,7 +359,7 @@ var commonMenuItemStyles = {
380
359
  my: 0,
381
360
  alignItems: 'center'
382
361
  };
383
- var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
362
+ var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
384
363
  var anchorEl = _ref.anchorEl,
385
364
  header = _ref.header,
386
365
  onSelect = _ref.onSelect,
@@ -388,97 +367,101 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
388
367
  tableInstance = _ref.tableInstance;
389
368
  var getState = tableInstance.getState,
390
369
  _tableInstance$option = tableInstance.options,
391
- enabledGlobalFilterTypes = _tableInstance$option.enabledGlobalFilterTypes,
370
+ enabledGlobalFilterOptions = _tableInstance$option.enabledGlobalFilterOptions,
392
371
  localization = _tableInstance$option.localization,
393
- setCurrentFilterTypes = tableInstance.setCurrentFilterTypes,
394
- setCurrentGlobalFilterType = tableInstance.setCurrentGlobalFilterType;
372
+ setCurrentFilterFns = tableInstance.setCurrentFilterFns,
373
+ setCurrentGlobalFilterFn = tableInstance.setCurrentGlobalFilterFn;
395
374
 
396
375
  var _getState = getState(),
397
376
  isDensePadding = _getState.isDensePadding,
398
- currentFilterTypes = _getState.currentFilterTypes,
399
- currentGlobalFilterType = _getState.currentGlobalFilterType;
377
+ currentFilterFns = _getState.currentFilterFns,
378
+ currentGlobalFilterFn = _getState.currentGlobalFilterFn;
400
379
 
401
- var filterTypes = useMemo(function () {
380
+ var filterOptions = useMemo(function () {
402
381
  return [{
403
- type: MRT_FILTER_TYPE.BEST_MATCH_FIRST,
404
- label: localization.filterBestMatchFirst,
382
+ option: MRT_FILTER_OPTION.FUZZY,
383
+ label: localization.filterFuzzy,
405
384
  divider: false,
406
- fn: bestMatchFirst
385
+ fn: fuzzy
407
386
  }, {
408
- type: MRT_FILTER_TYPE.BEST_MATCH,
409
- label: localization.filterBestMatch,
410
- divider: !!header,
411
- fn: bestMatch
412
- }, {
413
- type: MRT_FILTER_TYPE.CONTAINS,
387
+ option: MRT_FILTER_OPTION.CONTAINS,
414
388
  label: localization.filterContains,
415
389
  divider: false,
416
390
  fn: contains
417
391
  }, {
418
- type: MRT_FILTER_TYPE.STARTS_WITH,
392
+ option: MRT_FILTER_OPTION.STARTS_WITH,
419
393
  label: localization.filterStartsWith,
420
394
  divider: false,
421
395
  fn: startsWith
422
396
  }, {
423
- type: MRT_FILTER_TYPE.ENDS_WITH,
397
+ option: MRT_FILTER_OPTION.ENDS_WITH,
424
398
  label: localization.filterEndsWith,
425
399
  divider: true,
426
400
  fn: endsWith
427
401
  }, {
428
- type: MRT_FILTER_TYPE.EQUALS,
402
+ option: MRT_FILTER_OPTION.EQUALS,
429
403
  label: localization.filterEquals,
430
404
  divider: false,
431
405
  fn: equals
432
406
  }, {
433
- type: MRT_FILTER_TYPE.NOT_EQUALS,
407
+ option: MRT_FILTER_OPTION.NOT_EQUALS,
434
408
  label: localization.filterNotEquals,
435
409
  divider: true,
436
410
  fn: notEquals
437
411
  }, {
438
- type: MRT_FILTER_TYPE.GREATER_THAN,
412
+ option: MRT_FILTER_OPTION.BETWEEN,
413
+ label: localization.filterBetween,
414
+ divider: false,
415
+ fn: between
416
+ }, {
417
+ option: MRT_FILTER_OPTION.GREATER_THAN,
439
418
  label: localization.filterGreaterThan,
440
419
  divider: false,
441
420
  fn: greaterThan
442
421
  }, {
443
- type: MRT_FILTER_TYPE.LESS_THAN,
422
+ option: MRT_FILTER_OPTION.LESS_THAN,
444
423
  label: localization.filterLessThan,
445
424
  divider: true,
446
425
  fn: lessThan
447
426
  }, {
448
- type: MRT_FILTER_TYPE.EMPTY,
427
+ option: MRT_FILTER_OPTION.EMPTY,
449
428
  label: localization.filterEmpty,
450
429
  divider: false,
451
430
  fn: empty
452
431
  }, {
453
- type: MRT_FILTER_TYPE.NOT_EMPTY,
432
+ option: MRT_FILTER_OPTION.NOT_EMPTY,
454
433
  label: localization.filterNotEmpty,
455
434
  divider: false,
456
435
  fn: notEmpty
457
436
  }].filter(function (filterType) {
458
- 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);
437
+ 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);
459
438
  });
460
439
  }, []);
461
440
 
462
441
  var handleSelectFilterType = function handleSelectFilterType(value) {
463
442
  if (header) {
464
- setCurrentFilterTypes(function (prev) {
443
+ setCurrentFilterFns(function (prev) {
465
444
  var _extends2;
466
445
 
467
446
  return _extends({}, prev, (_extends2 = {}, _extends2[header.id] = value, _extends2));
468
447
  });
469
448
 
470
- if ([MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(value)) {
471
- header.column.setColumnFilterValue(' ');
449
+ if ([MRT_FILTER_OPTION.EMPTY, MRT_FILTER_OPTION.NOT_EMPTY].includes(value)) {
450
+ header.column.setFilterValue(' ');
451
+ } else if (value === MRT_FILTER_OPTION.BETWEEN) {
452
+ header.column.setFilterValue(['', '']);
453
+ } else {
454
+ header.column.setFilterValue('');
472
455
  }
473
456
  } else {
474
- setCurrentGlobalFilterType(value);
457
+ setCurrentGlobalFilterFn(value);
475
458
  }
476
459
 
477
460
  setAnchorEl(null);
478
461
  onSelect == null ? void 0 : onSelect();
479
462
  };
480
463
 
481
- var filterType = !!header ? currentFilterTypes[header.id] : currentGlobalFilterType;
464
+ var filterOption = !!header ? currentFilterFns[header.id] : currentGlobalFilterFn;
482
465
  return React.createElement(Menu, {
483
466
  anchorEl: anchorEl,
484
467
  anchorOrigin: {
@@ -492,8 +475,8 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
492
475
  MenuListProps: {
493
476
  dense: isDensePadding
494
477
  }
495
- }, filterTypes.map(function (_ref2, index) {
496
- var type = _ref2.type,
478
+ }, filterOptions.map(function (_ref2, index) {
479
+ var option = _ref2.option,
497
480
  label = _ref2.label,
498
481
  divider = _ref2.divider,
499
482
  fn = _ref2.fn;
@@ -501,15 +484,65 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
501
484
  divider: divider,
502
485
  key: index,
503
486
  onClick: function onClick() {
504
- return handleSelectFilterType(type);
487
+ return handleSelectFilterType(option);
505
488
  },
506
- selected: type === filterType || fn === filterType,
489
+ selected: option === filterOption || fn === filterOption,
507
490
  sx: commonMenuItemStyles,
508
- value: type
491
+ value: option
509
492
  }, label);
510
493
  }));
511
494
  };
512
495
 
496
+ var MRT_ColumnPinningButtons = function MRT_ColumnPinningButtons(_ref) {
497
+ var column = _ref.column,
498
+ tableInstance = _ref.tableInstance;
499
+ var _tableInstance$option = tableInstance.options,
500
+ PushPinIcon = _tableInstance$option.icons.PushPinIcon,
501
+ localization = _tableInstance$option.localization;
502
+
503
+ var handlePinColumn = function handlePinColumn(pinDirection) {
504
+ column.pin(pinDirection);
505
+ };
506
+
507
+ return React.createElement(Box, {
508
+ sx: {
509
+ mr: '8px'
510
+ }
511
+ }, column.getIsPinned() ? React.createElement(Tooltip, {
512
+ arrow: true,
513
+ title: localization.unpin
514
+ }, React.createElement(IconButton, {
515
+ onClick: function onClick() {
516
+ return handlePinColumn(false);
517
+ },
518
+ size: "small"
519
+ }, React.createElement(PushPinIcon, null))) : React.createElement(React.Fragment, null, React.createElement(Tooltip, {
520
+ arrow: true,
521
+ title: localization.pinToLeft
522
+ }, React.createElement(IconButton, {
523
+ onClick: function onClick() {
524
+ return handlePinColumn('left');
525
+ },
526
+ size: "small"
527
+ }, React.createElement(PushPinIcon, {
528
+ style: {
529
+ transform: 'rotate(90deg)'
530
+ }
531
+ }))), React.createElement(Tooltip, {
532
+ arrow: true,
533
+ title: localization.pinToRight
534
+ }, React.createElement(IconButton, {
535
+ onClick: function onClick() {
536
+ return handlePinColumn('right');
537
+ },
538
+ size: "small"
539
+ }, React.createElement(PushPinIcon, {
540
+ style: {
541
+ transform: 'rotate(-90deg)'
542
+ }
543
+ })))));
544
+ };
545
+
513
546
  var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
514
547
  var _column$columns2;
515
548
 
@@ -545,10 +578,17 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
545
578
  };
546
579
 
547
580
  return React.createElement(React.Fragment, null, React.createElement(MenuItem, {
548
- sx: _extends({}, commonMenuItemStyles$1, {
549
- pl: (column.depth + 0.5) * 2 + "rem"
550
- })
551
- }, React.createElement(FormControlLabel, {
581
+ sx: {
582
+ alignItems: 'center',
583
+ justifyContent: 'flex-start',
584
+ my: 0,
585
+ pl: (column.depth + 0.5) * 2 + "rem",
586
+ py: '6px'
587
+ }
588
+ }, !isSubMenu && column.getCanPin() && React.createElement(MRT_ColumnPinningButtons, {
589
+ column: column,
590
+ tableInstance: tableInstance
591
+ }), React.createElement(FormControlLabel, {
552
592
  componentsProps: {
553
593
  typography: {
554
594
  sx: {
@@ -558,7 +598,7 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
558
598
  },
559
599
  checked: switchChecked,
560
600
  control: React.createElement(Switch, null),
561
- disabled: isSubMenu && switchChecked || column.enableHiding === false,
601
+ disabled: isSubMenu && switchChecked || !column.getCanHide(),
562
602
  label: column.header,
563
603
  onChange: function onChange() {
564
604
  return handleToggleColumnHidden(column);
@@ -585,7 +625,9 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
585
625
  getState = tableInstance.getState,
586
626
  toggleAllColumnsVisible = tableInstance.toggleAllColumnsVisible,
587
627
  getAllLeafColumns = tableInstance.getAllLeafColumns,
588
- localization = tableInstance.options.localization;
628
+ _tableInstance$option = tableInstance.options,
629
+ localization = _tableInstance$option.localization,
630
+ enablePinning = _tableInstance$option.enablePinning;
589
631
 
590
632
  var _getState = getState(),
591
633
  isDensePadding = _getState.isDensePadding;
@@ -609,9 +651,9 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
609
651
  });
610
652
  return getIsSomeColumnsPinned() ? [].concat(dataColumns.filter(function (c) {
611
653
  return c.getIsPinned() === 'left';
612
- }), dataColumns.filter(function (c) {
654
+ }), [null], dataColumns.filter(function (c) {
613
655
  return c.getIsPinned() === false;
614
- }), dataColumns.filter(function (c) {
656
+ }), [null], dataColumns.filter(function (c) {
615
657
  return c.getIsPinned() === 'right';
616
658
  })) : dataColumns;
617
659
  }, [getAllColumns(), getState().columnPinning, getIsSomeColumnsPinned()]);
@@ -634,7 +676,12 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
634
676
  }, !isSubMenu && React.createElement(Button, {
635
677
  disabled: !getIsSomeColumnsVisible(),
636
678
  onClick: hideAllColumns
637
- }, localization.hideAll), React.createElement(Button, {
679
+ }, localization.hideAll), !isSubMenu && enablePinning && React.createElement(Button, {
680
+ disabled: !getIsSomeColumnsPinned(),
681
+ onClick: function onClick() {
682
+ return tableInstance.resetColumnPinning(true);
683
+ }
684
+ }, localization.unpinAll), React.createElement(Button, {
638
685
  disabled: getIsAllColumnsVisible(),
639
686
  onClick: function onClick() {
640
687
  return toggleAllColumnsVisible(true);
@@ -647,11 +694,13 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
647
694
  tableInstance: tableInstance
648
695
  });
649
696
  }), React.createElement(Divider, null), allDataColumns.map(function (column, index) {
650
- return React.createElement(MRT_ShowHideColumnsMenuItems, {
697
+ return column ? React.createElement(MRT_ShowHideColumnsMenuItems, {
651
698
  column: column,
652
699
  isSubMenu: isSubMenu,
653
700
  key: index + "-" + column.id,
654
701
  tableInstance: tableInstance
702
+ }) : React.createElement(Divider, {
703
+ key: index + "-divider"
655
704
  });
656
705
  }));
657
706
  };
@@ -713,7 +762,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
713
762
  setShowHideColumnsMenuAnchorEl = _useState2[1];
714
763
 
715
764
  var handleClearSort = function handleClearSort() {
716
- column.resetSorting();
765
+ column.clearSorting();
717
766
  setAnchorEl(null);
718
767
  };
719
768
 
@@ -739,6 +788,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
739
788
 
740
789
  var handlePinColumn = function handlePinColumn(pinDirection) {
741
790
  column.pin(pinDirection);
791
+ setAnchorEl(null);
742
792
  };
743
793
 
744
794
  var handleGroupByColumn = function handleGroupByColumn() {
@@ -750,7 +800,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
750
800
  };
751
801
 
752
802
  var handleClearFilter = function handleClearFilter() {
753
- column.setColumnFilterValue('');
803
+ column.setFilterValue('');
754
804
  setAnchorEl(null);
755
805
  };
756
806
 
@@ -815,8 +865,8 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
815
865
  style: {
816
866
  transform: 'rotate(180deg) scaleX(-1)'
817
867
  }
818
- })), (_localization$sortByC2 = localization.sortByColumnDesc) == null ? void 0 : _localization$sortByC2.replace('{column}', String(column.header))))], enableColumnFilters && column.getCanColumnFilter() && [React.createElement(MenuItem, {
819
- disabled: !column.getColumnFilterValue(),
868
+ })), (_localization$sortByC2 = localization.sortByColumnDesc) == null ? void 0 : _localization$sortByC2.replace('{column}', String(column.header))))], enableColumnFilters && column.getCanFilter() && [React.createElement(MenuItem, {
869
+ disabled: !column.getFilterValue(),
820
870
  key: 0,
821
871
  onClick: handleClearFilter,
822
872
  sx: commonMenuItemStyles$1
@@ -836,7 +886,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
836
886
  sx: {
837
887
  p: 0
838
888
  }
839
- }, React.createElement(ArrowRightIcon, null))), React.createElement(MRT_FilterTypeMenu, {
889
+ }, React.createElement(ArrowRightIcon, null))), React.createElement(MRT_FilterOptionMenu, {
840
890
  anchorEl: filterMenuAnchorEl,
841
891
  header: header,
842
892
  key: 2,
@@ -865,7 +915,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
865
915
  }
866
916
  })), localization.pinToLeft)), React.createElement(MenuItem, {
867
917
  disabled: column.getIsPinned() === 'right' || !column.getCanPin(),
868
- key: 0,
918
+ key: 1,
869
919
  onClick: function onClick() {
870
920
  return handlePinColumn('right');
871
921
  },
@@ -879,7 +929,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
879
929
  })), localization.pinToRight)), React.createElement(MenuItem, {
880
930
  disabled: !column.getIsPinned(),
881
931
  divider: enableHiding,
882
- key: 0,
932
+ key: 2,
883
933
  onClick: function onClick() {
884
934
  return handlePinColumn(false);
885
935
  },
@@ -982,7 +1032,7 @@ var MRT_EditActionButtons = function MRT_EditActionButtons(_ref) {
982
1032
  var handleCancel = function handleCancel() {
983
1033
  var _row$original;
984
1034
 
985
- row.values = (_row$original = row.original) != null ? _row$original : {};
1035
+ row._valuesCache = (_row$original = row.original) != null ? _row$original : {};
986
1036
  setCurrentEditingRow(null);
987
1037
  };
988
1038
 
@@ -1096,31 +1146,26 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1096
1146
  var getRowModel = tableInstance.getRowModel,
1097
1147
  getSelectedRowModel = tableInstance.getSelectedRowModel,
1098
1148
  getState = tableInstance.getState,
1099
- getToggleAllRowsSelectedProps = tableInstance.getToggleAllRowsSelectedProps,
1100
1149
  _tableInstance$option = tableInstance.options,
1101
- isLoading = _tableInstance$option.isLoading,
1102
1150
  localization = _tableInstance$option.localization,
1103
1151
  muiSelectCheckboxProps = _tableInstance$option.muiSelectCheckboxProps,
1104
1152
  onSelectChange = _tableInstance$option.onSelectChange,
1105
1153
  onSelectAllChange = _tableInstance$option.onSelectAllChange;
1106
1154
 
1107
1155
  var _getState = getState(),
1108
- isDensePadding = _getState.isDensePadding;
1156
+ isDensePadding = _getState.isDensePadding,
1157
+ isLoading = _getState.isLoading;
1109
1158
 
1110
1159
  var handleSelectChange = function handleSelectChange(event) {
1111
1160
  if (selectAll) {
1112
- var _getToggleAllRowsSele;
1113
-
1114
- getToggleAllRowsSelectedProps == null ? void 0 : (_getToggleAllRowsSele = getToggleAllRowsSelectedProps()) == null ? void 0 : _getToggleAllRowsSele.onChange == null ? void 0 : _getToggleAllRowsSele.onChange(event);
1161
+ tableInstance.getToggleAllRowsSelectedHandler()(event);
1115
1162
  onSelectAllChange == null ? void 0 : onSelectAllChange({
1116
1163
  event: event,
1117
1164
  selectedRows: event.target.checked ? getRowModel().flatRows : [],
1118
1165
  tableInstance: tableInstance
1119
1166
  });
1120
1167
  } else if (row) {
1121
- var _row$getToggleSelecte;
1122
-
1123
- row == null ? void 0 : (_row$getToggleSelecte = row.getToggleSelectedProps()) == null ? void 0 : _row$getToggleSelecte.onChange == null ? void 0 : _row$getToggleSelecte.onChange(event);
1168
+ row == null ? void 0 : row.getToggleSelectedHandler()(event);
1124
1169
  onSelectChange == null ? void 0 : onSelectChange({
1125
1170
  event: event,
1126
1171
  row: row,
@@ -1132,33 +1177,30 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1132
1177
  }
1133
1178
  };
1134
1179
 
1135
- var mTableBodyRowSelectCheckboxProps = muiSelectCheckboxProps instanceof Function ? muiSelectCheckboxProps({
1180
+ var checkboxProps = muiSelectCheckboxProps instanceof Function ? muiSelectCheckboxProps({
1136
1181
  isSelectAll: !!selectAll,
1137
1182
  row: row,
1138
1183
  tableInstance: tableInstance
1139
1184
  }) : muiSelectCheckboxProps;
1140
- var rtSelectCheckboxProps = selectAll ? getToggleAllRowsSelectedProps() : row == null ? void 0 : row.getToggleSelectedProps();
1141
-
1142
- var checkboxProps = _extends({}, rtSelectCheckboxProps, mTableBodyRowSelectCheckboxProps);
1143
-
1144
1185
  return React.createElement(Tooltip, {
1145
1186
  arrow: true,
1146
1187
  enterDelay: 1000,
1147
1188
  enterNextDelay: 1000,
1148
1189
  title: selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1149
1190
  }, React.createElement(Checkbox, Object.assign({
1191
+ checked: selectAll ? tableInstance.getIsAllRowsSelected() : row == null ? void 0 : row.getIsSelected(),
1150
1192
  disabled: isLoading,
1193
+ indeterminate: selectAll ? tableInstance.getIsSomeRowsSelected() : row == null ? void 0 : row.getIsSomeSelected(),
1151
1194
  inputProps: {
1152
1195
  'aria-label': selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1153
1196
  },
1197
+ onChange: handleSelectChange,
1154
1198
  size: isDensePadding ? 'small' : 'medium'
1155
1199
  }, checkboxProps, {
1156
- sx: {
1200
+ sx: _extends({
1157
1201
  height: isDensePadding ? '1.75rem' : '2.25rem',
1158
1202
  width: isDensePadding ? '1.75rem' : '2.25rem'
1159
- },
1160
- onChange: handleSelectChange,
1161
- title: undefined
1203
+ }, checkboxProps == null ? void 0 : checkboxProps.sx)
1162
1204
  })));
1163
1205
  };
1164
1206
 
@@ -1250,7 +1292,7 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1250
1292
  sx: _extends({
1251
1293
  justifySelf: 'end'
1252
1294
  }, textFieldProps == null ? void 0 : textFieldProps.sx)
1253
- })), React.createElement(MRT_FilterTypeMenu, {
1295
+ })), React.createElement(MRT_FilterOptionMenu, {
1254
1296
  anchorEl: anchorEl,
1255
1297
  setAnchorEl: setAnchorEl,
1256
1298
  tableInstance: tableInstance
@@ -1539,7 +1581,6 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1539
1581
  var getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
1540
1582
  getSelectedRowModel = tableInstance.getSelectedRowModel,
1541
1583
  getState = tableInstance.getState,
1542
- toggleColumnGrouping = tableInstance.toggleColumnGrouping,
1543
1584
  _tableInstance$option = tableInstance.options,
1544
1585
  localization = _tableInstance$option.localization,
1545
1586
  muiTableToolbarAlertBannerProps = _tableInstance$option.muiTableToolbarAlertBannerProps,
@@ -1566,7 +1607,7 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1566
1607
  return column.id === columnId;
1567
1608
  })) == null ? void 0 : _tableInstance$getAll.header,
1568
1609
  onDelete: function onDelete() {
1569
- return toggleColumnGrouping(columnId);
1610
+ return tableInstance.getColumn(columnId).toggleGrouping();
1570
1611
  }
1571
1612
  }));
1572
1613
  })) : null;
@@ -1598,15 +1639,19 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1598
1639
 
1599
1640
  var MRT_LinearProgressBar = function MRT_LinearProgressBar(_ref) {
1600
1641
  var tableInstance = _ref.tableInstance;
1601
- var _tableInstance$option = tableInstance.options,
1602
- muiLinearProgressProps = _tableInstance$option.muiLinearProgressProps,
1603
- isReloading = _tableInstance$option.isReloading,
1604
- isLoading = _tableInstance$option.isLoading;
1642
+ var muiLinearProgressProps = tableInstance.options.muiLinearProgressProps,
1643
+ getState = tableInstance.getState;
1644
+
1645
+ var _getState = getState(),
1646
+ isLoading = _getState.isLoading,
1647
+ showProgressBars = _getState.showProgressBars;
1648
+
1605
1649
  var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps({
1606
1650
  tableInstance: tableInstance
1607
1651
  }) : muiLinearProgressProps;
1608
1652
  return React.createElement(Collapse, {
1609
- "in": isReloading || isLoading,
1653
+ "in": isLoading || showProgressBars,
1654
+ mountOnEnter: true,
1610
1655
  unmountOnExit: true
1611
1656
  }, React.createElement(LinearProgress, Object.assign({
1612
1657
  "aria-label": "Loading",
@@ -1617,10 +1662,11 @@ var MRT_LinearProgressBar = function MRT_LinearProgressBar(_ref) {
1617
1662
  var commonToolbarStyles = function commonToolbarStyles(_ref) {
1618
1663
  var theme = _ref.theme;
1619
1664
  return {
1620
- backgroundColor: theme.palette.background["default"],
1621
- backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
1665
+ backgroundColor: lighten(theme.palette.background["default"], 0.04),
1666
+ backgroundImage: 'none',
1622
1667
  display: 'grid',
1623
1668
  p: '0 !important',
1669
+ transition: 'all 0.2s ease-in-out',
1624
1670
  width: '100%',
1625
1671
  zIndex: 1
1626
1672
  };
@@ -1736,9 +1782,10 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1736
1782
  };
1737
1783
 
1738
1784
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1739
- var _column$getColumnFilt, _localization$filterB, _localization$filterM, _localization$, _localization$clearFi, _column$filterSelectO;
1785
+ var _localization$filterB, _localization$filterM, _localization$, _localization$clearFi, _column$filterSelectO;
1740
1786
 
1741
1787
  var header = _ref.header,
1788
+ inputIndex = _ref.inputIndex,
1742
1789
  tableInstance = _ref.tableInstance;
1743
1790
  var getState = tableInstance.getState,
1744
1791
  _tableInstance$option = tableInstance.options,
@@ -1748,11 +1795,11 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1748
1795
  idPrefix = _tableInstance$option.idPrefix,
1749
1796
  localization = _tableInstance$option.localization,
1750
1797
  muiTableHeadCellFilterTextFieldProps = _tableInstance$option.muiTableHeadCellFilterTextFieldProps,
1751
- setCurrentFilterTypes = tableInstance.setCurrentFilterTypes;
1798
+ setCurrentFilterFns = tableInstance.setCurrentFilterFns;
1752
1799
  var column = header.column;
1753
1800
 
1754
1801
  var _getState = getState(),
1755
- currentFilterTypes = _getState.currentFilterTypes;
1802
+ currentFilterFns = _getState.currentFilterFns;
1756
1803
 
1757
1804
  var _useState = useState(null),
1758
1805
  anchorEl = _useState[0],
@@ -1769,14 +1816,22 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1769
1816
 
1770
1817
  var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps);
1771
1818
 
1772
- var _useState2 = useState((_column$getColumnFilt = column.getColumnFilterValue()) != null ? _column$getColumnFilt : ''),
1819
+ var _useState2 = useState(function () {
1820
+ var _column$getFilterValu, _column$getFilterValu2, _column$getFilterValu3;
1821
+
1822
+ 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 : '';
1823
+ }),
1773
1824
  filterValue = _useState2[0],
1774
1825
  setFilterValue = _useState2[1];
1775
1826
 
1776
- var handleChange = useCallback(debounce(function (event) {
1827
+ var handleChangeDebounced = useCallback(debounce(function (event) {
1777
1828
  var _event$target$value;
1778
1829
 
1779
- return column.setColumnFilterValue((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
1830
+ return inputIndex !== undefined ? column.setFilterValue(function (old) {
1831
+ var newFilterValues = old != null ? old : ['', ''];
1832
+ newFilterValues[inputIndex] = event.target.value;
1833
+ return newFilterValues;
1834
+ }) : column.setFilterValue((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
1780
1835
  }, 150), []);
1781
1836
 
1782
1837
  var handleFilterMenuOpen = function handleFilterMenuOpen(event) {
@@ -1785,16 +1840,25 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1785
1840
 
1786
1841
  var handleClear = function handleClear() {
1787
1842
  setFilterValue('');
1788
- column.setColumnFilterValue(undefined);
1843
+
1844
+ if (inputIndex !== undefined) {
1845
+ column.setFilterValue(function (old) {
1846
+ var newFilterValues = old != null ? old : ['', ''];
1847
+ newFilterValues[inputIndex] = undefined;
1848
+ return newFilterValues;
1849
+ });
1850
+ } else {
1851
+ column.setFilterValue(undefined);
1852
+ }
1789
1853
  };
1790
1854
 
1791
1855
  var handleClearFilterChip = function handleClearFilterChip() {
1792
1856
  setFilterValue('');
1793
- column.setColumnFilterValue(undefined);
1794
- setCurrentFilterTypes(function (prev) {
1857
+ column.setFilterValue(undefined);
1858
+ setCurrentFilterFns(function (prev) {
1795
1859
  var _extends2;
1796
1860
 
1797
- return _extends({}, prev, (_extends2 = {}, _extends2[header.id] = MRT_FILTER_TYPE.BEST_MATCH, _extends2));
1861
+ return _extends({}, prev, (_extends2 = {}, _extends2[header.id] = MRT_FILTER_OPTION.FUZZY, _extends2));
1798
1862
  });
1799
1863
  };
1800
1864
 
@@ -1805,12 +1869,12 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1805
1869
  }));
1806
1870
  }
1807
1871
 
1808
- var filterId = "mrt-" + idPrefix + "-" + header.id + "-filter-text-field";
1809
- var filterType = currentFilterTypes == null ? void 0 : currentFilterTypes[header.id];
1872
+ var filterId = "mrt-" + idPrefix + "-" + header.id + "-filter-text-field" + (inputIndex != null ? inputIndex : '');
1873
+ var filterFn = currentFilterFns == null ? void 0 : currentFilterFns[header.id];
1810
1874
  var isSelectFilter = !!column.filterSelectOptions;
1811
- var filterChipLabel = !(filterType instanceof Function) && [MRT_FILTER_TYPE.EMPTY, MRT_FILTER_TYPE.NOT_EMPTY].includes(filterType) ? //@ts-ignore
1812
- localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))] : '';
1813
- var filterPlaceholder = (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.header));
1875
+ var filterChipLabel = !(filterFn instanceof Function) && [MRT_FILTER_OPTION.EMPTY, MRT_FILTER_OPTION.NOT_EMPTY].includes(filterFn) ? //@ts-ignore
1876
+ localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))] : '';
1877
+ 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 : '';
1814
1878
  return React.createElement(React.Fragment, null, React.createElement(TextField, Object.assign({
1815
1879
  fullWidth: true,
1816
1880
  id: filterId,
@@ -1822,23 +1886,24 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1822
1886
  },
1823
1887
  title: filterPlaceholder
1824
1888
  },
1825
- helperText: React.createElement("label", {
1889
+ helperText: !inputIndex ? React.createElement("label", {
1826
1890
  htmlFor: filterId
1827
- }, filterType instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
1828
- (_localization$ = localization["filter" + (filterType.name.charAt(0).toUpperCase() + filterType.name.slice(1))]) != null ? _localization$ : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
1829
- localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))])),
1891
+ }, filterFn instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
1892
+ (_localization$ = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization$ : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
1893
+ localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))])) : null,
1830
1894
  FormHelperTextProps: {
1831
1895
  sx: {
1832
1896
  fontSize: '0.6rem',
1833
- lineHeight: '0.8rem'
1897
+ lineHeight: '0.8rem',
1898
+ whiteSpace: 'nowrap'
1834
1899
  }
1835
1900
  },
1836
1901
  label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
1837
1902
  margin: "none",
1838
- placeholder: filterPlaceholder,
1903
+ placeholder: filterChipLabel || isSelectFilter ? undefined : filterPlaceholder,
1839
1904
  onChange: function onChange(event) {
1840
1905
  setFilterValue(event.target.value);
1841
- handleChange(event);
1906
+ handleChangeDebounced(event);
1842
1907
  },
1843
1908
  onClick: function onClick(e) {
1844
1909
  return e.stopPropagation();
@@ -1847,7 +1912,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1847
1912
  value: filterValue != null ? filterValue : '',
1848
1913
  variant: "standard",
1849
1914
  InputProps: {
1850
- startAdornment: !isSelectFilter && React.createElement(InputAdornment, {
1915
+ startAdornment: !isSelectFilter && !inputIndex && React.createElement(InputAdornment, {
1851
1916
  position: "start"
1852
1917
  }, React.createElement(Tooltip, {
1853
1918
  arrow: true,
@@ -1886,7 +1951,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1886
1951
  sx: _extends({
1887
1952
  m: '-0.25rem',
1888
1953
  p: 0,
1889
- minWidth: !filterChipLabel ? '5rem' : 'auto',
1954
+ minWidth: !filterChipLabel ? '6rem' : 'auto',
1890
1955
  width: 'calc(100% + 0.5rem)',
1891
1956
  mt: isSelectFilter && !filterValue ? '-1rem' : undefined,
1892
1957
  '& .MuiSelect-icon': {
@@ -1913,7 +1978,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1913
1978
  key: value,
1914
1979
  value: value
1915
1980
  }, text);
1916
- })), React.createElement(MRT_FilterTypeMenu, {
1981
+ })), React.createElement(MRT_FilterOptionMenu, {
1917
1982
  anchorEl: anchorEl,
1918
1983
  header: header,
1919
1984
  setAnchorEl: setAnchorEl,
@@ -1981,6 +2046,32 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
1981
2046
  }));
1982
2047
  };
1983
2048
 
2049
+ var MRT_FilterRangeFields = function MRT_FilterRangeFields(_ref) {
2050
+ var header = _ref.header,
2051
+ tableInstance = _ref.tableInstance;
2052
+ var localization = tableInstance.options.localization;
2053
+ return React.createElement(Box, {
2054
+ sx: {
2055
+ display: 'grid',
2056
+ gridTemplateColumns: '6fr auto 5fr'
2057
+ }
2058
+ }, React.createElement(MRT_FilterTextField, {
2059
+ header: header,
2060
+ inputIndex: 0,
2061
+ tableInstance: tableInstance
2062
+ }), React.createElement(Box, {
2063
+ sx: {
2064
+ width: '100%',
2065
+ minWidth: '5ch',
2066
+ textAlign: 'center'
2067
+ }
2068
+ }, localization.to), React.createElement(MRT_FilterTextField, {
2069
+ header: header,
2070
+ inputIndex: 1,
2071
+ tableInstance: tableInstance
2072
+ }));
2073
+ };
2074
+
1984
2075
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1985
2076
  var _getState2, _getState2$currentFil, _column$Header;
1986
2077
 
@@ -1999,6 +2090,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1999
2090
  setShowFilters = tableInstance.setShowFilters;
2000
2091
 
2001
2092
  var _getState = getState(),
2093
+ currentFilterFns = _getState.currentFilterFns,
2002
2094
  isDensePadding = _getState.isDensePadding,
2003
2095
  showFilters = _getState.showFilters;
2004
2096
 
@@ -2012,36 +2104,53 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2012
2104
  tableInstance: tableInstance
2013
2105
  }) : column.muiTableHeadCellProps;
2014
2106
 
2015
- var tableCellProps = _extends({}, header.getHeaderProps(), mTableHeadCellProps, mcTableHeadCellProps);
2107
+ var tableCellProps = _extends({}, mTableHeadCellProps, mcTableHeadCellProps);
2016
2108
 
2017
2109
  var sortTooltip = !!column.getIsSorted() ? column.getIsSorted() === 'desc' ? localization.sortedByColumnDesc.replace('{column}', column.header) : localization.sortedByColumnAsc.replace('{column}', column.header) : localization.unsorted;
2018
- var filterType = (_getState2 = getState()) == null ? void 0 : (_getState2$currentFil = _getState2.currentFilterTypes) == null ? void 0 : _getState2$currentFil[header.id];
2019
- var filterTooltip = !!column.getColumnFilterValue() ? localization.filteringByColumn.replace('{column}', String(column.header)).replace('{filterType}', filterType instanceof Function ? '' : // @ts-ignore
2020
- localization["filter" + (filterType.charAt(0).toUpperCase() + filterType.slice(1))]).replace('{filterValue}', column.getColumnFilterValue()).replace('" "', '') : localization.showHideFilters;
2110
+ var filterFn = (_getState2 = getState()) == null ? void 0 : (_getState2$currentFil = _getState2.currentFilterFns) == null ? void 0 : _getState2$currentFil[header.id];
2111
+ var filterTooltip = !!column.getFilterValue() ? localization.filteringByColumn.replace('{column}', String(column.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
2112
+ 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;
2021
2113
  var headerElement = (_column$Header = column == null ? void 0 : column.Header == null ? void 0 : column.Header({
2022
2114
  header: header,
2023
2115
  tableInstance: tableInstance
2024
2116
  })) != null ? _column$Header : column.header;
2117
+
2118
+ var getIsLastLeftPinnedColumn = function getIsLastLeftPinnedColumn() {
2119
+ return column.getIsPinned() === 'left' && tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex();
2120
+ };
2121
+
2122
+ var getIsFirstRightPinnedColumn = function getIsFirstRightPinnedColumn() {
2123
+ return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
2124
+ };
2125
+
2126
+ var getTotalRight = function getTotalRight() {
2127
+ return (tableInstance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
2128
+ };
2129
+
2025
2130
  return React.createElement(TableCell, Object.assign({
2026
- align: column.columnDefType === 'group' ? 'center' : 'left'
2131
+ align: column.columnDefType === 'group' ? 'center' : 'left',
2132
+ colSpan: header.colSpan
2027
2133
  }, tableCellProps, {
2028
- //@ts-ignore
2029
2134
  sx: function sx(theme) {
2030
2135
  return _extends({
2031
- backgroundColor: theme.palette.background["default"],
2032
- backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
2136
+ backgroundColor: column.getIsPinned() && column.columnDefType !== 'group' ? alpha(lighten(theme.palette.background["default"], 0.04), 0.95) : 'inherit',
2137
+ backgroundImage: 'inherit',
2138
+ boxShadow: getIsLastLeftPinnedColumn() ? "4px 0 4px -2px " + alpha(theme.palette.common.black, 0.1) : getIsFirstRightPinnedColumn() ? "-4px 0 4px -2px " + alpha(theme.palette.common.black, 0.1) : undefined,
2033
2139
  fontWeight: 'bold',
2034
2140
  height: '100%',
2035
- maxWidth: "min(" + column.getWidth() + "px, " + column.maxWidth + "px)",
2036
- minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2141
+ left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
2142
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
2143
+ minWidth: "max(" + column.getSize() + "px, " + column.minSize + "px)",
2144
+ overflow: 'visible',
2037
2145
  p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2038
- pt: column.columnDefType === 'display' ? 0 : isDensePadding ? '0.75rem' : '1.25rem',
2039
2146
  pb: column.columnDefType === 'display' ? 0 : undefined,
2040
- overflow: 'visible',
2147
+ position: column.getIsPinned() && column.columnDefType !== 'group' ? 'sticky' : undefined,
2148
+ pt: column.columnDefType === 'display' ? 0 : isDensePadding ? '0.75rem' : '1.25rem',
2149
+ right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2041
2150
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2042
2151
  verticalAlign: 'text-top',
2043
- width: header.getWidth(),
2044
- zIndex: column.getIsResizing() ? 2 : 1
2152
+ width: header.getSize(),
2153
+ zIndex: column.getIsResizing() ? 3 : column.getIsPinned() && column.columnDefType !== 'group' ? 2 : 1
2045
2154
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2046
2155
  }
2047
2156
  }), header.isPlaceholder ? null : column.columnDefType === 'display' ? headerElement : React.createElement(Box, {
@@ -2070,7 +2179,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2070
2179
  "aria-label": sortTooltip,
2071
2180
  active: !!column.getIsSorted(),
2072
2181
  direction: column.getIsSorted() ? column.getIsSorted() : undefined
2073
- })), column.columnDefType === 'data' && enableColumnFilters && !!column.getCanColumnFilter() && React.createElement(Tooltip, {
2182
+ })), column.columnDefType === 'data' && enableColumnFilters && !!column.getCanFilter() && React.createElement(Tooltip, {
2074
2183
  arrow: true,
2075
2184
  placement: "top",
2076
2185
  title: filterTooltip
@@ -2083,7 +2192,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2083
2192
  size: "small",
2084
2193
  sx: {
2085
2194
  m: 0,
2086
- opacity: !!column.getColumnFilterValue() ? 0.8 : 0,
2195
+ opacity: !!column.getFilterValue() ? 0.8 : 0,
2087
2196
  p: '2px',
2088
2197
  transition: 'all 0.2s ease-in-out',
2089
2198
  '&:hover': {
@@ -2091,14 +2200,14 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2091
2200
  opacity: 0.8
2092
2201
  }
2093
2202
  }
2094
- }, showFilters && !column.getColumnFilterValue() ? React.createElement(FilterAltOff, null) : React.createElement(FilterAltIcon, null)))), (enableColumnActions || column.enableColumnActions) && column.enableColumnActions !== false && column.columnDefType !== 'group' && React.createElement(MRT_ToggleColumnActionMenuButton, {
2203
+ }, showFilters && !column.getFilterValue() ? React.createElement(FilterAltOff, null) : React.createElement(FilterAltIcon, null)))), (enableColumnActions || column.enableColumnActions) && column.enableColumnActions !== false && column.columnDefType !== 'group' && React.createElement(MRT_ToggleColumnActionMenuButton, {
2095
2204
  header: header,
2096
2205
  tableInstance: tableInstance
2097
2206
  }), column.getCanResize() && React.createElement(Divider, Object.assign({
2098
2207
  flexItem: true,
2099
2208
  orientation: "vertical",
2100
2209
  onDoubleClick: function onDoubleClick() {
2101
- return header.resetSize();
2210
+ return column.resetSize();
2102
2211
  },
2103
2212
  sx: function sx(theme) {
2104
2213
  return {
@@ -2119,15 +2228,21 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2119
2228
  }
2120
2229
  };
2121
2230
  }
2122
- }, header.getResizerProps(function (props) {
2123
- return _extends({}, props, {
2124
- style: {
2125
- transform: column.getIsResizing() ? "translateX(" + getState().columnSizingInfo.deltaOffset + "px)" : ''
2126
- }
2127
- });
2128
- })))), column.columnDefType === 'data' && column.getCanColumnFilter() && React.createElement(Collapse, {
2129
- "in": showFilters
2130
- }, React.createElement(MRT_FilterTextField, {
2231
+ }, {
2232
+ onMouseDown: header.getResizeHandler,
2233
+ onTouchStart: header.getResizeHandler
2234
+ }, {
2235
+ style: {
2236
+ transform: column.getIsResizing() ? "translateX(" + getState().columnSizingInfo.deltaOffset + "px)" : 'none'
2237
+ }
2238
+ }))), column.columnDefType === 'data' && column.getCanFilter() && React.createElement(Collapse, {
2239
+ "in": showFilters,
2240
+ mountOnEnter: true,
2241
+ unmountOnExit: true
2242
+ }, currentFilterFns[column.id] === MRT_FILTER_OPTION.BETWEEN ? React.createElement(MRT_FilterRangeFields, {
2243
+ header: header,
2244
+ tableInstance: tableInstance
2245
+ }) : React.createElement(MRT_FilterTextField, {
2131
2246
  header: header,
2132
2247
  tableInstance: tableInstance
2133
2248
  })));
@@ -2137,17 +2252,15 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2137
2252
  var headerGroup = _ref.headerGroup,
2138
2253
  tableInstance = _ref.tableInstance;
2139
2254
  var muiTableHeadRowProps = tableInstance.options.muiTableHeadRowProps;
2140
- var mTableHeadRowProps = muiTableHeadRowProps instanceof Function ? muiTableHeadRowProps({
2255
+ var tableRowProps = muiTableHeadRowProps instanceof Function ? muiTableHeadRowProps({
2141
2256
  headerGroup: headerGroup,
2142
2257
  tableInstance: tableInstance
2143
2258
  }) : muiTableHeadRowProps;
2144
-
2145
- var tableRowProps = _extends({}, headerGroup == null ? void 0 : headerGroup.getHeaderGroupProps(), mTableHeadRowProps);
2146
-
2147
2259
  return React.createElement(TableRow, Object.assign({}, tableRowProps, {
2148
2260
  sx: function sx(theme) {
2149
2261
  return _extends({
2150
- boxShadow: "4px 0 8px " + alpha(theme.palette.common.black, 0.1)
2262
+ boxShadow: "4px 0 8px " + alpha(theme.palette.common.black, 0.1),
2263
+ backgroundColor: lighten(theme.palette.background["default"], 0.04)
2151
2264
  }, tableRowProps == null ? void 0 : tableRowProps.sx);
2152
2265
  }
2153
2266
  }), headerGroup.headers.map(function (header, index) {
@@ -2160,26 +2273,16 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2160
2273
  };
2161
2274
 
2162
2275
  var MRT_TableHead = function MRT_TableHead(_ref) {
2163
- var pinned = _ref.pinned,
2164
- tableInstance = _ref.tableInstance;
2165
- var getCenterHeaderGroups = tableInstance.getCenterHeaderGroups,
2166
- getHeaderGroups = tableInstance.getHeaderGroups,
2167
- getLeftHeaderGroups = tableInstance.getLeftHeaderGroups,
2168
- getRightHeaderGroups = tableInstance.getRightHeaderGroups,
2276
+ var tableInstance = _ref.tableInstance;
2277
+ var getHeaderGroups = tableInstance.getHeaderGroups,
2169
2278
  muiTableHeadProps = tableInstance.options.muiTableHeadProps;
2170
2279
  var tableHeadProps = muiTableHeadProps instanceof Function ? muiTableHeadProps({
2171
2280
  tableInstance: tableInstance
2172
2281
  }) : muiTableHeadProps;
2173
- var getHeaderGroupsMap = {
2174
- center: getCenterHeaderGroups,
2175
- left: getLeftHeaderGroups,
2176
- none: getHeaderGroups,
2177
- right: getRightHeaderGroups
2178
- };
2179
- return React.createElement(TableHead, Object.assign({}, tableHeadProps), getHeaderGroupsMap[pinned]().map(function (headerGroup) {
2282
+ return React.createElement(TableHead, Object.assign({}, tableHeadProps), getHeaderGroups().map(function (headerGroup) {
2180
2283
  return React.createElement(MRT_TableHeadRow, {
2181
2284
  headerGroup: headerGroup,
2182
- key: headerGroup.getHeaderGroupProps().key,
2285
+ key: headerGroup.id,
2183
2286
  tableInstance: tableInstance
2184
2287
  });
2185
2288
  }));
@@ -2198,7 +2301,7 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2198
2301
  setCurrentEditingCell = tableInstance.setCurrentEditingCell,
2199
2302
  setCurrentEditingRow = tableInstance.setCurrentEditingRow;
2200
2303
 
2201
- var _useState = useState(cell.value),
2304
+ var _useState = useState(cell.getValue()),
2202
2305
  value = _useState[0],
2203
2306
  setValue = _useState[1];
2204
2307
 
@@ -2221,7 +2324,7 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2221
2324
 
2222
2325
  var handleBlur = function handleBlur(event) {
2223
2326
  if (getState().currentEditingRow) {
2224
- row.values[column.id] = value;
2327
+ row._valuesCache[column.id] = value;
2225
2328
  setCurrentEditingRow(_extends({}, getState().currentEditingRow));
2226
2329
  }
2227
2330
 
@@ -2310,7 +2413,7 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2310
2413
  }, React.createElement(Button, Object.assign({
2311
2414
  "aria-label": localization.clickToCopy,
2312
2415
  onClick: function onClick() {
2313
- return handleCopy(cell.value);
2416
+ return handleCopy(cell.getValue());
2314
2417
  },
2315
2418
  size: "small"
2316
2419
  }, buttonProps, {
@@ -2335,16 +2438,14 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2335
2438
  var _cell$column$Cell, _cell$column, _row$subRows, _cell$column$Cell2, _cell$column2, _row$subRows2;
2336
2439
 
2337
2440
  var cell = _ref.cell,
2441
+ enableHover = _ref.enableHover,
2338
2442
  tableInstance = _ref.tableInstance;
2339
- var getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
2340
- getState = tableInstance.getState,
2443
+ var getState = tableInstance.getState,
2341
2444
  _tableInstance$option = tableInstance.options,
2342
2445
  editingMode = _tableInstance$option.editingMode,
2343
2446
  enableClickToCopy = _tableInstance$option.enableClickToCopy,
2344
2447
  enableEditing = _tableInstance$option.enableEditing,
2345
- enablePinning = _tableInstance$option.enablePinning,
2346
2448
  idPrefix = _tableInstance$option.idPrefix,
2347
- isLoading = _tableInstance$option.isLoading,
2348
2449
  muiTableBodyCellProps = _tableInstance$option.muiTableBodyCellProps,
2349
2450
  muiTableBodyCellSkeletonProps = _tableInstance$option.muiTableBodyCellSkeletonProps,
2350
2451
  onCellClick = _tableInstance$option.onCellClick,
@@ -2353,7 +2454,9 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2353
2454
  var _getState = getState(),
2354
2455
  currentEditingCell = _getState.currentEditingCell,
2355
2456
  currentEditingRow = _getState.currentEditingRow,
2356
- isDensePadding = _getState.isDensePadding;
2457
+ isDensePadding = _getState.isDensePadding,
2458
+ isLoading = _getState.isLoading,
2459
+ showSkeletons = _getState.showSkeletons;
2357
2460
 
2358
2461
  var column = cell.column,
2359
2462
  row = cell.row;
@@ -2366,11 +2469,11 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2366
2469
  tableInstance: tableInstance
2367
2470
  }) : column.muiTableBodyCellProps;
2368
2471
 
2369
- var tableCellProps = _extends({}, cell.getCellProps(), mTableCellBodyProps, mcTableCellBodyProps);
2472
+ var tableCellProps = _extends({}, mTableCellBodyProps, mcTableCellBodyProps);
2370
2473
 
2371
2474
  var skeletonWidth = useMemo(function () {
2372
- return column.columnDefType === 'display' ? column.getWidth() / 2 : Math.random() * (column.getWidth() - column.getWidth() / 3) + column.getWidth() / 3;
2373
- }, [column.columnDefType, column.getWidth()]);
2475
+ return column.columnDefType === 'display' ? column.getSize() / 2 : Math.random() * (column.getSize() - column.getSize() / 3) + column.getSize() / 3;
2476
+ }, [column.columnDefType, column.getSize()]);
2374
2477
  var isEditable = (enableEditing || column.enableEditing) && column.enableEditing !== false;
2375
2478
  var isEditing = isEditable && (editingMode === 'table' || (currentEditingRow == null ? void 0 : currentEditingRow.id) === row.id || (currentEditingCell == null ? void 0 : currentEditingCell.id) === cell.id);
2376
2479
 
@@ -2388,6 +2491,18 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2388
2491
  }
2389
2492
  };
2390
2493
 
2494
+ var getIsLastLeftPinnedColumn = function getIsLastLeftPinnedColumn() {
2495
+ return column.getIsPinned() === 'left' && tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex();
2496
+ };
2497
+
2498
+ var getIsFirstRightPinnedColumn = function getIsFirstRightPinnedColumn() {
2499
+ return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
2500
+ };
2501
+
2502
+ var getTotalRight = function getTotalRight() {
2503
+ return (tableInstance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
2504
+ };
2505
+
2391
2506
  return React.createElement(TableCell, Object.assign({
2392
2507
  onClick: function onClick(event) {
2393
2508
  return onCellClick == null ? void 0 : onCellClick({
@@ -2398,17 +2513,28 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2398
2513
  },
2399
2514
  onDoubleClick: handleDoubleClick
2400
2515
  }, tableCellProps, {
2401
- sx: _extends({
2402
- cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
2403
- maxWidth: "min(" + column.getWidth() + "px, fit-content)",
2404
- minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2405
- p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2406
- pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
2407
- transition: 'all 0.2s ease-in-out',
2408
- whiteSpace: isDensePadding || enablePinning && getIsSomeColumnsPinned() ? 'nowrap' : 'normal',
2409
- width: column.getWidth()
2410
- }, tableCellProps == null ? void 0 : tableCellProps.sx)
2411
- }), isLoading ? React.createElement(Skeleton, Object.assign({
2516
+ sx: function sx(theme) {
2517
+ return _extends({
2518
+ backgroundColor: column.getIsPinned() ? alpha(lighten(theme.palette.background["default"], 0.04), 0.95) : undefined,
2519
+ boxShadow: getIsLastLeftPinnedColumn() ? "4px 0 4px -2px " + alpha(theme.palette.common.black, 0.1) : getIsFirstRightPinnedColumn() ? "-4px 0 4px -2px " + alpha(theme.palette.common.black, 0.1) : undefined,
2520
+ cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
2521
+ left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
2522
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
2523
+ minWidth: "max" + column.getSize() + "px, " + column.minSize + "px",
2524
+ p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2525
+ pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
2526
+ position: column.getIsPinned() ? 'sticky' : 'relative',
2527
+ right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2528
+ transition: 'all 0.2s ease-in-out',
2529
+ whiteSpace: isDensePadding ? 'nowrap' : 'normal',
2530
+ width: column.getSize(),
2531
+ zIndex: column.getIsPinned() ? 1 : undefined,
2532
+ '&:hover': {
2533
+ backgroundColor: enableHover ? theme.palette.mode === 'dark' ? lighten(theme.palette.background["default"], 0.13) + " !important" : darken(theme.palette.background["default"], 0.07) + " !important" : undefined
2534
+ }
2535
+ }, tableCellProps == null ? void 0 : tableCellProps.sx);
2536
+ }
2537
+ }), React.createElement(React.Fragment, null, isLoading || showSkeletons ? React.createElement(Skeleton, Object.assign({
2412
2538
  animation: "wave",
2413
2539
  height: 20,
2414
2540
  width: skeletonWidth
@@ -2421,13 +2547,13 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2421
2547
  }) : (enableClickToCopy || column.enableClickToCopy) && column.enableClickToCopy !== false ? React.createElement(React.Fragment, null, React.createElement(MRT_CopyButton, {
2422
2548
  cell: cell,
2423
2549
  tableInstance: tableInstance
2424
- }, (_cell$column$Cell = (_cell$column = cell.column) == null ? void 0 : _cell$column.Cell == null ? void 0 : _cell$column.Cell({
2550
+ }, React.createElement(React.Fragment, null, (_cell$column$Cell = (_cell$column = cell.column) == null ? void 0 : _cell$column.Cell == null ? void 0 : _cell$column.Cell({
2425
2551
  cell: cell,
2426
2552
  tableInstance: tableInstance
2427
- })) != null ? _cell$column$Cell : cell.renderCell()), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length, ")")) : React.createElement(React.Fragment, null, (_cell$column$Cell2 = (_cell$column2 = cell.column) == null ? void 0 : _cell$column2.Cell == null ? void 0 : _cell$column2.Cell({
2553
+ })) != null ? _cell$column$Cell : cell.renderCell())), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows = row.subRows) == null ? void 0 : _row$subRows.length, ")")) : React.createElement(React.Fragment, null, (_cell$column$Cell2 = (_cell$column2 = cell.column) == null ? void 0 : _cell$column2.Cell == null ? void 0 : _cell$column2.Cell({
2428
2554
  cell: cell,
2429
2555
  tableInstance: tableInstance
2430
- })) != null ? _cell$column$Cell2 : cell.renderCell(), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows2 = row.subRows) == null ? void 0 : _row$subRows2.length, ")")));
2556
+ })) != null ? _cell$column$Cell2 : cell.renderCell(), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows2 = row.subRows) == null ? void 0 : _row$subRows2.length, ")"))));
2431
2557
  };
2432
2558
 
2433
2559
  var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
@@ -2472,33 +2598,16 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
2472
2598
  };
2473
2599
 
2474
2600
  var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2475
- var pinned = _ref.pinned,
2476
- row = _ref.row,
2601
+ var row = _ref.row,
2477
2602
  tableInstance = _ref.tableInstance;
2478
2603
  var _tableInstance$option = tableInstance.options,
2479
2604
  muiTableBodyRowProps = _tableInstance$option.muiTableBodyRowProps,
2480
2605
  onRowClick = _tableInstance$option.onRowClick,
2481
2606
  renderDetailPanel = _tableInstance$option.renderDetailPanel;
2482
- var getCenterVisibleCells = row.getCenterVisibleCells,
2483
- getIsGrouped = row.getIsGrouped,
2484
- getIsSelected = row.getIsSelected,
2485
- getLeftVisibleCells = row.getLeftVisibleCells,
2486
- getRightVisibleCells = row.getRightVisibleCells,
2487
- getRowProps = row.getRowProps,
2488
- getVisibleCells = row.getVisibleCells;
2489
- var mTableBodyRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps({
2607
+ var tableRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps({
2490
2608
  row: row,
2491
2609
  tableInstance: tableInstance
2492
2610
  }) : muiTableBodyRowProps;
2493
-
2494
- var tableRowProps = _extends({}, getRowProps(), mTableBodyRowProps);
2495
-
2496
- var getVisibleCellsMap = {
2497
- center: getCenterVisibleCells,
2498
- left: getLeftVisibleCells,
2499
- none: getVisibleCells,
2500
- right: getRightVisibleCells
2501
- };
2502
2611
  return React.createElement(React.Fragment, null, React.createElement(TableRow, Object.assign({
2503
2612
  hover: true,
2504
2613
  onClick: function onClick(event) {
@@ -2508,39 +2617,44 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2508
2617
  tableInstance: tableInstance
2509
2618
  });
2510
2619
  },
2511
- selected: getIsSelected()
2512
- }, tableRowProps), getVisibleCellsMap[pinned]().map(function (cell) {
2620
+ selected: row.getIsSelected()
2621
+ }, tableRowProps, {
2622
+ sx: function sx(theme) {
2623
+ return _extends({
2624
+ backgroundColor: lighten(theme.palette.background["default"], 0.06),
2625
+ transition: 'all 0.2s ease-in-out',
2626
+ '&:hover td': {
2627
+ backgroundColor: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false ? theme.palette.mode === 'dark' ? "" + lighten(theme.palette.background["default"], 0.12) : "" + darken(theme.palette.background["default"], 0.05) : undefined
2628
+ }
2629
+ }, tableRowProps == null ? void 0 : tableRowProps.sx);
2630
+ }
2631
+ }), row.getVisibleCells().map(function (cell) {
2513
2632
  return React.createElement(MRT_TableBodyCell, {
2514
2633
  cell: cell,
2515
- key: cell.getCellProps().key,
2634
+ key: cell.id,
2635
+ enableHover: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false,
2516
2636
  tableInstance: tableInstance
2517
2637
  });
2518
- })), renderDetailPanel && !getIsGrouped() && React.createElement(MRT_TableDetailPanel, {
2638
+ })), renderDetailPanel && !row.getIsGrouped() && React.createElement(MRT_TableDetailPanel, {
2519
2639
  row: row,
2520
2640
  tableInstance: tableInstance
2521
2641
  }));
2522
2642
  };
2523
2643
 
2524
2644
  var MRT_TableBody = function MRT_TableBody(_ref) {
2525
- var pinned = _ref.pinned,
2526
- tableInstance = _ref.tableInstance;
2645
+ var tableInstance = _ref.tableInstance;
2527
2646
  var getPaginationRowModel = tableInstance.getPaginationRowModel,
2528
2647
  getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
2529
- getTableBodyProps = tableInstance.getTableBodyProps,
2530
2648
  _tableInstance$option = tableInstance.options,
2531
2649
  enablePagination = _tableInstance$option.enablePagination,
2532
2650
  muiTableBodyProps = _tableInstance$option.muiTableBodyProps;
2533
2651
  var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
2534
- var mTableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
2652
+ var tableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
2535
2653
  tableInstance: tableInstance
2536
2654
  }) : muiTableBodyProps;
2537
-
2538
- var tableBodyProps = _extends({}, getTableBodyProps(), mTableBodyProps);
2539
-
2540
2655
  return React.createElement(TableBody, Object.assign({}, tableBodyProps), rows.map(function (row) {
2541
2656
  return React.createElement(MRT_TableBodyRow, {
2542
- key: row.getRowProps().key,
2543
- pinned: pinned,
2657
+ key: row.id,
2544
2658
  row: row,
2545
2659
  tableInstance: tableInstance
2546
2660
  });
@@ -2570,23 +2684,23 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2570
2684
  tableInstance: tableInstance
2571
2685
  }) : column.muiTableFooterCellProps;
2572
2686
 
2573
- var tableCellProps = _extends({}, footer.getFooterProps(), mTableFooterCellProps, mcTableFooterCellProps);
2687
+ var tableCellProps = _extends({}, mTableFooterCellProps, mcTableFooterCellProps);
2574
2688
 
2575
2689
  return React.createElement(TableCell, Object.assign({
2576
2690
  align: column.columnDefType === 'group' ? 'center' : 'left',
2691
+ colSpan: footer.colSpan,
2577
2692
  variant: "head"
2578
2693
  }, tableCellProps, {
2579
- //@ts-ignore
2580
2694
  sx: function sx(theme) {
2581
2695
  return _extends({
2582
2696
  backgroundColor: theme.palette.background["default"],
2583
2697
  backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
2584
2698
  fontWeight: 'bold',
2585
- maxWidth: "min(" + column.getWidth() + "px, " + column.maxWidth + "px)",
2586
- minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2699
+ maxWidth: column.getSize() + "px",
2700
+ minWidth: column.getSize() + "px",
2587
2701
  p: isDensePadding ? '0.5rem' : '1rem',
2588
2702
  transition: "all " + (enableColumnResizing ? '10ms' : '0.2s') + " ease-in-out",
2589
- width: column.getWidth(),
2703
+ width: column.getSize(),
2590
2704
  verticalAlign: 'text-top'
2591
2705
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2592
2706
  }
@@ -2604,107 +2718,69 @@ var MRT_TableFooterRow = function MRT_TableFooterRow(_ref) {
2604
2718
  var muiTableFooterRowProps = tableInstance.options.muiTableFooterRowProps; // if no content in row, skip row
2605
2719
 
2606
2720
  if (!((_footerGroup$headers = footerGroup.headers) != null && _footerGroup$headers.some(function (h) {
2607
- return h.column.columnDef.footer || h.column.Footer;
2721
+ return typeof h.column.footer === 'string' && !!h.column.footer || h.column.Footer;
2608
2722
  }))) return null;
2609
- var mTableFooterRowProps = muiTableFooterRowProps instanceof Function ? muiTableFooterRowProps({
2723
+ var tableRowProps = muiTableFooterRowProps instanceof Function ? muiTableFooterRowProps({
2610
2724
  footerGroup: footerGroup,
2611
2725
  tableInstance: tableInstance
2612
2726
  }) : muiTableFooterRowProps;
2613
-
2614
- var tableRowProps = _extends({}, footerGroup.getFooterGroupProps(), mTableFooterRowProps);
2615
-
2616
2727
  return React.createElement(TableRow, Object.assign({}, tableRowProps), footerGroup.headers.map(function (footer) {
2617
2728
  return React.createElement(MRT_TableFooterCell, {
2618
2729
  footer: footer,
2619
- key: footer.getFooterProps().key,
2730
+ key: footer.id,
2620
2731
  tableInstance: tableInstance
2621
2732
  });
2622
2733
  }));
2623
2734
  };
2624
2735
 
2625
2736
  var MRT_TableFooter = function MRT_TableFooter(_ref) {
2626
- var pinned = _ref.pinned,
2627
- tableInstance = _ref.tableInstance;
2628
- var getCenterFooterGroups = tableInstance.getCenterFooterGroups,
2629
- getFooterGroups = tableInstance.getFooterGroups,
2630
- getLeftFooterGroups = tableInstance.getLeftFooterGroups,
2631
- getRightFooterGroups = tableInstance.getRightFooterGroups,
2737
+ var tableInstance = _ref.tableInstance;
2738
+ var getFooterGroups = tableInstance.getFooterGroups,
2632
2739
  muiTableFooterProps = tableInstance.options.muiTableFooterProps;
2633
2740
  var tableFooterProps = muiTableFooterProps instanceof Function ? muiTableFooterProps({
2634
2741
  tableInstance: tableInstance
2635
2742
  }) : muiTableFooterProps;
2636
- var getFooterGroupsMap = {
2637
- center: getCenterFooterGroups,
2638
- left: getLeftFooterGroups,
2639
- none: getFooterGroups,
2640
- right: getRightFooterGroups
2641
- };
2642
- return React.createElement(TableFooter, Object.assign({}, tableFooterProps), getFooterGroupsMap[pinned]().map(function (footerGroup) {
2743
+ return React.createElement(TableFooter, Object.assign({}, tableFooterProps), getFooterGroups().map(function (footerGroup) {
2643
2744
  return React.createElement(MRT_TableFooterRow, {
2644
2745
  footerGroup: footerGroup,
2645
- key: footerGroup.getFooterGroupProps().key,
2746
+ key: footerGroup.id,
2646
2747
  tableInstance: tableInstance
2647
2748
  });
2648
2749
  }));
2649
2750
  };
2650
2751
 
2651
2752
  var MRT_Table = function MRT_Table(_ref) {
2652
- var pinned = _ref.pinned,
2653
- tableInstance = _ref.tableInstance;
2654
- var getTableProps = tableInstance.getTableProps,
2655
- _tableInstance$option = tableInstance.options,
2656
- muiTableProps = _tableInstance$option.muiTableProps,
2657
- enableTableHead = _tableInstance$option.enableTableHead,
2753
+ var tableInstance = _ref.tableInstance;
2754
+ var _tableInstance$option = tableInstance.options,
2755
+ enableStickyHeader = _tableInstance$option.enableStickyHeader,
2658
2756
  enableTableFooter = _tableInstance$option.enableTableFooter,
2659
- enableStickyHeader = _tableInstance$option.enableStickyHeader;
2660
- var mTableProps = muiTableProps instanceof Function ? muiTableProps({
2757
+ enableTableHead = _tableInstance$option.enableTableHead,
2758
+ muiTableProps = _tableInstance$option.muiTableProps;
2759
+ var tableProps = muiTableProps instanceof Function ? muiTableProps({
2661
2760
  tableInstance: tableInstance
2662
2761
  }) : muiTableProps;
2663
-
2664
- var tableProps = _extends({}, getTableProps(), mTableProps);
2665
-
2666
2762
  return React.createElement(Table, Object.assign({
2667
2763
  stickyHeader: enableStickyHeader
2668
2764
  }, tableProps), enableTableHead && React.createElement(MRT_TableHead, {
2669
- pinned: pinned,
2670
2765
  tableInstance: tableInstance
2671
2766
  }), React.createElement(MRT_TableBody, {
2672
- pinned: pinned,
2673
2767
  tableInstance: tableInstance
2674
2768
  }), enableTableFooter && React.createElement(MRT_TableFooter, {
2675
- pinned: pinned,
2676
2769
  tableInstance: tableInstance
2677
2770
  }));
2678
2771
  };
2679
2772
 
2680
- var commonBoxStyles = function commonBoxStyles(_ref) {
2681
- var pinned = _ref.pinned,
2682
- theme = _ref.theme,
2683
- visible = _ref.visible;
2684
- return {
2685
- display: 'grid',
2686
- minWidth: visible ? '200px' : 0,
2687
- overflowX: pinned ? 'scroll' : 'auto',
2688
- boxShadow: pinned === 'left' ? "0 1px 12px " + alpha(theme.palette.common.black, 0.5) : pinned === 'right' ? "0 -1px 12px " + alpha(theme.palette.common.black, 0.5) : 'none'
2689
- };
2690
- };
2691
-
2692
- var MRT_TableContainer = function MRT_TableContainer(_ref2) {
2693
- var tableInstance = _ref2.tableInstance;
2694
- var getCenterTableWidth = tableInstance.getCenterTableWidth,
2695
- getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
2696
- getLeftTableWidth = tableInstance.getLeftTableWidth,
2697
- getRightTableWidth = tableInstance.getRightTableWidth,
2698
- getState = tableInstance.getState,
2773
+ var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
2774
+ var MRT_TableContainer = function MRT_TableContainer(_ref) {
2775
+ var tableInstance = _ref.tableInstance;
2776
+ var getState = tableInstance.getState,
2699
2777
  _tableInstance$option = tableInstance.options,
2700
- enablePinning = _tableInstance$option.enablePinning,
2701
2778
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
2702
2779
  idPrefix = _tableInstance$option.idPrefix,
2703
2780
  muiTableContainerProps = _tableInstance$option.muiTableContainerProps;
2704
2781
 
2705
2782
  var _getState = getState(),
2706
- isFullScreen = _getState.isFullScreen,
2707
- columnPinning = _getState.columnPinning;
2783
+ isFullScreen = _getState.isFullScreen;
2708
2784
 
2709
2785
  var _useState = useState(0),
2710
2786
  totalToolbarHeight = _useState[0],
@@ -2713,7 +2789,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref2) {
2713
2789
  var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps({
2714
2790
  tableInstance: tableInstance
2715
2791
  }) : muiTableContainerProps;
2716
- useEffect(function () {
2792
+ useIsomorphicLayoutEffect(function () {
2717
2793
  var _document$getElementB, _document, _document$getElementB2, _document$getElementB3, _document2, _document2$getElement;
2718
2794
 
2719
2795
  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;
@@ -2729,48 +2805,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref2) {
2729
2805
  style: {
2730
2806
  maxHeight: isFullScreen ? "calc(100vh - " + totalToolbarHeight + "px)" : undefined
2731
2807
  }
2732
- }), enablePinning && getIsSomeColumnsPinned() ? React.createElement(Box, {
2733
- sx: {
2734
- display: 'grid',
2735
- gridTemplateColumns: getLeftTableWidth() + "fr " + getCenterTableWidth() + "fr " + getRightTableWidth() + "fr"
2736
- }
2737
- }, React.createElement(Box, {
2738
- sx: function sx(theme) {
2739
- var _columnPinning$left;
2740
-
2741
- return commonBoxStyles({
2742
- pinned: 'left',
2743
- theme: theme,
2744
- visible: !!((_columnPinning$left = columnPinning.left) != null && _columnPinning$left.length)
2745
- });
2746
- }
2747
- }, React.createElement(MRT_Table, {
2748
- pinned: "left",
2749
- tableInstance: tableInstance
2750
- })), React.createElement(Box, {
2751
- sx: function sx(theme) {
2752
- return commonBoxStyles({
2753
- theme: theme
2754
- });
2755
- }
2756
- }, React.createElement(MRT_Table, {
2757
- pinned: "center",
2758
- tableInstance: tableInstance
2759
- })), React.createElement(Box, {
2760
- sx: function sx(theme) {
2761
- var _columnPinning$right;
2762
-
2763
- return commonBoxStyles({
2764
- pinned: 'right',
2765
- theme: theme,
2766
- visible: !!((_columnPinning$right = columnPinning.right) != null && _columnPinning$right.length)
2767
- });
2768
- }
2769
- }, React.createElement(MRT_Table, {
2770
- pinned: "right",
2771
- tableInstance: tableInstance
2772
- }))) : React.createElement(MRT_Table, {
2773
- pinned: "none",
2808
+ }), React.createElement(MRT_Table, {
2774
2809
  tableInstance: tableInstance
2775
2810
  }));
2776
2811
  };
@@ -2851,19 +2886,19 @@ var getAllLeafColumnDefs = function getAllLeafColumnDefs(columns) {
2851
2886
  return !col.columns;
2852
2887
  });
2853
2888
  };
2854
- var createGroup = function createGroup(table, column, currentFilterTypes) {
2889
+ var createGroup = function createGroup(table, column, currentFilterFns) {
2855
2890
  var _column$columns;
2856
2891
 
2857
2892
  return table.createGroup(_extends({}, column, {
2858
2893
  columns: column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.map == null ? void 0 : _column$columns.map(function (col) {
2859
- return col.columns ? createGroup(table, col, currentFilterTypes) : createDataColumn(table, col, currentFilterTypes);
2894
+ return col.columns ? createGroup(table, col, currentFilterFns) : createDataColumn(table, col, currentFilterFns);
2860
2895
  })
2861
2896
  }));
2862
2897
  };
2863
- var createDataColumn = function createDataColumn(table, column, currentFilterTypes) {
2898
+ var createDataColumn = function createDataColumn(table, column, currentFilterFns) {
2864
2899
  return (// @ts-ignore
2865
2900
  table.createDataColumn(column.id, _extends({
2866
- filterFn: currentFilterTypes[column.id] instanceof Function ? currentFilterTypes[column.id] : defaultFilterFNs[currentFilterTypes[column.id]]
2901
+ filterFn: currentFilterFns[column.id] instanceof Function ? currentFilterFns[column.id] : defaultFilterFNs[currentFilterFns[column.id]]
2867
2902
  }, column))
2868
2903
  );
2869
2904
  };
@@ -2872,7 +2907,7 @@ var createDisplayColumn = function createDisplayColumn(table, column) {
2872
2907
  };
2873
2908
 
2874
2909
  var MRT_TableRoot = function MRT_TableRoot(props) {
2875
- 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;
2910
+ 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;
2876
2911
 
2877
2912
  var _useState = useState(props.idPrefix),
2878
2913
  idPrefix = _useState[0],
@@ -2936,24 +2971,24 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
2936
2971
  var _useState8 = useState({
2937
2972
  pageIndex: (_initialState$paginat = initialState == null ? void 0 : (_initialState$paginat2 = initialState.pagination) == null ? void 0 : _initialState$paginat2.pageIndex) != null ? _initialState$paginat : 0,
2938
2973
  pageSize: (_initialState$paginat3 = initialState == null ? void 0 : (_initialState$paginat4 = initialState.pagination) == null ? void 0 : _initialState$paginat4.pageSize) != null ? _initialState$paginat3 : 10,
2939
- pageCount: (_initialState$paginat5 = initialState == null ? void 0 : (_initialState$paginat6 = initialState.pagination) == null ? void 0 : _initialState$paginat6.pageCount) != null ? _initialState$paginat5 : -1
2974
+ pageCount: initialState == null ? void 0 : (_initialState$paginat5 = initialState.pagination) == null ? void 0 : _initialState$paginat5.pageCount
2940
2975
  }),
2941
2976
  pagination = _useState8[0],
2942
2977
  setPagination = _useState8[1];
2943
2978
 
2944
2979
  var _useState9 = useState(function () {
2945
2980
  return Object.assign.apply(Object, [{}].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
2946
- var _ref, _c$filter, _initialState$current3, _c$filterSelectOption, _ref2;
2981
+ var _ref, _c$filterFn, _initialState$current3, _c$filterSelectOption, _ref2;
2947
2982
 
2948
- 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;
2983
+ 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;
2949
2984
  })));
2950
2985
  }),
2951
- currentFilterTypes = _useState9[0],
2952
- setCurrentFilterTypes = _useState9[1];
2986
+ currentFilterFns = _useState9[0],
2987
+ setCurrentFilterFns = _useState9[1];
2953
2988
 
2954
- var _useState10 = useState((_props$globalFilterTy = props.globalFilterType) != null ? _props$globalFilterTy : MRT_FILTER_TYPE.BEST_MATCH_FIRST),
2955
- currentGlobalFilterType = _useState10[0],
2956
- setCurrentGlobalFilterType = _useState10[1];
2989
+ var _useState10 = useState((_props$globalFilterFn = props.globalFilterFn) != null ? _props$globalFilterFn : MRT_FILTER_OPTION.FUZZY),
2990
+ currentGlobalFilterFn = _useState10[0],
2991
+ setCurrentGlobalFilterFn = _useState10[1];
2957
2992
 
2958
2993
  var table = useMemo(function () {
2959
2994
  return createTable();
@@ -2971,9 +3006,8 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
2971
3006
  },
2972
3007
  header: (_props$localization = props.localization) == null ? void 0 : _props$localization.actions,
2973
3008
  id: 'mrt-row-actions',
2974
- maxWidth: 60,
2975
- width: 60
2976
- }), (props.enableExpanded || props.enableGrouping) && createDisplayColumn(table, {
3009
+ size: 60
3010
+ }), (props.enableExpanding || props.enableGrouping) && createDisplayColumn(table, {
2977
3011
  Cell: function Cell(_ref4) {
2978
3012
  var cell = _ref4.cell;
2979
3013
  return React.createElement(MRT_ExpandButton, {
@@ -2988,8 +3022,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
2988
3022
  },
2989
3023
  header: (_props$localization2 = props.localization) == null ? void 0 : _props$localization2.expand,
2990
3024
  id: 'mrt-expand',
2991
- maxWidth: 40,
2992
- width: 40
3025
+ size: 50
2993
3026
  }), props.enableRowSelection && createDisplayColumn(table, {
2994
3027
  Cell: function Cell(_ref5) {
2995
3028
  var cell = _ref5.cell;
@@ -3006,8 +3039,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3006
3039
  },
3007
3040
  header: (_props$localization3 = props.localization) == null ? void 0 : _props$localization3.select,
3008
3041
  id: 'mrt-select',
3009
- maxWidth: 40,
3010
- width: 40
3042
+ size: 50
3011
3043
  }), props.enableRowNumbers && createDisplayColumn(table, {
3012
3044
  Cell: function Cell(_ref6) {
3013
3045
  var cell = _ref6.cell;
@@ -3020,56 +3052,64 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3020
3052
  },
3021
3053
  header: (_props$localization5 = props.localization) == null ? void 0 : _props$localization5.rowNumbers,
3022
3054
  id: 'mrt-row-numbers',
3023
- maxWidth: 40,
3024
- width: 40,
3025
- minWidth: 40
3055
+ size: 50
3026
3056
  })].filter(Boolean);
3027
- }, [props.editingMode, props.enableEditing, props.enableExpandAll, props.enableExpanded, props.enableGrouping, props.enableRowActions, props.enableRowNumbers, props.enableRowSelection, props.enableSelectAll, props.localization, table]);
3057
+ }, [props.editingMode, props.enableEditing, props.enableExpandAll, props.enableExpanding, props.enableGrouping, props.enableRowActions, props.enableRowNumbers, props.enableRowSelection, props.enableSelectAll, props.localization, table]);
3028
3058
  var columns = useMemo(function () {
3029
- return table.createColumns([].concat(displayColumns, props.columns.map(function (column) {
3030
- return column.columns ? createGroup(table, column, currentFilterTypes) : createDataColumn(table, column, currentFilterTypes);
3031
- })));
3032
- }, [table, props.columns, currentFilterTypes]);
3059
+ return [].concat(displayColumns, props.columns.map(function (column) {
3060
+ return column.columns ? createGroup(table, column, currentFilterFns) : createDataColumn(table, column, currentFilterFns);
3061
+ }));
3062
+ }, [table, props.columns, currentFilterFns]);
3033
3063
  var data = useMemo(function () {
3034
- return props.isLoading && !props.data.length ? [].concat(Array(10).fill(null)).map(function () {
3064
+ var _props$state, _props$state2;
3065
+
3066
+ 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 () {
3035
3067
  return Object.assign.apply(Object, [{}].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
3036
3068
  var _ref7;
3037
3069
 
3038
3070
  return _ref7 = {}, _ref7[c.id] = null, _ref7;
3039
3071
  })));
3040
3072
  }) : props.data;
3041
- }, [props.data, props.isLoading]); //@ts-ignore
3073
+ }, [props.data, (_props$state3 = props.state) == null ? void 0 : _props$state3.isLoading, (_props$state4 = props.state) == null ? void 0 : _props$state4.showSkeletons]); //@ts-ignore
3042
3074
 
3043
3075
  var tableInstance = _extends({}, useTableInstance(table, _extends({
3076
+ filterFns: defaultFilterFNs,
3077
+ //@ts-ignore
3078
+ getCoreRowModel: getCoreRowModel(),
3044
3079
  //@ts-ignore
3045
- filterTypes: defaultFilterFNs,
3046
- getColumnFilteredRowModel: getColumnFilteredRowModelSync(),
3047
- getCoreRowModel: getCoreRowModelSync(),
3048
3080
  getExpandedRowModel: getExpandedRowModel(),
3049
- getGlobalFilteredRowModel: getGlobalFilteredRowModelSync(),
3050
- getGroupedRowModel: getGroupedRowModelSync(),
3081
+ //@ts-ignore
3082
+ getFacetedRowModel: getFacetedRowModel(),
3083
+ //@ts-ignore
3084
+ getFilteredRowModel: getFilteredRowModel(),
3085
+ //@ts-ignore
3086
+ getGroupedRowModel: getGroupedRowModel(),
3087
+ //@ts-ignore
3051
3088
  getPaginationRowModel: getPaginationRowModel(),
3052
- getSortedRowModel: getSortedRowModelSync(),
3053
- getSubRows: function getSubRows(originalRow) {
3054
- return originalRow.subRows;
3089
+ //@ts-ignore
3090
+ getSortedRowModel: getSortedRowModel(),
3091
+ //@ts-ignore
3092
+ getSubRows: function getSubRows(row) {
3093
+ return row == null ? void 0 : row.subRows;
3055
3094
  },
3056
- globalFilterType: currentGlobalFilterType,
3095
+ //@ts-ignore
3096
+ globalFilterFn: currentGlobalFilterFn,
3057
3097
  onPaginationChange: function onPaginationChange(updater) {
3058
3098
  return setPagination(function (old) {
3059
3099
  return functionalUpdate(updater, old);
3060
3100
  });
3061
3101
  }
3062
3102
  }, props, {
3103
+ //@ts-ignore
3063
3104
  columns: columns,
3064
3105
  data: data,
3065
3106
  idPrefix: idPrefix,
3066
- //@ts-ignore
3067
3107
  initialState: initialState,
3068
3108
  state: _extends({
3069
3109
  currentEditingCell: currentEditingCell,
3070
3110
  currentEditingRow: currentEditingRow,
3071
- currentFilterTypes: currentFilterTypes,
3072
- currentGlobalFilterType: currentGlobalFilterType,
3111
+ currentFilterFns: currentFilterFns,
3112
+ currentGlobalFilterFn: currentGlobalFilterFn,
3073
3113
  isDensePadding: isDensePadding,
3074
3114
  isFullScreen: isFullScreen,
3075
3115
  //@ts-ignore
@@ -3078,12 +3118,10 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3078
3118
  showGlobalFilter: showGlobalFilter
3079
3119
  }, props.state)
3080
3120
  })), {
3081
- //@ts-ignore
3082
3121
  setCurrentEditingCell: setCurrentEditingCell,
3083
- //@ts-ignore
3084
3122
  setCurrentEditingRow: setCurrentEditingRow,
3085
- setCurrentFilterTypes: setCurrentFilterTypes,
3086
- setCurrentGlobalFilterType: setCurrentGlobalFilterType,
3123
+ setCurrentFilterFns: setCurrentFilterFns,
3124
+ setCurrentGlobalFilterFn: setCurrentGlobalFilterFn,
3087
3125
  setIsDensePadding: setIsDensePadding,
3088
3126
  setIsFullScreen: setIsFullScreen,
3089
3127
  setShowFilters: setShowFilters,
@@ -3113,24 +3151,24 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3113
3151
  }
3114
3152
  }, [props.enablePersistentState, props.idPrefix, props.persistentStateMode, tableInstance]);
3115
3153
  return React.createElement(React.Fragment, null, React.createElement(Dialog, {
3116
- TransitionComponent: Grow,
3117
3154
  PaperComponent: Box,
3155
+ TransitionComponent: Grow,
3118
3156
  disablePortal: true,
3119
3157
  fullScreen: true,
3120
3158
  keepMounted: false,
3121
3159
  onClose: function onClose() {
3122
- return tableInstance.setIsFullScreen(false);
3160
+ return setIsFullScreen(false);
3123
3161
  },
3124
- open: tableInstance.getState().isFullScreen,
3162
+ open: isFullScreen,
3125
3163
  transitionDuration: 400
3126
3164
  }, React.createElement(MRT_TablePaper, {
3127
3165
  tableInstance: tableInstance
3128
- })), !tableInstance.getState().isFullScreen && React.createElement(MRT_TablePaper, {
3166
+ })), !isFullScreen && React.createElement(MRT_TablePaper, {
3129
3167
  tableInstance: tableInstance
3130
3168
  }));
3131
3169
  };
3132
3170
 
3133
- 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"];
3171
+ 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"];
3134
3172
  var MaterialReactTable = (function (_ref) {
3135
3173
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3136
3174
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -3160,6 +3198,8 @@ var MaterialReactTable = (function (_ref) {
3160
3198
  enableMultiRowSelection = _ref$enableMultiRowSe === void 0 ? true : _ref$enableMultiRowSe,
3161
3199
  _ref$enablePagination = _ref.enablePagination,
3162
3200
  enablePagination = _ref$enablePagination === void 0 ? true : _ref$enablePagination,
3201
+ _ref$enablePinning = _ref.enablePinning,
3202
+ enablePinning = _ref$enablePinning === void 0 ? false : _ref$enablePinning,
3163
3203
  _ref$enableSelectAll = _ref.enableSelectAll,
3164
3204
  enableSelectAll = _ref$enableSelectAll === void 0 ? true : _ref$enableSelectAll,
3165
3205
  _ref$enableSorting = _ref.enableSorting,
@@ -3195,8 +3235,8 @@ var MaterialReactTable = (function (_ref) {
3195
3235
  columnResizeMode: columnResizeMode,
3196
3236
  editingMode: editingMode,
3197
3237
  enableColumnActions: enableColumnActions,
3198
- enableColumnResizing: enableColumnResizing,
3199
3238
  enableColumnFilters: enableColumnFilters,
3239
+ enableColumnResizing: enableColumnResizing,
3200
3240
  enableDensePaddingToggle: enableDensePaddingToggle,
3201
3241
  enableExpandAll: enableExpandAll,
3202
3242
  enableFilters: enableFilters,
@@ -3205,6 +3245,7 @@ var MaterialReactTable = (function (_ref) {
3205
3245
  enableHiding: enableHiding,
3206
3246
  enableMultiRowSelection: enableMultiRowSelection,
3207
3247
  enablePagination: enablePagination,
3248
+ enablePinning: enablePinning,
3208
3249
  enableSelectAll: enableSelectAll,
3209
3250
  enableSorting: enableSorting,
3210
3251
  enableStickyHeader: enableStickyHeader,