material-react-table 0.5.0 → 0.5.3

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 (35) hide show
  1. package/dist/MaterialReactTable.d.ts +10 -9
  2. package/dist/material-react-table.cjs.development.js +93 -81
  3. package/dist/material-react-table.cjs.development.js.map +1 -1
  4. package/dist/material-react-table.cjs.production.min.js +1 -1
  5. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  6. package/dist/material-react-table.esm.js +94 -82
  7. package/dist/material-react-table.esm.js.map +1 -1
  8. package/dist/useMRT.d.ts +0 -5
  9. package/package.json +2 -2
  10. package/src/@types/react-table-config.d.ts +3 -3
  11. package/src/MaterialReactTable.tsx +16 -9
  12. package/src/body/MRT_TableBody.tsx +7 -2
  13. package/src/body/MRT_TableBodyCell.tsx +3 -2
  14. package/src/body/MRT_TableBodyRow.tsx +11 -8
  15. package/src/buttons/MRT_EditActionButtons.tsx +2 -2
  16. package/src/buttons/MRT_ExpandAllButton.tsx +3 -4
  17. package/src/buttons/MRT_ExpandButton.tsx +3 -1
  18. package/src/buttons/MRT_FullScreenToggleButton.tsx +3 -1
  19. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +3 -1
  20. package/src/buttons/MRT_ToggleFiltersButton.tsx +2 -2
  21. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +17 -11
  22. package/src/buttons/MRT_ToggleSearchButton.tsx +1 -1
  23. package/src/footer/MRT_TableFooter.tsx +6 -1
  24. package/src/footer/MRT_TableFooterCell.tsx +7 -2
  25. package/src/head/MRT_TableHeadCell.tsx +5 -4
  26. package/src/head/MRT_TableHeadCellActions.tsx +6 -1
  27. package/src/head/MRT_TableHeadRow.tsx +7 -2
  28. package/src/inputs/MRT_EditCellTextField.tsx +3 -1
  29. package/src/inputs/MRT_SearchTextField.tsx +1 -2
  30. package/src/inputs/MRT_SelectCheckbox.tsx +1 -2
  31. package/src/table/MRT_Table.tsx +7 -2
  32. package/src/table/MRT_TableContainer.tsx +19 -5
  33. package/src/toolbar/MRT_ToolbarBottom.tsx +2 -3
  34. package/src/toolbar/MRT_ToolbarTop.tsx +2 -3
  35. package/src/useMRT.tsx +38 -23
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useState, useContext, createContext, Fragment, useRef, useEffect } from 'react';
1
+ import React, { useState, useMemo, useContext, createContext, Fragment, useRef, useEffect } from 'react';
2
2
  import { useTable, useFilters, useGlobalFilter, useGroupBy, useSortBy, useExpanded, usePagination, useRowSelect, useResizeColumns, useFlexLayout, useAsyncDebounce } from 'react-table';
3
3
  import { TextField, Tooltip, InputAdornment, IconButton, Menu, MenuItem, Divider, TableCell, Box, TableSortLabel, Collapse, Checkbox, TableRow, TableHead, alpha, TableBody, TableFooter, Table, FormControlLabel, Switch, Button, TablePagination, useMediaQuery, Chip, Alert, Toolbar, TableContainer, Paper, LinearProgress } from '@mui/material';
4
4
  import CancelIcon from '@mui/icons-material/Cancel';
@@ -102,19 +102,6 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
102
102
 
103
103
  var hooks = [useFilters, useGlobalFilter, useGroupBy, useSortBy, useExpanded, usePagination, useRowSelect];
104
104
  if (props.enableColumnResizing) hooks.unshift(useResizeColumns, useFlexLayout);
105
- var tableInstance = useTable.apply(void 0, [props].concat(hooks));
106
- var anyRowsCanExpand = useMemo( // @ts-ignore
107
- function () {
108
- return tableInstance.rows.some(function (row) {
109
- return row.canExpand;
110
- });
111
- }, [tableInstance.rows]);
112
- var anyRowsExpanded = useMemo( // @ts-ignore
113
- function () {
114
- return tableInstance.rows.some(function (row) {
115
- return row.isExpanded;
116
- });
117
- }, [tableInstance.rows]);
118
105
 
119
106
  var _useState = useState(null),
120
107
  currentEditingRow = _useState[0],
@@ -132,24 +119,42 @@ var MaterialReactTableProvider = function MaterialReactTableProvider(props) {
132
119
  showFilters = _useState4[0],
133
120
  setShowFilters = _useState4[1];
134
121
 
135
- var _useState5 = useState((_props$initialState$s2 = (_props$initialState4 = props.initialState) == null ? void 0 : _props$initialState4.showSearchTextField) != null ? _props$initialState$s2 : false),
122
+ var _useState5 = useState((_props$initialState$s2 = (_props$initialState4 = props.initialState) == null ? void 0 : _props$initialState4.showSearch) != null ? _props$initialState$s2 : false),
136
123
  showSearch = _useState5[0],
137
124
  setShowSearch = _useState5[1];
138
125
 
126
+ var tableInstance = useTable.apply(void 0, [_extends({}, props, {
127
+ useControlledState: function useControlledState(state) {
128
+ return useMemo(function () {
129
+ return _extends({}, state, {
130
+ currentEditingRow: currentEditingRow,
131
+ densePadding: densePadding,
132
+ fullScreen: fullScreen,
133
+ showFilters: showFilters,
134
+ showSearch: showSearch
135
+ }, props == null ? void 0 : props.useControlledState == null ? void 0 : props.useControlledState(state));
136
+ }, [currentEditingRow, densePadding, fullScreen, showFilters, showSearch, state]);
137
+ }
138
+ })].concat(hooks));
139
+ var anyRowsCanExpand = useMemo(function () {
140
+ return tableInstance.rows.some(function (row) {
141
+ return row.canExpand;
142
+ });
143
+ }, [tableInstance.rows]);
144
+ var anyRowsExpanded = useMemo(function () {
145
+ return tableInstance.rows.some(function (row) {
146
+ return row.isExpanded;
147
+ });
148
+ }, [tableInstance.rows]);
139
149
  return React.createElement(MaterialReactTableContext.Provider, {
140
150
  value: _extends({}, props, {
141
151
  anyRowsCanExpand: anyRowsCanExpand,
142
152
  anyRowsExpanded: anyRowsExpanded,
143
- currentEditingRow: currentEditingRow,
144
- densePadding: densePadding,
145
153
  setCurrentEditingRow: setCurrentEditingRow,
146
154
  setDensePadding: setDensePadding,
147
- fullScreen: fullScreen,
148
155
  setFullScreen: setFullScreen,
149
156
  setShowFilters: setShowFilters,
150
157
  setShowSearch: setShowSearch,
151
- showFilters: showFilters,
152
- showSearch: showSearch,
153
158
  //@ts-ignore
154
159
  tableInstance: tableInstance
155
160
  })
@@ -400,13 +405,11 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
400
405
  var column = _ref.column;
401
406
 
402
407
  var _useMRT = useMRT(),
403
- densePadding = _useMRT.densePadding,
404
408
  disableColumnActions = _useMRT.disableColumnActions,
405
409
  disableFilters = _useMRT.disableFilters,
406
410
  enableColumnResizing = _useMRT.enableColumnResizing,
407
411
  localization = _useMRT.localization,
408
412
  muiTableHeadCellProps = _useMRT.muiTableHeadCellProps,
409
- showFilters = _useMRT.showFilters,
410
413
  tableInstance = _useMRT.tableInstance;
411
414
 
412
415
  var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
@@ -421,7 +424,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
421
424
  return React.createElement(TableCell, Object.assign({
422
425
  align: isParentHeader ? 'center' : 'left'
423
426
  }, tableCellProps, {
424
- sx: _extends({}, commonTableHeadCellStyles(densePadding, enableColumnResizing), tableCellProps == null ? void 0 : tableCellProps.sx)
427
+ sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding, enableColumnResizing), tableCellProps == null ? void 0 : tableCellProps.sx)
425
428
  }), React.createElement(Box, {
426
429
  sx: {
427
430
  alignContent: 'space-between',
@@ -470,7 +473,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
470
473
  maxHeight: '2rem'
471
474
  }
472
475
  })))), !disableFilters && column.canFilter && React.createElement(Collapse, {
473
- "in": showFilters
476
+ "in": tableInstance.state.showFilters
474
477
  }, React.createElement(MRT_FilterTextField, {
475
478
  column: column
476
479
  }))));
@@ -482,9 +485,9 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
482
485
  var cell = _ref.cell;
483
486
 
484
487
  var _useMRT = useMRT(),
485
- currentEditingRow = _useMRT.currentEditingRow,
486
488
  muiTableBodyCellEditTextFieldProps = _useMRT.muiTableBodyCellEditTextFieldProps,
487
- setCurrentEditingRow = _useMRT.setCurrentEditingRow;
489
+ setCurrentEditingRow = _useMRT.setCurrentEditingRow,
490
+ currentEditingRow = _useMRT.tableInstance.state.currentEditingRow;
488
491
 
489
492
  var handleChange = function handleChange(event) {
490
493
  if (currentEditingRow) {
@@ -540,8 +543,9 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
540
543
  var _useMRT = useMRT(),
541
544
  onCellClick = _useMRT.onCellClick,
542
545
  muiTableBodyCellProps = _useMRT.muiTableBodyCellProps,
543
- densePadding = _useMRT.densePadding,
544
- currentEditingRow = _useMRT.currentEditingRow;
546
+ _useMRT$tableInstance = _useMRT.tableInstance.state,
547
+ currentEditingRow = _useMRT$tableInstance.currentEditingRow,
548
+ densePadding = _useMRT$tableInstance.densePadding;
545
549
 
546
550
  var mTableCellBodyProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps(cell) : muiTableBodyCellProps;
547
551
  var mcTableCellBodyProps = cell.column.muiTableBodyCellProps instanceof Function ? cell.column.muiTableBodyCellProps(cell) : cell.column.muiTableBodyCellProps;
@@ -566,7 +570,6 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
566
570
  selectAll = _ref.selectAll;
567
571
 
568
572
  var _useMRT = useMRT(),
569
- densePadding = _useMRT.densePadding,
570
573
  localization = _useMRT.localization,
571
574
  onRowSelectChange = _useMRT.onRowSelectChange,
572
575
  onSelectAllChange = _useMRT.onSelectAllChange,
@@ -588,7 +591,7 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
588
591
 
589
592
  var checkboxProps = selectAll ? tableInstance.getToggleAllRowsSelectedProps() : row == null ? void 0 : row.getToggleRowSelectedProps();
590
593
  return React.createElement(TableCell, {
591
- sx: commonTableBodyButtonCellStyles(densePadding)
594
+ sx: commonTableBodyButtonCellStyles(tableInstance.state.densePadding)
592
595
  }, React.createElement(Tooltip, {
593
596
  arrow: true,
594
597
  enterDelay: 1000,
@@ -606,16 +609,15 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
606
609
 
607
610
  var MRT_ExpandAllButton = function MRT_ExpandAllButton() {
608
611
  var _useMRT = useMRT(),
609
- tableInstance = _useMRT.tableInstance,
610
- localization = _useMRT.localization,
611
612
  anyRowsExpanded = _useMRT.anyRowsExpanded,
612
- densePadding = _useMRT.densePadding,
613
- DoubleArrowDownIcon = _useMRT.icons.DoubleArrowDownIcon;
613
+ DoubleArrowDownIcon = _useMRT.icons.DoubleArrowDownIcon,
614
+ localization = _useMRT.localization,
615
+ tableInstance = _useMRT.tableInstance;
614
616
 
615
617
  return React.createElement(TableCell, Object.assign({
616
618
  size: "small"
617
619
  }, tableInstance.getToggleAllRowsExpandedProps(), {
618
- sx: commonTableBodyButtonCellStyles(densePadding)
620
+ sx: commonTableBodyButtonCellStyles(tableInstance.state.densePadding)
619
621
  }), React.createElement(IconButton, {
620
622
  "aria-label": localization.expandAllButtonTitle,
621
623
  title: localization.expandAllButtonTitle
@@ -648,8 +650,8 @@ var MRT_TableSpacerCell = function MRT_TableSpacerCell(_ref) {
648
650
 
649
651
  var MRT_TableHeadCellActions = function MRT_TableHeadCellActions() {
650
652
  var _useMRT = useMRT(),
651
- densePadding = _useMRT.densePadding,
652
- localization = _useMRT.localization;
653
+ localization = _useMRT.localization,
654
+ densePadding = _useMRT.tableInstance.state.densePadding;
653
655
 
654
656
  return React.createElement(TableCell, {
655
657
  style: {
@@ -666,7 +668,6 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
666
668
 
667
669
  var _useMRT = useMRT(),
668
670
  anyRowsCanExpand = _useMRT.anyRowsCanExpand,
669
- densePadding = _useMRT.densePadding,
670
671
  disableExpandAll = _useMRT.disableExpandAll,
671
672
  enableRowActions = _useMRT.enableRowActions,
672
673
  enableRowEditing = _useMRT.enableRowEditing,
@@ -691,7 +692,7 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
691
692
  });
692
693
 
693
694
  return React.createElement(TableRow, Object.assign({}, tableRowProps), enableRowNumbers && (isParentHeader ? React.createElement(MRT_TableSpacerCell, null) : React.createElement(TableCell, {
694
- sx: _extends({}, commonTableHeadCellStyles(densePadding))
695
+ sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding))
695
696
  }, "#")), (enableRowActions || enableRowEditing) && positionActionsColumn === 'first' && (isParentHeader ? React.createElement(MRT_TableSpacerCell, null) : React.createElement(MRT_TableHeadCellActions, null)), anyRowsCanExpand || renderDetailPanel ? !disableExpandAll && !isParentHeader ? React.createElement(MRT_ExpandAllButton, null) : React.createElement(MRT_TableSpacerCell, {
696
697
  width: (renderDetailPanel ? 2 : tableInstance.expandedDepth + 0.5) + "rem"
697
698
  }) : null, enableSelection ? !isParentHeader ? React.createElement(MRT_SelectCheckbox, {
@@ -753,10 +754,10 @@ var MRT_ExpandButton = function MRT_ExpandButton(_ref) {
753
754
  var row = _ref.row;
754
755
 
755
756
  var _useMRT = useMRT(),
756
- densePadding = _useMRT.densePadding,
757
757
  ExpandMoreIcon = _useMRT.icons.ExpandMoreIcon,
758
758
  localization = _useMRT.localization,
759
- renderDetailPanel = _useMRT.renderDetailPanel;
759
+ renderDetailPanel = _useMRT.renderDetailPanel,
760
+ densePadding = _useMRT.tableInstance.state.densePadding;
760
761
 
761
762
  return React.createElement(TableCell, {
762
763
  size: "small",
@@ -1576,9 +1577,9 @@ var MRT_EditActionButtons = function MRT_EditActionButtons(_ref) {
1576
1577
  CancelIcon = _useMRT$icons.CancelIcon,
1577
1578
  SaveIcon = _useMRT$icons.SaveIcon,
1578
1579
  localization = _useMRT.localization,
1579
- setCurrentEditingRow = _useMRT.setCurrentEditingRow,
1580
1580
  onRowEditSubmit = _useMRT.onRowEditSubmit,
1581
- currentEditingRow = _useMRT.currentEditingRow;
1581
+ setCurrentEditingRow = _useMRT.setCurrentEditingRow,
1582
+ currentEditingRow = _useMRT.tableInstance.state.currentEditingRow;
1582
1583
 
1583
1584
  var handleCancel = function handleCancel() {
1584
1585
  row.values = row.original;
@@ -1642,11 +1643,11 @@ var commonIconButtonStyles = {
1642
1643
  }
1643
1644
  };
1644
1645
  var MRT_ToggleRowActionMenuButton = function MRT_ToggleRowActionMenuButton(_ref) {
1646
+ var _tableInstance$state$;
1647
+
1645
1648
  var row = _ref.row;
1646
1649
 
1647
1650
  var _useMRT = useMRT(),
1648
- currentEditingRow = _useMRT.currentEditingRow,
1649
- densePadding = _useMRT.densePadding,
1650
1651
  enableRowEditing = _useMRT.enableRowEditing,
1651
1652
  _useMRT$icons = _useMRT.icons,
1652
1653
  EditIcon = _useMRT$icons.EditIcon,
@@ -1673,8 +1674,8 @@ var MRT_ToggleRowActionMenuButton = function MRT_ToggleRowActionMenuButton(_ref)
1673
1674
  };
1674
1675
 
1675
1676
  return React.createElement(TableCell, {
1676
- sx: commonTableBodyButtonCellStyles(densePadding)
1677
- }, renderRowActions ? React.createElement(React.Fragment, null, renderRowActions(row, tableInstance)) : row.id === (currentEditingRow == null ? void 0 : currentEditingRow.id) ? React.createElement(MRT_EditActionButtons, {
1677
+ sx: commonTableBodyButtonCellStyles(tableInstance.state.densePadding)
1678
+ }, renderRowActions ? React.createElement(React.Fragment, null, renderRowActions(row, tableInstance)) : row.id === ((_tableInstance$state$ = tableInstance.state.currentEditingRow) == null ? void 0 : _tableInstance$state$.id) ? React.createElement(MRT_EditActionButtons, {
1678
1679
  row: row
1679
1680
  }) : !renderRowActionMenuItems && enableRowEditing ? React.createElement(Tooltip, {
1680
1681
  placement: "right",
@@ -1683,13 +1684,17 @@ var MRT_ToggleRowActionMenuButton = function MRT_ToggleRowActionMenuButton(_ref)
1683
1684
  }, React.createElement(IconButton, {
1684
1685
  sx: commonIconButtonStyles,
1685
1686
  onClick: handleEdit
1686
- }, React.createElement(EditIcon, null))) : renderRowActionMenuItems ? React.createElement(React.Fragment, null, React.createElement(IconButton, {
1687
+ }, React.createElement(EditIcon, null))) : renderRowActionMenuItems ? React.createElement(React.Fragment, null, React.createElement(Tooltip, {
1688
+ arrow: true,
1689
+ enterDelay: 1000,
1690
+ enterNextDelay: 1000,
1691
+ title: localization.rowActionMenuButtonTitle
1692
+ }, React.createElement(IconButton, {
1687
1693
  "aria-label": localization.rowActionMenuButtonTitle,
1688
1694
  onClick: handleOpenRowActionMenu,
1689
1695
  size: "small",
1690
- sx: commonIconButtonStyles,
1691
- title: localization.rowActionMenuButtonTitle
1692
- }, React.createElement(MoreHorizIcon, null)), React.createElement(MRT_RowActionMenu, {
1696
+ sx: commonIconButtonStyles
1697
+ }, React.createElement(MoreHorizIcon, null))), React.createElement(MRT_RowActionMenu, {
1693
1698
  anchorEl: anchorEl,
1694
1699
  handleEdit: handleEdit,
1695
1700
  row: row,
@@ -1702,7 +1707,6 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
1702
1707
 
1703
1708
  var _useMRT = useMRT(),
1704
1709
  anyRowsCanExpand = _useMRT.anyRowsCanExpand,
1705
- densePadding = _useMRT.densePadding,
1706
1710
  enableRowActions = _useMRT.enableRowActions,
1707
1711
  enableRowEditing = _useMRT.enableRowEditing,
1708
1712
  enableRowNumbers = _useMRT.enableRowNumbers,
@@ -1710,7 +1714,8 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
1710
1714
  muiTableBodyRowProps = _useMRT.muiTableBodyRowProps,
1711
1715
  onRowClick = _useMRT.onRowClick,
1712
1716
  positionActionsColumn = _useMRT.positionActionsColumn,
1713
- renderDetailPanel = _useMRT.renderDetailPanel;
1717
+ renderDetailPanel = _useMRT.renderDetailPanel,
1718
+ densePadding = _useMRT.tableInstance.state.densePadding;
1714
1719
 
1715
1720
  var mTableBodyRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps(row) : muiTableBodyRowProps;
1716
1721
 
@@ -1724,7 +1729,6 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
1724
1729
  return onRowClick == null ? void 0 : onRowClick(event, row);
1725
1730
  }
1726
1731
  }, tableRowProps, {
1727
- //@ts-ignore
1728
1732
  sx: function sx(theme) {
1729
1733
  return _extends({
1730
1734
  backgroundColor: row.isSelected ? alpha(theme.palette.primary.light, 0.1) : 'transparent'
@@ -1757,9 +1761,10 @@ var MRT_TableBody = function MRT_TableBody() {
1757
1761
  manualPagination = _useMRT.manualPagination;
1758
1762
 
1759
1763
  var rows = manualPagination ? tableInstance.rows : tableInstance.page;
1764
+ var mTableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps(tableInstance) : muiTableBodyProps;
1760
1765
 
1761
- var tableBodyProps = _extends({}, muiTableBodyProps, tableInstance.getTableBodyProps(), {
1762
- style: _extends({}, tableInstance.getTableBodyProps().style, muiTableBodyProps == null ? void 0 : muiTableBodyProps.style)
1766
+ var tableBodyProps = _extends({}, mTableBodyProps, tableInstance.getTableBodyProps(), {
1767
+ style: _extends({}, tableInstance.getTableBodyProps().style, mTableBodyProps == null ? void 0 : mTableBodyProps.style)
1763
1768
  });
1764
1769
 
1765
1770
  return React.createElement(TableBody, Object.assign({}, tableBodyProps, {
@@ -1782,8 +1787,8 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
1782
1787
 
1783
1788
  var _useMRT = useMRT(),
1784
1789
  muiTableFooterCellProps = _useMRT.muiTableFooterCellProps,
1785
- densePadding = _useMRT.densePadding,
1786
- enableColumnResizing = _useMRT.enableColumnResizing;
1790
+ enableColumnResizing = _useMRT.enableColumnResizing,
1791
+ densePadding = _useMRT.tableInstance.state.densePadding;
1787
1792
 
1788
1793
  var isParentHeader = ((_column$columns$lengt = column == null ? void 0 : (_column$columns = column.columns) == null ? void 0 : _column$columns.length) != null ? _column$columns$lengt : 0) > 0;
1789
1794
  var mTableFooterCellProps = muiTableFooterCellProps instanceof Function ? muiTableFooterCellProps(column) : muiTableFooterCellProps;
@@ -1848,7 +1853,8 @@ var MRT_TableFooter = function MRT_TableFooter() {
1848
1853
  muiTableFooterProps = _useMRT.muiTableFooterProps,
1849
1854
  tableInstance = _useMRT.tableInstance;
1850
1855
 
1851
- return React.createElement(TableFooter, Object.assign({}, muiTableFooterProps), tableInstance.footerGroups.map(function (footerGroup) {
1856
+ var tableFooterProps = muiTableFooterProps instanceof Function ? muiTableFooterProps(tableInstance) : muiTableFooterProps;
1857
+ return React.createElement(TableFooter, Object.assign({}, tableFooterProps), tableInstance.footerGroups.map(function (footerGroup) {
1852
1858
  return React.createElement(MRT_TableFooterRow, {
1853
1859
  key: footerGroup.getFooterGroupProps().key,
1854
1860
  footerGroup: footerGroup
@@ -1863,8 +1869,10 @@ var MRT_Table = function MRT_Table() {
1863
1869
  hideTableHead = _useMRT.hideTableHead,
1864
1870
  hideTableFooter = _useMRT.hideTableFooter;
1865
1871
 
1866
- var tableProps = _extends({}, muiTableProps, tableInstance.getTableProps(), {
1867
- style: _extends({}, tableInstance.getTableProps().style, muiTableProps == null ? void 0 : muiTableProps.style)
1872
+ var mTableProps = muiTableProps instanceof Function ? muiTableProps(tableInstance) : muiTableProps;
1873
+
1874
+ var tableProps = _extends({}, mTableProps, tableInstance.getTableProps(), {
1875
+ style: _extends({}, tableInstance.getTableProps().style, mTableProps == null ? void 0 : mTableProps.style)
1868
1876
  });
1869
1877
 
1870
1878
  return React.createElement(Table, Object.assign({}, tableProps), !hideTableHead && React.createElement(MRT_TableHead, null), React.createElement(MRT_TableBody, null), !hideTableFooter && React.createElement(MRT_TableFooter, null));
@@ -1875,7 +1883,6 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1875
1883
  _useMRT$icons = _useMRT.icons,
1876
1884
  SearchIcon = _useMRT$icons.SearchIcon,
1877
1885
  CloseIcon = _useMRT$icons.CloseIcon,
1878
- showSearch = _useMRT.showSearch,
1879
1886
  localization = _useMRT.localization,
1880
1887
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
1881
1888
  onGlobalFilterChange = _useMRT.onGlobalFilterChange,
@@ -1898,7 +1905,7 @@ var MRT_SearchTextField = function MRT_SearchTextField() {
1898
1905
  };
1899
1906
 
1900
1907
  return React.createElement(Collapse, {
1901
- "in": showSearch,
1908
+ "in": tableInstance.state.showSearch,
1902
1909
  orientation: "horizontal"
1903
1910
  }, React.createElement(TextField, Object.assign({
1904
1911
  id: "global-search-text-field",
@@ -1938,12 +1945,12 @@ var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
1938
1945
  var rest = _extends({}, _ref);
1939
1946
 
1940
1947
  var _useMRT = useMRT(),
1941
- fullScreen = _useMRT.fullScreen,
1942
1948
  _useMRT$icons = _useMRT.icons,
1943
1949
  FullscreenExitIcon = _useMRT$icons.FullscreenExitIcon,
1944
1950
  FullscreenIcon = _useMRT$icons.FullscreenIcon,
1945
1951
  localization = _useMRT.localization,
1946
- setFullScreen = _useMRT.setFullScreen;
1952
+ setFullScreen = _useMRT.setFullScreen,
1953
+ fullScreen = _useMRT.tableInstance.state.fullScreen;
1947
1954
 
1948
1955
  return React.createElement(Tooltip, {
1949
1956
  arrow: true,
@@ -2055,12 +2062,12 @@ var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton(_ref) {
2055
2062
  var rest = _extends({}, _ref);
2056
2063
 
2057
2064
  var _useMRT = useMRT(),
2058
- densePadding = _useMRT.densePadding,
2059
2065
  setDensePadding = _useMRT.setDensePadding,
2060
2066
  localization = _useMRT.localization,
2061
2067
  _useMRT$icons = _useMRT.icons,
2062
2068
  DensityMediumIcon = _useMRT$icons.DensityMediumIcon,
2063
- DensitySmallIcon = _useMRT$icons.DensitySmallIcon;
2069
+ DensitySmallIcon = _useMRT$icons.DensitySmallIcon,
2070
+ densePadding = _useMRT.tableInstance.state.densePadding;
2064
2071
 
2065
2072
  return React.createElement(Tooltip, {
2066
2073
  arrow: true,
@@ -2078,12 +2085,12 @@ var MRT_ToggleFiltersButton = function MRT_ToggleFiltersButton(_ref) {
2078
2085
  var rest = _extends({}, _ref);
2079
2086
 
2080
2087
  var _useMRT = useMRT(),
2081
- localization = _useMRT.localization,
2082
- setShowFilters = _useMRT.setShowFilters,
2083
- showFilters = _useMRT.showFilters,
2084
2088
  _useMRT$icons = _useMRT.icons,
2085
2089
  FilterListIcon = _useMRT$icons.FilterListIcon,
2086
- FilterListOffIcon = _useMRT$icons.FilterListOffIcon;
2090
+ FilterListOffIcon = _useMRT$icons.FilterListOffIcon,
2091
+ localization = _useMRT.localization,
2092
+ setShowFilters = _useMRT.setShowFilters,
2093
+ showFilters = _useMRT.tableInstance.state.showFilters;
2087
2094
 
2088
2095
  return React.createElement(Tooltip, {
2089
2096
  arrow: true,
@@ -2107,7 +2114,7 @@ var MRT_ToggleSearchButton = function MRT_ToggleSearchButton(_ref) {
2107
2114
  localization = _useMRT.localization,
2108
2115
  muiSearchTextFieldProps = _useMRT.muiSearchTextFieldProps,
2109
2116
  setShowSearch = _useMRT.setShowSearch,
2110
- showSearch = _useMRT.showSearch;
2117
+ showSearch = _useMRT.tableInstance.state.showSearch;
2111
2118
 
2112
2119
  var handleToggleSearch = function handleToggleSearch() {
2113
2120
  setShowSearch(!showSearch);
@@ -2259,7 +2266,6 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
2259
2266
  muiTableToolbarTopProps = _useMRT.muiTableToolbarTopProps,
2260
2267
  positionPagination = _useMRT.positionPagination,
2261
2268
  positionToolbarActions = _useMRT.positionToolbarActions,
2262
- fullScreen = _useMRT.fullScreen,
2263
2269
  positionToolbarAlertBanner = _useMRT.positionToolbarAlertBanner,
2264
2270
  renderToolbarCustomActions = _useMRT.renderToolbarCustomActions,
2265
2271
  tableInstance = _useMRT.tableInstance;
@@ -2274,8 +2280,8 @@ var MRT_ToolbarTop = function MRT_ToolbarTop() {
2274
2280
  backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
2275
2281
  display: 'grid',
2276
2282
  p: '0 !important',
2277
- position: fullScreen ? 'sticky' : undefined,
2278
- top: fullScreen ? '0' : undefined,
2283
+ position: tableInstance.state.fullScreen ? 'sticky' : undefined,
2284
+ top: tableInstance.state.fullScreen ? '0' : undefined,
2279
2285
  width: '100%',
2280
2286
  zIndex: 1
2281
2287
  }, toolbarProps == null ? void 0 : toolbarProps.sx);
@@ -2302,7 +2308,6 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
2302
2308
  manualPagination = _useMRT.manualPagination,
2303
2309
  muiTableToolbarBottomProps = _useMRT.muiTableToolbarBottomProps,
2304
2310
  positionPagination = _useMRT.positionPagination,
2305
- fullScreen = _useMRT.fullScreen,
2306
2311
  positionToolbarActions = _useMRT.positionToolbarActions,
2307
2312
  positionToolbarAlertBanner = _useMRT.positionToolbarAlertBanner,
2308
2313
  tableInstance = _useMRT.tableInstance;
@@ -2315,12 +2320,12 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
2315
2320
  return _extends({
2316
2321
  backgroundColor: theme.palette.background["default"],
2317
2322
  backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
2318
- bottom: fullScreen ? '0' : undefined,
2323
+ bottom: tableInstance.state.fullScreen ? '0' : undefined,
2319
2324
  display: 'flex',
2320
2325
  justifyContent: 'space-between',
2321
2326
  overflowY: 'hidden',
2322
2327
  p: '0 0.5rem !important',
2323
- position: fullScreen ? 'fixed' : undefined,
2328
+ position: tableInstance.state.fullScreen ? 'fixed' : undefined,
2324
2329
  width: 'calc(100% - 1rem)',
2325
2330
  zIndex: 1
2326
2331
  }, toolbarProps == null ? void 0 : toolbarProps.sx);
@@ -2330,7 +2335,6 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom() {
2330
2335
 
2331
2336
  var MRT_TableContainer = function MRT_TableContainer() {
2332
2337
  var _useMRT = useMRT(),
2333
- fullScreen = _useMRT.fullScreen,
2334
2338
  hideToolbarBottom = _useMRT.hideToolbarBottom,
2335
2339
  hideToolbarTop = _useMRT.hideToolbarTop,
2336
2340
  isFetching = _useMRT.isFetching,
@@ -2338,6 +2342,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2338
2342
  muiTableContainerProps = _useMRT.muiTableContainerProps,
2339
2343
  tableInstance = _useMRT.tableInstance;
2340
2344
 
2345
+ var fullScreen = tableInstance.state.fullScreen;
2341
2346
  var originalBodyOverflowStyle = useRef();
2342
2347
  useEffect(function () {
2343
2348
  if (typeof window !== 'undefined') {
@@ -2350,8 +2355,10 @@ var MRT_TableContainer = function MRT_TableContainer() {
2350
2355
  if (typeof window !== 'undefined') {
2351
2356
  if (fullScreen) {
2352
2357
  document.body.style.overflow = 'hidden';
2353
- } else if (originalBodyOverflowStyle.current) {
2354
- document.body.style.overflow = originalBodyOverflowStyle.current;
2358
+ } else {
2359
+ var _originalBodyOverflow;
2360
+
2361
+ document.body.style.overflow = (_originalBodyOverflow = originalBodyOverflowStyle.current) != null ? _originalBodyOverflow : 'auto';
2355
2362
  }
2356
2363
  }
2357
2364
  }, [fullScreen]);
@@ -2374,7 +2381,12 @@ var MRT_TableContainer = function MRT_TableContainer() {
2374
2381
  }), !hideToolbarTop && React.createElement(MRT_ToolbarTop, null), React.createElement(Collapse, {
2375
2382
  "in": isFetching || isLoading,
2376
2383
  unmountOnExit: true
2377
- }, React.createElement(LinearProgress, null)), React.createElement(MRT_Table, null), !hideToolbarBottom && React.createElement(MRT_ToolbarBottom, null));
2384
+ }, React.createElement(LinearProgress, null)), React.createElement(Box, {
2385
+ sx: {
2386
+ maxWidth: '100%',
2387
+ overflowX: 'auto'
2388
+ }
2389
+ }, React.createElement(MRT_Table, null)), !hideToolbarBottom && React.createElement(MRT_ToolbarBottom, null));
2378
2390
  };
2379
2391
 
2380
2392
  var MRT_DefaultLocalization_EN = {