material-react-table 0.7.5 → 0.8.0-alpha.2

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 (55) hide show
  1. package/dist/MaterialReactTable.d.ts +16 -15
  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 +2 -2
  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 +451 -418
  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 +454 -421
  19. package/dist/material-react-table.esm.js.map +1 -1
  20. package/dist/table/MRT_Table.d.ts +0 -1
  21. package/dist/toolbar/MRT_ToolbarTop.d.ts +1 -0
  22. package/dist/utils.d.ts +1 -1
  23. package/package.json +21 -25
  24. package/src/MaterialReactTable.tsx +20 -24
  25. package/src/body/MRT_TableBody.tsx +3 -11
  26. package/src/body/MRT_TableBodyCell.tsx +103 -52
  27. package/src/body/MRT_TableBodyRow.tsx +21 -30
  28. package/src/buttons/MRT_ColumnPinningButtons.tsx +57 -0
  29. package/src/buttons/MRT_CopyButton.tsx +3 -2
  30. package/src/buttons/MRT_EditActionButtons.tsx +1 -2
  31. package/src/buttons/MRT_ExpandAllButton.tsx +22 -18
  32. package/src/buttons/MRT_ExpandButton.tsx +27 -21
  33. package/src/enums.ts +2 -2
  34. package/src/filtersFNs.ts +71 -81
  35. package/src/footer/MRT_TableFooter.tsx +6 -16
  36. package/src/footer/MRT_TableFooterCell.tsx +15 -15
  37. package/src/footer/MRT_TableFooterRow.tsx +6 -8
  38. package/src/head/MRT_TableHead.tsx +5 -16
  39. package/src/head/MRT_TableHeadCell.tsx +116 -49
  40. package/src/head/MRT_TableHeadRow.tsx +8 -15
  41. package/src/inputs/MRT_EditCellTextField.tsx +3 -3
  42. package/src/inputs/MRT_FilterRangeFields.tsx +41 -0
  43. package/src/inputs/MRT_FilterTextField.tsx +76 -41
  44. package/src/inputs/MRT_SelectCheckbox.tsx +15 -17
  45. package/src/localization.ts +15 -5
  46. package/src/menus/MRT_ColumnActionMenu.tsx +13 -12
  47. package/src/menus/MRT_FilterOptionMenu.tsx +36 -33
  48. package/src/menus/MRT_ShowHideColumnsMenu.tsx +25 -11
  49. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +16 -6
  50. package/src/table/MRT_Table.tsx +8 -19
  51. package/src/table/MRT_TableContainer.tsx +8 -69
  52. package/src/table/MRT_TableRoot.tsx +44 -52
  53. package/src/toolbar/MRT_LinearProgressBar.tsx +5 -2
  54. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +3 -2
  55. package/src/toolbar/MRT_ToolbarTop.tsx +4 -6
@@ -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 { Tooltip, IconButton, Menu, MenuItem, Box, 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,17 +167,19 @@ 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
174
  isDensePadding = _getState.isDensePadding;
172
175
 
173
- return React.createElement(IconButton, {
176
+ return React.createElement(Tooltip, {
177
+ arrow: true,
178
+ enterDelay: 1000,
179
+ enterNextDelay: 1000,
180
+ title: localization.expandAll
181
+ }, React.createElement(IconButton, {
174
182
  "aria-label": localization.expandAll,
175
- disabled: isLoading,
176
- title: localization.expandAll,
177
183
  onClick: function onClick() {
178
184
  return toggleAllRowsExpanded(!getIsAllRowsExpanded());
179
185
  },
@@ -186,7 +192,7 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
186
192
  transform: "rotate(" + (getIsAllRowsExpanded() ? -180 : getIsSomeRowsExpanded() ? -90 : 0) + "deg)",
187
193
  transition: 'transform 0.2s'
188
194
  }
189
- }));
195
+ })));
190
196
  };
191
197
 
192
198
  var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
@@ -211,10 +217,14 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
211
217
  });
212
218
  };
213
219
 
214
- return React.createElement(IconButton, {
220
+ return React.createElement(Tooltip, {
221
+ arrow: true,
222
+ enterDelay: 1000,
223
+ enterNextDelay: 1000,
224
+ title: localization.expand
225
+ }, React.createElement(IconButton, {
215
226
  "aria-label": localization.expand,
216
227
  disabled: !row.getCanExpand() && !renderDetailPanel,
217
- title: localization.expand,
218
228
  onClick: handleToggleExpand,
219
229
  sx: {
220
230
  height: isDensePadding ? '1.75rem' : '2.25rem',
@@ -225,18 +235,18 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
225
235
  transform: "rotate(" + (!row.getCanExpand() && !renderDetailPanel ? -90 : row.getIsExpanded() ? -180 : 0) + "deg)",
226
236
  transition: 'transform 0.2s'
227
237
  }
228
- }));
238
+ })));
229
239
  };
230
240
 
231
241
  var MRT_FILTER_OPTION;
232
242
 
233
243
  (function (MRT_FILTER_OPTION) {
234
- MRT_FILTER_OPTION["BEST_MATCH"] = "bestMatch";
235
- MRT_FILTER_OPTION["BEST_MATCH_FIRST"] = "bestMatchFirst";
244
+ MRT_FILTER_OPTION["BETWEEN"] = "between";
236
245
  MRT_FILTER_OPTION["CONTAINS"] = "contains";
237
246
  MRT_FILTER_OPTION["EMPTY"] = "empty";
238
247
  MRT_FILTER_OPTION["ENDS_WITH"] = "endsWith";
239
248
  MRT_FILTER_OPTION["EQUALS"] = "equals";
249
+ MRT_FILTER_OPTION["FUZZY"] = "fuzzy";
240
250
  MRT_FILTER_OPTION["GREATER_THAN"] = "greaterThan";
241
251
  MRT_FILTER_OPTION["LESS_THAN"] = "lessThan";
242
252
  MRT_FILTER_OPTION["NOT_EMPTY"] = "notEmpty";
@@ -244,117 +254,92 @@ var MRT_FILTER_OPTION;
244
254
  MRT_FILTER_OPTION["STARTS_WITH"] = "startsWith";
245
255
  })(MRT_FILTER_OPTION || (MRT_FILTER_OPTION = {}));
246
256
 
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]
257
+ var fuzzy = function fuzzy(row, columnId, value, addMeta) {
258
+ var itemRank = rankItem(row.getValue(columnId), value, {
259
+ threshold: rankings.MATCHES
252
260
  });
261
+ addMeta(itemRank);
262
+ return itemRank.passed;
253
263
  };
254
264
 
255
- bestMatchFirst.autoRemove = function (val) {
265
+ fuzzy.autoRemove = function (val) {
256
266
  return !val;
257
267
  };
258
268
 
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
- }
267
- });
268
- };
269
-
270
- bestMatch.autoRemove = function (val) {
271
- return !val;
272
- };
273
-
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
- });
269
+ var contains = function contains(row, id, filterValue) {
270
+ return row.getValue(id).toString().toLowerCase().trim().includes(filterValue.toString().toLowerCase().trim());
278
271
  };
279
272
 
280
273
  contains.autoRemove = function (val) {
281
274
  return !val;
282
275
  };
283
276
 
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
- });
277
+ var startsWith = function startsWith(row, id, filterValue) {
278
+ return row.getValue(id).toString().toLowerCase().trim().startsWith(filterValue.toString().toLowerCase().trim());
288
279
  };
289
280
 
290
281
  startsWith.autoRemove = function (val) {
291
282
  return !val;
292
283
  };
293
284
 
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
- });
285
+ var endsWith = function endsWith(row, id, filterValue) {
286
+ return row.getValue(id).toString().toLowerCase().trim().endsWith(filterValue.toString().toLowerCase().trim());
298
287
  };
299
288
 
300
289
  endsWith.autoRemove = function (val) {
301
290
  return !val;
302
291
  };
303
292
 
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
- });
293
+ var equals = function equals(row, id, filterValue) {
294
+ return row.getValue(id).toString().toLowerCase().trim() === filterValue.toString().toLowerCase().trim();
308
295
  };
309
296
 
310
297
  equals.autoRemove = function (val) {
311
298
  return !val;
312
299
  };
313
300
 
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
- });
301
+ var notEquals = function notEquals(row, id, filterValue) {
302
+ return row.getValue(id).toString().toLowerCase().trim() !== filterValue.toString().toLowerCase().trim();
318
303
  };
319
304
 
320
305
  notEquals.autoRemove = function (val) {
321
306
  return !val;
322
307
  };
323
308
 
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
- });
309
+ var greaterThan = function greaterThan(row, id, filterValue) {
310
+ return !isNaN(+filterValue) && !isNaN(+row.getValue(id)) ? +row.getValue(id) >= +filterValue : row.getValue(id).toString().toLowerCase().trim() > filterValue.toString().toLowerCase().trim();
328
311
  };
329
312
 
330
313
  greaterThan.autoRemove = function (val) {
331
314
  return !val;
332
315
  };
333
316
 
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
- });
317
+ var lessThan = function lessThan(row, id, filterValue) {
318
+ return !isNaN(+filterValue) && !isNaN(+row.getValue(id)) ? +row.getValue(id) <= +filterValue : row.getValue(id).toString().toLowerCase().trim() < filterValue.toString().toLowerCase().trim();
338
319
  };
339
320
 
340
321
  lessThan.autoRemove = function (val) {
341
322
  return !val;
342
323
  };
343
324
 
344
- var empty = function empty(rows, id, _filterValue) {
345
- return rows.filter(function (row) {
346
- return !row.values[id].toString().toLowerCase().trim();
347
- });
325
+ var between = function between(row, id, filterValues) {
326
+ 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]));
327
+ };
328
+
329
+ between.autoRemove = function (val) {
330
+ return !val;
331
+ };
332
+
333
+ var empty = function empty(row, id, _filterValue) {
334
+ return !row.getValue(id).toString().trim();
348
335
  };
349
336
 
350
337
  empty.autoRemove = function (val) {
351
338
  return !val;
352
339
  };
353
340
 
354
- var notEmpty = function notEmpty(rows, id, _filterValue) {
355
- return rows.filter(function (row) {
356
- return !!row.values[id].toString().toLowerCase().trim();
357
- });
341
+ var notEmpty = function notEmpty(row, id, _filterValue) {
342
+ return !!row.getValue(id).toString().trim();
358
343
  };
359
344
 
360
345
  notEmpty.autoRemove = function (val) {
@@ -362,12 +347,12 @@ notEmpty.autoRemove = function (val) {
362
347
  };
363
348
 
364
349
  var defaultFilterFNs = {
365
- bestMatch: bestMatch,
366
- bestMatchFirst: bestMatchFirst,
350
+ between: between,
367
351
  contains: contains,
368
352
  empty: empty,
369
353
  endsWith: endsWith,
370
354
  equals: equals,
355
+ fuzzy: fuzzy,
371
356
  greaterThan: greaterThan,
372
357
  lessThan: lessThan,
373
358
  notEmpty: notEmpty,
@@ -400,62 +385,62 @@ var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
400
385
 
401
386
  var filterOptions = useMemo(function () {
402
387
  return [{
403
- type: MRT_FILTER_OPTION.BEST_MATCH_FIRST,
404
- label: localization.filterBestMatchFirst,
388
+ option: MRT_FILTER_OPTION.FUZZY,
389
+ label: localization.filterFuzzy,
405
390
  divider: false,
406
- fn: bestMatchFirst
407
- }, {
408
- type: MRT_FILTER_OPTION.BEST_MATCH,
409
- label: localization.filterBestMatch,
410
- divider: !!header,
411
- fn: bestMatch
391
+ fn: fuzzy
412
392
  }, {
413
- type: MRT_FILTER_OPTION.CONTAINS,
393
+ option: MRT_FILTER_OPTION.CONTAINS,
414
394
  label: localization.filterContains,
415
395
  divider: false,
416
396
  fn: contains
417
397
  }, {
418
- type: MRT_FILTER_OPTION.STARTS_WITH,
398
+ option: MRT_FILTER_OPTION.STARTS_WITH,
419
399
  label: localization.filterStartsWith,
420
400
  divider: false,
421
401
  fn: startsWith
422
402
  }, {
423
- type: MRT_FILTER_OPTION.ENDS_WITH,
403
+ option: MRT_FILTER_OPTION.ENDS_WITH,
424
404
  label: localization.filterEndsWith,
425
405
  divider: true,
426
406
  fn: endsWith
427
407
  }, {
428
- type: MRT_FILTER_OPTION.EQUALS,
408
+ option: MRT_FILTER_OPTION.EQUALS,
429
409
  label: localization.filterEquals,
430
410
  divider: false,
431
411
  fn: equals
432
412
  }, {
433
- type: MRT_FILTER_OPTION.NOT_EQUALS,
413
+ option: MRT_FILTER_OPTION.NOT_EQUALS,
434
414
  label: localization.filterNotEquals,
435
415
  divider: true,
436
416
  fn: notEquals
437
417
  }, {
438
- type: MRT_FILTER_OPTION.GREATER_THAN,
418
+ option: MRT_FILTER_OPTION.BETWEEN,
419
+ label: localization.filterBetween,
420
+ divider: false,
421
+ fn: between
422
+ }, {
423
+ option: MRT_FILTER_OPTION.GREATER_THAN,
439
424
  label: localization.filterGreaterThan,
440
425
  divider: false,
441
426
  fn: greaterThan
442
427
  }, {
443
- type: MRT_FILTER_OPTION.LESS_THAN,
428
+ option: MRT_FILTER_OPTION.LESS_THAN,
444
429
  label: localization.filterLessThan,
445
430
  divider: true,
446
431
  fn: lessThan
447
432
  }, {
448
- type: MRT_FILTER_OPTION.EMPTY,
433
+ option: MRT_FILTER_OPTION.EMPTY,
449
434
  label: localization.filterEmpty,
450
435
  divider: false,
451
436
  fn: empty
452
437
  }, {
453
- type: MRT_FILTER_OPTION.NOT_EMPTY,
438
+ option: MRT_FILTER_OPTION.NOT_EMPTY,
454
439
  label: localization.filterNotEmpty,
455
440
  divider: false,
456
441
  fn: notEmpty
457
442
  }].filter(function (filterType) {
458
- return header ? !header.column.enabledColumnFilterOptions || header.column.enabledColumnFilterOptions.includes(filterType.type) : (!enabledGlobalFilterOptions || enabledGlobalFilterOptions.includes(filterType.type)) && [MRT_FILTER_OPTION.BEST_MATCH_FIRST, MRT_FILTER_OPTION.BEST_MATCH].includes(filterType.type);
443
+ 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
444
  });
460
445
  }, []);
461
446
 
@@ -468,7 +453,11 @@ var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
468
453
  });
469
454
 
470
455
  if ([MRT_FILTER_OPTION.EMPTY, MRT_FILTER_OPTION.NOT_EMPTY].includes(value)) {
471
- header.column.setColumnFilterValue(' ');
456
+ header.column.setFilterValue(' ');
457
+ } else if (value === MRT_FILTER_OPTION.BETWEEN) {
458
+ header.column.setFilterValue(['', '']);
459
+ } else {
460
+ header.column.setFilterValue('');
472
461
  }
473
462
  } else {
474
463
  setCurrentGlobalFilterFn(value);
@@ -478,7 +467,7 @@ var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
478
467
  onSelect == null ? void 0 : onSelect();
479
468
  };
480
469
 
481
- var filterType = !!header ? currentFilterFns[header.id] : currentGlobalFilterFn;
470
+ var filterOption = !!header ? currentFilterFns[header.id] : currentGlobalFilterFn;
482
471
  return React.createElement(Menu, {
483
472
  anchorEl: anchorEl,
484
473
  anchorOrigin: {
@@ -493,7 +482,7 @@ var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
493
482
  dense: isDensePadding
494
483
  }
495
484
  }, filterOptions.map(function (_ref2, index) {
496
- var type = _ref2.type,
485
+ var option = _ref2.option,
497
486
  label = _ref2.label,
498
487
  divider = _ref2.divider,
499
488
  fn = _ref2.fn;
@@ -501,15 +490,65 @@ var MRT_FilterOptionMenu = function MRT_FilterOptionMenu(_ref) {
501
490
  divider: divider,
502
491
  key: index,
503
492
  onClick: function onClick() {
504
- return handleSelectFilterType(type);
493
+ return handleSelectFilterType(option);
505
494
  },
506
- selected: type === filterType || fn === filterType,
495
+ selected: option === filterOption || fn === filterOption,
507
496
  sx: commonMenuItemStyles,
508
- value: type
497
+ value: option
509
498
  }, label);
510
499
  }));
511
500
  };
512
501
 
502
+ var MRT_ColumnPinningButtons = function MRT_ColumnPinningButtons(_ref) {
503
+ var column = _ref.column,
504
+ tableInstance = _ref.tableInstance;
505
+ var _tableInstance$option = tableInstance.options,
506
+ PushPinIcon = _tableInstance$option.icons.PushPinIcon,
507
+ localization = _tableInstance$option.localization;
508
+
509
+ var handlePinColumn = function handlePinColumn(pinDirection) {
510
+ column.pin(pinDirection);
511
+ };
512
+
513
+ return React.createElement(Box, {
514
+ sx: {
515
+ mr: '8px'
516
+ }
517
+ }, column.getIsPinned() ? React.createElement(Tooltip, {
518
+ arrow: true,
519
+ title: localization.unpin
520
+ }, React.createElement(IconButton, {
521
+ onClick: function onClick() {
522
+ return handlePinColumn(false);
523
+ },
524
+ size: "small"
525
+ }, React.createElement(PushPinIcon, null))) : React.createElement(React.Fragment, null, React.createElement(Tooltip, {
526
+ arrow: true,
527
+ title: localization.pinToLeft
528
+ }, React.createElement(IconButton, {
529
+ onClick: function onClick() {
530
+ return handlePinColumn('left');
531
+ },
532
+ size: "small"
533
+ }, React.createElement(PushPinIcon, {
534
+ style: {
535
+ transform: 'rotate(90deg)'
536
+ }
537
+ }))), React.createElement(Tooltip, {
538
+ arrow: true,
539
+ title: localization.pinToRight
540
+ }, React.createElement(IconButton, {
541
+ onClick: function onClick() {
542
+ return handlePinColumn('right');
543
+ },
544
+ size: "small"
545
+ }, React.createElement(PushPinIcon, {
546
+ style: {
547
+ transform: 'rotate(-90deg)'
548
+ }
549
+ })))));
550
+ };
551
+
513
552
  var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
514
553
  var _column$columns2;
515
554
 
@@ -545,10 +584,17 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
545
584
  };
546
585
 
547
586
  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, {
587
+ sx: {
588
+ alignItems: 'center',
589
+ justifyContent: 'flex-start',
590
+ my: 0,
591
+ pl: (column.depth + 0.5) * 2 + "rem",
592
+ py: '6px'
593
+ }
594
+ }, !isSubMenu && column.getCanPin() && React.createElement(MRT_ColumnPinningButtons, {
595
+ column: column,
596
+ tableInstance: tableInstance
597
+ }), React.createElement(FormControlLabel, {
552
598
  componentsProps: {
553
599
  typography: {
554
600
  sx: {
@@ -558,8 +604,8 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
558
604
  },
559
605
  checked: switchChecked,
560
606
  control: React.createElement(Switch, null),
561
- disabled: isSubMenu && switchChecked || column.enableHiding === false,
562
- label: column.header,
607
+ disabled: isSubMenu && switchChecked || !column.getCanHide(),
608
+ label: column.columnDef.header,
563
609
  onChange: function onChange() {
564
610
  return handleToggleColumnHidden(column);
565
611
  }
@@ -585,7 +631,9 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
585
631
  getState = tableInstance.getState,
586
632
  toggleAllColumnsVisible = tableInstance.toggleAllColumnsVisible,
587
633
  getAllLeafColumns = tableInstance.getAllLeafColumns,
588
- localization = tableInstance.options.localization;
634
+ _tableInstance$option = tableInstance.options,
635
+ localization = _tableInstance$option.localization,
636
+ enablePinning = _tableInstance$option.enablePinning;
589
637
 
590
638
  var _getState = getState(),
591
639
  isDensePadding = _getState.isDensePadding;
@@ -609,9 +657,9 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
609
657
  });
610
658
  return getIsSomeColumnsPinned() ? [].concat(dataColumns.filter(function (c) {
611
659
  return c.getIsPinned() === 'left';
612
- }), dataColumns.filter(function (c) {
660
+ }), [null], dataColumns.filter(function (c) {
613
661
  return c.getIsPinned() === false;
614
- }), dataColumns.filter(function (c) {
662
+ }), [null], dataColumns.filter(function (c) {
615
663
  return c.getIsPinned() === 'right';
616
664
  })) : dataColumns;
617
665
  }, [getAllColumns(), getState().columnPinning, getIsSomeColumnsPinned()]);
@@ -634,7 +682,12 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
634
682
  }, !isSubMenu && React.createElement(Button, {
635
683
  disabled: !getIsSomeColumnsVisible(),
636
684
  onClick: hideAllColumns
637
- }, localization.hideAll), React.createElement(Button, {
685
+ }, localization.hideAll), !isSubMenu && enablePinning && React.createElement(Button, {
686
+ disabled: !getIsSomeColumnsPinned(),
687
+ onClick: function onClick() {
688
+ return tableInstance.resetColumnPinning(true);
689
+ }
690
+ }, localization.unpinAll), React.createElement(Button, {
638
691
  disabled: getIsAllColumnsVisible(),
639
692
  onClick: function onClick() {
640
693
  return toggleAllColumnsVisible(true);
@@ -647,11 +700,13 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
647
700
  tableInstance: tableInstance
648
701
  });
649
702
  }), React.createElement(Divider, null), allDataColumns.map(function (column, index) {
650
- return React.createElement(MRT_ShowHideColumnsMenuItems, {
703
+ return column ? React.createElement(MRT_ShowHideColumnsMenuItems, {
651
704
  column: column,
652
705
  isSubMenu: isSubMenu,
653
706
  key: index + "-" + column.id,
654
707
  tableInstance: tableInstance
708
+ }) : React.createElement(Divider, {
709
+ key: index + "-divider"
655
710
  });
656
711
  }));
657
712
  };
@@ -713,7 +768,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
713
768
  setShowHideColumnsMenuAnchorEl = _useState2[1];
714
769
 
715
770
  var handleClearSort = function handleClearSort() {
716
- column.resetSorting();
771
+ column.clearSorting();
717
772
  setAnchorEl(null);
718
773
  };
719
774
 
@@ -739,6 +794,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
739
794
 
740
795
  var handlePinColumn = function handlePinColumn(pinDirection) {
741
796
  column.pin(pinDirection);
797
+ setAnchorEl(null);
742
798
  };
743
799
 
744
800
  var handleGroupByColumn = function handleGroupByColumn() {
@@ -750,7 +806,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
750
806
  };
751
807
 
752
808
  var handleClearFilter = function handleClearFilter() {
753
- column.setColumnFilterValue('');
809
+ column.setFilterValue('');
754
810
  setAnchorEl(null);
755
811
  };
756
812
 
@@ -803,7 +859,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
803
859
  sx: commonMenuItemStyles$1
804
860
  }, React.createElement(Box, {
805
861
  sx: commonListItemStyles
806
- }, React.createElement(ListItemIcon, null, React.createElement(SortIcon, null)), (_localization$sortByC = localization.sortByColumnAsc) == null ? void 0 : _localization$sortByC.replace('{column}', String(column.header)))), React.createElement(MenuItem, {
862
+ }, React.createElement(ListItemIcon, null, React.createElement(SortIcon, null)), (_localization$sortByC = localization.sortByColumnAsc) == null ? void 0 : _localization$sortByC.replace('{column}', String(column.columnDef.header)))), React.createElement(MenuItem, {
807
863
  divider: enableColumnFilters || enableGrouping || enableHiding,
808
864
  key: 2,
809
865
  disabled: column.getIsSorted() === 'desc',
@@ -815,8 +871,8 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
815
871
  style: {
816
872
  transform: 'rotate(180deg) scaleX(-1)'
817
873
  }
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(),
874
+ })), (_localization$sortByC2 = localization.sortByColumnDesc) == null ? void 0 : _localization$sortByC2.replace('{column}', String(column.columnDef.header))))], enableColumnFilters && column.getCanFilter() && [React.createElement(MenuItem, {
875
+ disabled: !column.getFilterValue(),
820
876
  key: 0,
821
877
  onClick: handleClearFilter,
822
878
  sx: commonMenuItemStyles$1
@@ -829,7 +885,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
829
885
  sx: commonMenuItemStyles$1
830
886
  }, React.createElement(Box, {
831
887
  sx: commonListItemStyles
832
- }, React.createElement(ListItemIcon, null, React.createElement(FilterListIcon, null)), (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.header))), !column.filterSelectOptions && React.createElement(IconButton, {
888
+ }, React.createElement(ListItemIcon, null, React.createElement(FilterListIcon, null)), (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.columnDef.header))), !column.filterSelectOptions && React.createElement(IconButton, {
833
889
  onClick: handleOpenFilterModeMenu,
834
890
  onMouseEnter: handleOpenFilterModeMenu,
835
891
  size: "small",
@@ -850,7 +906,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
850
906
  sx: commonMenuItemStyles$1
851
907
  }, React.createElement(Box, {
852
908
  sx: commonListItemStyles
853
- }, React.createElement(ListItemIcon, null, React.createElement(DynamicFeedIcon, null)), (_localization = localization[column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn']) == null ? void 0 : _localization.replace('{column}', String(column.header))))], enablePinning && column.getCanPin() && [React.createElement(MenuItem, {
909
+ }, React.createElement(ListItemIcon, null, React.createElement(DynamicFeedIcon, null)), (_localization = localization[column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn']) == null ? void 0 : _localization.replace('{column}', String(column.columnDef.header))))], enablePinning && column.getCanPin() && [React.createElement(MenuItem, {
854
910
  disabled: column.getIsPinned() === 'left' || !column.getCanPin(),
855
911
  key: 0,
856
912
  onClick: function onClick() {
@@ -865,7 +921,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
865
921
  }
866
922
  })), localization.pinToLeft)), React.createElement(MenuItem, {
867
923
  disabled: column.getIsPinned() === 'right' || !column.getCanPin(),
868
- key: 0,
924
+ key: 1,
869
925
  onClick: function onClick() {
870
926
  return handlePinColumn('right');
871
927
  },
@@ -879,7 +935,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
879
935
  })), localization.pinToRight)), React.createElement(MenuItem, {
880
936
  disabled: !column.getIsPinned(),
881
937
  divider: enableHiding,
882
- key: 0,
938
+ key: 2,
883
939
  onClick: function onClick() {
884
940
  return handlePinColumn(false);
885
941
  },
@@ -900,7 +956,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
900
956
  sx: commonMenuItemStyles$1
901
957
  }, React.createElement(Box, {
902
958
  sx: commonListItemStyles
903
- }, React.createElement(ListItemIcon, null, React.createElement(VisibilityOffIcon, null)), (_localization$hideCol = localization.hideColumn) == null ? void 0 : _localization$hideCol.replace('{column}', String(column.header)))), React.createElement(MenuItem, {
959
+ }, React.createElement(ListItemIcon, null, React.createElement(VisibilityOffIcon, null)), (_localization$hideCol = localization.hideColumn) == null ? void 0 : _localization$hideCol.replace('{column}', String(column.columnDef.header)))), React.createElement(MenuItem, {
904
960
  disabled: !Object.values(columnVisibility).filter(function (visible) {
905
961
  return !visible;
906
962
  }).length,
@@ -909,7 +965,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
909
965
  sx: commonMenuItemStyles$1
910
966
  }, React.createElement(Box, {
911
967
  sx: commonListItemStyles
912
- }, React.createElement(ListItemIcon, null, React.createElement(ViewColumnIcon, null)), (_localization$showAll = localization.showAllColumns) == null ? void 0 : _localization$showAll.replace('{column}', String(column.header))), React.createElement(IconButton, {
968
+ }, React.createElement(ListItemIcon, null, React.createElement(ViewColumnIcon, null)), (_localization$showAll = localization.showAllColumns) == null ? void 0 : _localization$showAll.replace('{column}', String(column.columnDef.header))), React.createElement(IconButton, {
913
969
  onClick: handleOpenShowHideColumnsMenu,
914
970
  onMouseEnter: handleOpenShowHideColumnsMenu,
915
971
  size: "small",
@@ -982,7 +1038,7 @@ var MRT_EditActionButtons = function MRT_EditActionButtons(_ref) {
982
1038
  var handleCancel = function handleCancel() {
983
1039
  var _row$original;
984
1040
 
985
- row.values = (_row$original = row.original) != null ? _row$original : {};
1041
+ row._valuesCache = (_row$original = row.original) != null ? _row$original : {};
986
1042
  setCurrentEditingRow(null);
987
1043
  };
988
1044
 
@@ -1096,9 +1152,7 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1096
1152
  var getRowModel = tableInstance.getRowModel,
1097
1153
  getSelectedRowModel = tableInstance.getSelectedRowModel,
1098
1154
  getState = tableInstance.getState,
1099
- getToggleAllRowsSelectedProps = tableInstance.getToggleAllRowsSelectedProps,
1100
1155
  _tableInstance$option = tableInstance.options,
1101
- isLoading = _tableInstance$option.isLoading,
1102
1156
  localization = _tableInstance$option.localization,
1103
1157
  muiSelectCheckboxProps = _tableInstance$option.muiSelectCheckboxProps,
1104
1158
  onSelectChange = _tableInstance$option.onSelectChange,
@@ -1109,18 +1163,14 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1109
1163
 
1110
1164
  var handleSelectChange = function handleSelectChange(event) {
1111
1165
  if (selectAll) {
1112
- var _getToggleAllRowsSele;
1113
-
1114
- getToggleAllRowsSelectedProps == null ? void 0 : (_getToggleAllRowsSele = getToggleAllRowsSelectedProps()) == null ? void 0 : _getToggleAllRowsSele.onChange == null ? void 0 : _getToggleAllRowsSele.onChange(event);
1166
+ tableInstance.getToggleAllRowsSelectedHandler()(event);
1115
1167
  onSelectAllChange == null ? void 0 : onSelectAllChange({
1116
1168
  event: event,
1117
1169
  selectedRows: event.target.checked ? getRowModel().flatRows : [],
1118
1170
  tableInstance: tableInstance
1119
1171
  });
1120
1172
  } 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);
1173
+ row == null ? void 0 : row.getToggleSelectedHandler()(event);
1124
1174
  onSelectChange == null ? void 0 : onSelectChange({
1125
1175
  event: event,
1126
1176
  row: row,
@@ -1132,33 +1182,29 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1132
1182
  }
1133
1183
  };
1134
1184
 
1135
- var mTableBodyRowSelectCheckboxProps = muiSelectCheckboxProps instanceof Function ? muiSelectCheckboxProps({
1185
+ var checkboxProps = muiSelectCheckboxProps instanceof Function ? muiSelectCheckboxProps({
1136
1186
  isSelectAll: !!selectAll,
1137
1187
  row: row,
1138
1188
  tableInstance: tableInstance
1139
1189
  }) : muiSelectCheckboxProps;
1140
- var rtSelectCheckboxProps = selectAll ? getToggleAllRowsSelectedProps() : row == null ? void 0 : row.getToggleSelectedProps();
1141
-
1142
- var checkboxProps = _extends({}, rtSelectCheckboxProps, mTableBodyRowSelectCheckboxProps);
1143
-
1144
1190
  return React.createElement(Tooltip, {
1145
1191
  arrow: true,
1146
1192
  enterDelay: 1000,
1147
1193
  enterNextDelay: 1000,
1148
1194
  title: selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1149
1195
  }, React.createElement(Checkbox, Object.assign({
1150
- disabled: isLoading,
1196
+ checked: selectAll ? tableInstance.getIsAllRowsSelected() : row == null ? void 0 : row.getIsSelected(),
1197
+ indeterminate: selectAll ? tableInstance.getIsSomeRowsSelected() : row == null ? void 0 : row.getIsSomeSelected(),
1151
1198
  inputProps: {
1152
1199
  'aria-label': selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1153
1200
  },
1201
+ onChange: handleSelectChange,
1154
1202
  size: isDensePadding ? 'small' : 'medium'
1155
1203
  }, checkboxProps, {
1156
- sx: {
1204
+ sx: _extends({
1157
1205
  height: isDensePadding ? '1.75rem' : '2.25rem',
1158
1206
  width: isDensePadding ? '1.75rem' : '2.25rem'
1159
- },
1160
- onChange: handleSelectChange,
1161
- title: undefined
1207
+ }, checkboxProps == null ? void 0 : checkboxProps.sx)
1162
1208
  })));
1163
1209
  };
1164
1210
 
@@ -1539,7 +1585,6 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1539
1585
  var getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
1540
1586
  getSelectedRowModel = tableInstance.getSelectedRowModel,
1541
1587
  getState = tableInstance.getState,
1542
- toggleColumnGrouping = tableInstance.toggleColumnGrouping,
1543
1588
  _tableInstance$option = tableInstance.options,
1544
1589
  localization = _tableInstance$option.localization,
1545
1590
  muiTableToolbarAlertBannerProps = _tableInstance$option.muiTableToolbarAlertBannerProps,
@@ -1566,7 +1611,7 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1566
1611
  return column.id === columnId;
1567
1612
  })) == null ? void 0 : _tableInstance$getAll.header,
1568
1613
  onDelete: function onDelete() {
1569
- return toggleColumnGrouping(columnId);
1614
+ return tableInstance.getColumn(columnId).toggleGrouping();
1570
1615
  }
1571
1616
  }));
1572
1617
  })) : null;
@@ -1598,15 +1643,19 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1598
1643
 
1599
1644
  var MRT_LinearProgressBar = function MRT_LinearProgressBar(_ref) {
1600
1645
  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;
1646
+ var muiLinearProgressProps = tableInstance.options.muiLinearProgressProps,
1647
+ getState = tableInstance.getState;
1648
+
1649
+ var _getState = getState(),
1650
+ isLoading = _getState.isLoading,
1651
+ showProgressBars = _getState.showProgressBars;
1652
+
1605
1653
  var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps({
1606
1654
  tableInstance: tableInstance
1607
1655
  }) : muiLinearProgressProps;
1608
1656
  return React.createElement(Collapse, {
1609
- "in": isReloading || isLoading,
1657
+ "in": isLoading || showProgressBars,
1658
+ mountOnEnter: true,
1610
1659
  unmountOnExit: true
1611
1660
  }, React.createElement(LinearProgress, Object.assign({
1612
1661
  "aria-label": "Loading",
@@ -1617,10 +1666,11 @@ var MRT_LinearProgressBar = function MRT_LinearProgressBar(_ref) {
1617
1666
  var commonToolbarStyles = function commonToolbarStyles(_ref) {
1618
1667
  var theme = _ref.theme;
1619
1668
  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) + ")",
1669
+ backgroundColor: lighten(theme.palette.background["default"], 0.04),
1670
+ backgroundImage: 'none',
1622
1671
  display: 'grid',
1623
1672
  p: '0 !important',
1673
+ transition: 'all 0.2s ease-in-out',
1624
1674
  width: '100%',
1625
1675
  zIndex: 1
1626
1676
  };
@@ -1736,9 +1786,10 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1736
1786
  };
1737
1787
 
1738
1788
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1739
- var _column$getColumnFilt, _localization$filterB, _localization$filterM, _localization$, _localization$clearFi, _column$filterSelectO;
1789
+ var _localization$filterB, _localization$filterM, _localization$, _localization$clearFi, _column$filterSelectO;
1740
1790
 
1741
1791
  var header = _ref.header,
1792
+ inputIndex = _ref.inputIndex,
1742
1793
  tableInstance = _ref.tableInstance;
1743
1794
  var getState = tableInstance.getState,
1744
1795
  _tableInstance$option = tableInstance.options,
@@ -1769,14 +1820,22 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1769
1820
 
1770
1821
  var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps);
1771
1822
 
1772
- var _useState2 = useState((_column$getColumnFilt = column.getColumnFilterValue()) != null ? _column$getColumnFilt : ''),
1823
+ var _useState2 = useState(function () {
1824
+ var _column$getFilterValu, _column$getFilterValu2, _column$getFilterValu3;
1825
+
1826
+ 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 : '';
1827
+ }),
1773
1828
  filterValue = _useState2[0],
1774
1829
  setFilterValue = _useState2[1];
1775
1830
 
1776
- var handleChange = useCallback(debounce(function (event) {
1831
+ var handleChangeDebounced = useCallback(debounce(function (event) {
1777
1832
  var _event$target$value;
1778
1833
 
1779
- return column.setColumnFilterValue((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
1834
+ return inputIndex !== undefined ? column.setFilterValue(function (old) {
1835
+ var newFilterValues = old != null ? old : ['', ''];
1836
+ newFilterValues[inputIndex] = event.target.value;
1837
+ return newFilterValues;
1838
+ }) : column.setFilterValue((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
1780
1839
  }, 150), []);
1781
1840
 
1782
1841
  var handleFilterMenuOpen = function handleFilterMenuOpen(event) {
@@ -1785,16 +1844,25 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1785
1844
 
1786
1845
  var handleClear = function handleClear() {
1787
1846
  setFilterValue('');
1788
- column.setColumnFilterValue(undefined);
1847
+
1848
+ if (inputIndex !== undefined) {
1849
+ column.setFilterValue(function (old) {
1850
+ var newFilterValues = old != null ? old : ['', ''];
1851
+ newFilterValues[inputIndex] = undefined;
1852
+ return newFilterValues;
1853
+ });
1854
+ } else {
1855
+ column.setFilterValue(undefined);
1856
+ }
1789
1857
  };
1790
1858
 
1791
1859
  var handleClearFilterChip = function handleClearFilterChip() {
1792
1860
  setFilterValue('');
1793
- column.setColumnFilterValue(undefined);
1861
+ column.setFilterValue(undefined);
1794
1862
  setCurrentFilterFns(function (prev) {
1795
1863
  var _extends2;
1796
1864
 
1797
- return _extends({}, prev, (_extends2 = {}, _extends2[header.id] = MRT_FILTER_OPTION.BEST_MATCH, _extends2));
1865
+ return _extends({}, prev, (_extends2 = {}, _extends2[header.id] = MRT_FILTER_OPTION.FUZZY, _extends2));
1798
1866
  });
1799
1867
  };
1800
1868
 
@@ -1805,12 +1873,12 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1805
1873
  }));
1806
1874
  }
1807
1875
 
1808
- var filterId = "mrt-" + idPrefix + "-" + header.id + "-filter-text-field";
1876
+ var filterId = "mrt-" + idPrefix + "-" + header.id + "-filter-text-field" + (inputIndex != null ? inputIndex : '');
1809
1877
  var filterFn = currentFilterFns == null ? void 0 : currentFilterFns[header.id];
1810
1878
  var isSelectFilter = !!column.filterSelectOptions;
1811
1879
  var filterChipLabel = !(filterFn instanceof Function) && [MRT_FILTER_OPTION.EMPTY, MRT_FILTER_OPTION.NOT_EMPTY].includes(filterFn) ? //@ts-ignore
1812
1880
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))] : '';
1813
- var filterPlaceholder = (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.header));
1881
+ var filterPlaceholder = inputIndex === undefined ? (_localization$filterB = localization.filterByColumn) == null ? void 0 : _localization$filterB.replace('{column}', String(column.columnDef.header)) : inputIndex === 0 ? localization.min : inputIndex === 1 ? localization.max : '';
1814
1882
  return React.createElement(React.Fragment, null, React.createElement(TextField, Object.assign({
1815
1883
  fullWidth: true,
1816
1884
  id: filterId,
@@ -1822,23 +1890,24 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1822
1890
  },
1823
1891
  title: filterPlaceholder
1824
1892
  },
1825
- helperText: React.createElement("label", {
1893
+ helperText: !inputIndex ? React.createElement("label", {
1826
1894
  htmlFor: filterId
1827
1895
  }, filterFn instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
1828
1896
  (_localization$ = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization$ : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
1829
- localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))])),
1897
+ localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))])) : null,
1830
1898
  FormHelperTextProps: {
1831
1899
  sx: {
1832
1900
  fontSize: '0.6rem',
1833
- lineHeight: '0.8rem'
1901
+ lineHeight: '0.8rem',
1902
+ whiteSpace: 'nowrap'
1834
1903
  }
1835
1904
  },
1836
1905
  label: isSelectFilter && !filterValue ? filterPlaceholder : undefined,
1837
1906
  margin: "none",
1838
- placeholder: filterPlaceholder,
1907
+ placeholder: filterChipLabel || isSelectFilter ? undefined : filterPlaceholder,
1839
1908
  onChange: function onChange(event) {
1840
1909
  setFilterValue(event.target.value);
1841
- handleChange(event);
1910
+ handleChangeDebounced(event);
1842
1911
  },
1843
1912
  onClick: function onClick(e) {
1844
1913
  return e.stopPropagation();
@@ -1847,7 +1916,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1847
1916
  value: filterValue != null ? filterValue : '',
1848
1917
  variant: "standard",
1849
1918
  InputProps: {
1850
- startAdornment: !isSelectFilter && React.createElement(InputAdornment, {
1919
+ startAdornment: !isSelectFilter && !inputIndex && React.createElement(InputAdornment, {
1851
1920
  position: "start"
1852
1921
  }, React.createElement(Tooltip, {
1853
1922
  arrow: true,
@@ -1886,7 +1955,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1886
1955
  sx: _extends({
1887
1956
  m: '-0.25rem',
1888
1957
  p: 0,
1889
- minWidth: !filterChipLabel ? '5rem' : 'auto',
1958
+ minWidth: !filterChipLabel ? '6rem' : 'auto',
1890
1959
  width: 'calc(100% + 0.5rem)',
1891
1960
  mt: isSelectFilter && !filterValue ? '-1rem' : undefined,
1892
1961
  '& .MuiSelect-icon': {
@@ -1981,8 +2050,34 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
1981
2050
  }));
1982
2051
  };
1983
2052
 
2053
+ var MRT_FilterRangeFields = function MRT_FilterRangeFields(_ref) {
2054
+ var header = _ref.header,
2055
+ tableInstance = _ref.tableInstance;
2056
+ var localization = tableInstance.options.localization;
2057
+ return React.createElement(Box, {
2058
+ sx: {
2059
+ display: 'grid',
2060
+ gridTemplateColumns: '6fr auto 5fr'
2061
+ }
2062
+ }, React.createElement(MRT_FilterTextField, {
2063
+ header: header,
2064
+ inputIndex: 0,
2065
+ tableInstance: tableInstance
2066
+ }), React.createElement(Box, {
2067
+ sx: {
2068
+ width: '100%',
2069
+ minWidth: '5ch',
2070
+ textAlign: 'center'
2071
+ }
2072
+ }, localization.to), React.createElement(MRT_FilterTextField, {
2073
+ header: header,
2074
+ inputIndex: 1,
2075
+ tableInstance: tableInstance
2076
+ }));
2077
+ };
2078
+
1984
2079
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1985
- var _getState2, _getState2$currentFil, _column$Header;
2080
+ var _getState2, _getState2$currentFil, _column$columnDef$Hea, _column$columnDef, _column$columnDef$hea, _column$columnDef$hea2;
1986
2081
 
1987
2082
  var header = _ref.header,
1988
2083
  tableInstance = _ref.tableInstance;
@@ -1999,6 +2094,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1999
2094
  setShowFilters = tableInstance.setShowFilters;
2000
2095
 
2001
2096
  var _getState = getState(),
2097
+ currentFilterFns = _getState.currentFilterFns,
2002
2098
  isDensePadding = _getState.isDensePadding,
2003
2099
  showFilters = _getState.showFilters;
2004
2100
 
@@ -2012,36 +2108,53 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2012
2108
  tableInstance: tableInstance
2013
2109
  }) : column.muiTableHeadCellProps;
2014
2110
 
2015
- var tableCellProps = _extends({}, header.getHeaderProps(), mTableHeadCellProps, mcTableHeadCellProps);
2111
+ var tableCellProps = _extends({}, mTableHeadCellProps, mcTableHeadCellProps);
2016
2112
 
2017
- var sortTooltip = !!column.getIsSorted() ? column.getIsSorted() === 'desc' ? localization.sortedByColumnDesc.replace('{column}', column.header) : localization.sortedByColumnAsc.replace('{column}', column.header) : localization.unsorted;
2113
+ var sortTooltip = !!column.getIsSorted() ? column.getIsSorted() === 'desc' ? localization.sortedByColumnDesc.replace('{column}', column.columnDef.header) : localization.sortedByColumnAsc.replace('{column}', column.columnDef.header) : localization.unsorted;
2018
2114
  var filterFn = (_getState2 = getState()) == null ? void 0 : (_getState2$currentFil = _getState2.currentFilterFns) == null ? void 0 : _getState2$currentFil[header.id];
2019
- var filterTooltip = !!column.getColumnFilterValue() ? localization.filteringByColumn.replace('{column}', String(column.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
2020
- localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))]).replace('{filterValue}', column.getColumnFilterValue()).replace('" "', '') : localization.showHideFilters;
2021
- var headerElement = (_column$Header = column == null ? void 0 : column.Header == null ? void 0 : column.Header({
2115
+ var filterTooltip = !!column.getFilterValue() ? localization.filteringByColumn.replace('{column}', String(column.columnDef.header)).replace('{filterType}', filterFn instanceof Function ? '' : // @ts-ignore
2116
+ 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;
2117
+ var headerElement = (_column$columnDef$Hea = (_column$columnDef = column.columnDef) == null ? void 0 : _column$columnDef.Header == null ? void 0 : _column$columnDef.Header({
2022
2118
  header: header,
2023
2119
  tableInstance: tableInstance
2024
- })) != null ? _column$Header : column.header;
2120
+ })) != null ? _column$columnDef$Hea : header.renderHeader();
2121
+
2122
+ var getIsLastLeftPinnedColumn = function getIsLastLeftPinnedColumn() {
2123
+ return column.getIsPinned() === 'left' && tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex();
2124
+ };
2125
+
2126
+ var getIsFirstRightPinnedColumn = function getIsFirstRightPinnedColumn() {
2127
+ return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
2128
+ };
2129
+
2130
+ var getTotalRight = function getTotalRight() {
2131
+ return (tableInstance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
2132
+ };
2133
+
2025
2134
  return React.createElement(TableCell, Object.assign({
2026
- align: column.columnDefType === 'group' ? 'center' : 'left'
2135
+ align: column.columnDefType === 'group' ? 'center' : 'left',
2136
+ colSpan: header.colSpan
2027
2137
  }, tableCellProps, {
2028
- //@ts-ignore
2029
2138
  sx: function sx(theme) {
2030
2139
  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) + ")",
2140
+ backgroundColor: column.getIsPinned() && column.columnDefType !== 'group' ? alpha(lighten(theme.palette.background["default"], 0.04), 0.95) : 'inherit',
2141
+ backgroundImage: 'inherit',
2142
+ 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
2143
  fontWeight: 'bold',
2034
2144
  height: '100%',
2035
- maxWidth: "min(" + column.getWidth() + "px, " + column.maxWidth + "px)",
2036
- minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2145
+ left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
2146
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
2147
+ minWidth: "max(" + column.getSize() + "px, " + column.minSize + "px)",
2148
+ overflow: 'visible',
2037
2149
  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
2150
  pb: column.columnDefType === 'display' ? 0 : undefined,
2040
- overflow: 'visible',
2151
+ position: column.getIsPinned() && column.columnDefType !== 'group' ? 'sticky' : undefined,
2152
+ pt: column.columnDefType === 'display' ? 0 : isDensePadding ? '0.75rem' : '1.25rem',
2153
+ right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2041
2154
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2042
2155
  verticalAlign: 'text-top',
2043
- width: header.getWidth(),
2044
- zIndex: column.getIsResizing() ? 2 : 1
2156
+ width: header.getSize(),
2157
+ zIndex: column.getIsResizing() ? 3 : column.getIsPinned() && column.columnDefType !== 'group' ? 2 : 1
2045
2158
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2046
2159
  }
2047
2160
  }), header.isPlaceholder ? null : column.columnDefType === 'display' ? headerElement : React.createElement(Box, {
@@ -2060,7 +2173,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2060
2173
  cursor: column.getCanSort() && column.columnDefType !== 'group' ? 'pointer' : undefined,
2061
2174
  display: 'flex',
2062
2175
  flexWrap: 'nowrap',
2063
- whiteSpace: column.header.length < 24 ? 'nowrap' : 'normal'
2176
+ whiteSpace: ((_column$columnDef$hea = (_column$columnDef$hea2 = column.columnDef.header) == null ? void 0 : _column$columnDef$hea2.length) != null ? _column$columnDef$hea : 0) < 24 ? 'nowrap' : 'normal'
2064
2177
  }
2065
2178
  }, headerElement, column.columnDefType === 'data' && column.getCanSort() && React.createElement(Tooltip, {
2066
2179
  arrow: true,
@@ -2070,7 +2183,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2070
2183
  "aria-label": sortTooltip,
2071
2184
  active: !!column.getIsSorted(),
2072
2185
  direction: column.getIsSorted() ? column.getIsSorted() : undefined
2073
- })), column.columnDefType === 'data' && enableColumnFilters && !!column.getCanColumnFilter() && React.createElement(Tooltip, {
2186
+ })), column.columnDefType === 'data' && enableColumnFilters && !!column.getCanFilter() && React.createElement(Tooltip, {
2074
2187
  arrow: true,
2075
2188
  placement: "top",
2076
2189
  title: filterTooltip
@@ -2083,7 +2196,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2083
2196
  size: "small",
2084
2197
  sx: {
2085
2198
  m: 0,
2086
- opacity: !!column.getColumnFilterValue() ? 0.8 : 0,
2199
+ opacity: !!column.getFilterValue() ? 0.8 : 0,
2087
2200
  p: '2px',
2088
2201
  transition: 'all 0.2s ease-in-out',
2089
2202
  '&:hover': {
@@ -2091,14 +2204,14 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2091
2204
  opacity: 0.8
2092
2205
  }
2093
2206
  }
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, {
2207
+ }, 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
2208
  header: header,
2096
2209
  tableInstance: tableInstance
2097
2210
  }), column.getCanResize() && React.createElement(Divider, Object.assign({
2098
2211
  flexItem: true,
2099
2212
  orientation: "vertical",
2100
2213
  onDoubleClick: function onDoubleClick() {
2101
- return header.resetSize();
2214
+ return column.resetSize();
2102
2215
  },
2103
2216
  sx: function sx(theme) {
2104
2217
  return {
@@ -2119,15 +2232,21 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2119
2232
  }
2120
2233
  };
2121
2234
  }
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, {
2235
+ }, {
2236
+ onMouseDown: header.getResizeHandler,
2237
+ onTouchStart: header.getResizeHandler
2238
+ }, {
2239
+ style: {
2240
+ transform: column.getIsResizing() ? "translateX(" + getState().columnSizingInfo.deltaOffset + "px)" : 'none'
2241
+ }
2242
+ }))), column.columnDefType === 'data' && column.getCanFilter() && React.createElement(Collapse, {
2243
+ "in": showFilters,
2244
+ mountOnEnter: true,
2245
+ unmountOnExit: true
2246
+ }, currentFilterFns[column.id] === MRT_FILTER_OPTION.BETWEEN ? React.createElement(MRT_FilterRangeFields, {
2247
+ header: header,
2248
+ tableInstance: tableInstance
2249
+ }) : React.createElement(MRT_FilterTextField, {
2131
2250
  header: header,
2132
2251
  tableInstance: tableInstance
2133
2252
  })));
@@ -2137,17 +2256,15 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2137
2256
  var headerGroup = _ref.headerGroup,
2138
2257
  tableInstance = _ref.tableInstance;
2139
2258
  var muiTableHeadRowProps = tableInstance.options.muiTableHeadRowProps;
2140
- var mTableHeadRowProps = muiTableHeadRowProps instanceof Function ? muiTableHeadRowProps({
2259
+ var tableRowProps = muiTableHeadRowProps instanceof Function ? muiTableHeadRowProps({
2141
2260
  headerGroup: headerGroup,
2142
2261
  tableInstance: tableInstance
2143
2262
  }) : muiTableHeadRowProps;
2144
-
2145
- var tableRowProps = _extends({}, headerGroup == null ? void 0 : headerGroup.getHeaderGroupProps(), mTableHeadRowProps);
2146
-
2147
2263
  return React.createElement(TableRow, Object.assign({}, tableRowProps, {
2148
2264
  sx: function sx(theme) {
2149
2265
  return _extends({
2150
- boxShadow: "4px 0 8px " + alpha(theme.palette.common.black, 0.1)
2266
+ boxShadow: "4px 0 8px " + alpha(theme.palette.common.black, 0.1),
2267
+ backgroundColor: lighten(theme.palette.background["default"], 0.04)
2151
2268
  }, tableRowProps == null ? void 0 : tableRowProps.sx);
2152
2269
  }
2153
2270
  }), headerGroup.headers.map(function (header, index) {
@@ -2160,26 +2277,16 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2160
2277
  };
2161
2278
 
2162
2279
  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,
2280
+ var tableInstance = _ref.tableInstance;
2281
+ var getHeaderGroups = tableInstance.getHeaderGroups,
2169
2282
  muiTableHeadProps = tableInstance.options.muiTableHeadProps;
2170
2283
  var tableHeadProps = muiTableHeadProps instanceof Function ? muiTableHeadProps({
2171
2284
  tableInstance: tableInstance
2172
2285
  }) : 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) {
2286
+ return React.createElement(TableHead, Object.assign({}, tableHeadProps), getHeaderGroups().map(function (headerGroup) {
2180
2287
  return React.createElement(MRT_TableHeadRow, {
2181
2288
  headerGroup: headerGroup,
2182
- key: headerGroup.getHeaderGroupProps().key,
2289
+ key: headerGroup.id,
2183
2290
  tableInstance: tableInstance
2184
2291
  });
2185
2292
  }));
@@ -2198,7 +2305,7 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2198
2305
  setCurrentEditingCell = tableInstance.setCurrentEditingCell,
2199
2306
  setCurrentEditingRow = tableInstance.setCurrentEditingRow;
2200
2307
 
2201
- var _useState = useState(cell.value),
2308
+ var _useState = useState(cell.getValue()),
2202
2309
  value = _useState[0],
2203
2310
  setValue = _useState[1];
2204
2311
 
@@ -2221,7 +2328,7 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2221
2328
 
2222
2329
  var handleBlur = function handleBlur(event) {
2223
2330
  if (getState().currentEditingRow) {
2224
- row.values[column.id] = value;
2331
+ row._valuesCache[column.id] = value;
2225
2332
  setCurrentEditingRow(_extends({}, getState().currentEditingRow));
2226
2333
  }
2227
2334
 
@@ -2264,7 +2371,7 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2264
2371
  onClick: function onClick(e) {
2265
2372
  return e.stopPropagation();
2266
2373
  },
2267
- placeholder: column.header,
2374
+ placeholder: column.columnDef.header,
2268
2375
  value: value,
2269
2376
  variant: "standard"
2270
2377
  }, textFieldProps));
@@ -2310,7 +2417,7 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2310
2417
  }, React.createElement(Button, Object.assign({
2311
2418
  "aria-label": localization.clickToCopy,
2312
2419
  onClick: function onClick() {
2313
- return handleCopy(cell.value);
2420
+ return handleCopy(cell.getValue());
2314
2421
  },
2315
2422
  size: "small"
2316
2423
  }, buttonProps, {
@@ -2332,19 +2439,17 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2332
2439
  };
2333
2440
 
2334
2441
  var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2335
- var _cell$column$Cell, _cell$column, _row$subRows, _cell$column$Cell2, _cell$column2, _row$subRows2;
2442
+ var _cell$column$columnDe, _cell$column$columnDe2, _row$subRows, _cell$column$columnDe3, _cell$column$columnDe4, _row$subRows$length, _row$subRows2;
2336
2443
 
2337
2444
  var cell = _ref.cell,
2445
+ enableHover = _ref.enableHover,
2338
2446
  tableInstance = _ref.tableInstance;
2339
- var getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
2340
- getState = tableInstance.getState,
2447
+ var getState = tableInstance.getState,
2341
2448
  _tableInstance$option = tableInstance.options,
2342
2449
  editingMode = _tableInstance$option.editingMode,
2343
2450
  enableClickToCopy = _tableInstance$option.enableClickToCopy,
2344
2451
  enableEditing = _tableInstance$option.enableEditing,
2345
- enablePinning = _tableInstance$option.enablePinning,
2346
2452
  idPrefix = _tableInstance$option.idPrefix,
2347
- isLoading = _tableInstance$option.isLoading,
2348
2453
  muiTableBodyCellProps = _tableInstance$option.muiTableBodyCellProps,
2349
2454
  muiTableBodyCellSkeletonProps = _tableInstance$option.muiTableBodyCellSkeletonProps,
2350
2455
  onCellClick = _tableInstance$option.onCellClick,
@@ -2353,7 +2458,9 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2353
2458
  var _getState = getState(),
2354
2459
  currentEditingCell = _getState.currentEditingCell,
2355
2460
  currentEditingRow = _getState.currentEditingRow,
2356
- isDensePadding = _getState.isDensePadding;
2461
+ isDensePadding = _getState.isDensePadding,
2462
+ isLoading = _getState.isLoading,
2463
+ showSkeletons = _getState.showSkeletons;
2357
2464
 
2358
2465
  var column = cell.column,
2359
2466
  row = cell.row;
@@ -2366,11 +2473,11 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2366
2473
  tableInstance: tableInstance
2367
2474
  }) : column.muiTableBodyCellProps;
2368
2475
 
2369
- var tableCellProps = _extends({}, cell.getCellProps(), mTableCellBodyProps, mcTableCellBodyProps);
2476
+ var tableCellProps = _extends({}, mTableCellBodyProps, mcTableCellBodyProps);
2370
2477
 
2371
2478
  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()]);
2479
+ return column.columnDefType === 'display' ? column.getSize() / 2 : Math.random() * (column.getSize() - column.getSize() / 3) + column.getSize() / 3;
2480
+ }, [column.columnDefType, column.getSize()]);
2374
2481
  var isEditable = (enableEditing || column.enableEditing) && column.enableEditing !== false;
2375
2482
  var isEditing = isEditable && (editingMode === 'table' || (currentEditingRow == null ? void 0 : currentEditingRow.id) === row.id || (currentEditingCell == null ? void 0 : currentEditingCell.id) === cell.id);
2376
2483
 
@@ -2388,6 +2495,18 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2388
2495
  }
2389
2496
  };
2390
2497
 
2498
+ var getIsLastLeftPinnedColumn = function getIsLastLeftPinnedColumn() {
2499
+ return column.getIsPinned() === 'left' && tableInstance.getLeftLeafHeaders().length - 1 === column.getPinnedIndex();
2500
+ };
2501
+
2502
+ var getIsFirstRightPinnedColumn = function getIsFirstRightPinnedColumn() {
2503
+ return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;
2504
+ };
2505
+
2506
+ var getTotalRight = function getTotalRight() {
2507
+ return (tableInstance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150;
2508
+ };
2509
+
2391
2510
  return React.createElement(TableCell, Object.assign({
2392
2511
  onClick: function onClick(event) {
2393
2512
  return onCellClick == null ? void 0 : onCellClick({
@@ -2398,21 +2517,32 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2398
2517
  },
2399
2518
  onDoubleClick: handleDoubleClick
2400
2519
  }, 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({
2520
+ sx: function sx(theme) {
2521
+ return _extends({
2522
+ backgroundColor: column.getIsPinned() ? alpha(lighten(theme.palette.background["default"], 0.04), 0.95) : undefined,
2523
+ 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,
2524
+ cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
2525
+ left: column.getIsPinned() === 'left' ? column.getStart('left') + "px" : undefined,
2526
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
2527
+ minWidth: "max" + column.getSize() + "px, " + column.minSize + "px",
2528
+ p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2529
+ pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
2530
+ position: column.getIsPinned() ? 'sticky' : 'relative',
2531
+ right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2532
+ transition: 'all 0.2s ease-in-out',
2533
+ whiteSpace: isDensePadding ? 'nowrap' : 'normal',
2534
+ width: column.getSize(),
2535
+ zIndex: column.getIsPinned() ? 1 : undefined,
2536
+ '&:hover': {
2537
+ backgroundColor: enableHover ? theme.palette.mode === 'dark' ? lighten(theme.palette.background["default"], 0.13) + " !important" : darken(theme.palette.background["default"], 0.07) + " !important" : undefined
2538
+ }
2539
+ }, tableCellProps == null ? void 0 : tableCellProps.sx);
2540
+ }
2541
+ }), React.createElement(React.Fragment, null, isLoading || showSkeletons ? React.createElement(Skeleton, Object.assign({
2412
2542
  animation: "wave",
2413
2543
  height: 20,
2414
2544
  width: skeletonWidth
2415
- }, muiTableBodyCellSkeletonProps)) : column.columnDefType === 'display' ? column.Cell == null ? void 0 : column.Cell({
2545
+ }, muiTableBodyCellSkeletonProps)) : column.columnDefType === 'display' ? column.columnDef.Cell == null ? void 0 : column.columnDef.Cell({
2416
2546
  cell: cell,
2417
2547
  tableInstance: tableInstance
2418
2548
  }) : cell.getIsPlaceholder() || row.getIsGrouped() && column.id !== row.groupingColumnId ? null : cell.getIsAggregated() ? cell.renderAggregatedCell() : isEditing ? React.createElement(MRT_EditCellTextField, {
@@ -2421,13 +2551,13 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2421
2551
  }) : (enableClickToCopy || column.enableClickToCopy) && column.enableClickToCopy !== false ? React.createElement(React.Fragment, null, React.createElement(MRT_CopyButton, {
2422
2552
  cell: cell,
2423
2553
  tableInstance: tableInstance
2424
- }, (_cell$column$Cell = (_cell$column = cell.column) == null ? void 0 : _cell$column.Cell == null ? void 0 : _cell$column.Cell({
2554
+ }, React.createElement(React.Fragment, null, (_cell$column$columnDe = (_cell$column$columnDe2 = cell.column.columnDef) == null ? void 0 : _cell$column$columnDe2.Cell == null ? void 0 : _cell$column$columnDe2.Cell({
2425
2555
  cell: cell,
2426
2556
  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({
2557
+ })) != null ? _cell$column$columnDe : 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$columnDe3 = (_cell$column$columnDe4 = cell.column.columnDef) == null ? void 0 : _cell$column$columnDe4.Cell == null ? void 0 : _cell$column$columnDe4.Cell({
2428
2558
  cell: cell,
2429
2559
  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, ")")));
2560
+ })) != null ? _cell$column$columnDe3 : cell.renderCell(), row.getIsGrouped() && React.createElement(React.Fragment, null, " (", (_row$subRows$length = (_row$subRows2 = row.subRows) == null ? void 0 : _row$subRows2.length) != null ? _row$subRows$length : '', ")"))));
2431
2561
  };
2432
2562
 
2433
2563
  var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
@@ -2472,33 +2602,16 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
2472
2602
  };
2473
2603
 
2474
2604
  var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2475
- var pinned = _ref.pinned,
2476
- row = _ref.row,
2605
+ var row = _ref.row,
2477
2606
  tableInstance = _ref.tableInstance;
2478
2607
  var _tableInstance$option = tableInstance.options,
2479
2608
  muiTableBodyRowProps = _tableInstance$option.muiTableBodyRowProps,
2480
2609
  onRowClick = _tableInstance$option.onRowClick,
2481
2610
  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({
2611
+ var tableRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps({
2490
2612
  row: row,
2491
2613
  tableInstance: tableInstance
2492
2614
  }) : 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
2615
  return React.createElement(React.Fragment, null, React.createElement(TableRow, Object.assign({
2503
2616
  hover: true,
2504
2617
  onClick: function onClick(event) {
@@ -2508,39 +2621,44 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2508
2621
  tableInstance: tableInstance
2509
2622
  });
2510
2623
  },
2511
- selected: getIsSelected()
2512
- }, tableRowProps), getVisibleCellsMap[pinned]().map(function (cell) {
2624
+ selected: row.getIsSelected()
2625
+ }, tableRowProps, {
2626
+ sx: function sx(theme) {
2627
+ return _extends({
2628
+ backgroundColor: lighten(theme.palette.background["default"], 0.06),
2629
+ transition: 'all 0.2s ease-in-out',
2630
+ '&:hover td': {
2631
+ 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
2632
+ }
2633
+ }, tableRowProps == null ? void 0 : tableRowProps.sx);
2634
+ }
2635
+ }), row.getVisibleCells().map(function (cell) {
2513
2636
  return React.createElement(MRT_TableBodyCell, {
2514
2637
  cell: cell,
2515
- key: cell.getCellProps().key,
2638
+ key: cell.id,
2639
+ enableHover: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false,
2516
2640
  tableInstance: tableInstance
2517
2641
  });
2518
- })), renderDetailPanel && !getIsGrouped() && React.createElement(MRT_TableDetailPanel, {
2642
+ })), renderDetailPanel && !row.getIsGrouped() && React.createElement(MRT_TableDetailPanel, {
2519
2643
  row: row,
2520
2644
  tableInstance: tableInstance
2521
2645
  }));
2522
2646
  };
2523
2647
 
2524
2648
  var MRT_TableBody = function MRT_TableBody(_ref) {
2525
- var pinned = _ref.pinned,
2526
- tableInstance = _ref.tableInstance;
2649
+ var tableInstance = _ref.tableInstance;
2527
2650
  var getPaginationRowModel = tableInstance.getPaginationRowModel,
2528
2651
  getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
2529
- getTableBodyProps = tableInstance.getTableBodyProps,
2530
2652
  _tableInstance$option = tableInstance.options,
2531
2653
  enablePagination = _tableInstance$option.enablePagination,
2532
2654
  muiTableBodyProps = _tableInstance$option.muiTableBodyProps;
2533
2655
  var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
2534
- var mTableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
2656
+ var tableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
2535
2657
  tableInstance: tableInstance
2536
2658
  }) : muiTableBodyProps;
2537
-
2538
- var tableBodyProps = _extends({}, getTableBodyProps(), mTableBodyProps);
2539
-
2540
2659
  return React.createElement(TableBody, Object.assign({}, tableBodyProps), rows.map(function (row) {
2541
2660
  return React.createElement(MRT_TableBodyRow, {
2542
- key: row.getRowProps().key,
2543
- pinned: pinned,
2661
+ key: row.id,
2544
2662
  row: row,
2545
2663
  tableInstance: tableInstance
2546
2664
  });
@@ -2548,7 +2666,7 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
2548
2666
  };
2549
2667
 
2550
2668
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2551
- var _ref2, _column$Footer;
2669
+ var _ref2, _column$columnDef$Foo;
2552
2670
 
2553
2671
  var footer = _ref.footer,
2554
2672
  tableInstance = _ref.tableInstance;
@@ -2570,30 +2688,30 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2570
2688
  tableInstance: tableInstance
2571
2689
  }) : column.muiTableFooterCellProps;
2572
2690
 
2573
- var tableCellProps = _extends({}, footer.getFooterProps(), mTableFooterCellProps, mcTableFooterCellProps);
2691
+ var tableCellProps = _extends({}, mTableFooterCellProps, mcTableFooterCellProps);
2574
2692
 
2575
2693
  return React.createElement(TableCell, Object.assign({
2576
2694
  align: column.columnDefType === 'group' ? 'center' : 'left',
2695
+ colSpan: footer.colSpan,
2577
2696
  variant: "head"
2578
2697
  }, tableCellProps, {
2579
- //@ts-ignore
2580
2698
  sx: function sx(theme) {
2581
2699
  return _extends({
2582
2700
  backgroundColor: theme.palette.background["default"],
2583
2701
  backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
2584
2702
  fontWeight: 'bold',
2585
- maxWidth: "min(" + column.getWidth() + "px, " + column.maxWidth + "px)",
2586
- minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2703
+ maxWidth: column.getSize() + "px",
2704
+ minWidth: column.getSize() + "px",
2587
2705
  p: isDensePadding ? '0.5rem' : '1rem',
2588
2706
  transition: "all " + (enableColumnResizing ? '10ms' : '0.2s') + " ease-in-out",
2589
- width: column.getWidth(),
2707
+ width: column.getSize(),
2590
2708
  verticalAlign: 'text-top'
2591
2709
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2592
2710
  }
2593
- }), footer.isPlaceholder ? null : (_ref2 = (_column$Footer = column.Footer == null ? void 0 : column.Footer({
2711
+ }), React.createElement(React.Fragment, null, footer.isPlaceholder ? null : (_ref2 = (_column$columnDef$Foo = column.columnDef.Footer == null ? void 0 : column.columnDef.Footer({
2594
2712
  footer: footer,
2595
2713
  tableInstance: tableInstance
2596
- })) != null ? _column$Footer : column.footer) != null ? _ref2 : null);
2714
+ })) != null ? _column$columnDef$Foo : footer.renderFooter()) != null ? _ref2 : null));
2597
2715
  };
2598
2716
 
2599
2717
  var MRT_TableFooterRow = function MRT_TableFooterRow(_ref) {
@@ -2604,107 +2722,69 @@ var MRT_TableFooterRow = function MRT_TableFooterRow(_ref) {
2604
2722
  var muiTableFooterRowProps = tableInstance.options.muiTableFooterRowProps; // if no content in row, skip row
2605
2723
 
2606
2724
  if (!((_footerGroup$headers = footerGroup.headers) != null && _footerGroup$headers.some(function (h) {
2607
- return h.column.columnDef.footer || h.column.Footer;
2725
+ return typeof h.column.columnDef.footer === 'string' && !!h.column.columnDef.footer || h.column.columnDef.Footer;
2608
2726
  }))) return null;
2609
- var mTableFooterRowProps = muiTableFooterRowProps instanceof Function ? muiTableFooterRowProps({
2727
+ var tableRowProps = muiTableFooterRowProps instanceof Function ? muiTableFooterRowProps({
2610
2728
  footerGroup: footerGroup,
2611
2729
  tableInstance: tableInstance
2612
2730
  }) : muiTableFooterRowProps;
2613
-
2614
- var tableRowProps = _extends({}, footerGroup.getFooterGroupProps(), mTableFooterRowProps);
2615
-
2616
2731
  return React.createElement(TableRow, Object.assign({}, tableRowProps), footerGroup.headers.map(function (footer) {
2617
2732
  return React.createElement(MRT_TableFooterCell, {
2618
2733
  footer: footer,
2619
- key: footer.getFooterProps().key,
2734
+ key: footer.id,
2620
2735
  tableInstance: tableInstance
2621
2736
  });
2622
2737
  }));
2623
2738
  };
2624
2739
 
2625
2740
  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,
2741
+ var tableInstance = _ref.tableInstance;
2742
+ var getFooterGroups = tableInstance.getFooterGroups,
2632
2743
  muiTableFooterProps = tableInstance.options.muiTableFooterProps;
2633
2744
  var tableFooterProps = muiTableFooterProps instanceof Function ? muiTableFooterProps({
2634
2745
  tableInstance: tableInstance
2635
2746
  }) : 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) {
2747
+ return React.createElement(TableFooter, Object.assign({}, tableFooterProps), getFooterGroups().map(function (footerGroup) {
2643
2748
  return React.createElement(MRT_TableFooterRow, {
2644
2749
  footerGroup: footerGroup,
2645
- key: footerGroup.getFooterGroupProps().key,
2750
+ key: footerGroup.id,
2646
2751
  tableInstance: tableInstance
2647
2752
  });
2648
2753
  }));
2649
2754
  };
2650
2755
 
2651
2756
  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,
2757
+ var tableInstance = _ref.tableInstance;
2758
+ var _tableInstance$option = tableInstance.options,
2759
+ enableStickyHeader = _tableInstance$option.enableStickyHeader,
2658
2760
  enableTableFooter = _tableInstance$option.enableTableFooter,
2659
- enableStickyHeader = _tableInstance$option.enableStickyHeader;
2660
- var mTableProps = muiTableProps instanceof Function ? muiTableProps({
2761
+ enableTableHead = _tableInstance$option.enableTableHead,
2762
+ muiTableProps = _tableInstance$option.muiTableProps;
2763
+ var tableProps = muiTableProps instanceof Function ? muiTableProps({
2661
2764
  tableInstance: tableInstance
2662
2765
  }) : muiTableProps;
2663
-
2664
- var tableProps = _extends({}, getTableProps(), mTableProps);
2665
-
2666
2766
  return React.createElement(Table, Object.assign({
2667
2767
  stickyHeader: enableStickyHeader
2668
2768
  }, tableProps), enableTableHead && React.createElement(MRT_TableHead, {
2669
- pinned: pinned,
2670
2769
  tableInstance: tableInstance
2671
2770
  }), React.createElement(MRT_TableBody, {
2672
- pinned: pinned,
2673
2771
  tableInstance: tableInstance
2674
2772
  }), enableTableFooter && React.createElement(MRT_TableFooter, {
2675
- pinned: pinned,
2676
2773
  tableInstance: tableInstance
2677
2774
  }));
2678
2775
  };
2679
2776
 
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,
2777
+ var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;
2778
+ var MRT_TableContainer = function MRT_TableContainer(_ref) {
2779
+ var tableInstance = _ref.tableInstance;
2780
+ var getState = tableInstance.getState,
2699
2781
  _tableInstance$option = tableInstance.options,
2700
- enablePinning = _tableInstance$option.enablePinning,
2701
2782
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
2702
2783
  idPrefix = _tableInstance$option.idPrefix,
2703
2784
  muiTableContainerProps = _tableInstance$option.muiTableContainerProps;
2704
2785
 
2705
2786
  var _getState = getState(),
2706
- isFullScreen = _getState.isFullScreen,
2707
- columnPinning = _getState.columnPinning;
2787
+ isFullScreen = _getState.isFullScreen;
2708
2788
 
2709
2789
  var _useState = useState(0),
2710
2790
  totalToolbarHeight = _useState[0],
@@ -2713,7 +2793,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref2) {
2713
2793
  var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps({
2714
2794
  tableInstance: tableInstance
2715
2795
  }) : muiTableContainerProps;
2716
- useEffect(function () {
2796
+ useIsomorphicLayoutEffect(function () {
2717
2797
  var _document$getElementB, _document, _document$getElementB2, _document$getElementB3, _document2, _document2$getElement;
2718
2798
 
2719
2799
  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 +2809,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref2) {
2729
2809
  style: {
2730
2810
  maxHeight: isFullScreen ? "calc(100vh - " + totalToolbarHeight + "px)" : undefined
2731
2811
  }
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",
2812
+ }), React.createElement(MRT_Table, {
2774
2813
  tableInstance: tableInstance
2775
2814
  }));
2776
2815
  };
@@ -2872,7 +2911,7 @@ var createDisplayColumn = function createDisplayColumn(table, column) {
2872
2911
  };
2873
2912
 
2874
2913
  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$globalFilterFn;
2914
+ 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
2915
 
2877
2916
  var _useState = useState(props.idPrefix),
2878
2917
  idPrefix = _useState[0],
@@ -2936,7 +2975,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
2936
2975
  var _useState8 = useState({
2937
2976
  pageIndex: (_initialState$paginat = initialState == null ? void 0 : (_initialState$paginat2 = initialState.pagination) == null ? void 0 : _initialState$paginat2.pageIndex) != null ? _initialState$paginat : 0,
2938
2977
  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
2978
+ pageCount: initialState == null ? void 0 : (_initialState$paginat5 = initialState.pagination) == null ? void 0 : _initialState$paginat5.pageCount
2940
2979
  }),
2941
2980
  pagination = _useState8[0],
2942
2981
  setPagination = _useState8[1];
@@ -2945,13 +2984,13 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
2945
2984
  return Object.assign.apply(Object, [{}].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
2946
2985
  var _ref, _c$filterFn, _initialState$current3, _c$filterSelectOption, _ref2;
2947
2986
 
2948
- 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.BEST_MATCH, _ref2;
2987
+ 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
2988
  })));
2950
2989
  }),
2951
2990
  currentFilterFns = _useState9[0],
2952
2991
  setCurrentFilterFns = _useState9[1];
2953
2992
 
2954
- var _useState10 = useState((_props$globalFilterFn = props.globalFilterFn) != null ? _props$globalFilterFn : MRT_FILTER_OPTION.BEST_MATCH_FIRST),
2993
+ var _useState10 = useState((_props$globalFilterFn = props.globalFilterFn) != null ? _props$globalFilterFn : MRT_FILTER_OPTION.FUZZY),
2955
2994
  currentGlobalFilterFn = _useState10[0],
2956
2995
  setCurrentGlobalFilterFn = _useState10[1];
2957
2996
 
@@ -2971,9 +3010,8 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
2971
3010
  },
2972
3011
  header: (_props$localization = props.localization) == null ? void 0 : _props$localization.actions,
2973
3012
  id: 'mrt-row-actions',
2974
- maxWidth: 60,
2975
- width: 60
2976
- }), (props.enableExpanded || props.enableGrouping) && createDisplayColumn(table, {
3013
+ size: 60
3014
+ }), (props.enableExpanding || props.enableGrouping) && createDisplayColumn(table, {
2977
3015
  Cell: function Cell(_ref4) {
2978
3016
  var cell = _ref4.cell;
2979
3017
  return React.createElement(MRT_ExpandButton, {
@@ -2988,8 +3026,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
2988
3026
  },
2989
3027
  header: (_props$localization2 = props.localization) == null ? void 0 : _props$localization2.expand,
2990
3028
  id: 'mrt-expand',
2991
- maxWidth: 40,
2992
- width: 40
3029
+ size: 50
2993
3030
  }), props.enableRowSelection && createDisplayColumn(table, {
2994
3031
  Cell: function Cell(_ref5) {
2995
3032
  var cell = _ref5.cell;
@@ -3006,8 +3043,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3006
3043
  },
3007
3044
  header: (_props$localization3 = props.localization) == null ? void 0 : _props$localization3.select,
3008
3045
  id: 'mrt-select',
3009
- maxWidth: 40,
3010
- width: 40
3046
+ size: 50
3011
3047
  }), props.enableRowNumbers && createDisplayColumn(table, {
3012
3048
  Cell: function Cell(_ref6) {
3013
3049
  var cell = _ref6.cell;
@@ -3020,39 +3056,39 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3020
3056
  },
3021
3057
  header: (_props$localization5 = props.localization) == null ? void 0 : _props$localization5.rowNumbers,
3022
3058
  id: 'mrt-row-numbers',
3023
- maxWidth: 40,
3024
- width: 40,
3025
- minWidth: 40
3059
+ size: 50
3026
3060
  })].filter(Boolean);
3027
- }, [props.editingMode, props.enableEditing, props.enableExpandAll, props.enableExpanded, props.enableGrouping, props.enableRowActions, props.enableRowNumbers, props.enableRowSelection, props.enableSelectAll, props.localization, table]);
3061
+ }, [props.editingMode, props.enableEditing, props.enableExpandAll, props.enableExpanding, props.enableGrouping, props.enableRowActions, props.enableRowNumbers, props.enableRowSelection, props.enableSelectAll, props.localization, table]);
3028
3062
  var columns = useMemo(function () {
3029
- return table.createColumns([].concat(displayColumns, props.columns.map(function (column) {
3063
+ return [].concat(displayColumns, props.columns.map(function (column) {
3030
3064
  return column.columns ? createGroup(table, column, currentFilterFns) : createDataColumn(table, column, currentFilterFns);
3031
- })));
3065
+ }));
3032
3066
  }, [table, props.columns, currentFilterFns]);
3033
3067
  var data = useMemo(function () {
3034
- return props.isLoading && !props.data.length ? [].concat(Array(10).fill(null)).map(function () {
3068
+ var _props$state, _props$state2;
3069
+
3070
+ 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
3071
  return Object.assign.apply(Object, [{}].concat(getAllLeafColumnDefs(props.columns).map(function (c) {
3036
3072
  var _ref7;
3037
3073
 
3038
3074
  return _ref7 = {}, _ref7[c.id] = null, _ref7;
3039
3075
  })));
3040
3076
  }) : props.data;
3041
- }, [props.data, props.isLoading]); //@ts-ignore
3077
+ }, [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
3078
 
3043
3079
  var tableInstance = _extends({}, useTableInstance(table, _extends({
3044
- //@ts-ignore
3045
3080
  filterFns: defaultFilterFNs,
3046
- getColumnFilteredRowModel: getColumnFilteredRowModelSync(),
3047
- getCoreRowModel: getCoreRowModelSync(),
3081
+ getCoreRowModel: getCoreRowModel(),
3048
3082
  getExpandedRowModel: getExpandedRowModel(),
3049
- getGlobalFilteredRowModel: getGlobalFilteredRowModelSync(),
3050
- getGroupedRowModel: getGroupedRowModelSync(),
3083
+ getFacetedRowModel: getFacetedRowModel(),
3084
+ getFilteredRowModel: getFilteredRowModel(),
3085
+ getGroupedRowModel: getGroupedRowModel(),
3051
3086
  getPaginationRowModel: getPaginationRowModel(),
3052
- getSortedRowModel: getSortedRowModelSync(),
3053
- getSubRows: function getSubRows(originalRow) {
3054
- return originalRow.subRows;
3087
+ getSortedRowModel: getSortedRowModel(),
3088
+ getSubRows: function getSubRows(row) {
3089
+ return row == null ? void 0 : row.subRows;
3055
3090
  },
3091
+ //@ts-ignore
3056
3092
  globalFilterFn: currentGlobalFilterFn,
3057
3093
  onPaginationChange: function onPaginationChange(updater) {
3058
3094
  return setPagination(function (old) {
@@ -3060,10 +3096,10 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3060
3096
  });
3061
3097
  }
3062
3098
  }, props, {
3099
+ //@ts-ignore
3063
3100
  columns: columns,
3064
3101
  data: data,
3065
3102
  idPrefix: idPrefix,
3066
- //@ts-ignore
3067
3103
  initialState: initialState,
3068
3104
  state: _extends({
3069
3105
  currentEditingCell: currentEditingCell,
@@ -3078,12 +3114,9 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3078
3114
  showGlobalFilter: showGlobalFilter
3079
3115
  }, props.state)
3080
3116
  })), {
3081
- //@ts-ignore
3082
3117
  setCurrentEditingCell: setCurrentEditingCell,
3083
- //@ts-ignore
3084
3118
  setCurrentEditingRow: setCurrentEditingRow,
3085
3119
  setCurrentFilterFns: setCurrentFilterFns,
3086
- //@ts-ignore
3087
3120
  setCurrentGlobalFilterFn: setCurrentGlobalFilterFn,
3088
3121
  setIsDensePadding: setIsDensePadding,
3089
3122
  setIsFullScreen: setIsFullScreen,
@@ -3131,12 +3164,10 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3131
3164
  }));
3132
3165
  };
3133
3166
 
3134
- var _excluded$5 = ["autoResetExpanded", "autoResetSorting", "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"];
3167
+ 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"];
3135
3168
  var MaterialReactTable = (function (_ref) {
3136
3169
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3137
3170
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
3138
- _ref$autoResetSorting = _ref.autoResetSorting,
3139
- autoResetSorting = _ref$autoResetSorting === void 0 ? false : _ref$autoResetSorting,
3140
3171
  _ref$columnResizeMode = _ref.columnResizeMode,
3141
3172
  columnResizeMode = _ref$columnResizeMode === void 0 ? 'onEnd' : _ref$columnResizeMode,
3142
3173
  _ref$editingMode = _ref.editingMode,
@@ -3163,6 +3194,8 @@ var MaterialReactTable = (function (_ref) {
3163
3194
  enableMultiRowSelection = _ref$enableMultiRowSe === void 0 ? true : _ref$enableMultiRowSe,
3164
3195
  _ref$enablePagination = _ref.enablePagination,
3165
3196
  enablePagination = _ref$enablePagination === void 0 ? true : _ref$enablePagination,
3197
+ _ref$enablePinning = _ref.enablePinning,
3198
+ enablePinning = _ref$enablePinning === void 0 ? false : _ref$enablePinning,
3166
3199
  _ref$enableSelectAll = _ref.enableSelectAll,
3167
3200
  enableSelectAll = _ref$enableSelectAll === void 0 ? true : _ref$enableSelectAll,
3168
3201
  _ref$enableSorting = _ref.enableSorting,
@@ -3195,12 +3228,11 @@ var MaterialReactTable = (function (_ref) {
3195
3228
 
3196
3229
  return React.createElement(MRT_TableRoot, Object.assign({
3197
3230
  autoResetExpanded: autoResetExpanded,
3198
- autoResetSorting: autoResetSorting,
3199
3231
  columnResizeMode: columnResizeMode,
3200
3232
  editingMode: editingMode,
3201
3233
  enableColumnActions: enableColumnActions,
3202
- enableColumnResizing: enableColumnResizing,
3203
3234
  enableColumnFilters: enableColumnFilters,
3235
+ enableColumnResizing: enableColumnResizing,
3204
3236
  enableDensePaddingToggle: enableDensePaddingToggle,
3205
3237
  enableExpandAll: enableExpandAll,
3206
3238
  enableFilters: enableFilters,
@@ -3209,6 +3241,7 @@ var MaterialReactTable = (function (_ref) {
3209
3241
  enableHiding: enableHiding,
3210
3242
  enableMultiRowSelection: enableMultiRowSelection,
3211
3243
  enablePagination: enablePagination,
3244
+ enablePinning: enablePinning,
3212
3245
  enableSelectAll: enableSelectAll,
3213
3246
  enableSorting: enableSorting,
3214
3247
  enableStickyHeader: enableStickyHeader,