material-react-table 0.7.1 → 0.7.2

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.
@@ -375,5 +375,5 @@ export declare type MaterialReactTableProps<D extends Record<string, any> = {}>
375
375
  }>;
376
376
  }) => ReactNode;
377
377
  };
378
- declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, enableColumnActions, enableColumnFilters, enableDensePaddingToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableHiding, enableMultiRowSelection, enablePagination, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, positionActionsColumn, positionPagination, positionToolbarActions, positionToolbarAlertBanner, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
378
+ declare const _default: <D extends Record<string, any> = {}>({ autoResetExpanded, columnResizeMode, enableColumnActions, enableColumnFilters, enableColumnResizing, enableDensePaddingToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableHiding, enableMultiRowSelection, enablePagination, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarBottom, enableToolbarInternalActions, enableToolbarTop, icons, localization, positionActionsColumn, positionPagination, positionToolbarActions, positionToolbarAlertBanner, ...rest }: MaterialReactTableProps<D>) => JSX.Element;
379
379
  export default _default;
package/dist/icons.d.ts CHANGED
@@ -20,6 +20,7 @@ export interface MRT_Icons {
20
20
  MoreHorizIcon: any;
21
21
  MoreVertIcon: any;
22
22
  PushPinIcon: any;
23
+ RestartAltIcon: any;
23
24
  SaveIcon: any;
24
25
  SearchIcon: any;
25
26
  SearchOffIcon: any;
@@ -32,6 +32,7 @@ export interface MRT_Localization {
32
32
  hideColumn: string;
33
33
  pinToLeft: string;
34
34
  pinToRight: string;
35
+ resetColumnSize: string;
35
36
  rowActions: string;
36
37
  rowNumber: string;
37
38
  rowNumbers: string;
@@ -27,6 +27,7 @@ var FullscreenIcon = _interopDefault(require('@mui/icons-material/Fullscreen'));
27
27
  var MoreHorizIcon = _interopDefault(require('@mui/icons-material/MoreHoriz'));
28
28
  var MoreVertIcon = _interopDefault(require('@mui/icons-material/MoreVert'));
29
29
  var PushPinIcon = _interopDefault(require('@mui/icons-material/PushPin'));
30
+ var RestartAltIcon = _interopDefault(require('@mui/icons-material/RestartAlt'));
30
31
  var SaveIcon = _interopDefault(require('@mui/icons-material/Save'));
31
32
  var SearchIcon = _interopDefault(require('@mui/icons-material/Search'));
32
33
  var SearchOffIcon = _interopDefault(require('@mui/icons-material/SearchOff'));
@@ -104,6 +105,7 @@ var MRT_DefaultLocalization_EN = {
104
105
  hideColumn: 'Hide {column} column',
105
106
  pinToLeft: 'Pin to left',
106
107
  pinToRight: 'Pin to right',
108
+ resetColumnSize: 'Reset column size',
107
109
  rowActions: 'Row Actions',
108
110
  rowNumber: '#',
109
111
  rowNumbers: 'Row Numbers',
@@ -152,6 +154,7 @@ var MRT_Default_Icons = {
152
154
  MoreHorizIcon: MoreHorizIcon,
153
155
  MoreVertIcon: MoreVertIcon,
154
156
  PushPinIcon: PushPinIcon,
157
+ RestartAltIcon: RestartAltIcon,
155
158
  SaveIcon: SaveIcon,
156
159
  SearchIcon: SearchIcon,
157
160
  SearchOffIcon: SearchOffIcon,
@@ -682,9 +685,10 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
682
685
  setColumnOrder = tableInstance.setColumnOrder,
683
686
  _tableInstance$option = tableInstance.options,
684
687
  enableColumnFilters = _tableInstance$option.enableColumnFilters,
685
- enablePinning = _tableInstance$option.enablePinning,
688
+ enableColumnResizing = _tableInstance$option.enableColumnResizing,
686
689
  enableGrouping = _tableInstance$option.enableGrouping,
687
690
  enableHiding = _tableInstance$option.enableHiding,
691
+ enablePinning = _tableInstance$option.enablePinning,
688
692
  enableSorting = _tableInstance$option.enableSorting,
689
693
  _tableInstance$option2 = _tableInstance$option.icons,
690
694
  ArrowRightIcon = _tableInstance$option2.ArrowRightIcon,
@@ -695,6 +699,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
695
699
  FilterListOffIcon = _tableInstance$option2.FilterListOffIcon,
696
700
  PushPinIcon = _tableInstance$option2.PushPinIcon,
697
701
  SortIcon = _tableInstance$option2.SortIcon,
702
+ RestartAltIcon = _tableInstance$option2.RestartAltIcon,
698
703
  VisibilityOffIcon = _tableInstance$option2.VisibilityOffIcon,
699
704
  idPrefix = _tableInstance$option.idPrefix,
700
705
  localization = _tableInstance$option.localization,
@@ -702,8 +707,9 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
702
707
  var column = header.column;
703
708
 
704
709
  var _getState = getState(),
705
- isDensePadding = _getState.isDensePadding,
706
- columnVisibility = _getState.columnVisibility;
710
+ columnSizing = _getState.columnSizing,
711
+ columnVisibility = _getState.columnVisibility,
712
+ isDensePadding = _getState.isDensePadding;
707
713
 
708
714
  var _useState = React.useState(null),
709
715
  filterMenuAnchorEl = _useState[0],
@@ -728,6 +734,11 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
728
734
  setAnchorEl(null);
729
735
  };
730
736
 
737
+ var handleResetColumnSize = function handleResetColumnSize() {
738
+ column.resetSize();
739
+ setAnchorEl(null);
740
+ };
741
+
731
742
  var handleHideColumn = function handleHideColumn() {
732
743
  column.toggleVisibility(false);
733
744
  setAnchorEl(null);
@@ -847,7 +858,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
847
858
  }, React__default.createElement(material.Box, {
848
859
  sx: commonListItemStyles
849
860
  }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(DynamicFeedIcon, null)), (_localization = localization[column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn']) == null ? void 0 : _localization.replace('{column}', String(column.header))))], enablePinning && column.getCanPin() && [React__default.createElement(material.MenuItem, {
850
- disabled: column.getIsPinned() === 'left',
861
+ disabled: column.getIsPinned() === 'left' || !column.getCanPin(),
851
862
  key: 0,
852
863
  onClick: function onClick() {
853
864
  return handlePinColumn('left');
@@ -860,7 +871,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
860
871
  transform: 'rotate(90deg)'
861
872
  }
862
873
  })), localization.pinToLeft)), React__default.createElement(material.MenuItem, {
863
- disabled: column.getIsPinned() === 'right',
874
+ disabled: column.getIsPinned() === 'right' || !column.getCanPin(),
864
875
  key: 0,
865
876
  onClick: function onClick() {
866
877
  return handlePinColumn('right');
@@ -882,7 +893,14 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
882
893
  sx: commonMenuItemStyles$1
883
894
  }, React__default.createElement(material.Box, {
884
895
  sx: commonListItemStyles
885
- }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(PushPinIcon, null)), localization.unpin))], enableHiding && [React__default.createElement(material.MenuItem, {
896
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(PushPinIcon, null)), localization.unpin))], enableColumnResizing && [React__default.createElement(material.MenuItem, {
897
+ disabled: !column.getCanResize() || !columnSizing[column.id],
898
+ key: 0,
899
+ onClick: handleResetColumnSize,
900
+ sx: commonMenuItemStyles$1
901
+ }, React__default.createElement(material.Box, {
902
+ sx: commonListItemStyles
903
+ }, React__default.createElement(material.ListItemIcon, null, React__default.createElement(RestartAltIcon, null)), localization.resetColumnSize))], enableHiding && [React__default.createElement(material.MenuItem, {
886
904
  disabled: column.enableHiding === false,
887
905
  key: 0,
888
906
  onClick: handleHideColumn,
@@ -2019,16 +2037,18 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2019
2037
  return _extends({
2020
2038
  backgroundColor: theme.palette.background["default"],
2021
2039
  backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2022
- boxShadow: "3px 0 6px " + material.alpha(theme.palette.common.black, 0.1),
2023
2040
  fontWeight: 'bold',
2024
2041
  height: '100%',
2025
- minWidth: "max(" + header.getWidth() + ", 100px)",
2042
+ maxWidth: "min(" + column.getWidth() + "px, " + column.maxWidth + "px)",
2043
+ minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2026
2044
  p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2027
2045
  pt: column.columnDefType === 'display' ? 0 : isDensePadding ? '0.75rem' : '1.25rem',
2028
2046
  pb: column.columnDefType === 'display' ? 0 : undefined,
2047
+ overflow: 'visible',
2029
2048
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2030
2049
  verticalAlign: 'text-top',
2031
- width: header.getWidth()
2050
+ width: header.getWidth(),
2051
+ zIndex: column.getIsResizing() ? 2 : 1
2032
2052
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2033
2053
  }
2034
2054
  }), header.isPlaceholder ? null : column.columnDefType === 'display' ? headerElement : React__default.createElement(material.Box, {
@@ -2049,7 +2069,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2049
2069
  flexWrap: 'nowrap',
2050
2070
  whiteSpace: column.header.length < 24 ? 'nowrap' : 'normal'
2051
2071
  }
2052
- }, headerElement, column.columnDefType !== 'group' && column.getCanSort() && React__default.createElement(material.Tooltip, {
2072
+ }, headerElement, column.columnDefType === 'data' && column.getCanSort() && React__default.createElement(material.Tooltip, {
2053
2073
  arrow: true,
2054
2074
  placement: "top",
2055
2075
  title: sortTooltip
@@ -2057,7 +2077,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2057
2077
  "aria-label": sortTooltip,
2058
2078
  active: !!column.getIsSorted(),
2059
2079
  direction: column.getIsSorted() ? column.getIsSorted() : undefined
2060
- })), column.columnDefType !== 'group' && enableColumnFilters && !!column.getCanColumnFilter() && React__default.createElement(material.Tooltip, {
2080
+ })), column.columnDefType === 'data' && enableColumnFilters && !!column.getCanColumnFilter() && React__default.createElement(material.Tooltip, {
2061
2081
  arrow: true,
2062
2082
  placement: "top",
2063
2083
  title: filterTooltip
@@ -2078,16 +2098,10 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2078
2098
  opacity: 0.8
2079
2099
  }
2080
2100
  }
2081
- }, showFilters && !column.getColumnFilterValue() ? React__default.createElement(FilterAltOff, null) : React__default.createElement(FilterAltIcon, null)))), React__default.createElement(material.Box, {
2082
- sx: {
2083
- alignItems: 'center',
2084
- display: 'flex',
2085
- flexWrap: 'nowrap'
2086
- }
2087
- }, (enableColumnActions || column.enableColumnActions) && column.enableColumnActions !== false && column.columnDefType !== 'group' && React__default.createElement(MRT_ToggleColumnActionMenuButton, {
2101
+ }, showFilters && !column.getColumnFilterValue() ? React__default.createElement(FilterAltOff, null) : React__default.createElement(FilterAltIcon, null)))), (enableColumnActions || column.enableColumnActions) && column.enableColumnActions !== false && column.columnDefType !== 'group' && React__default.createElement(MRT_ToggleColumnActionMenuButton, {
2088
2102
  header: header,
2089
2103
  tableInstance: tableInstance
2090
- }), enableColumnResizing && column.columnDefType !== 'group' && React__default.createElement(material.Divider, Object.assign({
2104
+ }), column.getCanResize() && React__default.createElement(material.Divider, Object.assign({
2091
2105
  flexItem: true,
2092
2106
  orientation: "vertical",
2093
2107
  onDoubleClick: function onDoubleClick() {
@@ -2095,14 +2109,19 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2095
2109
  },
2096
2110
  sx: function sx(theme) {
2097
2111
  return {
2098
- borderRightWidth: '2px',
2099
2112
  borderRadius: '2px',
2100
- maxHeight: '2rem',
2113
+ borderRightWidth: '2px',
2101
2114
  cursor: 'col-resize',
2102
- userSelect: 'none',
2115
+ height: showFilters && column.columnDefType === 'data' ? '4rem' : '2rem',
2116
+ opacity: 0.8,
2117
+ position: 'absolute',
2118
+ right: '1px',
2103
2119
  touchAction: 'none',
2120
+ transition: 'all 0.2s ease-in-out',
2121
+ userSelect: 'none',
2122
+ zIndex: 2000,
2104
2123
  '&:active': {
2105
- backgroundColor: theme.palette.secondary.dark,
2124
+ backgroundColor: theme.palette.info.main,
2106
2125
  opacity: 1
2107
2126
  }
2108
2127
  };
@@ -2113,7 +2132,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2113
2132
  transform: column.getIsResizing() ? "translateX(" + getState().columnSizingInfo.deltaOffset + "px)" : ''
2114
2133
  }
2115
2134
  });
2116
- }))))), column.columnDefType === 'data' && enableColumnFilters && column.getCanColumnFilter() && React__default.createElement(material.Collapse, {
2135
+ })))), column.columnDefType === 'data' && column.getCanColumnFilter() && React__default.createElement(material.Collapse, {
2117
2136
  "in": showFilters
2118
2137
  }, React__default.createElement(MRT_FilterTextField, {
2119
2138
  header: header,
@@ -2132,7 +2151,13 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2132
2151
 
2133
2152
  var tableRowProps = _extends({}, headerGroup == null ? void 0 : headerGroup.getHeaderGroupProps(), mTableHeadRowProps);
2134
2153
 
2135
- return React__default.createElement(material.TableRow, Object.assign({}, tableRowProps), headerGroup.headers.map(function (header, index) {
2154
+ return React__default.createElement(material.TableRow, Object.assign({}, tableRowProps, {
2155
+ sx: function sx(theme) {
2156
+ return _extends({
2157
+ boxShadow: "4px 0 8px " + material.alpha(theme.palette.common.black, 0.1)
2158
+ }, tableRowProps == null ? void 0 : tableRowProps.sx);
2159
+ }
2160
+ }), headerGroup.headers.map(function (header, index) {
2136
2161
  return React__default.createElement(MRT_TableHeadCell, {
2137
2162
  header: header,
2138
2163
  key: header.id || index,
@@ -2342,10 +2367,13 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2342
2367
  }
2343
2368
  }, tableCellProps, {
2344
2369
  sx: _extends({
2370
+ maxWidth: "min(" + column.getWidth() + "px, fit-content)",
2371
+ minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2345
2372
  p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2346
2373
  pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
2347
2374
  transition: 'all 0.2s ease-in-out',
2348
- whiteSpace: isDensePadding || enablePinning && getIsSomeColumnsPinned() ? 'nowrap' : 'normal'
2375
+ whiteSpace: isDensePadding || enablePinning && getIsSomeColumnsPinned() ? 'nowrap' : 'normal',
2376
+ width: column.getWidth()
2349
2377
  }, tableCellProps == null ? void 0 : tableCellProps.sx)
2350
2378
  }), isLoading ? React__default.createElement(material.Skeleton, Object.assign({
2351
2379
  animation: "wave",
@@ -2521,8 +2549,11 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2521
2549
  backgroundColor: theme.palette.background["default"],
2522
2550
  backgroundImage: "linear-gradient(" + material.alpha(theme.palette.common.white, 0.05) + "," + material.alpha(theme.palette.common.white, 0.05) + ")",
2523
2551
  fontWeight: 'bold',
2552
+ maxWidth: "min(" + column.getWidth() + "px, " + column.maxWidth + "px)",
2553
+ minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2524
2554
  p: isDensePadding ? '0.5rem' : '1rem',
2525
2555
  transition: "all " + (enableColumnResizing ? '10ms' : '0.2s') + " ease-in-out",
2556
+ width: column.getWidth(),
2526
2557
  verticalAlign: 'text-top'
2527
2558
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2528
2559
  }
@@ -2620,7 +2651,7 @@ var commonBoxStyles = function commonBoxStyles(_ref) {
2620
2651
  return {
2621
2652
  display: 'grid',
2622
2653
  minWidth: visible ? '200px' : 0,
2623
- overflowX: 'auto',
2654
+ overflowX: pinned ? 'scroll' : 'auto',
2624
2655
  boxShadow: pinned === 'left' ? "0 1px 12px " + material.alpha(theme.palette.common.black, 0.5) : pinned === 'right' ? "0 -1px 12px " + material.alpha(theme.palette.common.black, 0.5) : 'none'
2625
2656
  };
2626
2657
  };
@@ -2799,7 +2830,7 @@ var createGroup = function createGroup(table, column, currentFilterTypes) {
2799
2830
  var createDataColumn = function createDataColumn(table, column, currentFilterTypes) {
2800
2831
  return (// @ts-ignore
2801
2832
  table.createDataColumn(column.id, _extends({
2802
- filterType: currentFilterTypes[column.id] || MRT_FILTER_TYPE.BEST_MATCH
2833
+ filterFn: currentFilterTypes[column.id] instanceof Function ? currentFilterTypes[column.id] : defaultFilterFNs[currentFilterTypes[column.id]]
2803
2834
  }, column))
2804
2835
  );
2805
2836
  };
@@ -3011,14 +3042,18 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3011
3042
  }));
3012
3043
  };
3013
3044
 
3014
- var _excluded$5 = ["autoResetExpanded", "enableColumnActions", "enableColumnFilters", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableHiding", "enableMultiRowSelection", "enablePagination", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
3045
+ var _excluded$5 = ["autoResetExpanded", "columnResizeMode", "enableColumnActions", "enableColumnFilters", "enableColumnResizing", "enableDensePaddingToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableHiding", "enableMultiRowSelection", "enablePagination", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarBottom", "enableToolbarInternalActions", "enableToolbarTop", "icons", "localization", "positionActionsColumn", "positionPagination", "positionToolbarActions", "positionToolbarAlertBanner"];
3015
3046
  var MaterialReactTable = (function (_ref) {
3016
3047
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3017
3048
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
3049
+ _ref$columnResizeMode = _ref.columnResizeMode,
3050
+ columnResizeMode = _ref$columnResizeMode === void 0 ? 'onEnd' : _ref$columnResizeMode,
3018
3051
  _ref$enableColumnActi = _ref.enableColumnActions,
3019
3052
  enableColumnActions = _ref$enableColumnActi === void 0 ? true : _ref$enableColumnActi,
3020
3053
  _ref$enableColumnFilt = _ref.enableColumnFilters,
3021
3054
  enableColumnFilters = _ref$enableColumnFilt === void 0 ? true : _ref$enableColumnFilt,
3055
+ _ref$enableColumnResi = _ref.enableColumnResizing,
3056
+ enableColumnResizing = _ref$enableColumnResi === void 0 ? false : _ref$enableColumnResi,
3022
3057
  _ref$enableDensePaddi = _ref.enableDensePaddingToggle,
3023
3058
  enableDensePaddingToggle = _ref$enableDensePaddi === void 0 ? true : _ref$enableDensePaddi,
3024
3059
  _ref$enableExpandAll = _ref.enableExpandAll,
@@ -3065,7 +3100,9 @@ var MaterialReactTable = (function (_ref) {
3065
3100
 
3066
3101
  return React__default.createElement(MRT_TableRoot, Object.assign({
3067
3102
  autoResetExpanded: autoResetExpanded,
3103
+ columnResizeMode: columnResizeMode,
3068
3104
  enableColumnActions: enableColumnActions,
3105
+ enableColumnResizing: enableColumnResizing,
3069
3106
  enableColumnFilters: enableColumnFilters,
3070
3107
  enableDensePaddingToggle: enableDensePaddingToggle,
3071
3108
  enableExpandAll: enableExpandAll,