material-react-table 0.8.15 → 0.9.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 (41) hide show
  1. package/README.md +1 -1
  2. package/dist/MaterialReactTable.d.ts +38 -36
  3. package/dist/body/MRT_TableBody.d.ts +2 -1
  4. package/dist/material-react-table.cjs.development.js +630 -86
  5. package/dist/material-react-table.cjs.development.js.map +1 -1
  6. package/dist/material-react-table.cjs.production.min.js +1 -1
  7. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  8. package/dist/material-react-table.esm.js +137 -84
  9. package/dist/material-react-table.esm.js.map +1 -1
  10. package/dist/table/MRT_Table.d.ts +2 -1
  11. package/dist/table/MRT_TableRoot.d.ts +1 -0
  12. package/dist/toolbar/MRT_LinearProgressBar.d.ts +1 -0
  13. package/dist/utils.d.ts +1 -1
  14. package/package.json +11 -10
  15. package/src/MaterialReactTable.tsx +51 -47
  16. package/src/body/MRT_TableBody.tsx +53 -14
  17. package/src/body/MRT_TableBodyCell.tsx +13 -9
  18. package/src/body/MRT_TableBodyRow.tsx +4 -3
  19. package/src/body/MRT_TableDetailPanel.tsx +2 -2
  20. package/src/buttons/MRT_EditActionButtons.tsx +2 -2
  21. package/src/buttons/MRT_ExpandButton.tsx +2 -2
  22. package/src/buttons/MRT_FullScreenToggleButton.tsx +2 -2
  23. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +2 -2
  24. package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -2
  25. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +4 -4
  26. package/src/head/MRT_TableHeadCellFilterLabel.tsx +1 -0
  27. package/src/inputs/MRT_EditCellTextField.tsx +8 -8
  28. package/src/inputs/MRT_FilterTextField.tsx +2 -2
  29. package/src/inputs/MRT_SearchTextField.tsx +4 -4
  30. package/src/inputs/MRT_SelectCheckbox.tsx +4 -4
  31. package/src/menus/MRT_ColumnActionMenu.tsx +2 -2
  32. package/src/menus/MRT_ShowHideColumnsMenu.tsx +1 -1
  33. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +2 -2
  34. package/src/table/MRT_Table.tsx +10 -3
  35. package/src/table/MRT_TableContainer.tsx +10 -4
  36. package/src/table/MRT_TableRoot.tsx +11 -11
  37. package/src/toolbar/MRT_LinearProgressBar.tsx +17 -2
  38. package/src/toolbar/MRT_ToolbarBottom.tsx +4 -4
  39. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +2 -1
  40. package/src/toolbar/MRT_ToolbarTop.tsx +13 -6
  41. package/src/utils.ts +1 -1
@@ -5,6 +5,7 @@ import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, But
5
5
  import { rankItem, rankings } from '@tanstack/match-sorter-utils';
6
6
  import { useDrop, useDrag, DndProvider } from 'react-dnd';
7
7
  import { HTML5Backend } from 'react-dnd-html5-backend';
8
+ import { useVirtual } from 'react-virtual';
8
9
 
9
10
  function _extends() {
10
11
  _extends = Object.assign ? Object.assign.bind() : function (target) {
@@ -187,7 +188,7 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
187
188
  _tableInstance$option = tableInstance.options,
188
189
  ExpandMoreIcon = _tableInstance$option.icons.ExpandMoreIcon,
189
190
  localization = _tableInstance$option.localization,
190
- onRowExpandChange = _tableInstance$option.onRowExpandChange,
191
+ onMrtRowExpandChange = _tableInstance$option.onMrtRowExpandChange,
191
192
  renderDetailPanel = _tableInstance$option.renderDetailPanel;
192
193
 
193
194
  var _getState = getState(),
@@ -195,7 +196,7 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
195
196
 
196
197
  var handleToggleExpand = function handleToggleExpand(event) {
197
198
  row.toggleExpanded();
198
- onRowExpandChange == null ? void 0 : onRowExpandChange({
199
+ onMrtRowExpandChange == null ? void 0 : onMrtRowExpandChange({
199
200
  event: event,
200
201
  row: row,
201
202
  tableInstance: tableInstance
@@ -639,7 +640,7 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
639
640
  var getState = tableInstance.getState,
640
641
  _tableInstance$option = tableInstance.options,
641
642
  enableColumnOrdering = _tableInstance$option.enableColumnOrdering,
642
- onToggleColumnVisibility = _tableInstance$option.onToggleColumnVisibility,
643
+ onMrtToggleColumnVisibility = _tableInstance$option.onMrtToggleColumnVisibility,
643
644
  setColumnOrder = tableInstance.setColumnOrder;
644
645
 
645
646
  var _getState = getState(),
@@ -686,7 +687,7 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
686
687
  column.toggleVisibility();
687
688
  }
688
689
 
689
- onToggleColumnVisibility == null ? void 0 : onToggleColumnVisibility({
690
+ onMrtToggleColumnVisibility == null ? void 0 : onMrtToggleColumnVisibility({
690
691
  column: column,
691
692
  columnVisibility: columnVisibility,
692
693
  tableInstance: tableInstance
@@ -783,7 +784,7 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
783
784
  if (columnOrder.length > 0 && !columns.some(function (col) {
784
785
  return col.columnDefType === 'group';
785
786
  })) {
786
- return [].concat(getLeftLeafColumns(), [].concat(new Set(columnOrder)).map(function (colId) {
787
+ return [].concat(getLeftLeafColumns(), Array.from(new Set(columnOrder)).map(function (colId) {
787
788
  return getCenterLeafColumns().find(function (col) {
788
789
  return (col == null ? void 0 : col.id) === colId;
789
790
  });
@@ -874,7 +875,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
874
875
  SortIcon = _tableInstance$option2.SortIcon,
875
876
  RestartAltIcon = _tableInstance$option2.RestartAltIcon,
876
877
  VisibilityOffIcon = _tableInstance$option2.VisibilityOffIcon,
877
- idPrefix = _tableInstance$option.idPrefix,
878
+ tableId = _tableInstance$option.tableId,
878
879
  localization = _tableInstance$option.localization,
879
880
  setShowFilters = tableInstance.setShowFilters;
880
881
  var column = header.column;
@@ -942,7 +943,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
942
943
  var _document$getElementB, _header$muiTableHeadC, _header$muiTableHeadC2;
943
944
 
944
945
  return (_document$getElementB = document.getElementById( // @ts-ignore
945
- (_header$muiTableHeadC = (_header$muiTableHeadC2 = header.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _header$muiTableHeadC2.id) != null ? _header$muiTableHeadC : "mrt-" + idPrefix + "-" + header.id + "-filter-text-field")) == null ? void 0 : _document$getElementB.focus();
946
+ (_header$muiTableHeadC = (_header$muiTableHeadC2 = header.muiTableHeadCellFilterTextFieldProps) == null ? void 0 : _header$muiTableHeadC2.id) != null ? _header$muiTableHeadC : "mrt-" + tableId + "-" + header.id + "-filter-text-field")) == null ? void 0 : _document$getElementB.focus();
946
947
  }, 200);
947
948
  setAnchorEl(null);
948
949
  };
@@ -1155,7 +1156,7 @@ var MRT_EditActionButtons = function MRT_EditActionButtons(_ref) {
1155
1156
  CancelIcon = _tableInstance$option2.CancelIcon,
1156
1157
  SaveIcon = _tableInstance$option2.SaveIcon,
1157
1158
  localization = _tableInstance$option.localization,
1158
- onEditSubmit = _tableInstance$option.onEditSubmit,
1159
+ onMrtEditRowSubmit = _tableInstance$option.onMrtEditRowSubmit,
1159
1160
  setCurrentEditingRow = tableInstance.setCurrentEditingRow;
1160
1161
 
1161
1162
  var _getState = getState(),
@@ -1169,7 +1170,7 @@ var MRT_EditActionButtons = function MRT_EditActionButtons(_ref) {
1169
1170
  };
1170
1171
 
1171
1172
  var handleSave = function handleSave() {
1172
- onEditSubmit == null ? void 0 : onEditSubmit({
1173
+ onMrtEditRowSubmit == null ? void 0 : onMrtEditRowSubmit({
1173
1174
  row: currentEditingRow != null ? currentEditingRow : row,
1174
1175
  tableInstance: tableInstance
1175
1176
  });
@@ -1281,8 +1282,8 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1281
1282
  _tableInstance$option = tableInstance.options,
1282
1283
  localization = _tableInstance$option.localization,
1283
1284
  muiSelectCheckboxProps = _tableInstance$option.muiSelectCheckboxProps,
1284
- onSelectChange = _tableInstance$option.onSelectChange,
1285
- onSelectAllChange = _tableInstance$option.onSelectAllChange,
1285
+ onMrtSelectRowChange = _tableInstance$option.onMrtSelectRowChange,
1286
+ onMrtSelectAllChange = _tableInstance$option.onMrtSelectAllChange,
1286
1287
  selectAllMode = _tableInstance$option.selectAllMode;
1287
1288
 
1288
1289
  var _getState = getState(),
@@ -1296,14 +1297,14 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1296
1297
  tableInstance.getToggleAllPageRowsSelectedHandler()(event);
1297
1298
  }
1298
1299
 
1299
- onSelectAllChange == null ? void 0 : onSelectAllChange({
1300
+ onMrtSelectAllChange == null ? void 0 : onMrtSelectAllChange({
1300
1301
  event: event,
1301
1302
  selectedRows: event.target.checked ? getRowModel().flatRows : [],
1302
1303
  tableInstance: tableInstance
1303
1304
  });
1304
1305
  } else if (row) {
1305
1306
  row == null ? void 0 : row.getToggleSelectedHandler()(event);
1306
- onSelectChange == null ? void 0 : onSelectChange({
1307
+ onMrtSelectRowChange == null ? void 0 : onMrtSelectRowChange({
1307
1308
  event: event,
1308
1309
  row: row,
1309
1310
  selectedRows: event.target.checked ? [].concat(getSelectedRowModel().flatRows, [row]) : getSelectedRowModel().flatRows.filter(function (selectedRow) {
@@ -1351,14 +1352,14 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
1351
1352
  FullscreenExitIcon = _tableInstance$option2.FullscreenExitIcon,
1352
1353
  FullscreenIcon = _tableInstance$option2.FullscreenIcon,
1353
1354
  localization = _tableInstance$option.localization,
1354
- onToggleFullScreen = _tableInstance$option.onToggleFullScreen,
1355
+ onMrtToggleFullScreen = _tableInstance$option.onMrtToggleFullScreen,
1355
1356
  setIsFullScreen = tableInstance.setIsFullScreen;
1356
1357
 
1357
1358
  var _getState = getState(),
1358
1359
  isFullScreen = _getState.isFullScreen;
1359
1360
 
1360
1361
  var handleToggleFullScreen = function handleToggleFullScreen(event) {
1361
- onToggleFullScreen == null ? void 0 : onToggleFullScreen({
1362
+ onMrtToggleFullScreen == null ? void 0 : onMrtToggleFullScreen({
1362
1363
  event: event,
1363
1364
  isFullScreen: !isFullScreen,
1364
1365
  tableInstance: tableInstance
@@ -1416,14 +1417,14 @@ var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton(_ref) {
1416
1417
  DensityMediumIcon = _tableInstance$option2.DensityMediumIcon,
1417
1418
  DensitySmallIcon = _tableInstance$option2.DensitySmallIcon,
1418
1419
  localization = _tableInstance$option.localization,
1419
- onToggleDensePadding = _tableInstance$option.onToggleDensePadding,
1420
+ onMrtToggleDensePadding = _tableInstance$option.onMrtToggleDensePadding,
1420
1421
  setIsDensePadding = tableInstance.setIsDensePadding;
1421
1422
 
1422
1423
  var _getState = getState(),
1423
1424
  isDensePadding = _getState.isDensePadding;
1424
1425
 
1425
1426
  var handleToggleDensePadding = function handleToggleDensePadding(event) {
1426
- onToggleDensePadding == null ? void 0 : onToggleDensePadding({
1427
+ onMrtToggleDensePadding == null ? void 0 : onMrtToggleDensePadding({
1427
1428
  event: event,
1428
1429
  isDensePadding: !isDensePadding,
1429
1430
  tableInstance: tableInstance
@@ -1451,14 +1452,14 @@ var MRT_ToggleFiltersButton = function MRT_ToggleFiltersButton(_ref) {
1451
1452
  FilterListIcon = _tableInstance$option2.FilterListIcon,
1452
1453
  FilterListOffIcon = _tableInstance$option2.FilterListOffIcon,
1453
1454
  localization = _tableInstance$option.localization,
1454
- onToggleShowFilters = _tableInstance$option.onToggleShowFilters,
1455
+ onMrtToggleShowFilters = _tableInstance$option.onMrtToggleShowFilters,
1455
1456
  setShowFilters = tableInstance.setShowFilters;
1456
1457
 
1457
1458
  var _getState = getState(),
1458
1459
  showFilters = _getState.showFilters;
1459
1460
 
1460
1461
  var handleToggleShowFilters = function handleToggleShowFilters(event) {
1461
- onToggleShowFilters == null ? void 0 : onToggleShowFilters({
1462
+ onMrtToggleShowFilters == null ? void 0 : onMrtToggleShowFilters({
1462
1463
  event: event,
1463
1464
  showFilters: !showFilters,
1464
1465
  tableInstance: tableInstance
@@ -1485,10 +1486,10 @@ var MRT_ToggleGlobalFilterButton = function MRT_ToggleGlobalFilterButton(_ref) {
1485
1486
  _tableInstance$option2 = _tableInstance$option.icons,
1486
1487
  SearchIcon = _tableInstance$option2.SearchIcon,
1487
1488
  SearchOffIcon = _tableInstance$option2.SearchOffIcon,
1488
- idPrefix = _tableInstance$option.idPrefix,
1489
+ tableId = _tableInstance$option.tableId,
1489
1490
  localization = _tableInstance$option.localization,
1490
1491
  muiSearchTextFieldProps = _tableInstance$option.muiSearchTextFieldProps,
1491
- onToggleShowGlobalFilter = _tableInstance$option.onToggleShowGlobalFilter,
1492
+ onMrtToggleShowGlobalFilter = _tableInstance$option.onMrtToggleShowGlobalFilter,
1492
1493
  setShowGlobalFilter = tableInstance.setShowGlobalFilter;
1493
1494
 
1494
1495
  var _getState = getState(),
@@ -1499,7 +1500,7 @@ var MRT_ToggleGlobalFilterButton = function MRT_ToggleGlobalFilterButton(_ref) {
1499
1500
  }) : muiSearchTextFieldProps;
1500
1501
 
1501
1502
  var handleToggleSearch = function handleToggleSearch(event) {
1502
- onToggleShowGlobalFilter == null ? void 0 : onToggleShowGlobalFilter({
1503
+ onMrtToggleShowGlobalFilter == null ? void 0 : onMrtToggleShowGlobalFilter({
1503
1504
  event: event,
1504
1505
  showGlobalFilter: !showGlobalFilter,
1505
1506
  tableInstance: tableInstance
@@ -1508,7 +1509,7 @@ var MRT_ToggleGlobalFilterButton = function MRT_ToggleGlobalFilterButton(_ref) {
1508
1509
  setTimeout(function () {
1509
1510
  var _document$getElementB, _textFieldProps$id;
1510
1511
 
1511
- return (_document$getElementB = document.getElementById((_textFieldProps$id = textFieldProps == null ? void 0 : textFieldProps.id) != null ? _textFieldProps$id : "mrt-" + idPrefix + "-search-text-field")) == null ? void 0 : _document$getElementB.focus();
1512
+ return (_document$getElementB = document.getElementById((_textFieldProps$id = textFieldProps == null ? void 0 : textFieldProps.id) != null ? _textFieldProps$id : "mrt-" + tableId + "-search-text-field")) == null ? void 0 : _document$getElementB.focus();
1512
1513
  }, 200);
1513
1514
  };
1514
1515
 
@@ -1528,10 +1529,10 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1528
1529
  _tableInstance$option2 = _tableInstance$option.icons,
1529
1530
  SearchIcon = _tableInstance$option2.SearchIcon,
1530
1531
  CloseIcon = _tableInstance$option2.CloseIcon,
1531
- idPrefix = _tableInstance$option.idPrefix,
1532
+ tableId = _tableInstance$option.tableId,
1532
1533
  localization = _tableInstance$option.localization,
1533
1534
  muiSearchTextFieldProps = _tableInstance$option.muiSearchTextFieldProps,
1534
- onGlobalSearchFilterChange = _tableInstance$option.onGlobalSearchFilterChange;
1535
+ onMrtGlobalFilterValueChange = _tableInstance$option.onMrtGlobalFilterValueChange;
1535
1536
 
1536
1537
  var _getState = getState(),
1537
1538
  globalFilter = _getState.globalFilter,
@@ -1549,7 +1550,7 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1549
1550
  var _event$target$value;
1550
1551
 
1551
1552
  setGlobalFilter((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
1552
- onGlobalSearchFilterChange == null ? void 0 : onGlobalSearchFilterChange({
1553
+ onMrtGlobalFilterValueChange == null ? void 0 : onMrtGlobalFilterValueChange({
1553
1554
  event: event,
1554
1555
  tableInstance: tableInstance
1555
1556
  });
@@ -1571,7 +1572,7 @@ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1571
1572
  "in": showGlobalFilter,
1572
1573
  orientation: "horizontal"
1573
1574
  }, React.createElement(TextField, Object.assign({
1574
- id: "mrt-" + idPrefix + "-search-text-field",
1575
+ id: "mrt-" + tableId + "-search-text-field",
1575
1576
  placeholder: localization.search,
1576
1577
  onChange: function onChange(event) {
1577
1578
  setSearchValue(event.target.value);
@@ -1626,6 +1627,7 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1626
1627
  enableFullScreenToggle = _tableInstance$option.enableFullScreenToggle,
1627
1628
  enableGlobalFilter = _tableInstance$option.enableGlobalFilter,
1628
1629
  enableHiding = _tableInstance$option.enableHiding,
1630
+ positionGlobalFilter = _tableInstance$option.positionGlobalFilter,
1629
1631
  renderToolbarInternalActions = _tableInstance$option.renderToolbarInternalActions;
1630
1632
  return React.createElement(Box, {
1631
1633
  sx: {
@@ -1640,7 +1642,7 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1640
1642
  MRT_ToggleFiltersButton: MRT_ToggleFiltersButton,
1641
1643
  MRT_ToggleGlobalFilterButton: MRT_ToggleGlobalFilterButton,
1642
1644
  tableInstance: tableInstance
1643
- })) != null ? _renderToolbarInterna : React.createElement(React.Fragment, null, enableGlobalFilter && React.createElement(MRT_SearchTextField, {
1645
+ })) != null ? _renderToolbarInterna : React.createElement(React.Fragment, null, enableGlobalFilter && positionGlobalFilter === 'right' && React.createElement(MRT_SearchTextField, {
1644
1646
  tableInstance: tableInstance
1645
1647
  }), enableFilters && enableGlobalFilter && React.createElement(MRT_ToggleGlobalFilterButton, {
1646
1648
  tableInstance: tableInstance
@@ -1765,7 +1767,8 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1765
1767
  };
1766
1768
 
1767
1769
  var MRT_LinearProgressBar = function MRT_LinearProgressBar(_ref) {
1768
- var tableInstance = _ref.tableInstance;
1770
+ var alignTo = _ref.alignTo,
1771
+ tableInstance = _ref.tableInstance;
1769
1772
  var muiLinearProgressProps = tableInstance.options.muiLinearProgressProps,
1770
1773
  getState = tableInstance.getState;
1771
1774
 
@@ -1779,10 +1782,19 @@ var MRT_LinearProgressBar = function MRT_LinearProgressBar(_ref) {
1779
1782
  return React.createElement(Collapse, {
1780
1783
  "in": isLoading || showProgressBars,
1781
1784
  mountOnEnter: true,
1782
- unmountOnExit: true
1785
+ unmountOnExit: true,
1786
+ sx: {
1787
+ bottom: alignTo === 'bottom' ? 0 : undefined,
1788
+ position: 'absolute',
1789
+ top: alignTo === 'top' ? 0 : undefined,
1790
+ width: '100%'
1791
+ }
1783
1792
  }, React.createElement(LinearProgress, Object.assign({
1784
1793
  "aria-label": "Loading",
1785
- "aria-busy": "true"
1794
+ "aria-busy": "true",
1795
+ sx: {
1796
+ position: 'relative'
1797
+ }
1786
1798
  }, linearProgressProps)));
1787
1799
  };
1788
1800
 
@@ -1806,25 +1818,28 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1806
1818
  var tableInstance = _ref2.tableInstance;
1807
1819
  var getState = tableInstance.getState,
1808
1820
  _tableInstance$option = tableInstance.options,
1821
+ enableGlobalFilter = _tableInstance$option.enableGlobalFilter,
1809
1822
  enablePagination = _tableInstance$option.enablePagination,
1810
1823
  enableToolbarInternalActions = _tableInstance$option.enableToolbarInternalActions,
1811
- idPrefix = _tableInstance$option.idPrefix,
1824
+ tableId = _tableInstance$option.tableId,
1812
1825
  muiTableToolbarTopProps = _tableInstance$option.muiTableToolbarTopProps,
1813
1826
  positionPagination = _tableInstance$option.positionPagination,
1827
+ positionGlobalFilter = _tableInstance$option.positionGlobalFilter,
1814
1828
  positionToolbarActions = _tableInstance$option.positionToolbarActions,
1815
1829
  positionToolbarAlertBanner = _tableInstance$option.positionToolbarAlertBanner,
1816
1830
  renderToolbarCustomActions = _tableInstance$option.renderToolbarCustomActions;
1817
1831
 
1818
1832
  var _getState = getState(),
1819
- isFullScreen = _getState.isFullScreen;
1833
+ isFullScreen = _getState.isFullScreen,
1834
+ showGlobalFilter = _getState.showGlobalFilter;
1820
1835
 
1821
1836
  var isMobile = useMediaQuery('(max-width:720px)');
1822
1837
  var toolbarProps = muiTableToolbarTopProps instanceof Function ? muiTableToolbarTopProps({
1823
1838
  tableInstance: tableInstance
1824
1839
  }) : muiTableToolbarTopProps;
1825
- var stackAlertBanner = isMobile || positionToolbarAlertBanner === 'top' && !!renderToolbarCustomActions;
1840
+ var stackAlertBanner = isMobile || positionToolbarAlertBanner === 'top' && (!!renderToolbarCustomActions || showGlobalFilter);
1826
1841
  return React.createElement(Toolbar, Object.assign({
1827
- id: "mrt-" + idPrefix + "-toolbar-top",
1842
+ id: "mrt-" + tableId + "-toolbar-top",
1828
1843
  variant: "dense"
1829
1844
  }, toolbarProps, {
1830
1845
  sx: function sx(theme) {
@@ -1846,15 +1861,18 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1846
1861
  position: stackAlertBanner ? 'relative' : 'absolute',
1847
1862
  right: 0,
1848
1863
  top: 0,
1849
- width: 'calc(100% - 1rem)'
1864
+ width: renderToolbarCustomActions ? '100%' : undefined
1850
1865
  }
1851
- }, (_renderToolbarCustomA = renderToolbarCustomActions == null ? void 0 : renderToolbarCustomActions({
1866
+ }, enableGlobalFilter && positionGlobalFilter === 'left' && React.createElement(MRT_SearchTextField, {
1867
+ tableInstance: tableInstance
1868
+ }), (_renderToolbarCustomA = renderToolbarCustomActions == null ? void 0 : renderToolbarCustomActions({
1852
1869
  tableInstance: tableInstance
1853
1870
  })) != null ? _renderToolbarCustomA : React.createElement("span", null), enableToolbarInternalActions && positionToolbarActions === 'top' && React.createElement(MRT_ToolbarInternalButtons, {
1854
1871
  tableInstance: tableInstance
1855
1872
  })), React.createElement("div", null, enablePagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1856
1873
  tableInstance: tableInstance
1857
1874
  })), React.createElement(MRT_LinearProgressBar, {
1875
+ alignTo: "bottom",
1858
1876
  tableInstance: tableInstance
1859
1877
  }));
1860
1878
  };
@@ -1864,7 +1882,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1864
1882
  var getState = tableInstance.getState,
1865
1883
  _tableInstance$option = tableInstance.options,
1866
1884
  enableToolbarInternalActions = _tableInstance$option.enableToolbarInternalActions,
1867
- idPrefix = _tableInstance$option.idPrefix,
1885
+ tableId = _tableInstance$option.tableId,
1868
1886
  enablePagination = _tableInstance$option.enablePagination,
1869
1887
  muiTableToolbarBottomProps = _tableInstance$option.muiTableToolbarBottomProps,
1870
1888
  positionPagination = _tableInstance$option.positionPagination,
@@ -1881,7 +1899,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1881
1899
  }) : muiTableToolbarBottomProps;
1882
1900
  var stackAlertBanner = isMobile || positionToolbarAlertBanner === 'bottom' && positionToolbarActions === 'bottom' || positionToolbarAlertBanner === 'bottom' && !!renderToolbarCustomActions && positionToolbarActions === 'bottom';
1883
1901
  return React.createElement(Toolbar, Object.assign({
1884
- id: "mrt-" + idPrefix + "-toolbar-bottom",
1902
+ id: "mrt-" + tableId + "-toolbar-bottom",
1885
1903
  variant: "dense"
1886
1904
  }, toolbarProps, {
1887
1905
  sx: function sx(theme) {
@@ -1889,11 +1907,12 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1889
1907
  theme: theme
1890
1908
  }), {
1891
1909
  bottom: isFullScreen ? '0' : undefined,
1892
- position: isFullScreen ? 'fixed' : undefined,
1893
- boxShadow: "-3px 0 6px " + alpha(theme.palette.common.black, 0.1)
1910
+ boxShadow: "-3px 0 6px " + alpha(theme.palette.common.black, 0.1),
1911
+ position: isFullScreen ? 'fixed' : 'relative'
1894
1912
  }, toolbarProps == null ? void 0 : toolbarProps.sx);
1895
1913
  }
1896
1914
  }), React.createElement(MRT_LinearProgressBar, {
1915
+ alignTo: 'top',
1897
1916
  tableInstance: tableInstance
1898
1917
  }), positionToolbarAlertBanner === 'bottom' && React.createElement(MRT_ToolbarAlertBanner, {
1899
1918
  tableInstance: tableInstance
@@ -1924,7 +1943,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
1924
1943
  _tableInstance$option2 = _tableInstance$option.icons,
1925
1944
  FilterListIcon = _tableInstance$option2.FilterListIcon,
1926
1945
  CloseIcon = _tableInstance$option2.CloseIcon,
1927
- idPrefix = _tableInstance$option.idPrefix,
1946
+ tableId = _tableInstance$option.tableId,
1928
1947
  localization = _tableInstance$option.localization,
1929
1948
  muiTableHeadCellFilterTextFieldProps = _tableInstance$option.muiTableHeadCellFilterTextFieldProps,
1930
1949
  setCurrentFilterFns = tableInstance.setCurrentFilterFns;
@@ -2002,7 +2021,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
2002
2021
  }));
2003
2022
  }
2004
2023
 
2005
- var filterId = "mrt-" + idPrefix + "-" + header.id + "-filter-text-field" + (inputIndex != null ? inputIndex : '');
2024
+ var filterId = "mrt-" + tableId + "-" + header.id + "-filter-text-field" + (inputIndex != null ? inputIndex : '');
2006
2025
  var filterFn = currentFilterFns == null ? void 0 : currentFilterFns[header.id];
2007
2026
  var isSelectFilter = !!columnDef.filterSelectOptions;
2008
2027
  var filterChipLabel = !(filterFn instanceof Function) && [MRT_FILTER_OPTION.EMPTY, MRT_FILTER_OPTION.NOT_EMPTY].includes(filterFn) ? //@ts-ignore
@@ -2205,6 +2224,7 @@ var MRT_TableHeadCellFilterLabel = function MRT_TableHeadCellFilterLabel(_ref) {
2205
2224
  opacity: !!column.getFilterValue() || showFilters ? 0.8 : 0,
2206
2225
  p: '2px',
2207
2226
  transition: 'all 0.2s ease-in-out',
2227
+ transform: 'scale(0.66)',
2208
2228
  '&:hover': {
2209
2229
  backgroundColor: 'transparent',
2210
2230
  opacity: 0.8
@@ -2560,11 +2580,11 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2560
2580
  tableInstance = _ref.tableInstance;
2561
2581
  var getState = tableInstance.getState,
2562
2582
  _tableInstance$option = tableInstance.options,
2563
- idPrefix = _tableInstance$option.idPrefix,
2583
+ tableId = _tableInstance$option.tableId,
2564
2584
  enableEditing = _tableInstance$option.enableEditing,
2565
2585
  muiTableBodyCellEditTextFieldProps = _tableInstance$option.muiTableBodyCellEditTextFieldProps,
2566
- onCellEditBlur = _tableInstance$option.onCellEditBlur,
2567
- onCellEditChange = _tableInstance$option.onCellEditChange,
2586
+ onMrtCellEditBlur = _tableInstance$option.onMrtCellEditBlur,
2587
+ onMrtCellEditChange = _tableInstance$option.onMrtCellEditChange,
2568
2588
  setCurrentEditingCell = tableInstance.setCurrentEditingCell,
2569
2589
  setCurrentEditingRow = tableInstance.setCurrentEditingRow;
2570
2590
 
@@ -2578,12 +2598,12 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2578
2598
 
2579
2599
  var handleChange = function handleChange(event) {
2580
2600
  setValue(event.target.value);
2581
- columnDef.onCellEditChange == null ? void 0 : columnDef.onCellEditChange({
2601
+ columnDef.onMrtCellEditChange == null ? void 0 : columnDef.onMrtCellEditChange({
2582
2602
  event: event,
2583
2603
  cell: cell,
2584
2604
  tableInstance: tableInstance
2585
2605
  });
2586
- onCellEditChange == null ? void 0 : onCellEditChange({
2606
+ onMrtCellEditChange == null ? void 0 : onMrtCellEditChange({
2587
2607
  event: event,
2588
2608
  cell: cell,
2589
2609
  tableInstance: tableInstance
@@ -2598,12 +2618,12 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2598
2618
  }
2599
2619
 
2600
2620
  setCurrentEditingCell(null);
2601
- columnDef.onCellEditBlur == null ? void 0 : columnDef.onCellEditBlur({
2621
+ columnDef.onMrtCellEditBlur == null ? void 0 : columnDef.onMrtCellEditBlur({
2602
2622
  event: event,
2603
2623
  cell: cell,
2604
2624
  tableInstance: tableInstance
2605
2625
  });
2606
- onCellEditBlur == null ? void 0 : onCellEditBlur({
2626
+ onMrtCellEditBlur == null ? void 0 : onMrtCellEditBlur({
2607
2627
  event: event,
2608
2628
  cell: cell,
2609
2629
  tableInstance: tableInstance
@@ -2629,7 +2649,7 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
2629
2649
  }
2630
2650
 
2631
2651
  return React.createElement(TextField, Object.assign({
2632
- id: "mrt-" + idPrefix + "-edit-cell-text-field-" + cell.id,
2652
+ id: "mrt-" + tableId + "-edit-cell-text-field-" + cell.id,
2633
2653
  margin: "dense",
2634
2654
  onBlur: handleBlur,
2635
2655
  onChange: handleChange,
@@ -2718,10 +2738,10 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2718
2738
  enableClickToCopy = _tableInstance$option.enableClickToCopy,
2719
2739
  enableColumnOrdering = _tableInstance$option.enableColumnOrdering,
2720
2740
  enableEditing = _tableInstance$option.enableEditing,
2721
- idPrefix = _tableInstance$option.idPrefix,
2741
+ tableId = _tableInstance$option.tableId,
2722
2742
  muiTableBodyCellProps = _tableInstance$option.muiTableBodyCellProps,
2723
2743
  muiTableBodyCellSkeletonProps = _tableInstance$option.muiTableBodyCellSkeletonProps,
2724
- onCellClick = _tableInstance$option.onCellClick,
2744
+ onMrtCellClick = _tableInstance$option.onMrtCellClick,
2725
2745
  setColumnOrder = tableInstance.setColumnOrder,
2726
2746
  setCurrentEditingCell = tableInstance.setCurrentEditingCell;
2727
2747
 
@@ -2767,7 +2787,7 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2767
2787
  if ((enableEditing || columnDef.enableEditing) && columnDef.enableEditing !== false && editingMode === 'cell') {
2768
2788
  setCurrentEditingCell(cell);
2769
2789
  setTimeout(function () {
2770
- var textField = document.getElementById("mrt-" + idPrefix + "-edit-cell-text-field-" + cell.id);
2790
+ var textField = document.getElementById("mrt-" + tableId + "-edit-cell-text-field-" + cell.id);
2771
2791
 
2772
2792
  if (textField) {
2773
2793
  textField.focus();
@@ -2791,7 +2811,7 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2791
2811
 
2792
2812
  return React.createElement(TableCell, Object.assign({
2793
2813
  onClick: function onClick(event) {
2794
- return onCellClick == null ? void 0 : onCellClick({
2814
+ return onMrtCellClick == null ? void 0 : onMrtCellClick({
2795
2815
  event: event,
2796
2816
  cell: cell,
2797
2817
  tableInstance: tableInstance
@@ -2814,7 +2834,7 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2814
2834
  whiteSpace: isDensePadding ? 'nowrap' : 'normal',
2815
2835
  zIndex: column.getIsPinned() ? 1 : undefined,
2816
2836
  '&:hover': {
2817
- backgroundColor: enableHover ? theme.palette.mode === 'dark' ? lighten(theme.palette.background["default"], 0.13) + " !important" : darken(theme.palette.background["default"], 0.07) + " !important" : undefined
2837
+ backgroundColor: enableHover && enableEditing && editingMode !== 'row' ? theme.palette.mode === 'dark' ? lighten(theme.palette.background["default"], 0.13) + " !important" : darken(theme.palette.background["default"], 0.07) + " !important" : undefined
2818
2838
  }
2819
2839
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2820
2840
  },
@@ -2852,7 +2872,7 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
2852
2872
  _tableInstance$option = tableInstance.options,
2853
2873
  muiTableBodyRowProps = _tableInstance$option.muiTableBodyRowProps,
2854
2874
  muiTableDetailPanelProps = _tableInstance$option.muiTableDetailPanelProps,
2855
- onDetailPanelClick = _tableInstance$option.onDetailPanelClick,
2875
+ onMrtDetailPanelClick = _tableInstance$option.onMrtDetailPanelClick,
2856
2876
  renderDetailPanel = _tableInstance$option.renderDetailPanel;
2857
2877
  var tableRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps({
2858
2878
  row: row,
@@ -2865,7 +2885,7 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
2865
2885
  return React.createElement(TableRow, Object.assign({}, tableRowProps), React.createElement(TableCell, Object.assign({
2866
2886
  colSpan: getVisibleFlatColumns().length + 10,
2867
2887
  onClick: function onClick(event) {
2868
- return onDetailPanelClick == null ? void 0 : onDetailPanelClick({
2888
+ return onMrtDetailPanelClick == null ? void 0 : onMrtDetailPanelClick({
2869
2889
  event: event,
2870
2890
  row: row,
2871
2891
  tableInstance: tableInstance
@@ -2889,9 +2909,10 @@ var MRT_TableDetailPanel = function MRT_TableDetailPanel(_ref) {
2889
2909
  var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2890
2910
  var row = _ref.row,
2891
2911
  tableInstance = _ref.tableInstance;
2892
- var _tableInstance$option = tableInstance.options,
2912
+ var getIsSomeColumnsPinned = tableInstance.getIsSomeColumnsPinned,
2913
+ _tableInstance$option = tableInstance.options,
2893
2914
  muiTableBodyRowProps = _tableInstance$option.muiTableBodyRowProps,
2894
- onRowClick = _tableInstance$option.onRowClick,
2915
+ onMrtRowClick = _tableInstance$option.onMrtRowClick,
2895
2916
  renderDetailPanel = _tableInstance$option.renderDetailPanel;
2896
2917
  var tableRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps({
2897
2918
  row: row,
@@ -2900,7 +2921,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2900
2921
  return React.createElement(React.Fragment, null, React.createElement(TableRow, Object.assign({
2901
2922
  hover: true,
2902
2923
  onClick: function onClick(event) {
2903
- return onRowClick == null ? void 0 : onRowClick({
2924
+ return onMrtRowClick == null ? void 0 : onMrtRowClick({
2904
2925
  event: event,
2905
2926
  row: row,
2906
2927
  tableInstance: tableInstance
@@ -2913,7 +2934,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2913
2934
  backgroundColor: lighten(theme.palette.background["default"], 0.06),
2914
2935
  transition: 'all 0.2s ease-in-out',
2915
2936
  '&:hover td': {
2916
- 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
2937
+ backgroundColor: (tableRowProps == null ? void 0 : tableRowProps.hover) !== false && getIsSomeColumnsPinned() ? theme.palette.mode === 'dark' ? "" + lighten(theme.palette.background["default"], 0.12) : "" + darken(theme.palette.background["default"], 0.05) : undefined
2917
2938
  }
2918
2939
  }, tableRowProps == null ? void 0 : tableRowProps.sx);
2919
2940
  }
@@ -2931,23 +2952,47 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2931
2952
  };
2932
2953
 
2933
2954
  var MRT_TableBody = function MRT_TableBody(_ref) {
2934
- var tableInstance = _ref.tableInstance;
2955
+ var tableInstance = _ref.tableInstance,
2956
+ tableContainerRef = _ref.tableContainerRef;
2935
2957
  var getPaginationRowModel = tableInstance.getPaginationRowModel,
2936
2958
  getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
2959
+ getState = tableInstance.getState,
2937
2960
  _tableInstance$option = tableInstance.options,
2938
2961
  enablePagination = _tableInstance$option.enablePagination,
2962
+ enableRowVirtualization = _tableInstance$option.enableRowVirtualization,
2939
2963
  muiTableBodyProps = _tableInstance$option.muiTableBodyProps;
2940
- var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
2964
+
2965
+ var _getState = getState(),
2966
+ isDensePadding = _getState.isDensePadding;
2967
+
2941
2968
  var tableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
2942
2969
  tableInstance: tableInstance
2943
2970
  }) : muiTableBodyProps;
2944
- return React.createElement(TableBody, Object.assign({}, tableBodyProps), rows.map(function (row) {
2971
+ var rows = enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
2972
+ var rowVirtualizer = useVirtual({
2973
+ overscan: isDensePadding ? 15 : 5,
2974
+ size: rows.length,
2975
+ parentRef: tableContainerRef
2976
+ });
2977
+ var virtualRows = rowVirtualizer.virtualItems;
2978
+ var paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;
2979
+ var paddingBottom = virtualRows.length > 0 ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end : 0;
2980
+ return React.createElement(TableBody, Object.assign({}, tableBodyProps), enableRowVirtualization && paddingTop > 0 && React.createElement("tr", null, React.createElement("td", {
2981
+ style: {
2982
+ height: paddingTop + "px"
2983
+ }
2984
+ })), (enableRowVirtualization ? virtualRows : rows).map(function (rowOrVirtualRow) {
2985
+ var row = enableRowVirtualization ? rows[rowOrVirtualRow.index] : rowOrVirtualRow;
2945
2986
  return React.createElement(MRT_TableBodyRow, {
2946
2987
  key: row.id,
2947
2988
  row: row,
2948
2989
  tableInstance: tableInstance
2949
2990
  });
2950
- }));
2991
+ }), enableRowVirtualization && paddingBottom > 0 && React.createElement("tr", null, React.createElement("td", {
2992
+ style: {
2993
+ height: paddingBottom + "px"
2994
+ }
2995
+ })));
2951
2996
  };
2952
2997
 
2953
2998
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
@@ -3041,7 +3086,8 @@ var MRT_TableFooter = function MRT_TableFooter(_ref) {
3041
3086
  };
3042
3087
 
3043
3088
  var MRT_Table = function MRT_Table(_ref) {
3044
- var tableInstance = _ref.tableInstance;
3089
+ var tableContainerRef = _ref.tableContainerRef,
3090
+ tableInstance = _ref.tableInstance;
3045
3091
  var _tableInstance$option = tableInstance.options,
3046
3092
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
3047
3093
  enableTableFooter = _tableInstance$option.enableTableFooter,
@@ -3055,6 +3101,7 @@ var MRT_Table = function MRT_Table(_ref) {
3055
3101
  }, tableProps), enableTableHead && React.createElement(MRT_TableHead, {
3056
3102
  tableInstance: tableInstance
3057
3103
  }), React.createElement(MRT_TableBody, {
3104
+ tableContainerRef: tableContainerRef,
3058
3105
  tableInstance: tableInstance
3059
3106
  }), enableTableFooter && React.createElement(MRT_TableFooter, {
3060
3107
  tableInstance: tableInstance
@@ -3067,8 +3114,8 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
3067
3114
  var getState = tableInstance.getState,
3068
3115
  _tableInstance$option = tableInstance.options,
3069
3116
  enableStickyHeader = _tableInstance$option.enableStickyHeader,
3070
- idPrefix = _tableInstance$option.idPrefix,
3071
- muiTableContainerProps = _tableInstance$option.muiTableContainerProps;
3117
+ muiTableContainerProps = _tableInstance$option.muiTableContainerProps,
3118
+ tableId = _tableInstance$option.tableId;
3072
3119
 
3073
3120
  var _getState = getState(),
3074
3121
  isFullScreen = _getState.isFullScreen;
@@ -3083,11 +3130,13 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
3083
3130
  useIsomorphicLayoutEffect(function () {
3084
3131
  var _document$getElementB, _document, _document$getElementB2, _document$getElementB3, _document2, _document2$getElement;
3085
3132
 
3086
- 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;
3087
- var bottomToolbarHeight = typeof document !== 'undefined' ? (_document$getElementB3 = (_document2 = document) == null ? void 0 : (_document2$getElement = _document2.getElementById("mrt-" + idPrefix + "-toolbar-bottom")) == null ? void 0 : _document2$getElement.offsetHeight) != null ? _document$getElementB3 : 0 : 0;
3133
+ var topToolbarHeight = typeof document !== 'undefined' ? (_document$getElementB = (_document = document) == null ? void 0 : (_document$getElementB2 = _document.getElementById("mrt-" + tableId + "-toolbar-top")) == null ? void 0 : _document$getElementB2.offsetHeight) != null ? _document$getElementB : 0 : 0;
3134
+ var bottomToolbarHeight = typeof document !== 'undefined' ? (_document$getElementB3 = (_document2 = document) == null ? void 0 : (_document2$getElement = _document2.getElementById("mrt-" + tableId + "-toolbar-bottom")) == null ? void 0 : _document2$getElement.offsetHeight) != null ? _document$getElementB3 : 0 : 0;
3088
3135
  setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);
3089
3136
  });
3137
+ var tableContainerRef = React.useRef(null);
3090
3138
  return React.createElement(TableContainer, Object.assign({}, tableContainerProps, {
3139
+ ref: tableContainerRef,
3091
3140
  sx: _extends({
3092
3141
  maxWidth: '100%',
3093
3142
  maxHeight: enableStickyHeader ? "clamp(350px, calc(100vh - " + totalToolbarHeight + "px), 2000px)" : undefined,
@@ -3097,6 +3146,7 @@ var MRT_TableContainer = function MRT_TableContainer(_ref) {
3097
3146
  maxHeight: isFullScreen ? "calc(100vh - " + totalToolbarHeight + "px)" : undefined
3098
3147
  }
3099
3148
  }), React.createElement(MRT_Table, {
3149
+ tableContainerRef: tableContainerRef,
3100
3150
  tableInstance: tableInstance
3101
3151
  }));
3102
3152
  };
@@ -3154,15 +3204,15 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
3154
3204
  var MRT_TableRoot = function MRT_TableRoot(props) {
3155
3205
  var _initialState$current, _initialState$current2, _initialState$isDense, _initialState$isFullS, _initialState$showFil, _initialState$showGlo, _props$globalFilterFn, _props$state3, _props$state4;
3156
3206
 
3157
- var _useState = useState(props.idPrefix),
3158
- idPrefix = _useState[0],
3207
+ var _useState = useState(props.tableId),
3208
+ tableId = _useState[0],
3159
3209
  setIdPrefix = _useState[1];
3160
3210
 
3161
3211
  useEffect(function () {
3162
- var _props$idPrefix;
3212
+ var _props$tableId;
3163
3213
 
3164
- return setIdPrefix((_props$idPrefix = props.idPrefix) != null ? _props$idPrefix : Math.random().toString(36).substring(2, 9));
3165
- }, [props.idPrefix]);
3214
+ return setIdPrefix((_props$tableId = props.tableId) != null ? _props$tableId : Math.random().toString(36).substring(2, 9));
3215
+ }, [props.tableId]);
3166
3216
  var showActionColumn = props.enableRowActions || props.enableEditing && props.editingMode === 'row';
3167
3217
  var showExpandColumn = props.enableExpanding || props.enableGrouping;
3168
3218
  var initialState = useMemo(function () {
@@ -3173,7 +3223,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3173
3223
  return c.id;
3174
3224
  })).filter(Boolean) : [];
3175
3225
 
3176
- if (!props.enablePersistentState || !props.idPrefix) {
3226
+ if (!props.enablePersistentState || !props.tableId) {
3177
3227
  return initState;
3178
3228
  }
3179
3229
 
@@ -3185,7 +3235,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3185
3235
  return initState;
3186
3236
  }
3187
3237
 
3188
- var storedState = props.persistentStateMode === 'localStorage' ? localStorage.getItem("mrt-" + idPrefix + "-table-state") : props.persistentStateMode === 'sessionStorage' ? sessionStorage.getItem("mrt-" + idPrefix + "-table-state") : '{}';
3238
+ var storedState = props.persistentStateMode === 'localStorage' ? localStorage.getItem("mrt-" + tableId + "-table-state") : props.persistentStateMode === 'sessionStorage' ? sessionStorage.getItem("mrt-" + tableId + "-table-state") : '{}';
3189
3239
 
3190
3240
  if (storedState) {
3191
3241
  var parsedState = JSON.parse(storedState);
@@ -3251,7 +3301,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3251
3301
  getSubRows: function getSubRows(row) {
3252
3302
  return row == null ? void 0 : row.subRows;
3253
3303
  },
3254
- idPrefix: idPrefix,
3304
+ tableId: tableId,
3255
3305
  initialState: initialState
3256
3306
  })
3257
3307
  );
@@ -3375,12 +3425,12 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3375
3425
  return;
3376
3426
  }
3377
3427
 
3378
- if (!props.idPrefix && process.env.NODE_ENV !== 'production') {
3379
- console.warn('a unique idPrefix prop is required for persistent table state to work');
3428
+ if (!props.tableId && process.env.NODE_ENV !== 'production') {
3429
+ console.warn('a unique tableId prop is required for persistent table state to work');
3380
3430
  return;
3381
3431
  }
3382
3432
 
3383
- var itemArgs = ["mrt-" + idPrefix + "-table-state", JSON.stringify(tableInstance.getState())];
3433
+ var itemArgs = ["mrt-" + tableId + "-table-state", JSON.stringify(tableInstance.getState())];
3384
3434
 
3385
3435
  if (props.persistentStateMode === 'localStorage') {
3386
3436
  var _localStorage;
@@ -3391,7 +3441,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3391
3441
 
3392
3442
  (_sessionStorage = sessionStorage).setItem.apply(_sessionStorage, itemArgs);
3393
3443
  }
3394
- }, [props.enablePersistentState, props.idPrefix, props.persistentStateMode, tableInstance]);
3444
+ }, [props.enablePersistentState, props.tableId, props.persistentStateMode, tableInstance]);
3395
3445
  return React.createElement(React.Fragment, null, React.createElement(Dialog, {
3396
3446
  PaperComponent: Box,
3397
3447
  TransitionComponent: Grow,
@@ -3410,7 +3460,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3410
3460
  }));
3411
3461
  };
3412
3462
 
3413
- var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner", "selectAllMode"];
3463
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enablePagination", "enablePinning", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "persistentStateMode", "positionActionsColumn", "positionPagination", "positionGlobalFilter", "positionToolbarActions", "positionToolbarAlertBanner", "selectAllMode"];
3414
3464
  var MaterialReactTable = (function (_ref) {
3415
3465
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3416
3466
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
@@ -3476,6 +3526,8 @@ var MaterialReactTable = (function (_ref) {
3476
3526
  positionActionsColumn = _ref$positionActionsC === void 0 ? 'first' : _ref$positionActionsC,
3477
3527
  _ref$positionPaginati = _ref.positionPagination,
3478
3528
  positionPagination = _ref$positionPaginati === void 0 ? 'bottom' : _ref$positionPaginati,
3529
+ _ref$positionGlobalFi = _ref.positionGlobalFilter,
3530
+ positionGlobalFilter = _ref$positionGlobalFi === void 0 ? 'right' : _ref$positionGlobalFi,
3479
3531
  _ref$positionToolbarA = _ref.positionToolbarActions,
3480
3532
  positionToolbarActions = _ref$positionToolbarA === void 0 ? 'top' : _ref$positionToolbarA,
3481
3533
  _ref$positionToolbarA2 = _ref.positionToolbarAlertBanner,
@@ -3515,6 +3567,7 @@ var MaterialReactTable = (function (_ref) {
3515
3567
  localization: _extends({}, MRT_DefaultLocalization_EN, localization),
3516
3568
  persistentStateMode: persistentStateMode,
3517
3569
  positionActionsColumn: positionActionsColumn,
3570
+ positionGlobalFilter: positionGlobalFilter,
3518
3571
  positionPagination: positionPagination,
3519
3572
  positionToolbarActions: positionToolbarActions,
3520
3573
  positionToolbarAlertBanner: positionToolbarAlertBanner,