material-react-table 0.26.4 → 0.27.0

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.
@@ -4,6 +4,7 @@ import { MRT_TableInstance } from '..';
4
4
  export declare const commonToolbarStyles: ({ theme }: {
5
5
  theme: Theme;
6
6
  }) => {
7
+ alignItems: string;
7
8
  backgroundColor: string;
8
9
  backgroundImage: string;
9
10
  display: string;
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.26.4",
2
+ "version": "0.27.0",
3
3
  "license": "MIT",
4
4
  "name": "material-react-table",
5
5
  "description": "A fully featured Material UI implementation of TanStack React Table, inspired by material-table and the MUI X DataGrid, written from the ground up in TypeScript.",
@@ -57,12 +57,12 @@
57
57
  }
58
58
  ],
59
59
  "devDependencies": {
60
- "@babel/core": "^7.18.6",
60
+ "@babel/core": "^7.18.9",
61
61
  "@emotion/react": "^11.9.3",
62
62
  "@emotion/styled": "^11.9.3",
63
63
  "@faker-js/faker": "^7.3.0",
64
64
  "@mui/icons-material": "^5.8.4",
65
- "@mui/material": "^5.9.0",
65
+ "@mui/material": "^5.9.1",
66
66
  "@size-limit/preset-small-lib": "^7.0.8",
67
67
  "@storybook/addon-a11y": "^6.5.9",
68
68
  "@storybook/addon-actions": "^6.5.9",
@@ -134,7 +134,7 @@ export type MRT_TableState<TData extends Record<string, any> = {}> =
134
134
  };
135
135
 
136
136
  export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<
137
- ColumnDef<TData>,
137
+ ColumnDef<TData, unknown>,
138
138
  | 'accessorFn'
139
139
  | 'accessorKey'
140
140
  | 'aggregatedCell'
@@ -215,6 +215,7 @@ export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<
215
215
  * @example columnDefType: 'display'
216
216
  */
217
217
  columnDefType?: 'data' | 'display' | 'group';
218
+ columnFilterModeOptions?: MRT_FilterOption[] | null;
218
219
  columns?: MRT_ColumnDef<TData>[];
219
220
  enableClickToCopy?: boolean;
220
221
  enableColumnActions?: boolean;
@@ -222,7 +223,6 @@ export type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<
222
223
  enableColumnFilterChangeMode?: boolean;
223
224
  enableColumnOrdering?: boolean;
224
225
  enableEditing?: boolean;
225
- enabledColumnFilterOptions?: MRT_FilterOption[] | null;
226
226
  filterFn?: MRT_FilterFn<TData>;
227
227
  filterSelectOptions?: (string | { text: string; value: string })[];
228
228
  /**
@@ -422,6 +422,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
422
422
  displayColumnDefOptions?: Partial<{
423
423
  [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef>;
424
424
  }>;
425
+ columnFilterModeOptions?: (MRT_FilterOption | string)[] | null;
425
426
  columns: MRT_ColumnDef<TData>[];
426
427
  data: TData[];
427
428
  editingMode?: 'table' | 'row' | 'cell';
@@ -449,7 +450,6 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> =
449
450
  enableToolbarBottom?: boolean;
450
451
  enableToolbarInternalActions?: boolean;
451
452
  enableToolbarTop?: boolean;
452
- enabledColumnFilterOptions?: (MRT_FilterOption | string)[] | null;
453
453
  enabledGlobalFilterOptions?: (MRT_FilterOption | string)[] | null;
454
454
  expandRowsFn?: (dataRow: TData) => TData[];
455
455
  icons?: Partial<MRT_Icons>;
@@ -788,7 +788,7 @@ export default <TData extends Record<string, any> = {}>({
788
788
  defaultColumn = { minSize: 40, maxSize: 1000, size: 180 },
789
789
  editingMode = 'row',
790
790
  enableColumnActions = true,
791
- enableColumnFilterChangeMode = true,
791
+ enableColumnFilterChangeMode = false,
792
792
  enableColumnFilters = true,
793
793
  enableColumnOrdering = false,
794
794
  enableColumnResizing = false,
@@ -797,7 +797,7 @@ export default <TData extends Record<string, any> = {}>({
797
797
  enableFilters = true,
798
798
  enableFullScreenToggle = true,
799
799
  enableGlobalFilter = true,
800
- enableGlobalFilterChangeMode = true,
800
+ enableGlobalFilterChangeMode = false,
801
801
  enableGlobalFilterRankedResults = true,
802
802
  enableGrouping = false,
803
803
  enableHiding = true,
@@ -35,6 +35,7 @@ export const MRT_TableBodyCell: FC<Props> = ({
35
35
  enableClickToCopy,
36
36
  enableColumnOrdering,
37
37
  enableEditing,
38
+ enablePagination,
38
39
  enableRowNumbers,
39
40
  muiTableBodyCellProps,
40
41
  muiTableBodyCellSkeletonProps,
@@ -147,7 +148,12 @@ export const MRT_TableBodyCell: FC<Props> = ({
147
148
  borderLeft: draggingBorder,
148
149
  borderRight: draggingBorder,
149
150
  borderBottom:
150
- row.index === table.getRowModel().rows.length - 1
151
+ row.index ===
152
+ (enablePagination
153
+ ? table.getRowModel()
154
+ : table.getPrePaginationRowModel()
155
+ ).rows.length -
156
+ 1
151
157
  ? draggingBorder
152
158
  : undefined,
153
159
  }
@@ -43,6 +43,7 @@ export const MRT_ExpandAllButton: FC<Props> = ({ table }) => {
43
43
  sx={{
44
44
  height: density === 'compact' ? '1.75rem' : '2.25rem',
45
45
  width: density === 'compact' ? '1.75rem' : '2.25rem',
46
+ mt: density !== 'compact' ? '-0.25rem' : undefined,
46
47
  ...iconButtonProps?.sx,
47
48
  }}
48
49
  >
@@ -128,12 +128,10 @@ export const MRT_TableHeadCell: FC<Props> = ({ header, table }) => {
128
128
  : 1,
129
129
  p:
130
130
  density === 'compact'
131
- ? columnDefType === 'display'
132
- ? '0 0.5rem'
133
- : '0.5rem'
131
+ ? '0.5rem'
134
132
  : density === 'comfortable'
135
133
  ? columnDefType === 'display'
136
- ? '0.5rem 0.75rem'
134
+ ? '0.75rem'
137
135
  : '1rem'
138
136
  : columnDefType === 'display'
139
137
  ? '1rem 1.25rem'
@@ -33,7 +33,7 @@ export const MRT_FilterTextField: FC<Props> = ({
33
33
  getState,
34
34
  options: {
35
35
  enableColumnFilterChangeMode,
36
- enabledColumnFilterOptions,
36
+ columnFilterModeOptions,
37
37
  icons: { FilterListIcon, CloseIcon },
38
38
  localization,
39
39
  muiTableHeadCellFilterTextFieldProps,
@@ -152,7 +152,7 @@ export const MRT_FilterTextField: FC<Props> = ({
152
152
  : '';
153
153
 
154
154
  const allowedColumnFilterOptions =
155
- columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;
155
+ columnDef?.columnFilterModeOptions ?? columnFilterModeOptions;
156
156
 
157
157
  const showChangeModeButton =
158
158
  enableColumnFilterChangeMode &&
@@ -260,7 +260,6 @@ export const MRT_FilterTextField: FC<Props> = ({
260
260
  }}
261
261
  {...textFieldProps}
262
262
  sx={(theme) => ({
263
- m: '-0.25rem',
264
263
  p: 0,
265
264
  minWidth: !filterChipLabel ? '8rem' : 'auto',
266
265
  width: 'calc(100% + 0.5rem)',
@@ -59,9 +59,9 @@ export const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, table }) => {
59
59
  size={density === 'compact' ? 'small' : 'medium'}
60
60
  {...checkboxProps}
61
61
  sx={(theme) => ({
62
- height: density === 'compact' ? '1.5rem' : '2rem',
63
- width: density === 'compact' ? '1.5rem' : '2rem',
64
- m: '-1re.m',
62
+ height: density === 'compact' ? '1.75rem' : '2.5rem',
63
+ width: density === 'compact' ? '1.75rem' : '2.5rem',
64
+ m: density !== 'compact' ? '-0.4rem' : undefined,
65
65
  ...(checkboxProps?.sx instanceof Function
66
66
  ? checkboxProps.sx(theme)
67
67
  : (checkboxProps?.sx as any)),
@@ -41,7 +41,7 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
41
41
  enableHiding,
42
42
  enablePinning,
43
43
  enableSorting,
44
- enabledColumnFilterOptions,
44
+ columnFilterModeOptions,
45
45
  icons: {
46
46
  ArrowRightIcon,
47
47
  ClearAllIcon,
@@ -145,7 +145,7 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
145
145
  const isSelectFilter = !!columnDef.filterSelectOptions;
146
146
 
147
147
  const allowedColumnFilterOptions =
148
- columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;
148
+ columnDef?.columnFilterModeOptions ?? columnFilterModeOptions;
149
149
 
150
150
  const showFilterModeSubMenu =
151
151
  enableColumnFilterChangeMode &&
@@ -21,7 +21,7 @@ export const MRT_FilterOptionMenu: FC<Props> = ({
21
21
  getState,
22
22
  options: {
23
23
  enabledGlobalFilterOptions,
24
- enabledColumnFilterOptions,
24
+ columnFilterModeOptions,
25
25
  localization,
26
26
  },
27
27
  setCurrentFilterFns,
@@ -32,7 +32,7 @@ export const MRT_FilterOptionMenu: FC<Props> = ({
32
32
  const { columnDef } = column ?? {};
33
33
 
34
34
  const allowedColumnFilterOptions =
35
- columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;
35
+ columnDef?.columnFilterModeOptions ?? columnFilterModeOptions;
36
36
 
37
37
  const filterOptions = useMemo(
38
38
  () =>
@@ -31,10 +31,7 @@ export const MRT_ToolbarBottom: FC<Props> = ({ table }) => {
31
31
  ? muiTableToolbarBottomProps({ table })
32
32
  : muiTableToolbarBottomProps;
33
33
 
34
- const stackAlertBanner =
35
- isMobile ||
36
- (positionToolbarAlertBanner === 'bottom' &&
37
- !!renderToolbarBottomCustomActions);
34
+ const stackAlertBanner = isMobile || !!renderToolbarBottomCustomActions;
38
35
 
39
36
  return (
40
37
  <Toolbar
@@ -1,13 +1,14 @@
1
1
  import React, { FC } from 'react';
2
2
  import { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';
3
- import { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';
4
- import { MRT_TablePagination } from './MRT_TablePagination';
5
- import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';
3
+ import { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';
6
4
  import { MRT_LinearProgressBar } from './MRT_LinearProgressBar';
7
5
  import { MRT_TableInstance } from '..';
8
- import { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';
6
+ import { MRT_TablePagination } from './MRT_TablePagination';
7
+ import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';
8
+ import { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';
9
9
 
10
10
  export const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({
11
+ alignItems: 'flex-start',
11
12
  backgroundColor: lighten(theme.palette.background.default, 0.04),
12
13
  backgroundImage: 'none',
13
14
  display: 'grid',
@@ -48,9 +49,7 @@ export const MRT_ToolbarTop: FC<Props> = ({ table }) => {
48
49
  : muiTableToolbarTopProps;
49
50
 
50
51
  const stackAlertBanner =
51
- isMobile ||
52
- (positionToolbarAlertBanner === 'top' &&
53
- (!!renderToolbarTopCustomActions || showGlobalFilter));
52
+ isMobile || !!renderToolbarTopCustomActions || showGlobalFilter;
54
53
 
55
54
  return (
56
55
  <Toolbar