material-react-table 1.9.0 → 1.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -617,7 +617,7 @@ export type MaterialReactTableProps<TData extends Record<string, any> = {}> = Pr
617
617
  }) => TableRowProps);
618
618
  muiTablePaginationProps?: Partial<Omit<TablePaginationProps, 'rowsPerPage'>> | ((props: {
619
619
  table: MRT_TableInstance<TData>;
620
- }) => Partial<TablePaginationProps>);
620
+ }) => Partial<Omit<TablePaginationProps, 'rowsPerPage'>>);
621
621
  muiTablePaperProps?: PaperProps | ((props: {
622
622
  table: MRT_TableInstance<TData>;
623
623
  }) => PaperProps);
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { VirtualItem, Virtualizer } from '@tanstack/react-virtual';
2
+ import { type VirtualItem, type Virtualizer } from '@tanstack/react-virtual';
3
3
  import type { MRT_TableInstance } from '..';
4
4
  interface Props {
5
5
  columnVirtualizer?: Virtualizer<HTMLDivElement, HTMLTableCellElement>;
@@ -1,7 +1,7 @@
1
- import type { Row } from '@tanstack/react-table';
2
1
  import { MRT_AggregationFns } from './aggregationFns';
3
2
  import { MRT_FilterFns } from './filterFns';
4
3
  import { MRT_SortingFns } from './sortingFns';
4
+ import type { Row } from '@tanstack/react-table';
5
5
  import type { TableCellProps } from '@mui/material/TableCell';
6
6
  import type { Theme } from '@mui/material/styles';
7
7
  import type { MaterialReactTableProps, MRT_Column, MRT_ColumnDef, MRT_ColumnOrderState, MRT_DefinedColumnDef, MRT_DisplayColumnIds, MRT_FilterOption, MRT_GroupingState, MRT_Header, MRT_TableInstance } from '.';
@@ -1,5 +1,5 @@
1
1
  import { RankingInfo } from '@tanstack/match-sorter-utils';
2
- import { Row } from '@tanstack/react-table';
2
+ import { type Row } from '@tanstack/react-table';
3
3
  export declare const MRT_FilterFns: {
4
4
  between: {
5
5
  <TData extends Record<string, any> = {}>(row: Row<TData>, id: string, filterValues: [string | number, string | number]): boolean;
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { VirtualItem } from '@tanstack/react-virtual';
2
+ import type { VirtualItem } from '@tanstack/react-virtual';
3
3
  import type { MRT_HeaderGroup, MRT_TableInstance } from '..';
4
4
  interface Props {
5
5
  footerGroup: MRT_HeaderGroup;
@@ -1,5 +1,5 @@
1
- import { Row } from '@tanstack/react-table';
2
- import { MRT_Row } from '.';
1
+ import { type Row } from '@tanstack/react-table';
2
+ import type { MRT_Row } from '.';
3
3
  export declare const MRT_SortingFns: {
4
4
  fuzzy: <TData extends Record<string, any> = {}>(rowA: Row<TData>, rowB: Row<TData>, columnId: string) => number;
5
5
  alphanumeric: import("@tanstack/react-table").SortingFn<any>;
@@ -17,11 +17,14 @@ export declare const rankGlobalFuzzy: <TData extends Record<string, any> = {}>(r
17
17
  index: number;
18
18
  original: TData;
19
19
  depth: number;
20
+ parentId?: string | undefined;
20
21
  _uniqueValuesCache: Record<string, unknown>;
21
22
  getUniqueValues: <TValue_2>(columnId: string) => TValue_2[];
22
23
  getLeafRows: () => Row<TData>[];
23
24
  originalSubRows?: TData[] | undefined;
24
25
  _getAllCellsByColumnId: () => Record<string, import("@tanstack/react-table").Cell<TData, unknown>>;
26
+ getParentRow: () => Row<TData> | undefined;
27
+ getParentRows: () => Row<TData>[];
25
28
  _getAllVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
26
29
  getLeftVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
27
30
  getCenterVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
@@ -52,7 +55,48 @@ export declare const rankGlobalFuzzy: <TData extends Record<string, any> = {}>(r
52
55
  getIsPlaceholder: () => boolean;
53
56
  getIsAggregated: () => boolean;
54
57
  column: import("./MaterialReactTable").MRT_Column<TData>;
55
- row: any;
58
+ row: {
59
+ getValue: <TValue>(columnId: string) => TValue;
60
+ renderValue: <TValue_1>(columnId: string) => TValue_1;
61
+ id: string;
62
+ columnFilters: Record<string, boolean>;
63
+ index: number;
64
+ original: TData;
65
+ depth: number;
66
+ parentId?: string | undefined;
67
+ _uniqueValuesCache: Record<string, unknown>;
68
+ getUniqueValues: <TValue_2>(columnId: string) => TValue_2[];
69
+ getLeafRows: () => Row<TData>[];
70
+ originalSubRows?: TData[] | undefined;
71
+ _getAllCellsByColumnId: () => Record<string, import("@tanstack/react-table").Cell<TData, unknown>>;
72
+ getParentRow: () => Row<TData> | undefined;
73
+ getParentRows: () => Row<TData>[];
74
+ _getAllVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
75
+ getLeftVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
76
+ getCenterVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
77
+ getRightVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
78
+ columnFiltersMeta: Record<string, import("@tanstack/react-table").FilterMeta>;
79
+ groupingColumnId?: string | undefined;
80
+ groupingValue?: unknown;
81
+ getIsGrouped: () => boolean;
82
+ _groupingValuesCache: Record<string, any>;
83
+ getIsSelected: () => boolean;
84
+ getIsSomeSelected: () => boolean;
85
+ getIsAllSubRowsSelected: () => boolean;
86
+ getCanSelect: () => boolean;
87
+ getCanMultiSelect: () => boolean;
88
+ getCanSelectSubRows: () => boolean;
89
+ toggleSelected: (value?: boolean | undefined) => void;
90
+ getToggleSelectedHandler: () => (event: unknown) => void;
91
+ toggleExpanded: (expanded?: boolean | undefined) => void;
92
+ getIsExpanded: () => boolean;
93
+ getCanExpand: () => boolean;
94
+ getToggleExpandedHandler: () => () => void;
95
+ getAllCells: any;
96
+ getVisibleCells: () => any[];
97
+ subRows?: any[] | undefined;
98
+ _valuesCache: Record<(string & Record<never, never>) | (string & import("@tanstack/react-table").DeepKeys<TData>), any>;
99
+ };
56
100
  }[];
57
101
  getVisibleCells: () => {
58
102
  getValue: import("@tanstack/react-table").Getter<unknown>;
@@ -63,9 +107,111 @@ export declare const rankGlobalFuzzy: <TData extends Record<string, any> = {}>(r
63
107
  getIsPlaceholder: () => boolean;
64
108
  getIsAggregated: () => boolean;
65
109
  column: import("./MaterialReactTable").MRT_Column<TData>;
66
- row: any;
110
+ row: {
111
+ getValue: <TValue>(columnId: string) => TValue;
112
+ renderValue: <TValue_1>(columnId: string) => TValue_1;
113
+ id: string;
114
+ columnFilters: Record<string, boolean>;
115
+ index: number;
116
+ original: TData;
117
+ depth: number;
118
+ parentId?: string | undefined;
119
+ _uniqueValuesCache: Record<string, unknown>;
120
+ getUniqueValues: <TValue_2>(columnId: string) => TValue_2[];
121
+ getLeafRows: () => Row<TData>[];
122
+ originalSubRows?: TData[] | undefined;
123
+ _getAllCellsByColumnId: () => Record<string, import("@tanstack/react-table").Cell<TData, unknown>>;
124
+ getParentRow: () => Row<TData> | undefined;
125
+ getParentRows: () => Row<TData>[];
126
+ _getAllVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
127
+ getLeftVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
128
+ getCenterVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
129
+ getRightVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
130
+ columnFiltersMeta: Record<string, import("@tanstack/react-table").FilterMeta>;
131
+ groupingColumnId?: string | undefined;
132
+ groupingValue?: unknown;
133
+ getIsGrouped: () => boolean;
134
+ _groupingValuesCache: Record<string, any>;
135
+ getIsSelected: () => boolean;
136
+ getIsSomeSelected: () => boolean;
137
+ getIsAllSubRowsSelected: () => boolean;
138
+ getCanSelect: () => boolean;
139
+ getCanMultiSelect: () => boolean;
140
+ getCanSelectSubRows: () => boolean;
141
+ toggleSelected: (value?: boolean | undefined) => void;
142
+ getToggleSelectedHandler: () => (event: unknown) => void;
143
+ toggleExpanded: (expanded?: boolean | undefined) => void;
144
+ getIsExpanded: () => boolean;
145
+ getCanExpand: () => boolean;
146
+ getToggleExpandedHandler: () => () => void;
147
+ getAllCells: () => any[];
148
+ getVisibleCells: any;
149
+ subRows?: any[] | undefined;
150
+ _valuesCache: Record<(string & Record<never, never>) | (string & import("@tanstack/react-table").DeepKeys<TData>), any>;
151
+ };
67
152
  }[];
68
- subRows?: any[] | undefined;
153
+ subRows?: {
154
+ getValue: <TValue>(columnId: string) => TValue;
155
+ renderValue: <TValue_1>(columnId: string) => TValue_1;
156
+ id: string;
157
+ columnFilters: Record<string, boolean>;
158
+ index: number;
159
+ original: TData;
160
+ depth: number;
161
+ parentId?: string | undefined;
162
+ _uniqueValuesCache: Record<string, unknown>;
163
+ getUniqueValues: <TValue_2>(columnId: string) => TValue_2[];
164
+ getLeafRows: () => Row<TData>[];
165
+ originalSubRows?: TData[] | undefined;
166
+ _getAllCellsByColumnId: () => Record<string, import("@tanstack/react-table").Cell<TData, unknown>>;
167
+ getParentRow: () => Row<TData> | undefined;
168
+ getParentRows: () => Row<TData>[];
169
+ _getAllVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
170
+ getLeftVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
171
+ getCenterVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
172
+ getRightVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
173
+ columnFiltersMeta: Record<string, import("@tanstack/react-table").FilterMeta>;
174
+ groupingColumnId?: string | undefined;
175
+ groupingValue?: unknown;
176
+ getIsGrouped: () => boolean;
177
+ _groupingValuesCache: Record<string, any>;
178
+ getIsSelected: () => boolean;
179
+ getIsSomeSelected: () => boolean;
180
+ getIsAllSubRowsSelected: () => boolean;
181
+ getCanSelect: () => boolean;
182
+ getCanMultiSelect: () => boolean;
183
+ getCanSelectSubRows: () => boolean;
184
+ toggleSelected: (value?: boolean | undefined) => void;
185
+ getToggleSelectedHandler: () => (event: unknown) => void;
186
+ toggleExpanded: (expanded?: boolean | undefined) => void;
187
+ getIsExpanded: () => boolean;
188
+ getCanExpand: () => boolean;
189
+ getToggleExpandedHandler: () => () => void;
190
+ getAllCells: () => {
191
+ getValue: import("@tanstack/react-table").Getter<unknown>;
192
+ renderValue: import("@tanstack/react-table").Getter<unknown>;
193
+ id: string;
194
+ getContext: () => import("@tanstack/react-table").CellContext<TData, unknown>;
195
+ getIsGrouped: () => boolean;
196
+ getIsPlaceholder: () => boolean;
197
+ getIsAggregated: () => boolean;
198
+ column: import("./MaterialReactTable").MRT_Column<TData>;
199
+ row: any;
200
+ }[];
201
+ getVisibleCells: () => {
202
+ getValue: import("@tanstack/react-table").Getter<unknown>;
203
+ renderValue: import("@tanstack/react-table").Getter<unknown>;
204
+ id: string;
205
+ getContext: () => import("@tanstack/react-table").CellContext<TData, unknown>;
206
+ getIsGrouped: () => boolean;
207
+ getIsPlaceholder: () => boolean;
208
+ getIsAggregated: () => boolean;
209
+ column: import("./MaterialReactTable").MRT_Column<TData>;
210
+ row: any;
211
+ }[];
212
+ subRows?: any[] | undefined;
213
+ _valuesCache: Record<(string & Record<never, never>) | (string & import("@tanstack/react-table").DeepKeys<TData>), any>;
214
+ }[] | undefined;
69
215
  _valuesCache: Record<(string & Record<never, never>) | (string & import("@tanstack/react-table").DeepKeys<TData>), any>;
70
216
  }, rowB: {
71
217
  getValue: <TValue>(columnId: string) => TValue;
@@ -75,11 +221,14 @@ export declare const rankGlobalFuzzy: <TData extends Record<string, any> = {}>(r
75
221
  index: number;
76
222
  original: TData;
77
223
  depth: number;
224
+ parentId?: string | undefined;
78
225
  _uniqueValuesCache: Record<string, unknown>;
79
226
  getUniqueValues: <TValue_2>(columnId: string) => TValue_2[];
80
227
  getLeafRows: () => Row<TData>[];
81
228
  originalSubRows?: TData[] | undefined;
82
229
  _getAllCellsByColumnId: () => Record<string, import("@tanstack/react-table").Cell<TData, unknown>>;
230
+ getParentRow: () => Row<TData> | undefined;
231
+ getParentRows: () => Row<TData>[];
83
232
  _getAllVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
84
233
  getLeftVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
85
234
  getCenterVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
@@ -110,7 +259,48 @@ export declare const rankGlobalFuzzy: <TData extends Record<string, any> = {}>(r
110
259
  getIsPlaceholder: () => boolean;
111
260
  getIsAggregated: () => boolean;
112
261
  column: import("./MaterialReactTable").MRT_Column<TData>;
113
- row: any;
262
+ row: {
263
+ getValue: <TValue>(columnId: string) => TValue;
264
+ renderValue: <TValue_1>(columnId: string) => TValue_1;
265
+ id: string;
266
+ columnFilters: Record<string, boolean>;
267
+ index: number;
268
+ original: TData;
269
+ depth: number;
270
+ parentId?: string | undefined;
271
+ _uniqueValuesCache: Record<string, unknown>;
272
+ getUniqueValues: <TValue_2>(columnId: string) => TValue_2[];
273
+ getLeafRows: () => Row<TData>[];
274
+ originalSubRows?: TData[] | undefined;
275
+ _getAllCellsByColumnId: () => Record<string, import("@tanstack/react-table").Cell<TData, unknown>>;
276
+ getParentRow: () => Row<TData> | undefined;
277
+ getParentRows: () => Row<TData>[];
278
+ _getAllVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
279
+ getLeftVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
280
+ getCenterVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
281
+ getRightVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
282
+ columnFiltersMeta: Record<string, import("@tanstack/react-table").FilterMeta>;
283
+ groupingColumnId?: string | undefined;
284
+ groupingValue?: unknown;
285
+ getIsGrouped: () => boolean;
286
+ _groupingValuesCache: Record<string, any>;
287
+ getIsSelected: () => boolean;
288
+ getIsSomeSelected: () => boolean;
289
+ getIsAllSubRowsSelected: () => boolean;
290
+ getCanSelect: () => boolean;
291
+ getCanMultiSelect: () => boolean;
292
+ getCanSelectSubRows: () => boolean;
293
+ toggleSelected: (value?: boolean | undefined) => void;
294
+ getToggleSelectedHandler: () => (event: unknown) => void;
295
+ toggleExpanded: (expanded?: boolean | undefined) => void;
296
+ getIsExpanded: () => boolean;
297
+ getCanExpand: () => boolean;
298
+ getToggleExpandedHandler: () => () => void;
299
+ getAllCells: any;
300
+ getVisibleCells: () => any[];
301
+ subRows?: any[] | undefined;
302
+ _valuesCache: Record<(string & Record<never, never>) | (string & import("@tanstack/react-table").DeepKeys<TData>), any>;
303
+ };
114
304
  }[];
115
305
  getVisibleCells: () => {
116
306
  getValue: import("@tanstack/react-table").Getter<unknown>;
@@ -121,8 +311,110 @@ export declare const rankGlobalFuzzy: <TData extends Record<string, any> = {}>(r
121
311
  getIsPlaceholder: () => boolean;
122
312
  getIsAggregated: () => boolean;
123
313
  column: import("./MaterialReactTable").MRT_Column<TData>;
124
- row: any;
314
+ row: {
315
+ getValue: <TValue>(columnId: string) => TValue;
316
+ renderValue: <TValue_1>(columnId: string) => TValue_1;
317
+ id: string;
318
+ columnFilters: Record<string, boolean>;
319
+ index: number;
320
+ original: TData;
321
+ depth: number;
322
+ parentId?: string | undefined;
323
+ _uniqueValuesCache: Record<string, unknown>;
324
+ getUniqueValues: <TValue_2>(columnId: string) => TValue_2[];
325
+ getLeafRows: () => Row<TData>[];
326
+ originalSubRows?: TData[] | undefined;
327
+ _getAllCellsByColumnId: () => Record<string, import("@tanstack/react-table").Cell<TData, unknown>>;
328
+ getParentRow: () => Row<TData> | undefined;
329
+ getParentRows: () => Row<TData>[];
330
+ _getAllVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
331
+ getLeftVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
332
+ getCenterVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
333
+ getRightVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
334
+ columnFiltersMeta: Record<string, import("@tanstack/react-table").FilterMeta>;
335
+ groupingColumnId?: string | undefined;
336
+ groupingValue?: unknown;
337
+ getIsGrouped: () => boolean;
338
+ _groupingValuesCache: Record<string, any>;
339
+ getIsSelected: () => boolean;
340
+ getIsSomeSelected: () => boolean;
341
+ getIsAllSubRowsSelected: () => boolean;
342
+ getCanSelect: () => boolean;
343
+ getCanMultiSelect: () => boolean;
344
+ getCanSelectSubRows: () => boolean;
345
+ toggleSelected: (value?: boolean | undefined) => void;
346
+ getToggleSelectedHandler: () => (event: unknown) => void;
347
+ toggleExpanded: (expanded?: boolean | undefined) => void;
348
+ getIsExpanded: () => boolean;
349
+ getCanExpand: () => boolean;
350
+ getToggleExpandedHandler: () => () => void;
351
+ getAllCells: () => any[];
352
+ getVisibleCells: any;
353
+ subRows?: any[] | undefined;
354
+ _valuesCache: Record<(string & Record<never, never>) | (string & import("@tanstack/react-table").DeepKeys<TData>), any>;
355
+ };
125
356
  }[];
126
- subRows?: any[] | undefined;
357
+ subRows?: {
358
+ getValue: <TValue>(columnId: string) => TValue;
359
+ renderValue: <TValue_1>(columnId: string) => TValue_1;
360
+ id: string;
361
+ columnFilters: Record<string, boolean>;
362
+ index: number;
363
+ original: TData;
364
+ depth: number;
365
+ parentId?: string | undefined;
366
+ _uniqueValuesCache: Record<string, unknown>;
367
+ getUniqueValues: <TValue_2>(columnId: string) => TValue_2[];
368
+ getLeafRows: () => Row<TData>[];
369
+ originalSubRows?: TData[] | undefined;
370
+ _getAllCellsByColumnId: () => Record<string, import("@tanstack/react-table").Cell<TData, unknown>>;
371
+ getParentRow: () => Row<TData> | undefined;
372
+ getParentRows: () => Row<TData>[];
373
+ _getAllVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
374
+ getLeftVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
375
+ getCenterVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
376
+ getRightVisibleCells: () => import("@tanstack/react-table").Cell<TData, unknown>[];
377
+ columnFiltersMeta: Record<string, import("@tanstack/react-table").FilterMeta>;
378
+ groupingColumnId?: string | undefined;
379
+ groupingValue?: unknown;
380
+ getIsGrouped: () => boolean;
381
+ _groupingValuesCache: Record<string, any>;
382
+ getIsSelected: () => boolean;
383
+ getIsSomeSelected: () => boolean;
384
+ getIsAllSubRowsSelected: () => boolean;
385
+ getCanSelect: () => boolean;
386
+ getCanMultiSelect: () => boolean;
387
+ getCanSelectSubRows: () => boolean;
388
+ toggleSelected: (value?: boolean | undefined) => void;
389
+ getToggleSelectedHandler: () => (event: unknown) => void;
390
+ toggleExpanded: (expanded?: boolean | undefined) => void;
391
+ getIsExpanded: () => boolean;
392
+ getCanExpand: () => boolean;
393
+ getToggleExpandedHandler: () => () => void;
394
+ getAllCells: () => {
395
+ getValue: import("@tanstack/react-table").Getter<unknown>;
396
+ renderValue: import("@tanstack/react-table").Getter<unknown>;
397
+ id: string;
398
+ getContext: () => import("@tanstack/react-table").CellContext<TData, unknown>;
399
+ getIsGrouped: () => boolean;
400
+ getIsPlaceholder: () => boolean;
401
+ getIsAggregated: () => boolean;
402
+ column: import("./MaterialReactTable").MRT_Column<TData>;
403
+ row: any;
404
+ }[];
405
+ getVisibleCells: () => {
406
+ getValue: import("@tanstack/react-table").Getter<unknown>;
407
+ renderValue: import("@tanstack/react-table").Getter<unknown>;
408
+ id: string;
409
+ getContext: () => import("@tanstack/react-table").CellContext<TData, unknown>;
410
+ getIsGrouped: () => boolean;
411
+ getIsPlaceholder: () => boolean;
412
+ getIsAggregated: () => boolean;
413
+ column: import("./MaterialReactTable").MRT_Column<TData>;
414
+ row: any;
415
+ }[];
416
+ subRows?: any[] | undefined;
417
+ _valuesCache: Record<(string & Record<never, never>) | (string & import("@tanstack/react-table").DeepKeys<TData>), any>;
418
+ }[] | undefined;
127
419
  _valuesCache: Record<(string & Record<never, never>) | (string & import("@tanstack/react-table").DeepKeys<TData>), any>;
128
420
  }) => number;
@@ -553,6 +553,9 @@ const mrtFilterOptions = (localization) => [
553
553
  divider: false,
554
554
  },
555
555
  ];
556
+ const rangeModes = ['between', 'betweenInclusive', 'inNumberRange'];
557
+ const emptyModes = ['empty', 'notEmpty'];
558
+ const arrModes = ['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'];
556
559
  const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilterValue, table, }) => {
557
560
  var _a, _b, _c, _d;
558
561
  const { getState, options: { columnFilterModeOptions, globalFilterModeOptions, localization, renderColumnFilterModeMenuItems, renderGlobalFilterModeMenuItems, }, setColumnFilterFns, setGlobalFilterFn, } = table;
@@ -568,36 +571,62 @@ const MRT_FilterOptionMenu = ({ anchorEl, header, onSelect, setAnchorEl, setFilt
568
571
  globalFilterModeOptions.includes(filterOption.option)) &&
569
572
  ['fuzzy', 'contains', 'startsWith'].includes(filterOption.option)), []);
570
573
  const handleSelectFilterMode = (option) => {
571
- if (header && column) {
574
+ var _a;
575
+ const prevFilterMode = (_a = columnDef === null || columnDef === void 0 ? void 0 : columnDef._filterFn) !== null && _a !== void 0 ? _a : '';
576
+ if (!header || !column) {
577
+ // global filter mode
578
+ setGlobalFilterFn(option);
579
+ }
580
+ else if (option !== prevFilterMode) {
581
+ // column filter mode
572
582
  setColumnFilterFns((prev) => (Object.assign(Object.assign({}, prev), { [header.id]: option })));
573
- if (['empty', 'notEmpty'].includes(option)) {
574
- column.setFilterValue(' ');
583
+ // reset filter value and/or perform new filter render
584
+ if (emptyModes.includes(option)) {
585
+ // will now be empty/notEmpty filter mode
586
+ if (currentFilterValue !== ' ' &&
587
+ !emptyModes.includes(prevFilterMode)) {
588
+ column.setFilterValue(' ');
589
+ }
590
+ else if (currentFilterValue) {
591
+ column.setFilterValue(currentFilterValue); // perform new filter render
592
+ }
575
593
  }
576
594
  else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'multi-select' ||
577
- ['arrIncludesSome', 'arrIncludesAll', 'arrIncludes'].includes(option)) {
595
+ arrModes.includes(option)) {
596
+ // will now be array filter mode
578
597
  if (currentFilterValue instanceof String ||
579
598
  (currentFilterValue === null || currentFilterValue === void 0 ? void 0 : currentFilterValue.length)) {
580
599
  column.setFilterValue([]);
581
600
  setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue([]);
582
601
  }
602
+ else if (currentFilterValue) {
603
+ column.setFilterValue(currentFilterValue); // perform new filter render
604
+ }
583
605
  }
584
606
  else if ((columnDef === null || columnDef === void 0 ? void 0 : columnDef.filterVariant) === 'range' ||
585
- ['between', 'betweenInclusive', 'inNumberRange'].includes(option)) {
586
- if (!(currentFilterValue === null || currentFilterValue === void 0 ? void 0 : currentFilterValue.every((v) => v === ''))) {
607
+ rangeModes.includes(option)) {
608
+ // will now be range filter mode
609
+ if (!Array.isArray(currentFilterValue) ||
610
+ (!(currentFilterValue === null || currentFilterValue === void 0 ? void 0 : currentFilterValue.every((v) => v === '')) &&
611
+ !rangeModes.includes(prevFilterMode))) {
587
612
  column.setFilterValue(['', '']);
588
613
  setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
589
614
  }
615
+ else {
616
+ column.setFilterValue(currentFilterValue); // perform new filter render
617
+ }
590
618
  }
591
619
  else {
592
- if (!['', undefined].includes(currentFilterValue)) {
620
+ // will now be single value filter mode
621
+ if (Array.isArray(currentFilterValue)) {
593
622
  column.setFilterValue('');
594
623
  setFilterValue === null || setFilterValue === void 0 ? void 0 : setFilterValue('');
595
624
  }
625
+ else {
626
+ column.setFilterValue(currentFilterValue); // perform new filter render
627
+ }
596
628
  }
597
629
  }
598
- else {
599
- setGlobalFilterFn(option);
600
- }
601
630
  setAnchorEl(null);
602
631
  onSelect === null || onSelect === void 0 ? void 0 : onSelect();
603
632
  };
@@ -1566,7 +1595,7 @@ const MRT_FilterTextField = ({ header, rangeFilterIndex, table, }) => {
1566
1595
  else if (isRangeFilter) {
1567
1596
  setFilterValue('');
1568
1597
  column.setFilterValue((old) => {
1569
- const newFilterValues = old !== null && old !== void 0 ? old : ['', ''];
1598
+ const newFilterValues = (Array.isArray(old) && old) || ['', ''];
1570
1599
  newFilterValues[rangeFilterIndex] = undefined;
1571
1600
  return newFilterValues;
1572
1601
  });
@@ -2186,11 +2215,11 @@ const MRT_TableBodyRowGrabHandle = ({ cell, rowRef, table }) => {
2186
2215
 
2187
2216
  const allowedTypes = ['string', 'number'];
2188
2217
  const MRT_TableBodyCellValue = ({ cell, table }) => {
2189
- var _a, _b, _c, _d;
2218
+ var _a, _b, _c;
2190
2219
  const { getState, options: { enableFilterMatchHighlighting }, } = table;
2191
2220
  const { column, row } = cell;
2192
2221
  const { columnDef } = column;
2193
- const { globalFilter } = getState();
2222
+ const { globalFilter, globalFilterFn } = getState();
2194
2223
  const filterValue = column.getFilterValue();
2195
2224
  let renderedCellValue = cell.getIsAggregated() && columnDef.AggregatedCell
2196
2225
  ? columnDef.AggregatedCell({
@@ -2220,13 +2249,16 @@ const MRT_TableBodyCellValue = ({ cell, table }) => {
2220
2249
  ((filterValue &&
2221
2250
  allowedTypes.includes(typeof filterValue) &&
2222
2251
  columnDef.filterVariant === 'text') ||
2223
- (globalFilter && allowedTypes.includes(typeof globalFilter)))) {
2252
+ (globalFilter &&
2253
+ allowedTypes.includes(typeof globalFilter) &&
2254
+ column.getCanGlobalFilter()))) {
2224
2255
  const chunks = highlightWords === null || highlightWords === void 0 ? void 0 : highlightWords({
2225
2256
  text: renderedCellValue === null || renderedCellValue === void 0 ? void 0 : renderedCellValue.toString(),
2226
- query: ((_b = (_a = column.getFilterValue()) !== null && _a !== void 0 ? _a : globalFilter) !== null && _b !== void 0 ? _b : '').toString(),
2257
+ query: ((_a = filterValue !== null && filterValue !== void 0 ? filterValue : globalFilter) !== null && _a !== void 0 ? _a : '').toString(),
2258
+ matchExactly: (filterValue ? columnDef._filterFn : globalFilterFn) !== 'fuzzy',
2227
2259
  });
2228
- if ((chunks === null || chunks === void 0 ? void 0 : chunks.length) > 1 || ((_c = chunks === null || chunks === void 0 ? void 0 : chunks[0]) === null || _c === void 0 ? void 0 : _c.match)) {
2229
- renderedCellValue = (React.createElement("span", { "aria-label": renderedCellValue, role: "note" }, (_d = chunks === null || chunks === void 0 ? void 0 : chunks.map(({ key, match, text }) => (React.createElement(Box, { "aria-hidden": "true", component: "span", key: key, sx: match
2260
+ if ((chunks === null || chunks === void 0 ? void 0 : chunks.length) > 1 || ((_b = chunks === null || chunks === void 0 ? void 0 : chunks[0]) === null || _b === void 0 ? void 0 : _b.match)) {
2261
+ renderedCellValue = (React.createElement("span", { "aria-label": renderedCellValue, role: "note" }, (_c = chunks === null || chunks === void 0 ? void 0 : chunks.map(({ key, match, text }) => (React.createElement(Box, { "aria-hidden": "true", component: "span", key: key, sx: match
2230
2262
  ? {
2231
2263
  backgroundColor: (theme) => theme.palette.mode === 'dark'
2232
2264
  ? darken(theme.palette.warning.dark, 0.25)
@@ -2235,7 +2267,7 @@ const MRT_TableBodyCellValue = ({ cell, table }) => {
2235
2267
  color: (theme) => theme.palette.mode === 'dark' ? 'white' : 'black',
2236
2268
  padding: '2px 1px',
2237
2269
  }
2238
- : undefined }, text)))) !== null && _d !== void 0 ? _d : renderedCellValue));
2270
+ : undefined }, text)))) !== null && _c !== void 0 ? _c : renderedCellValue));
2239
2271
  }
2240
2272
  }
2241
2273
  if (columnDef.Cell && !isGroupedValue) {
@@ -2445,9 +2477,11 @@ const MRT_TableBodyRow = ({ columnVirtualizer, measureElement, numRows, row, row
2445
2477
  ? `translateY(${virtualRow === null || virtualRow === void 0 ? void 0 : virtualRow.start}px)`
2446
2478
  : undefined, transition: virtualRow ? 'none' : 'all 150ms ease-in-out', width: '100%', '&:hover td': {
2447
2479
  backgroundColor: (tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.hover) !== false
2448
- ? theme.palette.mode === 'dark'
2449
- ? `${lighten(theme.palette.background.default, 0.12)}`
2450
- : `${darken(theme.palette.background.default, 0.05)}`
2480
+ ? row.getIsSelected()
2481
+ ? `${alpha(theme.palette.primary.main, 0.2)}`
2482
+ : theme.palette.mode === 'dark'
2483
+ ? `${lighten(theme.palette.background.default, 0.12)}`
2484
+ : `${darken(theme.palette.background.default, 0.05)}`
2451
2485
  : undefined,
2452
2486
  } }, ((tableRowProps === null || tableRowProps === void 0 ? void 0 : tableRowProps.sx) instanceof Function
2453
2487
  ? tableRowProps.sx(theme)