material-react-table 0.5.5 → 0.5.6

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, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
2
+ import { AlertProps, IconButtonProps, LinearProgressProps, SkeletonProps, TableBodyProps, TableCellProps, TableContainerProps, TableFooterProps, TableHeadProps, TablePaginationProps, TableProps, TableRowProps, TextFieldProps, ToolbarProps } from '@mui/material';
3
3
  import { Cell, Column, ColumnInstance, 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';
@@ -83,9 +83,11 @@ export declare type MaterialReactTableProps<D extends {} = {}> = UseTableOptions
83
83
  isFetching?: boolean;
84
84
  isLoading?: boolean;
85
85
  localization?: Partial<MRT_Localization>;
86
+ muiLinearProgressProps?: LinearProgressProps | ((tableInstance: MRT_TableInstance) => LinearProgressProps);
86
87
  muiSearchTextFieldProps?: TextFieldProps;
87
88
  muiTableBodyCellEditTextFieldProps?: TextFieldProps | ((cell?: MRT_Cell<D>) => TextFieldProps);
88
89
  muiTableBodyCellProps?: TableCellProps | ((cell?: MRT_Cell<D>) => TableCellProps);
90
+ muiTableBodyCellSkeletonProps?: SkeletonProps | ((cell?: MRT_Cell<D>) => SkeletonProps);
89
91
  muiTableBodyProps?: TableBodyProps | ((tableInstance: MRT_TableInstance<D>) => TableBodyProps);
90
92
  muiTableBodyRowProps?: TableRowProps | ((row: Row<D>) => TableRowProps);
91
93
  muiTableContainerProps?: TableContainerProps | ((tableInstance: MRT_TableInstance<D>) => TableContainerProps);
@@ -377,10 +377,11 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
377
377
  onClose: function onClose() {
378
378
  return setAnchorEl(null);
379
379
  },
380
- open: !!anchorEl
381
- }, React__default.createElement(material.MenuList, {
382
- dense: tableInstance.state.densePadding,
383
- disablePadding: true
380
+ open: !!anchorEl,
381
+ MenuListProps: {
382
+ dense: tableInstance.state.densePadding,
383
+ disablePadding: true
384
+ }
384
385
  }, filterTypes.map(function (_ref2) {
385
386
  var type = _ref2.type,
386
387
  label = _ref2.label,
@@ -394,7 +395,7 @@ var MRT_FilterTypeMenu = function MRT_FilterTypeMenu(_ref) {
394
395
  selected: type === filterType,
395
396
  value: type
396
397
  }, label);
397
- })));
398
+ }));
398
399
  };
399
400
 
400
401
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
@@ -466,7 +467,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
466
467
  disabled: !!filterChipLabel,
467
468
  sx: {
468
469
  textOverflow: 'ellipsis',
469
- width: filterChipLabel ? 0 : 'auto'
470
+ width: filterChipLabel ? 0 : undefined
470
471
  },
471
472
  title: filterPlaceholder
472
473
  },
@@ -608,10 +609,11 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
608
609
  open: !!anchorEl,
609
610
  onClose: function onClose() {
610
611
  return setAnchorEl(null);
612
+ },
613
+ MenuListProps: {
614
+ dense: tableInstance.state.densePadding,
615
+ disablePadding: true
611
616
  }
612
- }, React__default.createElement(material.MenuList, {
613
- dense: tableInstance.state.densePadding,
614
- disablePadding: true
615
617
  }, !disableSortBy && column.canSort && [React__default.createElement(material.MenuItem, {
616
618
  key: 1,
617
619
  disabled: !column.isSorted,
@@ -659,7 +661,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
659
661
  key: 1,
660
662
  onClick: handleHideColumn,
661
663
  sx: commonMenuItemStyles
662
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(VisibilityOffIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]));
664
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(VisibilityOffIcon, null)), React__default.createElement(material.ListItemText, null, (_localization$columnA3 = localization.columnActionMenuItemHideColumn) == null ? void 0 : _localization$columnA3.replace('{column}', String(column.Header))))]);
663
665
  };
664
666
 
665
667
  var MRT_ToggleColumnActionMenuButton = function MRT_ToggleColumnActionMenuButton(_ref) {
@@ -882,8 +884,10 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
882
884
  var cell = _ref.cell;
883
885
 
884
886
  var _useMRT = useMRT(),
885
- onCellClick = _useMRT.onCellClick,
887
+ isLoading = _useMRT.isLoading,
886
888
  muiTableBodyCellProps = _useMRT.muiTableBodyCellProps,
889
+ muiTableBodyCellSkeletonProps = _useMRT.muiTableBodyCellSkeletonProps,
890
+ onCellClick = _useMRT.onCellClick,
887
891
  _useMRT$tableInstance = _useMRT.tableInstance.state,
888
892
  currentEditingRow = _useMRT$tableInstance.currentEditingRow,
889
893
  densePadding = _useMRT$tableInstance.densePadding;
@@ -901,7 +905,11 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
901
905
  }
902
906
  }, tableCellProps, {
903
907
  sx: _extends({}, commonTableBodyCellStyles(densePadding), tableCellProps == null ? void 0 : tableCellProps.sx)
904
- }), (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React__default.createElement(MRT_EditCellTextField, {
908
+ }), isLoading ? React__default.createElement(material.Skeleton, Object.assign({
909
+ animation: "wave",
910
+ height: 20,
911
+ width: Math.random() * (120 - 60) + 60
912
+ }, muiTableBodyCellSkeletonProps)) : (currentEditingRow == null ? void 0 : currentEditingRow.id) === cell.row.id ? React__default.createElement(MRT_EditCellTextField, {
905
913
  cell: cell
906
914
  }) : cell.isPlaceholder ? null : cell.isAggregated ? cell.render('Aggregated') : cell.isGrouped ? React__default.createElement("span", null, cell.render('Cell'), " (", cell.row.subRows.length, ")") : cell.render('Cell'));
907
915
  };
@@ -1138,15 +1146,16 @@ var MRT_RowActionMenu = function MRT_RowActionMenu(_ref) {
1138
1146
  open: !!anchorEl,
1139
1147
  onClose: function onClose() {
1140
1148
  return setAnchorEl(null);
1149
+ },
1150
+ MenuListProps: {
1151
+ dense: tableInstance.state.densePadding,
1152
+ disablePadding: true
1141
1153
  }
1142
- }, React__default.createElement(material.MenuList, {
1143
- dense: tableInstance.state.densePadding,
1144
- disablePadding: true
1145
1154
  }, enableRowEditing && React__default.createElement(material.MenuItem, {
1146
1155
  onClick: handleEdit
1147
1156
  }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(EditIcon, null)), React__default.createElement(material.ListItemText, null, localization.rowActionMenuItemEdit)), (_renderRowActionMenuI = renderRowActionMenuItems == null ? void 0 : renderRowActionMenuItems(row, tableInstance, function () {
1148
1157
  return setAnchorEl(null);
1149
- })) != null ? _renderRowActionMenuI : null));
1158
+ })) != null ? _renderRowActionMenuI : null);
1150
1159
  };
1151
1160
 
1152
1161
  function createCommonjsModule(fn, module) {
@@ -2374,15 +2383,16 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2374
2383
  open: !!anchorEl,
2375
2384
  onClose: function onClose() {
2376
2385
  return setAnchorEl(null);
2386
+ },
2387
+ MenuListProps: {
2388
+ dense: tableInstance.state.densePadding,
2389
+ disablePadding: true
2377
2390
  }
2378
- }, React__default.createElement(material.MenuList, {
2379
- dense: tableInstance.state.densePadding,
2380
- disablePadding: true
2381
2391
  }, React__default.createElement(material.Box, {
2382
2392
  sx: {
2383
2393
  display: 'flex',
2384
2394
  justifyContent: 'space-between',
2385
- p: '0 0.5rem 0.5rem 0.5rem'
2395
+ p: '0.5rem'
2386
2396
  }
2387
2397
  }, React__default.createElement(material.Button, {
2388
2398
  disabled: !tableInstance.getToggleHideAllColumnsProps().checked && !tableInstance.getToggleHideAllColumnsProps().indeterminate,
@@ -2399,7 +2409,7 @@ var MRT_ShowHideColumnsButton = function MRT_ShowHideColumnsButton(_ref) {
2399
2409
  key: index + "-" + column.id,
2400
2410
  column: column
2401
2411
  });
2402
- }))));
2412
+ })));
2403
2413
  };
2404
2414
 
2405
2415
  var MRT_ToggleDensePaddingButton = function MRT_ToggleDensePaddingButton(_ref) {
@@ -2684,6 +2694,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2684
2694
  hideToolbarTop = _useMRT.hideToolbarTop,
2685
2695
  isFetching = _useMRT.isFetching,
2686
2696
  isLoading = _useMRT.isLoading,
2697
+ muiLinearProgressProps = _useMRT.muiLinearProgressProps,
2687
2698
  muiTableContainerProps = _useMRT.muiTableContainerProps,
2688
2699
  tableInstance = _useMRT.tableInstance;
2689
2700
 
@@ -2708,6 +2719,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2708
2719
  }
2709
2720
  }, [fullScreen]);
2710
2721
  var tableContainerProps = muiTableContainerProps instanceof Function ? muiTableContainerProps(tableInstance) : muiTableContainerProps;
2722
+ var linearProgressProps = muiLinearProgressProps instanceof Function ? muiLinearProgressProps(tableInstance) : muiLinearProgressProps;
2711
2723
  return React__default.createElement(material.TableContainer, Object.assign({
2712
2724
  component: material.Paper
2713
2725
  }, tableContainerProps, {
@@ -2726,7 +2738,7 @@ var MRT_TableContainer = function MRT_TableContainer() {
2726
2738
  }), !hideToolbarTop && React__default.createElement(MRT_ToolbarTop, null), React__default.createElement(material.Collapse, {
2727
2739
  "in": isFetching || isLoading,
2728
2740
  unmountOnExit: true
2729
- }, React__default.createElement(material.LinearProgress, null)), React__default.createElement(material.Box, {
2741
+ }, React__default.createElement(material.LinearProgress, Object.assign({}, linearProgressProps))), React__default.createElement(material.Box, {
2730
2742
  sx: {
2731
2743
  maxWidth: '100%',
2732
2744
  overflowX: 'auto'