material-react-table 0.15.0 → 0.16.1

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.
@@ -94,9 +94,9 @@ export declare type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<Col
94
94
  columns?: MRT_ColumnDef<D>[];
95
95
  enableClickToCopy?: boolean;
96
96
  enableColumnActions?: boolean;
97
+ enableColumnFilterChangeMode?: boolean;
97
98
  enableColumnOrdering?: boolean;
98
99
  enableEditing?: boolean;
99
- enableColumnFilterChangeMode?: boolean;
100
100
  enabledColumnFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;
101
101
  filterFn?: MRT_FilterFn;
102
102
  filterSelectOptions?: (string | {
@@ -55,11 +55,11 @@ export interface MRT_Localization {
55
55
  sortedByColumnAsc: string;
56
56
  sortedByColumnDesc: string;
57
57
  thenBy: string;
58
- to: string;
59
58
  toggleDensity: string;
60
59
  toggleFullScreen: string;
61
60
  toggleSelectAll: string;
62
61
  toggleSelectRow: string;
62
+ toggleVisibility: string;
63
63
  ungroupByColumn: string;
64
64
  unpin: string;
65
65
  unpinAll: string;
@@ -105,11 +105,11 @@ var MRT_DefaultLocalization_EN = {
105
105
  sortedByColumnAsc: 'Sorted by {column} ascending',
106
106
  sortedByColumnDesc: 'Sorted by {column} descending',
107
107
  thenBy: ', then by ',
108
- to: 'to',
109
108
  toggleDensity: 'Toggle density',
110
109
  toggleFullScreen: 'Toggle full screen',
111
110
  toggleSelectAll: 'Toggle select all',
112
111
  toggleSelectRow: 'Toggle select row',
112
+ toggleVisibility: 'Toggle visibility',
113
113
  ungroupByColumn: 'Ungroup by {column}',
114
114
  unpin: 'Unpin',
115
115
  unpinAll: 'Unpin all',
@@ -3434,6 +3434,9 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3434
3434
  var getState = instance.getState,
3435
3435
  _instance$options = instance.options,
3436
3436
  enableColumnOrdering = _instance$options.enableColumnOrdering,
3437
+ enableHiding = _instance$options.enableHiding,
3438
+ enablePinning = _instance$options.enablePinning,
3439
+ localization = _instance$options.localization,
3437
3440
  onColumnVisibilityChanged = _instance$options.onColumnVisibilityChanged,
3438
3441
  setColumnOrder = instance.setColumnOrder;
3439
3442
 
@@ -3504,15 +3507,23 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3504
3507
  flexWrap: 'nowrap',
3505
3508
  gap: '8px'
3506
3509
  }
3507
- }, columnDefType !== 'group' && enableColumnOrdering && columnDef.enableColumnOrdering !== false && !allColumns.some(function (col) {
3510
+ }, columnDefType !== 'group' && enableColumnOrdering && !allColumns.some(function (col) {
3508
3511
  return col.columnDefType === 'group';
3509
- }) && React__default.createElement(MRT_GrabHandleButton, {
3512
+ }) && (columnDef.enableColumnOrdering !== false ? React__default.createElement(MRT_GrabHandleButton, {
3510
3513
  ref: dragRef,
3511
3514
  instance: instance
3512
- }), !isSubMenu && column.getCanPin() && React__default.createElement(MRT_ColumnPinningButtons, {
3515
+ }) : React__default.createElement(material.Box, {
3516
+ sx: {
3517
+ width: '28px'
3518
+ }
3519
+ })), enablePinning && !isSubMenu && (column.getCanPin() ? React__default.createElement(MRT_ColumnPinningButtons, {
3513
3520
  column: column,
3514
3521
  instance: instance
3515
- }), React__default.createElement(material.FormControlLabel, {
3522
+ }) : React__default.createElement(material.Box, {
3523
+ sx: {
3524
+ width: '70px'
3525
+ }
3526
+ })), enableHiding ? React__default.createElement(material.FormControlLabel, {
3516
3527
  componentsProps: {
3517
3528
  typography: {
3518
3529
  sx: {
@@ -3522,13 +3533,22 @@ var MRT_ShowHideColumnsMenuItems = function MRT_ShowHideColumnsMenuItems(_ref) {
3522
3533
  }
3523
3534
  },
3524
3535
  checked: switchChecked,
3525
- control: React__default.createElement(material.Switch, null),
3536
+ control: React__default.createElement(material.Tooltip, {
3537
+ arrow: true,
3538
+ enterDelay: 1000,
3539
+ enterNextDelay: 1000,
3540
+ title: localization.toggleVisibility
3541
+ }, React__default.createElement(material.Switch, null)),
3526
3542
  disabled: isSubMenu && switchChecked || !column.getCanHide() || column.getIsGrouped(),
3527
3543
  label: columnDef.header,
3528
3544
  onChange: function onChange() {
3529
3545
  return handleToggleColumnHidden(column);
3530
3546
  }
3531
- }))), (_column$columns2 = column.columns) == null ? void 0 : _column$columns2.map(function (c, i) {
3547
+ }) : React__default.createElement(material.Typography, {
3548
+ sx: {
3549
+ alignSelf: 'center'
3550
+ }
3551
+ }, columnDef.header))), (_column$columns2 = column.columns) == null ? void 0 : _column$columns2.map(function (c, i) {
3532
3552
  return React__default.createElement(MRT_ShowHideColumnsMenuItems, {
3533
3553
  allColumns: allColumns,
3534
3554
  key: i + "-" + c.id,
@@ -5400,11 +5420,13 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
5400
5420
  var instance = _ref.instance;
5401
5421
  var _instance$options = instance.options,
5402
5422
  enableColumnFilters = _instance$options.enableColumnFilters,
5423
+ enableColumnOrdering = _instance$options.enableColumnOrdering,
5403
5424
  enableDensityToggle = _instance$options.enableDensityToggle,
5404
5425
  enableFilters = _instance$options.enableFilters,
5405
5426
  enableFullScreenToggle = _instance$options.enableFullScreenToggle,
5406
5427
  enableGlobalFilter = _instance$options.enableGlobalFilter,
5407
5428
  enableHiding = _instance$options.enableHiding,
5429
+ enablePinning = _instance$options.enablePinning,
5408
5430
  positionGlobalFilter = _instance$options.positionGlobalFilter,
5409
5431
  renderToolbarInternalActions = _instance$options.renderToolbarInternalActions;
5410
5432
  return React__default.createElement(material.Box, {
@@ -5426,7 +5448,7 @@ var MRT_ToolbarInternalButtons = function MRT_ToolbarInternalButtons(_ref) {
5426
5448
  instance: instance
5427
5449
  }), enableFilters && enableColumnFilters && React__default.createElement(MRT_ToggleFiltersButton, {
5428
5450
  instance: instance
5429
- }), enableHiding && React__default.createElement(MRT_ShowHideColumnsButton, {
5451
+ }), (enableHiding || enableColumnOrdering || enablePinning) && React__default.createElement(MRT_ShowHideColumnsButton, {
5430
5452
  instance: instance
5431
5453
  }), enableDensityToggle && React__default.createElement(MRT_ToggleDensePaddingButton, {
5432
5454
  instance: instance
@@ -5729,7 +5751,7 @@ var MRT_ToolbarBottom = function MRT_ToolbarBottom(_ref) {
5729
5751
  };
5730
5752
 
5731
5753
  var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5732
- var _localization$filterB, _columnDef$enabledCol, _allowedColumnFilterO, _localization$filterM, _localization$, _localization$clearFi, _columnDef$filterSele;
5754
+ var _localization$filterB, _columnDef$enabledCol, _allowedColumnFilterO, _localization$filterM, _localization, _localization$clearFi, _columnDef$filterSele;
5733
5755
 
5734
5756
  var header = _ref.header,
5735
5757
  inputIndex = _ref.inputIndex,
@@ -5877,7 +5899,7 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5877
5899
  helperText: allowColumnChangeMode && !inputIndex && (allowedColumnFilterOptions === undefined || ((_allowedColumnFilterO = allowedColumnFilterOptions == null ? void 0 : allowedColumnFilterOptions.length) != null ? _allowedColumnFilterO : 0) > 0) ? React__default.createElement("label", {
5878
5900
  htmlFor: filterId
5879
5901
  }, filterFn instanceof Function ? (_localization$filterM = localization.filterMode.replace('{filterType}', // @ts-ignore
5880
- (_localization$ = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization$ : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
5902
+ (_localization = localization["filter" + (filterFn.name.charAt(0).toUpperCase() + filterFn.name.slice(1))]) != null ? _localization : '')) != null ? _localization$filterM : '' : localization.filterMode.replace('{filterType}', // @ts-ignore
5881
5903
  localization["filter" + (filterFn.charAt(0).toUpperCase() + filterFn.slice(1))])) : null,
5882
5904
  FormHelperTextProps: {
5883
5905
  sx: {
@@ -5972,23 +5994,17 @@ var MRT_FilterTextField = function MRT_FilterTextField(_ref) {
5972
5994
  var MRT_FilterRangeFields = function MRT_FilterRangeFields(_ref) {
5973
5995
  var header = _ref.header,
5974
5996
  instance = _ref.instance;
5975
- var localization = instance.options.localization;
5976
5997
  return React__default.createElement(material.Box, {
5977
5998
  sx: {
5978
5999
  display: 'grid',
5979
- gridTemplateColumns: '6fr auto 5fr'
6000
+ gridTemplateColumns: '6fr 6fr',
6001
+ gap: '1rem'
5980
6002
  }
5981
6003
  }, React__default.createElement(MRT_FilterTextField, {
5982
6004
  header: header,
5983
6005
  inputIndex: 0,
5984
6006
  instance: instance
5985
- }), React__default.createElement(material.Box, {
5986
- sx: {
5987
- width: '100%',
5988
- minWidth: '5ch',
5989
- textAlign: 'center'
5990
- }
5991
- }, localization.to), React__default.createElement(MRT_FilterTextField, {
6007
+ }), React__default.createElement(MRT_FilterTextField, {
5992
6008
  header: header,
5993
6009
  inputIndex: 1,
5994
6010
  instance: instance
@@ -6089,7 +6105,6 @@ var MRT_TableHeadCellResizeHandle = function MRT_TableHeadCellResizeHandle(_ref)
6089
6105
  touchAction: 'none',
6090
6106
  transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',
6091
6107
  userSelect: 'none',
6092
- zIndex: 2000,
6093
6108
  '&:active': {
6094
6109
  backgroundColor: theme.palette.info.main,
6095
6110
  opacity: 1
@@ -7314,7 +7329,7 @@ var rankGlobalFuzzy = function rankGlobalFuzzy(rowA, rowB) {
7314
7329
  var MRT_TableBody = function MRT_TableBody(_ref) {
7315
7330
  var instance = _ref.instance,
7316
7331
  tableContainerRef = _ref.tableContainerRef;
7317
- var getPaginationRowModel = instance.getPaginationRowModel,
7332
+ var getRowModel = instance.getRowModel,
7318
7333
  getPrePaginationRowModel = instance.getPrePaginationRowModel,
7319
7334
  getState = instance.getState,
7320
7335
  _instance$options = instance.options,
@@ -7327,13 +7342,19 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
7327
7342
  var _getState = getState(),
7328
7343
  density = _getState.density,
7329
7344
  globalFilter = _getState.globalFilter,
7330
- pagination = _getState.pagination;
7345
+ pagination = _getState.pagination,
7346
+ sorting = _getState.sorting;
7331
7347
 
7332
7348
  var tableBodyProps = muiTableBodyProps instanceof Function ? muiTableBodyProps({
7333
7349
  instance: instance
7334
7350
  }) : muiTableBodyProps;
7351
+
7352
+ var getIsSomeColumnsSorted = function getIsSomeColumnsSorted() {
7353
+ return Object.values(sorting).some(Boolean);
7354
+ };
7355
+
7335
7356
  var rows = React.useMemo(function () {
7336
- if (enableGlobalFilterRankedResults && globalFilter) {
7357
+ if (enableGlobalFilterRankedResults && globalFilter && !getIsSomeColumnsSorted()) {
7337
7358
  var rankedRows = getPrePaginationRowModel().rows.sort(function (a, b) {
7338
7359
  return rankGlobalFuzzy(a, b);
7339
7360
  });
@@ -7345,8 +7366,8 @@ var MRT_TableBody = function MRT_TableBody(_ref) {
7345
7366
  return rankedRows;
7346
7367
  }
7347
7368
 
7348
- return enablePagination ? getPaginationRowModel().rows : getPrePaginationRowModel().rows;
7349
- }, [enableGlobalFilterRankedResults, enableGlobalFilterRankedResults && globalFilter || !enablePagination ? getPrePaginationRowModel().rows : getPaginationRowModel().rows, globalFilter]);
7369
+ return enablePagination ? getRowModel().rows : getPrePaginationRowModel().rows;
7370
+ }, [enableGlobalFilterRankedResults, enableGlobalFilterRankedResults && globalFilter || !enablePagination ? getPrePaginationRowModel().rows : getRowModel().rows, globalFilter]);
7350
7371
  var rowVirtualizer = enableRowVirtualization ? useVirtual(_extends({
7351
7372
  overscan: density === 'compact' ? 20 : 10,
7352
7373
  size: rows.length,
@@ -7572,7 +7593,8 @@ var MRT_TablePaper = function MRT_TablePaper(_ref) {
7572
7593
  }, tablePaperProps, {
7573
7594
  sx: _extends({
7574
7595
  transition: 'all 0.2s ease-in-out'
7575
- }, tablePaperProps == null ? void 0 : tablePaperProps.sx, {
7596
+ }, tablePaperProps == null ? void 0 : tablePaperProps.sx),
7597
+ style: _extends({}, tablePaperProps == null ? void 0 : tablePaperProps.style, {
7576
7598
  height: isFullScreen ? '100vh' : undefined,
7577
7599
  margin: isFullScreen ? '0' : undefined,
7578
7600
  maxHeight: isFullScreen ? '100vh' : undefined,
@@ -7722,7 +7744,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7722
7744
  id: 'mrt-expand',
7723
7745
  muiTableBodyCellProps: props.muiTableBodyCellProps,
7724
7746
  muiTableHeadCellProps: props.muiTableHeadCellProps,
7725
- size: 50
7747
+ size: 60
7726
7748
  }), columnOrder.includes('mrt-select') && createDisplayColumn(table, {
7727
7749
  Cell: function Cell(_ref5) {
7728
7750
  var cell = _ref5.cell;
@@ -7741,7 +7763,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7741
7763
  id: 'mrt-select',
7742
7764
  muiTableBodyCellProps: props.muiTableBodyCellProps,
7743
7765
  muiTableHeadCellProps: props.muiTableHeadCellProps,
7744
- size: 50
7766
+ size: 60
7745
7767
  }), columnOrder.includes('mrt-row-numbers') && createDisplayColumn(table, {
7746
7768
  Cell: function Cell(_ref6) {
7747
7769
  var cell = _ref6.cell;
@@ -7756,7 +7778,7 @@ var MRT_TableRoot = function MRT_TableRoot(props) {
7756
7778
  id: 'mrt-row-numbers',
7757
7779
  muiTableBodyCellProps: props.muiTableBodyCellProps,
7758
7780
  muiTableHeadCellProps: props.muiTableHeadCellProps,
7759
- size: 50
7781
+ size: 60
7760
7782
  })].filter(Boolean);
7761
7783
  }, [columnOrder, props.editingMode, props.enableEditing, props.enableExpandAll, props.enableExpanding, props.enableGrouping, props.enableRowActions, props.enableRowNumbers, props.enableRowSelection, props.enableSelectAll, props.localization, props.muiTableBodyCellProps, props.muiTableHeadCellProps, props.positionActionsColumn, table]);
7762
7784
  var columns = React.useMemo(function () {