material-react-table 0.6.6 → 0.6.9

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.
@@ -1,5 +1,5 @@
1
1
  import { ChangeEvent, FC, MouseEvent, ReactNode } from 'react';
2
- import { AlertProps, IconButtonProps, LinearProgressProps, SkeletonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
2
+ import { AlertProps, CheckboxProps, IconButtonProps, LinearProgressProps, SkeletonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
3
3
  import { Cell, Column, ColumnInstance, FilterType, ColumnInterface, HeaderGroup, Row, TableInstance, TableOptions, TableState, UseColumnOrderInstanceProps, UseColumnOrderState, UseExpandedInstanceProps, UseExpandedOptions, UseExpandedRowProps, UseExpandedState, UseFiltersColumnOptions, UseFiltersColumnProps, UseFiltersInstanceProps, UseFiltersOptions, UseFiltersState, UseGlobalFiltersColumnOptions, UseGlobalFiltersInstanceProps, UseGlobalFiltersOptions, UseGlobalFiltersState, UseGroupByCellProps, UseGroupByColumnOptions, UseGroupByColumnProps, UseGroupByInstanceProps, UseGroupByOptions, UseGroupByRowProps, UseGroupByState, UsePaginationInstanceProps, UsePaginationOptions, UsePaginationState, UseResizeColumnsColumnOptions, UseResizeColumnsColumnProps, UseResizeColumnsOptions, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectOptions, UseRowSelectRowProps, UseRowSelectState, UseRowStateCellProps, UseRowStateInstanceProps, UseRowStateOptions, UseRowStateRowProps, UseRowStateState, UseSortByColumnOptions, UseSortByColumnProps, UseSortByInstanceProps, UseSortByOptions, UseSortByState, UseTableHeaderGroupProps, UseTableInstanceProps, UseTableOptions } from 'react-table';
4
4
  import { MRT_Localization } from './localization';
5
5
  import { MRT_Icons } from './icons';
@@ -31,9 +31,11 @@ export declare type MRT_ColumnInterface<D extends {} = {}> = ColumnInterface<D>
31
31
  Header?: string;
32
32
  accessor?: string;
33
33
  columns?: MRT_ColumnInterface<D>[];
34
+ disableClickToCopy?: boolean;
35
+ disableColumnActions?: boolean;
36
+ disableColumnHiding?: boolean;
34
37
  disableEditing?: boolean;
35
38
  disableFilters?: boolean;
36
- disableCellCopyButton?: boolean;
37
39
  filter?: MRT_FilterType | string | FilterType<D>;
38
40
  filterSelectOptions?: (string | {
39
41
  text: string;
@@ -44,6 +46,7 @@ export declare type MRT_ColumnInterface<D extends {} = {}> = ColumnInterface<D>
44
46
  muiTableBodyCellProps?: TableCellProps | ((cell: MRT_Cell<D>) => TableCellProps);
45
47
  muiTableFooterCellProps?: TableCellProps | ((column: Column<D>) => TableCellProps);
46
48
  muiTableHeadCellFilterTextFieldProps?: TextFieldProps | ((column: Column<D>) => TextFieldProps);
49
+ muiTableHeadCellColumnActionsButtonProps?: IconButtonProps | ((column: Column<D>) => IconButtonProps);
47
50
  muiTableHeadCellProps?: TableCellProps | ((column: Column<D>) => TableCellProps);
48
51
  onCellEditChange?: (event: ChangeEvent<HTMLInputElement>, cell: MRT_Cell<D>) => void;
49
52
  onFilterChange?: (event: ChangeEvent<HTMLInputElement>, filterValue: any) => void;
@@ -79,7 +82,7 @@ export declare type MaterialReactTableProps<D extends {} = {}> = UseTableOptions
79
82
  disableFullScreenToggle?: boolean;
80
83
  disableSelectAll?: boolean;
81
84
  disableSubRowTree?: boolean;
82
- enableCellCopyButtons?: boolean;
85
+ enableClickToCopy?: boolean;
83
86
  enableColumnGrouping?: boolean;
84
87
  enableColumnResizing?: boolean;
85
88
  enableRowActions?: boolean;
@@ -101,6 +104,7 @@ export declare type MaterialReactTableProps<D extends {} = {}> = UseTableOptions
101
104
  localization?: Partial<MRT_Localization>;
102
105
  muiLinearProgressProps?: LinearProgressProps | ((tableInstance: MRT_TableInstance) => LinearProgressProps);
103
106
  muiSearchTextFieldProps?: TextFieldProps;
107
+ muiSelectCheckboxProps?: CheckboxProps | ((isSelectAll?: boolean, row?: MRT_Row<D>, tableInstance?: MRT_TableInstance<D>) => CheckboxProps);
104
108
  muiTableBodyCellEditTextFieldProps?: TextFieldProps | ((cell?: MRT_Cell<D>) => TextFieldProps);
105
109
  muiTableBodyCellProps?: TableCellProps | ((cell?: MRT_Cell<D>) => TableCellProps);
106
110
  muiTableBodyCellSkeletonProps?: SkeletonProps | ((cell?: MRT_Cell<D>) => SkeletonProps);
@@ -111,6 +115,7 @@ export declare type MaterialReactTableProps<D extends {} = {}> = UseTableOptions
111
115
  muiTableFooterCellProps?: TableCellProps | ((column: Column<D>) => TableCellProps);
112
116
  muiTableFooterProps?: TableFooterProps | ((tableInstance: MRT_TableInstance<D>) => TableFooterProps);
113
117
  muiTableFooterRowProps?: TableRowProps | ((footerGroup: MRT_HeaderGroup<D>) => TableRowProps);
118
+ muiTableHeadCellColumnActionsButtonProps?: IconButtonProps | ((column: Column<D>) => IconButtonProps);
114
119
  muiTableHeadCellFilterTextFieldProps?: TextFieldProps | ((column: Column<D>) => TextFieldProps);
115
120
  muiTableHeadCellProps?: TableCellProps | ((column: Column<D>) => TableCellProps);
116
121
  muiTableHeadProps?: TableHeadProps | ((tableInstance: MRT_TableInstance<D>) => TableHeadProps);
@@ -127,7 +132,7 @@ export declare type MaterialReactTableProps<D extends {} = {}> = UseTableOptions
127
132
  onRowClick?: (event: MouseEvent<HTMLTableRowElement>, row: Row<D>) => void;
128
133
  onRowEditSubmit?: (row: Row<D>) => Promise<void> | void;
129
134
  onRowExpandChange?: (event: MouseEvent<HTMLButtonElement>, row: Row<D>) => void;
130
- onRowSelectChange?: (event: ChangeEvent, row: Row<D>, selectedRows: Row<D>[]) => void;
135
+ onSelectChange?: (event: ChangeEvent, row: Row<D>, selectedRows: Row<D>[]) => void;
131
136
  onSelectAllChange?: (event: ChangeEvent, selectedRows: Row<D>[]) => void;
132
137
  positionActionsColumn?: 'first' | 'last';
133
138
  positionPagination?: 'bottom' | 'top' | 'both';
@@ -1,6 +1,13 @@
1
- import { FC } from 'react';
1
+ import { CSSProperties, FC } from 'react';
2
2
  import type { MRT_HeaderGroup } from '..';
3
- export declare const commonTableHeadCellStyles: (densePadding: boolean, enableColumnResizing?: boolean | undefined) => {
3
+ export declare const commonTableHeadCellStyles: (densePadding: boolean, enableColumnResizing?: boolean | undefined, widths?: {
4
+ maxWidth?: CSSProperties['maxWidth'];
5
+ minWidth?: CSSProperties['minWidth'];
6
+ width?: CSSProperties['width'];
7
+ } | undefined) => {
8
+ maxWidth?: CSSProperties['maxWidth'];
9
+ minWidth?: CSSProperties['minWidth'];
10
+ width?: CSSProperties['width'];
4
11
  fontWeight: string;
5
12
  height: string;
6
13
  p: string;
@@ -528,9 +528,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
528
528
  var mTableHeadCellFilterTextFieldProps = muiTableHeadCellFilterTextFieldProps instanceof Function ? muiTableHeadCellFilterTextFieldProps(column) : muiTableHeadCellFilterTextFieldProps;
529
529
  var mcTableHeadCellFilterTextFieldProps = column.muiTableHeadCellFilterTextFieldProps instanceof Function ? column.muiTableHeadCellFilterTextFieldProps(column) : column.muiTableHeadCellFilterTextFieldProps;
530
530
 
531
- var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps, {
532
- style: _extends({}, mTableHeadCellFilterTextFieldProps == null ? void 0 : mTableHeadCellFilterTextFieldProps.style, mcTableHeadCellFilterTextFieldProps == null ? void 0 : mcTableHeadCellFilterTextFieldProps.style)
533
- });
531
+ var textFieldProps = _extends({}, mTableHeadCellFilterTextFieldProps, mcTableHeadCellFilterTextFieldProps);
534
532
 
535
533
  var _useState2 = React.useState(''),
536
534
  filterValue = _useState2[0],
@@ -733,7 +731,7 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
733
731
  },
734
732
  checked: switchChecked,
735
733
  control: React__default.createElement(material.Switch, null),
736
- disabled: isSubMenu && switchChecked,
734
+ disabled: isSubMenu && switchChecked || column.disableColumnHiding,
737
735
  label: column.Header,
738
736
  onChange: function onChange() {
739
737
  return handleToggleColumnHidden(column);
@@ -756,6 +754,14 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
756
754
  localization = _useMRT.localization,
757
755
  tableInstance = _useMRT.tableInstance;
758
756
 
757
+ var hideAllColumns = function hideAllColumns() {
758
+ findLowestLevelCols(tableInstance.columns).filter(function (col) {
759
+ return !col.disableColumnHiding;
760
+ }).forEach(function (col) {
761
+ return col.toggleHidden(true);
762
+ });
763
+ };
764
+
759
765
  return React__default.createElement(material.Menu, {
760
766
  anchorEl: anchorEl,
761
767
  open: !!anchorEl,
@@ -774,9 +780,7 @@ var MRT_ShowHideColumnsMenu = function MRT_ShowHideColumnsMenu(_ref) {
774
780
  }
775
781
  }, !isSubMenu && React__default.createElement(material.Button, {
776
782
  disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
777
- onClick: function onClick() {
778
- return tableInstance.toggleHideAllColumns(true);
779
- }
783
+ onClick: hideAllColumns
780
784
  }, localization.hideAll), React__default.createElement(material.Button, {
781
785
  disabled: tableInstance.getToggleHideAllColumnsProps().checked,
782
786
  onClick: function onClick() {
@@ -961,6 +965,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
961
965
  }, React__default.createElement(material.Box, {
962
966
  sx: commonListItemStyles
963
967
  }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(DynamicFeedIcon, null)), (_localization = localization[column.isGrouped ? 'ungroupByColumn' : 'groupByColumn']) == null ? void 0 : _localization.replace('{column}', String(column.Header))))], !disableColumnHiding && [React__default.createElement(material.MenuItem, {
968
+ disabled: column.disableColumnHiding,
964
969
  key: 0,
965
970
  onClick: handleHideColumn,
966
971
  sx: commonMenuItemStyles$1
@@ -992,8 +997,9 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
992
997
  var column = _ref.column;
993
998
 
994
999
  var _useMRT = useMRT(),
1000
+ MoreVertIcon = _useMRT.icons.MoreVertIcon,
995
1001
  localization = _useMRT.localization,
996
- MoreVertIcon = _useMRT.icons.MoreVertIcon;
1002
+ muiTableHeadCellColumnActionsButtonProps = _useMRT.muiTableHeadCellColumnActionsButtonProps;
997
1003
 
998
1004
  var _useState = React.useState(null),
999
1005
  anchorEl = _useState[0],
@@ -1005,17 +1011,23 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
1005
1011
  setAnchorEl(event.currentTarget);
1006
1012
  };
1007
1013
 
1014
+ var mTableHeadCellColumnActionsButtonProps = muiTableHeadCellColumnActionsButtonProps instanceof Function ? muiTableHeadCellColumnActionsButtonProps(column) : muiTableHeadCellColumnActionsButtonProps;
1015
+ var mcTableHeadCellColumnActionsButtonProps = column.muiTableHeadCellColumnActionsButtonProps instanceof Function ? column.muiTableHeadCellColumnActionsButtonProps(column) : column.muiTableHeadCellColumnActionsButtonProps;
1016
+
1017
+ var iconButtonProps = _extends({}, mTableHeadCellColumnActionsButtonProps, mcTableHeadCellColumnActionsButtonProps);
1018
+
1008
1019
  return React__default.createElement(React__default.Fragment, null, React__default.createElement(material.Tooltip, {
1009
1020
  arrow: true,
1010
1021
  enterDelay: 1000,
1011
1022
  enterNextDelay: 1000,
1012
1023
  placement: "top",
1013
1024
  title: localization.columnActions
1014
- }, React__default.createElement(material.IconButton, {
1025
+ }, React__default.createElement(material.IconButton, Object.assign({
1015
1026
  "aria-label": localization.columnActions,
1016
1027
  onClick: handleClick,
1017
- size: "small",
1018
- sx: {
1028
+ size: "small"
1029
+ }, iconButtonProps, {
1030
+ sx: _extends({
1019
1031
  height: '2rem',
1020
1032
  mr: '2px',
1021
1033
  mt: '-0.2rem',
@@ -1025,23 +1037,23 @@ var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton
1025
1037
  '&:hover': {
1026
1038
  opacity: 1
1027
1039
  }
1028
- }
1029
- }, React__default.createElement(MoreVertIcon, null))), React__default.createElement(MRT_ColumnActionMenu, {
1040
+ }, iconButtonProps.sx)
1041
+ }), React__default.createElement(MoreVertIcon, null))), React__default.createElement(MRT_ColumnActionMenu, {
1030
1042
  anchorEl: anchorEl,
1031
1043
  column: column,
1032
1044
  setAnchorEl: setAnchorEl
1033
1045
  }));
1034
1046
  };
1035
1047
 
1036
- var commonTableHeadCellStyles = function commonTableHeadCellStyles(densePadding, enableColumnResizing) {
1037
- return {
1048
+ var commonTableHeadCellStyles = function commonTableHeadCellStyles(densePadding, enableColumnResizing, widths) {
1049
+ return _extends({
1038
1050
  fontWeight: 'bold',
1039
1051
  height: '100%',
1040
1052
  p: densePadding ? '0.5rem' : '1rem',
1041
1053
  pt: densePadding ? '0.75rem' : '1.25rem',
1042
1054
  transition: "all " + (enableColumnResizing ? '10ms' : '0.2s') + " ease-in-out",
1043
1055
  verticalAlign: 'text-top'
1044
- };
1056
+ }, widths);
1045
1057
  };
1046
1058
  var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1047
1059
  var _column$columns, _localization$sortByC, _localization$sortByC2;
@@ -1076,7 +1088,11 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1076
1088
  return React__default.createElement(material.TableCell, Object.assign({
1077
1089
  align: isParentHeader ? 'center' : 'left'
1078
1090
  }, tableCellProps, {
1079
- sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding, enableColumnResizing), tableCellProps == null ? void 0 : tableCellProps.sx)
1091
+ sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding, enableColumnResizing, {
1092
+ maxWidth: column.maxWidth,
1093
+ minWidth: column.minWidth,
1094
+ width: column.width
1095
+ }), tableCellProps == null ? void 0 : tableCellProps.sx)
1080
1096
  }), React__default.createElement(material.Box, {
1081
1097
  sx: {
1082
1098
  alignItems: 'flex-start',
@@ -1131,7 +1147,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1131
1147
  display: 'flex',
1132
1148
  flexWrap: 'nowrap'
1133
1149
  }
1134
- }, !disableColumnActions && !isParentHeader && React__default.createElement(MRT_ToggleColumnActionMenuButton, {
1150
+ }, !disableColumnActions && !column.disableColumnActions && !isParentHeader && React__default.createElement(MRT_ToggleColumnActionMenuButton, {
1135
1151
  column: column
1136
1152
  }), enableColumnResizing && !isParentHeader && React__default.createElement(material.Divider, Object.assign({
1137
1153
  flexItem: true,
@@ -1153,8 +1169,6 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
1153
1169
  };
1154
1170
 
1155
1171
  var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
1156
- var _cell$column$muiTable;
1157
-
1158
1172
  var cell = _ref.cell;
1159
1173
 
1160
1174
  var _useMRT = useMRT(),
@@ -1174,9 +1188,7 @@ var MRT_EditCellTextField = function MRT_EditCellTextField(_ref) {
1174
1188
  var mTableBodyCellEditTextFieldProps = muiTableBodyCellEditTextFieldProps instanceof Function ? muiTableBodyCellEditTextFieldProps(cell) : muiTableBodyCellEditTextFieldProps;
1175
1189
  var mcTableBodyCellEditTextFieldProps = cell.column.muiTableBodyCellEditTextFieldProps instanceof Function ? cell.column.muiTableBodyCellEditTextFieldProps(cell) : cell.column.muiTableBodyCellEditTextFieldProps;
1176
1190
 
1177
- var textFieldProps = _extends({}, mTableBodyCellEditTextFieldProps, mcTableBodyCellEditTextFieldProps, {
1178
- style: _extends({}, muiTableBodyCellEditTextFieldProps == null ? void 0 : muiTableBodyCellEditTextFieldProps.style, (_cell$column$muiTable = cell.column.muiTableBodyCellEditTextFieldProps) == null ? void 0 : _cell$column$muiTable.style)
1179
- });
1191
+ var textFieldProps = _extends({}, mTableBodyCellEditTextFieldProps, mcTableBodyCellEditTextFieldProps);
1180
1192
 
1181
1193
  if (!cell.column.disableEditing && cell.column.Edit) {
1182
1194
  return React__default.createElement(React__default.Fragment, null, cell.column.Edit(_extends({}, textFieldProps, {
@@ -1200,9 +1212,6 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
1200
1212
  var cell = _ref.cell;
1201
1213
 
1202
1214
  var _useMRT = useMRT(),
1203
- _useMRT$icons = _useMRT.icons,
1204
- CheckBoxIcon = _useMRT$icons.CheckBoxIcon,
1205
- ContentCopyIcon = _useMRT$icons.ContentCopyIcon,
1206
1215
  localization = _useMRT.localization;
1207
1216
 
1208
1217
  var _useState = React.useState(false),
@@ -1214,32 +1223,34 @@ var MRT_CopyButton = function MRT_CopyButton(_ref) {
1214
1223
  setCopied(true);
1215
1224
  setTimeout(function () {
1216
1225
  return setCopied(false);
1217
- }, 2000);
1226
+ }, 4000);
1218
1227
  };
1219
1228
 
1220
1229
  return React__default.createElement(material.Tooltip, {
1221
1230
  arrow: true,
1231
+ enterDelay: 1000,
1232
+ enterNextDelay: 1000,
1233
+ placement: "top",
1222
1234
  title: copied ? localization.copiedToClipboard : localization.clickToCopy
1223
- }, React__default.createElement(material.IconButton, {
1235
+ }, React__default.createElement(material.Button, {
1224
1236
  "aria-label": localization.clickToCopy,
1225
1237
  onClick: function onClick() {
1226
1238
  return handleCopy(cell.value);
1227
1239
  },
1228
1240
  size: "small",
1229
1241
  sx: {
1230
- opacity: 0.05,
1231
- m: '0 0.5rem',
1232
- transition: 'all 0.2s ease-in-out',
1233
- '&:hover': {
1234
- opacity: 1
1235
- }
1236
- }
1237
- }, copied ? React__default.createElement(CheckBoxIcon, {
1238
- color: "success",
1239
- fontSize: "small"
1240
- }) : React__default.createElement(ContentCopyIcon, {
1241
- fontSize: "small"
1242
- })));
1242
+ backgroundColor: 'transparent',
1243
+ color: 'inherit',
1244
+ letterSpacing: 'inherit',
1245
+ fontFamily: 'inherit',
1246
+ fontSize: 'inherit',
1247
+ m: '-0.25rem',
1248
+ textTransform: 'inherit',
1249
+ textAlign: 'inherit',
1250
+ minWidth: 'unset'
1251
+ },
1252
+ variant: "text"
1253
+ }, cell.render('Cell')));
1243
1254
  };
1244
1255
 
1245
1256
  var commonTableBodyCellStyles = function commonTableBodyCellStyles(densePadding) {
@@ -1260,7 +1271,7 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
1260
1271
  var cell = _ref.cell;
1261
1272
 
1262
1273
  var _useMRT = useMRT(),
1263
- enableCellCopyButtons = _useMRT.enableCellCopyButtons,
1274
+ enableClickToCopy = _useMRT.enableClickToCopy,
1264
1275
  isLoading = _useMRT.isLoading,
1265
1276
  muiTableBodyCellProps = _useMRT.muiTableBodyCellProps,
1266
1277
  muiTableBodyCellSkeletonProps = _useMRT.muiTableBodyCellSkeletonProps,
@@ -1288,13 +1299,9 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
1288
1299
  width: Math.random() * (120 - 60) + 60
1289
1300
  }, muiTableBodyCellSkeletonProps)) : !cell.column.disableEditing && (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React__default.createElement(MRT_EditCellTextField, {
1290
1301
  cell: cell
1291
- }) : cell.isPlaceholder ? null : cell.isAggregated ? cell.render('Aggregated') : cell.isGrouped ? React__default.createElement("span", null, cell.render('Cell'), " (", cell.row.subRows.length, ")") : enableCellCopyButtons && !cell.column.disableCellCopyButton ? React__default.createElement(material.Box, {
1292
- sx: {
1293
- whiteSpace: 'nowrap'
1294
- }
1295
- }, cell.render('Cell'), React__default.createElement(MRT_CopyButton, {
1302
+ }) : cell.isPlaceholder ? null : cell.isAggregated ? cell.render('Aggregated') : cell.isGrouped ? React__default.createElement("span", null, cell.render('Cell'), " (", cell.row.subRows.length, ")") : enableClickToCopy && !cell.column.disableClickToCopy ? React__default.createElement(MRT_CopyButton, {
1296
1303
  cell: cell
1297
- })) : cell.render('Cell'));
1304
+ }) : cell.render('Cell'));
1298
1305
  };
1299
1306
 
1300
1307
  var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
@@ -1303,28 +1310,36 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1303
1310
 
1304
1311
  var _useMRT = useMRT(),
1305
1312
  localization = _useMRT.localization,
1306
- onRowSelectChange = _useMRT.onRowSelectChange,
1313
+ muiSelectCheckboxProps = _useMRT.muiSelectCheckboxProps,
1314
+ onSelectChange = _useMRT.onSelectChange,
1307
1315
  onSelectAllChange = _useMRT.onSelectAllChange,
1308
- tableInstance = _useMRT.tableInstance;
1316
+ tableInstance = _useMRT.tableInstance,
1317
+ densePadding = _useMRT.tableInstance.state.densePadding;
1309
1318
 
1310
- var onSelectChange = function onSelectChange(event) {
1319
+ var handleSelectChange = function handleSelectChange(event) {
1311
1320
  if (selectAll) {
1312
1321
  var _tableInstance$getTog;
1313
1322
 
1314
1323
  tableInstance == null ? void 0 : tableInstance.getToggleAllRowsSelectedProps == null ? void 0 : (_tableInstance$getTog = tableInstance.getToggleAllRowsSelectedProps()) == null ? void 0 : _tableInstance$getTog.onChange == null ? void 0 : _tableInstance$getTog.onChange(event);
1315
- onSelectAllChange == null ? void 0 : onSelectAllChange(event, tableInstance.selectedFlatRows);
1324
+ onSelectAllChange == null ? void 0 : onSelectAllChange(event, event.target.checked ? tableInstance.rows : []);
1316
1325
  } else if (row) {
1317
1326
  var _row$getToggleRowSele;
1318
1327
 
1319
1328
  row == null ? void 0 : (_row$getToggleRowSele = row.getToggleRowSelectedProps()) == null ? void 0 : _row$getToggleRowSele.onChange == null ? void 0 : _row$getToggleRowSele.onChange(event);
1320
- onRowSelectChange == null ? void 0 : onRowSelectChange(event, row, tableInstance.selectedFlatRows);
1329
+ onSelectChange == null ? void 0 : onSelectChange(event, row, event.target.checked ? [].concat(tableInstance.selectedFlatRows, [row]) : tableInstance.selectedFlatRows.filter(function (selectedRow) {
1330
+ return selectedRow.id !== row.id;
1331
+ }));
1321
1332
  }
1322
1333
  };
1323
1334
 
1324
- var checkboxProps = selectAll ? tableInstance.getToggleAllRowsSelectedProps() : row == null ? void 0 : row.getToggleRowSelectedProps();
1325
- return React__default.createElement(material.TableCell, {
1326
- sx: commonTableBodyButtonCellStyles(tableInstance.state.densePadding)
1327
- }, React__default.createElement(material.Tooltip, {
1335
+ var mTableBodyRowSelectCheckboxProps = muiSelectCheckboxProps instanceof Function ? muiSelectCheckboxProps(selectAll, row, tableInstance) : muiSelectCheckboxProps;
1336
+ var rtSelectCheckboxProps = selectAll ? tableInstance.getToggleAllRowsSelectedProps() : row == null ? void 0 : row.getToggleRowSelectedProps();
1337
+
1338
+ var checkboxProps = _extends({}, mTableBodyRowSelectCheckboxProps, rtSelectCheckboxProps, {
1339
+ style: _extends({}, rtSelectCheckboxProps == null ? void 0 : rtSelectCheckboxProps.style, mTableBodyRowSelectCheckboxProps == null ? void 0 : mTableBodyRowSelectCheckboxProps.style)
1340
+ });
1341
+
1342
+ return React__default.createElement(material.Tooltip, {
1328
1343
  arrow: true,
1329
1344
  enterDelay: 1000,
1330
1345
  enterNextDelay: 1000,
@@ -1333,10 +1348,11 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1333
1348
  inputProps: {
1334
1349
  'aria-label': selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1335
1350
  },
1336
- onChange: onSelectChange
1351
+ size: densePadding ? 'small' : 'medium'
1337
1352
  }, checkboxProps, {
1353
+ onChange: handleSelectChange,
1338
1354
  title: undefined
1339
- }))));
1355
+ })));
1340
1356
  };
1341
1357
 
1342
1358
  var MRT_ExpandAllButton = function MRT_ExpandAllButton() {
@@ -1367,12 +1383,7 @@ var MRT_TableSpacerCell = function MRT_TableSpacerCell(_ref) {
1367
1383
  var _useMRT = useMRT(),
1368
1384
  muiTableBodyCellProps = _useMRT.muiTableBodyCellProps;
1369
1385
 
1370
- var mTableBodyCellrops = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps() : muiTableBodyCellProps;
1371
-
1372
- var tableCellProps = _extends({}, mTableBodyCellrops, {
1373
- style: _extends({}, mTableBodyCellrops == null ? void 0 : mTableBodyCellrops.style)
1374
- });
1375
-
1386
+ var tableCellProps = muiTableBodyCellProps instanceof Function ? muiTableBodyCellProps() : muiTableBodyCellProps;
1376
1387
  return React__default.createElement(material.TableCell, Object.assign({}, tableCellProps, {
1377
1388
  sx: _extends({
1378
1389
  width: width
@@ -1390,7 +1401,9 @@ var MRT_TableHeadCellActions = function MRT_TableHeadCellActions() {
1390
1401
  textAlign: 'center'
1391
1402
  },
1392
1403
  sx: _extends({}, commonTableHeadCellStyles(densePadding), {
1393
- textAlign: 'center'
1404
+ textAlign: 'center',
1405
+ maxWidth: '4rem',
1406
+ width: '4rem'
1394
1407
  })
1395
1408
  }, localization.actions);
1396
1409
  };
@@ -1401,6 +1414,7 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
1401
1414
  var _useMRT = useMRT(),
1402
1415
  anyRowsCanExpand = _useMRT.anyRowsCanExpand,
1403
1416
  disableExpandAll = _useMRT.disableExpandAll,
1417
+ disableSelectAll = _useMRT.disableSelectAll,
1404
1418
  enableRowActions = _useMRT.enableRowActions,
1405
1419
  enableRowEditing = _useMRT.enableRowEditing,
1406
1420
  enableRowNumbers = _useMRT.enableRowNumbers,
@@ -1427,9 +1441,14 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
1427
1441
  sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding))
1428
1442
  }, "#")), (enableRowActions || enableRowEditing) && positionActionsColumn === 'first' && (isParentHeader ? React__default.createElement(MRT_TableSpacerCell, null) : React__default.createElement(MRT_TableHeadCellActions, null)), anyRowsCanExpand || renderDetailPanel ? !disableExpandAll && !isParentHeader ? React__default.createElement(MRT_ExpandAllButton, null) : React__default.createElement(MRT_TableSpacerCell, {
1429
1443
  width: (renderDetailPanel ? 2 : tableInstance.expandedDepth + 0.5) + "rem"
1430
- }) : null, enableSelection ? !isParentHeader ? React__default.createElement(MRT_SelectCheckbox, {
1444
+ }) : null, enableSelection ? !isParentHeader && !disableSelectAll ? React__default.createElement(material.TableCell, {
1445
+ sx: _extends({}, commonTableBodyButtonCellStyles(tableInstance.state.densePadding), {
1446
+ maxWidth: '3rem',
1447
+ width: '3rem'
1448
+ })
1449
+ }, React__default.createElement(MRT_SelectCheckbox, {
1431
1450
  selectAll: true
1432
- }) : React__default.createElement(MRT_TableSpacerCell, {
1451
+ })) : React__default.createElement(MRT_TableSpacerCell, {
1433
1452
  width: "1rem"
1434
1453
  }) : null, headerGroup.headers.map(function (column) {
1435
1454
  return React__default.createElement(MRT_TableHeadCell, {
@@ -2460,6 +2479,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2460
2479
  onRowClick = _useMRT.onRowClick,
2461
2480
  positionActionsColumn = _useMRT.positionActionsColumn,
2462
2481
  renderDetailPanel = _useMRT.renderDetailPanel,
2482
+ tableInstance = _useMRT.tableInstance,
2463
2483
  densePadding = _useMRT.tableInstance.state.densePadding;
2464
2484
 
2465
2485
  var mTableBodyRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps(row) : muiTableBodyRowProps;
@@ -2480,9 +2500,14 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2480
2500
  row: row
2481
2501
  }), (anyRowsCanExpand || renderDetailPanel) && React__default.createElement(MRT_ExpandButton, {
2482
2502
  row: row
2483
- }), enableSelection && React__default.createElement(MRT_SelectCheckbox, {
2503
+ }), enableSelection && React__default.createElement(material.TableCell, {
2504
+ sx: _extends({}, commonTableBodyButtonCellStyles(tableInstance.state.densePadding), {
2505
+ maxWidth: '3rem',
2506
+ width: '3rem'
2507
+ })
2508
+ }, React__default.createElement(MRT_SelectCheckbox, {
2484
2509
  row: row
2485
- }), row.cells.map(function (cell) {
2510
+ })), row.cells.map(function (cell) {
2486
2511
  return React__default.createElement(MRT_TableBodyCell, {
2487
2512
  key: cell.getCellProps().key,
2488
2513
  cell: cell