material-react-table 0.6.8 → 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';
@@ -104,6 +104,7 @@ export declare type MaterialReactTableProps<D extends {} = {}> = UseTableOptions
104
104
  localization?: Partial<MRT_Localization>;
105
105
  muiLinearProgressProps?: LinearProgressProps | ((tableInstance: MRT_TableInstance) => LinearProgressProps);
106
106
  muiSearchTextFieldProps?: TextFieldProps;
107
+ muiSelectCheckboxProps?: CheckboxProps | ((isSelectAll?: boolean, row?: MRT_Row<D>, tableInstance?: MRT_TableInstance<D>) => CheckboxProps);
107
108
  muiTableBodyCellEditTextFieldProps?: TextFieldProps | ((cell?: MRT_Cell<D>) => TextFieldProps);
108
109
  muiTableBodyCellProps?: TableCellProps | ((cell?: MRT_Cell<D>) => TableCellProps);
109
110
  muiTableBodyCellSkeletonProps?: SkeletonProps | ((cell?: MRT_Cell<D>) => SkeletonProps);
@@ -112,9 +113,9 @@ export declare type MaterialReactTableProps<D extends {} = {}> = UseTableOptions
112
113
  muiTableContainerProps?: TableContainerProps | ((tableInstance: MRT_TableInstance<D>) => TableContainerProps);
113
114
  muiTableDetailPanelProps?: TableCellProps | ((row: Row<D>) => TableCellProps);
114
115
  muiTableFooterCellProps?: TableCellProps | ((column: Column<D>) => TableCellProps);
115
- muiTableHeadCellColumnActionsButtonProps?: IconButtonProps | ((column: Column<D>) => IconButtonProps);
116
116
  muiTableFooterProps?: TableFooterProps | ((tableInstance: MRT_TableInstance<D>) => TableFooterProps);
117
117
  muiTableFooterRowProps?: TableRowProps | ((footerGroup: MRT_HeaderGroup<D>) => TableRowProps);
118
+ muiTableHeadCellColumnActionsButtonProps?: IconButtonProps | ((column: Column<D>) => IconButtonProps);
118
119
  muiTableHeadCellFilterTextFieldProps?: TextFieldProps | ((column: Column<D>) => TextFieldProps);
119
120
  muiTableHeadCellProps?: TableCellProps | ((column: Column<D>) => TableCellProps);
120
121
  muiTableHeadProps?: TableHeadProps | ((tableInstance: MRT_TableInstance<D>) => TableHeadProps);
@@ -131,7 +132,7 @@ export declare type MaterialReactTableProps<D extends {} = {}> = UseTableOptions
131
132
  onRowClick?: (event: MouseEvent<HTMLTableRowElement>, row: Row<D>) => void;
132
133
  onRowEditSubmit?: (row: Row<D>) => Promise<void> | void;
133
134
  onRowExpandChange?: (event: MouseEvent<HTMLButtonElement>, row: Row<D>) => void;
134
- onRowSelectChange?: (event: ChangeEvent, row: Row<D>, selectedRows: Row<D>[]) => void;
135
+ onSelectChange?: (event: ChangeEvent, row: Row<D>, selectedRows: Row<D>[]) => void;
135
136
  onSelectAllChange?: (event: ChangeEvent, selectedRows: Row<D>[]) => void;
136
137
  positionActionsColumn?: 'first' | 'last';
137
138
  positionPagination?: 'bottom' | 'top' | 'both';
@@ -1310,31 +1310,36 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1310
1310
 
1311
1311
  var _useMRT = useMRT(),
1312
1312
  localization = _useMRT.localization,
1313
- onRowSelectChange = _useMRT.onRowSelectChange,
1313
+ muiSelectCheckboxProps = _useMRT.muiSelectCheckboxProps,
1314
+ onSelectChange = _useMRT.onSelectChange,
1314
1315
  onSelectAllChange = _useMRT.onSelectAllChange,
1315
- tableInstance = _useMRT.tableInstance;
1316
+ tableInstance = _useMRT.tableInstance,
1317
+ densePadding = _useMRT.tableInstance.state.densePadding;
1316
1318
 
1317
- var onSelectChange = function onSelectChange(event) {
1319
+ var handleSelectChange = function handleSelectChange(event) {
1318
1320
  if (selectAll) {
1319
1321
  var _tableInstance$getTog;
1320
1322
 
1321
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);
1322
- onSelectAllChange == null ? void 0 : onSelectAllChange(event, tableInstance.selectedFlatRows);
1324
+ onSelectAllChange == null ? void 0 : onSelectAllChange(event, event.target.checked ? tableInstance.rows : []);
1323
1325
  } else if (row) {
1324
1326
  var _row$getToggleRowSele;
1325
1327
 
1326
1328
  row == null ? void 0 : (_row$getToggleRowSele = row.getToggleRowSelectedProps()) == null ? void 0 : _row$getToggleRowSele.onChange == null ? void 0 : _row$getToggleRowSele.onChange(event);
1327
- 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
+ }));
1328
1332
  }
1329
1333
  };
1330
1334
 
1331
- var checkboxProps = selectAll ? tableInstance.getToggleAllRowsSelectedProps() : row == null ? void 0 : row.getToggleRowSelectedProps();
1332
- return React__default.createElement(material.TableCell, {
1333
- sx: _extends({}, commonTableBodyButtonCellStyles(tableInstance.state.densePadding), {
1334
- maxWidth: '2rem',
1335
- width: '2rem'
1336
- })
1337
- }, 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, {
1338
1343
  arrow: true,
1339
1344
  enterDelay: 1000,
1340
1345
  enterNextDelay: 1000,
@@ -1343,10 +1348,11 @@ var MRT_SelectCheckbox = function MRT_SelectCheckbox(_ref) {
1343
1348
  inputProps: {
1344
1349
  'aria-label': selectAll ? localization.toggleSelectAll : localization.toggleSelectRow
1345
1350
  },
1346
- onChange: onSelectChange
1351
+ size: densePadding ? 'small' : 'medium'
1347
1352
  }, checkboxProps, {
1353
+ onChange: handleSelectChange,
1348
1354
  title: undefined
1349
- }))));
1355
+ })));
1350
1356
  };
1351
1357
 
1352
1358
  var MRT_ExpandAllButton = function MRT_ExpandAllButton() {
@@ -1435,9 +1441,14 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
1435
1441
  sx: _extends({}, commonTableHeadCellStyles(tableInstance.state.densePadding))
1436
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, {
1437
1443
  width: (renderDetailPanel ? 2 : tableInstance.expandedDepth + 0.5) + "rem"
1438
- }) : null, enableSelection ? !isParentHeader && !disableSelectAll ? 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, {
1439
1450
  selectAll: true
1440
- }) : React__default.createElement(MRT_TableSpacerCell, {
1451
+ })) : React__default.createElement(MRT_TableSpacerCell, {
1441
1452
  width: "1rem"
1442
1453
  }) : null, headerGroup.headers.map(function (column) {
1443
1454
  return React__default.createElement(MRT_TableHeadCell, {
@@ -2468,6 +2479,7 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2468
2479
  onRowClick = _useMRT.onRowClick,
2469
2480
  positionActionsColumn = _useMRT.positionActionsColumn,
2470
2481
  renderDetailPanel = _useMRT.renderDetailPanel,
2482
+ tableInstance = _useMRT.tableInstance,
2471
2483
  densePadding = _useMRT.tableInstance.state.densePadding;
2472
2484
 
2473
2485
  var mTableBodyRowProps = muiTableBodyRowProps instanceof Function ? muiTableBodyRowProps(row) : muiTableBodyRowProps;
@@ -2488,9 +2500,14 @@ var MRT_TableBodyRow = function MRT_TableBodyRow(_ref) {
2488
2500
  row: row
2489
2501
  }), (anyRowsCanExpand || renderDetailPanel) && React__default.createElement(MRT_ExpandButton, {
2490
2502
  row: row
2491
- }), 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, {
2492
2509
  row: row
2493
- }), row.cells.map(function (cell) {
2510
+ })), row.cells.map(function (cell) {
2494
2511
  return React__default.createElement(MRT_TableBodyCell, {
2495
2512
  key: cell.getCellProps().key,
2496
2513
  cell: cell