material-react-table 0.17.1 → 0.19.0-alpha.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.
Files changed (110) hide show
  1. package/dist/MaterialReactTable.d.ts +170 -230
  2. package/dist/body/MRT_TableBody.d.ts +1 -1
  3. package/dist/body/MRT_TableBodyCell.d.ts +1 -1
  4. package/dist/body/MRT_TableBodyRow.d.ts +1 -1
  5. package/dist/body/MRT_TableDetailPanel.d.ts +1 -1
  6. package/dist/buttons/MRT_ColumnPinningButtons.d.ts +1 -1
  7. package/dist/buttons/MRT_CopyButton.d.ts +1 -1
  8. package/dist/buttons/MRT_EditActionButtons.d.ts +1 -1
  9. package/dist/buttons/MRT_ExpandAllButton.d.ts +1 -1
  10. package/dist/buttons/MRT_ExpandButton.d.ts +1 -1
  11. package/dist/buttons/MRT_FullScreenToggleButton.d.ts +1 -1
  12. package/dist/buttons/MRT_GrabHandleButton.d.ts +1 -1
  13. package/dist/buttons/MRT_ShowHideColumnsButton.d.ts +1 -1
  14. package/dist/buttons/MRT_ToggleDensePaddingButton.d.ts +1 -1
  15. package/dist/buttons/MRT_ToggleFiltersButton.d.ts +1 -1
  16. package/dist/buttons/MRT_ToggleGlobalFilterButton.d.ts +1 -1
  17. package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +1 -1
  18. package/dist/filtersFns.d.ts +31 -23
  19. package/dist/footer/MRT_TableFooter.d.ts +1 -1
  20. package/dist/footer/MRT_TableFooterCell.d.ts +1 -1
  21. package/dist/footer/MRT_TableFooterRow.d.ts +1 -1
  22. package/dist/head/MRT_DraggableTableHeadCell.d.ts +1 -1
  23. package/dist/head/MRT_TableHead.d.ts +1 -1
  24. package/dist/head/MRT_TableHeadCell.d.ts +1 -1
  25. package/dist/head/MRT_TableHeadCellColumnActionsButton.d.ts +1 -1
  26. package/dist/head/MRT_TableHeadCellFilterContainer.d.ts +1 -1
  27. package/dist/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
  28. package/dist/head/MRT_TableHeadCellResizeHandle.d.ts +1 -1
  29. package/dist/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  30. package/dist/head/MRT_TableHeadRow.d.ts +1 -1
  31. package/dist/inputs/MRT_EditCellTextField.d.ts +1 -1
  32. package/dist/inputs/MRT_FilterRangeFields.d.ts +1 -1
  33. package/dist/inputs/MRT_FilterTextField.d.ts +1 -1
  34. package/dist/inputs/MRT_GlobalFilterTextField.d.ts +1 -1
  35. package/dist/inputs/MRT_SelectCheckbox.d.ts +1 -1
  36. package/dist/material-react-table.cjs.development.js +791 -915
  37. package/dist/material-react-table.cjs.development.js.map +1 -1
  38. package/dist/material-react-table.cjs.production.min.js +1 -1
  39. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  40. package/dist/material-react-table.esm.js +793 -917
  41. package/dist/material-react-table.esm.js.map +1 -1
  42. package/dist/menus/MRT_ColumnActionMenu.d.ts +1 -1
  43. package/dist/menus/MRT_FilterOptionMenu.d.ts +1 -1
  44. package/dist/menus/MRT_RowActionMenu.d.ts +1 -1
  45. package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +1 -1
  46. package/dist/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
  47. package/dist/sortingFns.d.ts +10 -3
  48. package/dist/table/MRT_Table.d.ts +1 -1
  49. package/dist/table/MRT_TableContainer.d.ts +1 -1
  50. package/dist/table/MRT_TablePaper.d.ts +1 -1
  51. package/dist/toolbar/MRT_LinearProgressBar.d.ts +1 -1
  52. package/dist/toolbar/MRT_TablePagination.d.ts +1 -1
  53. package/dist/toolbar/MRT_ToolbarAlertBanner.d.ts +1 -1
  54. package/dist/toolbar/MRT_ToolbarBottom.d.ts +1 -1
  55. package/dist/toolbar/MRT_ToolbarInternalButtons.d.ts +1 -1
  56. package/dist/toolbar/MRT_ToolbarTop.d.ts +1 -1
  57. package/dist/utils.d.ts +10 -16
  58. package/package.json +4 -4
  59. package/src/MaterialReactTable.tsx +168 -334
  60. package/src/body/MRT_TableBody.tsx +5 -6
  61. package/src/body/MRT_TableBodyCell.tsx +19 -36
  62. package/src/body/MRT_TableBodyRow.tsx +9 -12
  63. package/src/body/MRT_TableDetailPanel.tsx +8 -12
  64. package/src/buttons/MRT_ColumnPinningButtons.tsx +3 -3
  65. package/src/buttons/MRT_CopyButton.tsx +5 -7
  66. package/src/buttons/MRT_EditActionButtons.tsx +4 -5
  67. package/src/buttons/MRT_ExpandAllButton.tsx +4 -5
  68. package/src/buttons/MRT_ExpandButton.tsx +6 -9
  69. package/src/buttons/MRT_FullScreenToggleButton.tsx +5 -15
  70. package/src/buttons/MRT_GrabHandleButton.tsx +39 -41
  71. package/src/buttons/MRT_ShowHideColumnsButton.tsx +4 -4
  72. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +5 -15
  73. package/src/buttons/MRT_ToggleFiltersButton.tsx +5 -12
  74. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +6 -16
  75. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +6 -6
  76. package/src/filtersFns.ts +24 -23
  77. package/src/footer/MRT_TableFooter.tsx +5 -6
  78. package/src/footer/MRT_TableFooterCell.tsx +8 -11
  79. package/src/footer/MRT_TableFooterRow.tsx +5 -9
  80. package/src/head/MRT_DraggableTableHeadCell.tsx +4 -6
  81. package/src/head/MRT_TableHead.tsx +5 -5
  82. package/src/head/MRT_TableHeadCell.tsx +18 -29
  83. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +6 -8
  84. package/src/head/MRT_TableHeadCellFilterContainer.tsx +5 -7
  85. package/src/head/MRT_TableHeadCellFilterLabel.tsx +13 -19
  86. package/src/head/MRT_TableHeadCellResizeHandle.tsx +12 -11
  87. package/src/head/MRT_TableHeadCellSortLabel.tsx +3 -5
  88. package/src/head/MRT_TableHeadRow.tsx +6 -6
  89. package/src/inputs/MRT_EditCellTextField.tsx +13 -15
  90. package/src/inputs/MRT_FilterRangeFields.tsx +4 -4
  91. package/src/inputs/MRT_FilterTextField.tsx +27 -64
  92. package/src/inputs/MRT_GlobalFilterTextField.tsx +5 -10
  93. package/src/inputs/MRT_SelectCheckbox.tsx +9 -36
  94. package/src/menus/MRT_ColumnActionMenu.tsx +5 -9
  95. package/src/menus/MRT_FilterOptionMenu.tsx +16 -48
  96. package/src/menus/MRT_RowActionMenu.tsx +4 -5
  97. package/src/menus/MRT_ShowHideColumnsMenu.tsx +8 -9
  98. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +11 -10
  99. package/src/sortingFns.ts +11 -3
  100. package/src/table/MRT_Table.tsx +7 -11
  101. package/src/table/MRT_TableContainer.tsx +5 -6
  102. package/src/table/MRT_TablePaper.tsx +7 -8
  103. package/src/table/MRT_TableRoot.tsx +123 -156
  104. package/src/toolbar/MRT_LinearProgressBar.tsx +4 -5
  105. package/src/toolbar/MRT_TablePagination.tsx +7 -9
  106. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +15 -11
  107. package/src/toolbar/MRT_ToolbarBottom.tsx +8 -9
  108. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +10 -10
  109. package/src/toolbar/MRT_ToolbarTop.tsx +11 -11
  110. package/src/utils.ts +56 -50
@@ -4,39 +4,33 @@ import { MRT_Header, MRT_TableInstance } from '..';
4
4
 
5
5
  interface Props {
6
6
  header: MRT_Header;
7
- instance: MRT_TableInstance;
7
+ table: MRT_TableInstance;
8
8
  }
9
9
 
10
- export const MRT_TableHeadCellFilterLabel: FC<Props> = ({
11
- header,
12
- instance,
13
- }) => {
10
+ export const MRT_TableHeadCellFilterLabel: FC<Props> = ({ header, table }) => {
14
11
  const {
15
12
  getState,
16
13
  options: {
17
14
  icons: { FilterAltIcon },
18
15
  localization,
19
16
  },
20
- } = instance;
21
-
17
+ } = table;
22
18
  const { currentFilterFns } = getState();
23
-
24
19
  const { column } = header;
25
-
26
20
  const { columnDef } = column;
27
21
 
28
- const filterFn = currentFilterFns?.[header.id];
29
-
22
+ const currentFilterOption = currentFilterFns?.[header.id];
30
23
  const filterTooltip = localization.filteringByColumn
31
24
  .replace('{column}', String(columnDef.header))
32
25
  .replace(
33
26
  '{filterType}',
34
- filterFn instanceof Function
35
- ? ''
36
- : // @ts-ignore
37
- localization[
38
- `filter${filterFn.charAt(0).toUpperCase() + filterFn.slice(1)}`
39
- ],
27
+ // @ts-ignore
28
+ localization[
29
+ `filter${
30
+ currentFilterOption.charAt(0).toUpperCase() +
31
+ currentFilterOption.slice(1)
32
+ }`
33
+ ],
40
34
  )
41
35
  .replace(
42
36
  '{filterValue}',
@@ -54,8 +48,8 @@ export const MRT_TableHeadCellFilterLabel: FC<Props> = ({
54
48
  <Grow
55
49
  unmountOnExit
56
50
  in={
57
- (!!column.getFilterValue() && filterFn !== 'between') ||
58
- (filterFn === 'between' && // @ts-ignore
51
+ (!!column.getFilterValue() && currentFilterOption !== 'between') ||
52
+ (currentFilterOption === 'between' && // @ts-ignore
59
53
  (!!column.getFilterValue()?.[0] || !!column.getFilterValue()?.[1]))
60
54
  }
61
55
  >
@@ -4,20 +4,18 @@ import { MRT_Header, MRT_TableInstance } from '..';
4
4
 
5
5
  interface Props {
6
6
  header: MRT_Header;
7
- instance: MRT_TableInstance;
7
+ table: MRT_TableInstance;
8
8
  }
9
9
 
10
- export const MRT_TableHeadCellResizeHandle: FC<Props> = ({
11
- header,
12
- instance,
13
- }) => {
14
- const { getState } = instance;
15
-
10
+ export const MRT_TableHeadCellResizeHandle: FC<Props> = ({ header, table }) => {
11
+ const {
12
+ getState,
13
+ options: { columnResizeMode },
14
+ } = table;
16
15
  const { density, showFilters } = getState();
17
-
18
16
  const { column } = header;
19
-
20
- const { columnDefType } = column;
17
+ const { columnDef } = column;
18
+ const { columnDefType } = columnDef;
21
19
 
22
20
  return (
23
21
  <Divider
@@ -46,7 +44,10 @@ export const MRT_TableHeadCellResizeHandle: FC<Props> = ({
46
44
  onTouchStart={header.getResizeHandler()}
47
45
  style={{
48
46
  transform: column.getIsResizing()
49
- ? `translateX(${getState().columnSizingInfo.deltaOffset}px)`
47
+ ? `translateX(${
48
+ (getState().columnSizingInfo.deltaOffset ?? 0) /
49
+ (columnResizeMode === 'onChange' ? 16 : 1)
50
+ }px)`
50
51
  : 'none',
51
52
  }}
52
53
  />
@@ -4,16 +4,14 @@ import { MRT_Header, MRT_TableInstance } from '..';
4
4
 
5
5
  interface Props {
6
6
  header: MRT_Header;
7
- instance: MRT_TableInstance;
7
+ table: MRT_TableInstance;
8
8
  }
9
9
 
10
- export const MRT_TableHeadCellSortLabel: FC<Props> = ({ header, instance }) => {
10
+ export const MRT_TableHeadCellSortLabel: FC<Props> = ({ header, table }) => {
11
11
  const {
12
12
  options: { localization },
13
- } = instance;
14
-
13
+ } = table;
15
14
  const { column } = header;
16
-
17
15
  const { columnDef } = column;
18
16
 
19
17
  const sortTooltip = !!column.getIsSorted()
@@ -6,17 +6,17 @@ import type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';
6
6
 
7
7
  interface Props {
8
8
  headerGroup: MRT_HeaderGroup;
9
- instance: MRT_TableInstance;
9
+ table: MRT_TableInstance;
10
10
  }
11
11
 
12
- export const MRT_TableHeadRow: FC<Props> = ({ headerGroup, instance }) => {
12
+ export const MRT_TableHeadRow: FC<Props> = ({ headerGroup, table }) => {
13
13
  const {
14
14
  options: { enableColumnOrdering, enableGrouping, muiTableHeadRowProps },
15
- } = instance;
15
+ } = table;
16
16
 
17
17
  const tableRowProps =
18
18
  muiTableHeadRowProps instanceof Function
19
- ? muiTableHeadRowProps({ headerGroup, instance })
19
+ ? muiTableHeadRowProps({ headerGroup, table })
20
20
  : muiTableHeadRowProps;
21
21
 
22
22
  return (
@@ -33,13 +33,13 @@ export const MRT_TableHeadRow: FC<Props> = ({ headerGroup, instance }) => {
33
33
  <MRT_DraggableTableHeadCell
34
34
  header={header}
35
35
  key={header.id || index}
36
- instance={instance}
36
+ table={table}
37
37
  />
38
38
  ) : (
39
39
  <MRT_TableHeadCell
40
40
  header={header}
41
41
  key={header.id || index}
42
- instance={instance}
42
+ table={table}
43
43
  />
44
44
  ),
45
45
  )}
@@ -10,10 +10,10 @@ import type { MRT_Cell, MRT_Row, MRT_TableInstance } from '..';
10
10
 
11
11
  interface Props {
12
12
  cell: MRT_Cell;
13
- instance: MRT_TableInstance;
13
+ table: MRT_TableInstance;
14
14
  }
15
15
 
16
- export const MRT_EditCellTextField: FC<Props> = ({ cell, instance }) => {
16
+ export const MRT_EditCellTextField: FC<Props> = ({ cell, table }) => {
17
17
  const {
18
18
  getState,
19
19
  options: {
@@ -21,22 +21,20 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, instance }) => {
21
21
  enableEditing,
22
22
  muiTableBodyCellEditTextFieldProps,
23
23
  onCellEditBlur,
24
- onCellEditChanged,
24
+ onCellEditChange,
25
25
  },
26
26
  setCurrentEditingCell,
27
27
  setCurrentEditingRow,
28
- } = instance;
29
-
30
- const [value, setValue] = useState(cell.getValue());
31
-
28
+ } = table;
32
29
  const { column, row } = cell;
33
-
34
30
  const { columnDef } = column;
35
31
 
32
+ const [value, setValue] = useState(cell.getValue());
33
+
36
34
  const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
37
35
  setValue(event.target.value);
38
- columnDef.onCellEditChanged?.({ event, cell, instance });
39
- onCellEditChanged?.({ event, cell, instance });
36
+ columnDef.onCellEditChange?.({ event, cell, table });
37
+ onCellEditChange?.({ event, cell, table });
40
38
  };
41
39
 
42
40
  const handleBlur = (event: FocusEvent<HTMLInputElement>) => {
@@ -46,20 +44,20 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, instance }) => {
46
44
  setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);
47
45
  }
48
46
  setCurrentEditingCell(null);
49
- columnDef.onCellEditBlur?.({ event, cell, instance });
50
- onCellEditBlur?.({ event, cell, instance });
47
+ columnDef.onCellEditBlur?.({ event, cell, table });
48
+ onCellEditBlur?.({ event, cell, table });
51
49
  };
52
50
 
53
51
  const mTableBodyCellEditTextFieldProps =
54
52
  muiTableBodyCellEditTextFieldProps instanceof Function
55
- ? muiTableBodyCellEditTextFieldProps({ cell, instance })
53
+ ? muiTableBodyCellEditTextFieldProps({ cell, table })
56
54
  : muiTableBodyCellEditTextFieldProps;
57
55
 
58
56
  const mcTableBodyCellEditTextFieldProps =
59
57
  columnDef.muiTableBodyCellEditTextFieldProps instanceof Function
60
58
  ? columnDef.muiTableBodyCellEditTextFieldProps({
61
59
  cell,
62
- instance,
60
+ table,
63
61
  })
64
62
  : columnDef.muiTableBodyCellEditTextFieldProps;
65
63
 
@@ -69,7 +67,7 @@ export const MRT_EditCellTextField: FC<Props> = ({ cell, instance }) => {
69
67
  };
70
68
 
71
69
  if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {
72
- return <>{columnDef.Edit?.({ cell, instance })}</>;
70
+ return <>{columnDef.Edit?.({ cell, table })}</>;
73
71
  }
74
72
 
75
73
  return (
@@ -5,14 +5,14 @@ import { MRT_Header, MRT_TableInstance } from '..';
5
5
 
6
6
  interface Props {
7
7
  header: MRT_Header;
8
- instance: MRT_TableInstance;
8
+ table: MRT_TableInstance;
9
9
  }
10
10
 
11
- export const MRT_FilterRangeFields: FC<Props> = ({ header, instance }) => {
11
+ export const MRT_FilterRangeFields: FC<Props> = ({ header, table }) => {
12
12
  return (
13
13
  <Box sx={{ display: 'grid', gridTemplateColumns: '6fr 6fr', gap: '1rem' }}>
14
- <MRT_FilterTextField header={header} inputIndex={0} instance={instance} />
15
- <MRT_FilterTextField header={header} inputIndex={1} instance={instance} />
14
+ <MRT_FilterTextField header={header} inputIndex={0} table={table} />
15
+ <MRT_FilterTextField header={header} inputIndex={1} table={table} />
16
16
  </Box>
17
17
  );
18
18
  };
@@ -21,13 +21,13 @@ import type { MRT_Header, MRT_TableInstance } from '..';
21
21
  interface Props {
22
22
  header: MRT_Header;
23
23
  inputIndex?: number;
24
- instance: MRT_TableInstance;
24
+ table: MRT_TableInstance;
25
25
  }
26
26
 
27
27
  export const MRT_FilterTextField: FC<Props> = ({
28
28
  header,
29
29
  inputIndex,
30
- instance,
30
+ table,
31
31
  }) => {
32
32
  const {
33
33
  getState,
@@ -37,31 +37,26 @@ export const MRT_FilterTextField: FC<Props> = ({
37
37
  icons: { FilterListIcon, CloseIcon },
38
38
  localization,
39
39
  muiTableHeadCellFilterTextFieldProps,
40
- onColumnFilterValueChanged,
41
- onColumnFilterValueChangedDebounced,
42
40
  tableId,
43
41
  },
44
42
  setCurrentFilterFns,
45
- } = instance;
46
-
43
+ } = table;
47
44
  const { column } = header;
48
-
49
45
  const { columnDef } = column;
50
-
51
46
  const { currentFilterFns } = getState();
52
47
 
53
48
  const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
54
49
 
55
50
  const mTableHeadCellFilterTextFieldProps =
56
51
  muiTableHeadCellFilterTextFieldProps instanceof Function
57
- ? muiTableHeadCellFilterTextFieldProps({ column, instance })
52
+ ? muiTableHeadCellFilterTextFieldProps({ column, table })
58
53
  : muiTableHeadCellFilterTextFieldProps;
59
54
 
60
55
  const mcTableHeadCellFilterTextFieldProps =
61
56
  columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function
62
57
  ? columnDef.muiTableHeadCellFilterTextFieldProps({
63
58
  column,
64
- instance,
59
+ table,
65
60
  })
66
61
  : columnDef.muiTableHeadCellFilterTextFieldProps;
67
62
 
@@ -87,18 +82,6 @@ export const MRT_FilterTextField: FC<Props> = ({
87
82
  } else {
88
83
  column.setFilterValue(event.target.value ?? undefined);
89
84
  }
90
- onColumnFilterValueChangedDebounced?.({
91
- column,
92
- event,
93
- filterValue: event.target.value,
94
- instance,
95
- });
96
- columnDef.onColumnFilterValueChangedDebounced?.({
97
- column,
98
- event,
99
- filterValue: event.target.value,
100
- instance,
101
- });
102
85
  }, 200),
103
86
  [],
104
87
  );
@@ -106,18 +89,6 @@ export const MRT_FilterTextField: FC<Props> = ({
106
89
  const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
107
90
  setFilterValue(event.target.value);
108
91
  handleChangeDebounced(event);
109
- onColumnFilterValueChanged?.({
110
- column,
111
- event,
112
- filterValue: event.target.value,
113
- instance,
114
- });
115
- columnDef.onColumnFilterValueChanged?.({
116
- column,
117
- event,
118
- filterValue: event.target.value,
119
- instance,
120
- });
121
92
  };
122
93
 
123
94
  const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {
@@ -147,21 +118,23 @@ export const MRT_FilterTextField: FC<Props> = ({
147
118
  };
148
119
 
149
120
  if (columnDef.Filter) {
150
- return <>{columnDef.Filter?.({ header, instance })}</>;
121
+ return <>{columnDef.Filter?.({ header, table })}</>;
151
122
  }
152
123
 
153
124
  const filterId = `mrt-${tableId}-${header.id}-filter-text-field${
154
125
  inputIndex ?? ''
155
126
  }`;
156
- const filterFn = currentFilterFns?.[header.id];
127
+ const currentFilterOption = currentFilterFns?.[header.id];
157
128
  const isSelectFilter = !!columnDef.filterSelectOptions;
158
- const filterChipLabel =
159
- !(filterFn instanceof Function) && ['empty', 'notEmpty'].includes(filterFn)
160
- ? //@ts-ignore
161
- localization[
162
- `filter${filterFn.charAt(0).toUpperCase() + filterFn.slice(1)}`
163
- ]
164
- : '';
129
+ const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)
130
+ ? //@ts-ignore
131
+ localization[
132
+ `filter${
133
+ currentFilterOption.charAt(0).toUpperCase() +
134
+ currentFilterOption.slice(1)
135
+ }`
136
+ ]
137
+ : '';
165
138
  const filterPlaceholder =
166
139
  inputIndex === undefined
167
140
  ? localization.filterByColumn?.replace(
@@ -201,26 +174,16 @@ export const MRT_FilterTextField: FC<Props> = ({
201
174
  helperText={
202
175
  showChangeModeButton ? (
203
176
  <label htmlFor={filterId}>
204
- {filterFn instanceof Function
205
- ? localization.filterMode.replace(
206
- '{filterType}',
207
- // @ts-ignore
208
- localization[
209
- `filter${
210
- filterFn.name.charAt(0).toUpperCase() +
211
- filterFn.name.slice(1)
212
- }`
213
- ] ?? '',
214
- ) ?? ''
215
- : localization.filterMode.replace(
216
- '{filterType}',
217
- // @ts-ignore
218
- localization[
219
- `filter${
220
- filterFn.charAt(0).toUpperCase() + filterFn.slice(1)
221
- }`
222
- ],
223
- )}
177
+ {localization.filterMode.replace(
178
+ '{filterType}',
179
+ // @ts-ignore
180
+ localization[
181
+ `filter${
182
+ currentFilterOption.charAt(0).toUpperCase() +
183
+ currentFilterOption.slice(1)
184
+ }`
185
+ ],
186
+ )}
224
187
  </label>
225
188
  ) : null
226
189
  }
@@ -329,7 +292,7 @@ export const MRT_FilterTextField: FC<Props> = ({
329
292
  anchorEl={anchorEl}
330
293
  header={header}
331
294
  setAnchorEl={setAnchorEl}
332
- instance={instance}
295
+ table={table}
333
296
  />
334
297
  </>
335
298
  );
@@ -17,10 +17,10 @@ import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';
17
17
  import { MRT_TableInstance } from '..';
18
18
 
19
19
  interface Props {
20
- instance: MRT_TableInstance;
20
+ table: MRT_TableInstance;
21
21
  }
22
22
 
23
- export const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {
23
+ export const MRT_GlobalFilterTextField: FC<Props> = ({ table }) => {
24
24
  const {
25
25
  getState,
26
26
  setGlobalFilter,
@@ -29,12 +29,9 @@ export const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {
29
29
  icons: { SearchIcon, CloseIcon },
30
30
  localization,
31
31
  muiSearchTextFieldProps,
32
- onGlobalFilterValueChanged,
33
- onGlobalFilterValueChangedDebounced,
34
32
  tableId,
35
33
  },
36
- } = instance;
37
-
34
+ } = table;
38
35
  const { globalFilter, showGlobalFilter } = getState();
39
36
 
40
37
  const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);
@@ -43,7 +40,6 @@ export const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {
43
40
  const handleChangeDebounced = useCallback(
44
41
  debounce((event: ChangeEvent<HTMLInputElement>) => {
45
42
  setGlobalFilter(event.target.value ?? undefined);
46
- onGlobalFilterValueChangedDebounced?.({ event, instance });
47
43
  }, 250),
48
44
  [],
49
45
  );
@@ -51,7 +47,6 @@ export const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {
51
47
  const handleChange = (event: ChangeEvent<HTMLInputElement>) => {
52
48
  setSearchValue(event.target.value);
53
49
  handleChangeDebounced(event);
54
- onGlobalFilterValueChanged?.({ event, instance });
55
50
  };
56
51
 
57
52
  const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {
@@ -65,7 +60,7 @@ export const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {
65
60
 
66
61
  const textFieldProps =
67
62
  muiSearchTextFieldProps instanceof Function
68
- ? muiSearchTextFieldProps({ instance })
63
+ ? muiSearchTextFieldProps({ table })
69
64
  : muiSearchTextFieldProps;
70
65
 
71
66
  return (
@@ -115,7 +110,7 @@ export const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {
115
110
  <MRT_FilterOptionMenu
116
111
  anchorEl={anchorEl}
117
112
  setAnchorEl={setAnchorEl}
118
- instance={instance}
113
+ table={table}
119
114
  />
120
115
  </Collapse>
121
116
  );
@@ -5,64 +5,39 @@ import type { MRT_Row, MRT_TableInstance } from '..';
5
5
  interface Props {
6
6
  row?: MRT_Row;
7
7
  selectAll?: boolean;
8
- instance: MRT_TableInstance;
8
+ table: MRT_TableInstance;
9
9
  }
10
10
 
11
- export const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, instance }) => {
11
+ export const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, table }) => {
12
12
  const {
13
- getRowModel,
14
- getPaginationRowModel,
15
- getSelectedRowModel,
16
13
  getState,
17
14
  options: {
18
15
  localization,
19
16
  muiSelectCheckboxProps,
20
17
  muiSelectAllCheckboxProps,
21
- onRowSelectionChanged,
22
- onRowSelectAllChanged,
23
18
  selectAllMode,
24
19
  },
25
- } = instance;
26
-
20
+ } = table;
27
21
  const { density } = getState();
28
22
 
29
23
  const handleSelectChange = (event: ChangeEvent<HTMLInputElement>) => {
30
24
  if (selectAll) {
31
25
  if (selectAllMode === 'all') {
32
- instance.getToggleAllRowsSelectedHandler()(event as any);
26
+ table.getToggleAllRowsSelectedHandler()(event as any);
33
27
  } else if (selectAllMode === 'page') {
34
- instance.getToggleAllPageRowsSelectedHandler()(event as any);
28
+ table.getToggleAllPageRowsSelectedHandler()(event as any);
35
29
  }
36
- onRowSelectAllChanged?.({
37
- event,
38
- selectedRows: event.target.checked
39
- ? selectAllMode === 'all'
40
- ? getRowModel().flatRows
41
- : getPaginationRowModel().flatRows
42
- : [],
43
- instance,
44
- });
45
30
  } else if (row) {
46
31
  row?.getToggleSelectedHandler()(event as any);
47
- onRowSelectionChanged?.({
48
- event,
49
- row,
50
- selectedRows: event.target.checked
51
- ? [...getSelectedRowModel().flatRows, row]
52
- : getSelectedRowModel().flatRows.filter(
53
- (selectedRow) => selectedRow.id !== row.id,
54
- ),
55
- instance,
56
- });
57
32
  }
58
33
  };
59
34
 
60
35
  const checkboxProps = selectAll
61
36
  ? muiSelectAllCheckboxProps instanceof Function
62
- ? muiSelectAllCheckboxProps({ instance })
37
+ ? muiSelectAllCheckboxProps({ table })
63
38
  : muiSelectAllCheckboxProps
64
39
  : muiSelectCheckboxProps instanceof Function
65
- ? muiSelectCheckboxProps({ row: row as MRT_Row, instance })
40
+ ? muiSelectCheckboxProps({ row: row as MRT_Row, table })
66
41
  : muiSelectCheckboxProps;
67
42
 
68
43
  return (
@@ -76,12 +51,10 @@ export const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, instance }) => {
76
51
  >
77
52
  <Checkbox
78
53
  checked={
79
- selectAll ? instance.getIsAllRowsSelected() : row?.getIsSelected()
54
+ selectAll ? table.getIsAllRowsSelected() : row?.getIsSelected()
80
55
  }
81
56
  indeterminate={
82
- selectAll
83
- ? instance.getIsSomeRowsSelected()
84
- : row?.getIsSomeSelected()
57
+ selectAll ? table.getIsSomeRowsSelected() : row?.getIsSomeSelected()
85
58
  }
86
59
  inputProps={{
87
60
  'aria-label': selectAll
@@ -20,14 +20,14 @@ interface Props {
20
20
  anchorEl: HTMLElement | null;
21
21
  header: MRT_Header;
22
22
  setAnchorEl: (anchorEl: HTMLElement | null) => void;
23
- instance: MRT_TableInstance;
23
+ table: MRT_TableInstance;
24
24
  }
25
25
 
26
26
  export const MRT_ColumnActionMenu: FC<Props> = ({
27
27
  anchorEl,
28
28
  header,
29
29
  setAnchorEl,
30
- instance,
30
+ table,
31
31
  }) => {
32
32
  const {
33
33
  getState,
@@ -58,17 +58,13 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
58
58
  localization,
59
59
  },
60
60
  setShowFilters,
61
- } = instance;
62
-
61
+ } = table;
63
62
  const { column } = header;
64
-
65
63
  const { columnDef } = column;
66
-
67
64
  const { columnSizing, columnVisibility, density } = getState();
68
65
 
69
66
  const [filterMenuAnchorEl, setFilterMenuAnchorEl] =
70
67
  useState<null | HTMLElement>(null);
71
-
72
68
  const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] =
73
69
  useState<null | HTMLElement>(null);
74
70
 
@@ -265,7 +261,7 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
265
261
  key={2}
266
262
  onSelect={handleFilterByColumn}
267
263
  setAnchorEl={setFilterMenuAnchorEl}
268
- instance={instance}
264
+ table={table}
269
265
  />
270
266
  ),
271
267
  ].filter(Boolean)}
@@ -394,7 +390,7 @@ export const MRT_ColumnActionMenu: FC<Props> = ({
394
390
  isSubMenu
395
391
  key={2}
396
392
  setAnchorEl={setShowHideColumnsMenuAnchorEl}
397
- instance={instance}
393
+ table={table}
398
394
  />,
399
395
  ]}
400
396
  </Menu>