material-react-table 0.40.11 → 1.0.0-beta.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.
package/README.md CHANGED
@@ -1,9 +1,5 @@
1
1
  # Material React Table
2
2
 
3
- __Built with [Material UI <sup>V5</sup>](https://mui.com) and [TanStack Table <sup>V8</sup>](https://tanstack.com/table/v8)__
4
-
5
- _Quickly Create React Data Tables with Material Design_
6
-
7
3
  <a href="https://npmjs.com/package/material-react-table" target="_blank">
8
4
  <img alt="" src="https://badgen.net/npm/v/material-react-table?color=blue" />
9
5
  </a>
@@ -25,12 +21,11 @@ _Quickly Create React Data Tables with Material Design_
25
21
 
26
22
  ## About
27
23
 
28
- > This project is still in alpha, but is expected to enter beta by August 2022, and a stable 1.0 release shortly thereafter.
24
+ > Now in Beta!
29
25
 
30
- - A fully featured Material UI V5 implementation of Tanstack React Table V8
31
- - Inspired by material-table and the MUI X DataGrid
32
- - Written from the ground up in TypeScript
33
- - All internal Material UI components are easily customizable
26
+ __Built with [Material UI <sup>V5</sup>](https://mui.com) and [TanStack Table <sup>V8</sup>](https://tanstack.com/table/v8)__
27
+
28
+ _Quickly Create React Data Tables with Material Design_
34
29
 
35
30
  Join the [Discord](https://discord.gg/5wqyRx6fnm) server to join in on the development discussion or ask questions
36
31
 
@@ -114,7 +109,7 @@ npm install material-react-table
114
109
  > Read the full usage docs [here](https://www.material-react-table.com/docs/getting-started/usage/)
115
110
 
116
111
  ```jsx
117
- import React, { useMemo, useState, useEffect } from 'react';
112
+ import React, { useMemo, useRef, useState, useEffect } from 'react';
118
113
  import MaterialReactTable from 'material-react-table';
119
114
 
120
115
  export default function App() {
@@ -129,7 +124,7 @@ export default function App() {
129
124
  accessorFn: (row) => row.age, //alternate way
130
125
  id: 'age', //id required if you use accessorFn instead of accessorKey
131
126
  header: 'Age',
132
- Header: <i style={{ color: 'red' }}>Age</i>, //optional custom markup
127
+ Header: <i>Age</i>, //optional custom markup
133
128
  },
134
129
  ],
135
130
  [],
@@ -156,15 +151,24 @@ export default function App() {
156
151
  //do something when the row selection changes
157
152
  }, [rowSelection]);
158
153
 
154
+ //Or, optionally, you can get a reference to the underlying table instance
155
+ const tableInstanceRef = useRef(null);
156
+
157
+ const someEventHandler = () => {
158
+ //read the table state during an event from the table instance ref
159
+ console.log(tableInstanceRef.current.getState().sorting);
160
+ }
161
+
159
162
  return (
160
163
  <MaterialReactTable
161
164
  columns={columns}
162
165
  data={data}
163
166
  enableColumnOrdering //enable some features
164
167
  enableRowSelection
165
- enableStickyHeader
168
+ enablePagination={false} //disable a default feature
166
169
  onRowSelectionChange={setRowSelection} //hoist internal state to your own state (optional)
167
170
  state={{ rowSelection }} //manage your own state, pass it back to the table (optional)
171
+ tableInstanceRef={tableInstanceRef} //get a reference to the underlying table instance (optional)
168
172
  />
169
173
  );
170
174
  }
@@ -178,4 +182,4 @@ _Open in [Code Sandbox](https://codesandbox.io/s/simple-material-react-table-exa
178
182
  <img src="https://contrib.rocks/image?repo=kevinvandy/material-react-table" />
179
183
  </a>
180
184
 
181
- PRs are Welcome, but please discuss in [GitHub Discussions](https://github.com/KevinVandy/material-react-table/discussions) or the [Discord Server](https://discord.gg/5wqyRx6fnm) first!
185
+ PRs are Welcome, but please discuss in [GitHub Discussions](https://github.com/KevinVandy/material-react-table/discussions) or the [Discord Server](https://discord.gg/5wqyRx6fnm) first if it is a large change!
@@ -231,7 +231,8 @@ export declare type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit
231
231
  }) => ReactNode[];
232
232
  sortingFn?: MRT_SortingFn;
233
233
  };
234
- export declare type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id'> & {
234
+ export declare type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<MRT_ColumnDef<TData>, 'id' | 'defaultDisplayColumn'> & {
235
+ defaultDisplayColumn: Partial<MRT_ColumnDef<TData>>;
235
236
  id: string;
236
237
  _filterFn: MRT_FilterOption;
237
238
  };
@@ -283,6 +284,7 @@ export declare type MaterialReactTableProps<TData extends Record<string, any> =
283
284
  columns: MRT_ColumnDef<TData>[];
284
285
  data: TData[];
285
286
  defaultColumn?: Partial<MRT_ColumnDef<TData>>;
287
+ defaultDisplayColumn?: Partial<MRT_ColumnDef<TData>>;
286
288
  displayColumnDefOptions?: Partial<{
287
289
  [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef>;
288
290
  }>;
@@ -532,5 +534,5 @@ export declare type Virtualizer = {
532
534
  scrollToIndex: (index: number, options?: any | undefined) => void;
533
535
  measure: () => void;
534
536
  };
535
- declare const _default: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarInternalActions, enableTopToolbar, filterFns, icons, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, sortingFns, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
537
+ declare const _default: <TData extends Record<string, any> = {}>({ aggregationFns, autoResetExpanded, columnResizeMode, defaultColumn, defaultDisplayColumn, editingMode, enableBottomToolbar, enableColumnActions, enableColumnFilters, enableColumnOrdering, enableColumnResizing, enableDensityToggle, enableExpandAll, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableGlobalFilterRankedResults, enableGrouping, enableHiding, enableMultiRowSelection, enableMultiSort, enablePagination, enablePinning, enableRowSelection, enableSelectAll, enableSorting, enableStickyHeader, enableTableFooter, enableTableHead, enableToolbarInternalActions, enableTopToolbar, filterFns, icons, localization, positionActionsColumn, positionExpandColumn, positionGlobalFilter, positionPagination, positionToolbarAlertBanner, positionToolbarDropZone, rowNumberMode, selectAllMode, sortingFns, ...rest }: MaterialReactTableProps<TData>) => JSX.Element;
536
538
  export default _default;
@@ -2,85 +2,90 @@ import { ColumnOrderState, GroupingState } from '@tanstack/react-table';
2
2
  import { MaterialReactTableProps, MRT_Column, MRT_ColumnDef, MRT_DefinedColumnDef, MRT_DisplayColumnIds, MRT_FilterOption } from '.';
3
3
  import { MRT_FilterFns } from './filterFns';
4
4
  import { MRT_SortingFns } from './sortingFns';
5
- export declare const defaultDisplayColumnDefOptions: Partial<MRT_ColumnDef<{}>>;
6
5
  export declare const getColumnId: <TData extends Record<string, any> = {}>(columnDef: MRT_ColumnDef<TData>) => string;
7
6
  export declare const getAllLeafColumnDefs: <TData extends Record<string, any> = {}>(columns: MRT_ColumnDef<TData>[]) => MRT_ColumnDef<TData>[];
8
- export declare const prepareColumns: <TData extends Record<string, any> = {}>(columnDefs: MRT_ColumnDef<TData>[], columnFilterFns: {
9
- [key: string]: MRT_FilterOption;
10
- }, filterFns: {
11
- between: {
12
- <TData_1 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_1>, id: string, filterValues: [string | number, string | number]): boolean;
13
- autoRemove(val: any): boolean;
7
+ export declare const prepareColumns: <TData extends Record<string, any> = {}>({ columnDefs, columnFilterFns, defaultDisplayColumn, filterFns, sortingFns, }: {
8
+ columnDefs: MRT_ColumnDef<TData>[];
9
+ columnFilterFns: {
10
+ [key: string]: MRT_FilterOption;
14
11
  };
15
- betweenInclusive: {
16
- <TData_2 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_2>, id: string, filterValues: [string | number, string | number]): boolean;
17
- autoRemove(val: any): boolean;
18
- };
19
- contains: {
20
- <TData_3 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_3>, id: string, filterValue: string | number): boolean;
21
- autoRemove(val: any): boolean;
22
- };
23
- empty: {
24
- <TData_4 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_4>, id: string, _filterValue: string | number): boolean;
25
- autoRemove(val: any): boolean;
26
- };
27
- endsWith: {
28
- <TData_5 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_5>, id: string, filterValue: string | number): boolean;
29
- autoRemove(val: any): boolean;
30
- };
31
- equals: {
32
- <TData_6 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_6>, id: string, filterValue: string | number): boolean;
33
- autoRemove(val: any): boolean;
34
- };
35
- fuzzy: {
36
- <TData_7 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_7>, columnId: string, filterValue: string | number, addMeta: (item: import("@tanstack/match-sorter-utils").RankingInfo) => void): boolean;
37
- autoRemove(val: any): boolean;
38
- };
39
- greaterThan: {
40
- <TData_8 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_8>, id: string, filterValue: string | number): boolean;
41
- autoRemove(val: any): boolean;
42
- };
43
- greaterThanOrEqualTo: {
44
- <TData_9 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_9>, id: string, filterValue: string | number): boolean;
45
- autoRemove(val: any): boolean;
46
- };
47
- lessThan: {
48
- <TData_10 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_10>, id: string, filterValue: string | number): boolean;
49
- autoRemove(val: any): boolean;
50
- };
51
- lessThanOrEqualTo: {
52
- <TData_11 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_11>, id: string, filterValue: string | number): boolean;
53
- autoRemove(val: any): boolean;
54
- };
55
- notEmpty: {
56
- <TData_12 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_12>, id: string, _filterValue: string | number): boolean;
57
- autoRemove(val: any): boolean;
58
- };
59
- notEquals: {
60
- <TData_13 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_13>, id: string, filterValue: string | number): boolean;
61
- autoRemove(val: any): boolean;
62
- };
63
- startsWith: {
64
- <TData_14 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_14>, id: string, filterValue: string | number): boolean;
65
- autoRemove(val: any): boolean;
66
- };
67
- includesString: import("@tanstack/table-core").FilterFn<any>;
68
- includesStringSensitive: import("@tanstack/table-core").FilterFn<any>;
69
- equalsString: import("@tanstack/table-core").FilterFn<any>;
70
- arrIncludes: import("@tanstack/table-core").FilterFn<any>;
71
- arrIncludesAll: import("@tanstack/table-core").FilterFn<any>;
72
- arrIncludesSome: import("@tanstack/table-core").FilterFn<any>;
73
- weakEquals: import("@tanstack/table-core").FilterFn<any>;
74
- inNumberRange: import("@tanstack/table-core").FilterFn<any>;
75
- } & Record<string, import("@tanstack/table-core").FilterFn<any>>, sortingFns: {
76
- fuzzy: <TData_15 extends Record<string, any> = {}>(rowA: import("@tanstack/table-core").Row<TData_15>, rowB: import("@tanstack/table-core").Row<TData_15>, columnId: string) => number;
77
- alphanumeric: import("@tanstack/table-core").SortingFn<any>;
78
- alphanumericCaseSensitive: import("@tanstack/table-core").SortingFn<any>;
79
- text: import("@tanstack/table-core").SortingFn<any>;
80
- textCaseSensitive: import("@tanstack/table-core").SortingFn<any>;
81
- datetime: import("@tanstack/table-core").SortingFn<any>;
82
- basic: import("@tanstack/table-core").SortingFn<any>;
83
- } & Record<string, import("@tanstack/table-core").SortingFn<any>>) => MRT_DefinedColumnDef<TData>[];
12
+ defaultDisplayColumn: Partial<MRT_ColumnDef<TData>>;
13
+ filterFns: {
14
+ between: {
15
+ <TData_1 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_1>, id: string, filterValues: [string | number, string | number]): boolean;
16
+ autoRemove(val: any): boolean;
17
+ };
18
+ betweenInclusive: {
19
+ <TData_2 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_2>, id: string, filterValues: [string | number, string | number]): boolean;
20
+ autoRemove(val: any): boolean;
21
+ };
22
+ contains: {
23
+ <TData_3 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_3>, id: string, filterValue: string | number): boolean;
24
+ autoRemove(val: any): boolean;
25
+ };
26
+ empty: {
27
+ <TData_4 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_4>, id: string, _filterValue: string | number): boolean;
28
+ autoRemove(val: any): boolean;
29
+ };
30
+ endsWith: {
31
+ <TData_5 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_5>, id: string, filterValue: string | number): boolean;
32
+ autoRemove(val: any): boolean;
33
+ };
34
+ equals: {
35
+ <TData_6 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_6>, id: string, filterValue: string | number): boolean;
36
+ autoRemove(val: any): boolean;
37
+ };
38
+ fuzzy: {
39
+ <TData_7 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_7>, columnId: string, filterValue: string | number, addMeta: (item: import("@tanstack/match-sorter-utils").RankingInfo) => void): boolean;
40
+ autoRemove(val: any): boolean;
41
+ };
42
+ greaterThan: {
43
+ <TData_8 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_8>, id: string, filterValue: string | number): boolean;
44
+ autoRemove(val: any): boolean;
45
+ };
46
+ greaterThanOrEqualTo: {
47
+ <TData_9 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_9>, id: string, filterValue: string | number): boolean;
48
+ autoRemove(val: any): boolean;
49
+ };
50
+ lessThan: {
51
+ <TData_10 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_10>, id: string, filterValue: string | number): boolean;
52
+ autoRemove(val: any): boolean;
53
+ };
54
+ lessThanOrEqualTo: {
55
+ <TData_11 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_11>, id: string, filterValue: string | number): boolean;
56
+ autoRemove(val: any): boolean;
57
+ };
58
+ notEmpty: {
59
+ <TData_12 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_12>, id: string, _filterValue: string | number): boolean;
60
+ autoRemove(val: any): boolean;
61
+ };
62
+ notEquals: {
63
+ <TData_13 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_13>, id: string, filterValue: string | number): boolean;
64
+ autoRemove(val: any): boolean;
65
+ };
66
+ startsWith: {
67
+ <TData_14 extends Record<string, any> = {}>(row: import("@tanstack/table-core").Row<TData_14>, id: string, filterValue: string | number): boolean;
68
+ autoRemove(val: any): boolean;
69
+ };
70
+ includesString: import("@tanstack/table-core").FilterFn<any>;
71
+ includesStringSensitive: import("@tanstack/table-core").FilterFn<any>;
72
+ equalsString: import("@tanstack/table-core").FilterFn<any>;
73
+ arrIncludes: import("@tanstack/table-core").FilterFn<any>;
74
+ arrIncludesAll: import("@tanstack/table-core").FilterFn<any>;
75
+ arrIncludesSome: import("@tanstack/table-core").FilterFn<any>;
76
+ weakEquals: import("@tanstack/table-core").FilterFn<any>;
77
+ inNumberRange: import("@tanstack/table-core").FilterFn<any>;
78
+ } & Record<string, import("@tanstack/table-core").FilterFn<any>>;
79
+ sortingFns: {
80
+ fuzzy: <TData_15 extends Record<string, any> = {}>(rowA: import("@tanstack/table-core").Row<TData_15>, rowB: import("@tanstack/table-core").Row<TData_15>, columnId: string) => number;
81
+ alphanumeric: import("@tanstack/table-core").SortingFn<any>;
82
+ alphanumericCaseSensitive: import("@tanstack/table-core").SortingFn<any>;
83
+ text: import("@tanstack/table-core").SortingFn<any>;
84
+ textCaseSensitive: import("@tanstack/table-core").SortingFn<any>;
85
+ datetime: import("@tanstack/table-core").SortingFn<any>;
86
+ basic: import("@tanstack/table-core").SortingFn<any>;
87
+ } & Record<string, import("@tanstack/table-core").SortingFn<any>>;
88
+ }) => MRT_DefinedColumnDef<TData>[];
84
89
  export declare const reorderColumn: <TData extends Record<string, any> = {}>(draggedColumn: MRT_Column<TData>, targetColumn: MRT_Column<TData>, columnOrder: ColumnOrderState) => ColumnOrderState;
85
90
  export declare const showExpandColumn: <TData extends Record<string, any> = {}>(props: MaterialReactTableProps<TData>, grouping?: GroupingState) => boolean;
86
91
  export declare const getLeadingDisplayColumnIds: <TData extends Record<string, any> = {}>(props: MaterialReactTableProps<TData>) => MRT_DisplayColumnIds[];
package/dist/cjs/index.js CHANGED
@@ -492,20 +492,6 @@ const MRT_GrabHandleButton = ({ iconButtonProps, onDragEnd, onDragStart, table,
492
492
  React__default["default"].createElement(DragHandleIcon, null))));
493
493
  };
494
494
 
495
- const defaultDisplayColumnDefOptions = {
496
- columnDefType: 'display',
497
- enableClickToCopy: false,
498
- enableColumnActions: false,
499
- enableColumnDragging: false,
500
- enableColumnFilter: false,
501
- enableColumnOrdering: false,
502
- enableEditing: false,
503
- enableGlobalFilter: false,
504
- enableGrouping: false,
505
- enableHiding: false,
506
- enableResizing: false,
507
- enableSorting: false,
508
- };
509
495
  const getColumnId = (columnDef) => { var _a, _b, _c, _d; return (_d = (_a = columnDef.id) !== null && _a !== void 0 ? _a : (_c = (_b = columnDef.accessorKey) === null || _b === void 0 ? void 0 : _b.toString) === null || _c === void 0 ? void 0 : _c.call(_b)) !== null && _d !== void 0 ? _d : columnDef.header; };
510
496
  const getAllLeafColumnDefs = (columns) => {
511
497
  let lowestLevelColumns = columns;
@@ -522,7 +508,7 @@ const getAllLeafColumnDefs = (columns) => {
522
508
  }
523
509
  return lowestLevelColumns.filter((col) => !col.columns);
524
510
  };
525
- const prepareColumns = (columnDefs, columnFilterFns, filterFns, sortingFns) => columnDefs.map((columnDef) => {
511
+ const prepareColumns = ({ columnDefs, columnFilterFns, defaultDisplayColumn, filterFns, sortingFns, }) => columnDefs.map((columnDef) => {
526
512
  var _a, _b;
527
513
  if (!columnDef.id)
528
514
  columnDef.id = getColumnId(columnDef);
@@ -533,7 +519,13 @@ const prepareColumns = (columnDefs, columnFilterFns, filterFns, sortingFns) => c
533
519
  columnDef.columnDefType = 'data';
534
520
  if (!!((_a = columnDef.columns) === null || _a === void 0 ? void 0 : _a.length)) {
535
521
  columnDef.columnDefType = 'group';
536
- columnDef.columns = prepareColumns(columnDef.columns, columnFilterFns, filterFns, sortingFns);
522
+ columnDef.columns = prepareColumns({
523
+ columnDefs: columnDef.columns,
524
+ columnFilterFns,
525
+ defaultDisplayColumn,
526
+ filterFns,
527
+ sortingFns,
528
+ });
537
529
  }
538
530
  else if (columnDef.columnDefType === 'data') {
539
531
  if (Object.keys(filterFns).includes(columnFilterFns[columnDef.id])) {
@@ -548,7 +540,7 @@ const prepareColumns = (columnDefs, columnFilterFns, filterFns, sortingFns) => c
548
540
  }
549
541
  }
550
542
  else if (columnDef.columnDefType === 'display') {
551
- columnDef = Object.assign(Object.assign({}, defaultDisplayColumnDefOptions), columnDef);
543
+ columnDef = Object.assign(Object.assign({}, defaultDisplayColumn), columnDef);
552
544
  }
553
545
  return columnDef;
554
546
  });
@@ -1038,7 +1030,7 @@ const MRT_GlobalFilterTextField = ({ table, }) => {
1038
1030
  const textFieldProps = muiSearchTextFieldProps instanceof Function
1039
1031
  ? muiSearchTextFieldProps({ table })
1040
1032
  : muiSearchTextFieldProps;
1041
- return (React__default["default"].createElement(material.Collapse, { in: showGlobalFilter, orientation: "horizontal" },
1033
+ return (React__default["default"].createElement(material.Collapse, { in: showGlobalFilter, orientation: "horizontal", unmountOnExit: true, mountOnEnter: true },
1042
1034
  React__default["default"].createElement(material.TextField, Object.assign({ placeholder: localization.search, onChange: handleChange, value: searchValue !== null && searchValue !== void 0 ? searchValue : '', variant: "standard", InputProps: {
1043
1035
  startAdornment: enableGlobalFilterModes ? (React__default["default"].createElement(material.InputAdornment, { position: "start" },
1044
1036
  React__default["default"].createElement(material.Tooltip, { arrow: true, title: localization.changeSearchMode },
@@ -1087,11 +1079,11 @@ const MRT_TablePagination = ({ table, position }) => {
1087
1079
  return (React__default["default"].createElement(material.TablePagination, Object.assign({ SelectProps: {
1088
1080
  sx: { m: '0 1rem 0 1ch' },
1089
1081
  MenuProps: { MenuListProps: { disablePadding: true } },
1090
- }, component: "div", count: totalRowCount, onPageChange: (_, newPage) => setPageIndex(newPage), onRowsPerPageChange: handleChangeRowsPerPage, page: pageIndex, rowsPerPage: pageSize, rowsPerPageOptions: [5, 10, 15, 20, 25, 30, 50, 100], showFirstButton: showFirstLastPageButtons, showLastButton: showFirstLastPageButtons }, tablePaginationProps, { sx: (theme) => (Object.assign({ m: '0 0.5rem', mt: position === 'top' &&
1082
+ }, component: "div", count: totalRowCount, onPageChange: (_, newPage) => setPageIndex(newPage), onRowsPerPageChange: handleChangeRowsPerPage, page: pageIndex, rowsPerPage: pageSize, rowsPerPageOptions: [5, 10, 15, 20, 25, 30, 50, 100], showFirstButton: showFirstLastPageButtons, showLastButton: showFirstLastPageButtons }, tablePaginationProps, { sx: (theme) => (Object.assign({ mt: position === 'top' &&
1091
1083
  enableToolbarInternalActions &&
1092
1084
  !showGlobalFilter
1093
1085
  ? '3.5rem'
1094
- : undefined, position: 'relative', zIndex: 2 }, ((tablePaginationProps === null || tablePaginationProps === void 0 ? void 0 : tablePaginationProps.sx) instanceof Function
1086
+ : '-0.25rem', position: 'relative', zIndex: 2 }, ((tablePaginationProps === null || tablePaginationProps === void 0 ? void 0 : tablePaginationProps.sx) instanceof Function
1095
1087
  ? tablePaginationProps.sx(theme)
1096
1088
  : tablePaginationProps === null || tablePaginationProps === void 0 ? void 0 : tablePaginationProps.sx))) })));
1097
1089
  };
@@ -1199,7 +1191,7 @@ const MRT_ToggleGlobalFilterButton = (_a) => {
1199
1191
 
1200
1192
  const MRT_ToolbarInternalButtons = ({ table }) => {
1201
1193
  var _a;
1202
- const { options: { enableColumnFilters, enableColumnOrdering, enableDensityToggle, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableHiding, enablePinning, positionGlobalFilter, renderToolbarInternalActions, }, } = table;
1194
+ const { options: { enableColumnFilters, enableColumnOrdering, enableDensityToggle, enableFilters, enableFullScreenToggle, enableGlobalFilter, enableHiding, enablePinning, initialState, renderToolbarInternalActions, }, } = table;
1203
1195
  return (React__default["default"].createElement(material.Box, { sx: {
1204
1196
  alignItems: 'center',
1205
1197
  display: 'flex',
@@ -1207,8 +1199,9 @@ const MRT_ToolbarInternalButtons = ({ table }) => {
1207
1199
  } }, (_a = renderToolbarInternalActions === null || renderToolbarInternalActions === void 0 ? void 0 : renderToolbarInternalActions({
1208
1200
  table,
1209
1201
  })) !== null && _a !== void 0 ? _a : (React__default["default"].createElement(React__default["default"].Fragment, null,
1210
- enableGlobalFilter && positionGlobalFilter === 'right' && (React__default["default"].createElement(MRT_GlobalFilterTextField, { table: table })),
1211
- enableFilters && enableGlobalFilter && (React__default["default"].createElement(MRT_ToggleGlobalFilterButton, { table: table })),
1202
+ enableFilters &&
1203
+ enableGlobalFilter &&
1204
+ !(initialState === null || initialState === void 0 ? void 0 : initialState.showGlobalFilter) && (React__default["default"].createElement(MRT_ToggleGlobalFilterButton, { table: table })),
1212
1205
  enableFilters && enableColumnFilters && (React__default["default"].createElement(MRT_ToggleFiltersButton, { table: table })),
1213
1206
  (enableHiding || enableColumnOrdering || enablePinning) && (React__default["default"].createElement(MRT_ShowHideColumnsButton, { table: table })),
1214
1207
  enableDensityToggle && (React__default["default"].createElement(MRT_ToggleDensePaddingButton, { table: table })),
@@ -1282,7 +1275,9 @@ const MRT_TopToolbar = ({ table }) => {
1282
1275
  width: '100%',
1283
1276
  } },
1284
1277
  enableGlobalFilter && positionGlobalFilter === 'left' && (React__default["default"].createElement(MRT_GlobalFilterTextField, { table: table })), (_a = renderTopToolbarCustomActions === null || renderTopToolbarCustomActions === void 0 ? void 0 : renderTopToolbarCustomActions({ table })) !== null && _a !== void 0 ? _a : React__default["default"].createElement("span", null),
1285
- enableToolbarInternalActions ? (React__default["default"].createElement(MRT_ToolbarInternalButtons, { table: table })) : (enableGlobalFilter &&
1278
+ enableToolbarInternalActions ? (React__default["default"].createElement(material.Box, { sx: { display: 'flex', flexWrap: 'wrap' } },
1279
+ enableGlobalFilter && positionGlobalFilter === 'right' && (React__default["default"].createElement(MRT_GlobalFilterTextField, { table: table })),
1280
+ React__default["default"].createElement(MRT_ToolbarInternalButtons, { table: table }))) : (enableGlobalFilter &&
1286
1281
  positionGlobalFilter === 'right' && (React__default["default"].createElement(MRT_GlobalFilterTextField, { table: table })))),
1287
1282
  enablePagination &&
1288
1283
  ['top', 'both'].includes(positionPagination !== null && positionPagination !== void 0 ? positionPagination : '') && (React__default["default"].createElement(MRT_TablePagination, { table: table, position: "top" })),
@@ -1310,8 +1305,11 @@ const MRT_BottomToolbar = ({ table }) => {
1310
1305
  positionToolbarAlertBanner === 'bottom' && (React__default["default"].createElement(MRT_ToolbarAlertBanner, { table: table })),
1311
1306
  ['both', 'bottom'].includes(positionToolbarDropZone !== null && positionToolbarDropZone !== void 0 ? positionToolbarDropZone : '') && (React__default["default"].createElement(MRT_ToolbarDropZone, { table: table })),
1312
1307
  React__default["default"].createElement(material.Box, { sx: {
1308
+ alignItems: 'flex-start',
1309
+ boxSizing: 'border-box',
1313
1310
  display: 'flex',
1314
1311
  justifyContent: 'space-between',
1312
+ p: '0.5rem',
1315
1313
  width: '100%',
1316
1314
  } },
1317
1315
  renderBottomToolbarCustomActions ? (renderBottomToolbarCustomActions({ table })) : (React__default["default"].createElement("span", null)),
@@ -1455,6 +1453,9 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1455
1453
  const handleFilterMenuOpen = (event) => {
1456
1454
  setAnchorEl(event.currentTarget);
1457
1455
  };
1456
+ React.useEffect(() => {
1457
+ setFilterValue('');
1458
+ }, [columnDef._filterFn]);
1458
1459
  if (columnDef.Filter) {
1459
1460
  return React__default["default"].createElement(React__default["default"].Fragment, null, (_e = columnDef.Filter) === null || _e === void 0 ? void 0 : _e.call(columnDef, { column, header, table }));
1460
1461
  }
@@ -1483,7 +1484,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1483
1484
  React__default["default"].createElement("span", null,
1484
1485
  React__default["default"].createElement(material.IconButton, { "aria-label": localization.changeFilterMode, onClick: handleFilterMenuOpen, size: "small", sx: { height: '1.75rem', width: '1.75rem' } },
1485
1486
  React__default["default"].createElement(FilterListIcon, null)))),
1486
- filterChipLabel && (React__default["default"].createElement(material.Chip, { onDelete: handleClearEmptyFilterChip, label: filterChipLabel })))) : (React__default["default"].createElement(FilterListIcon, { style: { marginRight: '4px' } })),
1487
+ filterChipLabel && (React__default["default"].createElement(material.Chip, { onDelete: handleClearEmptyFilterChip, label: filterChipLabel })))) : null,
1487
1488
  endAdornment: !filterChipLabel && (React__default["default"].createElement(material.InputAdornment, { position: "end" },
1488
1489
  React__default["default"].createElement(material.Tooltip, { arrow: true, placement: "right", title: (_g = localization.clearFilter) !== null && _g !== void 0 ? _g : '' },
1489
1490
  React__default["default"].createElement("span", null,
@@ -2444,12 +2445,12 @@ const MRT_TableRoot = (props) => {
2444
2445
  const displayColumns = React.useMemo(() => {
2445
2446
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
2446
2447
  return [
2447
- columnOrder.includes('mrt-row-drag') && Object.assign(Object.assign(Object.assign({ header: (_a = props.localization) === null || _a === void 0 ? void 0 : _a.move, size: 60 }, defaultDisplayColumnDefOptions), (_b = props.displayColumnDefOptions) === null || _b === void 0 ? void 0 : _b['mrt-row-drag']), { id: 'mrt-row-drag' }),
2448
- columnOrder.includes('mrt-row-actions') && Object.assign(Object.assign(Object.assign({ Cell: ({ cell, row }) => (React__default["default"].createElement(MRT_ToggleRowActionMenuButton, { cell: cell, row: row, table: table })), header: (_c = props.localization) === null || _c === void 0 ? void 0 : _c.actions, size: 70 }, defaultDisplayColumnDefOptions), (_d = props.displayColumnDefOptions) === null || _d === void 0 ? void 0 : _d['mrt-row-actions']), { id: 'mrt-row-actions' }),
2448
+ columnOrder.includes('mrt-row-drag') && Object.assign(Object.assign(Object.assign({ header: (_a = props.localization) === null || _a === void 0 ? void 0 : _a.move, size: 60 }, props.defaultDisplayColumn), (_b = props.displayColumnDefOptions) === null || _b === void 0 ? void 0 : _b['mrt-row-drag']), { id: 'mrt-row-drag' }),
2449
+ columnOrder.includes('mrt-row-actions') && Object.assign(Object.assign(Object.assign({ Cell: ({ cell, row }) => (React__default["default"].createElement(MRT_ToggleRowActionMenuButton, { cell: cell, row: row, table: table })), header: (_c = props.localization) === null || _c === void 0 ? void 0 : _c.actions, size: 70 }, props.defaultDisplayColumn), (_d = props.displayColumnDefOptions) === null || _d === void 0 ? void 0 : _d['mrt-row-actions']), { id: 'mrt-row-actions' }),
2449
2450
  columnOrder.includes('mrt-row-expand') &&
2450
- showExpandColumn(props, grouping) && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => (React__default["default"].createElement(MRT_ExpandButton, { row: row, table: table })), Header: () => props.enableExpandAll ? (React__default["default"].createElement(MRT_ExpandAllButton, { table: table })) : null, header: (_e = props.localization) === null || _e === void 0 ? void 0 : _e.expand, size: 60 }, defaultDisplayColumnDefOptions), (_f = props.displayColumnDefOptions) === null || _f === void 0 ? void 0 : _f['mrt-row-expand']), { id: 'mrt-row-expand' }),
2451
- columnOrder.includes('mrt-row-select') && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => (React__default["default"].createElement(MRT_SelectCheckbox, { row: row, table: table })), Header: () => props.enableSelectAll ? (React__default["default"].createElement(MRT_SelectCheckbox, { selectAll: true, table: table })) : null, header: (_g = props.localization) === null || _g === void 0 ? void 0 : _g.select, size: 60 }, defaultDisplayColumnDefOptions), (_h = props.displayColumnDefOptions) === null || _h === void 0 ? void 0 : _h['mrt-row-select']), { id: 'mrt-row-select' }),
2452
- columnOrder.includes('mrt-row-numbers') && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => row.index + 1, Header: () => { var _a; return (_a = props.localization) === null || _a === void 0 ? void 0 : _a.rowNumber; }, header: (_j = props.localization) === null || _j === void 0 ? void 0 : _j.rowNumbers, size: 60 }, defaultDisplayColumnDefOptions), (_k = props.displayColumnDefOptions) === null || _k === void 0 ? void 0 : _k['mrt-row-numbers']), { id: 'mrt-row-numbers' }),
2451
+ showExpandColumn(props, grouping) && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => (React__default["default"].createElement(MRT_ExpandButton, { row: row, table: table })), Header: () => props.enableExpandAll ? (React__default["default"].createElement(MRT_ExpandAllButton, { table: table })) : null, header: (_e = props.localization) === null || _e === void 0 ? void 0 : _e.expand, size: 60 }, props.defaultDisplayColumn), (_f = props.displayColumnDefOptions) === null || _f === void 0 ? void 0 : _f['mrt-row-expand']), { id: 'mrt-row-expand' }),
2452
+ columnOrder.includes('mrt-row-select') && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => (React__default["default"].createElement(MRT_SelectCheckbox, { row: row, table: table })), Header: () => props.enableSelectAll ? (React__default["default"].createElement(MRT_SelectCheckbox, { selectAll: true, table: table })) : null, header: (_g = props.localization) === null || _g === void 0 ? void 0 : _g.select, size: 60 }, props.defaultDisplayColumn), (_h = props.displayColumnDefOptions) === null || _h === void 0 ? void 0 : _h['mrt-row-select']), { id: 'mrt-row-select' }),
2453
+ columnOrder.includes('mrt-row-numbers') && Object.assign(Object.assign(Object.assign({ Cell: ({ row }) => row.index + 1, Header: () => { var _a; return (_a = props.localization) === null || _a === void 0 ? void 0 : _a.rowNumber; }, header: (_j = props.localization) === null || _j === void 0 ? void 0 : _j.rowNumbers, size: 60 }, props.defaultDisplayColumn), (_k = props.displayColumnDefOptions) === null || _k === void 0 ? void 0 : _k['mrt-row-numbers']), { id: 'mrt-row-numbers' }),
2453
2454
  ].filter(Boolean);
2454
2455
  }, [
2455
2456
  columnOrder,
@@ -2474,8 +2475,14 @@ const MRT_TableRoot = (props) => {
2474
2475
  props.renderDetailPanel,
2475
2476
  ]);
2476
2477
  const columnDefs = React.useMemo(() => {
2477
- var _a, _b;
2478
- return prepareColumns([...displayColumns, ...props.columns], (_b = (_a = props.state) === null || _a === void 0 ? void 0 : _a.columnFilterFns) !== null && _b !== void 0 ? _b : columnFilterFns, props.filterFns, props.sortingFns);
2478
+ var _a, _b, _c;
2479
+ return prepareColumns({
2480
+ columnDefs: [...displayColumns, ...props.columns],
2481
+ columnFilterFns: (_b = (_a = props.state) === null || _a === void 0 ? void 0 : _a.columnFilterFns) !== null && _b !== void 0 ? _b : columnFilterFns,
2482
+ defaultDisplayColumn: (_c = props.defaultDisplayColumn) !== null && _c !== void 0 ? _c : {},
2483
+ filterFns: props.filterFns,
2484
+ sortingFns: props.sortingFns,
2485
+ });
2479
2486
  }, [
2480
2487
  columnFilterFns,
2481
2488
  displayColumns,
@@ -2534,8 +2541,8 @@ const MRT_TableRoot = (props) => {
2534
2541
  };
2535
2542
 
2536
2543
  var MaterialReactTable = (_a) => {
2537
- var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onEnd', defaultColumn = { minSize: 40, maxSize: 1000, size: 180 }, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enablePinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, localization, positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberMode = 'original', selectAllMode = 'all', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnResizeMode", "defaultColumn", "editingMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode", "sortingFns"]);
2538
- return (React__default["default"].createElement(MRT_TableRoot, Object.assign({ aggregationFns: Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns), autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: defaultColumn, editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, enableFilters: enableFilters, enableFullScreenToggle: enableFullScreenToggle, enableGlobalFilter: enableGlobalFilter, enableGlobalFilterRankedResults: enableGlobalFilterRankedResults, enableGrouping: enableGrouping, enableHiding: enableHiding, enableMultiRowSelection: enableMultiRowSelection, enableMultiSort: enableMultiSort, enablePagination: enablePagination, enablePinning: enablePinning, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, enableSorting: enableSorting, enableStickyHeader: enableStickyHeader, enableTableFooter: enableTableFooter, enableTableHead: enableTableHead, enableToolbarInternalActions: enableToolbarInternalActions, enableTopToolbar: enableTopToolbar, filterFns: Object.assign(Object.assign({}, MRT_FilterFns), filterFns), icons: Object.assign(Object.assign({}, MRT_Default_Icons), icons), localization: Object.assign(Object.assign({}, MRT_DefaultLocalization_EN), localization), positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: Object.assign(Object.assign({}, MRT_SortingFns), sortingFns) }, rest)));
2544
+ var { aggregationFns, autoResetExpanded = false, columnResizeMode = 'onEnd', defaultColumn = { minSize: 40, maxSize: 1000, size: 180 }, defaultDisplayColumn, editingMode = 'modal', enableBottomToolbar = true, enableColumnActions = true, enableColumnFilters = true, enableColumnOrdering = false, enableColumnResizing = false, enableDensityToggle = true, enableExpandAll = true, enableFilters = true, enableFullScreenToggle = true, enableGlobalFilter = true, enableGlobalFilterRankedResults = true, enableGrouping = false, enableHiding = true, enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, enablePinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, enableStickyHeader = false, enableTableFooter = true, enableTableHead = true, enableToolbarInternalActions = true, enableTopToolbar = true, filterFns, icons, localization, positionActionsColumn = 'first', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', positionToolbarAlertBanner = 'top', positionToolbarDropZone = 'top', rowNumberMode = 'original', selectAllMode = 'all', sortingFns } = _a, rest = __rest(_a, ["aggregationFns", "autoResetExpanded", "columnResizeMode", "defaultColumn", "defaultDisplayColumn", "editingMode", "enableBottomToolbar", "enableColumnActions", "enableColumnFilters", "enableColumnOrdering", "enableColumnResizing", "enableDensityToggle", "enableExpandAll", "enableFilters", "enableFullScreenToggle", "enableGlobalFilter", "enableGlobalFilterRankedResults", "enableGrouping", "enableHiding", "enableMultiRowSelection", "enableMultiSort", "enablePagination", "enablePinning", "enableRowSelection", "enableSelectAll", "enableSorting", "enableStickyHeader", "enableTableFooter", "enableTableHead", "enableToolbarInternalActions", "enableTopToolbar", "filterFns", "icons", "localization", "positionActionsColumn", "positionExpandColumn", "positionGlobalFilter", "positionPagination", "positionToolbarAlertBanner", "positionToolbarDropZone", "rowNumberMode", "selectAllMode", "sortingFns"]);
2545
+ return (React__default["default"].createElement(MRT_TableRoot, Object.assign({ aggregationFns: Object.assign(Object.assign({}, MRT_AggregationFns), aggregationFns), autoResetExpanded: autoResetExpanded, columnResizeMode: columnResizeMode, defaultColumn: defaultColumn, defaultDisplayColumn: Object.assign({ columnDefType: 'display', enableClickToCopy: false, enableColumnActions: false, enableColumnDragging: false, enableColumnFilter: false, enableColumnOrdering: false, enableEditing: false, enableGlobalFilter: false, enableGrouping: false, enableHiding: false, enableResizing: false, enableSorting: false }, defaultDisplayColumn), editingMode: editingMode, enableBottomToolbar: enableBottomToolbar, enableColumnActions: enableColumnActions, enableColumnFilters: enableColumnFilters, enableColumnOrdering: enableColumnOrdering, enableColumnResizing: enableColumnResizing, enableDensityToggle: enableDensityToggle, enableExpandAll: enableExpandAll, enableFilters: enableFilters, enableFullScreenToggle: enableFullScreenToggle, enableGlobalFilter: enableGlobalFilter, enableGlobalFilterRankedResults: enableGlobalFilterRankedResults, enableGrouping: enableGrouping, enableHiding: enableHiding, enableMultiRowSelection: enableMultiRowSelection, enableMultiSort: enableMultiSort, enablePagination: enablePagination, enablePinning: enablePinning, enableRowSelection: enableRowSelection, enableSelectAll: enableSelectAll, enableSorting: enableSorting, enableStickyHeader: enableStickyHeader, enableTableFooter: enableTableFooter, enableTableHead: enableTableHead, enableToolbarInternalActions: enableToolbarInternalActions, enableTopToolbar: enableTopToolbar, filterFns: Object.assign(Object.assign({}, MRT_FilterFns), filterFns), icons: Object.assign(Object.assign({}, MRT_Default_Icons), icons), localization: Object.assign(Object.assign({}, MRT_DefaultLocalization_EN), localization), positionActionsColumn: positionActionsColumn, positionExpandColumn: positionExpandColumn, positionGlobalFilter: positionGlobalFilter, positionPagination: positionPagination, positionToolbarAlertBanner: positionToolbarAlertBanner, positionToolbarDropZone: positionToolbarDropZone, rowNumberMode: rowNumberMode, selectAllMode: selectAllMode, sortingFns: Object.assign(Object.assign({}, MRT_SortingFns), sortingFns) }, rest)));
2539
2546
  };
2540
2547
 
2541
2548
  exports.MRT_CopyButton = MRT_CopyButton;