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

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.
@@ -28,7 +28,7 @@ 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
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';
31
+ import { Tooltip, IconButton, Menu, MenuItem, Box, FormControlLabel, Switch, Button, Divider, ListItemIcon, Checkbox, debounce, Collapse, TextField, InputAdornment, TablePagination, Chip, Alert, LinearProgress, useMediaQuery, Toolbar, lighten, alpha, TableCell, TableSortLabel, TableRow, TableHead, darken, Skeleton, TableBody, TableFooter, Table, TableContainer, Paper, Dialog, Grow } from '@mui/material';
32
32
  import { rankItem, rankings } from '@tanstack/match-sorter-utils';
33
33
 
34
34
  function _extends() {
@@ -164,10 +164,12 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
164
164
  var tableInstance = _ref.tableInstance;
165
165
  var getIsAllRowsExpanded = tableInstance.getIsAllRowsExpanded,
166
166
  getIsSomeRowsExpanded = tableInstance.getIsSomeRowsExpanded,
167
+ getCanSomeRowsExpand = tableInstance.getCanSomeRowsExpand,
167
168
  getState = tableInstance.getState,
168
169
  _tableInstance$option = tableInstance.options,
169
170
  DoubleArrowDownIcon = _tableInstance$option.icons.DoubleArrowDownIcon,
170
171
  localization = _tableInstance$option.localization,
172
+ renderDetailPanel = _tableInstance$option.renderDetailPanel,
171
173
  toggleAllRowsExpanded = tableInstance.toggleAllRowsExpanded;
172
174
 
173
175
  var _getState = getState(),
@@ -180,6 +182,7 @@ var MRT_ExpandAllButton = function MRT_ExpandAllButton(_ref) {
180
182
  title: localization.expandAll
181
183
  }, React.createElement(IconButton, {
182
184
  "aria-label": localization.expandAll,
185
+ disabled: !getCanSomeRowsExpand() && !renderDetailPanel,
183
186
  onClick: function onClick() {
184
187
  return toggleAllRowsExpanded(!getIsAllRowsExpanded());
185
188
  },
@@ -1208,101 +1211,6 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1208
1211
  })));
1209
1212
  };
1210
1213
 
1211
- var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1212
- var tableInstance = _ref.tableInstance;
1213
- var getState = tableInstance.getState,
1214
- setGlobalFilter = tableInstance.setGlobalFilter,
1215
- _tableInstance$option = tableInstance.options,
1216
- _tableInstance$option2 = _tableInstance$option.icons,
1217
- SearchIcon = _tableInstance$option2.SearchIcon,
1218
- CloseIcon = _tableInstance$option2.CloseIcon,
1219
- idPrefix = _tableInstance$option.idPrefix,
1220
- localization = _tableInstance$option.localization,
1221
- muiSearchTextFieldProps = _tableInstance$option.muiSearchTextFieldProps,
1222
- onGlobalSearchFilterChange = _tableInstance$option.onGlobalSearchFilterChange;
1223
-
1224
- var _getState = getState(),
1225
- globalFilter = _getState.globalFilter,
1226
- showGlobalFilter = _getState.showGlobalFilter;
1227
-
1228
- var _useState = useState(null),
1229
- anchorEl = _useState[0],
1230
- setAnchorEl = _useState[1];
1231
-
1232
- var _useState2 = useState(globalFilter != null ? globalFilter : ''),
1233
- searchValue = _useState2[0],
1234
- setSearchValue = _useState2[1];
1235
-
1236
- var handleChange = useCallback(debounce(function (event) {
1237
- var _event$target$value;
1238
-
1239
- setGlobalFilter((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
1240
- onGlobalSearchFilterChange == null ? void 0 : onGlobalSearchFilterChange({
1241
- event: event,
1242
- tableInstance: tableInstance
1243
- });
1244
- }, 200), []);
1245
-
1246
- var handleGlobalFilterMenuOpen = function handleGlobalFilterMenuOpen(event) {
1247
- setAnchorEl(event.currentTarget);
1248
- };
1249
-
1250
- var handleClear = function handleClear() {
1251
- setSearchValue('');
1252
- setGlobalFilter(undefined);
1253
- };
1254
-
1255
- var textFieldProps = muiSearchTextFieldProps instanceof Function ? muiSearchTextFieldProps({
1256
- tableInstance: tableInstance
1257
- }) : muiSearchTextFieldProps;
1258
- return React.createElement(Collapse, {
1259
- "in": showGlobalFilter,
1260
- orientation: "horizontal"
1261
- }, React.createElement(TextField, Object.assign({
1262
- id: "mrt-" + idPrefix + "-search-text-field",
1263
- placeholder: localization.search,
1264
- onChange: function onChange(event) {
1265
- setSearchValue(event.target.value);
1266
- handleChange(event);
1267
- },
1268
- value: searchValue != null ? searchValue : '',
1269
- variant: "standard",
1270
- InputProps: {
1271
- startAdornment: React.createElement(InputAdornment, {
1272
- position: "start"
1273
- }, React.createElement(Tooltip, {
1274
- arrow: true,
1275
- title: localization.changeSearchMode
1276
- }, React.createElement("span", null, React.createElement(IconButton, {
1277
- "aria-label": localization.changeSearchMode,
1278
- onClick: handleGlobalFilterMenuOpen,
1279
- size: "small",
1280
- sx: {
1281
- height: '1.75rem',
1282
- width: '1.75rem'
1283
- }
1284
- }, React.createElement(SearchIcon, null))))),
1285
- endAdornment: React.createElement(InputAdornment, {
1286
- position: "end"
1287
- }, React.createElement(IconButton, {
1288
- "aria-label": localization.clearSearch,
1289
- disabled: (searchValue == null ? void 0 : searchValue.length) === 0,
1290
- onClick: handleClear,
1291
- size: "small",
1292
- title: localization.clearSearch
1293
- }, React.createElement(CloseIcon, null)))
1294
- }
1295
- }, textFieldProps, {
1296
- sx: _extends({
1297
- justifySelf: 'end'
1298
- }, textFieldProps == null ? void 0 : textFieldProps.sx)
1299
- })), React.createElement(MRT_FilterOptionMenu, {
1300
- anchorEl: anchorEl,
1301
- setAnchorEl: setAnchorEl,
1302
- tableInstance: tableInstance
1303
- }));
1304
- };
1305
-
1306
1214
  var _excluded = ["tableInstance"];
1307
1215
  var MRT_FullScreenToggleButton = function MRT_FullScreenToggleButton(_ref) {
1308
1216
  var tableInstance = _ref.tableInstance,
@@ -1483,7 +1391,104 @@ var MRT_ToggleGlobalFilterButton = function MRT_ToggleGlobalFilterButton(_ref) {
1483
1391
  }, rest), showGlobalFilter ? React.createElement(SearchOffIcon, null) : React.createElement(SearchIcon, null)));
1484
1392
  };
1485
1393
 
1394
+ var MRT_SearchTextField = function MRT_SearchTextField(_ref) {
1395
+ var tableInstance = _ref.tableInstance;
1396
+ var getState = tableInstance.getState,
1397
+ setGlobalFilter = tableInstance.setGlobalFilter,
1398
+ _tableInstance$option = tableInstance.options,
1399
+ _tableInstance$option2 = _tableInstance$option.icons,
1400
+ SearchIcon = _tableInstance$option2.SearchIcon,
1401
+ CloseIcon = _tableInstance$option2.CloseIcon,
1402
+ idPrefix = _tableInstance$option.idPrefix,
1403
+ localization = _tableInstance$option.localization,
1404
+ muiSearchTextFieldProps = _tableInstance$option.muiSearchTextFieldProps,
1405
+ onGlobalSearchFilterChange = _tableInstance$option.onGlobalSearchFilterChange;
1406
+
1407
+ var _getState = getState(),
1408
+ globalFilter = _getState.globalFilter,
1409
+ showGlobalFilter = _getState.showGlobalFilter;
1410
+
1411
+ var _useState = useState(null),
1412
+ anchorEl = _useState[0],
1413
+ setAnchorEl = _useState[1];
1414
+
1415
+ var _useState2 = useState(globalFilter != null ? globalFilter : ''),
1416
+ searchValue = _useState2[0],
1417
+ setSearchValue = _useState2[1];
1418
+
1419
+ var handleChange = useCallback(debounce(function (event) {
1420
+ var _event$target$value;
1421
+
1422
+ setGlobalFilter((_event$target$value = event.target.value) != null ? _event$target$value : undefined);
1423
+ onGlobalSearchFilterChange == null ? void 0 : onGlobalSearchFilterChange({
1424
+ event: event,
1425
+ tableInstance: tableInstance
1426
+ });
1427
+ }, 200), []);
1428
+
1429
+ var handleGlobalFilterMenuOpen = function handleGlobalFilterMenuOpen(event) {
1430
+ setAnchorEl(event.currentTarget);
1431
+ };
1432
+
1433
+ var handleClear = function handleClear() {
1434
+ setSearchValue('');
1435
+ setGlobalFilter(undefined);
1436
+ };
1437
+
1438
+ var textFieldProps = muiSearchTextFieldProps instanceof Function ? muiSearchTextFieldProps({
1439
+ tableInstance: tableInstance
1440
+ }) : muiSearchTextFieldProps;
1441
+ return React.createElement(Collapse, {
1442
+ "in": showGlobalFilter,
1443
+ orientation: "horizontal"
1444
+ }, React.createElement(TextField, Object.assign({
1445
+ id: "mrt-" + idPrefix + "-search-text-field",
1446
+ placeholder: localization.search,
1447
+ onChange: function onChange(event) {
1448
+ setSearchValue(event.target.value);
1449
+ handleChange(event);
1450
+ },
1451
+ value: searchValue != null ? searchValue : '',
1452
+ variant: "standard",
1453
+ InputProps: {
1454
+ startAdornment: React.createElement(InputAdornment, {
1455
+ position: "start"
1456
+ }, React.createElement(Tooltip, {
1457
+ arrow: true,
1458
+ title: localization.changeSearchMode
1459
+ }, React.createElement("span", null, React.createElement(IconButton, {
1460
+ "aria-label": localization.changeSearchMode,
1461
+ onClick: handleGlobalFilterMenuOpen,
1462
+ size: "small",
1463
+ sx: {
1464
+ height: '1.75rem',
1465
+ width: '1.75rem'
1466
+ }
1467
+ }, React.createElement(SearchIcon, null))))),
1468
+ endAdornment: React.createElement(InputAdornment, {
1469
+ position: "end"
1470
+ }, React.createElement(IconButton, {
1471
+ "aria-label": localization.clearSearch,
1472
+ disabled: (searchValue == null ? void 0 : searchValue.length) === 0,
1473
+ onClick: handleClear,
1474
+ size: "small",
1475
+ title: localization.clearSearch
1476
+ }, React.createElement(CloseIcon, null)))
1477
+ }
1478
+ }, textFieldProps, {
1479
+ sx: _extends({
1480
+ justifySelf: 'end'
1481
+ }, textFieldProps == null ? void 0 : textFieldProps.sx)
1482
+ })), React.createElement(MRT_FilterOptionMenu, {
1483
+ anchorEl: anchorEl,
1484
+ setAnchorEl: setAnchorEl,
1485
+ tableInstance: tableInstance
1486
+ }));
1487
+ };
1488
+
1486
1489
  var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1490
+ var _renderToolbarInterna;
1491
+
1487
1492
  var tableInstance = _ref.tableInstance;
1488
1493
  var _tableInstance$option = tableInstance.options,
1489
1494
  enableColumnFilters = _tableInstance$option.enableColumnFilters,
@@ -1493,24 +1498,22 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1493
1498
  enableGlobalFilter = _tableInstance$option.enableGlobalFilter,
1494
1499
  enableHiding = _tableInstance$option.enableHiding,
1495
1500
  renderToolbarInternalActions = _tableInstance$option.renderToolbarInternalActions;
1496
-
1497
- if (renderToolbarInternalActions) {
1498
- return React.createElement(React.Fragment, null, renderToolbarInternalActions({
1499
- MRT_FullScreenToggleButton: MRT_FullScreenToggleButton,
1500
- MRT_ShowHideColumnsButton: MRT_ShowHideColumnsButton,
1501
- MRT_ToggleDensePaddingButton: MRT_ToggleDensePaddingButton,
1502
- MRT_ToggleFiltersButton: MRT_ToggleFiltersButton,
1503
- MRT_ToggleGlobalFilterButton: MRT_ToggleGlobalFilterButton,
1504
- tableInstance: tableInstance
1505
- }));
1506
- }
1507
-
1508
1501
  return React.createElement(Box, {
1509
1502
  sx: {
1510
1503
  display: 'flex',
1511
- alignItems: 'center'
1504
+ alignItems: 'center',
1505
+ zIndex: 3
1512
1506
  }
1513
- }, enableFilters && enableGlobalFilter && React.createElement(MRT_ToggleGlobalFilterButton, {
1507
+ }, (_renderToolbarInterna = renderToolbarInternalActions == null ? void 0 : renderToolbarInternalActions({
1508
+ MRT_FullScreenToggleButton: MRT_FullScreenToggleButton,
1509
+ MRT_ShowHideColumnsButton: MRT_ShowHideColumnsButton,
1510
+ MRT_ToggleDensePaddingButton: MRT_ToggleDensePaddingButton,
1511
+ MRT_ToggleFiltersButton: MRT_ToggleFiltersButton,
1512
+ MRT_ToggleGlobalFilterButton: MRT_ToggleGlobalFilterButton,
1513
+ tableInstance: tableInstance
1514
+ })) != null ? _renderToolbarInterna : React.createElement(React.Fragment, null, enableGlobalFilter && React.createElement(MRT_SearchTextField, {
1515
+ tableInstance: tableInstance
1516
+ }), enableFilters && enableGlobalFilter && React.createElement(MRT_ToggleGlobalFilterButton, {
1514
1517
  tableInstance: tableInstance
1515
1518
  }), enableFilters && enableColumnFilters && React.createElement(MRT_ToggleFiltersButton, {
1516
1519
  tableInstance: tableInstance
@@ -1520,7 +1523,7 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
1520
1523
  tableInstance: tableInstance
1521
1524
  }), enableFullScreenToggle && React.createElement(MRT_FullScreenToggleButton, {
1522
1525
  tableInstance: tableInstance
1523
- }));
1526
+ })));
1524
1527
  };
1525
1528
 
1526
1529
  var MRT_TablePagination = function MRT_TablePagination(_ref) {
@@ -1581,44 +1584,36 @@ var MRT_TablePagination = function MRT_TablePagination(_ref) {
1581
1584
  var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1582
1585
  var _localization$selecte, _localization$selecte2;
1583
1586
 
1584
- var tableInstance = _ref.tableInstance;
1587
+ var stackAlertBanner = _ref.stackAlertBanner,
1588
+ tableInstance = _ref.tableInstance;
1585
1589
  var getPrePaginationRowModel = tableInstance.getPrePaginationRowModel,
1586
1590
  getSelectedRowModel = tableInstance.getSelectedRowModel,
1587
1591
  getState = tableInstance.getState,
1588
1592
  _tableInstance$option = tableInstance.options,
1589
1593
  localization = _tableInstance$option.localization,
1590
- muiTableToolbarAlertBannerProps = _tableInstance$option.muiTableToolbarAlertBannerProps,
1591
- positionToolbarActions = _tableInstance$option.positionToolbarActions,
1592
- positionToolbarAlertBanner = _tableInstance$option.positionToolbarAlertBanner,
1593
- renderToolbarCustomActions = _tableInstance$option.renderToolbarCustomActions;
1594
+ muiTableToolbarAlertBannerProps = _tableInstance$option.muiTableToolbarAlertBannerProps;
1594
1595
 
1595
1596
  var _getState = getState(),
1596
1597
  grouping = _getState.grouping;
1597
1598
 
1598
- var isMobile = useMediaQuery('(max-width:720px)');
1599
1599
  var alertProps = muiTableToolbarAlertBannerProps instanceof Function ? muiTableToolbarAlertBannerProps({
1600
1600
  tableInstance: tableInstance
1601
1601
  }) : muiTableToolbarAlertBannerProps;
1602
1602
  var selectMessage = getSelectedRowModel().rows.length > 0 ? (_localization$selecte = localization.selectedCountOfRowCountRowsSelected) == null ? void 0 : (_localization$selecte2 = _localization$selecte.replace('{selectedCount}', getSelectedRowModel().rows.length.toString())) == null ? void 0 : _localization$selecte2.replace('{rowCount}', getPrePaginationRowModel().rows.length.toString()) : null;
1603
1603
  var groupedByMessage = grouping.length > 0 ? React.createElement("span", null, localization.groupedBy, ' ', grouping.map(function (columnId, index) {
1604
- var _tableInstance$getAll;
1605
-
1606
1604
  return React.createElement(Fragment, {
1607
1605
  key: index + "-" + columnId
1608
1606
  }, index > 0 ? localization.thenBy : '', React.createElement(Chip, {
1609
1607
  color: "secondary",
1610
- label: (_tableInstance$getAll = tableInstance.getAllColumns().find(function (column) {
1611
- return column.id === columnId;
1612
- })) == null ? void 0 : _tableInstance$getAll.header,
1608
+ label: tableInstance.getColumn(columnId).columnDef.header,
1613
1609
  onDelete: function onDelete() {
1614
1610
  return tableInstance.getColumn(columnId).toggleGrouping();
1615
1611
  }
1616
1612
  }));
1617
1613
  })) : null;
1618
- var displayAbsolute = !(isMobile || positionToolbarAlertBanner === 'bottom' && positionToolbarActions === 'bottom' || positionToolbarAlertBanner === 'top' && !!renderToolbarCustomActions);
1619
1614
  return React.createElement(Collapse, {
1620
1615
  "in": !!selectMessage || !!groupedByMessage,
1621
- timeout: displayAbsolute ? 0 : 200
1616
+ timeout: stackAlertBanner ? 200 : 0
1622
1617
  }, React.createElement(Alert, Object.assign({
1623
1618
  color: "info",
1624
1619
  icon: false,
@@ -1627,9 +1622,8 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1627
1622
  fontSize: '1rem',
1628
1623
  left: 0,
1629
1624
  p: 0,
1630
- position: displayAbsolute ? 'absolute' : 'relative',
1625
+ position: 'relative',
1631
1626
  right: 0,
1632
- minHeight: '3.5rem',
1633
1627
  top: 0,
1634
1628
  width: '100%',
1635
1629
  zIndex: 2
@@ -1638,7 +1632,7 @@ var MRT_ToolbarAlertBanner = function MRT_ToolbarAlertBanner(_ref) {
1638
1632
  sx: {
1639
1633
  p: '0.5rem 1rem'
1640
1634
  }
1641
- }, selectMessage, React.createElement("br", null), groupedByMessage)));
1635
+ }, selectMessage, selectMessage && groupedByMessage && React.createElement("br", null), groupedByMessage)));
1642
1636
  };
1643
1637
 
1644
1638
  var MRT_LinearProgressBar = function MRT_LinearProgressBar(_ref) {
@@ -1669,6 +1663,8 @@ var commonToolbarStyles = function commonToolbarStyles(_ref) {
1669
1663
  backgroundColor: lighten(theme.palette.background["default"], 0.04),
1670
1664
  backgroundImage: 'none',
1671
1665
  display: 'grid',
1666
+ minHeight: '3.5rem',
1667
+ overflow: 'hidden',
1672
1668
  p: '0 !important',
1673
1669
  transition: 'all 0.2s ease-in-out',
1674
1670
  width: '100%',
@@ -1681,7 +1677,6 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1681
1677
  var tableInstance = _ref2.tableInstance;
1682
1678
  var getState = tableInstance.getState,
1683
1679
  _tableInstance$option = tableInstance.options,
1684
- enableGlobalFilter = _tableInstance$option.enableGlobalFilter,
1685
1680
  enablePagination = _tableInstance$option.enablePagination,
1686
1681
  enableToolbarInternalActions = _tableInstance$option.enableToolbarInternalActions,
1687
1682
  idPrefix = _tableInstance$option.idPrefix,
@@ -1694,9 +1689,11 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1694
1689
  var _getState = getState(),
1695
1690
  isFullScreen = _getState.isFullScreen;
1696
1691
 
1692
+ var isMobile = useMediaQuery('(max-width:720px)');
1697
1693
  var toolbarProps = muiTableToolbarTopProps instanceof Function ? muiTableToolbarTopProps({
1698
1694
  tableInstance: tableInstance
1699
1695
  }) : muiTableToolbarTopProps;
1696
+ var stackAlertBanner = isMobile || positionToolbarAlertBanner === 'top' && !!renderToolbarCustomActions;
1700
1697
  return React.createElement(Toolbar, Object.assign({
1701
1698
  id: "mrt-" + idPrefix + "-toolbar-top",
1702
1699
  variant: "dense"
@@ -1710,27 +1707,23 @@ var MRT_ToolbarTop = function MRT_ToolbarTop(_ref2) {
1710
1707
  }), toolbarProps == null ? void 0 : toolbarProps.sx);
1711
1708
  }
1712
1709
  }), positionToolbarAlertBanner === 'top' && React.createElement(MRT_ToolbarAlertBanner, {
1710
+ stackAlertBanner: stackAlertBanner,
1713
1711
  tableInstance: tableInstance
1714
1712
  }), React.createElement(Box, {
1715
1713
  sx: {
1716
- p: '0.5rem',
1717
1714
  display: 'flex',
1718
- justifyContent: 'space-between'
1715
+ justifyContent: 'space-between',
1716
+ p: '0.5rem',
1717
+ position: stackAlertBanner ? 'relative' : 'absolute',
1718
+ right: 0,
1719
+ top: 0,
1720
+ width: 'calc(100% - 1rem)'
1719
1721
  }
1720
1722
  }, (_renderToolbarCustomA = renderToolbarCustomActions == null ? void 0 : renderToolbarCustomActions({
1721
1723
  tableInstance: tableInstance
1722
- })) != null ? _renderToolbarCustomA : React.createElement("span", null), React.createElement(Box, {
1723
- sx: {
1724
- display: 'flex',
1725
- gap: '0.5rem',
1726
- position: 'relative',
1727
- zIndex: 3
1728
- }
1729
- }, enableGlobalFilter && React.createElement(MRT_SearchTextField, {
1730
- tableInstance: tableInstance
1731
- }), enableToolbarInternalActions && positionToolbarActions === 'top' && React.createElement(MRT_ToolbarInternalButtons, {
1724
+ })) != null ? _renderToolbarCustomA : React.createElement("span", null), enableToolbarInternalActions && positionToolbarActions === 'top' && React.createElement(MRT_ToolbarInternalButtons, {
1732
1725
  tableInstance: tableInstance
1733
- }))), React.createElement("div", null, enablePagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1726
+ })), React.createElement("div", null, enablePagination && ['top', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1734
1727
  tableInstance: tableInstance
1735
1728
  })), React.createElement(MRT_LinearProgressBar, {
1736
1729
  tableInstance: tableInstance
@@ -1747,14 +1740,17 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1747
1740
  muiTableToolbarBottomProps = _tableInstance$option.muiTableToolbarBottomProps,
1748
1741
  positionPagination = _tableInstance$option.positionPagination,
1749
1742
  positionToolbarActions = _tableInstance$option.positionToolbarActions,
1750
- positionToolbarAlertBanner = _tableInstance$option.positionToolbarAlertBanner;
1743
+ positionToolbarAlertBanner = _tableInstance$option.positionToolbarAlertBanner,
1744
+ renderToolbarCustomActions = _tableInstance$option.renderToolbarCustomActions;
1751
1745
 
1752
1746
  var _getState = getState(),
1753
1747
  isFullScreen = _getState.isFullScreen;
1754
1748
 
1749
+ var isMobile = useMediaQuery('(max-width:720px)');
1755
1750
  var toolbarProps = muiTableToolbarBottomProps instanceof Function ? muiTableToolbarBottomProps({
1756
1751
  tableInstance: tableInstance
1757
1752
  }) : muiTableToolbarBottomProps;
1753
+ var stackAlertBanner = isMobile || positionToolbarAlertBanner === 'bottom' && positionToolbarActions === 'bottom' || positionToolbarAlertBanner === 'bottom' && !!renderToolbarCustomActions && positionToolbarActions === 'bottom';
1758
1754
  return React.createElement(Toolbar, Object.assign({
1759
1755
  id: "mrt-" + idPrefix + "-toolbar-bottom",
1760
1756
  variant: "dense"
@@ -1770,17 +1766,20 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
1770
1766
  }
1771
1767
  }), React.createElement(MRT_LinearProgressBar, {
1772
1768
  tableInstance: tableInstance
1769
+ }), positionToolbarAlertBanner === 'bottom' && React.createElement(MRT_ToolbarAlertBanner, {
1770
+ tableInstance: tableInstance
1773
1771
  }), React.createElement(Box, {
1774
1772
  sx: {
1775
1773
  display: 'flex',
1776
1774
  justifyContent: 'space-between',
1777
- width: '100%'
1775
+ width: '100%',
1776
+ position: stackAlertBanner ? 'relative' : 'absolute',
1777
+ right: 0,
1778
+ top: 0
1778
1779
  }
1779
1780
  }, enableToolbarInternalActions && positionToolbarActions === 'bottom' ? React.createElement(MRT_ToolbarInternalButtons, {
1780
1781
  tableInstance: tableInstance
1781
- }) : React.createElement("span", null), positionToolbarAlertBanner === 'bottom' && React.createElement(MRT_ToolbarAlertBanner, {
1782
- tableInstance: tableInstance
1783
- }), enablePagination && ['bottom', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1782
+ }) : React.createElement("span", null), enablePagination && ['bottom', 'both'].includes(positionPagination != null ? positionPagination : '') && React.createElement(MRT_TablePagination, {
1784
1783
  tableInstance: tableInstance
1785
1784
  })));
1786
1785
  };
@@ -2077,7 +2076,7 @@ var MRT_FilterRangeFields = function MRT_FilterRangeFields(_ref) {
2077
2076
  };
2078
2077
 
2079
2078
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2080
- var _getState2, _getState2$currentFil, _column$columnDef$Hea, _column$columnDef, _column$columnDef$hea, _column$columnDef$hea2;
2079
+ var _getState2, _getState2$currentFil, _column$columnDef$Hea, _column$columnDef, _column$minSize, _column$columnDef$hea, _column$columnDef$hea2;
2081
2080
 
2082
2081
  var header = _ref.header,
2083
2082
  tableInstance = _ref.tableInstance;
@@ -2143,8 +2142,6 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2143
2142
  fontWeight: 'bold',
2144
2143
  height: '100%',
2145
2144
  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
2145
  overflow: 'visible',
2149
2146
  p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2150
2147
  pb: column.columnDefType === 'display' ? 0 : undefined,
@@ -2153,9 +2150,13 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2153
2150
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2154
2151
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2155
2152
  verticalAlign: 'text-top',
2156
- width: header.getSize(),
2157
2153
  zIndex: column.getIsResizing() ? 3 : column.getIsPinned() && column.columnDefType !== 'group' ? 2 : 1
2158
2154
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2155
+ },
2156
+ style: {
2157
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
2158
+ minWidth: "max(" + column.getSize() + "px, " + ((_column$minSize = column.minSize) != null ? _column$minSize : 30) + "px)",
2159
+ width: header.getSize()
2159
2160
  }
2160
2161
  }), header.isPlaceholder ? null : column.columnDefType === 'display' ? headerElement : React.createElement(Box, {
2161
2162
  sx: {
@@ -2207,7 +2208,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2207
2208
  }, showFilters && !column.getFilterValue() ? React.createElement(FilterAltOff, null) : React.createElement(FilterAltIcon, null)))), (enableColumnActions || column.enableColumnActions) && column.enableColumnActions !== false && column.columnDefType !== 'group' && React.createElement(MRT_ToggleColumnActionMenuButton, {
2208
2209
  header: header,
2209
2210
  tableInstance: tableInstance
2210
- }), column.getCanResize() && React.createElement(Divider, Object.assign({
2211
+ }), column.getCanResize() && React.createElement(Divider, {
2211
2212
  flexItem: true,
2212
2213
  orientation: "vertical",
2213
2214
  onDoubleClick: function onDoubleClick() {
@@ -2223,7 +2224,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2223
2224
  position: 'absolute',
2224
2225
  right: '1px',
2225
2226
  touchAction: 'none',
2226
- transition: 'all 0.2s ease-in-out',
2227
+ transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',
2227
2228
  userSelect: 'none',
2228
2229
  zIndex: 2000,
2229
2230
  '&:active': {
@@ -2231,15 +2232,13 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2231
2232
  opacity: 1
2232
2233
  }
2233
2234
  };
2234
- }
2235
- }, {
2236
- onMouseDown: header.getResizeHandler,
2237
- onTouchStart: header.getResizeHandler
2238
- }, {
2235
+ },
2236
+ onMouseDown: header.getResizeHandler(),
2237
+ onTouchStart: header.getResizeHandler(),
2239
2238
  style: {
2240
2239
  transform: column.getIsResizing() ? "translateX(" + getState().columnSizingInfo.deltaOffset + "px)" : 'none'
2241
2240
  }
2242
- }))), column.columnDefType === 'data' && column.getCanFilter() && React.createElement(Collapse, {
2241
+ })), column.columnDefType === 'data' && column.getCanFilter() && React.createElement(Collapse, {
2243
2242
  "in": showFilters,
2244
2243
  mountOnEnter: true,
2245
2244
  unmountOnExit: true
@@ -2419,7 +2418,9 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2419
2418
  onClick: function onClick() {
2420
2419
  return handleCopy(cell.getValue());
2421
2420
  },
2422
- size: "small"
2421
+ size: "small",
2422
+ type: "button",
2423
+ variant: "text"
2423
2424
  }, buttonProps, {
2424
2425
  sx: _extends({
2425
2426
  backgroundColor: 'transparent',
@@ -2433,13 +2434,12 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
2433
2434
  minWidth: 'unset',
2434
2435
  textAlign: 'inherit',
2435
2436
  textTransform: 'inherit'
2436
- }, buttonProps == null ? void 0 : buttonProps.sx),
2437
- variant: "text"
2437
+ }, buttonProps == null ? void 0 : buttonProps.sx)
2438
2438
  }), children));
2439
2439
  };
2440
2440
 
2441
2441
  var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2442
- var _cell$column$columnDe, _cell$column$columnDe2, _row$subRows, _cell$column$columnDe3, _cell$column$columnDe4, _row$subRows$length, _row$subRows2;
2442
+ var _column$minSize, _cell$column$columnDe, _cell$column$columnDe2, _row$subRows, _cell$column$columnDe3, _cell$column$columnDe4, _row$subRows$length, _row$subRows2;
2443
2443
 
2444
2444
  var cell = _ref.cell,
2445
2445
  enableHover = _ref.enableHover,
@@ -2523,20 +2523,22 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2523
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
2524
  cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',
2525
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
2526
  p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2529
2527
  pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
2530
2528
  position: column.getIsPinned() ? 'sticky' : 'relative',
2531
2529
  right: column.getIsPinned() === 'right' ? getTotalRight() + "px" : undefined,
2532
2530
  transition: 'all 0.2s ease-in-out',
2533
2531
  whiteSpace: isDensePadding ? 'nowrap' : 'normal',
2534
- width: column.getSize(),
2535
2532
  zIndex: column.getIsPinned() ? 1 : undefined,
2536
2533
  '&:hover': {
2537
2534
  backgroundColor: enableHover ? theme.palette.mode === 'dark' ? lighten(theme.palette.background["default"], 0.13) + " !important" : darken(theme.palette.background["default"], 0.07) + " !important" : undefined
2538
2535
  }
2539
2536
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2537
+ },
2538
+ style: {
2539
+ maxWidth: "min(" + column.getSize() + "px, fit-content)",
2540
+ minWidth: "max(" + column.getSize() + "px, " + ((_column$minSize = column.minSize) != null ? _column$minSize : 30) + "px)",
2541
+ width: column.getSize()
2540
2542
  }
2541
2543
  }), React.createElement(React.Fragment, null, isLoading || showSkeletons ? React.createElement(Skeleton, Object.assign({
2542
2544
  animation: "wave",
@@ -2666,7 +2668,7 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
2666
2668
  };
2667
2669
 
2668
2670
  var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2669
- var _ref2, _column$columnDef$Foo;
2671
+ var _ref2, _ref3, _column$columnDef$Foo;
2670
2672
 
2671
2673
  var footer = _ref.footer,
2672
2674
  tableInstance = _ref.tableInstance;
@@ -2708,10 +2710,10 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2708
2710
  verticalAlign: 'text-top'
2709
2711
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2710
2712
  }
2711
- }), React.createElement(React.Fragment, null, footer.isPlaceholder ? null : (_ref2 = (_column$columnDef$Foo = column.columnDef.Footer == null ? void 0 : column.columnDef.Footer({
2713
+ }), React.createElement(React.Fragment, null, footer.isPlaceholder ? null : (_ref2 = (_ref3 = (_column$columnDef$Foo = column.columnDef.Footer == null ? void 0 : column.columnDef.Footer({
2712
2714
  footer: footer,
2713
2715
  tableInstance: tableInstance
2714
- })) != null ? _column$columnDef$Foo : footer.renderFooter()) != null ? _ref2 : null));
2716
+ })) != null ? _column$columnDef$Foo : column.columnDef.footer) != null ? _ref3 : footer.renderFooter()) != null ? _ref2 : null));
2715
2717
  };
2716
2718
 
2717
2719
  var MRT_TableFooterRow = function MRT_TableFooterRow(_ref) {
@@ -3164,12 +3166,18 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3164
3166
  }));
3165
3167
  };
3166
3168
 
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"];
3169
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "defaultColumn", "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"];
3168
3170
  var MaterialReactTable = (function (_ref) {
3169
3171
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3170
3172
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
3171
3173
  _ref$columnResizeMode = _ref.columnResizeMode,
3172
3174
  columnResizeMode = _ref$columnResizeMode === void 0 ? 'onEnd' : _ref$columnResizeMode,
3175
+ _ref$defaultColumn = _ref.defaultColumn,
3176
+ defaultColumn = _ref$defaultColumn === void 0 ? {
3177
+ minSize: 50,
3178
+ maxSize: 1000,
3179
+ size: 150
3180
+ } : _ref$defaultColumn,
3173
3181
  _ref$editingMode = _ref.editingMode,
3174
3182
  editingMode = _ref$editingMode === void 0 ? 'row' : _ref$editingMode,
3175
3183
  _ref$enableColumnActi = _ref.enableColumnActions,
@@ -3229,6 +3237,7 @@ var MaterialReactTable = (function (_ref) {
3229
3237
  return React.createElement(MRT_TableRoot, Object.assign({
3230
3238
  autoResetExpanded: autoResetExpanded,
3231
3239
  columnResizeMode: columnResizeMode,
3240
+ defaultColumn: defaultColumn,
3232
3241
  editingMode: editingMode,
3233
3242
  enableColumnActions: enableColumnActions,
3234
3243
  enableColumnFilters: enableColumnFilters,