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.
@@ -20,6 +20,7 @@ import FullscreenIcon from '@mui/icons-material/Fullscreen';
20
20
  import MoreHorizIcon from '@mui/icons-material/MoreHoriz';
21
21
  import MoreVertIcon from '@mui/icons-material/MoreVert';
22
22
  import PushPinIcon from '@mui/icons-material/PushPin';
23
+ import RestartAltIcon from '@mui/icons-material/RestartAlt';
23
24
  import SaveIcon from '@mui/icons-material/Save';
24
25
  import SearchIcon from '@mui/icons-material/Search';
25
26
  import SearchOffIcon from '@mui/icons-material/SearchOff';
@@ -97,6 +98,7 @@ var MRT_DefaultLocalization_EN = {
97
98
  hideColumn: 'Hide {column} column',
98
99
  pinToLeft: 'Pin to left',
99
100
  pinToRight: 'Pin to right',
101
+ resetColumnSize: 'Reset column size',
100
102
  rowActions: 'Row Actions',
101
103
  rowNumber: '#',
102
104
  rowNumbers: 'Row Numbers',
@@ -145,6 +147,7 @@ var MRT_Default_Icons = {
145
147
  MoreHorizIcon: MoreHorizIcon,
146
148
  MoreVertIcon: MoreVertIcon,
147
149
  PushPinIcon: PushPinIcon,
150
+ RestartAltIcon: RestartAltIcon,
148
151
  SaveIcon: SaveIcon,
149
152
  SearchIcon: SearchIcon,
150
153
  SearchOffIcon: SearchOffIcon,
@@ -675,9 +678,10 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
675
678
  setColumnOrder = tableInstance.setColumnOrder,
676
679
  _tableInstance$option = tableInstance.options,
677
680
  enableColumnFilters = _tableInstance$option.enableColumnFilters,
678
- enablePinning = _tableInstance$option.enablePinning,
681
+ enableColumnResizing = _tableInstance$option.enableColumnResizing,
679
682
  enableGrouping = _tableInstance$option.enableGrouping,
680
683
  enableHiding = _tableInstance$option.enableHiding,
684
+ enablePinning = _tableInstance$option.enablePinning,
681
685
  enableSorting = _tableInstance$option.enableSorting,
682
686
  _tableInstance$option2 = _tableInstance$option.icons,
683
687
  ArrowRightIcon = _tableInstance$option2.ArrowRightIcon,
@@ -688,6 +692,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
688
692
  FilterListOffIcon = _tableInstance$option2.FilterListOffIcon,
689
693
  PushPinIcon = _tableInstance$option2.PushPinIcon,
690
694
  SortIcon = _tableInstance$option2.SortIcon,
695
+ RestartAltIcon = _tableInstance$option2.RestartAltIcon,
691
696
  VisibilityOffIcon = _tableInstance$option2.VisibilityOffIcon,
692
697
  idPrefix = _tableInstance$option.idPrefix,
693
698
  localization = _tableInstance$option.localization,
@@ -695,8 +700,9 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
695
700
  var column = header.column;
696
701
 
697
702
  var _getState = getState(),
698
- isDensePadding = _getState.isDensePadding,
699
- columnVisibility = _getState.columnVisibility;
703
+ columnSizing = _getState.columnSizing,
704
+ columnVisibility = _getState.columnVisibility,
705
+ isDensePadding = _getState.isDensePadding;
700
706
 
701
707
  var _useState = useState(null),
702
708
  filterMenuAnchorEl = _useState[0],
@@ -721,6 +727,11 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
721
727
  setAnchorEl(null);
722
728
  };
723
729
 
730
+ var handleResetColumnSize = function handleResetColumnSize() {
731
+ column.resetSize();
732
+ setAnchorEl(null);
733
+ };
734
+
724
735
  var handleHideColumn = function handleHideColumn() {
725
736
  column.toggleVisibility(false);
726
737
  setAnchorEl(null);
@@ -840,7 +851,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
840
851
  }, React.createElement(Box, {
841
852
  sx: commonListItemStyles
842
853
  }, React.createElement(ListItemIcon, null, React.createElement(DynamicFeedIcon, null)), (_localization = localization[column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn']) == null ? void 0 : _localization.replace('{column}', String(column.header))))], enablePinning && column.getCanPin() && [React.createElement(MenuItem, {
843
- disabled: column.getIsPinned() === 'left',
854
+ disabled: column.getIsPinned() === 'left' || !column.getCanPin(),
844
855
  key: 0,
845
856
  onClick: function onClick() {
846
857
  return handlePinColumn('left');
@@ -853,7 +864,7 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
853
864
  transform: 'rotate(90deg)'
854
865
  }
855
866
  })), localization.pinToLeft)), React.createElement(MenuItem, {
856
- disabled: column.getIsPinned() === 'right',
867
+ disabled: column.getIsPinned() === 'right' || !column.getCanPin(),
857
868
  key: 0,
858
869
  onClick: function onClick() {
859
870
  return handlePinColumn('right');
@@ -875,7 +886,14 @@ var MRT_ColumnActionMenu = function MRT_ColumnActionMenu(_ref) {
875
886
  sx: commonMenuItemStyles$1
876
887
  }, React.createElement(Box, {
877
888
  sx: commonListItemStyles
878
- }, React.createElement(ListItemIcon, null, React.createElement(PushPinIcon, null)), localization.unpin))], enableHiding && [React.createElement(MenuItem, {
889
+ }, React.createElement(ListItemIcon, null, React.createElement(PushPinIcon, null)), localization.unpin))], enableColumnResizing && [React.createElement(MenuItem, {
890
+ disabled: !column.getCanResize() || !columnSizing[column.id],
891
+ key: 0,
892
+ onClick: handleResetColumnSize,
893
+ sx: commonMenuItemStyles$1
894
+ }, React.createElement(Box, {
895
+ sx: commonListItemStyles
896
+ }, React.createElement(ListItemIcon, null, React.createElement(RestartAltIcon, null)), localization.resetColumnSize))], enableHiding && [React.createElement(MenuItem, {
879
897
  disabled: column.enableHiding === false,
880
898
  key: 0,
881
899
  onClick: handleHideColumn,
@@ -2012,16 +2030,18 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2012
2030
  return _extends({
2013
2031
  backgroundColor: theme.palette.background["default"],
2014
2032
  backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
2015
- boxShadow: "3px 0 6px " + alpha(theme.palette.common.black, 0.1),
2016
2033
  fontWeight: 'bold',
2017
2034
  height: '100%',
2018
- minWidth: "max(" + header.getWidth() + ", 100px)",
2035
+ maxWidth: "min(" + column.getWidth() + "px, " + column.maxWidth + "px)",
2036
+ minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2019
2037
  p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2020
2038
  pt: column.columnDefType === 'display' ? 0 : isDensePadding ? '0.75rem' : '1.25rem',
2021
2039
  pb: column.columnDefType === 'display' ? 0 : undefined,
2040
+ overflow: 'visible',
2022
2041
  transition: "all " + (enableColumnResizing ? 0 : '0.2s') + " ease-in-out",
2023
2042
  verticalAlign: 'text-top',
2024
- width: header.getWidth()
2043
+ width: header.getWidth(),
2044
+ zIndex: column.getIsResizing() ? 2 : 1
2025
2045
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2026
2046
  }
2027
2047
  }), header.isPlaceholder ? null : column.columnDefType === 'display' ? headerElement : React.createElement(Box, {
@@ -2042,7 +2062,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2042
2062
  flexWrap: 'nowrap',
2043
2063
  whiteSpace: column.header.length < 24 ? 'nowrap' : 'normal'
2044
2064
  }
2045
- }, headerElement, column.columnDefType !== 'group' && column.getCanSort() && React.createElement(Tooltip, {
2065
+ }, headerElement, column.columnDefType === 'data' && column.getCanSort() && React.createElement(Tooltip, {
2046
2066
  arrow: true,
2047
2067
  placement: "top",
2048
2068
  title: sortTooltip
@@ -2050,7 +2070,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2050
2070
  "aria-label": sortTooltip,
2051
2071
  active: !!column.getIsSorted(),
2052
2072
  direction: column.getIsSorted() ? column.getIsSorted() : undefined
2053
- })), column.columnDefType !== 'group' && enableColumnFilters && !!column.getCanColumnFilter() && React.createElement(Tooltip, {
2073
+ })), column.columnDefType === 'data' && enableColumnFilters && !!column.getCanColumnFilter() && React.createElement(Tooltip, {
2054
2074
  arrow: true,
2055
2075
  placement: "top",
2056
2076
  title: filterTooltip
@@ -2071,16 +2091,10 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2071
2091
  opacity: 0.8
2072
2092
  }
2073
2093
  }
2074
- }, showFilters && !column.getColumnFilterValue() ? React.createElement(FilterAltOff, null) : React.createElement(FilterAltIcon, null)))), React.createElement(Box, {
2075
- sx: {
2076
- alignItems: 'center',
2077
- display: 'flex',
2078
- flexWrap: 'nowrap'
2079
- }
2080
- }, (enableColumnActions || column.enableColumnActions) && column.enableColumnActions !== false && column.columnDefType !== 'group' && React.createElement(MRT_ToggleColumnActionMenuButton, {
2094
+ }, showFilters && !column.getColumnFilterValue() ? React.createElement(FilterAltOff, null) : React.createElement(FilterAltIcon, null)))), (enableColumnActions || column.enableColumnActions) && column.enableColumnActions !== false && column.columnDefType !== 'group' && React.createElement(MRT_ToggleColumnActionMenuButton, {
2081
2095
  header: header,
2082
2096
  tableInstance: tableInstance
2083
- }), enableColumnResizing && column.columnDefType !== 'group' && React.createElement(Divider, Object.assign({
2097
+ }), column.getCanResize() && React.createElement(Divider, Object.assign({
2084
2098
  flexItem: true,
2085
2099
  orientation: "vertical",
2086
2100
  onDoubleClick: function onDoubleClick() {
@@ -2088,14 +2102,19 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2088
2102
  },
2089
2103
  sx: function sx(theme) {
2090
2104
  return {
2091
- borderRightWidth: '2px',
2092
2105
  borderRadius: '2px',
2093
- maxHeight: '2rem',
2106
+ borderRightWidth: '2px',
2094
2107
  cursor: 'col-resize',
2095
- userSelect: 'none',
2108
+ height: showFilters && column.columnDefType === 'data' ? '4rem' : '2rem',
2109
+ opacity: 0.8,
2110
+ position: 'absolute',
2111
+ right: '1px',
2096
2112
  touchAction: 'none',
2113
+ transition: 'all 0.2s ease-in-out',
2114
+ userSelect: 'none',
2115
+ zIndex: 2000,
2097
2116
  '&:active': {
2098
- backgroundColor: theme.palette.secondary.dark,
2117
+ backgroundColor: theme.palette.info.main,
2099
2118
  opacity: 1
2100
2119
  }
2101
2120
  };
@@ -2106,7 +2125,7 @@ var MRT_TableHeadCell = function MRT_TableHeadCell(_ref) {
2106
2125
  transform: column.getIsResizing() ? "translateX(" + getState().columnSizingInfo.deltaOffset + "px)" : ''
2107
2126
  }
2108
2127
  });
2109
- }))))), column.columnDefType === 'data' && enableColumnFilters && column.getCanColumnFilter() && React.createElement(Collapse, {
2128
+ })))), column.columnDefType === 'data' && column.getCanColumnFilter() && React.createElement(Collapse, {
2110
2129
  "in": showFilters
2111
2130
  }, React.createElement(MRT_FilterTextField, {
2112
2131
  header: header,
@@ -2125,7 +2144,13 @@ var MRT_TableHeadRow = function MRT_TableHeadRow(_ref) {
2125
2144
 
2126
2145
  var tableRowProps = _extends({}, headerGroup == null ? void 0 : headerGroup.getHeaderGroupProps(), mTableHeadRowProps);
2127
2146
 
2128
- return React.createElement(TableRow, Object.assign({}, tableRowProps), headerGroup.headers.map(function (header, index) {
2147
+ return React.createElement(TableRow, Object.assign({}, tableRowProps, {
2148
+ sx: function sx(theme) {
2149
+ return _extends({
2150
+ boxShadow: "4px 0 8px " + alpha(theme.palette.common.black, 0.1)
2151
+ }, tableRowProps == null ? void 0 : tableRowProps.sx);
2152
+ }
2153
+ }), headerGroup.headers.map(function (header, index) {
2129
2154
  return React.createElement(MRT_TableHeadCell, {
2130
2155
  header: header,
2131
2156
  key: header.id || index,
@@ -2335,10 +2360,13 @@ var MRT_TableBodyCell = function MRT_TableBodyCell(_ref) {
2335
2360
  }
2336
2361
  }, tableCellProps, {
2337
2362
  sx: _extends({
2363
+ maxWidth: "min(" + column.getWidth() + "px, fit-content)",
2364
+ minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2338
2365
  p: isDensePadding ? column.columnDefType === 'display' ? '0 0.5rem' : '0.5rem' : column.columnDefType === 'display' ? '0.5rem 0.75rem' : '1rem',
2339
2366
  pl: column.id === 'mrt-expand' ? row.depth + (isDensePadding ? 0.5 : 0.75) + "rem" : undefined,
2340
2367
  transition: 'all 0.2s ease-in-out',
2341
- whiteSpace: isDensePadding || enablePinning && getIsSomeColumnsPinned() ? 'nowrap' : 'normal'
2368
+ whiteSpace: isDensePadding || enablePinning && getIsSomeColumnsPinned() ? 'nowrap' : 'normal',
2369
+ width: column.getWidth()
2342
2370
  }, tableCellProps == null ? void 0 : tableCellProps.sx)
2343
2371
  }), isLoading ? React.createElement(Skeleton, Object.assign({
2344
2372
  animation: "wave",
@@ -2514,8 +2542,11 @@ var MRT_TableFooterCell = function MRT_TableFooterCell(_ref) {
2514
2542
  backgroundColor: theme.palette.background["default"],
2515
2543
  backgroundImage: "linear-gradient(" + alpha(theme.palette.common.white, 0.05) + "," + alpha(theme.palette.common.white, 0.05) + ")",
2516
2544
  fontWeight: 'bold',
2545
+ maxWidth: "min(" + column.getWidth() + "px, " + column.maxWidth + "px)",
2546
+ minWidth: "max(" + column.getWidth() + "px, " + column.minWidth + "px)",
2517
2547
  p: isDensePadding ? '0.5rem' : '1rem',
2518
2548
  transition: "all " + (enableColumnResizing ? '10ms' : '0.2s') + " ease-in-out",
2549
+ width: column.getWidth(),
2519
2550
  verticalAlign: 'text-top'
2520
2551
  }, tableCellProps == null ? void 0 : tableCellProps.sx);
2521
2552
  }
@@ -2613,7 +2644,7 @@ var commonBoxStyles = function commonBoxStyles(_ref) {
2613
2644
  return {
2614
2645
  display: 'grid',
2615
2646
  minWidth: visible ? '200px' : 0,
2616
- overflowX: 'auto',
2647
+ overflowX: pinned ? 'scroll' : 'auto',
2617
2648
  boxShadow: pinned === 'left' ? "0 1px 12px " + alpha(theme.palette.common.black, 0.5) : pinned === 'right' ? "0 -1px 12px " + alpha(theme.palette.common.black, 0.5) : 'none'
2618
2649
  };
2619
2650
  };
@@ -2792,7 +2823,7 @@ var createGroup = function createGroup(table, column, currentFilterTypes) {
2792
2823
  var createDataColumn = function createDataColumn(table, column, currentFilterTypes) {
2793
2824
  return (// @ts-ignore
2794
2825
  table.createDataColumn(column.id, _extends({
2795
- filterType: currentFilterTypes[column.id] || MRT_FILTER_TYPE.BEST_MATCH
2826
+ filterFn: currentFilterTypes[column.id] instanceof Function ? currentFilterTypes[column.id] : defaultFilterFNs[currentFilterTypes[column.id]]
2796
2827
  }, column))
2797
2828
  );
2798
2829
  };
@@ -3004,14 +3035,18 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
3004
3035
  }));
3005
3036
  };
3006
3037
 
3007
- 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"];
3038
+ 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"];
3008
3039
  var MaterialReactTable = (function (_ref) {
3009
3040
  var _ref$autoResetExpande = _ref.autoResetExpanded,
3010
3041
  autoResetExpanded = _ref$autoResetExpande === void 0 ? false : _ref$autoResetExpande,
3042
+ _ref$columnResizeMode = _ref.columnResizeMode,
3043
+ columnResizeMode = _ref$columnResizeMode === void 0 ? 'onEnd' : _ref$columnResizeMode,
3011
3044
  _ref$enableColumnActi = _ref.enableColumnActions,
3012
3045
  enableColumnActions = _ref$enableColumnActi === void 0 ? true : _ref$enableColumnActi,
3013
3046
  _ref$enableColumnFilt = _ref.enableColumnFilters,
3014
3047
  enableColumnFilters = _ref$enableColumnFilt === void 0 ? true : _ref$enableColumnFilt,
3048
+ _ref$enableColumnResi = _ref.enableColumnResizing,
3049
+ enableColumnResizing = _ref$enableColumnResi === void 0 ? false : _ref$enableColumnResi,
3015
3050
  _ref$enableDensePaddi = _ref.enableDensePaddingToggle,
3016
3051
  enableDensePaddingToggle = _ref$enableDensePaddi === void 0 ? true : _ref$enableDensePaddi,
3017
3052
  _ref$enableExpandAll = _ref.enableExpandAll,
@@ -3058,7 +3093,9 @@ var MaterialReactTable = (function (_ref) {
3058
3093
 
3059
3094
  return React.createElement(MRT_TableRoot, Object.assign({
3060
3095
  autoResetExpanded: autoResetExpanded,
3096
+ columnResizeMode: columnResizeMode,
3061
3097
  enableColumnActions: enableColumnActions,
3098
+ enableColumnResizing: enableColumnResizing,
3062
3099
  enableColumnFilters: enableColumnFilters,
3063
3100
  enableDensePaddingToggle: enableDensePaddingToggle,
3064
3101
  enableExpandAll: enableExpandAll,